Selective pre-translation of web content
The selective pre-translation system addresses the quality and cost issues of existing online translation services by translating content only when user interest thresholds are met, resulting in improved quality, engagement, and cost efficiency.
Patent Information
- Application Number
- JP2024526948
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2021-11-08
- Filing Date
- 2022-11-08
- Publication Date
- 2025-05-20
AI Technical Summary
Existing online translation services often compromise on quality and are costly for companies due to pay-per-click models, leading to reduced user engagement and increased expenses.
A selective pre-translation system that translates online content only when certain activity-based thresholds are met, using a server-based process to obtain high-quality machine translations and cache them for subsequent users.
Improves translation quality, increases user engagement, and reduces translation costs by translating content only when there is significant user interest, allowing for better budget control and efficient use of translation services.
Smart Images

Figure 2025515534000001_ABST
Abstract
Description
[Technical field]
[0001] Related Applications This application is related to U.S. Provisional Patent Application No. 63 / 263,757, filed November 8, 2021, entitled "Selective Pre-Translation of Web Content," which is incorporated by reference in its entirety herein.
[0002] Technical Field The present application relates to an automated process for selectively obtaining machine translations of content at a server. [Background technology]
[0003] background As the world becomes more connected, online business interactions are increasingly taking place between users who speak different languages. Companies that host content on the Internet run the risk of losing user engagement if the content is not in the user's language. With this in mind, some websites offer third-party translation services by including a "translate" button along with the hosted content. By clicking the button, the user may receive a machine translation of the content in the requested language. However, the efficiency with which these services provide the requested translation usually comes at the expense of quality. Also, such translation services typically charge companies per click, making them costly for companies that use them, especially those with a large number of users. Summary of the Invention [Problem to be solved by the invention]
[0004] overview This disclosure describes a selective pre-translation system and method in which online content is selectively translated based on user activity. Rather than translating the entire body of content, the systems and methods described herein selectively translate content when certain activity-based thresholds are met. Once the translation process is triggered based on these thresholds being met, a high-quality translation may be obtained, cached, and provided to the user who next requests to view the content in the translated language. Thus, the quality of the translated content is improved, user engagement is increased, and translation costs are controlled. [Means for solving the problem]
[0005] In one aspect, a first viewer automatically triggers a server-based translation process. Specifically, the server is configured to obtain content in a first language. In one example, the content may be an online listing (e.g., for room rentals). However, any other type of content may be obtained. Before providing the content to the first client device, the server receives a first request from the first client device to view the content, the first request being associated with a second language selected by a user operating the first client device. In response to receiving the first request, the server determines that the first language of the content is different from the second language associated with the first request. In accordance with the determination that the first language of the content is different from the second language associated with the first request, the server obtains a machine-translated version of the content in the second language and provides the machine-translated version of the content in the second language to one or more client devices.
[0006] In some implementations, the second (subsequent) viewer automatically gets the translated content previously translated for the first viewer. Specifically, after the server obtains the machine-translated version of the content in the second language, it stores the machine-translated version of the content in the second language in a storage device of the server. The server receives a second request from a second client device to view the content, the second request being associated with the second language. In response to receiving the second request, the server determines that the first language of the content is different from the second language associated with the second request and determines that the storage device of the server includes the machine-translated version of the content in the second language. In response to determining that the first language of the content is different from the second language associated with the second request and determining that the storage device of the server includes the machine-translated version of the content in the second language, the server provides the machine-translated version of the content in the second language to the second client device.
[0007] In some implementations, obtaining the machine-translated version of the content in the second language is subject to a threshold of requests to view the content in the second language. Specifically, the first request is an Nth request to view the content, and the server, in response to receiving the first request, determines that N is greater than or equal to a predetermined threshold for obtaining the machine translation, the predetermined threshold being at least 2, and obtains the machine-translated version of the content in the second language in accordance with the determination that N is greater than or equal to the predetermined threshold.
[0008] In some implementations, the server adjusts the predetermined threshold based on a cost associated with obtaining a machine-translated version of the content in the second language.
[0009] In some implementations, a machine-translated version of the second language content is obtained from a machine translation algorithm based on one or more machine learning processes trained using the content received at the server.
[0010] In some implementations, the content in the first language is user-submitted content obtained from a third client device, and the server determines that the user-submitted content is in the first language based on an association between the third client device and the first language.
[0011] In some implementations, in response to receiving the first request, the server determines that the server's storage does not contain a machine-translated version of the content in the second language, and the server obtains the machine-translated version of the content in the second language in accordance with the determination that the server's storage does not contain a machine-translated version of the content in the second language.
[0012] In some implementations, the server receives a selection of a second language from the first client device as a selected language for the first client device before receiving the first request from the first client device, and the server assigns the second language to a profile associated with a user operating the first client device based on the selection of the second language, and the association of the first request with the second language is based on the second language assigned to the profile associated with the user operating the first client device.
[0013] In some implementations, the server receives a selection of a locale for the first client device from the first client device before receiving the first request from the first client device, and the server assigns a second language to a profile associated with a user operating the first client device based on the selection of the locale of the first client device, and the association of the first request with the second language is based on the second language assigned to the profile associated with the user operating the first client device.
[0014] In some implementations, the server retrieves updates to the content in the first language after receiving the first request, and in response to retrieving the updates to the content in the first language, the server retrieves a machine-translated version of the updates to the content in the second language before receiving any subsequent requests to view the content, and stores the machine-translated version of the updates to the content in the second language in a storage device of the server.
[0015] In some implementations, the server provides content in the first language to the first client device in response to receiving the first request.
[0016] In some implementations, providing the content in the first language to the first client device includes providing a machine translation option to the first client device, and the server receives an indication from the first client device that the machine translation option was selected. In response to receiving the indication, the server obtains an uncached machine-translated version of the content in the second language and provides the uncached machine-translated version of the content in the second language to the first client device.
[0017] In some implementations, in accordance with a determination that the first language of the content is different from a second language indicated by a profile associated with the first client device, the server provides a machine-translated version of the content in the second language to the first client device.
[0018] In some implementations, providing the machine-translated version of the content in the second language to the first client device includes providing an original language option to the first client device, and the server receives an indication from the first client device that the original language option was selected. The server provides the content in the first language to the first client device in response to receiving the indication.
[0019] BRIEF DESCRIPTION OF THE DRAWINGS For a better understanding of the various described implementations, reference should be made to the following detailed description in conjunction with the following drawings, in which like reference numerals refer to corresponding parts throughout. [Brief description of the drawings]
[0020] [Figure 1] 1 is a block diagram of an online content hosting environment including a server configured to selectively pre-translate content, according to some implementations. [Diagram 2] 2 is a block diagram of the server of FIG. 1 including modules configured to implement selective pre-translation of content according to some implementations. [Figure 3A] 2 illustrates content received in one language at the server of FIG. 1 and viewed by a client device associated with another language, according to some implementations. [Figure 3B] 2 illustrates content received in one language at the server of FIG. 1 and viewed by a client device associated with another language, according to some implementations. [Figure 4A] 2 illustrates content received at the server of FIG. 1 in one language and viewed by a client device associated with another language, where the content is pre-translated according to some implementations. [Figure 4B] 2 illustrates content received at the server of FIG. 1 in one language and viewed by a client device associated with another language, where the content is pre-translated according to some implementations. [Figure 5A] 2 is a timing diagram of an example operational scenario of the online content hosting environment of FIG. 1 according to some implementations. [Figure 5B] 2 is a timing diagram of an example operational scenario of the online content hosting environment of FIG. 1 according to some implementations. [Figure 6] 2 is a flow diagram illustrating the operation of the online content hosting environment of FIG. 1 according to some implementations. [Figure 7] 2 is a flow diagram illustrating a method for pre-translating content at the server of FIG. 1 according to some implementations. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0021] Detailed Description This disclosure describes an impression-based translation system that detects content being viewed by users associated with a language other than the original language of the content. When at least a predetermined threshold of such users view the content, the system triggers a translation process and stores a high-quality translation of the content for later viewing. Subsequent users may be automatically presented with the translated content. As used herein, the term "quality" in the context of translation refers to accuracy, including how accurately the content would be understood by a fluent speaker of the translated language. Translation quality takes into account factors such as formal and informal language, idioms, natural speech, phrases, and expressions (e.g., "killer sunset view") that cannot be translated accurately using basic machine translation.
[0022] In one example, a content creator uploads content to a server in a first language (e.g., Korean). The content is typically written text, although other forms of content are contemplated, such as images, audio, video, or other multimedia content. For illustration purposes, the content creator may be a room rental host and the uploaded content may be a rental listing. However, this example is not meant to limit the types of content that may be uploaded or the means by which the server obtains the content.
[0023] The server in this example stores the content and makes it available in a first language to users who wish to view it. To conserve processing resources, the server may not necessarily detect the language of the content when the content is first uploaded. Instead, the server may wait until the content has been viewed at least a threshold number of times (e.g., a user navigates to a web page that corresponds to the content) and then determine the language of the content and potentially trigger a translation process.
[0024] Each user in this example (e.g., a potential guest seeking to rent a room corresponding to a listing) preselects a language or locale during the registration process, and the server associates the selected language or the language corresponding to the selected locale with the user (e.g., by setting a preferred language in the user profile). Once a particular user meets a viewing threshold (e.g., a predetermined number of users have requested to view the content), the server compares the language of the content (e.g., Korean) with the particular user's preferred language (e.g., English), and if it determines that the languages are different, the server triggers a translation process.
[0025] Continuing with this example, the translation process may include the use of machine learning transformation algorithms with optional human supervised training and / or oversight to obtain a high quality translation that is more accurate than typical machine translation. Thus, in some implementations, a high quality translation of the content (e.g., an English rental listing) may not be immediately available to a particular user who triggered the translation process. In such a scenario, the server may provide the original language content to the particular user while obtaining a high quality translation for subsequent users associated with the translation language who request to view the content. The server automatically provides the high quality translation to the subsequent users since the content has already been translated and cached at the server at that time.
[0026] The translated content may be used to train a machine learning translation algorithm, thereby providing a specialized training data set with terms that have a high degree of correspondence with other content on the server (e.g., terms commonly used in rental listings). Use of such specialized training data sets improves the machine learning translation algorithm, improving the accuracy of subsequent translations over time. Furthermore, because the content is not translated until the view threshold is met, the content can benefit from machine learning translation improvements that occur after the content is retrieved by the server but before the view threshold is met.
[0027] In some implementations, the evaluation and rating of the machine learning results by linguists may be used to further tune the machine learning translation algorithm (sometimes called reinforcement learning). Additionally, tone and voice guidelines may be used to further tune the machine learning translation algorithm. Additionally, terminology glossaries may be used to further tune the machine learning translation algorithm.
[0028] By selectively triggering the translation process in the above manner, the translation system translates content only for scenarios where interest in translation exceeds a predetermined amount, which is more cost-effective than translating all content. Furthermore, the predetermined amount (view threshold) can be adjusted to reflect different cost structures of translation services and / or different budgets for providing such translations. If the cost of providing a translation becomes too high, the view threshold for triggering a translation can be increased (e.g., from 2 views to 5 views). Furthermore, if the cost structure of a translation service involves increased costs for increased usage, the view threshold for triggering a translation can be increased before the next cost tier is reached. By controlling the view threshold for triggering a translation process, businesses can gain greater control over their translation budgets compared to pay-per-click systems.
[0029] By caching translations, a translation service only needs to be used once each time content is translated, rather than paying a third-party translation vendor each time a translation of the same content is requested. Additionally, once a high-quality translation is cached, it can be automatically provided to subsequent users without delay, so that any processing latency or other types of delays associated with obtaining a high-quality translation only impacts users who view the content before the translation process is triggered.
[0030] The selective pre-translation process described herein allows customers to view content in their preferred language by performing a single language selection during registration. Thus, once a viewing threshold is met, customers no longer need to view content in other languages or click a "translate" button to request a translation. Instead, customers automatically see the content the way they want to, resulting in greater understanding and satisfaction, which in turn results in higher conversion rates (e.g., from viewing rental listings to selecting a booking option).
[0031] With reference to FIGS. 1-7, the following discussion provides a more detailed description of various implementations of the selective pre-translation process illustrated in the examples above.
[0032] 1 is a block diagram of an online content hosting environment 100 including a server 102 configured to selectively pre-translate content, according to some implementations. In addition to the server 102, the environment 100 includes a translation service 104, a number of client devices 106, and one or more communication networks 110.
[0033] Server 102 is an electronic computing device or system configured to provide resources, data, services, or programs to other computing devices (e.g., 106) over a network (e.g., 110). Server 102 is configured to retrieve content, monitor how many times the content is requested for viewing by client devices, retrieve translations via translation service 104 when a viewing threshold is met, store the translated content, and provide the translated content to client devices that request to view it after retrieving each translation, as described in more detail below with reference to Figures 2 and 5-7.
[0034] The translation service 104 is any combination of computing devices and / or processing modules integrated with or in communication with the server 102 and configured to provide translated versions of content provided by the server 102. The server 102 and the translation service 104 may communicate over a communications network 110 in scenarios where the translation service 104 is remote from the server 102 (e.g., a third-party translation vendor) or may communicate directly in scenarios where the translation service 104 is integrated with the server 102 (e.g., a machine learning translation module on the server).
[0035] The client devices 106 are personal electronic computing devices associated with respective users. The client devices 106 include, but are not limited to, smart phones, tablet computers, laptop computers, smart cards, voice assistant devices, or other technologies (e.g., combinations of hardware and software) known or yet to be discovered that have similar structure and / or capabilities as the mobile devices described herein. Each client device 106 includes communications capabilities (e.g., modems, transceivers, radios, etc.) for communicating over the communications network 110.
[0036] The communication network 110 communicatively couples the server 102 and the client devices 106 (and optionally the translation service 104) to one another. The communication network 110 is configured to carry communications (messages, signals, transmissions, etc.). Communications include various types of information and / or instructions, including but not limited to data, commands, bits, symbols, voltages, currents, electromagnetic waves, magnetic fields or particles, optical fields or particles, and / or any combination thereof. The communication network 110 uses one or more communication protocols, such as any of Wi-Fi, Bluetooth, Bluetooth Low Energy (BLE), near-field communication (NFC), ultra-wideband (UWB), radio frequency identification (RFID), infrared radio, inductive radio, ZigBee, Z-Wave, 6LoWPAN, Thread, 4G, 5G, etc. Such protocols may be used to send and receive communications using one or more transmitters, receivers, or transceivers. For example, wired communications (e.g., wired serial communications) may use technologies suitable for wired communications, short-range communications (e.g., Bluetooth) may use technologies suitable for close-proximity communications, and long-range communications (e.g., GSM, CDMA, Wi-Fi, wide area networks (WANs), local area networks (LANs), etc.) may use technologies suitable for remote communications over distances (e.g., via the Internet). In general, communications network 110 may include or use any wired or wireless communications technology known or yet to be discovered.
[0037] 2 is a block diagram illustrating functional components of a server 102, including modules configured to implement selective pre-translation of content according to some implementations. The server 102 includes one or more processors 202, memory 204, a communication module 206, a monitoring module 208, a sourcing module 210, a translation module 212, and a content store 214. Although FIG. 2 illustrates various modules, it is intended as a functional description of various features that may be present in the modules, rather than as a structural schematic of the implementations described herein. In practice, programs, modules, and data structures illustrated separately may be combined, and some programs, modules, and data structures may be separated.
[0038] The processor 202 includes one or more central processing units (CPUs) or any other electronic circuitry configured to execute instructions that include a computer program (eg, a program stored in the memory 204).
[0039] The memory 204 includes non-transitory computer-readable storage media, such as volatile memory (e.g., one or more random access memory devices) and / or non-volatile memory (e.g., one or more flash memory devices, magnetic disk storage devices, optical disk storage devices, or other non-volatile solid-state storage devices). The memory may include one or more storage devices located remotely from the processor. The memory stores programs (described herein as modules and corresponding to instruction sets) that, when executed by the processor 202, cause the server 102 to perform functions as described herein. The modules and data described herein need not be implemented as separate programs, procedures, modules, or data structures. Thus, various subsets of these modules and data may be combined or otherwise rearranged in various implementations.
[0040] The communications module 206 connects the server 102 to other devices (e.g., client devices 106) via one or more wired or wireless network interfaces and the communications network 110; The monitoring module 208 is configured to monitor content in the content store 214 and track a viewing threshold (i.e., the number of times a particular content item has been requested for viewing). When a particular content item is requested for viewing, the monitoring module 208 determines whether the request satisfies the viewing threshold and communicates the result of that determination (e.g., the threshold has been met or the threshold has not been met) to the sourcing module 210.
[0041] The sourcing module 210 is configured to determine a source of content to provide to the client device in response to a request to view the content. Upon receiving a viewing threshold determination from the monitoring module 208, the sourcing module 210 determines whether to trigger a translation process using the translation module 212 and whether to provide an original version of the requested content or a translated version of the requested content based on which version is already cached in the content store 214. The sourcing module 210 compares the original language of the content to the preferred language of the user associated with the client device requesting the content, and if the languages are different and a translation of the content in the preferred language is not already cached in the content store 214, the sourcing module 210 triggers a translation process using the translation module 212. If a translation of the content in the preferred language is already cached in the content store 214, the sourcing module 210 provides the translated version to the client device requesting to view the content. Upon triggering the translation process, the sourcing module 210 may provide the original version of the content to the client device requesting the content if the translated content is not already available. If the original language and the preferred language of the user associated with the client device requesting the content are the same, the sourcing module 210 provides the original version of the content to the client device requesting to view the content.
[0042] The translation module 212 obtains the translation of the content (as illustrated by the sourcing module 210) via the translation service 104. For implementations in which the translation service 104 is integrated with the server 102 (e.g., a machine learning translation algorithm stored in the memory 204), the translation module 212 provides the original version of the content to the translation service 104 and / or obtains the translated version of the content when ready. For implementations in which the translation service 104 is remote from the server 102 (e.g., a third-party translation vendor), the translation module 212 provides the original version of the requested content to the translation service 104 and receives the translated version of the requested content from the translation service via the communications module 206 and the communications network 110. Regardless of the implementation of the translation service 104, upon receiving the translated version of the requested content, the translation module 212 stores the translated version of the requested content in the content storage 214 and associates the translated version with the original version, so that the sourcing module 210 can access the translated version of the content pursuant to a subsequent request to view the content in the translated language.
[0043] The content store 214 includes content retrieved by the server 102. The content store 214 may be part of the memory 204, or may be stored in a separate data store (e.g., a database) that is part of the server 102 or separate from (but in communication with) the server 102. The content may be any content stored on the server 102 for providing to a client device upon receiving a request to view it. One example of such content is a room rental listing retrieved from a client device 106 associated with a user acting in a rental hosting capacity. Another example of such content is customer support documentation provided by an employee of a company associated with the server 102. These examples are provided for illustrative purposes and are not intended to be limiting. When the server 102 retrieves an item of content, the monitoring module 208 stores an original version of the content (a version of the content in the original language) in the content store 214. When the translation module 212 retrieves a translated version of the content (from the translation service 104), the translation module 212 stores the translated version of the content in the content store 214 along with the original version of the content.
[0044] FIG. 3A illustrates an original version 302 of content retrieved by the server 102 in a first language (e.g., Korean) and a version 304 of the content provided to a client device 106 associated with a second language (e.g., English) for viewing, where the requested content has not yet been pre-translated at the server 102. FIG. 3B illustrates another example of a version 304 of the content provided to a client device 106 associated with a second language (e.g., English) for viewing. Once the server 102 retrieves the original version 302 of the content, the server 102 stores the content and makes it available to client devices that send requests to view the content. In some implementations, if a client device 106 requests to view the content but the request does not meet the viewing threshold (e.g., the threshold is 2 but the request is the first request to view the content), the server 102 may provide the version 304 of the content in its original language to the client device 106. In another example, if the request meets the viewing threshold (e.g., if the threshold is 2 and the request is a second request to view the content), the server 102 may trigger the translation process described herein while still providing the original language content version 304 to the client device 106 (e.g., operations 612-616, 718 below). In these aforementioned "viewing threshold" examples, the original language content version 304 may optionally include a "translate" option (e.g., a selectable user interface element for display on the client device that reads "Translate to English") for a user of the client device to select to view the content in a language different from the original language.
[0045] 4A illustrates an original version 302 of content retrieved by the server 102 in a first language (e.g., Korean) and a version 404 of the content provided to a client device 106 associated with a second language (e.g., English) for viewing, where the requested content has been translated or has already been translated and cached at the server 102 in conjunction with the translation service 104. FIG. 4B illustrates another example of a version 404 of content provided to a client device 106 associated with a second language (e.g., English) for viewing, where the requested content has been translated or has already been translated and cached at the server 102 in conjunction with the translation service 104. Once the server 102 retrieves the original version 302 of the content, the server 102 stores the content and makes the content available to client devices sending requests to view the content. When a client device 106 associated with a second language requests to view the content, the server 102 may perform a translation process (e.g., operations 612-616, 718 below) and automatically provide the second language version of the content 404 to the client device 106. In a further example, when a client device 106 associated with a second language requests to view the content and the content is already stored on the server 102 in the second language as a result of a translation process (e.g., operations 612-616, 718 below) having been previously triggered, the server 102 may automatically provide the second language version of the content 404 to the client device 106. The second language version of the content 404 may optionally include a "view original" option (e.g., a selectable user interface element for display on the client device that reads "View Original (Korean)") that is selectable by a user of the client device to view the content in the original language.
[0046] 5A-5B are timing diagrams of an example operational scenario of an online content hosting environment 100 according to some implementations. The horizontal axis represents time, and each block represents a different client device 106. Each client device is either uploading content (represented by an arrow pointing up) or downloading content (represented by an arrow pointing down) from the server 102. Block K represents a client device associated with a first language (e.g., Korean) as a preferred language, and block E represents a client device associated with a second language (e.g., English) as a preferred language. Although Korean and English are used in this example for illustrative purposes, the concepts described herein apply to any other language.
[0047] FIG. 5A shows a timing diagram corresponding to two content items, Content A and Content B. In one example, Content A and B may be rental listings describing different spaces for rental. In another example, Content A and B may be posts in a customer support forum. At time t 0 In the example, two client devices respectively upload Korean content, and the server 102 receives the content and stores it in the content storage device 214 .
[0048] In response to requests from a number of devices K (client devices or users of client devices associated with a preferred language Korean) to view content A, the server 102 1 , t 4 , t 6 At time t 2In this case, device E (a client device associated with the preferred language English or a user of the client device) requests to view content A, which triggers a translation operation (e.g., 608 - 616 described below with reference to FIG. 6). The translation operation causes server 102 to obtain an English translation of content A from translation service 104 and store the translation in a cache (content storage device 214). As a result, subsequent devices E that request to view content A (at time t 5 , t 9 , t 14 in) automatically receive the cached English translation of content A.
[0049] In response to requests from multiple devices K to view content B, server 102 provides content B in its original Korean language to the multiple devices K at times t 2 , t 3 , t 4 etc. At time t 8 in, device E requests to view content B, which triggers a translation operation (e.g., 608 - 616 described below with reference to FIG. 6). The translation operation causes server 102 to obtain an English translation of content B from translation service 104 and store the translation in a cache (content storage device 214). As a result, subsequent devices E that request to view content B (at times t 10 and t 13 in) automatically receive the cached English translation of content B.
[0050] As shown in this scenario, two content items can be uploaded in one language simultaneously (or within the same time range), but the server - based translation of each content item can be triggered at different times in response to each content item being viewed by client devices associated with different languages. Specifically, at time t 0Two content items uploaded at different times (time t 2 and t 8 )
[0051] Furthermore, the translation of one of the content items does not trigger the translation of the other content items. 2 A server-based translation of content A at time t does not trigger a translation of content B. Rather, the server detects that a client device associated with a different language 8 You will not get the translation of Content B until you view the content in
[0052] FIG. 5B illustrates a timing diagram as shown in FIG. 5A with the addition of a change in the browsing threshold TH required for a translation action to be triggered at the server 102. In this example, the browsing threshold TH that triggers the retrieval of a translation from the translation service 104 occurs at time t 0 is equal to 1 at time t 7 2 at time t 7 Prior to time t, a first client device associated with the English language or a first request to view English content causes the server 102 to trigger translation operations (e.g., 608-616 described below with reference to FIG. 6). 7 After (when the viewing threshold changes to 2), a first client device associated with English or a first request to view content in English no longer triggers a translation operation. Rather, a second client device associated with English or a second request to view content in English triggers a translation operation.
[0053] In this way, (time t 2Since the first request by device E to view content A (at time t 7 If the viewing threshold TH is set to 2 at time t 8 A request to view content B by device E at time t does not trigger a translation action because the viewing threshold TH has been changed to 2 and there are not yet two devices E that have requested to view content B. 8 Since device E is only the first device E that requested viewing of content B, the viewing threshold TH is not met, and the server 102 8 The content in the original Korean language is provided to device E at time t 10 At time t , a second device E requests to view content B. Because the viewing threshold TH=2 and this is the second device E to request to view content B, the viewing threshold TH is met and triggers a translation operation (e.g., 608-616 described below with reference to FIG. 6 ). The translation operation causes the server 102 to obtain an English translation of content B from the translation service 104 and store the translation in a cache (content storage 214). As a result, any subsequent device E requesting to view content B (at time t ) will receive a translation of content B from the translation service 104, as described in more detail below with reference to operations 618-626 of FIG. 6 . 13 ) automatically receives a cached English translation of Content B.
[0054] As shown in this scenario, if the viewing threshold TH is increased, the translation operation is delayed. 8 At TH=1, time t 8 The view request at time t 8 At time t 10At a macro level, hundreds, thousands, or tens of thousands (or more) of content items are uploaded and viewed hourly or daily, so delaying translation operations by adjusting the viewing threshold TH (as shown in this example) can contribute to significant cost savings. This adjustment may affect the user experience of a small number of users for each content item (e.g., the first X users to view the item, where X is less than the viewing threshold TH). However, content items viewed by X or fewer users may have fewer transactions requiring translation, and content items viewed by more than X users may be popular enough to warrant server-based translation operations, thereby providing a positive user experience for viewers of the more popular content items. Thus, server-based translation operations do not need to be turned on or off globally. Rather, translation operations can be selectively applied based on where they are most needed, thereby optimizing the tradeoff between user experience and cost.
[0055] FIG. 6 is a flow diagram illustrating a method 600 of operating an online content hosting environment 100 (having three client devices 106-1, 106-2, 106-3, a server 102, and a translation service 104) according to some implementations. The process may be governed by instructions stored in a computer memory or non-transitory computer-readable storage medium of each component of the environment 100 (e.g., the processor 202 for the server 102). The instructions for each component of the environment 100 may be included in one or more programs stored in a non-transitory computer-readable storage medium. The instructions, when executed by one or more processors (e.g., the processor 202 for the server 102), cause the various components of the environment 100 to perform operations. The non-transitory computer-readable storage medium of each component may include one or more solid-state storage devices (e.g., flash memory), magnetic or optical disk storage devices, or other non-volatile memory devices. The instructions for each component may include source code, assembly language code, object code, or any other instruction format that can be interpreted by one or more processors. Some operations within a process may be combined and the order of some operations may be changed. Additionally, some components of environment 100 may perform operations shown as being performed by other components (e.g., server 102 may perform operation 614).
[0056] Referring to method 600, client device 106-1 submits (602) content in a first language (Lang1) to server 102. In the room rental listing example, the user may be a rental host and the content may be a rental listing (e.g., 302 in FIG. 3A). In another example, the user may be a customer support technician and the content may be a frequently asked questions posting. Regardless of the identity of the user or the entity of the content, server 102 receives (604) the content and stores it locally (e.g., Content B, the original version in content storage device 214, FIG. 2).
[0057] In some implementations, prior to submitting content to the server 102, the client device 106-1 may be associated with a first language during a registration process. In one example, a user of the client device 106-1 creates a profile and selects a preferred language or selects a locale (user location). For example, the user may select Korean as the preferred language and may select Seoul or Korea as the user's locale (either of which may correspond to Korean based on a pre-configured correspondence between locales and languages in the server 102). The selected language or the language corresponding to the selected locale may be associated with the user's profile (or otherwise assigned to the user or the user's client device), and the profile may be stored locally on the client device 106-1 and / or the server 102. Thus, the server 102 may subsequently determine the language of the submitted content by referencing the selected language or the language corresponding to the selected locale in the profile associated with the user of the client device 106-1.
[0058] Before the server 102 provides the content to a predefined threshold of other client devices, the client device 106-2 submits a request (606) to the server 102 to view the content, the request being associated with a second language (Lang2) selected by a user operating the client device 106-2. Specifically, at some point before requesting to view the content, the client device 106-2 may be associated with the second language during a registration process. In one example, a user of the client device 106-2 creates a profile and selects a preferred language or selects a locale (user location). For example, the user may select English as the preferred language and may select San Francisco or United States as the user's locale (either of which may correspond to English based on pre-configured correspondences between locales and languages in the server 102). The selected language, or a language corresponding to the selected locale, may be associated with the user's profile (or may be otherwise assigned to the user or the user's client device), and the profile may be stored locally on the client device 106-2 and / or the server 102. Accordingly, the server 102 may then determine the preferred language of the user of the client device 106-2 by referring to a selected language in a profile associated with the user of the client device 106-2 or a language corresponding to a selected locale.
[0059] In some implementations, if a user is not logged into a profile that specifies a preferred language, or in any other scenario where the user is not already associated with a preferred language, the user may be associated with a default language for a sub-domain or top-level domain (TLD) based on the Internet Protocol (IP) location of the user's client device 106. For example, a user who logs out in France gets French for France by default and triggers a French machine translation event accordingly.
[0060] In response to receiving the request, the server 102 determines (608) that a first language (e.g., Korean) of the content submitted by the client device 106-1 is different from a second language (e.g., English) associated with the client device 106-2 (or associated with the request received from the client device 106-2). In one example, the determination may be made by comparing the languages associated with each client device or the languages associated with the users of each client device (e.g., user profiles as described above). In another example, the determination may be made by comparing the locales of each client device (including comparing the languages corresponding to each locale). When the server 102 sees that the request received from the client device 106-2 is an Nth request to view the content (N being an integer equal to or greater than 1), the server 102 may perform the translation operations 608-616 according to the determination that N is equal to or greater than the predetermined viewing threshold. The predetermined viewing threshold may be as low as 1, meaning that the first request to view the content submitted by the client device 106-1 triggers the translation operations 608-616. The predefined viewing threshold may be greater than 1. For example, if the threshold is 2, a first request to view the content submitted by client device 106-1 does not trigger a translation operation 608-616, but a second request does trigger a translation operation 608-616. As discussed above, server 102 may adjust the predefined viewing threshold based on the cost associated with obtaining a translated version of the content in a second language from translation service 104.
[0061] In some implementations, when the server 102 determines that the first language of the content submitted by the client device 106-1 is different from the second language associated with the client device 106-2 (or associated with the request received from the client device 106-2), the server 102 determines whether the storage (e.g., 214) of the server 102 already contains a translated version of the content in the second language (Lang2 content). Following a determination (610) that the server 102 does not already have a translated version of the content in the second language, the server 102 proceeds by obtaining (612) a translated version of the content in the second language from the translation service 104.
[0062] The translation service 104 translates (614) the content from the first language to the second language in response to a request from the server 102 to retrieve translated content. The translation service 614 may use a machine translation algorithm based on one or more machine learning processes that is trained using content previously received at the server 102 and translated by the translation service 104. In this way, the resulting translation is more accurate (and therefore of higher quality) because the training data set uses similar terminology. For example, if the content includes room rental listings, the algorithm used by the translation service 104 may be trained using previously submitted room rental listings and corresponding translations deemed accurate by supervised or unsupervised machine learning.
[0063] Specifically, machine learning involves the task of learning a function that maps inputs to outputs based on example input-output pairs. It infers the function from labeled training data consisting of a set of training examples, where the training examples may include the original of the content and translated versions that have already been translated and stored in the content store 214 of the server 102. Each example is a pair consisting of an input object (typically a vector) and a desired output value (also called a signal), where the input object may be a sentence fragment, a full sentence, or other syntactic element associated with a given language, and the output value may be a translated version of the sentence fragment, full sentence, or other syntactic element associated with a language other than the given language.
[0064] In some implementations, it may be undesirable to have the user of the client device 106-2 wait for operations 612 and 614 to be completed. In such scenarios, the server 102 may provide (613) the content in the first language to the client device 106-2 rather than having the user wait for the translation service 104 to complete the translation. The version of the content in the first language provided to the client device 106-2 in operation 613 may include an option to translate the content into a preferred language associated with the user of the client device 106-2 (e.g., a "Translate to English" option in the version of the content 304 of FIGS. 3A-3B). In response to the server 102 receiving an indication from the client device 106-2 that the user has selected such an option, the server 102 may retrieve an uncached (not stored in the content store 214) version of the content in the second language from a different translation service optimized for efficiency (wherein the translation accuracy is not necessarily as high as that associated with the translation service 104). An example of such a translation service may be a general-purpose machine translation service such as Google® Translate, and an example of the translation service 104 may be a high-quality (high-precision) translation service using supervised or unsupervised learning with a targeted training dataset, as described above. The server 102 may provide the low-quality machine translation to the user, or the translation service may provide the low-quality machine translation directly to the user (e.g., via functionality in the user's browser). That way, the user may quickly receive a quick translation without having to wait for the server 102 and translation service 104 to obtain a higher quality translation via operations 612-616.
[0065] In an alternative implementation of operation 613, rather than providing the first language content to the client device 106-2 with an option to translate the content into the second language (e.g., the version of 304 in FIGS. 3A-3B), the server 102 may provide the second language content (613) using a non-cached (not stored in the content storage device 214) version of the second language content from a different translation service (e.g., the version of 404 in FIGS. 4A-4B).
[0066] Upon receiving the translated version of the content in the second language from the translation service 104, the server 102 stores (616) the translated version of the content in the second language (e.g., Content B, Translation Version 1) in the content store 214. This stored translation may then be provided to a user who subsequently requests to view the content in the second language, as described below with reference to operations 618-626. In some implementations, this stored translation may optionally be provided (617) to the client device 106-2.
[0067] Regardless of which version of the second language translated content the server 102 provides to the client device 106-2 (the lower quality translation of act 613 or the higher quality translation of act 617), the server 102 may additionally provide or cause the client device 106-2 to display an original language option (e.g., a "View Original (Korean)" user interface element in the version of the content 404 of FIGS. 4A-4B). Upon receiving an indication from the client device 106-2 that the original language option was selected, the server 102 provides the first language content to the client device 106-2 (e.g., 304 of FIGS. 3A-3B).
[0068] For clarity, while the stored translation of the second language content is provided to one or more client devices associated with a subsequent request to view the second language content (e.g., as described with reference to operations 618-626 below), the stored translation of the second language content may not necessarily be provided to the client device associated with the visit that triggered the translation operations 608-616 (here, client device 106-2). Instead, in some implementations, the client device associated with the visit that triggered the translation operations 608-616 (client device 106-2) may not be provided with a high quality translation obtained as a result of those operations. However, by not pre-translating the content for the client device associated with the initial content viewing request (e.g., client device 106-2 and operation 606), the server 102 provides a more efficient and cost-effective use of machine learning translation processes. Such processes are likely to be less burdensome by only selectively translating content when a viewing threshold is met, as described herein.
[0069] Once a translated version of the second language content has been obtained and stored on server 102, server 102 may respond to a subsequent request to view the second language content by automatically providing the translated version stored on server 102. Acts 618-626 are an example of this feature.
[0070] Another client device 106-3 submits a request (618) to the server 102 to view the content, and the request is associated with a second language (Lang2) selected by a user operating the client device 106-3 (the same language selected by a user operating the client device 106-2). Specifically, at some point prior to requesting to view the content, the client device 106-3 may be associated with the second language during a registration process. In one example, a user of the client device 106-3 creates a profile and selects a preferred language or selects a locale (user location). For example, the user may select English as the preferred language and may select San Francisco or United States as the user's locale (either of which may correspond to English based on a pre-configured correspondence between locales and languages in the server 102). The selected language, or a language corresponding to the selected locale, may be associated with the user's profile (or otherwise assigned to the user or the user's client device), and the profile may be stored locally on the client device 106-3 and / or the server 102. Accordingly, the server 102 may then determine the preferred language of the user of the client device 106-3 by referring to a selected language in a profile associated with the user of the client device 106-3 or a language corresponding to a selected locale.
[0071] In response to receiving the request (and in some implementations in response to the viewing threshold being met as described above), the server 102 determines (620) that the first language (e.g., Korean) of the content submitted by the client device 106-1 is different from the second language (e.g., English) associated with the client device 106-3 (or associated with the request received from the client device 106-3). The server 102 also determines (622) that the server's storage (content storage 214) includes a translated version of the content in the second language. In response to these determinations, the server 102 provides (624) the translated version of the content in the second language to the client device 106-3. Thus, when the client device 106-3 visits a web page that hosts the content, it automatically receives a high-quality translation of the second language without requiring the user to select an option to translate the content into the second language.
[0072] In some implementations, the server 102 may receive an update to the content (an update from the original author of the content) from the client device 106-1 in the first language after receiving a request to view the content from the client device 106-2 (a request to have the viewing threshold met) (operation 606). Because the server 102 has already identified this content as worthy of pre-translation (because the viewing threshold has been met), the server 102 may automatically obtain a translation of the updated portion of the content from the translation service 104 in the second language without requiring an additional view or viewing request from the other client device. The server 102 may store a translated version of the update to the content in the second language in the server's storage (e.g., in the content storage 214 as an update to translated version 1 of content B). Obtaining a translation of only the updated portion of the content rather than resubmitting the entire content item for translation provides additional processing optimization and cost savings since content that has already been translated does not need to be translated again.
[0073] FIG. 7 is a flow diagram illustrating a process 700 for pre-translating content at the server 102 according to some implementations. The process 700 corresponds to the operation 600 of the server 102 of FIG. 6. The process 700 may be governed by instructions stored in a computer memory or a non-transitory computer-readable storage medium (e.g., memory 204) of the server 102. The instructions may be included in one or more programs stored in the non-transitory computer-readable storage medium. The instructions, when executed by one or more processors (e.g., processor 202) of the server 102, cause the server 102 to perform the process. The non-transitory computer-readable storage medium may include one or more solid-state storage devices (e.g., flash memory), magnetic or optical disk storage devices, or other non-volatile memory devices. The instructions may include source code, assembly language code, object code, or any other instruction format that can be interpreted by one or more processors. Some operations in a process may be combined and the order of some operations may be changed.
[0074] The server 102 obtains (702) content in the first language (Lang1) from a client device (e.g., 106-1) that is associated with the first language (Lang1) through a registration process (including language or locale selection as described above). The server stores the content in the first language and makes the content available to other client devices 106 upon request, as described above with reference to operations 602-604.
[0075] The server 102 receives (704) a request from a first client device (e.g., 106-2) to view content, where the request is associated with a second language (Lang2) as described above with reference to operation 606. For example, the client device corresponding to the request may have been associated with the second language during a registration process, and a user profile resulting from the registration process (stored on the server or on the client device) may reflect a selection of the second language as the user of the client device's preferred language for viewing content.
[0076] The server 102 determines (706) whether a viewing request threshold (request TH) (also referred to herein as a viewing threshold) has been met. For example, if the threshold is 1, then such threshold is met as soon as any client device requests to view the content. However, if the threshold is greater than 1 (e.g., 2), then the threshold may not be met for the first client device or devices that request to view the content.
[0077] If the threshold is not met, the server 102 provides (708) the content to the client device in the first language (the language in which the server originally retrieved the content in operation 702). The content may include an option for the user to obtain a translation (e.g., a "Translate to English" user interface element as shown in content version 304 of FIGS. 3A-3B).
[0078] If the threshold is met, the server 102 determines (710) whether the first language (corresponding to the originally retrieved content) matches the second language (corresponding to the preferred language of the user of the client device requesting to view the content), as described above with reference to operation 608. As part of this determination, the server may reference language preferences in a profile corresponding to the user of the client device requesting to view the content. The server may additionally or alternatively reference a locale corresponding to the client device from which the content was retrieved and the client device on which the request to view the content was received.
[0079] If the two languages match, the server 102 provides (712) the content to the client device in the first language (the language in which the server originally retrieved the content in operation 702). The content may include an option for the user to obtain a translation (e.g., a "Translate to English" user interface element as shown in content version 304 of FIGS. 3A-3B).
[0080] If the two languages do not match, the server 102 determines (714) whether a version of the content in the second language is already available in the server's storage (e.g., content storage 214), as described above with reference to operation 610.
[0081] If a version of the content in the second language is already stored on the server, the server provides (716) the version of the content in the second language to the client device requesting to view the content.
[0082] If a version of the content in the second language is not stored on the server 102 at this point, the server 102 retrieves (718) a version of the content in the second language from a translation service (e.g., 104) as described above with reference to operations 612 and 614.
[0083] While the server 102 is retrieving the translation at operation 718, the server 102 may provide (717) to the client device requesting to view the content a version of the content already available at the server, such as the content in the first language (the language in which the content was originally retrieved at operation 702), as described above with reference to operation 613.
[0084] Once the server 102 has obtained the translation of the content in the second language, it stores (720) the translation and makes the translation available for subsequent requests to view the content, which requests are associated with the second language as described above at reference numeral 616. Thus, the next time a request to view the content is received at the server 102 at operation 704, the server 102 automatically provides the translated version of the content in the second language at operation 716.
[0085] Optionally, the server 102 may provide (719) a translated version of the second language content obtained in operation 718, as described above with reference to operation 617, to the client device requesting to view the content.
[0086] In some implementations, the operations described above with reference to methods 600 and 700 may be supplemented with additional operations. The following description covers examples of some additional operations that may optionally be included in the above methods.
[0087] In some implementations, if the server 102 determines that the first language (of the content at the time of retrieval) and the second language (associated with the request to view the content) do not match at least a threshold number of times, the server 102 may send a notification to the client device (e.g., 106-1) that originally retrieved the content to inform the content creator that it may be worth uploading the content in the second language. Such a scenario may provide a content creator with an opportunity to provide an original translation for content that has already proven popular with users who speak a different language. Multilingual content creators or content creators with access to a preferred translation provider may take advantage of such a scenario to upload a version of the content in the second language.
[0088] In some implementations, if the language of the uploaded content does not match the language corresponding to the content creator's country or other locale, the server 102 may send a notification to the content creator's client device (e.g., 106-1) to inform the content creator that the language of the uploaded content does not match the content creator's country. For example, if a host uploads a rental listing in Italy and the listing is written in Korean, the server 102 may notify the host of the language mismatch, thereby offering the host an opportunity to resubmit the content in a locally corresponding language, which may lead to increased business for the host.
[0089] In some implementations, if the language of the uploaded content matches the language of the content creator's country or other locale, but does not match the language selected by the content creator during the registration process, the server may send a notification to the content creator's client device (e.g., 106-1) to inform the content creator that they have the option to upload content in their preferred language and that the server will provide a translation on their behalf. In such a scenario, a host of a rental listing may have uploaded content in a preferred language, even if the preferred language is not a language that is likely to be preferred by the rental listing's target audience. If the host uploads content in the host's native language, the translation provided by the server may be more accurate than the translation provided by the host, especially if the host is not fluent in the second language.
[0090] In some implementations, the translations obtained by the server may include translated emoji attributes (e.g., gender, skin color, etc.) based on attributes of the user requesting to view the content (which may be selected by such user during a registration process).
[0091] Following is an implementation example. Example 1: A method for selectively pre-translating content in a server including one or more processors and memory, the method including: obtaining content in a first language; receiving a first request from a first client device to view the content before providing the content to the first client device, the first request being associated with a second language selected by a user operating the first client device; in response to receiving the first request, determining that the first language of the content is different from the second language associated with the first request; in accordance with a determination that the first language of the content is different from the second language associated with the first request, obtaining a machine-translated version of the content in the second language; and providing the machine-translated version of the content in the second language to one or more client devices.
[0092] Example 2: The method of example 1, further comprising: storing a machine-translated version of the content in the second language in a storage device of the server; receiving a second request from a second client device to view the content, the second request being associated with the second language; in response to receiving the second request, determining that the first language of the content is different from the second language associated with the second request; determining that the storage device of the server includes the machine-translated version of the content in the second language; and in response to determining that the first language of the content is different from the second language associated with the second request and that the storage device of the server includes the machine-translated version of the content in the second language, providing the machine-translated version of the content in the second language to the second client device.
[0093] Example 3: A method as described in any of Examples 1 to 2, wherein the first request is an Nth request to view the content, and the method further includes, in response to receiving the first request, determining that N is greater than or equal to a predetermined threshold for obtaining a machine translation, the predetermined threshold being at least 2, and obtaining a machine-translated version of the content in the second language further pursuant to the determination that N is greater than or equal to the predetermined threshold.
[0094] Example 4: A method as described in any of Examples 1 to 3, further comprising adjusting the predetermined threshold based on a cost associated with obtaining a machine-translated version of the content in the second language.
[0095] Example 5: A method as described in any of Examples 1 to 4, wherein a machine-translated version of the content in the second language is obtained from a machine translation algorithm based on one or more machine learning processes trained using the content received at the server.
[0096] Example 6: A method as described in any of Examples 1 to 5, wherein obtaining content in the first language includes obtaining content submitted by a user from a third client device, and the method further includes determining that the content submitted by the user is in the first language based on an association between the third client device and the first language.
[0097] Example 7: A method as described in any of Examples 1 to 6, further comprising, in response to receiving the first request, determining that the server's storage device does not contain a machine-translated version of the content in the second language, and obtaining the machine-translated version of the content in the second language is further subject to a determination that the server's storage device does not contain a machine-translated version of the content in the second language.
[0098] Example 8: A method as described in any of Examples 1 to 7, the method further including, prior to receiving the first request from the first client device, receiving a selection of a second language from the first client device as the selected language for the first client device, and assigning the second language to a profile associated with a user operating the first client device based on the selection of the second language, wherein the association of the first request with the second language is based on the second language assigned to the profile associated with the user operating the first client device.
[0099] Example 9: A method as described in any of Examples 1 to 8, the method further including: receiving from the first client device a selection of a locale of the first client device prior to receiving the first request from the first client device; and assigning a second language to a profile associated with a user operating the first client device based on the selection of the locale of the first client device, wherein the association of the first request with the second language is based on the second language assigned to the profile associated with the user operating the first client device.
[0100] Example 10: A method as described in any of Examples 1 to 9, further comprising: after receiving the first request, obtaining updates to the content in the first language; and in response to obtaining the updates to the content in the first language, obtaining a machine-translated version of the updates to the content in the second language before receiving any subsequent request to view the content; and storing the machine-translated version of the updates to the content in the second language in a storage device of the server.
[0101] Example 11: The method of any of Examples 1-10, further comprising providing content in the first language to the first client device in response to receiving the first request.
[0102] Example 12: A method as described in any of Examples 1 to 11, wherein providing the content in the first language to the first client device includes providing a machine translation option to the first client device, and the method further includes receiving an indication from the first client device that the machine translation option has been selected, and in response to receiving the indication, obtaining an uncached machine-translated version of the content in the second language, and providing the uncached machine-translated version of the content in the second language to the first client device.
[0103] Example 13: A method as described in any of Examples 1 to 12, further comprising providing a machine-translated version of the content in the second language to the first client device in accordance with a determination that the first language of the content is different from the second language indicated by the profile associated with the first client device.
[0104] Example 14: A method as described in any of Examples 1 to 13, wherein providing a machine-translated version of the content in the second language to the first client device includes providing an original language option to the first client device, and the method further includes receiving an indication from the first client device that the original language option has been selected, and in response to receiving the indication, providing the content in the first language to the first client device.
[0105] Example 15: A system comprising one or more processors of a server and a memory storing instructions that, when executed by the one or more processors, cause the server to perform any of the methods of Examples 1 to 14.
[0106] Example 16: A non-transitory computer-readable storage medium storing instructions that, when executed by a server, cause the server to perform any of the methods of Examples 1 to 14.
[0107] The foregoing description has been described with reference to specific implementations. However, the above exemplary description is not intended to be exhaustive or to limit the scope of the claims to the precise forms disclosed. Many variations are possible in light of the above teachings. The implementations have been selected and described to best explain the principles of operation and practical application, thereby enabling others skilled in the art.
[0108] The various figures show some elements in a particular order. However, elements that are not order dependent may be rearranged and other elements may be combined or separated. While some rearrangements or other groupings are specifically mentioned, others will be apparent to those of ordinary skill in the art, and thus the rearrangements and groupings presented herein are not an exhaustive list of alternatives.
[0109] As used herein, the singular forms "a," "an," and "the" include the plural forms unless the context clearly dictates otherwise. The term "and / or" includes all possible combinations of one or more of the associated listed items. Terms such as "first," "second," and the like are used only to distinguish one element from another and do not limit the elements themselves. The term "if" may be interpreted to mean "when," "upon," "in response to," or "in accordance with," depending on the context. The terms "include," "including," "comprise," and "comprising" specify certain features or operations but do not exclude additional features or operations.
Claims
1. 1. A system comprising: a server including one or more processors and a memory storing one or more programs to be executed by said one or more processors, said one or more programs comprising: Obtaining content in the first language; receiving a first request from a first client device to view the content prior to providing the content to the first client device, the first request being associated with a second language selected by a user operating the first client device; In response to receiving the first request, determining that the first language of the content is different from the second language associated with the first request; In response to the determination that the first language of the content is different from the second language associated with the first request, obtaining a machine-translated version of the content in the second language; Providing the machine translated version of the content in the second language to one or more client devices The system includes instructions for:
2. the one or more programs: storing the machine translated version of the content in the second language on a storage device of the server; receiving a second request from a second client device to view the content, the second request being associated with the second language; In response to receiving the second request, determining that the first language of the content is different from the second language associated with the second request; determining that the storage device of the server contains the machine translated version of the content in the second language; In response to the determination that the first language of the content is different from the second language associated with the second request and the determination that the storage device of the server includes the machine-translated version of the content in the second language, Providing the machine translated version of the content in the second language on the second client device. The system of claim 1 further comprising instructions for:
3. the first request is an Nth request to view the content, and the one or more programs: In response to receiving the first request, determining that N is greater than or equal to a predetermined threshold for obtaining a machine translation, the predetermined threshold being at least 2; Obtaining the machine-translated version of the content in the second language is further subject to the determination that N is greater than or equal to the predetermined threshold. The system of claim 1 or 2, further comprising instructions for:
4. 4. The system of claim 3, wherein the one or more programs further comprise instructions for adjusting the predetermined threshold based on a cost associated with obtaining the machine-translated version of the content in the second language.
5. 3. The system of claim 1 or 2, wherein the machine-translated version of the content in the second language is obtained from a machine translation algorithm based on one or more machine learning processes trained using the content received at the server.
6. the instructions for obtaining the content in the first language include instructions for obtaining user-submitted content from a third client device; the one or more programs further comprising instructions for determining that content submitted by the user is in the first language based on an association of the third client device with the first language.
3. A system according to claim 1 or 2.
7. the one or more programs further comprising instructions for determining, in response to receiving the first request, that a storage device of the server does not contain a machine-translated version of the content in the second language; obtaining the machine-translated version of the content in the second language is further subject to the determination that the storage device of the server does not contain a machine-translated version of the content in the second language.
3. A system according to claim 1 or 2.
8. before the one or more programs receive the first request from the first client device; receiving from the first client device a selection of the second language as a selected language for the first client device; assigning the second language to a profile associated with the user operating the first client device based on the selection of the second language; The association between the first request and the second language is based on the second language assigned to the profile associated with the user operating the first client device. The system of claim 1 or 2, further comprising instructions for:
9. before the one or more programs receive the first request from the first client device; receiving from the first client device a selection of a locale for the first client device; assigning the second language to a profile associated with the user operating the first client device based on the selection of the locale of the first client device; The association between the first request and the second language is based on the second language assigned to the profile associated with the user operating the first client device. The system of claim 1 or 2, further comprising instructions for:
10. the one or more programs: After receiving the first request, obtaining updates to the content in the first language; in response to obtaining the update to the content in the first language, prior to receiving any subsequent request to view the content; obtaining a machine-translated version of the update to the content in the second language; storing the machine translated version of the update to the content in the second language in the storage device of the server; The system of claim 1 or 2, further comprising instructions for:
11. the one or more programs: In response to receiving the first request, providing the content in the first language to the first client device. The system of claim 1 or 2, further comprising instructions for:
12. the instructions for providing the content in the first language to the first client device include providing a machine translation option to the first client device; the one or more programs: receiving an indication from the first client device that the machine translation option has been selected; In response to receiving the instruction, obtain an uncached machine-translated version of the content in the second language; providing the uncached machine translated version of the content in the second language to the first client device The system of claim 11 further comprising instructions for:
13. the one or more programs: providing the machine-translated version of the content in the second language to the first client device in accordance with the determination that the first language of the content is different from the second language indicated by a profile associated with the first client device; The system of claim 1 or 2, further comprising instructions for:
14. the instructions for providing the machine-translated version of the content in the second language to the first client device include instructions for providing a source language option to the first client device; the one or more programs: receiving an indication from the first client device that the original language option was selected; In response to receiving the indication, providing the content in the first language to the first client device. The system of claim 13 further comprising instructions for:
15. 1. A method for selectively pre-translating content in a server including one or more processors and a memory, the method comprising: Obtaining content in a first language; receiving a first request from a first client device to view the content prior to providing the content to the first client device, the first request being associated with a second language selected by a user operating the first client device; determining, in response to receiving the first request, that the first language of the content is different from the second language associated with the first request; In response to the determination that the first language of the content is different from the second language associated with the first request, obtaining a machine translated version of the content in the second language; providing the machine-translated version of the content in the second language to one or more client devices; A method comprising:
16. storing the machine translated version of the content in the second language in a storage device of the server; receiving a second request from a second client device to view the content, the second request being associated with the second language; In response to receiving the second request, determining that the first language of the content is different from the second language associated with the second request; determining that the storage device of the server contains the machine translated version of the content in the second language; In response to the determination that the first language of the content is different from the second language associated with the second request and the determination that the storage device of the server includes the machine-translated version of the content in the second language, providing the machine translated version of the content in the second language to the second client device; The method of claim 15 further comprising:
17. 17. A method according to claim 15, wherein the first request is an N-th request for viewing the content, the method comprising: determining, in response to receiving the first request, that N is greater than or equal to a predetermined threshold for obtaining a machine translation, the predetermined threshold being at least 2; obtaining the machine translated version of the content in the second language further pursuant to the determination that N is greater than or equal to the predetermined threshold. The method further comprising:
18. 20. The method of claim 17, further comprising adjusting the predetermined threshold at the server based on a cost associated with obtaining the machine-translated version of the content in the second language.
19. 17. The method of claim 15, wherein the machine-translated version of the content in the second language is obtained from a machine translation algorithm based on one or more machine learning processes trained using the content received at the server.
20. 1. A non-transitory computer-readable storage medium storing one or more programs configured to be executed by a computer system having a display, one or more processors, and a memory, the one or more programs comprising: Obtaining content in the first language; receiving a first request from a first client device to view the content prior to providing the content to the first client device, the first request being associated with a second language selected by a user operating the first client device; In response to receiving the first request, determining that the first language of the content is different from the second language associated with the first request; in response to the determination that the first language of the content is different from the second language associated with the first request; obtaining a machine-translated version of the content in the second language; Providing the machine translated version of the content in the second language to one or more client devices A non-transitory computer-readable storage medium comprising instructions for:
Citation Information
Patent Citations
Online translation system
JP2002278966A
Method and device for controlling translation, and its processing program
JP2003345798A
Web page translation system, web page translation device, web page provision device, and web page translation method
JP2019149141A
Dynamic language translation of web site content
US20120016655A1
Systems, Methods and Media for Translating Informational Content
US20150154180A1