WO2001093089A1 - System and method for providing interactive translation of information in a communication network - Google Patents

System and method for providing interactive translation of information in a communication network Download PDF

Info

Publication number
WO2001093089A1
WO2001093089A1 PCT/US2001/017217 US0117217W WO0193089A1 WO 2001093089 A1 WO2001093089 A1 WO 2001093089A1 US 0117217 W US0117217 W US 0117217W WO 0193089 A1 WO0193089 A1 WO 0193089A1
Authority
WO
WIPO (PCT)
Prior art keywords
address
translation
information
target
intermediary
Prior art date
Application number
PCT/US2001/017217
Other languages
French (fr)
Inventor
Pao-Hsi Sheng
Paul Wu
Nikolay Kolev
Original Assignee
Theone.Com
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Theone.Com filed Critical Theone.Com
Priority to AU2001274991A priority Critical patent/AU2001274991A1/en
Publication of WO2001093089A1 publication Critical patent/WO2001093089A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/40Processing or translation of natural language
    • G06F40/58Use of machine translation, e.g. for multi-lingual retrieval, for server-side translation for client devices or for real-time translation

Definitions

  • the present invention relates in general to database development, translation, organization and presentation, and more particularly to a method and apparatus for efficiently retrieving, accurately translating, updating, organizing and presenting information in different languages through a communication network and to provide a seamless display of the translated and organized information.
  • the invention also provides interactive translation over the communication network.
  • the World Wide Web enables a user to have easy access to information on a worldwide scale. In addition, it facilitates delivery of information worldwide.
  • information includes text files, video clips, web pages, flash and/or shareware presentations, computer programs and other information that can be provided in digital format.
  • information posted on the World Wide Web is typically offered in the home or native language of the entity presenting the information.
  • the information for example, the content of a website, has to be translated into the respective languages.
  • machine-based translation systems are typically limited to translation between two languages.
  • machine-based translation systems are typically able to translate words and phrases in cultures having a unitary language and /or measurement scale using a set of translation rules.
  • language nuances may exist in certain countries, cultures or industries.
  • measure or scale units such as length, unit of weight, or volume.
  • a second approach is the use of manual translation systems. Because such manual translation systems are time consuming and thus expensive, they are not available instantaneously or " on-the- fly" and are typically used for translating information posted on websites on a case-by-case basis.
  • websites currently implementing translation systems are only able to present information passively, and are unable to accept information provided by the user, such as identification information, credit information and the like.
  • Scripts are interpreted programming languages. Examples of scripts are JavaScript and VBScript. Script elements can be found embedded in HTML pages. They are interpreted by the browser to perform various tasks. Scripts commonly provide dynamic generation or modification of the Universal Resource Locator (URL), as well as in the text. While this prevalent practice enhances web page interactivity, it complicates the software code required for properly translating the HTML page. Accordingly, there is a need in the technology to provide proper translation of both static and dynamically generated URLs and text.
  • URL Universal Resource Locator
  • a system and method for providing information in a processor- based system comprises inserting a function into stored information comprising hypertext markup language, receiving a request to access a target with an address, the target having a memory with said function and said stored information.
  • the address is modified to redirect the request to a modified address representative of an address of an intermediary.
  • the function and stored information are processed to provide translated information in a predetermined language, which is forwarded to a requestor of the request.
  • Figure 1A is a system block diagram of one embodiment of a network system in which the apparatus and method of the invention may be implemented.
  • Figure IB is a system block diagram of one embodiment of a computer system, which implements the embodiments of the invention.
  • Figure 2A is a system block diagram illustrating one embodiment of one portion of the interactive translation process provided in accordance with the principles of the invention.
  • Figure 2B is a system block diagram illustrating one embodiment of a second portion of the interactive translation process provided in accordance with the principles of the invention.
  • Figures 3A, 3B and 3C are a flowcharts illustrating one embodiment of an overview of the information processing and translation process provided in accordance with the principles of the invention.
  • FIGS. 4A and 4B are flowcharts illustrating one embodiment of the tag processing technique provided in accordance with the principles of the invention.
  • Figures 5A and 5B illustrate exemplary code used in implementing the tag processing technique of Figures 4 A and 4B.
  • Figure 6 illustrates one embodiment of a translation process provided in accordance with the principles of the invention.
  • Figure 7 illustrates one embodiment of the user-defined or customized user lexicon translation development technique provided in accordance with the principles of the invention.
  • Figure 8 illustrates one embodiment of the web page or web site tagging process provided in accordance with the principles of the invention.
  • FIG. 9A illustrates one embodiment of the translation memory technique provided in accordance with the principles of the invention.
  • Figure 9B illustrates one embodiment of the customized lexicon translation technique provided in accordance with the principles of the invention.
  • Figure 10 illustrates one embodiment of the user feedback and review process provided in accordance with the principles of the invention.
  • FIG 11 illustrates one embodiment of the dynamic content processing technique provided in accordance with the principles of the invention.
  • Figures 12A-C illustrate one example of the handler definition and processing technique provided in accordance with the principles of the invention.
  • Figure 13 illustrates one example of a process for maintaining information and /or services in a predetermined frame of a display page, in accordance with the principles of the invention.
  • One aspect of the present invention relates to a system and method ⁇ for efficiently retrieving, translating, organizing and updating information in different languages through a communication network, and to provide a seamless display of the translated and organized information.
  • a service center that is connected over one or more communication links to a remote network (such as the internet) may be requested to provide translation of media elements on one or more pages of a client website.
  • the media elements may include text, a file of video clips, static photographs, JPEG images, audio clips, animation, graphics, any type of informational material or any combination thereof. Users accessing the service center website may then view the client's website in one of a plurality of languages.
  • the client's website may be configured to display a translation function key, which when selected by a user, would provide a link to the service center website.
  • the service center website will respond immediately or " on-the-fly" by accessing the information (such as text) on one or more pages of the client's website, translating the corresponding information (e.g., text), and providing the resulting translated information to the user requesting viewing of the translated website or web page(s).
  • a second aspect of the present invention relates to a system and method for providing interactive communication between a target website and the users viewing a translated version of the website through the service center.
  • Such interactive communication will facilitate submittal of personal or general information from a user to a target website, and/or provide a way for exchange of information between the parties.
  • information obtained from a target website through an intermediate or proxy website is translated using one of a plurality of processes to provide information in accordance with a translation request.
  • the user may also communicate with the target website through the intermediate server.
  • the user may submit information to the target website through the intermediate server.
  • the information thus provided may be translated by the server prior to being forwarded to the target website.
  • a third aspect of the present invention relates to an apparatus and method for providing translation of one or more web pages, or an entire website using an intermediate or proxy website.
  • memory translation technique is implemented to translate the information.
  • the memory translation technique may be implemented in conjunction with a user-defined lexicon translation or a customized user lexicon translation process, which facilitates custom translation by the intermediate website and increases future translation efficiency and accuracy.
  • the customized user lexicon translation process may be implemented as part of a machine language translation process.
  • the machine language translation-customized user lexicon translation process may be provided automatically, in response to a request for translation.
  • a manual post-editing process may be implemented in conjunction with the machine language translation process to provide increased accuracy in translation.
  • a user feedback process may be provided to obtain different perspectives on the translation of a website. Such user feed back may be used to enhance the translation process.
  • a "computer system” is a product including circuitry capable of processing data.
  • the computer system may include, but is not limited to, general-purpose computer systems (e.g., server, laptop, desktop, palmtop, personal electronic devices, etc.), personal computers (PCs), hard copy equipment (e.g., printer, plotter, fax machine, etc.), banking equipment (e.g., an automated teller machine), and the like.
  • Content refers to application programs, driver programs, utility programs, file, payload, etc., and combinations thereof, as well as graphics, informational material (articles, stock quotes, etc.) and the like, either singly or in any combination.
  • a "communication link” refers to the medium or channel of communication.
  • the communication link may include, but is not limited to, a telephone line, a modem connection, an Internet connection, an Integrated Services Digital Network ("ISDN”) connection, an Asynchronous Transfer Mode (ATM) connection, a frame relay connection, an Ethernet connection, a coaxial connection, a fiber optic connection, satellite connections (e.g. Digital Satellite Services, etc.), wireless connections, radio frequency (RF) links, electromagnetic links, two way paging connections, etc., and combinations thereof.
  • ISDN Integrated Services Digital Network
  • ATM Asynchronous Transfer Mode
  • frame relay connection e.g. Digital Satellite Services, etc.
  • Ethernet connection e.g. Digital Satellite Services, etc.
  • coaxial connection e.g. Digital Satellite Services, etc.
  • satellite connections e.g. Digital Satellite Services, etc.
  • wireless connections e.g. Digital Satellite Services, etc.
  • RF radio frequency
  • Figure 1A shows a system block diagram of one embodiment of a network system 10 in which the apparatus and method of the invention is used.
  • the network system 10 comprises a service center 12 that is connected over one or more communication links 20 to a remote network 30 (e.g., a wide area network or the Internet) or a remote site (e.g., a satellite, which is not shown in Figure 1 A) to one or more user computer systems 40I-40N ("40").
  • the service center 12 is a website.
  • the service center 12 includes one or more servers 22 and one or more databases 24.
  • the server 22 includes software modules for performing the processes of the invention, as described in detail in the following sections.
  • the server 22 may be coupled to one or more verification entities such as entity 60 for verification of credit information and for processing credit transactions.
  • the service center 12 may also include one or more computers 26I-26 . If a plurality of computers are used, then the computers 26I-26M may be connected by a local area network (LAN) or any other similar connection technology. However, it is also possible for the service center 12 to have other configurations. For example, a smaller number of larger computers (i.e. a few mainframe, mini, etc. computers) with a number of internal programs or processes running on the larger computers capable of establishing communication links to the user computers.
  • LAN local area network
  • the remote network 30 or remote site allows the service center 12 to provide information and services to the user computers 40I ⁇ 40 , using software that is stored at the service center 12.
  • the one or more databases 24 connected to the service center computer(s), e.g., computer 26 ⁇ , are used to store database.
  • Each user computer 40I-40N is connected over a corresponding communication link 42I-42N such as a local carrier exchange to a respective ISP 44I-44N, through which access to the remote network 30 is made.
  • each user may be connected over a corresponding communication link 48I-48N to the service center 12, which provides Internet access and service to the user computer(s) 40.
  • the display screen for viewing the presentation may be located on a television coupled to the network 30.
  • the end user may be a viewer of a set top box television.
  • navigation through the presentation may be provided using control buttons on a remote control unit for controlling viewing of the television, or by other means known in the art.
  • One aspect of the present invention relates to translation of one or more pages of a website.
  • a translation process may occur on a computer system that is separate and apart from the service center 12, or may be developed using one of the computers 26I-26M-
  • the translated pages may be stored in the database 24.
  • the translated pages may be stored on a machine-readable medium.
  • the service center 12 that is connected over one or more communication links to a remote network (such as the internet) may be requested to provide translation of text on one or more pages of a client website.
  • the translated text is stored on the database 24. Users accessing the service center 12 website may then view the client's website in one of a plurality of languages.
  • the translated information is posted by the server 22 directly to the user.
  • the client's website may be configured to display a translation function key. When this key is selected a user, a link to the service center 12 website will be provided. Upon thus linking to the service center 12 website, the text on one or more pages of the client's website (or the entire website) will be immediately accessed and translated in a language setting selected by the user. The resulting translated information will be provided to the user requesting viewing of the translated website or web page(s).
  • the computer system 100 (representing either of computer 26 or 40) comprises a processor or a central processing unit (CPU) 104.
  • the illustrated CPU 104 includes an Arithmetic Logic Unit (ALU) for performing computations, a collection of registers for temporary storage of data and instructions, and a control unit for controlling operation for the system 100.
  • ALU Arithmetic Logic Unit
  • the CPU 104 includes any one of the x86, PentiumTM Pentium IITM and Pentium ProTM microprocessors as marketed by IntelTMCorporation, the K-6 microprocessor as marketed by AMDTM or the 6x86MX microprocessor as marketed by CyrixTMCorp.
  • CPU 104 is not limited to microprocessor but may take on other forms such as microcontrollers, digital signal processors, reduced instruction set computers (RISC), application specific integrated circuits, and the like. Although shown with one CPU 104, computer system 100 may alternatively include multiple processing units.
  • the CPU 104 is coupled to a bus controller 112 by way of a CPU bus 108.
  • the bus controller 112 includes a memory controller 116 integrated therein, though the memory controller 116 may be external to the bus controller 112.
  • the memory controller 116 provides an interface for access by the CPU 104 or other devices to system memory 124 via memory bus 120.
  • the system memory 124 includes synchronous dynamic random access memory (SDRAM).
  • SDRAM synchronous dynamic random access memory
  • System memory 124 may optionally include any additional or alternative high-speed memory device or memory circuitry.
  • the bus controller 112 is coupled to a system bus 128 that may be a Peripheral Component Interconnect (PCI) bus, Industry Standard Architecture (ISA) bus, etc.
  • PCI Peripheral Component Interconnect
  • ISA Industry Standard Architecture
  • Coupled to the system bus 128 are a graphics controller, a graphics engine or a video controller 132, a mass storage device 152, a communication interface device 156, one or more input/output (I/O) devices 168I-168N, and an expansion bus controller 172.
  • the video controller 132 is coupled to a video memory 136 (e.g., 8 Megabytes) and video BIOS 140, all of which may be integrated onto a single card or device, as designated by numeral 144.
  • the video memory 136 is used to contain display data for displaying information on the display screen 148, and the video BIOS 140 includes code and video services for controlling the video controller 132.
  • the video controller 132 is coupled to the CPU 104 through an Advanced Graphics Port (AGP) bus.
  • AGP Advanced Graphics Port
  • the mass storage device 152 includes (but is not limited to) a hard disk, floppy disk, CD-ROM, DVD-ROM, tape, high density floppy, high capacity removable media, low capacity removable media, solid state memory device, etc., and combinations thereof.
  • the mass storage device 152 may include any other mass storage medium.
  • the communication interface device 156 includes a network card, a modem interface, etc. for accessing network 164 via communications link 160.
  • the I/O devices 168I-168N include a keyboard, mouse, audio/sound card, printer, and the like.
  • the I/O devices 168i-168 n may be disk drive, such as a compact disk drive, a digital disk drive, a tape drive, a zip drive, a jazz drive, a digital video disk (DVD) drive, a magneto-optical disk drive, a high density floppy drive, a high capacity removable media drive, a low capacity media device, and /or any combination thereof.
  • the expansion bus controller 172 is coupled to non-volatile memory 175, which includes system firmware 176.
  • the system firmware 176 includes system BIOS 82, which is for controlling, among other things, hardware devices in the computer system 100.
  • the system firmware 176 also includes ROM 180 and flash (or EEPROM) 184.
  • the expansion bus controller 172 is also coupled to expansion memory 188a having RAM, ROM, and/or flash memory (not shown).
  • the system 100 may additionally include a memory module 190 that is coupled to the bus controller 112.
  • the memory module 190 comprises a ROM 192 and flash (or EEPROM) 194.
  • the computer system 100 further includes an operating system (OS) and at least one application program, which in one embodiment, are loaded into system memory 124 from mass storage device 152 and launched after POST.
  • the OS may include any type of OS including, but not limited or restricted to, DOS, WindowsTM(e.g., Windows 95TM Windows 98TM Windows NTTM, Unix, Linux, OS/2, OS/9, Xenix, etc.
  • the operating system is a set of one or more programs which control the computer system's operation and the allocation of resources.
  • the application program is a set of one or more software programs that performs a task desired by the user.
  • the elements of the present invention are essentially the code segments to perform the necessary tasks.
  • the program or code segments can be stored in a processor readable medium or transmitted by a computer data signal embodied in a carrier wave over a transmission medium or communication link.
  • the "processor readable medium” or “ machine-readable medium” may include any medium that can store or transfer information. Examples of the processor readable medium include an electronic circuit, a semiconductor memory device, a ROM, a flash memory, an erasable ROM (EROM), a floppy diskette, a CD-ROM, an optical disk, a hard disk, a fiber optic medium, a radio frequency (RF) link, etc.
  • the computer data signal may include any signal that can propagate over a transmission medium such as electronic network channels, optical fibers, air, electromagnetic, RF links, etc.
  • the code segments may be downloaded via computer networks such as the Internet, Intranet, etc.
  • the translated text may be stored in the database 24 or on a machine-readable medium.
  • the translated text may then made available to users such as those located at user computer 1 -N, i.e., computers 40I-40N through service center 12 or by means of the machine-readable medium. If the translated text is presented via the machine-readable medium, the computers 40I-40N may not necessarily be linked to the remote network for purposes of viewing the translation.
  • a discussion of the viewing process through the service center 12 will be described in the following sections.
  • the user is invited to view the translation.
  • the user may also be invited to make transactions such as purchasing of services or goods.
  • verification of the user' s identity or credit may be provided via verification entity 60.
  • one aspect of the present invention relates to a . system and method for efficiently retrieving, translating, updating, organizing and presenting information in different languages through a communication network, and to provide a seamless display of the translated and organized information.
  • a service center (such as service center 22) that is connected over one or more communication links to a remote network (such as the Internet) may be requested to provide translation of media elements on one or more pages of a client website.
  • the media elements may include text, a file of video clips, static photographs, JPEG images, audio clips, animation, graphics, any type of informational material or any combination thereof. Users accessing the service center website may then view the client's website in one of a plurality of languages.
  • a website that requires translation services may first create the site in a predetermined or native language or dialect. Next, the translation services may be requested. Such a translation request may be provided by sending the request over the Internet or by otherwise sending the request (such as by contacting the service center by other communication links, or by mail).
  • the translation process may be provided immediately or instantaneously in response to a request for translation, as discussed in detail in the following sections.
  • the translation process may be provided through a combined automatic machine language translation and manual post-editing process provided in accordance with the principles of the invention, as discussed in detail in the following sections.
  • the translation process may be provided through a manual post-editing process.
  • the translated information may be located in the database of the service center 22, which may act as an intermediate or proxy server between a user and the target website(s). Any information that is initially translated may be refined using the techniques of the invention. For example, information that is initially translated using post-editing may be further refined by using machine language translation during a subsequent translation process. Likewise, information that is initially translated using machine language translation may be refined by using post-editing during a subsequent translation process. Accordingly, the invention may initially utilize any one of: custom lexicon translation, machine language translation and /or post-editing translation either alone or in any combination to translate information.
  • one or more of the translation techniques may be used to further refine the translated information.
  • the translation provided in accordance with the processes of the invention will provide a rich, accurate and efficient translation system in any specified language or dialect.
  • the database of translation information may then be used to provide subsequent cost-effective, efficient and accurate translation.
  • Such translation may be provided immediately in response to a request for translation, or on- the-fly, thus facilitating seamless translation of any information located on a target website.
  • the translation services, database management, translation efficiency and workflow management may be provided at the service center 22, which may be strategically located in regions worldwide so as to provide bandwidth and reliability. Any target website requesting the translation services will not be disrupted through the use of the translation services since all services are provided at the service center 22.
  • the client's website may be configured to display a translation function key, which when selected by a user, would provide a link to the service center 22, which acts as an intermediary (for example, as an intermediate or proxy server).
  • the service center 22 Upon such a link, the service center 22 will respond immediately by retrieving the information (such as text) from its local database (such as database 24) or if the information is not already in its local database, the service center 22 will respond immediately by accessing the information on one or more pages of the client's website, translating the corresponding information (e.g., text), and providing the resulting translated information to the user requesting viewing of the translated website or web page(s).
  • a second aspect of the present invention relates to a system and method for providing interactive communication between the hosts of a website and the users viewing a translated version of the website through the service center.
  • Such interactive communication enables the user to obtain information from a target website in a language specified by the user.
  • the interactive translation and communication process will facilitate submittal of personal or general information from a user to a target website, and /or provide a way for exchange of information between the parties.
  • information obtained from a target website through an intermediate or proxy website is translated using one of a plurality of processes to provide information in accordance with a translation request.
  • the user may also communicate with the target website through the intermediate server.
  • the user may submit information to the target website through the intermediate server.
  • the information thus provided may be translated by the server prior to being forwarded to the target website, so that the target website only receives the translated information.
  • a third aspect of the present invention relates to an apparatus and method for providing translation of one or more web pages, or an entire website using an intermediate or proxy website.
  • a user-defined or customized user lexicon may be developed to facilitate custom translation by the intermediate website and to increase future translation efficiency and accuracy.
  • the customized user lexicon translation process may be implemented as part of a memory translation process. It may also be implemented as part of a machine-translation process.
  • the memory translation/machine language translation- customized user lexicon translation process may be provided immediately or instantaneously in response to a request for translation.
  • two classes of user-defined or custom lexicon accounts may be established: a personal custom lexicon account and a corporate custom lexicon account.
  • Personal custom lexicon account holders is assigned an Identification ("ID") may create their own dictionary of words and/or phrases, and the corresponding translations.
  • ID may create their own dictionary of words and/or phrases, and the corresponding translations.
  • the user may add the words and/or phrases, and their corresponding translations, via a User Interface that transfers the data into a memory location in the database 24 or other storage medium of the service center 22.
  • a storage of information in the memory location may be referred to as the user's personal lexicon.
  • the server at the service center 22 sends a command to the server at the service center 22 to locate the user's personal lexicon from memory and then place the data into the random access memory (RAM), to facilitate quick access of the required information.
  • RAM random access memory
  • the updated personal lexicon will first be stored in RAM, and later, typically when not used by the user; the updated personal lexicon will be stored in other long-term memory.
  • This personal lexicon, if selected for use z will be first used in the translation process, in conjunction with machine language translation. In other words, the user's personal lexicon is first used for any subsequent translation processes. Following that, further translation may be provided by machine language translation.
  • Such initially post-edited information may be stored at the database 24 of the service center 22 in the form of Source and Target languages.
  • the post-edited information along with a specified Industry Lexicon and a customized translation process (provided to modify various contextual phrases or Idioms specific to a target website) will be assigned to that website through a "tagging" process.
  • an identification is assigned to the particular website.
  • the service center 22 recognizes the identification or tag of the website.
  • the customized lexicon for the website is located (if available) and the Industry specific lexicon may also be located, for automatically translating the required information.
  • custom lexicon translation is not provided.
  • the website is merely tagged so that future translation may be provided using specified Industry lexicon as part of the machine language translation process.
  • a manual post-editing process may be implemented in conjunction with the machine language translation process to provide increased accuracy in translation.
  • a user feedback process may be provided to obtain different perspectives on the translation of a website. Such user feed back may be used to enhance the translation process.
  • FIGS 2A and 2B are system block diagrams illustrating one embodiment of the interactive translation process provided in accordance with the principles of the invention.
  • Figures 3A and 3B are a flowcharts illustrating one embodiment of an overview of the information processing and translation process provided in accordance with the principles of the invention.
  • the information processing and translation process 300 proceeds from a START state to process block 302, where the user or developer requests the address such as the Universal Resource Locator (URL) of a desired or target website.
  • the process 300 determines if the URL is stored in cache, as shown in decision block 304. If so, the process 300 determines if the URL has expired (process block 306).
  • URL Universal Resource Locator
  • process 300 proceeds to process block 308, where it logs onto the network 30. If, at decision block 304, it was determined that the URL is not in cache, the process 300 proceeds directly to process block 308. Advancing from process block 308, the process 300 fetches the content retrieved using the URL, from the network 30, as shown in process block 310. Next, as shown in process block 312, the content (e.g., a Hypertext Markup Language "HTML" page) is processed to provide a modified URL (which will facilitate unilateral or bilateral communication), and, in one embodiment, to add code that facilitates manipulation or modification of the original URL(s) that is/are dynamically generated by the original content. Such added code redirects the original URL to point to another address, such as that of the intermediate server or any other address.
  • HTML Hypertext Markup Language
  • code is added to original HTML to accompany the modifications made to the original HTML document.
  • the following functions may be inserted into the HTML page obtained pursuant to the client's request: fixHtmlSerialQ, fixHtml(), fixScript(),fixUrl(), getAbsUrl(), and fixTargetQ. It is understood that other functions may be similarly inserted.
  • the HTML page is analyzed to check for certain scripts that modify the content dynamically. Those that match those scripts are modified to call one of these functions. Detailed descriptions of various examples are provided below.
  • HTML embedded scripts are being processed on both the server- and client-sides.
  • server-side processing finds include, but are not limited to:
  • the textual content of the URL is then translated (process block 314).
  • the translated text and processed URL or HTML page is reassembled (process block 315).
  • the process 300 then proceeds to decision block 316, where it determines if the modified URL can be cached. If so, it proceeds to cache the URL and the corresponding text.
  • the process 300 then proceeds to process block 320. If, at decision block 316, it is determined that the URL cannot be cached, the process 300 proceeds directly to process block 320. In addition, if, at decision block 306, it was determined that the URL had not expired, the process 300 retrieves the URL from cache 24, as shown in process block 322, and thereafter, it proceeds to process block 320.
  • the translated results are sent to the user's or the developer's browser 45 (see Figures 2 A and 2B).
  • the translated text is displayed on the user's or the developer's browser 45, as loaded from the server (s) specified in the modified URL (process block 324).
  • the images associated with the text from the server(s) described in the modified URL are also displayed (process block 326).
  • the process 300 determines if there is any action from the user or developer, as shown in process block 328. If not, the process 300 continues monitoring for activity. Otherwise, it proceeds to decision block 330, where it determines if the action is a "GET” or a "POST" command.
  • "GET" and "POST" commands are commands used in the Hypertext Transfer Protocol (HTTP).
  • HTTP Hypertext Transfer Protocol
  • the "GET” command is a command issued by a client side browser as part of the HTTP protocol to retrieve a file from a server supporting the protocol.
  • a user opens up a browser and enters a URL, he may be considered as “interactively” requesting a URL from a website because he has “dynamically” entered or requested a URL.
  • the page may contain multiple links with URLs linked or connected to other pages. If the user then clicks on one of the URLs, he is making a "passive" request to the target website. This is because he is not given the opportunity to modify the content of the URL. As a result, if the user clicks on a link that takes him to http://www.domain.com/sub/pagel.htm, he cannot alter the URL to go to another location, e.g., http://www.domain.com/sub/page2.htm.
  • Clicking on a hyperlink typically invokes a "GET” command.
  • This "GET” command is followed by the URL, the HTTP protocol version number and a Request Header (a text block that describes the viewer's computer host name, Internet Protocol (IP) address, configuration, type of browser used, etc.).
  • IP Internet Protocol
  • a user "submits” a form via the Internet, he is initiating an "interactive" session because the information the user is submitting may be supplied by the user (although in some cases, it can be precalculated and/or recalculated by an algorithm generated by code inside the web page).
  • the command argument follows a "?” and is separated by "&".
  • the "POST" command encapsulates server-specific commands and data to be sent from the client side browser to the server.
  • a "POST" command in addition to deriving the command argument from the URL (as in the case of the Microsoft IIS server, although some Unix- based servers ignore the command argument in the URL), the user supplied information is sent as a data block followed by the request header.
  • the present invention modifies the original URL so that any action initiated by the user to access a target website or to submit information to a target website would be redirected to the service center 22, which acts as an intermediary (e.g., an intermediate or proxy server).
  • the service center 22 may translate the information provided by the target website to the user or when information is submitted by the user, the service center 22 may translate the submitted information, and forward the translated submission to the target website.
  • the process 300 proceeds to process block 304, where the process 300 proceeds to locate the URL. If, at decision block 330, it was determined that the action is a "POST" command, the process 300 proceeds to process block 332, where the corresponding encapsulated information provided prior to issuing the POST command is sent or posted to a designated intermediate server, such as server 22 (see Figure 1, Figure 2A or 2B).
  • the designated intermediate server captures the information (typically on form) from the user or developer, as shown in process block 334, and determines if the captured content requires translation.
  • the translation determination process involves giving instructions to the user to insert the term to be translated between special markers. For example, if a user wants the term "XXXX” to be translated, he will enter *XXXX*, where "*" is the marker (ASCII value of 42) and "XXXX” is the term to be translated. Alternatively, the marker may be " ⁇ " (ASCII value of 126) or any other predetermined marker.
  • the translation determination process searches for the special markers, and if they are found, the terms included between the markers are translated.
  • the designated intermediate server captures the document returned from the target web server, and performs a translation and transposition process (process block 338).
  • the resulting translated page is sent to the user or develop, as shown in process block 340.
  • the process 300 determines if it should continue processing requests. If so, it returns to process block 302. Otherwise, the process 300 terminates.
  • FIGS 4A and 4B are flowcharts illustrating one embodiment of the tag processing technique provided in accordance with the principles of the invention.
  • the tag processing technique is a portion of the process described in process block 312 of Figure 3A, to provide the modified URL.
  • Figure 5 illustrates exemplary code used in implementing the tag processing technique of Figures 4A and 4B.
  • an element is a fundamental ' component of the structure of a text document. Some examples of elements are heads, tables, paragraphs, and lists. HTML tags are used to mark the elements of a file for one's browser. Elements may contain plain text, other media elements or a combination thereof. To denote the various elements in an HTML document, tags are used. Accordingly, to provide interactive communication between a host of a website and a user via an intermediate server, the tags must be processed, so that the HTML documents may be subsequently provided to the correct parties.
  • the SRC properties of the image tags (and where used, the dynamic SRC (DYNSRC) and low resolution SRC (LOWSRC) attributes), the HREF property from the anchor and FRAME tags, the properties of the META and BASE tag, the BACKGROUND attribute of the BODY tag, the CODEBASE attribute of the APPLET and OBJECT tags and the FORM tag are processed.
  • Images are placed in Web documents using the image or IMG tag.
  • the source or SRC attribute of the image tag is used to activate the image tag.
  • the value of the SRC is the URL of the graphic that one wishes to display on a Web page.
  • An anchor tag is used to link documents to one another, while FRAME tag creates a frame, which is an individual, independently scrollable region of a Web browser.
  • the BODY tag specifies the main content of a document.
  • the APPLET tag runs an applet referred to by a URL, while the OBJECT tag runs an object referred to by a URL.
  • the hypertext reference or HREF property refers to the location of the file that one desires to load.
  • a META tag specifies information about the document or creates an HTTP response header, while a base tag specifies the base URL for a document.
  • An HTML tag identifies a document as an HTML document.
  • the FORM tag creates an HTML form.
  • the process 312 proceeds to process block 402, where it checks and modifies the HTML tags associated with the "GET" command. The process 312 then proceeds to decision block 404, where it determines if the SRC from the image tags have Fully Qualified Resource Locators (FQRL) (if the DYNSRC and LOWSRC attributes are implemented, the process 312 also determines if they have an FQRL). If so, it proceeds to decision block 408. Otherwise, the process 312, proceeds to process block 406, where it modifies the image tags with a FQRL that points to the source of the images to the original server. The process 312 then proceeds to decision block 408.
  • FQRL Fully Qualified Resource Locators
  • the process 312 determines if the HREF property from the anchor and FRAME tags have a FQRL. If so, the process 312 proceeds to decision block 414. Otherwise, it proceeds to process block 410, where it modifies the anchor and FRAME tags to ensure that they include an FQRL (process block 410). The process 312 then inserts the URL to the proxy server (such as server 22) before the original URL (process block 312). The process 312 then proceeds to decision block 414.
  • the proxy server such as server 22
  • the process 312 determines if the properties of the META tag and BASE tag include a FQRL. If so, the process 312 proceeds to process block 420. Otherwise, the process modifies the META and BASE tags to ensure that they include an FQRL (process block 416). The process 312 then inserts the URL of the proxy server before the original URL (process block 418). The process 312 then advances to process block 420.
  • the process 312 determines if the background attribute of the body tag is FQRL. If so, it proceeds directly to process block 424. Otherwise, it proceeds to process block 422, where it modifies the BODY tag to ensure that it has an FQRL. It then proceeds to process block 424.
  • the process 312 determines if the CODEBASE attribute of the APPLET and OBJECT tags are FQRLs. If so, the process 312 proceeds to process block 428. Otherwise, it proceeds to process block 426, where it modifies the APPLET and OBJECT tags to ensure that they are FQRL. The process 312 then proceeds to process block 428.
  • the process 312 checks and modifies the HTML tag associated with the "POST" command.
  • the process 312 checks the action property from the FORM tag to determine if it is Fully Qualified. If not, it modifies the tag to ensure that it is Fully Qualified (process block 430). Next, it inserts the modified URL to the ACTION property before the original URL (process block 432). Process 312 then terminates.
  • Figure 6 illustrates one embodiment of a translation process provided in accordance with the principles of the invention.
  • the process 314 determines the language setting requested for translation of the textual content, as shown in process block 602.
  • the process 314 translates the text using translation memory technique as shown in process block 604.
  • a customized user lexicon translation technique is also implemented in conjunction with the translation memory technique. If the user is a first time or new user, the process 314 develops a translation memory account and/or customized user lexicon translation account for the new user.
  • the process 314 then translates the remaining textual content using machine language translation (process block 606). In the machine language translation process, words are automatically translated.
  • An example of the software available for providing machine language translation is that marketed by Otek in Taiwan.
  • the process 314 queries if post-editing is required, as shown in process block 608. If so, the process 314 proceeds to process block 610, where the developer performs post-editing manually. In one embodiment, the developer consults the user-feedback module, if available. The process 314 then proceeds to store the selected translated phrases into the translation memory module, and to store selected translated terms into the user-defined or customized user lexicon translation module, as shown in process block 612. The process 314 then proceeds to process block 614. If, at decision block 608, the process 314 determines that post-editing is not required, it proceeds directly to process block 614.
  • the process 314 stores the translated text upon completion of the translation process. Subsequently, it continues to monitor if the web page or web site has been updated. If not, it continues the monitoring process. If the web page or web site has been updated, the process 314 returns to process block 304 (see Figure 3A) to process and translate the corresponding text.
  • processes 604 transformation memory technique with the option of implementing a user-defined or customized lexicon translation
  • 606 machine language translation
  • 610 postediting
  • Figure 7 illustrates one embodiment of the customized user lexicon translation development technique provided in accordance with the principles of the invention.
  • the process 700 proceeds to process block 702, where it determines if the user has selected the development and implementation of a customized user lexicon translation account. If so, the process prompts the user to input the original word, the corresponding translation and function (e.g., verb, noun, pronoun) of the word, as shown in process block 704.
  • the process block 702 determines if the user has selected the development and implementation of a customized user lexicon translation account. If so, the process prompts the user to input the original word, the corresponding translation and function (e.g., verb, noun, pronoun) of the word, as shown in process block 704.
  • the process block 702 determines if the user has selected the development and implementation of a customized user lexicon translation account. If so, the process prompts the user to input the original word, the corresponding translation and function (e.g., verb, noun, pronoun) of
  • the process then stores the original word, corresponding translation and function (process block 706). Subsequently, the process queries if there are any edits or additions. If so, it returns to process block 704. Otherwise, it returns to the main process. If, at process block 702, the process determines that the user did not select the development and implementation of the customized user lexicon translation account, the process returns to the main process.
  • Figure 8 illustrates one embodiment of the web page or web site tagging process provided in accordance with the principles of the invention. Proceeding from a START state, the process 800 determines if a customized dictionary should be created (decision block 802). If so, it proceeds to process block 804, where it creates a customized industry lexicon dictionary. In one embodiment, the customized industry lexicon dictionary may be developed using the technique described in Figure 7 and the accompanying text. The process 800 then proceeds to process block 806. If, at process block 802, the process 800 determines that a customized dictionary does not need to be created, it proceeds directly to process block 806.
  • the process 800 proceeds to tag the selected website for implementation of the customized industry lexicon translation provided in accordance with the principles of the invention.
  • the process 800 proceeds to process block 808, where it encounters the selected website, recognizes the tag and signals the memory (e.g., server) to load either the customized dictionary or a standard dictionary (if the customized dictionary is not available).
  • the process then translates the text using either the customized dictionary or the standard dictionary, as shown in process block 810.
  • the process 800 then returns to the main process.
  • Figure 9A illustrates one embodiment of the translation memory technique provided in accordance with the principles of the invention.
  • the translation memory process 900A proceeds from a START state to process block 902, where it compares a phrase in the text to a phrase stored in the database. The process 900A then determines if they are identical (decision block 904). If so, the process 900A provides the corresponding translation of the phrase as stored in the database (process • block 906), and returns to the main translation process 314. If, at decision block 904, the process 900A determines that an identical phrase is not found, the process 900A queries if it should continue looking for such a phrase (decision block 908). If so, the process 900 A proceeds to process block 902. Otherwise, it returns to the main translation process 314.
  • key phrases and their corresponding selected translations may be used in the translation memory process for various categories of customers. For example, translation of information for clients in the financial industry or the medical industry may require the use of specific translation memory modules, each having its own specific translation terms. In these cases, the customers may be assigned an identification (ID), which identifies them as requiring translation using a ' particular translation memory module.
  • ID identification
  • Figure 9B illustrates one embodiment of the customized lexicon translation technique provided in accordance with the principles of the invention.
  • the process 900B proceeds from a START state to process block 922, where it selects a customized lexicon translator to be used in translating text.
  • the customized lexicon translator may be tailored for industry, cultural or personal use. Examples include a medical lexicon, a computer lexicon, a Cantonese lexicon and a personal lexicon.
  • the process 900B then compares a term in the text to the stored terms (process block 924). Next, it determines if it found an identical term (decision block 926). If so, it provides the corresponding translation of the term as stored in the database (process block 928) and returns to the main translation process 314. If, at decision block 926, the process 900B determines that an identical term was not found, it proceeds to determine if it should continue searching for the term. If so, it returns to process block 924. Otherwise, the process 900B returns to the main translation process
  • FIG. 10 illustrates one embodiment of the user feedback and review process provided in accordance with the principles of the invention.
  • the process 1000 proceeds from a START state and proceeds to decision block 1002, where it determines if the user has selected the "feedback" icon. If not, the process 100 continues monitoring user activity (process block 1004). However, if the "feedback" icon has been selected, the process 1000 displays the page for entering comments and suggested translations (process block 1006). Next, the user enters his/her comments and/or suggestions regarding translations (process block 1008).
  • the comments are stored in a user feedback module for later use. For example, the post editor may select to review the user feedback during post-editing (process block 1012). When thus selected, the user feedback and the corresponding web page are displayed (process block 1014). Upon reviewing the user feedback and the corresponding web page, the post-editor determines use of the comments in the post-editing process (process block 1016). The process 1000 then returns to the main translation process.
  • one aspect of the present invention relates to a system and method for providing interactive communication between a target website and the users viewing a translated version of the website through the service center.
  • information obtained from a target website through an intermediate or proxy website is translated using one of a plurality of processes to provide information in accordance with a translation request.
  • One of these processes includes processing dynamic content of the target website.
  • Dynamic HTML (“DHTML”) pages contain both static and dynamic content. Examples of such static and dynamic content include, but are not limited to text, images, links (such as URLs), etc.
  • the dynamic content is usually generated by client-side scripts. Scripts are interpreted programming languages. Examples of scripts include JavaScript and VBScript. Scripts are typically embedded in HTML pages, and are interpreted by the browser to perform various tasks. To retain the original look, feel, and functionality of a page while translating the page transparently for the user, both the static and dynamic content must be processed.
  • the system and method of the invention handles and processes the static and dynamic content on both the server and client (or end user's) sides of the system.
  • the system and method of the invention translates the text on any web pages, while preserving the look, feel, and functionality of the corresponding web page.
  • the system and method of the invention redirects every link to go through a proxy or intermediate server.
  • the system and method of the invention maintains a set of information, such as that providing the translation services of the invention, on a predetermined always on-screen frame or window.
  • the system and method of the invention will handle original content by inserting handlers or functions in places where dynamic content is generated. These handlers or functions parse and modify the content. For example, a dynamic content generating function call of "fnQ" f unction will be modified this way:
  • an alternate method for handling dynamic content involves modifying properties of certain objects (mostly, properties of objects (tags) are equivalent of tag attributes, such as " src", " href”, etc.).
  • properties of objects are equivalent of tag attributes, such as " src", " href”, etc.
  • object .property value
  • object. property handler( ⁇ alue)
  • a handler is inserted not only for property assignments, but also for property queries, e.g.
  • FIG 11 illustrates one embodiment of a process for processing HTML documents with scripts that modify the content dynamically. Beginning from a start state, the process 1100 inserts one or more handlers and corresponding code that manipulates or modifies HTML document dynamically (process block 1110). In one embodiment, the handler or the function of the handler is first defined. Next, code for performing the function is inserted. Thereafter, the handler may be inserted.
  • Figures 12A-C illustrate one example of the handler definition, code and handler insertion point. In one embodiment, the handler is inserted at every portion of the HTML document where modification of the content is considered to occur. In alternate embodiments, the handler may be inserted at specific locations.
  • process block 1112 the script is activated inside the as triggered by the action specified in the HTML code.
  • the inserted handler is called by the script (process block 1114).
  • the embedded code corresponding to the handler is then activated (process block 1116).
  • the task corresponding to the handler is then executed (process block 1118).
  • the process 1000 then proceeds to determination block 1120, where it queries if it should continue processing. If so, the process 1100 returns to process block 1114. Otherwise, it terminates.
  • these handlers may be inserted in the original HTML documents on either or both the server-side and client-side.
  • server-side processing is performed to modify static scripts in script HTML tags.
  • client-side handlers are inserted by parsing the HTML document on the client-side, and also by modifying handlers inserted by other handlers placed in the HTML document on the server-side, thus, handlers are typically inserted on the client side to process dynamic content or dynamically generated script, while processing (as described earlier) of static scripts is performed on the server-side. For example, if the original HTML text of a page is the following:
  • fixUrlQ is another handler that will redirect the "index.html” relative reference to go through the proxy or translation site.
  • Document content generation function calls such as document. write( expr) and document. writeln( expr) are modified in accordance with the invention by inserting the handler fixHtmlSerialQ and any corresponding code. For example,
  • Dynamic Script code executing function calls such as eval(expr), execScript(expr), setTimeout(expr, ...) ard setlnterval(expr, 7) are ⁇ Ddified in accordance with the principles of the invention to insert the handler fixScriptO as follows:
  • Dynamic URL generation function calls such as object .link(expr) , object.showModalDialog(expr) and object.showModelessDialog(expr) are modified in accordance with the principles of the invention by inserting the handler fixURLO as follows:
  • Dynamic text displaying function calls such as alert(expr), confirm(expr), prompt(exprl, expri) are modified by inserting the handler fixText() in accordance with the principles of the invention, as follows:
  • Window/Browser Navigation Function Calls, such as location. assign(expr), location.replace(expr), window. open(exprl, expr2, ...) ard window. navigate( expr) may be processed in accordance with the principles of the invention to insert the handler fixURLO as follows:
  • an alternate method for handling dynamic content involves modifying properties of certain objects.
  • object.de/aultStatus expr
  • object.defaultStatus fixText(expr)
  • object.status expr
  • object.status fixText(expr)
  • object.onXYZ expr
  • object.onXYZ fixScript(expr)
  • HTML URL Properties Assignments are modified in accordance with the principles of the invention by inserting the handler fixURLQ as follows:
  • Non-HTML URL Properties Assignments are modified in accordance with the principles of the invention by inserting the handler fixAbsUrlO as follows:
  • object.target expr
  • object.target fixTarget(expr)
  • One aspect of the invention relates to a system and method for maintaining a first set of information and /or services, such as that providing the translation services of the invention, on a predetermined frame of a display page.
  • a frame is a subdivision of a window.
  • One or more windows may be displayed on a display page of the computer.
  • FIG. 13 illustrates one example of a process for maintaining information and/or services in a predetermined frame of a display page, in accordance with the principles of the invention.
  • the process of the invention ensures that a set of information or services, such as that provided by the proxy or intermediate server, remains in a specific frame (such as frame 1310 of Figure 13) of a display page (e.g., display page 1305) of the display screen (e.g., 1300), while another set(s) of information is being displayed in another frame (e.g., frame 1320).
  • the display page is provided within a browser.
  • auxiliary scripts such as e-mail, chat session management, etc.
  • auxiliary scripts may be executed in a separate, independent window.
  • Each frame and each window comprises layers. Information may be displayed on each of these layers.
  • auxiliary scripts, e-mail, banners, etc. may be executed in different layers of the same predetermined frame or in different layers of a different frame. Alternatively, they may be executed in different layers of the window in which the predetermined frame resides, or in different layers of a different window.
  • top(.XYZ), window. top(.XYZ), parent(.XYZ), and window. par ent(.XYZ) may be modified in accordance with the principles of the invention as follows:
  • the process or the invention avoids removal of a desired information or services, or a set of information or services, from a predetermined frame or window on a display page of the browser. In this manner, information such as that providing the translation services (provided by the proxy or intermediate server) may be maintained at a specific and unchanging location.
  • the handler "wndTopQ" is a function that returns a pointer to an original top window.
  • the handler "wndParentQ" u sually returns a reference to the parent window, except when parent window is proxy server' s top frame; in this case, " wndParent()" returns a reference to the parent of proxy server' s frameset window which contains proxy server' s top frame. This is done, because some of the Web browsers return null pointer as window.parent, some others return reference to " window” .
  • fixUrlO handler In processing static and dynamic content, the fixUrlO handler is first used to call another handler, fixAbsUrlQ, to ensure that sUrl is a fully qualified absolute URL.
  • fixUrlQ handler modifies (and returns as the result) sUrl in the following manner:
  • fixAbsUrlQ function returns a fully qualified absolute URL equivalent of sUrl.
  • fixHtmlSerialQ function is the serial version of fixHtmlQ. That is, it is able to process HTML code portion by portion, where two or more portions may contain different parts of a single tag.
  • the handler fixHtmlO is not able to correctly handle or process the associated code:
  • the handler fixHtmlSerialQ can process the code correctly by first buffering the first two portions of the code. When it reaches the third portion, it will assemble the three portions and will pass them to fixHtmlO .
  • fixHtmlSerialQ keeps unfinished tags in a buffer until sequential calls to fixHtmlSerialQ has been completed.
  • handler fixHtmlSerialQ is used to more efficiently process codes that may be separately generated.
  • the following code portions are used as an example.
  • the fixScriptQ function performs the same script parsing/modifying process that is performed on static scripts Server-side. It places handlers where needed.
  • the fixTextO function attempts to translate the given text using a pre-translated phrase dictionary that is built on the Server-side at the time of static script parsing.
  • This phrase dictionary contains all phrases extracted from static scripts in the original HTML page. This dictionary (and fixTextO function) are used for translation of text that may be found in the following places:
  • the process of the invention provides increased storage capacity and decreased network traffic. This is accomplished in one embodiment, by deleting all unnecessary comments and/or removing white (blank) spaces in scripts. This decreases page size and as a result, storage size and network traffic. In one embodiment, the HTML comments are left unchanged, because many scripts use them as placeholders.
  • a server-side script processing technique of the invention extracts all string constants (such as text located within JavaScript) from all scripts from one or more pages of the original HTML text. For example, in the following code portion,
  • the string constants are used to build a phrase dictionary of the strings of sentences or scripts.
  • the phrase dictionary is used in generating dynamic HTML terms on the client-side.
  • This phrase dictionary may be stored in the beginning of the translated page, for example, as a JavaScript associative array.
  • fixTextO handler or function may use the array for translation purposes. If the whole phrase/sentence is not found in this dictionary, fixTextQ tries to translate parts of it, using the same dictionary.
  • the process of the invention may detect the presence of a "mailto:” protocol URL. Upon detection of this protocol, the process of the invention it replaces the "mailto:” protocol as follows:
  • TranslationServer is the domain name of the proxy or intermediate server
  • SendMailScript is a web-based e-mail program or client
  • the email may be redirected to the proxy or intermediate server, which provides e-mail translation services.
  • the e-mail redirection is also performed by the "getAbsUrlQ" f unction on the client- side and by a similar function on the Server-side.
  • the connection between proxy server and the end-user could be either secure or unsecured, depending on user preferences.
  • the process of the invention may provide secure transmission of a translated page or site.
  • a secure connection using a protocol such as the Hypertext Transport Protocol (HTTP), may be established between the originating server and the translation server (such as the proxy or intermediate server described above).
  • HTTP protocol uses a Secured Socket Layer (SSL) to authenticate the connection between the server and the client. Since the proxy server of the invention is coupled between the end user and the target website, the HTTP connection cannot be established without special processing.
  • one aspect of the present invention redirects the user's request to the proxy server of the invention, which provides a secured channel between the user and the proxy server.
  • the proxy server then initiates a HTTP session with the target website. Once a HTTP session is established, the proxy server will then facilitate a data exchange between the client (end user) and the target server, transparently to both parties.
  • a cookie is a text file of user data that helps an entity personalize web pages for specific users, as well as identify an online customer's shopping or viewing habits. It may also be used to store information about a web site's users.
  • the cookie typically resides in the browser's memory, but when the browser is closed, the information is written to a file on the user's hard drive.
  • the cookie is generally differentiated by the user's domain name.
  • One aspect of the present invention uses a storage location on the proxy server that is specified for managing all the cookies sent to the proxy server by the target servers.
  • the cookies are inserted into the request stream, If the web server sets a new cookie value, the cookie server intercepts the cookie and stores it. The end user will never get the cookie and thus will not be confused.
  • the cookie is indexed to the user via the user's unique identification number, so that retrieval is fast and reliable.
  • the present invention thus provides a system and for efficiently retrieving, translating, organizing and updating information in different languages through a communication network, and to provide a seamless display of the translated and organized information.
  • a service center that is connected over one or more communication links to a remote network (such as the internet) may be requested to provide translation of media elements on one or more pages of a client website.
  • the client's website may be configured to display a translation function key, which when selected by a user, would provide a link to the service center website.
  • the service center website Upon such a link, the service center website will respond " on-the-fly" by accessing the information (such as text) on one or more pages of the client's website, translating the corresponding information (e.g., text), and providing the resulting translated information to the user requesting viewing of the translated website or web page(s).
  • the service center website will respond " on-the-fly" by accessing the information (such as text) on one or more pages of the client's website, translating the corresponding information (e.g., text), and providing the resulting translated information to the user requesting viewing of the translated website or web page(s).
  • the service center website will respond " on-the-fly” by accessing the information (such as text) on one or more pages of the client's website, translating the corresponding information (e.g., text), and providing the resulting translated information to the user requesting viewing of the translated website or web page(s).
  • a website may be efficiently and accurately translated. Any updates to the website may also be correspondingly
  • the invention also provides a system and method for providing interactive communication between the hosts of a website and the users viewing a translated version of the website through the service center. Such interactive communication will facilitate submittal of personal or general information from a user to a target website, and/or provide a way for exchange of information between the parties.
  • the invention relates to an apparatus and method for providing accurate and efficient translation of one or more web pages, or an entire website.
  • the customized user lexicon feature of the invention facilitates custom translation, while increasing future translation efficiency and accuracy.
  • the customized user lexicon translation process may be implemented as part of a machine language translation process.
  • the machine language translation-customized user lexicon translation process may be provided instantaneously or " on-the-fly" . As a result, translation may be provided immediately and accurately.
  • updates to a website may be translated with the same efficiency and accuracy.
  • the post-editing process may be implemented in conjunction with the machine language translation process to provide increased accuracy in translation.
  • the user feedback process may be provided to obtain different perspectives on the translation of a website. Such user feed back may be used to enhance the translation process.

Abstract

A system (12) and method for providing information in a process based system are disclosed. The method comprises inserting a function into stored information (60) comprising hypertext markup language, receiving a request to access a target with an address, the target having a memory with the function and the stored information. The address is modified to redirect the request to a modified address representative of an address of an intermediary. The function and stored information are processed to provide translated information (22) in a predetermined language, which is forwarded to a requestor (40) of the request.

Description

SYSTEM AND METHOD FOR PROVIDING
INTERACTIVE TRANSLATION OF INFORMATION
IN A COMMUNICATION NETWORK
BACKGROUND OF THE INVENTION
The present application is a continuation-in-part application of U.S. Patent Application Number 09/523,412, entitled "System and Method for Providing Interactive Translation of Information in a Communication Network" filed March 10, 2000, which is assigned to the assignee of the present application.
1. Field of the Invention
The present invention relates in general to database development, translation, organization and presentation, and more particularly to a method and apparatus for efficiently retrieving, accurately translating, updating, organizing and presenting information in different languages through a communication network and to provide a seamless display of the translated and organized information. The invention also provides interactive translation over the communication network.
2. Description of the Related Art
Advances in technology have led to the availability of a vast amount of information accessible via a computer network such as the World Wide Web (WWW) or the Internet. The World Wide Web enables a user to have easy access to information on a worldwide scale. In addition, it facilitates delivery of information worldwide. Such information includes text files, video clips, web pages, flash and/or shareware presentations, computer programs and other information that can be provided in digital format.
However, at present, information posted on the World Wide Web is typically offered in the home or native language of the entity presenting the information. For the information to be presented in a plurality of languages, the information, for example, the content of a website, has to be translated into the respective languages.
One approach to this problem is the use of computer-based machine language translation systems. However, such machine- based translation system is typically limited to translation between two languages. Moreover, machine-based translation systems are typically able to translate words and phrases in cultures having a unitary language and /or measurement scale using a set of translation rules. In certain countries, cultures or industries, language nuances may exist. In addition, there may be differences in measure or scale units such as length, unit of weight, or volume. As a result, the translation of the languages and the conversion of scale units may be inaccurate and/or burdensome.
A second approach is the use of manual translation systems. Because such manual translation systems are time consuming and thus expensive, they are not available instantaneously or " on-the- fly" and are typically used for translating information posted on websites on a case-by-case basis.
Moreover, in existing translation systems, including those discussed above, there is no provision for continually updating or refining of the information presented. In addition, there is no provision for accurately translating terms or phrases that customized, for example, terms or phrases that have cultural or industry-specific connotation.
Furthermore, websites currently implementing translation systems are only able to present information passively, and are unable to accept information provided by the user, such as identification information, credit information and the like.
Accordingly, there is a need in the industry for a system and method for overcoming the aforementioned problems.
Scripts are interpreted programming languages. Examples of scripts are JavaScript and VBScript. Script elements can be found embedded in HTML pages. They are interpreted by the browser to perform various tasks. Scripts commonly provide dynamic generation or modification of the Universal Resource Locator (URL), as well as in the text. While this prevalent practice enhances web page interactivity, it complicates the software code required for properly translating the HTML page. Accordingly, there is a need in the technology to provide proper translation of both static and dynamically generated URLs and text.
BRIEF SUMMARY OF THE INVENTION
A system and method for providing information in a processor- based system are disclosed. The method comprises inserting a function into stored information comprising hypertext markup language, receiving a request to access a target with an address, the target having a memory with said function and said stored information. The address is modified to redirect the request to a modified address representative of an address of an intermediary. The function and stored information are processed to provide translated information in a predetermined language, which is forwarded to a requestor of the request.
BRIEF DESCRIPTION OF THE DRAWINGS
Figure 1A is a system block diagram of one embodiment of a network system in which the apparatus and method of the invention may be implemented.
Figure IB is a system block diagram of one embodiment of a computer system, which implements the embodiments of the invention.
Figure 2A is a system block diagram illustrating one embodiment of one portion of the interactive translation process provided in accordance with the principles of the invention.
Figure 2B is a system block diagram illustrating one embodiment of a second portion of the interactive translation process provided in accordance with the principles of the invention.
Figures 3A, 3B and 3C are a flowcharts illustrating one embodiment of an overview of the information processing and translation process provided in accordance with the principles of the invention.
Figures 4A and 4B are flowcharts illustrating one embodiment of the tag processing technique provided in accordance with the principles of the invention.
Figures 5A and 5B illustrate exemplary code used in implementing the tag processing technique of Figures 4 A and 4B. Figure 6 illustrates one embodiment of a translation process provided in accordance with the principles of the invention.
Figure 7 illustrates one embodiment of the user-defined or customized user lexicon translation development technique provided in accordance with the principles of the invention.
Figure 8 illustrates one embodiment of the web page or web site tagging process provided in accordance with the principles of the invention.
Figure 9A illustrates one embodiment of the translation memory technique provided in accordance with the principles of the invention.
Figure 9B illustrates one embodiment of the customized lexicon translation technique provided in accordance with the principles of the invention.
Figure 10 illustrates one embodiment of the user feedback and review process provided in accordance with the principles of the invention.
Figure 11 illustrates one embodiment of the dynamic content processing technique provided in accordance with the principles of the invention.
Figures 12A-C illustrate one example of the handler definition and processing technique provided in accordance with the principles of the invention. Figure 13 illustrates one example of a process for maintaining information and /or services in a predetermined frame of a display page, in accordance with the principles of the invention.
DETAILED DESCRIPTION OF THE PREFERRED INVENTION
One aspect of the present invention relates to a system and method for efficiently retrieving, translating, organizing and updating information in different languages through a communication network, and to provide a seamless display of the translated and organized information. In one embodiment, a service center that is connected over one or more communication links to a remote network (such as the internet) may be requested to provide translation of media elements on one or more pages of a client website. The media elements may include text, a file of video clips, static photographs, JPEG images, audio clips, animation, graphics, any type of informational material or any combination thereof. Users accessing the service center website may then view the client's website in one of a plurality of languages. In an alternate embodiment, the client's website may be configured to display a translation function key, which when selected by a user, would provide a link to the service center website. Upon such a link, the service center website will respond immediately or " on-the-fly" by accessing the information (such as text) on one or more pages of the client's website, translating the corresponding information (e.g., text), and providing the resulting translated information to the user requesting viewing of the translated website or web page(s).
A second aspect of the present invention relates to a system and method for providing interactive communication between a target website and the users viewing a translated version of the website through the service center. Such interactive communication will facilitate submittal of personal or general information from a user to a target website, and/or provide a way for exchange of information between the parties. In one embodiment, information obtained from a target website through an intermediate or proxy website is translated using one of a plurality of processes to provide information in accordance with a translation request. The user may also communicate with the target website through the intermediate server. In one embodiment, the user may submit information to the target website through the intermediate server. The information thus provided may be translated by the server prior to being forwarded to the target website.
A third aspect of the present invention relates to an apparatus and method for providing translation of one or more web pages, or an entire website using an intermediate or proxy website. In one embodiment, memory translation technique is implemented to translate the information. The memory translation technique may be implemented in conjunction with a user-defined lexicon translation or a customized user lexicon translation process, which facilitates custom translation by the intermediate website and increases future translation efficiency and accuracy. The customized user lexicon translation process may be implemented as part of a machine language translation process. The machine language translation-customized user lexicon translation process may be provided automatically, in response to a request for translation. In another embodiment, a manual post-editing process may be implemented in conjunction with the machine language translation process to provide increased accuracy in translation. In addition, a user feedback process may be provided to obtain different perspectives on the translation of a website. Such user feed back may be used to enhance the translation process.
Definitions
As discussed herein, a "computer system" is a product including circuitry capable of processing data. The computer system may include, but is not limited to, general-purpose computer systems (e.g., server, laptop, desktop, palmtop, personal electronic devices, etc.), personal computers (PCs), hard copy equipment (e.g., printer, plotter, fax machine, etc.), banking equipment (e.g., an automated teller machine), and the like. Content refers to application programs, driver programs, utility programs, file, payload, etc., and combinations thereof, as well as graphics, informational material (articles, stock quotes, etc.) and the like, either singly or in any combination. A "communication link" refers to the medium or channel of communication. The communication link may include, but is not limited to, a telephone line, a modem connection, an Internet connection, an Integrated Services Digital Network ("ISDN") connection, an Asynchronous Transfer Mode (ATM) connection, a frame relay connection, an Ethernet connection, a coaxial connection, a fiber optic connection, satellite connections (e.g. Digital Satellite Services, etc.), wireless connections, radio frequency (RF) links, electromagnetic links, two way paging connections, etc., and combinations thereof.
System Overview
A description of an exemplary system, which incorporates embodiments of the present invention, is herein described. Figure 1A shows a system block diagram of one embodiment of a network system 10 in which the apparatus and method of the invention is used. Referring to Figure 1A, the network system 10 comprises a service center 12 that is connected over one or more communication links 20 to a remote network 30 (e.g., a wide area network or the Internet) or a remote site (e.g., a satellite, which is not shown in Figure 1 A) to one or more user computer systems 40I-40N ("40"). In one embodiment the service center 12 is a website. The service center 12 includes one or more servers 22 and one or more databases 24. In one embodiment, the server 22 includes software modules for performing the processes of the invention, as described in detail in the following sections.
The server 22 may be coupled to one or more verification entities such as entity 60 for verification of credit information and for processing credit transactions. The service center 12 may also include one or more computers 26I-26 . If a plurality of computers are used, then the computers 26I-26M may be connected by a local area network (LAN) or any other similar connection technology. However, it is also possible for the service center 12 to have other configurations. For example, a smaller number of larger computers (i.e. a few mainframe, mini, etc. computers) with a number of internal programs or processes running on the larger computers capable of establishing communication links to the user computers.
The remote network 30 or remote site allows the service center 12 to provide information and services to the user computers 40I^40 , using software that is stored at the service center 12. The one or more databases 24 connected to the service center computer(s), e.g., computer 26ι, are used to store database. Each user computer 40I-40N is connected over a corresponding communication link 42I-42N such as a local carrier exchange to a respective ISP 44I-44N, through which access to the remote network 30 is made. By inputting the URL address of the target website with which the user desires to interact, the user may be connected to various target websites, such as websites 50I-50NN- In an alternate embodiment, each user may be connected over a corresponding communication link 48I-48N to the service center 12, which provides Internet access and service to the user computer(s) 40. In a further embodiment, the display screen for viewing the presentation may be located on a television coupled to the network 30. For example, the end user may be a viewer of a set top box television. In this case, navigation through the presentation may be provided using control buttons on a remote control unit for controlling viewing of the television, or by other means known in the art.
One aspect of the present invention relates to translation of one or more pages of a website. Such a translation process may occur on a computer system that is separate and apart from the service center 12, or may be developed using one of the computers 26I-26M- Upon completion of the development process, the translated pages may be stored in the database 24. Alternatively, the translated pages may be stored on a machine-readable medium. In one embodiment, the service center 12 that is connected over one or more communication links to a remote network (such as the internet) may be requested to provide translation of text on one or more pages of a client website. In this embodiment, the translated text is stored on the database 24. Users accessing the service center 12 website may then view the client's website in one of a plurality of languages. The translated information is posted by the server 22 directly to the user. In an alternate embodiment, the client's website may be configured to display a translation function key. When this key is selected a user, a link to the service center 12 website will be provided. Upon thus linking to the service center 12 website, the text on one or more pages of the client's website (or the entire website) will be immediately accessed and translated in a language setting selected by the user. The resulting translated information will be provided to the user requesting viewing of the translated website or web page(s).
Referring to Figure IB, the computer system 100 (representing either of computer 26 or 40) comprises a processor or a central processing unit (CPU) 104. The illustrated CPU 104 includes an Arithmetic Logic Unit (ALU) for performing computations, a collection of registers for temporary storage of data and instructions, and a control unit for controlling operation for the system 100. In one embodiment, the CPU 104 includes any one of the x86, Pentium™ Pentium II™ and Pentium Pro™ microprocessors as marketed by Intel™Corporation, the K-6 microprocessor as marketed by AMD™ or the 6x86MX microprocessor as marketed by Cyrix™Corp. Further examples include the Alpha™ processor as marketed by Digital Equipment Corporation™ the 680X0 processor as marketed by Motorola™ or the Power PC™processor as marketed by IBM™ In addition, any of a variety of other processors, including those from Sun Microsystems, MIPS, IBM, Motorola, NEC, Cyrix, AMD, Nexgen and others may be used for implementing CPU 104. The CPU 104 is not limited to microprocessor but may take on other forms such as microcontrollers, digital signal processors, reduced instruction set computers (RISC), application specific integrated circuits, and the like. Although shown with one CPU 104, computer system 100 may alternatively include multiple processing units. The CPU 104 is coupled to a bus controller 112 by way of a CPU bus 108. The bus controller 112 includes a memory controller 116 integrated therein, though the memory controller 116 may be external to the bus controller 112. The memory controller 116 provides an interface for access by the CPU 104 or other devices to system memory 124 via memory bus 120. In one embodiment, the system memory 124 includes synchronous dynamic random access memory (SDRAM). System memory 124 may optionally include any additional or alternative high-speed memory device or memory circuitry. The bus controller 112 is coupled to a system bus 128 that may be a Peripheral Component Interconnect (PCI) bus, Industry Standard Architecture (ISA) bus, etc. Coupled to the system bus 128 are a graphics controller, a graphics engine or a video controller 132, a mass storage device 152, a communication interface device 156, one or more input/output (I/O) devices 168I-168N, and an expansion bus controller 172. The video controller 132 is coupled to a video memory 136 (e.g., 8 Megabytes) and video BIOS 140, all of which may be integrated onto a single card or device, as designated by numeral 144. The video memory 136 is used to contain display data for displaying information on the display screen 148, and the video BIOS 140 includes code and video services for controlling the video controller 132. In another embodiment, the video controller 132 is coupled to the CPU 104 through an Advanced Graphics Port (AGP) bus.
The mass storage device 152 includes (but is not limited to) a hard disk, floppy disk, CD-ROM, DVD-ROM, tape, high density floppy, high capacity removable media, low capacity removable media, solid state memory device, etc., and combinations thereof. The mass storage device 152 may include any other mass storage medium. The communication interface device 156 includes a network card, a modem interface, etc. for accessing network 164 via communications link 160. The I/O devices 168I-168N include a keyboard, mouse, audio/sound card, printer, and the like. The I/O devices 168i-168n may be disk drive, such as a compact disk drive, a digital disk drive, a tape drive, a zip drive, a jazz drive, a digital video disk (DVD) drive, a magneto-optical disk drive, a high density floppy drive, a high capacity removable media drive, a low capacity media device, and /or any combination thereof. The expansion bus controller 172 is coupled to non-volatile memory 175, which includes system firmware 176. The system firmware 176 includes system BIOS 82, which is for controlling, among other things, hardware devices in the computer system 100. The system firmware 176 also includes ROM 180 and flash (or EEPROM) 184. The expansion bus controller 172 is also coupled to expansion memory 188a having RAM, ROM, and/or flash memory (not shown). The system 100 may additionally include a memory module 190 that is coupled to the bus controller 112. In one embodiment, the memory module 190 comprises a ROM 192 and flash (or EEPROM) 194.
As is familiar to those skilled in the art, the computer system 100 further includes an operating system (OS) and at least one application program, which in one embodiment, are loaded into system memory 124 from mass storage device 152 and launched after POST. The OS may include any type of OS including, but not limited or restricted to, DOS, Windows™(e.g., Windows 95™ Windows 98™ Windows NT™, Unix, Linux, OS/2, OS/9, Xenix, etc. The operating system is a set of one or more programs which control the computer system's operation and the allocation of resources. The application program is a set of one or more software programs that performs a task desired by the user.
In accordance with the practices of persons skilled in the art of computer programming, the present invention is described below with reference to symbolic representations of operations that are performed by computer system 100, unless indicated otherwise. Such operations are sometimes referred to as being computer-executed. It will be appreciated that operations that are symbolically represented include the manipulation by CPU 104 of electrical signals representing data bits and the maintenance of data bits at memory locations in system memory 124, as well as other processing of signals. The memory locations where data bits are maintained are physical locations that have particular electrical, magnetic, optical, or organic properties corresponding to the data bits.
When implemented in software, the elements of the present invention are essentially the code segments to perform the necessary tasks. The program or code segments can be stored in a processor readable medium or transmitted by a computer data signal embodied in a carrier wave over a transmission medium or communication link. The "processor readable medium" or " machine-readable medium" may include any medium that can store or transfer information. Examples of the processor readable medium include an electronic circuit, a semiconductor memory device, a ROM, a flash memory, an erasable ROM (EROM), a floppy diskette, a CD-ROM, an optical disk, a hard disk, a fiber optic medium, a radio frequency (RF) link, etc. The computer data signal may include any signal that can propagate over a transmission medium such as electronic network channels, optical fibers, air, electromagnetic, RF links, etc. The code segments may be downloaded via computer networks such as the Internet, Intranet, etc.
As discussed earlier, upon completion of the translation, the translated text may be stored in the database 24 or on a machine-readable medium. The translated text may then made available to users such as those located at user computer 1 -N, i.e., computers 40I-40N through service center 12 or by means of the machine-readable medium. If the translated text is presented via the machine-readable medium, the computers 40I-40N may not necessarily be linked to the remote network for purposes of viewing the translation.
For present discussion purposes, a discussion of the viewing process through the service center 12 will be described in the following sections. In particular, after a user computer system 40 establishes two- way communications with the service center 12, the user is invited to view the translation. The user may also be invited to make transactions such as purchasing of services or goods. In making purchases, verification of the user' s identity or credit may be provided via verification entity 60.
Translation System and Methods
As discussed earlier, one aspect of the present invention relates to a . system and method for efficiently retrieving, translating, updating, organizing and presenting information in different languages through a communication network, and to provide a seamless display of the translated and organized information.
In one embodiment, a service center (such as service center 22) that is connected over one or more communication links to a remote network (such as the Internet) may be requested to provide translation of media elements on one or more pages of a client website. The media elements may include text, a file of video clips, static photographs, JPEG images, audio clips, animation, graphics, any type of informational material or any combination thereof. Users accessing the service center website may then view the client's website in one of a plurality of languages.
In one embodiment, a website that requires translation services may first create the site in a predetermined or native language or dialect. Next, the translation services may be requested. Such a translation request may be provided by sending the request over the Internet or by otherwise sending the request (such as by contacting the service center by other communication links, or by mail). The translation process may be provided immediately or instantaneously in response to a request for translation, as discussed in detail in the following sections. Alternatively, the translation process may be provided through a combined automatic machine language translation and manual post-editing process provided in accordance with the principles of the invention, as discussed in detail in the following sections. In a further embodiment, the translation process may be provided through a manual post-editing process. The translated information may be located in the database of the service center 22, which may act as an intermediate or proxy server between a user and the target website(s). Any information that is initially translated may be refined using the techniques of the invention. For example, information that is initially translated using post-editing may be further refined by using machine language translation during a subsequent translation process. Likewise, information that is initially translated using machine language translation may be refined by using post-editing during a subsequent translation process. Accordingly, the invention may initially utilize any one of: custom lexicon translation, machine language translation and /or post-editing translation either alone or in any combination to translate information. During subsequent translation or translation updating processes, one or more of the translation techniques (i.e., custom lexicon, machine language or post-editing processes) may be used to further refine the translated information. Over time, the translation provided in accordance with the processes of the invention will provide a rich, accurate and efficient translation system in any specified language or dialect. The database of translation information may then be used to provide subsequent cost-effective, efficient and accurate translation. Such translation may be provided immediately in response to a request for translation, or on- the-fly, thus facilitating seamless translation of any information located on a target website.
The translation services, database management, translation efficiency and workflow management may be provided at the service center 22, which may be strategically located in regions worldwide so as to provide bandwidth and reliability. Any target website requesting the translation services will not be disrupted through the use of the translation services since all services are provided at the service center 22.
In an alternate embodiment, the client's website may be configured to display a translation function key, which when selected by a user, would provide a link to the service center 22, which acts as an intermediary (for example, as an intermediate or proxy server). Upon such a link, the service center 22 will respond immediately by retrieving the information (such as text) from its local database (such as database 24) or if the information is not already in its local database, the service center 22 will respond immediately by accessing the information on one or more pages of the client's website, translating the corresponding information (e.g., text), and providing the resulting translated information to the user requesting viewing of the translated website or web page(s).
A second aspect of the present invention relates to a system and method for providing interactive communication between the hosts of a website and the users viewing a translated version of the website through the service center. Such interactive communication enables the user to obtain information from a target website in a language specified by the user. In addition, the interactive translation and communication process will facilitate submittal of personal or general information from a user to a target website, and /or provide a way for exchange of information between the parties. In one embodiment, information obtained from a target website through an intermediate or proxy website is translated using one of a plurality of processes to provide information in accordance with a translation request. The user may also communicate with the target website through the intermediate server. In one embodiment, the user may submit information to the target website through the intermediate server. The information thus provided may be translated by the server prior to being forwarded to the target website, so that the target website only receives the translated information.
A third aspect of the present invention relates to an apparatus and method for providing translation of one or more web pages, or an entire website using an intermediate or proxy website. In one embodiment, a user-defined or customized user lexicon may be developed to facilitate custom translation by the intermediate website and to increase future translation efficiency and accuracy. The customized user lexicon translation process may be implemented as part of a memory translation process. It may also be implemented as part of a machine-translation process. The memory translation/machine language translation- customized user lexicon translation process may be provided immediately or instantaneously in response to a request for translation.
In one embodiment, two classes of user-defined or custom lexicon accounts may be established: a personal custom lexicon account and a corporate custom lexicon account. Personal custom lexicon account holders is assigned an Identification ("ID") may create their own dictionary of words and/or phrases, and the corresponding translations. The user may add the words and/or phrases, and their corresponding translations, via a User Interface that transfers the data into a memory location in the database 24 or other storage medium of the service center 22. Such a storage of information in the memory location may be referred to as the user's personal lexicon. Subsequently, when the user logs in again, their login ID sends a command to the server at the service center 22 to locate the user's personal lexicon from memory and then place the data into the random access memory (RAM), to facilitate quick access of the required information. Each time the user logs on, he has the opportunity to update his personal lexicon. The updated personal lexicon will first be stored in RAM, and later, typically when not used by the user; the updated personal lexicon will be stored in other long-term memory. This personal lexicon, if selected for usez will be first used in the translation process, in conjunction with machine language translation. In other words, the user's personal lexicon is first used for any subsequent translation processes. Following that, further translation may be provided by machine language translation. When entities having more than one user or customer requests translation services, they may request translation using the post-editing process first. Such initially post-edited information may be stored at the database 24 of the service center 22 in the form of Source and Target languages. The post-edited information, along with a specified Industry Lexicon and a customized translation process (provided to modify various contextual phrases or Idioms specific to a target website) will be assigned to that website through a "tagging" process. In particular, an identification is assigned to the particular website. The next time that particular website is called up through the service center 22 or through an Interface for translation, the service center 22 recognizes the identification or tag of the website. In response, the customized lexicon for the website is located (if available) and the Industry specific lexicon may also be located, for automatically translating the required information. In one embodiment, if an entity does not require or request post-editing translation, custom lexicon translation is not provided. The website is merely tagged so that future translation may be provided using specified Industry lexicon as part of the machine language translation process.
In another embodiment, a manual post-editing process may be implemented in conjunction with the machine language translation process to provide increased accuracy in translation. In addition, a user feedback process may be provided to obtain different perspectives on the translation of a website. Such user feed back may be used to enhance the translation process.
Figures 2A and 2B are system block diagrams illustrating one embodiment of the interactive translation process provided in accordance with the principles of the invention. Figures 3A and 3B are a flowcharts illustrating one embodiment of an overview of the information processing and translation process provided in accordance with the principles of the invention. With reference to Figures 2A, 2B, 3A and 3B, the information processing and translation process 300 proceeds from a START state to process block 302, where the user or developer requests the address such as the Universal Resource Locator (URL) of a desired or target website. The process 300 then determines if the URL is stored in cache, as shown in decision block 304. If so, the process 300 determines if the URL has expired (process block 306). If so, the process 300 proceeds to process block 308, where it logs onto the network 30. If, at decision block 304, it was determined that the URL is not in cache, the process 300 proceeds directly to process block 308. Advancing from process block 308, the process 300 fetches the content retrieved using the URL, from the network 30, as shown in process block 310. Next, as shown in process block 312, the content (e.g., a Hypertext Markup Language "HTML" page) is processed to provide a modified URL (which will facilitate unilateral or bilateral communication), and, in one embodiment, to add code that facilitates manipulation or modification of the original URL(s) that is/are dynamically generated by the original content. Such added code redirects the original URL to point to another address, such as that of the intermediate server or any other address.
In one embodiment, code is added to original HTML to accompany the modifications made to the original HTML document. For example, the following functions may be inserted into the HTML page obtained pursuant to the client's request: fixHtmlSerialQ, fixHtml(), fixScript(),fixUrl(), getAbsUrl(), and fixTargetQ. It is understood that other functions may be similarly inserted. The HTML page is analyzed to check for certain scripts that modify the content dynamically. Those that match those scripts are modified to call one of these functions. Detailed descriptions of various examples are provided below.
The HTML embedded scripts are being processed on both the server- and client-sides. Examples of server-side processing finds include, but are not limited to:
1. The possible calls of dynamic HTML generating functions like " document. write(expr)" and/or " document. writeln(expr)", which are then respectively replaced with " document. write(fixHtmlSerial(expr))" and/or " document. writeln(fixHtmlSerial(expr))" . That way one can handle dynamically generated HTML code. The fixHtmlSerial() function also handles unfinished HTML code that could be a tag which is generated by two or more sequential calls of document. writeQ and document. writeln() functions.
2. The possible assignments of dynamic HTML properties like " innerHTML = expr" and/or " outerHTML = expr", which are respectively replaced with " innerHTML = fixHtml(expr)" and/or
" outerHTML= fixHtml(expr)"
3. The possible calls of dynamically generated script code execution functions like " eval(expr)", " execScript(expr)",
" setTimeout(expr, ..)", " setlnterval(expr, ..)", etc., which are respectively replaced with " eval(fixScript(expr))", " execScript(fixScript(expr))" , etc. 4. The possible assignments of dynamically generated script event handlers such as " <Object>.on<Event> = expr", which is replaced with " <Object>.on<Event> = fixScript(expr)"
5. The possible assignment of dynamically generated URL of HTML resource properties like " <Object>. action = expr", " <Object>.href = expr", " <Object>.src = expr", etc, which are respectively replaced with " <Object>. action = fixUrl(expr)", etc.
6. The possible assignment of dynamically generated URL of non-HTML resource properties like " <Object>.lowsrc = expr",
" <Object> .background = expr", etc., which are respectively replaced with " <Object>.lowsrc = get AbsUrl (expr)", etc.
7. The possible function calls, having dynamically generated URL of HTML resource properties like " <Object>.link(expr)",
" <Object>.showModalDialog(expr, ...)", etc, which are replaced with " <Object>.link(fixUrl(expr))" etc.
8. The assignment of the window target name property, which is replaced with the fixTarget() function. The reason of this is to avoid overwriting the frameset with advertisements. The fixTarget() replaces
" _top" target with the name of a selected translation window frame name.
9. The possible access to " (window.)top" property and also "(window.)parent" property, which in IE returns top window when it is used in the context of a top window. Details regarding the processing and proper translation of static and dynamic content are provided in Figures 4-13 and the accompanying text.
The textual content of the URL is then translated (process block 314). Next, the translated text and processed URL or HTML page is reassembled (process block 315). The process 300 then proceeds to decision block 316, where it determines if the modified URL can be cached. If so, it proceeds to cache the URL and the corresponding text. The process 300 then proceeds to process block 320. If, at decision block 316, it is determined that the URL cannot be cached, the process 300 proceeds directly to process block 320. In addition, if, at decision block 306, it was determined that the URL had not expired, the process 300 retrieves the URL from cache 24, as shown in process block 322, and thereafter, it proceeds to process block 320.
At process block 320, the translated results are sent to the user's or the developer's browser 45 (see Figures 2 A and 2B). The translated text is displayed on the user's or the developer's browser 45, as loaded from the server (s) specified in the modified URL (process block 324). The images associated with the text from the server(s) described in the modified URL are also displayed (process block 326).
Next, the process 300 determines if there is any action from the user or developer, as shown in process block 328. If not, the process 300 continues monitoring for activity. Otherwise, it proceeds to decision block 330, where it determines if the action is a "GET" or a "POST" command. "GET" and "POST" commands are commands used in the Hypertext Transfer Protocol (HTTP). The "GET" command is a command issued by a client side browser as part of the HTTP protocol to retrieve a file from a server supporting the protocol. When a user opens up a browser and enters a URL, he may be considered as "interactively" requesting a URL from a website because he has "dynamically" entered or requested a URL. Once the content is returned to the user, the page may contain multiple links with URLs linked or connected to other pages. If the user then clicks on one of the URLs, he is making a "passive" request to the target website. This is because he is not given the opportunity to modify the content of the URL. As a result, if the user clicks on a link that takes him to http://www.domain.com/sub/pagel.htm, he cannot alter the URL to go to another location, e.g., http://www.domain.com/sub/page2.htm.
Clicking on a hyperlink typically invokes a "GET" command. This "GET" command is followed by the URL, the HTTP protocol version number and a Request Header (a text block that describes the viewer's computer host name, Internet Protocol (IP) address, configuration, type of browser used, etc.). When a user "submits" a form via the Internet, he is initiating an "interactive" session because the information the user is submitting may be supplied by the user (although in some cases, it can be precalculated and/or recalculated by an algorithm generated by code inside the web page). In this case, if the submit action is initiated using a "GET" command, the user supplied information is appended to the URL as part of the command. For example, by appending the parameter ID=3 and Name = Mark, the submit action may be represented by: http://www.domain.com/buy.asp?ID=3&Name=Mark. The command argument follows a "?" and is separated by "&".
The "POST" command encapsulates server-specific commands and data to be sent from the client side browser to the server. In the case of a "POST" command, in addition to deriving the command argument from the URL (as in the case of the Microsoft IIS server, although some Unix- based servers ignore the command argument in the URL), the user supplied information is sent as a data block followed by the request header. The following are examples of the format of each of the commands:
GET /hello.asp HTTP/1.0 Request Header Block
POST /hello.asp HTTP/ 1.0 Request Header Block Post Data Block
where "hello.asp" is the URL.
The present invention modifies the original URL so that any action initiated by the user to access a target website or to submit information to a target website would be redirected to the service center 22, which acts as an intermediary (e.g., an intermediate or proxy server). Once thus redirected, the service center 22 may translate the information provided by the target website to the user or when information is submitted by the user, the service center 22 may translate the submitted information, and forward the translated submission to the target website.
Accordingly, if the action is a "GET" command, it indicates that the user or developer has requested the URL of a site. Accordingly, the process 300 proceeds to process block 304, where the process 300 proceeds to locate the URL. If, at decision block 330, it was determined that the action is a "POST" command, the process 300 proceeds to process block 332, where the corresponding encapsulated information provided prior to issuing the POST command is sent or posted to a designated intermediate server, such as server 22 (see Figure 1, Figure 2A or 2B). The designated intermediate server captures the information (typically on form) from the user or developer, as shown in process block 334, and determines if the captured content requires translation. If so, the content is translated and then forwarded to the intended or target server, as shown in process block 336. In one embodiment, the translation determination process involves giving instructions to the user to insert the term to be translated between special markers. For example, if a user wants the term "XXXX" to be translated, he will enter *XXXX*, where "*" is the marker (ASCII value of 42) and "XXXX" is the term to be translated. Alternatively, the marker may be "~" (ASCII value of 126) or any other predetermined marker. The translation determination process searches for the special markers, and if they are found, the terms included between the markers are translated.
Thereafter, the designated intermediate server captures the document returned from the target web server, and performs a translation and transposition process (process block 338). The resulting translated page is sent to the user or develop, as shown in process block 340. The process 300 then determines if it should continue processing requests. If so, it returns to process block 302. Otherwise, the process 300 terminates.
By thus modifying the original URL and by adding code as described, the process of the invention provides interactive communication a target website and a user, while facilitating translation during such communication. In addition, by caching the original and modified URLs, the required translation may be provided very quickly and efficiently. Figures 4A and 4B are flowcharts illustrating one embodiment of the tag processing technique provided in accordance with the principles of the invention. In one embodiment, the tag processing technique is a portion of the process described in process block 312 of Figure 3A, to provide the modified URL. Figure 5 illustrates exemplary code used in implementing the tag processing technique of Figures 4A and 4B.
As is known by one of skill in the art, an element is a fundamental ' component of the structure of a text document. Some examples of elements are heads, tables, paragraphs, and lists. HTML tags are used to mark the elements of a file for one's browser. Elements may contain plain text, other media elements or a combination thereof. To denote the various elements in an HTML document, tags are used. Accordingly, to provide interactive communication between a host of a website and a user via an intermediate server, the tags must be processed, so that the HTML documents may be subsequently provided to the correct parties.
To provide interactive communication, various tags must be processed. In one embodiment, the SRC properties of the image tags (and where used, the dynamic SRC (DYNSRC) and low resolution SRC (LOWSRC) attributes), the HREF property from the anchor and FRAME tags, the properties of the META and BASE tag, the BACKGROUND attribute of the BODY tag, the CODEBASE attribute of the APPLET and OBJECT tags and the FORM tag are processed. Images are placed in Web documents using the image or IMG tag. The source or SRC attribute of the image tag is used to activate the image tag. In particular, the value of the SRC is the URL of the graphic that one wishes to display on a Web page. An anchor tag is used to link documents to one another, while FRAME tag creates a frame, which is an individual, independently scrollable region of a Web browser. The BODY tag specifies the main content of a document. The APPLET tag runs an applet referred to by a URL, while the OBJECT tag runs an object referred to by a URL. The hypertext reference or HREF property refers to the location of the file that one desires to load. A META tag specifies information about the document or creates an HTTP response header, while a base tag specifies the base URL for a document. An HTML tag identifies a document as an HTML document. The FORM tag creates an HTML form. By processing these tags as described below, the invention facilitates interactive communication between a web host and a user accessing the website through an intermediate website. Figure 5 illustrates exemplary code used in implementing the tag processing technique of Figures 4A and 4B.
From a START state, the process 312 proceeds to process block 402, where it checks and modifies the HTML tags associated with the "GET" command. The process 312 then proceeds to decision block 404, where it determines if the SRC from the image tags have Fully Qualified Resource Locators (FQRL) (if the DYNSRC and LOWSRC attributes are implemented, the process 312 also determines if they have an FQRL). If so, it proceeds to decision block 408. Otherwise, the process 312, proceeds to process block 406, where it modifies the image tags with a FQRL that points to the source of the images to the original server. The process 312 then proceeds to decision block 408.
At decision block 408, the process 312 determines if the HREF property from the anchor and FRAME tags have a FQRL. If so, the process 312 proceeds to decision block 414. Otherwise, it proceeds to process block 410, where it modifies the anchor and FRAME tags to ensure that they include an FQRL (process block 410). The process 312 then inserts the URL to the proxy server (such as server 22) before the original URL (process block 312). The process 312 then proceeds to decision block 414.
At decision block 414, the process 312 determines if the properties of the META tag and BASE tag include a FQRL. If so, the process 312 proceeds to process block 420. Otherwise, the process modifies the META and BASE tags to ensure that they include an FQRL (process block 416). The process 312 then inserts the URL of the proxy server before the original URL (process block 418). The process 312 then advances to process block 420.
At process block 420, the process 312 determines if the background attribute of the body tag is FQRL. If so, it proceeds directly to process block 424. Otherwise, it proceeds to process block 422, where it modifies the BODY tag to ensure that it has an FQRL. It then proceeds to process block 424. At process block 424, the process 312 determines if the CODEBASE attribute of the APPLET and OBJECT tags are FQRLs. If so, the process 312 proceeds to process block 428. Otherwise, it proceeds to process block 426, where it modifies the APPLET and OBJECT tags to ensure that they are FQRL. The process 312 then proceeds to process block 428.
At process block 428, the process 312 checks and modifies the HTML tag associated with the "POST" command. The process 312 checks the action property from the FORM tag to determine if it is Fully Qualified. If not, it modifies the tag to ensure that it is Fully Qualified (process block 430). Next, it inserts the modified URL to the ACTION property before the original URL (process block 432). Process 312 then terminates.
Figure 6 illustrates one embodiment of a translation process provided in accordance with the principles of the invention. Beginning from a START state, the process 314 determines the language setting requested for translation of the textual content, as shown in process block 602. The process 314 translates the text using translation memory technique as shown in process block 604. In one embodiment, a customized user lexicon translation technique is also implemented in conjunction with the translation memory technique. If the user is a first time or new user, the process 314 develops a translation memory account and/or customized user lexicon translation account for the new user. The process 314 then translates the remaining textual content using machine language translation (process block 606). In the machine language translation process, words are automatically translated. An example of the software available for providing machine language translation is that marketed by Otek in Taiwan. The use of machine language translation alone, while cost-effective when translating a single document, is also not highly accurate. However, when it is combined with the memory translation and /or user-defined lexicon translation of the invention, and/or the post editing process of the invention, the resulting translation will be highly accurate. Moreover, when the iterative translation process of the invention is implemented, a rich database may be provided for subsequent translations.
Next, the process 314 queries if post-editing is required, as shown in process block 608. If so, the process 314 proceeds to process block 610, where the developer performs post-editing manually. In one embodiment, the developer consults the user-feedback module, if available. The process 314 then proceeds to store the selected translated phrases into the translation memory module, and to store selected translated terms into the user-defined or customized user lexicon translation module, as shown in process block 612. The process 314 then proceeds to process block 614. If, at decision block 608, the process 314 determines that post-editing is not required, it proceeds directly to process block 614.
At process block 614, the process 314 stores the translated text upon completion of the translation process. Subsequently, it continues to monitor if the web page or web site has been updated. If not, it continues the monitoring process. If the web page or web site has been updated, the process 314 returns to process block 304 (see Figure 3A) to process and translate the corresponding text.
It should be understood that the processes 604 (translation memory technique with the option of implementing a user-defined or customized lexicon translation), 606 (machine language translation), and 610 (postediting) may be implemented in any sequence, either alone or in any combination, with or without using a predetermined or specific Industry Lexicon translation process.
Figure 7 illustrates one embodiment of the customized user lexicon translation development technique provided in accordance with the principles of the invention. Beginning from a START state, the process 700 proceeds to process block 702, where it determines if the user has selected the development and implementation of a customized user lexicon translation account. If so, the process prompts the user to input the original word, the corresponding translation and function (e.g., verb, noun, pronoun) of the word, as shown in process block 704.
The process then stores the original word, corresponding translation and function (process block 706). Subsequently, the process queries if there are any edits or additions. If so, it returns to process block 704. Otherwise, it returns to the main process. If, at process block 702, the process determines that the user did not select the development and implementation of the customized user lexicon translation account, the process returns to the main process.
Figure 8 illustrates one embodiment of the web page or web site tagging process provided in accordance with the principles of the invention. Proceeding from a START state, the process 800 determines if a customized dictionary should be created (decision block 802). If so, it proceeds to process block 804, where it creates a customized industry lexicon dictionary. In one embodiment, the customized industry lexicon dictionary may be developed using the technique described in Figure 7 and the accompanying text. The process 800 then proceeds to process block 806. If, at process block 802, the process 800 determines that a customized dictionary does not need to be created, it proceeds directly to process block 806.
At process block 806, the process 800 proceeds to tag the selected website for implementation of the customized industry lexicon translation provided in accordance with the principles of the invention. Next, the process 800 proceeds to process block 808, where it encounters the selected website, recognizes the tag and signals the memory (e.g., server) to load either the customized dictionary or a standard dictionary (if the customized dictionary is not available). The process then translates the text using either the customized dictionary or the standard dictionary, as shown in process block 810. The process 800 then returns to the main process.
Figure 9A illustrates one embodiment of the translation memory technique provided in accordance with the principles of the invention. The translation memory process 900A proceeds from a START state to process block 902, where it compares a phrase in the text to a phrase stored in the database. The process 900A then determines if they are identical (decision block 904). If so, the process 900A provides the corresponding translation of the phrase as stored in the database (process • block 906), and returns to the main translation process 314. If, at decision block 904, the process 900A determines that an identical phrase is not found, the process 900A queries if it should continue looking for such a phrase (decision block 908). If so, the process 900 A proceeds to process block 902. Otherwise, it returns to the main translation process 314.
In one embodiment, key phrases and their corresponding selected translations may be used in the translation memory process for various categories of customers. For example, translation of information for clients in the financial industry or the medical industry may require the use of specific translation memory modules, each having its own specific translation terms. In these cases, the customers may be assigned an identification (ID), which identifies them as requiring translation using a ' particular translation memory module.
Figure 9B illustrates one embodiment of the customized lexicon translation technique provided in accordance with the principles of the invention. The process 900B proceeds from a START state to process block 922, where it selects a customized lexicon translator to be used in translating text. The customized lexicon translator may be tailored for industry, cultural or personal use. Examples include a medical lexicon, a computer lexicon, a Cantonese lexicon and a personal lexicon. The process 900B then compares a term in the text to the stored terms (process block 924). Next, it determines if it found an identical term (decision block 926). If so, it provides the corresponding translation of the term as stored in the database (process block 928) and returns to the main translation process 314. If, at decision block 926, the process 900B determines that an identical term was not found, it proceeds to determine if it should continue searching for the term. If so, it returns to process block 924. Otherwise, the process 900B returns to the main translation process 314.
Figure 10 illustrates one embodiment of the user feedback and review process provided in accordance with the principles of the invention. The process 1000 proceeds from a START state and proceeds to decision block 1002, where it determines if the user has selected the "feedback" icon. If not, the process 100 continues monitoring user activity (process block 1004). However, if the "feedback" icon has been selected, the process 1000 displays the page for entering comments and suggested translations (process block 1006). Next, the user enters his/her comments and/or suggestions regarding translations (process block 1008). The comments are stored in a user feedback module for later use. For example, the post editor may select to review the user feedback during post-editing (process block 1012). When thus selected, the user feedback and the corresponding web page are displayed (process block 1014). Upon reviewing the user feedback and the corresponding web page, the post-editor determines use of the comments in the post-editing process (process block 1016). The process 1000 then returns to the main translation process.
Handling of dynamically generated content
As discussed earlier, one aspect of the present invention relates to a system and method for providing interactive communication between a target website and the users viewing a translated version of the website through the service center. In one embodiment, information obtained from a target website through an intermediate or proxy website is translated using one of a plurality of processes to provide information in accordance with a translation request. One of these processes includes processing dynamic content of the target website.
Dynamic HTML ("DHTML") pages contain both static and dynamic content. Examples of such static and dynamic content include, but are not limited to text, images, links (such as URLs), etc. The dynamic content is usually generated by client-side scripts. Scripts are interpreted programming languages. Examples of scripts include JavaScript and VBScript. Scripts are typically embedded in HTML pages, and are interpreted by the browser to perform various tasks. To retain the original look, feel, and functionality of a page while translating the page transparently for the user, both the static and dynamic content must be processed. In one embodiment, the system and method of the invention handles and processes the static and dynamic content on both the server and client (or end user's) sides of the system.
Thus, in summary, in one embodiment, the system and method of the invention translates the text on any web pages, while preserving the look, feel, and functionality of the corresponding web page. In a second embodiment, the system and method of the invention redirects every link to go through a proxy or intermediate server. In a third embodiment, the system and method of the invention maintains a set of information, such as that providing the translation services of the invention, on a predetermined always on-screen frame or window.
In general, the system and method of the invention will handle original content by inserting handlers or functions in places where dynamic content is generated. These handlers or functions parse and modify the content. For example, a dynamic content generating function call of "fnQ" f unction will be modified this way:
"fn(argl, arg2, ..., argN)" will be replaced with "fn(handlerl(argl), kandler2(arg2), ..., handlerN(argN))". Some arguments (depending on function) may have no handlers.
In cases where scripts are involved, an alternate method for handling dynamic content involves modifying properties of certain objects (mostly, properties of objects (tags) are equivalent of tag attributes, such as " src", " href", etc.). One example as provided in accordance with the invention is to insert a handler as follows:
"object .property = value" w ill be replaced with "object. property = handler(υalue)" '.
In some cases, a handler is inserted not only for property assignments, but also for property queries, e.g.
" object.property" c ould be replaced with "hand\er(object. property)" . Figure 11 illustrates one embodiment of a process for processing HTML documents with scripts that modify the content dynamically. Beginning from a start state, the process 1100 inserts one or more handlers and corresponding code that manipulates or modifies HTML document dynamically (process block 1110). In one embodiment, the handler or the function of the handler is first defined. Next, code for performing the function is inserted. Thereafter, the handler may be inserted. Figures 12A-C illustrate one example of the handler definition, code and handler insertion point. In one embodiment, the handler is inserted at every portion of the HTML document where modification of the content is considered to occur. In alternate embodiments, the handler may be inserted at specific locations.
In process block 1112, the script is activated inside the as triggered by the action specified in the HTML code. The inserted handler is called by the script (process block 1114). The embedded code corresponding to the handler is then activated (process block 1116). The task corresponding to the handler is then executed (process block 1118). The process 1000 then proceeds to determination block 1120, where it queries if it should continue processing. If so, the process 1100 returns to process block 1114. Otherwise, it terminates.
In accordance with the principles of the invention, these handlers may be inserted in the original HTML documents on either or both the server-side and client-side. In one embodiment, and as described earlier, server-side processing is performed to modify static scripts in script HTML tags. In one embodiment, client-side handlers are inserted by parsing the HTML document on the client-side, and also by modifying handlers inserted by other handlers placed in the HTML document on the server-side, thus, handlers are typically inserted on the client side to process dynamic content or dynamically generated script, while processing (as described earlier) of static scripts is performed on the server-side. For example, if the original HTML text of a page is the following:
<HTMLxHEAD><TITLE>Test</TITLEx/HEAD><BODY><SCRIPT> document.write("<SCRIPT>document.location='index.html';</SCRIPT>"); </SCRIPTx/BODYx/HTML>
it will be modified by server-side process according to the principles of the invention, to the following:
<HTMLxHEADxTITLE>Test</TITLEx/HEADxBODYxSCRIPT> document.write(fixHtmlSerial("<SCRIPT>document.location= 'index.html'; </SCRIPT>")); </SCRIPTx/BODYx/HTML>
where "fixHtmlSerialQ" is the " document.writeO" h andler. In accordance with the principles of the invention, the client-side process performs parsing and modifying of dynamic HTML contents, such that an original parameter of the form:
"<SCRIPT>document.location= 'index.html </SCRIPT>"
will be modified to
"<SCRIPT>document.location=fixUrl index.html') </SCRIPT>"
where " fixUrlQ" is another handler that will redirect the "index.html" relative reference to go through the proxy or translation site. The following is a list of possible functions and properties that can generate dynamic content and a corresponding description of how the process of the invention may process them:
A. Modification of Function Calls
A.l. Document Content Generation Function Calls
Document content generation function calls such as document. write( expr) and document. writeln( expr) are modified in accordance with the invention by inserting the handler fixHtmlSerialQ and any corresponding code. For example,
' 'document. write(expr)" ' => "document.wήte(fixHtmlSerial(expr))" ' 'document. τυriteln(expr)" ' => "document.writeln(fixHtmlSerial(expr))"
A.l. Dynamic Script Code Executing Function Call
Dynamic Script code executing function calls, such as eval(expr), execScript(expr), setTimeout(expr, ...) ard setlnterval(expr, ...) are πDdified in accordance with the principles of the invention to insert the handler fixScriptO as follows:
"evaKexpr)" = "eval(fixScript(expr))" "execScript(expr)" = "execScript(fixScript(expr))" "setTimeout(expr, ... " => "setTimeout(fixScript(expr), ...)" "setlnterυal(expr, ...)" = "setlntervaKfixScript(expr), ...)"
A.3. Dynamic URL Generation Function Calls
Dynamic URL generation function calls such as object .link(expr) , object.showModalDialog(expr) and object.showModelessDialog(expr) are modified in accordance with the principles of the invention by inserting the handler fixURLO as follows:
' 'object, ,link(expr)" = "object.link(fixUrl(expr))"
"object.showModalDialog(expr) " => "object.showModalDialog(fixUrl(expr))"
' 'object. showModelessDialog(expr) " => "object.showModelessDialog(fixUrKexpr)) "
A.4. Dynamic Text Displaying Function Calls
Dynamic text displaying function calls such as alert(expr), confirm(expr), prompt(exprl, expri) are modified by inserting the handler fixText() in accordance with the principles of the invention, as follows:
"alert(expr)" => "alert(fixText(expr))"
"confirm(expr)" = "confirm(fixText(expr))"
"prompt(exprl, expr2)" = "prompt(fixText(exprl)/fixText(expr2))"
A.5. Window /Browser Navigation Function Calls
Window/Browser Navigation Function Calls, such as location. assign(expr), location.replace(expr), window. open(exprl, expr2, ...) ard window. navigate( expr) may be processed in accordance with the principles of the invention to insert the handler fixURLO as follows:
"location.assign(expr)" => "location.assign(fixUrl(expr))" "location.replace(expr)" z> ' 'location. replace(fixUrl(expr))" ' 'window. open(exprl, expr2, ...)" = " window. open(fixU.rl(exprl), fixTarget(expr2), ...)"
" window. navigate(expr)" => " window. naυigate(fixUή(expr))" B. Object Properties
As discussed earlier, an alternate method for handling dynamic content involves modifying properties of certain objects.
B.l. HTML Code Properties Assignment
HTML Code Properties Assignment such as " object. innerHTML - expr" , " object.outerHTML = expr", etc. may be processed in accordance with the principles of the invention by inserting the handler " fixHtmlO" as follows:
"object. innerHTML = expr" => " object. innerHtml - fixHtml(expr)" "object.outerHTML = expr" = " object. outerHtml = fixHtml(expr)" "object.altHTML = expr" = " object. altHtml = fixHtml(expr)"
B.2. Text Property Assignment
Text property assignments such as "object.innerText = expr", ' 'object. outerText = expr" , "object.alt = expr" , etc . may be processed in accordance with the principles of the invention by inserting the handler "fixTextQ" as follows:
" object.innerText = expr" => " object.innerText = fixText(expr)"
" object. outerText - expr" = " object. outerText = fixText(expr)"
" object.alt - expr" => " object.alt = fixText(expr)"
" object.de/aultStatus = expr" = " object.defaultStatus = fixText(expr)"
" object.status = expr" = " object.status = fixText(expr)"
" object. title = expr" => " object. title = fixText(expr)" B.3. Event Handler Property Assignment
Event Handler Property Assignment, such as object.onXYZ = expr may be processed in accordance with the principles of the invention, by inserting the handler fixScriptQ as follows:
" object.onXYZ = expr" => "object.onXYZ =fixScript(expr)"
In this example, the assumption is made that every object' s property that begins with " on" is an event handler.
B.4. HTML URL Properties Assignment
HTML URL Properties Assignments are modified in accordance with the principles of the invention by inserting the handler fixURLQ as follows:
"object, href = expr " ==> "object, href = fix Url(expr) " "object. URL - expr" => "object. URL = fixUή(expr) " " object. location = expr" => " object. location = fixUrl(expr)" "object. action = expr" => "object. ction = fixUrl(expr)" "object.src = expr" => "object.src = fixUrl(expr)" "object.code = expr" => "object.code - fixUrl(expr)"
B.5. Non-HTML URL Properties Assignment
Non-HTML URL Properties Assignments are modified in accordance with the principles of the invention by inserting the handler fixAbsUrlO as follows:
"object.lowsrc = expr" => " object. lowsrc - fixAbsUrl(expr)" "object.dynsrc = expr" = "object.dynsrc = fix AbsUrK expr)" "object.codeBase = expr" => "object. CodeBase = fixAbsUrl(expr)" "object.background = expr" = "object.background = fix AbsUrl( expr)" ' 'object .UstStylelmage = expr" => " object. UstStylelmage - fixAbsUrl(expr)"
"object.src = expr" => "object. six = fix AbsUrK expr)"
B.6. Window Target Name Property
A Window Target Name Property, such as object. tar get = expr is modified in accordance with the principles of the invention by inserting the handler fixTargetO as follows:
"object.target = expr" => "object.target = fixTarget(expr)"
B.7. Maintenance of information in a predetermined frame
One aspect of the invention relates to a system and method for maintaining a first set of information and /or services, such as that providing the translation services of the invention, on a predetermined frame of a display page. For discussion purposes, a frame is a subdivision of a window. One or more windows may be displayed on a display page of the computer.
Certain target websites are configured to strip or prevent the maintenance of information from another source or website from being displayed simultaneously with the information provided at the target website. Figure 13 illustrates one example of a process for maintaining information and/or services in a predetermined frame of a display page, in accordance with the principles of the invention. In one embodiment, the process of the invention ensures that a set of information or services, such as that provided by the proxy or intermediate server, remains in a specific frame (such as frame 1310 of Figure 13) of a display page (e.g., display page 1305) of the display screen (e.g., 1300), while another set(s) of information is being displayed in another frame (e.g., frame 1320). In one embodiment, the display page is provided within a browser.
For example, when the user scrolls down a page (e.g., page 1305, using the scrolling bar 1325), the desired information (in frame 1310) remains at the predetermined location. In this manner, the translation services may coexist with the services or information provided by a target website. In addition, by maintaining the set of information at a predetermined frame, auxiliary scripts, such as e-mail, chat session management, etc., may be executed in a different frame. This technique also facilitates the display of advertisement banners or other graphical banners in the other frame. Alternatively, the auxiliary scripts, e-mail, banners, etc. may be executed in a separate, independent window. Each frame and each window comprises layers. Information may be displayed on each of these layers. Thus, in one further embodiment, the auxiliary scripts, e-mail, banners, etc. may be executed in different layers of the same predetermined frame or in different layers of a different frame. Alternatively, they may be executed in different layers of the window in which the predetermined frame resides, or in different layers of a different window.
Examples of how this may be accomplished are discussed below. Properties, possibly referring to the top frame (or frames located in other locations) provided at the proxy or intermediate server, such as top(.XYZ), window. top(.XYZ), parent(.XYZ), and window. par ent(.XYZ) (which are functions that are built into the browser) may be modified in accordance with the principles of the invention as follows:
"to ' "wndTopO"
"top.XYZ" => "wndTopQ.XYZ"
"window. top. YZ" => "wndTopQ.XYZ"
"parent" => "wndParentO"
"parent.XYZ" => "wndParentQ.XYZ"
" window. pareni.XYZ" =3> "wndParentQ.XYZ"
Using wndParentQ and wndTopO handlers, the process or the invention avoids removal of a desired information or services, or a set of information or services, from a predetermined frame or window on a display page of the browser. In this manner, information such as that providing the translation services (provided by the proxy or intermediate server) may be maintained at a specific and unchanging location.
The following description provides a detailed description of the wndTopO and wndParent() handlers of the invention. The handler "wndTopQ" is a function that returns a pointer to an original top window.
The handler "wndParentQ" u sually returns a reference to the parent window, except when parent window is proxy server' s top frame; in this case, " wndParent()" returns a reference to the parent of proxy server' s frameset window which contains proxy server' s top frame. This is done, because some of the Web browsers return null pointer as window.parent, some others return reference to " window" . Handler Function Information
The following is a description of the use of various handlers described above.
A. fixUrl(sUrl)
In processing static and dynamic content, the fixUrlO handler is first used to call another handler, fixAbsUrlQ, to ensure that sUrl is a fully qualified absolute URL.
Next, the fixUrlQ handler modifies (and returns as the result) sUrl in the following manner:
"XYZ" => "http://TranslationServer/TranslationScript?url=XYZ" where XYZ represents the URL, and the present invention modifies XYZ
B. HxAbsUrl(sUrl)
The fixAbsUrlQ function returns a fully qualified absolute URL equivalent of sUrl.
C. fixTarget(sTarget)
Many web pages have a complicated structure with multi-level nested frames. In the frame hierarchy, every single frame must have a unique name, used for its identification. Usually, as a web page is being loaded, the default target (i.e., the frame (window) name where it will be placed) is the current frame, which originated this page loading. However, a page can be loaded to other frame levels, and as a result, it could change frame hierarchy. Various target metanames, which are not actual frame names, such as " _top", " _parent", " _self", etc., which respectively represent the top-level frame (or frameset), parent frame, or current frame, may be used to as targets.
To avoid overwriting proxy server' s top frame, the fixTarget() function maps " sTarget", a target window name (actual or meta) to a proper one. Because frame (window) names could be changed dynamically, fixTarget() function returns the value of " wndTop().name" when " sTarget" = " _top", and the value of " wndParent().name" when " sTarget" = " _parent" . Otherwise, fixTarget() returns " sTarget" original target name.
D. fixHtml(sHtml)
The fixHtmlO function parses given HTML code and makes any needed modifications of the HTML, for example, link redirection, text translation, etc. It also finds embedded scripts (in tag attributes and script tags) and passes them to the fixScriptQ function, which parses them and makes modifications if needed. For example, an original line of code such as document.write("<SCRIPT>document.location='index.htmV;</SCRIPT>");
includes a Javascript statement " document. location^ index.html';" th at identifies a portion of its content as a URL. In this case, 'index.html' identifies that a URL is present. When this happens, the handler fixUrl() is inserted as follows:
document.write("<SCRIPT>document.location=fixURL('index.html'); </SCRIPT>") The addition of the handler fixUrl() allows the processing of given HTML code as described earlier. Other examples are as follows:
document.writeC <A href=ja.Oascript:location='index.html';>"); => document.writeC <A href=jaυascript:location=fixUrl('index.html');> ");
document.writeC '<BODY onclick=location='index.html';>"); = document.writeC <BODY onclick=location=fixUrl('index.html');>");
Here are some more examples for link/source redirection:
document.writeC < A href=index.html> "); = document.writeC < A href=http://TranslationServer/Traιι.slationScript?url=http://www.XYZ.co m/index. html> ");
document.writeC '<IMG src=logo.jpg> ");
=> document.writeC <IMG src=http://www.XYZ.com/logo.jpg >");
E. fixHtmlSerial(sHtml)
The fixHtmlSerialQ function is the serial version of fixHtmlQ. That is, it is able to process HTML code portion by portion, where two or more portions may contain different parts of a single tag. In the following example, the handler fixHtmlO is not able to correctly handle or process the associated code:
document.writeC <A href="); document. write(sUrl); document.writeC '>"); This is because the handler fixHtmlO has to process:
i) the argument, "<A href=", which is considered an unfinished tag;
ii) "sUrl" (an example of which is "index.html"), which is considered as merely text;
iii) ">" which is also considered as merely text.
However, the handler fixHtmlSerialQ can process the code correctly by first buffering the first two portions of the code. When it reaches the third portion, it will assemble the three portions and will pass them to fixHtmlO .
In particular, the handler fixHtmlSerialQ keeps unfinished tags in a buffer until sequential calls to fixHtmlSerialQ has been completed. In processing code such as the example above, fixHtmlSerialQ first determines that it is an unfinished tag and will then store it in a buffer. It will return "". Secondly, it will add "index.html" to the buffer to provide "<A href=index.html". It will parse the html code again and then store the resulting code in the buffer. Thirdly, it will add ">" to the buffer and will parse the html code again to provide "<A href=index.html>" which is a finished HTML tag. It will then process the whole tag.
In the following example, the handler fixHtmlSerialQ is used to more efficiently process codes that may be separately generated. The following code portions are used as an example.
document.writeC <SCRIPT> "); document.write("location.href='index.html';"); document.writeC '</SCRIPT>"); The example above shows that tags such as <SCRIPT>, <STYLE>, <COMMENT>, etc., must be considered as unfinished, until the corresponding closing tag " </SCRIPT>", </STYLE>, </COMMENT>, etc. is reached. Otherwise, in the example above, the second " document. write()" function call will be misinterpreted as having a simple text, not as JavaScript code, as a parameter.
F. fixScript(expr)
The fixScriptQ function performs the same script parsing/modifying process that is performed on static scripts Server-side. It places handlers where needed.
G. fixText( xpr)
The fixTextO function attempts to translate the given text using a pre-translated phrase dictionary that is built on the Server-side at the time of static script parsing. This phrase dictionary contains all phrases extracted from static scripts in the original HTML page. This dictionary (and fixTextO function) are used for translation of text that may be found in the following places:
- Dynamic HTML text (outside tags);
- Message boxes;
- Dynamic tool tips and other text displaying properties.
Other Page Modifications
A. Output Compression
In one embodiment, the process of the invention provides increased storage capacity and decreased network traffic. This is accomplished in one embodiment, by deleting all unnecessary comments and/or removing white (blank) spaces in scripts. This decreases page size and as a result, storage size and network traffic. In one embodiment, the HTML comments are left unchanged, because many scripts use them as placeholders.
B. Phrase /Sentence Extraction From Static Scripts
In one embodiment, a server-side script processing technique of the invention extracts all string constants (such as text located within JavaScript) from all scripts from one or more pages of the original HTML text. For example, in the following code portion,
document.writeC Enter password");
document.writeQ is a JavaScript function, while " Enter password" is the text within the JavaScript.
The string constants are used to build a phrase dictionary of the strings of sentences or scripts. In one embodiment, the phrase dictionary is used in generating dynamic HTML terms on the client-side. This phrase dictionary may be stored in the beginning of the translated page, for example, as a JavaScript associative array.
Once in place, the fixTextO handler or function may use the array for translation purposes. If the whole phrase/sentence is not found in this dictionary, fixTextQ tries to translate parts of it, using the same dictionary. C. E-Mail Redirection
In one embodiment, the process of the invention may detect the presence of a " mailto:" protocol URL. Upon detection of this protocol, the process of the invention it replaces the "mailto:" protocol as follows:
"maϊlto XYZ" ' =* "http://TranslationSerυer/SendMailScript?XYZ"
where XYZ is the URL;
? is used as a separator to indicate that the terms that follow constitute a URL;
TranslationServer is the domain name of the proxy or intermediate server;
SendMailScript is a web-based e-mail program or client;
In this manner, the email may be redirected to the proxy or intermediate server, which provides e-mail translation services. The e-mail redirection is also performed by the "getAbsUrlQ" f unction on the client- side and by a similar function on the Server-side.
D. HTTP Redirection
The connection between proxy server and the end-user could be either secure or unsecured, depending on user preferences. However, the process of the invention may provide secure transmission of a translated page or site. In one embodiment, a secure connection, using a protocol such as the Hypertext Transport Protocol (HTTP), may be established between the originating server and the translation server (such as the proxy or intermediate server described above). The HTTP protocol uses a Secured Socket Layer (SSL) to authenticate the connection between the server and the client. Since the proxy server of the invention is coupled between the end user and the target website, the HTTP connection cannot be established without special processing. To solve this problem, one aspect of the present invention redirects the user's request to the proxy server of the invention, which provides a secured channel between the user and the proxy server. The proxy server then initiates a HTTP session with the target website. Once a HTTP session is established, the proxy server will then facilitate a data exchange between the client (end user) and the target server, transparently to both parties.
E. Cookies Server
A cookie is a text file of user data that helps an entity personalize web pages for specific users, as well as identify an online customer's shopping or viewing habits. It may also be used to store information about a web site's users. The cookie typically resides in the browser's memory, but when the browser is closed, the information is written to a file on the user's hard drive. The cookie is generally differentiated by the user's domain name.
However, when the user is directed to the proxy or intermediate server of the invention, all the cookies sent to the user appear to be associated with the proxy server's domain name. Over time, the contents of the cookie accumulate and overwrite existing values. This may cause the web server to fail because the cookie values may be incorrect.
One aspect of the present invention uses a storage location on the proxy server that is specified for managing all the cookies sent to the proxy server by the target servers. When a browser makes a request to the target server, the cookies are inserted into the request stream, If the web server sets a new cookie value, the cookie server intercepts the cookie and stores it. The end user will never get the cookie and thus will not be confused. The cookie is indexed to the user via the user's unique identification number, so that retrieval is fast and reliable.
The present invention thus provides a system and for efficiently retrieving, translating, organizing and updating information in different languages through a communication network, and to provide a seamless display of the translated and organized information. In one embodiment, a service center that is connected over one or more communication links to a remote network (such as the internet) may be requested to provide translation of media elements on one or more pages of a client website. In an alternate embodiment, the client's website may be configured to display a translation function key, which when selected by a user, would provide a link to the service center website. Upon such a link, the service center website will respond " on-the-fly" by accessing the information (such as text) on one or more pages of the client's website, translating the corresponding information (e.g., text), and providing the resulting translated information to the user requesting viewing of the translated website or web page(s). In this manner, a website may be efficiently and accurately translated. Any updates to the website may also be correspondingly translated with efficiency and accuracy.
The invention also provides a system and method for providing interactive communication between the hosts of a website and the users viewing a translated version of the website through the service center. Such interactive communication will facilitate submittal of personal or general information from a user to a target website, and/or provide a way for exchange of information between the parties. The invention relates to an apparatus and method for providing accurate and efficient translation of one or more web pages, or an entire website. The customized user lexicon feature of the invention facilitates custom translation, while increasing future translation efficiency and accuracy. The customized user lexicon translation process may be implemented as part of a machine language translation process. The machine language translation-customized user lexicon translation process may be provided instantaneously or " on-the-fly" . As a result, translation may be provided immediately and accurately. In addition, updates to a website may be translated with the same efficiency and accuracy. The post-editing process may be implemented in conjunction with the machine language translation process to provide increased accuracy in translation. In addition, the user feedback process may be provided to obtain different perspectives on the translation of a website. Such user feed back may be used to enhance the translation process.
Although the present invention has been described in terms of certain preferred embodiments, other embodiments apparent to those of ordinary skill in the art are also within the scope of this invention. Accordingly, the scope of the invention is intended to be defined only by the claims, which follow.

Claims

CLAIMS:What is claimed is:
1. A system, comprising: a memory for storing instruction sequences by which the processor-based system is processed; a processor coupled to said memory, the processor executes the stored instruction sequences; wherein the stored instruction sequences cause the processor to (a) insert a function into stored information comprising hypertext markup language; (b) receive a request to access a target with an address, the target having a memory with said function and said stored information; (c) modifying said address to redirect said request to a modified address representative of an address of an intermediary; (d) process said function and said stored information to provide translated information in a predetermined language; (e) forwarding said translated information to a requestor of said request.
2. The system of Claim 1, wherein in (b), the target, the intermediary and the requestor are connected via a computer network.
3. The system of Claim 2, wherein the computer network is selected from a group consisting of: a global computer network, a local area network, and a wide area network.
4. The system of Claim 1, wherein in (b), said address is a Universal Resource Locator (URL).
5. The system of Claim 1, wherein said instruction sequences further cause said processor to determine if said address and the corresponding stored information of said target may be stored in a storage location of said intermediary; and if so, to store said stored information of said target at said storage location of said intermediary.
6. The system of Claim 5, wherein said storage location of said intermediary is a local database of said intermediary.
7. The system of Claim 1, wherein said instruction sequences further cause said processor to intercept said address of said target if said address is dynamically generated, and to redirect said address to another address.
8. The system of Claim 1, wherein said instruction sequences further cause said processor to add code associated with said function to said stored information.
9. A method, comprising:
(a) inserting a function into stored information comprising hypertext markup language; (b) receiving a request to access a target with an address, the target having a memory with said function and said stored information;
(c) modifying said address to redirect said request to a modified address representative of an address of an intermediary;
(d) processing said function and said stored information to provide translated information;
(e) forwarding said processed information to a requestor of said request.
10. The method of Claim 9, wherein in (b) the target, the intermediary and the requestor are connection via a computer network.
11. The method of Claim 10, further comprising selecting said computer network is selected from a group consisting of: a global computer network, a local area network and a wide area network.
12. The method of Claim 9, wherein in (b), said address is a Universal Resource Locator (URL).
13. The method of Claim 9, further comprising: determining if said address and the corresponding stored information of said target may be stored in a storage location of said intermediary, if so, storing said stored information of said target at said storage location of said intermediary.
14. The method of Claim 13, wherein said storage location of said intermediary is a local database.
15. The method of Claim 9, further comprising: intercepting said address if said target is dynamically generated; redirecting said address to another address.
16. The method of Claim 9, further comprising: adding code associated with said function to said stored information.
17. A computer readable program product, comprising: a computer usable medium having computer program code embodied therein, the computer program product having:
(a) computer readable program code to cause a processor to insert a function into stored information, said stored information comprising hypertext markup language;
(b) computer readable program code to receive a request to access a target with an address, the target having a memory with said function and said stored information;
(c) computer readable program code to modify said address to redirect said request to a modified address representative of an address of an intermediary; (d) computer readable program code to process said function and said stored information to provide translated information in a predetermined language;
(e) computer readable program code to forward said translated information to a requestor of said request.
18. The computer readable program product of Claim 17, wherein in (b) the target, the intermediary and the requestor are connection via a computer network.
19. The computer readable program product of Claim 17, wherein said computer network is selected from a group consisting of: a global computer network, a local area network and a wide area network.
20. The computer readable program product of Claim 17, wherein in (b), said address is a Universal Resource Locator (URL).
21. The computer readable program product of Claim 17, further comprising: computer readable program code to determine if said address and the corresponding stored information of said target may be stored in a storage location of said intermediary, computer readable program code to store said stored information of said target at said storage location of said intermediary, if said address and the corresponding stored information may be stored in said storage location of said intermediary.
22. The computer readable program product of method of Claim 21, wherein said storage location of said intermediary is a local database.
23. The computer readable program product of Claim 17, further comprising: computer readable program code to intercept said address of said target is dynamically generated; computer readable program code to redirect said address to another address.
24. The computer readable program product of Claim 17, further comprising: computer readable program code to cause said processor to add code associated with said function, to said stored information.
PCT/US2001/017217 2000-05-26 2001-05-25 System and method for providing interactive translation of information in a communication network WO2001093089A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU2001274991A AU2001274991A1 (en) 2000-05-26 2001-05-25 System and method for providing interactive translation of information in a communication network

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US58091500A 2000-05-26 2000-05-26
US09/580,915 2000-05-26

Publications (1)

Publication Number Publication Date
WO2001093089A1 true WO2001093089A1 (en) 2001-12-06

Family

ID=24323113

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2001/017217 WO2001093089A1 (en) 2000-05-26 2001-05-25 System and method for providing interactive translation of information in a communication network

Country Status (2)

Country Link
AU (1) AU2001274991A1 (en)
WO (1) WO2001093089A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8949223B2 (en) 2003-02-21 2015-02-03 Motionpoint Corporation Dynamic language translation of web site content
US9128918B2 (en) 2010-07-13 2015-09-08 Motionpoint Corporation Dynamic language translation of web site content

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6064951A (en) * 1997-12-11 2000-05-16 Electronic And Telecommunications Research Institute Query transformation system and method enabling retrieval of multilingual web documents
US6119078A (en) * 1996-10-15 2000-09-12 International Business Machines Corporation Systems, methods and computer program products for automatically translating web pages

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6119078A (en) * 1996-10-15 2000-09-12 International Business Machines Corporation Systems, methods and computer program products for automatically translating web pages
US6064951A (en) * 1997-12-11 2000-05-16 Electronic And Telecommunications Research Institute Query transformation system and method enabling retrieval of multilingual web documents

Cited By (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9652455B2 (en) 2003-02-21 2017-05-16 Motionpoint Corporation Dynamic language translation of web site content
US11308288B2 (en) 2003-02-21 2022-04-19 Motionpoint Corporation Automation tool for web site content language translation
US10621287B2 (en) 2003-02-21 2020-04-14 Motionpoint Corporation Dynamic language translation of web site content
US10409918B2 (en) 2003-02-21 2019-09-10 Motionpoint Corporation Automation tool for web site content language translation
US9367540B2 (en) 2003-02-21 2016-06-14 Motionpoint Corporation Dynamic language translation of web site content
US8949223B2 (en) 2003-02-21 2015-02-03 Motionpoint Corporation Dynamic language translation of web site content
US9910853B2 (en) 2003-02-21 2018-03-06 Motionpoint Corporation Dynamic language translation of web site content
US9626360B2 (en) 2003-02-21 2017-04-18 Motionpoint Corporation Analyzing web site for translation
US10146884B2 (en) 2010-07-13 2018-12-04 Motionpoint Corporation Dynamic language translation of web site content
US10387517B2 (en) 2010-07-13 2019-08-20 Motionpoint Corporation Dynamic language translation of web site content
US9864809B2 (en) 2010-07-13 2018-01-09 Motionpoint Corporation Dynamic language translation of web site content
US9465782B2 (en) 2010-07-13 2016-10-11 Motionpoint Corporation Dynamic language translation of web site content
US10073917B2 (en) 2010-07-13 2018-09-11 Motionpoint Corporation Dynamic language translation of web site content
US10089400B2 (en) 2010-07-13 2018-10-02 Motionpoint Corporation Dynamic language translation of web site content
US9411793B2 (en) 2010-07-13 2016-08-09 Motionpoint Corporation Dynamic language translation of web site content
US10210271B2 (en) 2010-07-13 2019-02-19 Motionpoint Corporation Dynamic language translation of web site content
US10296651B2 (en) 2010-07-13 2019-05-21 Motionpoint Corporation Dynamic language translation of web site content
US9858347B2 (en) 2010-07-13 2018-01-02 Motionpoint Corporation Dynamic language translation of web site content
US9311287B2 (en) 2010-07-13 2016-04-12 Motionpoint Corporation Dynamic language translation of web site content
US9213685B2 (en) 2010-07-13 2015-12-15 Motionpoint Corporation Dynamic language translation of web site content
US10922373B2 (en) 2010-07-13 2021-02-16 Motionpoint Corporation Dynamic language translation of web site content
US10936690B2 (en) 2010-07-13 2021-03-02 Motionpoint Corporation Dynamic language translation of web site content
US10977329B2 (en) 2010-07-13 2021-04-13 Motionpoint Corporation Dynamic language translation of web site content
US11030267B2 (en) 2010-07-13 2021-06-08 Motionpoint Corporation Dynamic language translation of web site content
US11157581B2 (en) 2010-07-13 2021-10-26 Motionpoint Corporation Dynamic language translation of web site content
US9128918B2 (en) 2010-07-13 2015-09-08 Motionpoint Corporation Dynamic language translation of web site content
US11409828B2 (en) 2010-07-13 2022-08-09 Motionpoint Corporation Dynamic language translation of web site content
US11481463B2 (en) 2010-07-13 2022-10-25 Motionpoint Corporation Dynamic language translation of web site content

Also Published As

Publication number Publication date
AU2001274991A1 (en) 2001-12-11

Similar Documents

Publication Publication Date Title
US5745360A (en) Dynamic hypertext link converter system and process
US6338096B1 (en) System uses kernals of micro web server for supporting HTML web browser in providing HTML data format and HTTP protocol from variety of data sources
US9201870B2 (en) Method and system for providing translated dynamic web page content
US6623529B1 (en) Multilingual electronic document translation, management, and delivery system
US7207005B2 (en) Translation management system
US8489980B2 (en) Translation management system
US7877459B2 (en) Method and system for modifying requests for remote resources
US6338059B1 (en) Hyperlinked search interface for distributed database
US10541974B2 (en) Intercepting web server requests and localizing content
US7877463B2 (en) Method and systems for providing access to dynamic content via static pages
US7136896B1 (en) Dynamic toolbar for markup language document
US20020188435A1 (en) Interface for submitting richly-formatted documents for remote processing
US20080120087A1 (en) Translation Information Segment
US20060271349A1 (en) Seamless translation system
US20050055630A1 (en) Seamless translation system
US20080072136A1 (en) Method and System for Accelerating Downloading of Web Pages
US7607085B1 (en) Client side localizations on the world wide web
WO2004040481A1 (en) A system and method for providing and displaying information content
US20110137943A1 (en) Apparatus for deciding word-related keywords, and method and program for controlling operation of same
US20110131478A1 (en) Method and system for modifying script portions of requests for remote resources
US7783643B2 (en) Direct navigation for information retrieval
US7444590B2 (en) Systems and methods for declarative localization of web services
US7437660B1 (en) Editable dynamically rendered web pages
WO2002073464A1 (en) System and method for providing efficient and accurate translation of information in a communication network
WO2001093089A1 (en) System and method for providing interactive translation of information in a communication network

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase

Ref country code: JP