Translating multi-format embedded files
The system addresses the limitation of current translation services by automatically translating embedded elements in MFEFs, ensuring that all content is accessible to users who do not speak the original language, while maintaining the original document layout.
Patent Information
- Application Number
- JP2022506799
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2019-09-11
- Filing Date
- 2020-08-13
- Publication Date
- 2025-04-08
- Estimated Expiration
- 2040-08-13
AI Technical Summary
Current online translation services fail to translate embedded elements such as images, audio, and video in multi-format embedded files (MFEFs), limiting the accessibility of content to users who do not speak the language of these elements.
A computer implementation method and system that automatically identifies foreign language embedded elements in MFEFs, selects appropriate translators, and translates these elements while maintaining the original layout of the MFEF document.
Enables effective communication with global audiences by translating all foreign language elements within MFEFs, preserving the document's layout and enhancing user experience without requiring users to manually translate each element.
Smart Images

Figure 0007658680000001 
Figure 0007658680000002 
Figure 0007658680000003
Abstract
Description
[Technical field]
[0001] The present invention relates generally to machine translation, and more particularly to machine translation of Multi-format embedded files (MFEFs). [Background technology]
[0002] Multi-format embedded files (MFEFs) are commonly used in many parts of the world, especially in industrialized regions where the Internet is readily accessible and in daily use. MFEFs are files that contain multiple media elements in different formats, e.g., text, image, audio, and video elements. Examples of MFEFs include hypertext (HTML) files and many other well-known file formats, such as file formats associated with desktop publishing, presentation, and word processing software. The use of media elements in MFEFs continues to increase as ever-improving Internet and networking technologies make sharing larger, media-rich files faster and easier. Summary of the Invention
[0003] Exemplary embodiments provide a computer-implemented method, computer system, and computer program product for translating embedded elements of a multi-format embedded file (MFEF) document. In one embodiment, the method includes receiving, by a server, from a user, a request for translation of a multi-format embedded file (MFEF) document including a plurality of embedded elements. In response to the request for the MFEF document, the server automatically identifies element types of the embedded elements including a first element type and a second element type, identifies foreign language embedded elements from among the plurality of embedded elements, the foreign language embedded elements being embedded elements in a language other than the user's preferred language, and selects appropriate translators for translating the foreign language embedded elements, the first translator being selected to translate the first element type of the foreign language embedded elements and the second translator being selected to translate the second element type of the foreign language embedded elements. Other embodiments of this aspect include corresponding computer systems, apparatus, and computer programs recorded on one or more computer storage devices, each configured to perform the actions of the method.
[0004] The novel features believed to be characteristic of this invention are set forth in the appended claims, however the invention itself, together with its preferred modes of use, further objects and advantages, will best be understood by reference to the following detailed description of illustrative embodiments when read in conjunction with the accompanying drawings. [Brief description of the drawings]
[0005] [Figure 1] 1 depicts a block diagram of a network of data processing systems in which illustrative embodiments may be implemented; [Diagram 2] 1 illustrates a block diagram of a data processing system in which an illustrative embodiment may be implemented; [Diagram 3] 1 illustrates a screen generated by an MFEF having multiple media elements in different languages, according to an exemplary embodiment. [Figure 4A]FIG. 1 illustrates a block diagram of a network configuration in accordance with an exemplary embodiment. [Figure 4B] FIG. 1 illustrates a block diagram of a network configuration in accordance with an exemplary embodiment. [Figure 4C] FIG. 1 illustrates a block diagram of a network configuration in accordance with an exemplary embodiment. [Diagram 5] FIG. 2 illustrates a block diagram of an exemplary MFEF translation system for translating MFEF documents in accordance with an exemplary embodiment. [Figure 6] FIG. 1 illustrates a block diagram of an embodiment of an MFEF data structure in accordance with an exemplary embodiment. [Figure 7] 1 illustrates a flowchart of an exemplary process for translating an MFEF document in accordance with an exemplary embodiment. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0006] Certain embodiments are described with respect to a website by way of example only and are not intended to imply any limitations on the exemplary embodiments. The embodiments described with respect to a website may be similarly used with respect to any document having embedded elements within the scope of the exemplary embodiments. Any description or examples described with an MFEF document in conjunction with a web browser are equally applicable to MFEF documents accessed without a web browser.
[0007] Implementing media elements into MFEFs is becoming increasingly popular as online advertisers compete for user attention and broadband Internet connections continue to expand. Internet advertising comes in many forms. Traditional forms of Internet advertising are similar to regular advertising using graphic images, except that the graphic images may be hosted on web pages at the advertiser's website. In such web page advertisements, retailers have the opportunity to capture the viewer's attention and, if successful, lead to a sale. However, while Internet advertising has the potential to reach a global audience, media elements such as audio, video, and images in the advertisements are typically only effectively communicated to users who speak the language in which the advertisement is used. Online translation services can translate the plain text elements of a website, but do not translate the written or spoken words in the images, video, or audio.
[0008] The exemplary embodiments used to describe the present invention generally address and solve the above-mentioned problem of the lack of translations for all foreign language elements of an MFEF. As used herein, the term "foreign language" and variations thereof generally refer to any language other than the user's preferred language or languages. The exemplary embodiments recognize that the language of the embedded elements is highly dependent on the creators and contributors of the MFEF document, and therefore potentially determined by users anywhere in the world who have write access to the MFEF document. Currently, there are online services that provide limited translation of websites, but these are limited to translating purely textual portions of websites and do not translate other types of embedded elements, such as image, audio, and video type elements.
[0009] The illustrative embodiments recognize that language barriers in elements of an MFEF document can be identified by parsing the MFEF document to identify and evaluate all of the embedded elements, or simply by evaluating all portions of the MFEF document. Once a language barrier in an MFEF document is identified, the language barrier can be corrected.
[0010] For example, assume that one element of an MFEF document is the only foreign language element to a user, and the remaining elements are in the user's preferred language. Examples of such situations include user comments submitted in a foreign language on an interactive website, and advertisements in a foreign language on a commercial website. The illustrative embodiments recognize that remedying the problem in such cases may be as simple as translating only the single element, without affecting the remainder of the MFEF document.
[0011] For example, users, such as contributors or advertisers of a website, may not be familiar with the language of other users around the world who visit the website. If a user seeks to reach a wide audience with his or her contribution or advertisement, the audience is limited to those who can speak or read the language in which the contribution or advertisement is used. Many other users who are not proficient in the language in which the contribution or advertisement is used may not have a way to translate the elements or may not take the time to try to find a way to translate the elements. As a result, language barriers limit the ability of users to reach a portion of the website's visitors.
[0012] As a further consequence, in the case of online advertising, language barriers potentially have a negative impact on users' businesses and advertising budgets. Meanwhile, advertisers may miss out on sales to visitors who cannot understand their ads due to language barriers. Also, users may be required to pay for each instance an ad is displayed, even if the ad is not understood by all visitors to whom it is presented. Thus, this situation increases the negative impact on advertisers' businesses due to potential lost sales and advertising costs to visitors who are not proficient in the language used in the ad.
[0013] Exemplary embodiments further recognize that solutions to language barrier problems may not be effective if they require a lot of effort on the part of the user. For example, various translation services may be created that require the user to proactively isolate certain elements of the MFEF document and seek out translation services for each element, significantly disrupting the user's ability to browse various websites. For example, a user conducting online research may prefer to continue to search for information presented in their preferred language rather than finding a way to translate elements in other languages. Some users may find this inefficient compared to continuing to search for information in their native language.
[0014] Exemplary embodiments further recognize that countermeasures to language barrier issues may not be effective in cases where the framework or layout of the original MFEF document is not preserved and the translated elements are not provided in the same layout as the original elements. For example, embedded elements may lose some of their meaning outside the context of a particular layout of the MFEF document, such as comments posted in a particular order or an audio element providing content associated with a particular image. In such situations, if a user receives a translation outside the context of the original MFEF layout, it may be very difficult and time consuming to determine how the translated elements fit into the original image and understand the context that was lost during translation.
[0015] Thus, the illustrative embodiments recognize that an MFEF translation system would be useful for identifying foreign language elements within an MFEF document, automatically translating the foreign language elements, and replacing the foreign language elements with the translated elements by embedding the translated elements within the MFEF document in a manner that preserves the layout of the original MFEF document. These and other features of such a system would provide users, content providers, and advertisers the ability to effectively communicate with audiences around the world.
[0016] The exemplary embodiments used to describe the present invention generally address and solve the problems described above and other problems related to solving language barriers or communication problems for MFEF documents. The exemplary embodiments provide methods, systems, and computer program products for the translation of MFEF documents.
[0017] One embodiment identifies or receives information about an MFEF document requested by a user, where the MFEF document has one or more foreign language embedded elements. One embodiment also receives a location of the MFEF document, such as a file location or URL. Another embodiment receives a copy of the MFEF document instead of, or in addition to, the location of the original MFEF document.
[0018] An embodiment identifies one or more preferred languages of a user requesting the MFEF document. Some embodiments retrieve the user's preferred languages from a database that stores user information, where the user has provided a list of one or more preferred languages. Some embodiments infer the user's preferred languages based on available information about the user, such as header information indicating the user's preferred languages as set in the user's web browser, or historical information provided by the user, including information about languages of documents the user has previously read or searched. Some embodiments prompt the user to provide the preferred languages. In some embodiments, the prompt requesting the preferred languages includes one or more images from which the user can select, the multiple images showing images that are easily associated with the respective languages, such as country flags or geographic locations.
[0019] Embodiments of the MFEF translation system streamline the process of providing translations of foreign language elements to users by providing the MFEF translation system as a service that is readily available to users or that automatically detects and translates foreign language elements in requested documents. For example, in some embodiments, when a client device issues a request for an MFEF document to a remote web server, the remote web server receives the request and uses the MFEF translation system to translate any embedded elements in the requested MFEF document that are in a language other than the user's preferred language.
[0020] In other embodiments, when a client receives an MFEF document that includes one or more foreign language elements, the client translates them using an MFEF translation system. For example, in some embodiments, the MFEF translation system is configured to include an MFEF web browser extension for providing translations of requested elements of an MFEF document. In some such embodiments, the MFEF web browser extension may be configured to be incorporated within any suitable web browser tool or application as a plug-in, add-on, or extension. In some embodiments, the MFEF translation web browser extension is incorporated within a web browser and is configured to request translations of foreign language embedded elements of an MFEF document, receive the requested translated embedded elements, and incorporate the translated embedded elements into the MFEF document as replacements for the foreign language embedded elements.
[0021] In further embodiments, the client device is configured to use a proxy server that relays HTTP requests and responses to and from the client device. In some such embodiments, when the proxy server detects that an MFEF document being sent to a client contains foreign language elements, the proxy server utilizes the MFEF system to translate any embedded elements in the requested MFEF document that are in a language other than the user's preferred language and relays the translated elements to the client.
[0022] In some embodiments, the MFEF server includes an MFEF API that receives an API request for translation of an MFEF document. In some embodiments, the API request includes the MFEF document, the MFEF document name, the URL or file location of the MFEF document, and the user's preferred language. In some embodiments, the API request may include multiple preferred languages of the user. In some such embodiments, the multiple preferred languages may be in order of preference of the preferred languages.
[0023] In some embodiments, the MFEF server includes an embedded element recognizer that parses the translation request information, including parsing the MFEF document, to recognize the number and types of embedded elements in the MFEF document. In some embodiments, the MFEF server also includes an embedded element language detector that detects the language of each of the embedded elements detected by the embedded element recognizer, using known techniques. In some embodiments, the embedded element language detector compares the language of the detected embedded elements with a user's preferred language to determine which embedded elements need to be translated.
[0024] In some embodiments, the MFEF server includes an MFEF translator that operates in response to the embedded element language detector detecting the language of the embedded elements to obtain a computer-based, machine-generated translation of each of the embedded elements. In some embodiments, the MFEF translator uses various third-party translation services to obtain a computer-based, machine-generated translation that translates one or more of the embedded elements. In some embodiments, the MFEF translator includes one or more modules that use known techniques to generate a machine-generated translation that translates one or more of the embedded elements. In some embodiments, the MFEF translator uses a human translator to translate one or more of the embedded elements.
[0025] In some embodiments, the MFEF translator selects among two or more translators based at least in part on a level of service associated with a requesting user, for example, in some embodiments, the MFEF translator selects a more accurate and / or more expensive translator for users associated with a first tier of service and a less accurate and / or less expensive translator for users associated with a second tier of service.
[0026] In some embodiments, the MFEF server includes an MFEF generator that receives the translated embedded element and generates a new MFEF document that includes the translated embedded element. In some embodiments, the MFEF generator returns the translated embedded element to the MFEF client.
[0027] In some embodiments, the MFEF client includes a display wizard that receives the translated MFEF document and saves the new MFEF document as the target document in a temporary directory. The display wizard returns a pointer to the user's web browser instructing the web browser to display the target document with the translated embedded elements. In some embodiments, the display wizard verifies that the structure of the new MFEF document matches the structure of the original MFEF document, and that the translated embedded elements replace corresponding foreign language embedded elements in the same locations as each of the foreign language embedded elements.
[0028] In some embodiments, the Display Wizard uses a pre-fetch technique for embedded elements that are still being translated when the MFEF generator sends the new MFEF document to the Display Wizard, in some such embodiments the MFEF generator includes links to embedded elements that are still being translated, the Display Wizard inserts a temporary message alerting the user to such pending translation, and then removes the temporary message once the translation is complete and the translated embedded elements are received and embedded in the new MFEF document.
[0029] For ease of explanation, but not meant to be limiting, the exemplary embodiments are described with some exemplary configurations. From this disclosure, those skilled in the art may conceive many changes, adaptations, and modifications of the described configurations to achieve the described objectives, which are contemplated within the scope of the exemplary embodiments.
[0030] Additionally, the figures and exemplary embodiments use simplified illustrations of a data processing environment: in an actual computing environment, there may be additional structures or components not shown or described herein, or structures or components that differ from those shown but for functionality similar to that described herein, without departing from the scope of the exemplary embodiments.
[0031] Furthermore, the illustrative embodiments are described with reference to specific real or hypothetical components as examples only, and the steps described by various illustrative embodiments can be adapted to provide an explanation for decisions made by, for example, a machine learning classifier model.
[0032] Any particular manifestation of these and other similar artifacts is not intended to limit the present invention, and any suitable manifestation of these and other similar artifacts may be selected within the scope of the exemplary embodiments.
[0033] The examples in this disclosure are used only for clarity of explanation and are not intended to limit the exemplary embodiments. Any advantages listed herein are merely exemplary and are not intended to limit the exemplary embodiments. Additional or different advantages may be realized by certain exemplary embodiments. Moreover, certain exemplary embodiments may have some, all, or none of the advantages listed above.
[0034] Furthermore, the exemplary embodiments may be implemented with respect to any type of data, data source, or access to a data source via a data network. Any type of data storage device may provide data to the embodiments of the present invention within the scope of the present invention, either locally at a data processing system or via a data network. Where an embodiment is described with a mobile device, any type of data storage device suitable for use with a mobile device may provide data to such embodiments within the scope of the exemplary embodiments, either locally at the mobile device or via a data network.
[0035] The exemplary embodiments are described using specific code, contrastive descriptions, computer-readable storage media, high-level functions, historical data, designs, architectures, protocols, layouts, schematics, and tools as examples only and are not limited to the exemplary embodiments. Furthermore, the exemplary embodiments are described in some instances using specific software, tools, and data processing environments as examples only for clarity of explanation. The exemplary embodiments can be used with other equivalent or similar purpose structures, systems, applications, or architectures. For example, other equivalent mobile devices, structures, systems, applications, or architectures therefor can be used with such embodiments of the present invention within the scope of the present invention. The exemplary embodiments can be implemented in hardware, software, or a combination thereof.
[0036] The examples in this disclosure are used for clarity of explanation only and are not intended to limit the exemplary embodiments. Additional data, operations, acts, tasks, activities, and manipulations may be envisioned from this disclosure and are contemplated within the scope of the exemplary embodiments.
[0037] Any advantages listed herein are exemplary only and are not intended to be limiting to example embodiments. Additional or different advantages may be realized by certain example embodiments. Moreover, certain example embodiments may have some, all, or none of the advantages listed above.
[0038] With reference to the figures, and in particular to Figures 1 and 2, these figures are exemplary diagrams of data processing environments in which illustrative embodiments may be implemented. Figures 1 and 2 are merely examples and are not intended to assert or imply any limitation with respect to the environments in which different embodiments may be implemented. Particular implementations may make many modifications to the depicted environments based on the following description.
[0039] 1 illustrates a block diagram of a network of data processing systems in which an exemplary embodiment may be implemented. Data processing environment 100 is a network of computers in which an exemplary embodiment may be implemented. Data processing environment 100 includes network 102. Network 102 is the medium used to provide communications links between various devices and computers connected to each other within data processing environment 100. Network 102 may include connections, such as wired, wireless communication links, or fiber optic cables.
[0040] Client or server is merely an example of the role of particular data processing systems connected to network 102 and is not intended to exclude other configurations or roles of these data processing systems. Server 104 and server 106 are coupled to network 102 along with storage unit 108. Software applications may run on any computer in data processing environment 100. Clients 110, 112, 114 are also coupled to network 102. A data processing system, such as server 104 or 106 or client 110, 112, or 114, may contain data and may have software applications or software tools running thereon.
[0041] By way of example only and without implying any limitation to such architecture, Figure 1 illustrates certain components that may be used in an exemplary implementation of an embodiment. For example, servers 104, 106 and clients 110, 112, 114 are depicted as servers and clients by way of example only and without implying any limitation to a client-server architecture. As another example, an embodiment may be distributed across several data processing systems and data networks as shown, while another embodiment may be implemented on a single data processing system within the scope of an exemplary embodiment. Data processing systems 104, 106, 110, 112, and 114 also represent exemplary nodes within clusters, partitions, and other configurations suitable for implementing an embodiment.
[0042] Device 132 is an example of a device as described herein. For example, device 132 may take the form of a smartphone, a tablet computer, a laptop computer, a stationary or portable client 110, a wearable computing device, or any other suitable device. Any software applications described in FIG. 1 as executing in another data processing system may be configured to execute in device 132 in a similar manner. Any data or information stored or generated in another data processing system in FIG. 1 may be configured to be stored or generated in device 132 in a similar manner.
[0043] Server application 105 implements the embodiments described herein. Server application 105 implements the remotely available features (remote) of the embodiments described herein. Web browser 111 implements the locally available features (local) or natively available features (native) of the embodiments described herein. Web browser 134 implements the natively available features (native) of the embodiments described herein. Server applications 105 on multiple servers 104 and 106 can be used in combination.
[0044] Servers 104 and 106, storage unit 108, and clients 110, 112, and 114, and device 132 may be coupled to network 102 using wired connections, wireless communication protocols, or other suitable data connections. Clients 110, 112, and 114 may be, for example, personal computers or network computers.
[0045] In the depicted example, server 104 may provide data such as boot files, operating system images, and applications to clients 110, 112, and 114. Clients 110, 112, and 114 may be clients to server 104 in this example. Clients 110, 112, 114, or some combination thereof, may include their own data, boot files, operating system images, and applications. Data processing environment 100 may include additional servers, clients, and other devices not shown.
[0046] In the depicted example, data processing environment 100 may be the Internet. Network 102 may represent a collection of networks and gateways that communicate with each other using Transmission Control Protocol / Internet Protocol (TCP / IP) and other protocols. At the heart of the Internet is a backbone of data communication links between major nodes or host computers, including thousands of commercial, government, educational, and other computer systems that route data and messages. Of course, data processing environment 100 may also be implemented as a number of different types of networks, such as, for example, an intranet, a local area network (LAN), or a wide area network (WAN). FIG. 1 is intended as an example, and not as architectural limitations for different illustrative embodiments.
[0047] Among other uses, the data processing environment 100 can be used to implement a client-server environment in which the exemplary embodiments can be implemented. A client-server environment allows software applications and data to be distributed across a network and function using interactions between client and server data processing systems. The data processing environment 100 can also employ a service-oriented architecture in which interoperable software components distributed across a network can be packaged together as a coherent business application. The data processing environment 100 can also take the form of a cloud and employ a cloud computing model of service delivery that allows convenient, on-demand network access to a shared pool of configurable computing resources (such as networks, network bandwidth, servers, processing, memory, storage, applications, virtual machines, and services) that can be rapidly provisioned and released with minimal administrative effort or interaction with a service provider.
[0048] Referring to Figure 2, a block diagram of a data processing system in which the exemplary embodiments may be implemented is shown. Data processing system 200 is an example of a conventional computer, such as data processing system 104, server 106, or clients 110, 112, and 114 of Figure 1, or another type of device in which computer usable program code or instructions implementing processes for the exemplary embodiments may be located.
[0049] Data processing system 200 may also represent a conventional data processing system or configurations therein, such as conventional data processing system 132 of FIG. 1, in which computer usable program code or instructions implementing the processes of the exemplary embodiments may be located. Data processing system 200 is described as a computer by way of example only and not by way of limitation. Implementations in the form of other devices, such as device 132 of FIG. 1, may modify data processing system 200, for example by adding a touch interface, or even omit certain illustrated components from data processing system 200, without departing from the general description of the operation and functionality of data processing system 200 described herein.
[0050] In the illustrated example, data processing system 200 uses a hub architecture including a northbridge and memory controller hub (NB / MCH) 202 and a southbridge and input / output (I / O) controller hub (SB / ICH) 204. A processing unit 206, a main memory 208, and a graphics processor 210 are coupled to northbridge and memory controller hub (NB / MCH) 202. Processing unit 206 may include one or more processors and may be implemented using one or more heterogeneous processor systems. Processing unit 206 may be a multi-core processor. Graphics processor 210 may be coupled to NB / MCH 202 via an accelerated graphics port (AGP) in certain implementations.
[0051] In the illustrated example, a local area network (LAN) adapter 212 is coupled to the south bridge and I / O controller hub (SB / ICH) 204. An audio adapter 216, a keyboard and mouse adapter 220, a modem 222, a read only memory (ROM) 224, a universal serial bus (USB) and other ports 232, and a PCI / PCIe device 234 are coupled to the south bridge and I / O controller hub 204 via a bus 238. A hard disk drive (HDD) or solid state drive (SSD) 226 and a CD-ROM 230 are coupled to the south bridge and I / O controller hub 204 via a bus 240. The PCI / PCIe device 234 may include, for example, an Ethernet adapter, an add-in card, a PC card for a notebook computer, and the like. PCI uses a card bus controller, whereas PCIe does not. The ROM 224 may be, for example, a flash binary input / output system (BIOS). Hard disk drive 226 and CD-ROM 230 may use, for example, Integrated Drive Electronics (IDE), Serial Advanced Technology Attachment (SATA) interfaces or variations such as external SATA (e-SATA) and micro SATA (mSATA). Super I / O (SIO) device 236 may be coupled to South Bridge and I / O Controller Hub (SB / ICH) 204 via bus 238.
[0052] Memory such as main memory 208, ROM 224, or flash memory (not shown) are some examples of computer usable storage devices. Hard disk drive or solid state drive 226, CD-ROM 230, and other similarly usable devices are some examples of computer usable storage devices that include computer usable storage media.
[0053] An operating system runs on the processing unit 206. The operating system coordinates and controls the various components within the data processing system 200 of FIG. 2. The operating system can be a commercially available operating system for any type of computing platform, including, but not limited to, server systems, personal computers, and mobile devices. An object-oriented or other type of programming system can operate in conjunction with the operating system to provide calls to the operating system from programs or applications executing on the data processing system 200.
[0054] Instructions for the operating system, the object oriented programming system, and applications or programs, such as application 105 of Figure 1, may be located on a storage device, such as in the form of code 226A on hard disk drive 226, and loaded into at least one of one or more memories, such as main memory 208, for execution by processing unit 206. The processes of the exemplary embodiments may be performed by processing unit 206 using computer-implemented instructions, which may be located in a memory, such as main memory 208, read-only memory 224, or one or more peripheral devices.
[0055] Additionally, in some cases, the code 226A can be downloaded over the network 201A from a remote system 201B where similar code 201C is stored in the storage device 201D. In other cases, the code 226A can be downloaded over the network 201A to the remote system 201B where the downloaded code 201C is stored in the storage device 201D.
[0056] The hardware in Figures 1-2 may vary depending on the implementation. Other internal hardware or peripheral devices, such as flash memory, equivalent non-volatile memory, or optical disk drives, may be used in addition to or in place of the hardware depicted in Figures 1-2. The processes of the illustrative embodiments may also be applied to multi-processor data processing systems.
[0057] In some illustrative examples, data processing system 200 may be a personal digital assistant (PDA), which is typically configured with flash memory to provide non-volatile memory for storing operating system files and / or user-generated data. The bus system may include one or more buses, such as a system bus, an I / O bus, and a PCI bus. Of course, the bus system may be implemented using any type of communications fabric or architecture that provides for a transfer of data between different components or devices attached to the fabric or architecture.
[0058] The communications unit may include one or more devices used to transmit and receive data, such as a modem or a network adapter. The memory may be, for example, main memory 208 or a cache, such as a cache found in north bridge and memory controller hub 202. The processing unit may include one or more processors or CPUs.
[0059] 1-2 and above-described examples are not meant to imply architectural limitations. For example, data processing system 200 may also be a tablet computer, a laptop computer, or a telephone device in addition to taking the form of a mobile device or a wearable device.
[0060] When a computer or data processing system is described as a virtual machine, virtual device, or virtual component, the virtual machine, virtual device, or virtual component operates in the manner of data processing system 200 using a virtualized manifestation of some or all of the components depicted in data processing system 200. For example, in a virtual machine, virtual device, or virtual component, processing unit 206 appears as a virtualized instance of all or some of the hardware processing unit 206 available in the host data processing system, main memory 208 appears as a virtualized instance of all or a portion of the main memory 208 available in the host data processing system, and disk 226 appears as a virtualized instance of all or a portion of the disk 226 available in the host data processing system. The host data processing system in such a case is represented by data processing system 200.
[0061] 3, a diagram illustrates a screen 300 displayed by a client 302 according to an exemplary embodiment. The exemplary embodiment includes a remote server 304 in communication with the client 302. In a particular embodiment, the client 302 is an example of the clients 110, 112, 114, and the device 132 of FIG. 1, and the remote server 304 is an example of the servers 104 and 106 of FIG.
[0062] In some embodiments, the screen 300 includes a web browser 306 that is navigated to a uniform resource locator (URL) 308 to render a displayed website 310 based on an MFEF document (main_page.html) 312 received from a remote server 304. In some embodiments, the MFEF document 312 includes multiple embedded elements 314A-314E, where embedded element 314A is a text element type (Main001.text) in English, embedded element 314B is a text element type (Main002.text) in Spanish, embedded element 314C is a video element type (Main789.mp4) in French, embedded element 314D is an audio element type (Main123.mp3) in English, and embedded element 314E is an image element type (Main456.jpg) with text in Japanese. In some embodiments, the MFEF document is any of a number of well-known file formats that allow for embedded elements, including those created using website design software, desktop publishing software, presentation software, and word processing software. As used herein, the term "embedded element" generally refers to media elements installed or linked to a text document to form a compound document. Examples of embedded elements include, but are not limited to, sound and image objects inserted into a word publishing document, or video objects, image objects, and sound objects.
[0063] In some embodiments, screen 300 appears as in Figure 3 for both the pre-translation and post-translation of main_page.html. For example, in some embodiments, the translation process completely replaces foreign language embedded elements with translated embedded elements in the same locations as each of the replaced foreign language embedded elements.
[0064] In some embodiments, when a user enters a URL 308, the web browser 306 initiates a Hypertext Transfer Protocol (HTTP) request to a remote server 304 having an Internet Protocol (IP) address associated with the entered URL 308, and the remote server 304 responds by sending a main_page.html file 312 to the web browser 306. In some embodiments, the web browser 306 then renders the main_page.html file 312 as is, without translation, but allows the user to request one or more translations of any foreign language embedded elements. In some embodiments, the web browser 306 then renders the main_page.html file 312 with translated versions of any foreign language embedded elements.
[0065] 4A-4C, which illustrate block diagrams of example network configurations 400A-400C, respectively, according to example embodiments. The example embodiments are non-limiting examples, and further embodiments include alternative configurations. In some embodiments, the MFEF translation system 406 described herein is accessible by a user's client device 402, by a remote web server 404 hosting the MFEF document, or by a proxy server 408, if present. For example, in some embodiments, the MFEF system 406 includes an application programming interface (API) accessible by a user's client device 402, by a remote web server 404 hosting the MFEF document, or by a proxy server 408, if present.
[0066] For example, with reference to FIG. 4A , in some embodiments, when a client device 402 issues a request for an MFEF document to a remote web server 404, the remote web server 404 receives the request and uses the MFEF translation system 406 to translate any embedded elements in the requested MFEF document that are in a language other than the user's preferred language. For example, in some embodiments, the client device 402 issues an HTTP request that includes header information indicating the user's preferred language, and the remote web server 404 uses the header information to determine whether to translate any of the embedded elements. Alternatively, in some embodiments, the remote web server 404 receives the user's preferred language from the user, for example, through a registration process or by issuing a prompt displayed by the client 402 requesting the user's preferred language. In some such embodiments, the prompt requesting the preferred language includes one or more images that the user can select, the multiple images showing images that are easily associated with respective languages, such as country flags or geographic locations.
[0067] Some embodiments include an enhanced remote web server 404 that maintains a list of the user's possible preferred languages and then proactively invokes the MFEF translation system 406 before the client 402 invokes the MFEF service. Some embodiments include an enhanced web server 404 that translates all content into the listed user's preferred languages and accordingly stores the translated documents in a separate translation language directory. In some embodiments, the enhanced web server 404 redirects the client 402 to access the translated documents. In real time, the enhanced web server 404 redirects the client 402 to access the translated documents in order to optimize performance (reducing translation time and cost).
[0068] As another example, and referring to FIG. 4B, in some embodiments, when client 402 receives an MFEF document, client 402 uses MFEF translation system 406 to translate any embedded elements that are in a language other than the user's preferred language. For example, in some embodiments, MFEF translation system 406 is configured to include an MFEF web browser extension to provide translations of elements of a requested MFEF document. In some such embodiments, the MFEF web browser extension may be configured to be incorporated as a plug-in, add-on, or extension within any suitable web browser tool or application. As used herein, terms such as "plug-in," "add-on," or "extension" refer to a software application or module program, or one or more computer instructions, which may or may not communicate with other software applications or modules, that interacts with a host application to provide specified functionality, and may include any files, images, graphics, icons, audio, video, or other attachments. In some embodiments, the MFEF translation web browser extension is incorporated within a web browser and is configured to request a translation of a foreign language embedded element of an MFEF document, receive the requested translated embedded element, and incorporate the translated embedded element into the MFEF document as a replacement for the foreign language embedded element.
[0069] As another example, referring to FIG. 4C, in some embodiments, when proxy server 408 receives an HTTP request for an MFEF document from client 402, proxy server 408 relays the request to the appropriate web server 404 and receives the MFEF document in response. In some such embodiments, MFEF system 406 is used to translate any embedded elements in the requested MFEF document that are in a language other than the user's preferred language and relay the translated elements to client 402. For example, in some embodiments, client device 402 issues an HTTP request that includes header information indicating the user's preferred language, and proxy server 408 uses the header information to determine whether to translate any of the embedded elements. Alternatively, in some embodiments, proxy server 408 receives the user's preferred language from the user, for example, through a registration process or by issuing a prompt displayed by client 402 requesting the user's preferred language.
[0070] In some embodiments, MFEF translation system 406 is enabled through a cloud-based Software as a Service (SaaS) based offering, which provides the ability to use MFEF translation system 406 in any network configuration, including any of configurations 400A-400C. In some such embodiments, MFEF translation system 406 is accessible from various client, proxy server, or web server devices through an interface, such as a web browser (e.g., web-based email) or an API. In some such embodiments, MFEF translation system 406 is configured to receive an MFEF document or a link to an MFEF document for translation.
[0071] 5, a block diagram of an exemplary MFEF translation system 500 for translating MFEF documents in accordance with an exemplary embodiment is shown. In some embodiments, the MFEF translation system 500 includes an MFEF server 502 and an MFEF client 504.
[0072] In some embodiments, when a user 506 requests an MFEF document, such as MFEF document 312 shown in Figure 3, and the MFEF document 312 contains embedded elements in a language other than the user's preferred language, the MFEF translation system 500 can translate the foreign language embedded elements. In some embodiments, the user 506 uploads the MFEF document to the client side 504 of the MFEF translation system 500, and the MFEF document is stored as a source document 508. In an alternative embodiment, the user 506 provides a link, such as a URL, to the MFEF document, and the MFEF translation system 500 requests and receives the MFEF document using the link provided by the user 506, and stores the MFEF document as a source document 508.
[0073] In some embodiments, the MFEF client 504 includes a browser context monitor 510 for monitoring and analyzing an Internet browsing history or Internet activity associated with the user 506. For example, in some embodiments, the browser context monitor 510 has continuous access to the user's browsing activity. In some embodiments, the user's personal computer or web browser, or both, logs the user's Internet browsing history and provides it to the browser context monitor 510 periodically, e.g., according to a scheduled task, or according to the occurrence of some event, e.g., each time the user connects to the MFEF client 504. In some embodiments, the browser context monitor 510 monitors one or more browsing behaviors and user actions by the user 506. In some such embodiments, the browser context monitor 510 analyzes this information to make a prediction regarding the language(s) the user 506 speaks. In some such embodiments, the browser context monitor 510 predicts the language(s) the user 506 speaks and monitors the source documents 508 for documents that are not in the language(s) identified as the user 506 speaks.
[0074] In some embodiments, the browser context monitor 510 identifies languages that the user 506 understands based on Internet browsing activity associated with the user 506. In some embodiments, the browser context monitor 510 collects, creates, and maintains a context for the user 506, including the languages the user 506 speaks, and monitors incoming web pages that require translation. In some embodiments, the browser context monitor 510 is a module for monitoring the user's reading behavior, identifying the user's actions, and determining whether the user speaks a language that the user intended to be translated (e.g., translating an embedded image from English to Chinese) based at least in part on the stored user behavior. In some embodiments, the browser context monitor 510 determines that the user 506 has requested translation of one or more embedded elements of the MFEF in the source document 508.
[0075] In some embodiments, the MFEF client 504 includes an MFEF requester 512 for forming an MFEF translation request and sending the MFEF translation request to the MFEF server 502. In some embodiments, the MFEF requester 512 automatically requests a translation from the MFEF server 502 in response to the browser context monitor 510 identifying an embedded element in a foreign language.
[0076] In some embodiments, the MFEF server 502 includes an MFEF API 514 that receives API requests for translation of MFEF documents from an MFEF requester 512, where the requests are structured according to a format defined by the MFEF API 514. For example, in some embodiments, the API request includes the MFEF document, the MFEF document name, the URL or file location of the MFEF document, and the user's preferred language. In some embodiments, the API request may include multiple preferred languages of the user. In some such embodiments, the multiple preferred languages may be in order of preference of the preferred languages. In some embodiments, the MFEF API 514 assigns a request ID, which is a unique identifier that identifies the translation request from the MFEF requester 512. In some embodiments, the MFEF API 514 defines the data format, functions, selection and format of passed parameters, syntax, and other characteristics of each service request and response. In some embodiments, the MFEF API 514 conforms to a common or open convention, such as SOAP or REST, or follows a proprietary, vendor-specific, or application-specific format.
[0077] In some embodiments, the MFEF server 502 includes an embedded element recognizer 516 that parses the translation request information, including parsing the MFEF document, to recognize the number and types of embedded elements in the MFEF document. For example, in some embodiments, the embedded element recognizer 516 parses the MFEF document 312 of Figure 3 and recognizes that embedded element 314A is a text element type (Main001.text), embedded element 314B is a text element type (Main002.text), embedded element 314C is a video element type (Main789.mp4), embedded element 314D is an audio element type (Main123.mp3), and embedded element 314E is an image element type (Main456.jpg).
[0078] In some embodiments, the MFEF server 502 includes an embedded element language detector 518 that detects the language of each of the embedded elements detected by the embedded element recognizer 516 using known computer-based techniques. For example, in some embodiments, the embedded element language detector 518 detects the language of the embedded elements 314A-314E detected by the embedded element recognizer 516 to detect that embedded element 314A is an English text element type (Main001.text), embedded element 314B is a Spanish text element type (Main002.text), embedded element 314C is a French video element type (Main789.mp4), embedded element 314D is an English audio element type (Main123.mp3), and embedded element 314E is a Japanese image element type (Main456.jpg). In some embodiments, the embedded element language detector 518 evaluates the audio and video elements to determine whether there is also a translated caption or subtitle present in addition to the audio. In some embodiments, the embedded element language detector 518 compares the language of the detected embedded elements with the preferred language of the user 506 to determine which embedded elements need to be translated into the user's preferred language. For example, if the user's preferred language is Chinese (or "ZH"), the embedded element language detector 518 passes all of the embedded elements to the MFEF translator 520 for translation into Chinese (or "ZH"). As another example, if the user's preferred language is English, the embedded element language detector 518 passes embedded elements 314B (Spanish, or ES), 314C (French, or FR), and 314E (Japanese, or JA) to the MFEF translator 520 for translation into English, and the remaining two embedded elements 314A and 314D, which are already in the user's preferred language, can remain unchanged in the original MFEF document and therefore do not require translation or replacement.
[0079] In some embodiments, the MFEF server 502 includes an MFEF translator 520. In some embodiments, the MFEF translator 520 operates in response to the embedded element language detector 518 detecting the language of the embedded elements to obtain a translation for each of the embedded elements. In some embodiments, the MFEF translator 520 uses various third party computer-based machine translation services to translate one or more of the embedded elements. In some embodiments, the MFEF translator 520 includes one or more modules that use known computer-based techniques to obtain a machine-generated translation of one or more of the embedded elements. In some embodiments, the MFEF translator 520 uses a human translator to translate one or more of the embedded elements. In some embodiments, the MFEF translator 520 selects among two or more translators based at least in part on a level of service associated with a requesting user. For example, in some embodiments, the MFEF translator 520 selects a more accurate and / or more expensive translator for users associated with tier 1 services and a less accurate and / or less expensive translator for users associated with tier 2 services.
[0080] In some embodiments, the MFEF server 502 includes an MFEF generator 522 that receives the translated embedded elements and generates a new MFEF document that includes the translated embedded elements. In some embodiments, the MFEF generator 522 returns the translated embedded elements to the MFEF client 504.
[0081] In some embodiments, the MFEF client 504 includes a display wizard 524 that receives the translated MFEF document and saves the new MFEF document in a temporary directory as a target document 526. The display wizard 524 returns a pointer to the user's web browser instructing the web browser to display the target document 526 with the translated embedded elements. In some embodiments, the display wizard 524 verifies that the structure of the new MFEF document matches the structure of the original MFEF document and that the translated embedded elements replace corresponding foreign language embedded elements in the same locations as the respective foreign language embedded elements. In some embodiments, the display wizard 524 uses a pre-fetch technique for embedded elements that are still being translated when the MFEF generator 522 sends the new MFEF document to the display wizard 524. In some such embodiments, the MFEF generator 522 includes links to embedded elements that are still being translated, and the display wizard 524 inserts a temporary message alerting the user 506 to such pending translation, and then removes the temporary message once the translation is complete and the translated embedded elements are received and embedded in the new MFEF document.
[0082] In some embodiments, the MFEF server 502 includes an MFEF manager 528 that oversees the translation operations of the MFEF server 502. For example, in some embodiments, the MFEF manager 528 provides a unique request ID to the MFEF API 514 each time the MFEF API 514 receives a new translation request. In some embodiments, the MFEF manager 528 stores an MFEF service profile 530 that includes data regarding one or more service levels, or service tiers, available to registered users. In some embodiments, the MFEF service profile 530 includes third party translation services available at different service tiers, along with associated information, such as costs and contacts, for each of the third party translation services.
[0083] In some embodiments, MFEF manager 528 allows users to register and create user accounts. In some embodiments, MFEF manager 528 generates a graphical user interface (GUI) that allows users to create and manage their accounts, including selecting any options available in the user account, such as a preferred language, a type of element to translate, or a service level or tier, or a combination thereof. In some such embodiments, MFEF manager 528 stores user information of registered users as user profiles 532. In some embodiments, user profiles 532 include user information, such as the user's name, business name, preferred language, and contact information. In some embodiments, user profiles 532 include request IDs of requests made by the respective users. In some embodiments, user profiles 532 include a service level or tier associated with each registered user, including data regarding one or more service levels or tiers available to each registered user.
[0084] In some embodiments, the MFEF manager 528 generates an MFEF data structure 534 for each translation request. In some embodiments, the MFEF data structure 534 includes a unique request ID associated with a user account so that the MFEF translation request can be associated with the appropriate user. In some embodiments, the MFEF data structure 534 includes other information about the translation request, such as the name and location of the MFEF document, the types of elements in the MFEF document, the language of the elements in the MFEF document, and the translator used to translate each of the foreign language elements in the MFEF document. Thus, in some embodiments, the MFEF manager 528 communicates with the MFEF API 514, the embedded element recognizer 516, the embedded element language detector 518, the MFEF translator 520, and the MFEF generator 522 to maintain and update the MFEF data structure 534 as translation requests are processed by various components of the MFEF server 502.
[0085] 6, a block diagram of an embodiment of an MFEF data structure 600 according to an example embodiment is shown. In some embodiments, the MFEF data structure 600 is an example of the MFEF data structure 534 of FIG.
[0086] In some embodiments, the MFEF data structure 600 includes a request ID 602 (or "ID" 602), a source document name 604 (or "document" 604), a source document path (606 or "path" 606), a source document language 608, a list or array of embedded elements and formats 610 (or "element list" 610), a list or array of languages of the embedded elements 612 (or "language list" 612), a list or array of translation tools or services 614 (or "translator list" 614), and a user-preferred target language 616 (or "user language" 616). In some embodiments, the API 514 expects, as a minimum requirement, that at least fields 602, 604, and 606 be filled out by the MFEF requester 512. Fields 608, 612, 614, and 616 can be filled out by the MFEF server during the MFEF translation service. In some embodiments, ID 602 is a key value that uniquely identifies a translation record. In some embodiments, ID 602 identifies an associated record in one or more other tables of the user database, such as a transaction table that lists all translation requests by ID 602 and associated costs, if any. In some embodiments, ID 602 is provided by MFEF manager 528 and identifies an associated record in one or more other tables of the MFEF server database, such as a customer table that lists all translation requests by ID 602 and associated customer numbers or customer information.
[0087] In some embodiments, document 604 is the filename of the MFEF to be translated. In some embodiments, MFEF server 502 receives a copy of the MFEF and stores it in a file system somewhere accessible to MFEF server 502, and document 604 is a pointer, link, or shortcut to the MFEF. In some embodiments, the MFEF is stored in a database in document 604. In some embodiments, path 606 includes a location description of the MFEF document, e.g., a path to where the MFEF document is stored in a file system. In some embodiments, the translation request does not include a copy of the MFEF document, but instead includes a file location description, e.g., a URL. In some embodiments, source document language 608 is the language that is considered to be the primary language of document 604. For example, in the embodiment shown in FIG. 6, the source document language is English (or "EN") based on the fact that the main text area Main001.text of screen 300 is in English, even though other elements are in other languages (e.g., Main789.mp4 is in French). In some embodiments, source document languages 608 may include a list of all languages present in the MFEF document.
[0088] In some embodiments, element list 610 includes a list of embedded elements contained in the MFEF document of document 604. In some embodiments, element list 610 includes fewer elements than all embedded elements in the MFEF document in document 604. For example, in some embodiments, element list 610 includes only embedded elements in selected regions of the MFEF document for which a user requests translation, such as a selected page of a presentation file or a selected region of a screen rendered from an HTML file. As another example, in some embodiments, element list 610 includes only embedded elements that are not in one of the user's preferred languages, so element list 610 has already been processed to filter out elements that are not part of the material to be translated. In some embodiments, language list 612 includes the same list of elements as element list 610, but each element of language list 612 includes an indication of the language of that element. For example, in the embodiment shown in FIG. 6, language list 612 is a multidimensional array, with each list item being an array that includes the element followed by its language.
[0089] In some embodiments, the translator list 614 includes a list of translation tools or services that the MFEF server 502 plans to use to translate one or more of the elements in the element list 612. Thus, in some embodiments, the translator list 614 is generated by the MFEF server 502 using the translator information stored in the MFEF service profile 530. In some alternative embodiments, the MFEF API 514 allows an API request to request one or more specific translation tools or services, or one or more different tiers or levels of services, e.g., ranging from machine translation to human translation, providing audio / video translation in written transcript or audio / video format. For example, in some embodiments, the user 506 requests a higher tier translation service for a video element (e.g., Main789.mp4), where the higher tier service includes a human translation delivered to the user in an audio format that replaces the original foreign language audio of the video element. As another example, in some embodiments, a user 506 requests a lower-layer translation service for an audio element (e.g., Main123.mp3), where the lower-layer service includes a machine translation delivered to the user in a written format as a transcript of the translated audio. In such an embodiment, the translator list 614 may include a user specification of options (e.g., human or machine translation, or output in written or audio format, or a combination thereof). For example, if the user's preferred language is Chinese (or "ZH"), the embedded element language detector 518 updates the translator list 614 and passes all of the embedded elements to the MFEF translator 520 for translation into Chinese: translator-1 (Main123.mp, EN->ZH); translator-2 (Main456.jpg, JA->ZH); translator-3 (Main789.mp4, FR->ZH); translator-4 (Main002.text, ES->ZH).
[0090] In some embodiments, user language 616 includes target language information, which informs MFEF server 502 as to which language an element is to be translated into. In some embodiments, user 506 specifies a single target language into which all elements are translated. In some embodiments, user 506 specifies one or more different target languages for each element. In some embodiments, user language 616 is specified automatically by MFEF server 502 based on the user's profile data.
[0091] 7, a flow chart of an exemplary process 700 for translating an MFEF document according to an exemplary embodiment is shown. In a particular embodiment, the MFEF server 502 performs the process 700.
[0092] In one embodiment, the MFEF server 502 receives a request to translate an MFEF document at block 702. In some embodiments, the request is structured according to a format defined by the MFEF API. For example, in some embodiments, the API request includes the MFEF document, the MFEF document name, the URL or file location of the MFEF document.
[0093] Next, at block 704, the MFEF server 502 identifies the preferred language of the requesting user. In some embodiments, the MFEF server 502 receives the preferred language as part of the translation request. In some embodiments, the MFEF server 502 receives the user's preferred language as part of a registration process in which the user creates an account with the MFEF server. In some embodiments, the MFEF server receives the preferred language based on monitoring the user's history or user behavior, such as identifying the languages of websites the user frequently visits.
[0094] Next, at block 706, the MFEF server 502 parses the information of the translation request, including parsing the MFEF document to recognize the number and type of embedded elements in the MFEF document. Next, at block 708, the MFEF server 502 detects the language of each of the detected embedded elements using known techniques. In some embodiments, the MFEF server 502 evaluates the audio and video elements to determine whether there are captions or subtitles to be translated in addition to the audio. In some embodiments, the MFEF server 520 compares the language of the detected embedded elements with the user's preferred language to determine which embedded elements need to be translated into the user's preferred language.
[0095] Next, at block 710, the MFEF server 502 obtains a translation for each of the embedded elements. In some embodiments, the MFEF server 502 uses various third party translation services to translate one or more of the embedded elements. In some embodiments, the MFEF server 502 includes one or more modules that use known techniques to translate one or more of the embedded elements. In some embodiments, the MFEF server 502 uses a human translator to translate one or more of the embedded elements. In some embodiments, the MFEF server 502 selects among two or more translators based at least in part on the level of service associated with the requesting user. For example, in some embodiments, the MFEF server 502 selects a more accurate and / or more expensive translator for users associated with a first tier of service and a less accurate and / or less expensive translator for users associated with a second tier of service.
[0096] The MFEF server 502 then receives the translated embedded element and generates a new MFEF document that includes the translated embedded element, at block 712. In some embodiments, the MFEF server 502 returns a new MFEF document that includes the translated element and at least one link to an element that is still being translated, and when complete, the link is to the translated element.
[0097] The following definitions and abbreviations are used in interpreting the claims and this specification. As used herein, the terms "comprises," "comprising," "includes," "including," "has," "having," "contains," "containing," or other variations are intended to cover a non-exclusive inclusion. For example, a composition, mixture, process, method, article, or device that includes a list of elements is not necessarily limited to only those elements but can include other elements not expressly listed or inherent to such composition, mixture, process, method, article, or device.
[0098] Moreover, the term "exemplary" is used herein to mean "serving as an example, instance, or illustration." Any embodiment or design described herein as "exemplary" is not necessarily to be construed as preferred or advantageous over other embodiments or designs. The terms "at least one" and "one or more" are understood to include any integer greater than or equal to one, i.e., 1, 2, 3, 4, etc. The term "multiple" is understood to include any integer greater than or equal to two, i.e., 2, 3, 4, 5, etc. The term "connected" can include indirect and direct "connections."
[0099] References herein to "one embodiment," "one embodiment," "exemplary embodiment," and the like indicate that the embodiment being described may include a particular feature, structure, or characteristic, but that all embodiments may or may not include that particular feature, structure, or characteristic. Moreover, such phrases are not necessarily referring to the same embodiment. Furthermore, when a particular feature, structure, or characteristic is described in relation to one embodiment, it is submitted that it is within the knowledge of one of ordinary skill in the art to affect such feature, structure, or characteristic in relation to other embodiments, whether or not explicitly described.
[0100] The terms "about," "substantially," "approximately," and variations thereof are intended to include the degree of error associated with the measurement of a particular quantity based on the equipment available at the time of filing. For example, "about" can include a range of ±8%, or 5%, or 2% of a given value.
[0101] The description of various embodiments of the present invention has been presented for illustrative purposes, but is not intended to be exhaustive or limiting of the disclosed embodiments. Many modifications and variations will be apparent to those skilled in the art without departing from the scope and spirit of the described embodiments. The terms used in this specification have been selected to best explain the principles of the embodiments, practical applications, and technical improvements to the technology found in the market, or to enable those skilled in the art to understand the embodiments described herein.
[0102] Thus, in the illustrated embodiments, computer-implemented methods, systems or apparatus, and computer program products are provided for managing participation in an online community, and other related features, functions, or operations. Where an embodiment or portion thereof is described with respect to a type of device, the computer-implemented method, system or apparatus, computer program product, or portion thereof, is adapted or configured for use with an appropriate and comparable manifestation of that type of device.
[0103] When an embodiment is described as being implemented in an application, provision of the application in a Software as a Service (SaaS) model is envisioned within the scope of the exemplary embodiment. In the SaaS model, the functionality of the application implementing the embodiment is provided to users by running the application in a cloud infrastructure. Users can access the application through a thin-client interface such as a web browser (e.g., web-based email) or other lightweight client application using a variety of client devices. Users do not manage or control the underlying cloud infrastructure, including the network, servers, operating systems, or storage of the cloud infrastructure. In some cases, users do not manage or control even the functionality of the SaaS application. In other cases, the SaaS implementation of the application may allow limited user-specific application configuration settings as possible exceptions.
[0104] The present invention may be a system, method, or computer program product, or combination thereof, at any possible level of technical detail of integration. The computer program product may include one or more computer-readable storage media having computer-readable program instructions thereon for causing a processor to perform aspects of the present invention.
[0105] A computer readable storage medium may be any tangible device capable of holding and storing instructions for use by an instruction execution device. A computer readable storage medium may be, for example, but not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the above. A non-exhaustive list of more specific examples of computer readable storage media includes portable computer diskettes, hard disks, random access memory (RAM), read only memory (ROM), erasable programmable read only memory (EPROM or flash memory), static random access memory (SRAM), portable compact disk read only memory (CD-ROM), digital versatile disk (DVD), memory sticks, floppy disks, mechanically encoded devices such as punch cards or ridge structures in grooves having instructions recorded thereon, and any suitable combination of the above. As used herein, a computer-readable storage medium is not to be construed as a transitory signal per se, such as an electric wave or other freely propagating electromagnetic wave, an electromagnetic wave propagating through a waveguide or other transmission medium (e.g., light pulses through a fiber optic cable), or an electrical signal sent through a wire.
[0106] The computer readable program instructions described herein may be downloaded from a computer readable storage medium into each computing / processing device, or may be downloaded to an external computer or storage device over a network, such as the Internet, a local area network, a wide area network, or a wireless network, or a combination thereof. The network may include copper transmission cables, optical transmission fiber, wireless transmission, routers, firewalls, switches, gateway computers, or edge servers, or a combination thereof. A network adapter card or network interface in each computing / processing device receives the computer readable program instructions from the network and transfers the computer readable program instructions for storage in a computer readable storage medium in the respective computing / processing device.
[0107] The computer readable program instructions for carrying out the operations of the present invention may be either assembler instructions, instruction set architecture (ISA) instructions, machine instructions, machine dependent instructions, microcode, firmware instructions, state setting data, configuration data for an integrated circuit, or source or object code written in any combination of one or more programming languages, including object oriented programming languages such as Smalltalk, C++, and procedural programming languages such as the "C" programming language or similar programming languages. The computer readable program instructions may be executed entirely on the user's computer, partially on the user's computer as a stand-alone software package, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or wide area network (WAN), or may be connected to an external computer (e.g., through the Internet using an Internet Service Provider). In some embodiments, electronic circuitry including, for example, a programmable logic circuit, a field programmable gate array (FPGA), or a programmable logic array (PLA) can execute computer readable program instructions by individualizing the electronic circuitry using state information of the computer readable program instructions to implement aspects of the invention.
[0108] Aspects of the present invention are described with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer readable program instructions.
[0109] These computer readable program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, whereby the instructions executed by the processor of the computer or other programmable data processing apparatus create means for performing the functions / operations specified in one or more blocks of the flowcharts and / or block diagrams. These computer readable program instructions may also be stored in a computer readable storage medium capable of directing a computer programmable data processing apparatus, or other device, or combination thereof, to function in a particular manner, whereby the computer readable storage medium having instructions stored therein includes an article of manufacture including instructions implementing aspects of the functions / operations specified in one or more blocks of the flowcharts and / or block diagrams.
[0110] The computer program instructions may be loaded onto a computer, other programmable data processing apparatus, or other device to cause a sequence of operational steps to be performed on the computer, other programmable data processing apparatus, or other device to generate a computer-implemented process, such that the instructions executing on the computer, other programmable apparatus, or other device perform the functions / acts specified in one or more blocks of the flowcharts and / or block diagrams.
[0111] The flowcharts and block diagrams in the figures illustrate the architecture, functionality and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present invention. In this regard, each block in the flowcharts or block diagrams may represent a module, segment or portion of instructions, including one or more executable instructions for implementing the specified logical function. In some alternative implementations, the functions shown in the blocks may occur in a different order than that shown in the figures. For example, two blocks shown in succession may in fact be executed substantially simultaneously, or these blocks may sometimes be executed in the reverse order, depending on the functionality involved. It should also be noted that each block in the block diagrams and / or flowchart illustrations, and combinations of blocks in the block diagrams and / or flowchart illustrations, may be implemented by a dedicated hardware-based system that executes the specified functions or operations, or executes a combination of dedicated hardware and computer instructions.
Claims
1. A method implemented by a computer-based information processing system, comprising the steps of: receiving, by a server providing a plurality of service layers, from a user, a request for translation of a multi-format embedded file (MFEF) document that includes a plurality of embedded elements, the plurality of service layers including a respective group of translation services; In response to the request for the MFEF document, the server automatically: parsing the MFEF document to identify element types of the embedded elements, the element types including a first element type and a second element type; identifying a foreign language embedded element from among the plurality of embedded elements, the foreign language embedded element being an embedded element in a language other than the user's preferred language; generating a data structure including a request ID uniquely associated with the request and the identified foreign language embedded elements; Associating the request ID with a user profile stored on the server and associated with the user, the user profile including service tier information associated with the user; identifying the service tier associated with the user from among the plurality of service tiers from the user profile associated with the request ID included in the data structure; selecting a first translator for translating the first element type of the foreign language embedded elements included in the data structure and a second translator for translating the second element type of the foreign language embedded elements included in the data structure based at least in part on the service tier identified from the user profile; translating the foreign language embedded elements included in the data structure using the first translator selected to translate the first element type of the foreign language embedded elements included in the data structure and the second translator selected to translate the second element type of the foreign language embedded elements included in the data structure; The method includes:
2. The method of claim 1 , wherein the request includes location information regarding a location of the MFEF document.
3. The method of claim 2 , wherein the location information comprises a Uniform Resource Locator (URL).
4. The method of claim 1 , wherein the request includes the MFEF document.
5. The method of claim 1 , wherein the element types include textual and non-textual formats.
6. 6. The method of claim 5, wherein the non-text format comprises at least one member selected from the set of a video format, an audio format, and an image format.
7. The method of claim 1 , wherein translating the foreign language embedded elements comprises creating a replacement element in a preferred language for each foreign language embedded element.
8. 8. The method of claim 7, further comprising generating a preferred language replacement MFEF document that includes the preferred language replacement element.
9. 9. The method of claim 1, further comprising determining the preferred language of the user based at least in part on the user's past behavior, the user's past behavior including the user providing a list of preferred languages, the user using a browser with a preferred language set to access the MFEF document, providing historical information including information regarding languages of documents previously read or searched by the user, or the user selecting one or more images from a plurality of images readily associated with respective languages.
10. the request includes a header; The method of claim 1 , further comprising determining the preferred language of the user based at least in part on information in the header.
11. The method of claim 1 , wherein receiving, by the server, the request for the MFEF document comprises receiving the request using an application program interface (API).
12. The method of claim 1 , wherein the service tier associated with the user is a service tier preselected by the user from among the plurality of service tiers.
13. A computer program product causing a computer to carry out the method according to any one of claims 1 to 12.
14. A computer readable storage device having stored thereon a computer program according to claim 13.
15. A computer system comprising a processor, a computer-readable memory, a computer-readable storage device, and program instructions stored on the storage device for execution by the processor via the memory, the stored program instructions comprising program instructions that cause the processor to perform a method according to any one of claims 1 to 12.
Citation Information
Patent Citations
Information processing system, control method for information processing system, information processing device, control method for information processing device, information storage medium, and program
WO2014155742A1
Webpage translation system, webpage translation device, webpage provision device, and webpage translation method
WO2019163117A1