Automatic Localization of Dynamic Content

The automatic localization method addresses the challenge of localizing dynamic content in online game platforms by converting and storing translated text for multiple languages, enabling efficient and accurate content delivery across various locales.

JP7690498B2Active Publication Date: 2025-06-10ROBLOX CORP
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
JP2022577368
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2020-06-30
Filing Date
2021-06-30
Publication Date
2025-06-10
Estimated Expiration
2041-06-30

AI Technical Summary

Technical Problem

Existing online game platforms face challenges in providing accurate and timely localization of dynamic content across multiple regions or locales, especially due to the complexity of user-generated content and the limitations of conventional translation methods.

Method used

A computer-implemented method for automatic localization of dynamic content, which involves receiving visual content from a client locale, converting text to multiple languages, storing the translated text in a database, and rendering localized content based on client locale requests.

Benefits of technology

Enables rapid and accurate localization of dynamic content across multiple locales, improving the online game experience by allowing users to play in their native language without delays associated with conventional localization methods.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007690498000001
    Figure 0007690498000001
  • Figure 0007690498000002
    Figure 0007690498000002
  • Figure 0007690498000003
    Figure 0007690498000003
Patent Text Reader

Abstract

[0003] Implementations described herein relate to methods, systems, and computer-readable media for localizing dynamic content. In some implementations, the computer-implemented method includes receiving visual content associated with a game from a first client locale, the visual content including text expressed in a first language in the first client locale, translating the text to generate translated text in at least a second language associated with a second client locale, and storing the translated text in association with the visual content in a database.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] Related Applications This application claims the benefit of U.S. Application No. 16 / 916,869, entitled "Automatic Localization of Dynamic Content," filed on Jun. 30, 2020, which is hereby incorporated by reference in its entirety for all purposes.

[0002] Embodiments generally relate to computer-based games, and more particularly, to methods, systems, and computer-readable media for automatic localization of dynamic content.

Background Art

[0003] In some online platforms (e.g., game platforms, media exchange platforms, etc.), users can connect with each other, interact with each other (e.g., within a game), create games, and share information with each other via the Internet. The online platform may further provide game content. Thus, when game content is created for a first region or locale, other regions or locales may desire the same or similar game content.

[0004] To provide game content to other regions, game developers need to allocate resources to translate the game content. Since some online platforms rely more on user-generated content for the game experience, it is difficult or impossible to obtain a vetted translation of all content. Further, dynamic content driven by user interaction further complicates providing localized content to multiple regions or locales.

[0005] In light of the above, some implementations have been devised.

Summary of the Invention

Means for Solving the Problem

[0006] According to one aspect, a computer-implemented method for automatic localization of dynamic content is provided. The method includes receiving visual content associated with a game from a first client locale, the visual content including text represented in a first language in the first client locale; converting the text to generate at least text translated in a second language associated with a second client locale; and storing the translated text in a database in association with the visual content.

[0007] In some implementations, the method further includes receiving a request for visual content from the second client locale; rendering localized content based on the second client locale, the rendered localized content including at least the translated text; and transmitting the rendered localized content to a client device in the second client locale in response to the request.

[0008] In some implementations, the converting step includes creating a candidate database entry based on the text and the visual content; selecting a subset of the candidate database entries to obtain a pool of remaining database entries; evaluating the entries in the pool of remaining database entries to generate a significance ranking; and filtering to remove one or more entries from the pool of remaining database entries associated with each significance ranking that does not meet a first significance threshold.

[0009] In some implementations, the first importance threshold is a value of the importance of the text accurately represented in the second client locale.

[0010] In some implementations, the step of converting includes the step of translating the text from the visual content into multiple languages, each language being associated with a respective client locale, and the step of storing includes the step of storing the translated text in a database, and the stored translated text is associated with a respective client locale.

[0011] In some implementations, the stored translated text is rendered in the localized content and configured to be sent to the client device in multiple languages.

[0012] In some implementations, the step of converting includes the step of creating candidate database entries based on the text and visual content, and the step of selecting a subset of the candidate database entries based on the context in which the text is displayed in the visual content.

[0013] In some implementations, the step of selecting a subset of the candidate database entries includes the step of deleting candidate database entries associated with invalid sources of the visual content.

[0014] In some implementations, the translated text is associated with an importance ranking value that meets the first importance threshold.

[0015] In some implementations, the importance ranking value is a measure of the importance of the translated text accurately represented in the second client locale.

[0016] In some implementations, the importance ranking value is based on one or more of the number of users viewing the visual content, the number of sessions associated with the visual content, or the source of the visual content.

[0017] In some implementations, the text is user-generated text provided by users accessing the game.

[0018] According to another aspect, a computer-implemented method for automatic localization of dynamic content is provided. The method includes receiving visual content associated with a game from a first client locale, the visual content including text represented in a first language in the first client locale; converting at least a portion of the text to generate text translated in a second language associated with a second client locale; storing the translated text in a database, the stored translated text being associated with the first client locale and a game change event; receiving a request for the visual content from the second client locale; rendering localized content based on the second client locale and the game change event, the rendered localized content including the translated text; and sending the rendered localized content to a client device in the second client locale.

[0019] In some implementations, the step of converting a portion of the text includes converting a subset of the text that meets a threshold confidence value.

[0020] In some implementations, the converting step includes creating a pool of candidate database entries, evaluating the entries within the pool of candidate database entries to generate an engagement score, and filtering to remove one or more entries having an engagement score that does not meet a first threshold.

[0021] In some implementations, the engagement score is a measure of user interaction with the translated text.

[0022] In some implementations, the converting step includes translating a portion of the text separately from the visual content.

[0023] In some implementations, the translated text is stored separately from the visual content.

[0024] In some implementations, the converting step includes selecting a subset of candidate database entries before generating the translated text.

[0025] In some implementations, the step of selecting a subset of candidate database entries includes removing candidate database entries associated with offensive content.

[0026] According to yet another aspect, the system includes a memory storing instructions, and a processing device coupled to the memory and configured to access the memory to execute the instructions. In some implementations, the instructions cause the processing device to receive visual content associated with a game from a first client locale, the visual content including text represented in a first language at the first client locale, convert at least a portion of the text to generate text translated in a second language associated with a second client locale, store the translated text in a database, the stored translated text being associated with the first client locale and a game change event, receive a request for visual content from the second client locale, render localized content based on the second client locale and the game change event, the rendered localized content including the translated text, and transmit the rendered localized content to a client device at the second client locale.

[0027] According to yet another aspect, a non-transitory computer-readable medium stores instructions that, in response to execution by a processing device, cause the processing device to receive visual content associated with a game from a first client locale, the visual content including text represented in a first language at the first client locale, convert the text to generate text translated in at least a second language associated with a second client locale, and store the translated text in a database associated with the visual content.

[0028] In some implementations, the operation includes receiving a request for visual content from a second client locale, rendering localized content based on the second client locale, where the rendered localized content includes at least translated text, and transmitting the rendered localized content to a client device in the second client locale in response to the request.

Brief Description of Drawings

[0029]

Figure 1

Figure 2

Figure 3

Figure 4

Figure 5

Figure 6

Modes for Carrying Out the Invention

[0030] In the following detailed description, reference is made to the accompanying drawings, which form a part hereof. In the drawings, unless the context otherwise requires, like numerals typically identify like components. The illustrative embodiments described in the detailed description, the drawings, and the claims are not meant to be limiting. Other embodiments may be utilized and other changes may be made without departing from the spirit or scope of the subject matter presented herein. The aspects of the disclosure generally described herein and illustrated in the drawings can be arranged, substituted, combined, separated, and designed in a variety of different configurations, all of which are contemplated herein.

[0031] References herein to "some embodiments", "an embodiment", "an example embodiment", etc., indicate that the embodiments described may include a particular function, structure, or characteristic, but not all embodiments necessarily include the particular function, structure, or characteristic. Moreover, such phrases are not necessarily referring to the same embodiment. Further, when a particular function, structure, or characteristic is described in connection with an embodiment, such function, structure, or characteristic may be affected in other embodiments whether or not explicitly described.

[0032] An online game platform (also referred to as a "user-generated content platform" or "user-generated content system") provides various ways for users to interact with each other. For example, users of an online game platform can cooperate towards a common goal, share various virtual game items, or send electronic messages to each other. Users of an online game platform can participate in the game as virtual characters and play game-specific roles. For example, the virtual characters can be part of a team or multiplayer environment where specific roles are assigned to each character and parameters such as clothing, armor, weapons, skills, etc. corresponding to those roles are associated. In another example, the virtual characters can be combined by one or more non-player characters (NPCs) which can be computer-generated characters, for example, when a single player is part of the game.

[0033] In an online game platform, users (developers) of the platform may be able to create new games, characters, and content. For example, users of an online game platform can create, design, and / or customize new characters, items, or other content so that other users can utilize them.

[0034] In a first region or locale associated with a particular online game, new user content can be generated. The region or locale may refer to a geographical region such as a city, state, country, continent, etc., or a geographical region defined in other ways (e.g., by the language or dialect predominantly spoken). New user content may have locale-specific customizations. For example, American English spelling may be used in content created by content creators within the United States, while British English may be used in content created by British content creators. Additionally, the use of other customizations, such as symbols, emojis, currency icons, or other text or non-text content items, may follow locale-specific cultural conventions. Locale-specific customizations can also apply to content such as dates (e.g., month / day / year or day-month-year), numbers (using commas instead of decimal points), or other content. When the game is accessed or played in another region, the new content usually exists only in the original language, and the localization specific to the source location is applied. For example, in a game where the goal is to build a pizza shop and sell items, the price of the items may be displayed within the game content with the $ symbol, e.g., $5.50, which may be inappropriate for game players playing the game from other locations that may use other currency symbols.

[0035] Game content can be similarly generated for the first region or locale. Thus, when the game is accessed or played in another region, the game content usually remains in the original localization unless it is translated by the game developer or other relevant parties.

[0036] The objectives of the owner or administrator of a game platform may include the localization of new user content, game content, and dynamic content associated with the game. A technical problem for the operator of a game platform is to provide translations of game content, including dynamic content associated with the game platform, that can help players play and enjoy the game in locales where the game content is not available.

[0037] Online game platforms can be large-scale and include multiple dynamic contents that change over time, as well as a user base that rapidly generates new user content. Therefore, a game platform that accurately translates or localizes dynamic content can effectively localize virtually all games without the conventional drawbacks.

[0038] For example, in conventional localization, the operator of a game platform had to manually perform translations based on static content in order to deploy after a translation delay. The initial translation delay can include reviews, quality control, and other means to ensure that appropriate content is distributed to additional locales via the media. However, since online game platforms are constantly creating new content, it has become difficult or impossible to adopt conventional methods.

[0039] Another approach is to use automated translation services, such as translation APIs that can provide translations. An important limitation of such services is that they often cannot provide accurate or useful translations in the context of game content. For example, game platforms and the games played on those platforms often contain text content that is not included in dictionaries or standard language texts. Such text content may include, for example, game- or platform-specific slang, nouns, and other terms.

[0040] Other limitations are related to the safety of children or the lack of child-appropriate content when generating translations. For example, inappropriate translations can often arise from common items such as the phrase "treasure chest" in the American English region being translated to "treasure boob" in the Korean region. Additionally, some content providers may have platform-specific jargon or slang that is often difficult to translate appropriately using conventional methods. For example, slang terms such as "obby" for an obstacle course, "gg" for a good game, "OD'er" to identify someone who does online dating, "admin" to represent the owner or administrator of a game, and other common slang terms may be mistranslated, not translated, or translated using words that are inappropriate for the user. Due to the domain-specific nature of such text, translation services may fail to provide a translation or may provide an inadequate or unusable translation.

[0041] The present disclosure addresses the above drawbacks by providing a novel system architecture and method that processes game content and converts it to a new locale at approximately the same speed at which the content is created. The game content can be parsed, localized, and stored for deployment to virtually all locales, and thus, users accessing the game from multiple locales can be provided with localized dynamic content without having to wait for new releases associated with each locale in particular. This enables multiple users of the same game to view the game content in their respective languages. Thus, multiple users of the same game can also play simultaneously in different languages, for example, participate in the same game session or game environment and view the same visual content adjusted based on their locales.

[0042] The system architecture can also enable game developers to obtain translated content, utilize translation services (e.g., provided by the game platform) to translate the content, manipulate previously translated content, instruct that high-priority content be translated at a different rate from other content, and otherwise ensure the quality and timeliness of the translated content of the game. Through intelligent analysis and memory of the translation table, rapid localization can be achieved while ensuring a high-quality online game experience.

[0043] FIG. 1 shows an exemplary system architecture 100 according to some implementations of the present disclosure. FIG. 1 and the other drawings use like reference numbers to identify like elements. The letters following a reference number such as “110” indicate that the text specifically refers to the element having that particular reference number. A reference number in the text without a following letter refers to any or all of the elements in the drawing having that reference number (e.g., “110” in the text refers to reference numbers “110a”, “110b”, and / or “110n” in the drawing).

[0044] The system architecture 100 (also referred to herein as the “system”) includes an online game platform 102 and client devices 110a and 110b (generally referred to herein as “client devices 110”). The online game platform 102 and the client devices 110 are coupled via a network or networks.

[0045] The online game platform 102 can include, among other things, a game server 104, a localization server 106 (e.g., a dedicated localization server or implemented within the game server 104), a translation server 108 (e.g., a dedicated translation server or implemented within the game server 104), a translation service 109, a localization API 111, a preprocessor architecture 113, a game content service 114, a translation storage service 116, a localization change queue 124, a localization change processor 126 (e.g., a dedicated change server or implemented within the game server 104), a game content database 120, and a translation database 122. The game content database 120 and the translation database 122 can also be referred to as data stores. The client device 110 can include a game application 112 and an input / output (I / O) interface (e.g., an input / output device). The input / output device can include one or more of a microphone, a speaker, headphones, a display device, a mouse, a keyboard, a game controller, a touch screen, a virtual reality console, etc.

[0046] The system architecture 100 is provided for illustrative purposes. In different implementations, the system architecture 100 can include the same, fewer, more, or different elements configured in the same or different ways as shown in FIG. 1.

[0047] In some implementations, the network that interconnects various elements of the system architecture 100 can include a public network (e.g., the Internet), a private network (e.g., a local area network (LAN) or a wide area network (WAN)), a wired network (e.g., an Ethernet network), a wireless network (e.g., an 802.11 network, a Wi-Fi (registered trademark) network, or a wireless local area network (WLAN)), a cellular network (e.g., a 5G network, a long term evolution (LTE) network, etc.), routers, hubs, switches, server computers, or combinations thereof.

[0048] In some implementations, data stores 120 and 122 can be non-transitory computer-readable memory (e.g., random access memory), cache, drives (e.g., hard drives), flash drives, database systems, or another type of component or device capable of storing data. Data stores 120 and 122 can also include multiple storage components (e.g., multiple drives or multiple databases) that can span multiple computing devices (e.g., multiple server computers).

[0049] In some implementations, the online game platform 102 and associated components can include a server having one or more computing devices (e.g., a cloud computing system, a rack-mounted server, a server computer, a cluster of physical servers, etc.).

[0050] In some implementations, the online game server 104 may include one or more computing devices (such as rack-mounted servers, router computers, server computers, personal computers, mainframe computers, laptop computers, tablet computers, desktop computers, etc.), a data store (such as a hard disk, memory, database) that can be used to execute operations on the online game server 104 and provide users with access to the online game server 104, a network, software components, and / or hardware components. In some implementations, the online game server 104 may be an independent system, may include multiple servers, or may be part of another system or server.

[0051] The online game server 104 may also include a website (such as a web page) or application backend software that can be used to provide users with access to the content provided by the online game server 104. For example, a user may access the online game server 104 using the game application 112 on the client device 110.

[0052] In some implementations, the online game server 104 may be a type of social network that provides connections between users, or a type of user-generated content system that enables users (e.g., end users or consumers) to communicate with other users on the online game server 104. The communication may include voice chat (e.g., synchronous and / or asynchronous voice communication), video chat (e.g., synchronous and / or asynchronous video communication), text chat (e.g., synchronous and / or asynchronous text-based communication), and / or virtual reality / augmented reality chat (e.g., synchronous and / or asynchronous avatar-based communication). In some implementations of the present disclosure, a "user" may be represented as a single individual. However, other implementations of the present disclosure include "users" (e.g., creator users) that are entities controlled by a set of users or an automated source. For example, a set of individual users federated as a community or group in a user-generated content system may be considered "users".

[0053] In some implementations, the online game server 104 may be a virtual game server. For example, the game server may provide single-player or multiplayer games to a community of users who can access or interact with the game using a client device 110 via a network. In some implementations, the game (also referred to herein as a "video game", "online game", or "virtual game") may be, for example, a two-dimensional (2D) game, a three-dimensional (3D) game (e.g., a 3D user-generated game), a virtual reality (VR) game, or an augmented reality (AR) game. In some implementations, a user may participate in game play with other users. In some implementations, the game may be played in real time with other users of the game. In some implementations, the game may be played in multiple languages across multiple locales.

[0054] In some implementations, gameplay may refer to the interaction of one or more players using a client device (e.g., 110) within a game (e.g., 105), or the presentation of interactions on a display or other output device of the client device 110.

[0055] In some implementations, game 105 can include an electronic file that can be executed or loaded using software, firmware, or hardware configured to present game content 130 (e.g., digital media items) and / or localized content 131 to an entity. In some implementations, a game application 112 can be executed in connection with a game engine that operates in cooperation with game server 104, and game 105 can be rendered. The rendering can include localized game content 130 using localized assets 138. In some implementations, game 105 can have a set of common rules or a common goal, and the game environment can share a set of common rules or a common goal. In some implementations, if the games are different, the rules or goals may also be different from each other.

[0056] In some implementations, a game can have one or more environments (also referred to herein as "game environments" or "virtual environments") to which multiple environments can be linked. An example of an environment is a three-dimensional (3D) environment. One or more environments of game application 112 can be collectively referred to herein as the "world" or "game world" or "virtual world" or "universe". An example of a world can be the 3D world of the game. For example, a user can construct a virtual environment linked to another virtual environment created by another user. A virtual game character can cross a virtual boundary to enter an adjacent virtual environment.

[0057] Note that a 3D environment or 3D world uses graphics that employ a three-dimensional representation of geometric data representing game content (or, at least, displays game content as 3D content regardless of whether a 3D representation of geometric data is used). A 2D environment or 2D world uses graphics that employ a two-dimensional representation of geometric data representing game content.

[0058] In some implementations, the online game server 104 can host one or more games 105 and enable users to interact with the games 105 using the game applications 112 of the client devices 110. Users of the online game server 104 can play, create, interact with, or build the games 105, communicate with other users, and / or create and build objects and content 130. For example, when generating user-generated content 130, the user may, among other things, create characters, character decorations, one or more virtual environments for interactive games, and build structures used in the games 105. In some implementations, users can purchase, sell, or exchange in-game virtual game objects, such as in-platform currency (e.g., virtual currency), with other users of the online game server 104.

[0059] In some implementations, the online game server 104 may send game content 130 to a game application (e.g., 112) rendered using localized assets 138. In some implementations, game content 130 (also referred to herein as "content") may refer to any data or software instructions associated with the online game server 104 or the game application (e.g., game objects, games, user information, videos, images, commands, media items, etc.). In some implementations, game content 130 may also refer to objects used, created, shared, or depicted through the online game server 104 or the game application 112 of the client device 110. For example, content 130 may include parts, models, characters, accessories, tools, weapons, clothing, buildings, vehicles, currency, flora, fauna, the aforementioned components (e.g., the windows of a building), etc. The localized assets 138 can include text or text data associated with a particular locale. Thus, when rendering game content 130, the online game platform 102 may provide localized game content using the localized assets 138 to render the localized content 131.

[0060] Note that the online game server 104 that hosts game 105 is provided for illustrative purposes only and not by way of limitation. In some implementations, the online game server 104 may host one or more media items that can include communication messages from one user to one or more other users. Media items can include, but are not limited to, digital videos, digital movies, digital photos, digital music, audio content, melodies, website content, social media updates, e-books, e-magazines, digital newspapers, digital audio books, electronic journals, web blogs, electronic comic books, software applications, and the like. In some implementations, a media item can be an electronic file that can be executed or loaded using software, firmware, or hardware configured to present the digital media item to an entity.

[0061] In some implementations, game 105 can be associated with a particular user or group of users (e.g., a private game) or made widely available to users who can access the online game server 104 (e.g., a public game). In some implementations, when the online game server 104 associates one or more games 105 with a particular user or group of users, the online game server 104 can use user account information (e.g., user account identifiers such as a username and password) to associate a particular user with game 105.

[0062] In some implementations, the online game server 104 or the client device 110 may include a game engine 107 and a game application 112 that provide localized content 131 localized through the online game platform 102. In some implementations, the game engine 107 may be used for the development or execution of a game 105 that includes localized content 131 and game content 130. For example, the game engine 107 may include, among other things, a rendering engine (a "renderer") for 2D, 3D, VR, or AR graphics, a physics engine, a collision detection engine (and collision response), a sound engine, a scripting function, an animation engine, an artificial intelligence engine, a networking function, a streaming function, a memory management function, a threading function, a scene graph function, or video support for cinematics. The components of the game engine 107 may generate commands (e.g., rendering commands, collision commands, physics commands, etc.) that are useful for computing and rendering a game 105 that includes appropriately localized content 130 using localized assets 138. In some implementations, the game application 112 of the client device 110 may operate independently in cooperation with the game engine 107, or a combination of both.

[0063] In some implementations, both the online game server 104 and the client device 110 may execute a game engine (107 and 112 respectively). The online game server 104 using the game engine 107 may execute some or all of the game engine functions (e.g., generate physical commands, rendering commands, etc.), or may offload some or all of the game engine functions to the game engine 107 of the client device 110. In some implementations, each game 105 may have a different ratio between the game engine functions executed on the online game server 104 and the game engine functions executed on the client device 110. For example, the game engine 107 of the online game server 104 may be used to generate physical commands when there is a collision between at least two game objects, while additional game engine functions (e.g., generating rendering commands) may be offloaded to the client device 110. In some implementations, the ratio of the game engine functions executed on the online game server 104 and the client device 110 may be changed (e.g., dynamically) based on game play conditions. For example, if the number of users participating in the game play of a particular game 105 exceeds a threshold number, the online game server 104 may execute one or more game engine functions previously executed by the client device 110.

[0064] For example, a user may play game 105 on client device 110 and send control instructions (e.g., user inputs such as right, left, up, down, user selection, or character position and speed information) to online game server 104. After receiving the control instructions from client device 110, online game server 104 may send game play instructions (e.g., rendering commands, collision commands, etc., position and speed information of characters participating in group game play or commands) to client device 110 based on the control instructions. For example, online game server 104 may perform one or more logical operations (e.g., using game engine 107) on the control instructions to generate game play instructions for client device 110. In other examples, online game server 104 may pass one or more of the control instructions from one client device 110 to other client devices participating in game 105 (e.g., from client device 110a to client device 110b). Client device 110 may use the game play instructions to render the game play for presentation on the display of client device 110.

[0065] In some implementations, the control instructions may refer to instructions indicating in-game actions of the user's character. For example, the control instructions may include user inputs for controlling in-game actions such as right, left, up, down, user selection, gyroscope position and orientation data, force sensor data, etc. The control instructions may include the position and velocity information of the character. In some implementations, the control instructions are directly sent to the online game server 104. In other implementations, the control instructions may be sent from the client device 110 to another client device (e.g., from client device 110a to client device 110b), and the other client device generates game play instructions using the game engine 107. The control instructions may include instructions for playing voice communication messages or other sounds from another user on an audio communication device (e.g., speaker, headphones, etc.), such as voice communication or other sounds generated using the audio spatialization techniques described herein.

[0066] In some implementations, the game play instructions may refer to instructions that enable the client device 110 to perform game play of a game 105 such as a multiplayer game, and to render the content 130 or the localized content 131. The game play instructions may include one or more of user inputs (e.g., control instructions), the position and velocity information of the character, or commands (e.g., physical commands, rendering commands, collision commands, etc.). The localized content 131 may include translated text associated with the character that is rendered based on the game play instructions (e.g., the position of the text, etc.).

[0067] In some implementations, the online game server 104 may store the content 130 created by the user in the data store 120. In some implementations, the online game server 104 maintains a character catalog and a game catalog that can be presented to the user. In some implementations, the game catalog includes images of games stored in the online game server 104. Further, the user may select a character (e.g., a character created by the user or another user) from the character catalog to participate in the selected game. The character catalog includes images of characters stored in the online game server 104. In some implementations, one or more of the characters in the character catalog may have been created or customized by the user. In some implementations, the selected character may have a character setting that defines one or more of the components of the character.

[0068] In some implementations, the user's character can include a component configuration, and the component configuration and appearance, more generally the appearance of the character, can be defined by the character setting. In some implementations, the character setting of the user's character can be at least partially selected by the user. In other implementations, the user can select a character with a default character setting or a character setting selected by another user. For example, the user can select a default character from a character catalog having a predefined character setting, and the user can further customize the default character by changing a part of the character setting (e.g., adding a custom logo shirt). The character setting can be associated with a specific character by the online game server 104.

[0069] In some implementations, each of the client devices 110 can include a computing device such as a personal computer (PC), a mobile device (e.g., a laptop, a mobile phone, a smartphone, a tablet computer, or a netbook computer), a network-connected television, a game console, a virtual reality (VR) device, an augmented reality (AR) device, etc. In some implementations, the client device 110 may also be referred to as a "user device". In some implementations, one or more client devices 110 can be connected to the online game server 104 at any point in time. Note that the number of client devices 110 is provided by way of example. In some implementations, any number of client devices 110 can be used.

[0070] In some implementations, each client device 110 may include an instance of a game application 112. In one embodiment, the game application 112 enables a user to use and interact with the online game server 104, such as controlling a virtual character in a virtual game hosted by the online game server 104, or to view or upload content 130 such as games 105, images, video items, web pages, documents, etc. In one example, the game application may be a web application (e.g., an application that operates in conjunction with a web browser) that can access, search, present, or navigate content (e.g., virtual characters in a virtual environment) provided by a web server. In another example, the game application may be a native application (e.g., a mobile application, app, or game program) that is installed and executed locally on the client device 110 and enables the user to interact with the online game server 104. The game application may render, display, or present content (e.g., web pages, media viewers) to the user. In some implementations, the game application may also include an embedded media player (e.g., a Flash® player) embedded in a web page.

[0071] According to aspects of the present disclosure, the game application 112 can be an online game server application for a user to not only build, create, edit, and upload content 130 to the online game server 104, but also interact with the online game server 104 (e.g., play a game 105 hosted by the online game server 104). Thus, the game application can be provided to the client device 110 by the online game server 104. In another example, the game application can be an application downloaded from a server.

[0072] In some implementations, a user may log in to the online game server 104 via the game application 112. The user may access a user account by providing user account information (e.g., a username and password), and the user account is associated with one or more characters available to participate in one or more games 105 of the online game server 104. In some implementations, with appropriate credentials, a game developer may obtain access to game virtual game objects such as in-game currency (e.g., virtual currency), avatars, special abilities, accessories, and / or content 130 that are owned or associated by other users within the platform.

[0073] Generally, the functions described in one implementation as being performed by the online game server 104 can also, where appropriate, be performed by the client device 110 or a server in other implementations. Additionally, functions resulting from specific components can be performed by different components or multiple components operating together. The online game server 104 can also be accessed as a service provided to other systems or devices through an appropriate application programming interface (API), and thus is not limited to use on a website.

[0074] In some implementations, the online game server platform may include a game content service 114. In some implementations, the game content service 114 can be a system, application, or module that enables the online game server 104 to provide content 130 within the online game platform 102 for localization. In some implementations, the game content service 114 can perform one or more of the operations described below in connection with the flowcharts shown in FIGS. 4 and 5.

[0075] Generally, the game content service 114 effectively communicates with the game server 104 through the localization API 111 and the preprocessor architecture 113. The localization API 111 may be exposed to the game server 104 so that the content 130 can be sent to the preprocessor architecture 113. In some implementations, the localization API 111 and the preprocessor architecture 113 can be implemented through the game server 104.

[0076] The preprocessor architecture 113 can convert the content 130 into a part of the game content that is visual content 132 and a part of the game content that is text content 133. The visual content 132 may also include text content in some implementations. For example, when the localization API 111 instructs the preprocessor architecture to ignore the translation of a specific game content 130, the game content can be stored in the data store 120 as visual content 132 without being translated.

[0077] In some implementations, the game content service 114 can instruct that the visual content 132 be associated with the game change event 136. The game change event 136 can be a trigger or event for engaging in the display or rendering of a specific content 130. In other implementations, the game change event 136 can be omitted.

[0078] Game content service 114 can also send text content 133 to translation service 109. Translation service 109 may include a machine translation service, a manual translation portal, or other translation components configured to translate at least a portion of text content 133 into translation 134. Translation 134 can be a translation from a first language of a first locale (e.g., client locale A) to a second language associated with a second locale (e.g., client locale B). In some implementations, translation 134 can be from the first language to multiple second languages associated with multiple locales.

[0079] Translation service 109 can apply any locale-specific language protocol based on a particular locale. For example, guidelines for child safety or child-appropriate content, locale-specific slang guidelines, and / or other appropriate guidelines can be incorporated into the protocol of translation service 109. The protocol can include a content rating that can block content based on user context (e.g., the user's locale or region), user profile (e.g., the user's age), and / or user settings. Thus, translation service 109 can apply the protocol to ensure that the correct content is presented to the user.

[0080] Translation 134 may be processed by translation storage service 116 and sent to be stored in data store 122. In some implementations, translation 134 is also associated with game change event 136. In some other implementations, game change event 136 may be omitted.

[0081] During the execution of game 105, localization change queue 124 may receive instructions from game application 112 to render content on client device 110. In response to a request for content, localization change queue 124 may retrieve localized asset 138. Localized asset 138 and content 130 may be processed by localization change processor 126 and rendered into localized content 131. In some implementations, game server 104 may localize content independently or in conjunction with localization change processor 126.

[0082] Figure 2 is a diagram illustrating an exemplary preprocessor architecture 113 according to some implementations. In some implementations, preprocessor architecture 113 may be a software service implemented and / or executed on localization server 106 or another processing device. One or more sub-parts described in relation to preprocessor architecture architecture 113 may be implemented in hardware in some implementations.

[0083] In some implementations, preprocessor architecture 113 may include a conversion module 202 configured to extract visual content 132 and text content 133 from game content 130. Note that conversion module 202 may also control the evaluation and conversion of the extracted visual content 132 and text content 133 such that the processing of the extracted visual content 132 and text content 133 may be executed in any order. Further, conversion module 202 may also direct the translation to any suitable and / or separate processing pipeline, including a serial or parallel processing architecture. The conversion may be utilized to store data in data store 214.

[0084] Generally, the preprocessor architecture 113 includes a preprocessing pipeline formed through evaluation engines 204a, 204b, and 204c (generally referred to herein as evaluation engine 204). The evaluation engine 204 is configured to identify various qualities of text such that only text meeting translation criteria is stored in the online game platform 102. The translation criteria can include, but are not limited to, content necessary to advance the game, content necessary to achieve goals in the game, content necessary to advance the game, content necessary to understand a portion of the game's content, and other appropriate criteria. For example, an adjudicator 210 can evaluate text provided through the evaluator 204 to determine whether the game content 130 was provided by an approved source. The adjudicator 210 can also determine whether the game content 130 is important to the game 105. For example, content specific to a user with fewer than a threshold number of users (e.g., the name of the user's pet), content that is unlikely to be translated (e.g., a secret code), temporary text (e.g., a chat message), other dynamic content, and / or other specific text may be determined not to be important. Generally, the evaluation engine 204 can continuously operate to create any number of parsed text strings and sort the temporary data 212. The parsed text strings can be formed as database entries for storage in the online game platform 102.

[0085] In some implementations, the evaluator 204 is configured to generate a pool of candidate database entries of text for storage in the data store 122. The determiner 210 may be configured to select a subset of the candidate database entries to create a pool of the remaining database entries. The determiner 210 may evaluate the entries within the pool of the remaining database entries to generate an importance ranking and filter out entries whose importance ranking does not meet a first threshold. Entries that meet the first threshold are sent as text content 133 for translation and storage.

[0086] The first threshold of the importance ranking may be based on several metrics including content-specific and / or platform-specific metrics. These metrics are combined into the evaluation engine or the conversion engine based on the strength of the metrics, for example, determining a score based on the number of unique users who have viewed the same content, or determining a score based on game sessions and / or game instances that feature the content. The evaluator 204 may apply weights to each indicator and determine some status of the evaluator itself, such as approved, inconclusive, rejected, etc. The determiner 210 further combines the response of the evaluator 204 to generate the value of the first threshold.

[0087] In some implementations, the importance ranking value is a measure of the importance of text data that is accurately represented in a client locale such as client locale B. In some implementations, the importance ranking value is based on the number of users who view the game content 130, the number of sessions associated with the game content 130, and the source of the game content 130.

[0088] In some implementations, the importance ranking value is based on a preconfigured or preset manual operation scheme of thresholds such as the age of the game (e.g., the release date of a specific game), the popularity of the game (e.g., a higher threshold for restricting computing resources), the number of players, and other appropriate criteria. For example, a new game may initially have fewer users viewing the game's content, and thus a lower threshold may be selected for such a game. In another example, a popular game may have a higher threshold set. The setting of the threshold and / or weight of the indicator may be further based on the percentage of the number of players per game. Another indicator that can be used is based on whether the developer associated with the game is a new developer (one with little or no previous content on the platform) or a known developer. The threshold and / or weight are selected such that the automatic translation of game content can occur at a rate suitable for the game. For example, when the popularity of a game is increasing, translation can be performed at a faster rate than other games by selecting appropriate values for the threshold and / or weight.

[0089] In some implementations, the importance ranking value is based on other factors and / or manual operations or machine training. Further, in other implementations, the importance ranking value can be normalized so that a boolean expression can be used to exclude inappropriate candidate database entries before translation by the translation server 108.

[0090] Through the preprocessor architecture 113, the game content 130 can be preprocessed to select candidates suitable for translation (or equivalently, remove inappropriate candidates) before processing by the game content service 114. Various forms of game content 130 can be processed for localization in the online game platform 102. The game content 130 can also include visual data 132, text 133, and other data. When at least a part of the text 133 is translated, the online game platform 102 can render the localized content 131 and send it to one or more client locales.

[0091] FIG. 3 is a diagram showing exemplary game content 302 and corresponding localized content 304 according to some implementations. As shown in FIG. 3, the game content 302 can include visual data 321 and text data 323. Further, since the text data 323 in the game content 302 is in the first language, the dimension D1 of the game content 302 can be associated with the language characteristics of the first language.

[0092] The localized content 304 can also include visual data 321 and translated text data 343. Further, since the localized content 304 includes the text data 343 translated in the second language, the dimension D2 of the localized content 304 can be different from D1 based on the language characteristics of the second language. In the example shown in FIG. 3, D2 is larger than D3 to accommodate the translated text data 343 that is longer than the text data 323. Therefore, since the online game platform 102 actively renders the localized content 131 using the localized assets 138 and the game content 130, the text data 343 can be accurately displayed in the second client locale regardless of the difference in characteristics between the first language and the second language.

[0093] As shown in FIG. 2, localization may require expanding the outer rectangle until the translated words fit well. Other adjustments may include, for example, selecting the word closest to dimension D1 from the available translations, automatically scaling the text size (e.g., reducing or increasing the size based on the difference in word length or width between the text data and the translated text data), word wrapping, truncating the text, selecting a target font that matches the detected font / color / other visual aspects of the source text data (323) and / or conforms to dimension D1, performing a retargeting operation (e.g., adjusting the visual content considering content characteristics such as background vs. foreground, object identity, etc.), or including a combination of these various techniques. In this way, the online game platform 102 overcomes many technical deficiencies of on-the-fly translation, such as improper placement, text resizing, visibility, and other issues. Specific adjustments that can be made when localizing the content can be provided as options to the developer associated with the game content, so that the developer can control the adjustments made when the game content is localized.

[0094] The method of operation of the system architecture 100 including the online game platform 102 will be described in detail below with reference to FIGS. 4 and 5.

[0095] Figure 4 is a flowchart illustrating an exemplary method 400 for the automatic localization of dynamic content according to some implementations. Method 400 begins at block 402. At block 402, visual content associated with a game is received from a first client locale. In some aspects, the visual content includes text represented in the first client locale by the first language. Further, the text may be represented partially by the first language and partially by other languages. Thus, in different implementations, all of the text or a portion of the text less than all of the text may be processed as described below. Further, according to other aspects, the text may be represented partially by proper use of the first language and partially by spoken or common terms. Thus, the text may be further parsed to identify portions that may be omitted from the translation.

[0096] The received visual content (e.g., content 130 of FIG. 1) can be processed to identify any portions that include text. For example, in game 105, content 130 may include signs or buildings that include text on one or more sides rendered thereon. Game content service 114 may identify and extract the text. In some implementations, a full copy of the received content may be stored in data store 120 to quickly serve the first client locale. In other implementations, a partial rendering of content 130 that does not include some or all of the text may be stored in data store 120.

[0097] In some implementations, game 105 may include one or more game sessions. For example, game engine 107 and / or game server 104 may enable multiple sessions of the same game 105 where each session has its own environment (e.g., five players can play together in a session of a pizza shop game, and three separate players can play in another session of the same game). The content provided by the developer is the same in both game sessions, but virtual avatars, user-generated content, and other player content are unique, and the environments are developed in different ways based on the actions of each player (e.g., the shop and pizza menus are different).

[0098] Further, a "locale" is associated with an individual user or client device 110, and within the same "game session", the user should receive or receive a localized version of the game content (e.g., if Americans, Brazilians, and Germans are all participating in the same session, the game content is rendered in English, Portuguese, and German, or other such localizations of the content). Thus, different content associated with different game sessions can also be processed and translated as described herein.

[0099] The received visual content can be content 130 that includes the representative visual and text portions described with reference to FIG. 1. The representative visual and text portions can also be separated by preprocessing. For example, preprocessing architecture 113 can separate some or all of the text prior to processing by game content service 114. Further, preprocessing architecture 113 can perform other functions related to parsing, ranking, and filtering, as described below. Block 404 may follow block 402.

[0100] In block 404, inappropriate candidate entries are filtered. In some implementations, the preprocessing architecture 113 may preprocess the received visual content to create candidate database entries based on the text and visual content. In some implementations, the candidate database entries represent the content received in a first language for storage in the data store 120. The candidate database entries may be organized according to any suitable organization scheme that includes a hash of the image data. The candidate database entries may be processed in the pipeline architecture shown in FIG. 2.

[0101] The preprocessing module 113 may further select a subset of the candidate database entries to create a pool of the remaining database entries. Deletion of the subset of candidate database entries may be effected through any filtering criteria.

[0102] According to some implementations, the filtering criteria may include, but are not limited to, filtering based on offensive content, colloquial content, euphemisms, exploitative content, content from blocked sources, content from unauthorized sources, content from new users or very newly created user accounts, and other suitable criteria. Block 406 may follow block 404.

[0103] In block 406, the candidate entries are evaluated for translation ranking. In some implementations, evaluating the entries can include evaluating the entries within the pool of the remaining database entries to generate a ranking.

[0104] In some implementations, the ranking is any suitable ranking for determining whether a particular portion of the text needs to be translated. The ranking can be an importance ranking, a confidence ranking, an engagement ranking, or another suitable ranking. In some implementations, the importance ranking is a measure of the importance of the text data being accurately represented in a second, or other, client locale. According to some implementations, the confidence ranking is a ranking that there is a level of need associated with the translation of the text. The level of need represents the confidence that the text is being translated for localization. This is in comparison to text portions with low or no confidence that the text is being translated. According to some implementations, the engagement ranking is a ranking in which a translation candidate results in further or increased engagement with the game 105 in a second, or other, locale.

[0105] When evaluating an entry, the preprocessing architecture 113 may also implement filtering to remove entries from the pool of remaining database entries that do not meet a first threshold (e.g., an importance ranking). Generally, the first threshold can be selected by the game developer through analysis of the analysis and measurement criteria associated with engagement with the game 105 or other quality measurement criteria. The first threshold can be changed through the play history of a particular game and may vary depending on the type or age of the users interacting with the game 105. Block 408 may follow block 406.

[0106] In block 408, the text is transformed to produce text translated in at least a second language associated with the second client locale. For example, the translation service 109 may translate some or all of the text in block 408. In some implementations, the game developer may translate or change the translation through access to the online game platform 102.

[0107] In some implementations, only a portion of the text may be translated. The portion of the text to be translated may include a portion of text with proper grammar (e.g., if offensive or ungrammatical language is used), a portion of text in the first language (e.g., if multiple languages are used), and / or otherwise may include portions of text that are ranked by importance. Block 410 may follow block 408.

[0108] In block 410, the translated text is stored in a database, and the stored translated text is associated with the visual content. In some implementations, the translated text 134 is stored in the translation database 122. In some implementations, the translated text is stored separately from the visual content 132. In this way, the computational and storage efficiency of the online game platform 102 is improved compared to conventional systems that store fully translated and rendered items in two or more languages.

[0109] Furthermore, in some implementations, the translation table may be formed from strings of text that were translated in previous iterations of method 400. For example, the evaluator 204 may inspect the data in the database 214 to identify similar candidate text strings and perform a splitting operation. Furthermore, the evaluator 204 may also perform a concatenation operation on other similar but insufficient strings. Furthermore, in some translation operations, a portion of the text may be completely ignored. Thus, a relatively compact translation table may be maintained. In these scenarios and implementations, a portion of the text is retrieved from the translation table and concatenated to form a fully translated phrase for rendering the localized content 131. In this way, the need to interact with game developers is limited or reduced, thereby enabling a nearly fully automated localization of the game.

[0110] Using the data stored in the translation database 122, the online game platform 102 can quickly process newly generated game content 130 through the pre-processor 113, identify and filter text already associated with translation, translate the required text based on one or more rankings (e.g., importance, reliability, engagement), and associate the visual content 132 with either a game change event or another aspect of the game 105. Thereafter, the localized content can be rendered quickly and accurately based on user requests from a second client locale, as described below.

[0111] Figure 4 shows five blocks 402 - 410, but in different implementations, one or more of the blocks can be omitted, executed in parallel, or combined with other blocks. In some implementations, one or more of blocks 402 - 410 may be divided into multiple blocks, and / or additional blocks may be executed as part of the method. For example, in some implementations, block 406 can be omitted so that all entries remaining after filtering are translated.

[0112] Further, blocks 402 - 410 can be executed (or repeated) in a different order than the above, and / or one or more steps can be omitted. For example, block 406 can be executed multiple times to evaluate multiple strings of text or multiple substrings of the same text string in the creation of a compact translation table (e.g., within one or more game sessions). Further, block 408 can be executed multiple times to translate multiple strings to create a compact translation table. Thus, using the data stored on the platform, portions of method 400 can be repeated until it is confirmed that all portions of the game session are properly translated or are translatable through the translation table. In some implementations, only a subset of the text is translated, and some global content may not be important for translating the text.

[0113] FIG. 5 is a flowchart showing an exemplary method 500 for the additional automatic localization of dynamic content according to some implementations. Method 500 can be executed through the game content service 114 and / or other parts of the online game platform 102, similar to method 400.

[0114] Method 500 can start at block 502. At block 502, a request for visual content can be received from a second client locale. The request for visual content can be a request generated by the game application 112 on the client device 110. The request can include instructions related to the game 105 such that the game server 104 can identify one or more contents stored in the database 120. Block 506 can follow block 502.

[0115] In block 506, a game change event associated with a request may be received. Note that the game change event may be omitted in some implementations. However, if the game change event is integrated, it may be used to quickly locate game content from databases 120 and 122 for localization.

[0116] As used herein, game change event 136 may include any form of trigger event associated with rendering specific game content in game 105. For example, the trigger event can include, but is not limited to, the movement of a character or avatar passing through a waypoint, the completion of a side quest or mini-game within the game, the change of direction of a character or avatar in the game, the acquisition of an item or content in the game, access to the in-game inventory or status screen in the game, the manipulation of an object or content in the game, and other similar events in the game. Other trigger events can include, but are not limited to, the purchase of an item in the game, the trading of an item in the game, the opening of a box or repository in the game, and other similar events in the game. Further, the trigger event can also include interactions with the game in the real world, such as the change of a character or avatar, the end of the game, the reset of the game, and other similar events. The foregoing examples do not represent all forms of triggers and / or trigger events, and thus it should be readily understood that they should not be construed as an exhaustive list of all appropriate triggers.

[0117] Without departing from the scope of the present disclosure, other triggers may be implemented by the user, client, and game developer. In some cases, developers are provided with controls to govern the use of translations, for example, via an API. For example, using the API, developers may be able to make calls to obtain translations of specific content. Block 508 may follow block 506.

[0118] In block 508, localized content may be rendered based on the second client locale and game change events. In some implementations, if the game change event drives the delivery of content to the client device, the localization change queue 124 may search for visual content 132 and translated text 134 to create a localized asset 138. The localized asset 138 is based on the second client locale, language, and other client attributes associated with the request. Further, the game change event 136 may determine indexes within databases 120 and 122 and quickly retrieve localization data therefrom. Subsequently, or almost simultaneously, the localization change processor may obtain the localized asset 138 from the localization change queue and render the localized content 131.

[0119] In some implementations, if the game change event does not drive the delivery of localized content, the localization change processor 126 may utilize the received content and the request for the current game 105 to determine the visual content 132 to retrieve from the database 120. Similarly, a second client locale may be used to determine which portions of the stored translation tree from the translation database 122 are necessary to render the localized content 131. Thus, the localization change processor 126 may render the localized content 131 based on the received content request. Block 510 may follow block 508.

[0120] In block 510, the localized content may be sent to the client device in the second client locale. The localization change processor may pass the localized content 131 to the game server 104 for distribution to one or more client devices. Additionally, the localized content 131 may be localized to two or more locales such that the appropriate localized content is provided for multiple locales.

[0121] In some implementations, the game 105 may include one or more game sessions. For example, the game engine 107 and / or the game server 104 may enable multiple sessions of the same game 105 where each session has its own environment (e.g., five players can play together in a session of the pizza shop game and three different players can play in another session of the same game). The content provided by the developer is the same in both game sessions, but the virtual avatars, user-generated content, and other player content are unique and the environments are developed differently based on the actions of each player (e.g., the shop and pizza menus are different).

[0122] Furthermore, a "locale" is associated with an individual user or client device 110, and within the same "game session", the user receives or should receive a localized version of the game content (e.g., if an American, a Brazilian, and a German are all participating in the same session, the game content is rendered in English, Portuguese, and German, or other such localizations of the content). Thus, different languages associated with different game sessions can also be processed and delivered as described herein.

[0123] Blocks 502 - 510 can be executed (or repeated) in a different order than above, and / or one or more steps can be omitted. For example, block 508 can be executed multiple times, e.g., to render multiple localized assets (e.g., within one or more game sessions). In this way, using data stored on the platform, portions of method 500 can be repeated until all portions of the game session are properly rendered for the client locale. In some implementations, only a subset of the assets are localized, and some global assets may not be important to translate the text.

[0124] FIG. 6 is a block diagram of an exemplary computing device 600 that may be used to implement one or more of the functions described herein. In one example, device 600 may be used to implement a computer / client device (e.g., 110 of FIG. 1) and to execute appropriate method implementations described herein. Computing device 600 may be any suitable computer system, server, or other electronic or hardware device. For example, computing device 600 may be a mainframe computer, desktop computer, workstation, portable computer, or an electronic device (such as a portable device, mobile device, cellular phone, smartphone, tablet computer, television, television set-top box, personal digital assistant (PDA), media player, gaming device, wearable device, etc.). In some implementations, device 600 includes a processor 602, a memory 604, an input / output (I / O) interface 606, and an audio / video input / output device 614.

[0125] Processor 602 may be one or more processors and / or processing circuits for executing program code and controlling the basic operations of device 600. A "processor" includes any suitable hardware and / or software system, mechanism, or component for processing data, signals, or other information. The processor may include a general-purpose central processing unit (CPU), multiple processing units, dedicated circuits for achieving functions, or a system with other systems. Processing need not be limited to a specific geographical location and there is no time limit. For example, the processor may execute its functions in "real time", "offline", "batch mode", etc. Some of the processing may be executed by different processing systems at different times, in different locations, and may be different (or the same). A computer may be any processor that communicates with a memory.

[0126] Memory 604 is typically provided in device 600 for access by processor 602 and can be, for example, random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory, etc., and is suitable for storing instructions for execution by a processor, and can be any suitable processor-readable storage medium that is disposed separately from and / or integrated with processor 602. Memory 604 can store software that operates on computing device 600 by processor 602, including operating system 608, one or more applications 610, such as a translation application, and database 612. In some implementations, application 610 can include instructions that enable processor 602 to perform (or control the performance of) the functions described herein, such as some or all of the methods described with respect to FIGS. 4 and 5.

[0127] For example, application 610 can include a translation application and / or database module 612 and can provide for the localization of dynamic content for an online game content server (e.g., 104) as described herein. Alternatively, any software within memory 604 can be stored in any other suitable storage location or computer-readable medium. Further, memory 604 (and / or other connected storage devices) can store instructions and data used in the functions described herein. Memory 604 and other types of storage (magnetic disks, optical disks, magnetic tapes, or other tangible media) can be regarded as "storage" or "storage devices."

[0128] The I / O interface 606 can provide a function that enables the server device 600 to interface with other systems and devices. For example, a network communication device, a storage device (such as memory and / or data stores 120, 122), and an input / output device can communicate via the interface 606. In some implementations, the I / O interface can be connected to an interface device that includes an input device (such as a keyboard, a pointing device, a touch screen, a microphone, a camera, a scanner, etc.) and / or an output device (such as a display device, a speaker device, a printer, a motor, etc.).

[0129] The audio / video input / output device 614 can include a user input device (such as a mouse, etc.) that can be used to receive user input, a display device (such as a screen, a monitor, etc.), and / or a combination of an input device and a display device that can be used to provide a graphical and / or visual output.

[0130] To facilitate explanation, FIG. 6 shows one block for each of processor 602, memory 604, I / O interface 606, and software blocks 608 and 610. These blocks may represent one or more processors or processing circuits, an operating system, memory, an I / O interface, an application, and / or a software engine. In other implementations, device 600 may not have all of the components shown, and / or may have other elements including other types of elements instead of, or in addition to, those shown herein. Online game server 104 is described as performing operations as described in some implementations herein, but online game server 104 or any suitable component or combination of components of a similar system, or any suitable processor or processors associated with such a system, may perform the described operations.

[0131] The user device can also implement and / or use the functions described herein. An exemplary user device can be a computer device that includes some components similar to device 600, such as a processor 602, a memory 604, and an I / O interface 606. An operating system, software, and applications suitable for the client device are provided in the memory and can be used by the processor. The I / O interface of the client device can be connected to a network communication device, as well as input and output devices, such as a microphone for capturing sound, a camera for capturing images or videos, a mouse for capturing user input, a gesture device for recognizing user gestures, a touch screen for detecting user input, an audio speaker device for outputting sound, a display device for outputting images or videos, or other output devices. The display device within the audio / video input / output device 614 can be connected to (or included in) device 600, for example, to display pre-processed and post-processed images as described herein, and such a display device can include any suitable display device, such as an LCD, LED, or plasma display screen, a CRT, a television, a monitor, a touch screen, a 3D display screen, a projector, or other visual display devices. Some implementations can provide an audio output device, such as voice output or synthesis for speaking text.

[0132] One or more of the methods described herein (e.g., methods 400 and / or 500) can be implemented by computer program instructions or code that can be executed on a computer. For example, the code can be implemented by one or more digital processors (e.g., a microprocessor or other processing circuitry), and stored in a computer program product including a non-transitory computer-readable medium (e.g., a storage medium), such as a semiconductor storage medium including magnetic, optical, electromagnetic, or semiconductor or solid-state memory, magnetic tape, removable computer diskette, random access memory (RAM), read-only memory (ROM), flash memory, rigid magnetic disk, optical disk, solid-state memory drive, etc. The program instructions can also be included in, and provided as, an electronic signal in the form of software (SaaS) as a service delivered from, for example, a server (e.g., a distributed system and / or a cloud computing system). Alternatively, one or more of the methods can be implemented in hardware (such as logic gates, etc.) or in a combination of hardware and software. Examples of hardware include programmable processors (e.g., field programmable gate arrays (FPGAs), complex programmable logic devices), general-purpose processors, graphics processors, application specific integrated circuits (ASICs), etc. One or more of the methods can be executed as part of an application or component running in a system, or as an application or software running in combination with other applications and an operating system.

[0133] One or more of the methods described herein can be implemented as a stand-alone program executable on any type of computing device, a program executable in a web browser, or a mobile application (an "app") executable on a mobile computing device (e.g., a cellular phone, smartphone, tablet computer, wearable device (such as a watch, armband, jewelry, headgear, goggles, glasses, etc.), laptop computer, etc.). In one example, a client / server architecture can be used, e.g., a mobile computing device (as a client device) can send user input data to a server device and receive final output data for output (e.g., for display) from the server. In another example, all computations can be performed within a mobile app (and / or other app) on the mobile computing device. In yet another example, the computations can be divided between the mobile computing device and one or more server devices.

[0134] The description has been presented with respect to specific implementations, but these specific implementations are merely exemplary and not limiting. The concepts illustrated in the examples can be applied to other examples and implementations.

[0135] The functional blocks, operations, functions, methods, devices, and systems described in this disclosure may be integrated or divided into different combinations of systems, devices, and functional blocks, as will be appreciated by those skilled in the art. Any suitable programming language and programming technique may be used to implement the routines of a particular implementation. Different programming techniques, such as procedural or object-oriented, may be employed. The routines may be performed on a single processing device or multiple processors. Steps, operations, or calculations may be presented in a particular order, but the order may be changed in different particular implementations. In some implementations, multiple steps or operations shown sequentially herein may be performed simultaneously.

Explanation of Signs

[0136] 100 System architecture 102 Online game platform 104 Online game server 105 Game 106 Localization server 107 Game engine 108 Translation server 109 Translation service 110 Client device 110a, 110b Client devices 111 Localization API 112 Game application 113 Preprocessor architecture 114 Game content service 116 Translation storage service 120 Game content database 120 Data store 122 Translation database 122 Data store 124 Localization change queue 126 Localization change processor 130 Game content 131 Localized content 132 Visual content 133 Text content 134 Translation 134 Translated text 136 Game change event 138 Localized asset 202 Conversion module 204 Evaluation engine 204 Evaluator 204a Evaluation engine 204b Evaluation engine 204c Evaluation engine 210 Determinator 212 Temporary data 214 Data store 302 Exemplary game content 304 Localized content 321 Visual data 323 Text data 343 Translated text data 400 Method 500 Method 600 Computing device 600 Server device 602 Processor 604 Memory 606 Input / Output (I / O) interface 608 Software block 610 Application 610 Software block 612 Database 614 Audio / Video input / output device 620 Game sort generator

Claims

1. A computer-implemented method for automatic localization of dynamic content, comprising: Receiving visual content associated with a game from a first client locale, the visual content including text and visual data represented in a first language in the first client locale; Extracting the text and the visual data represented in the first language from the visual content; Converting the text to generate at least text translated in a second language associated with a second client locale; Associating the translated text with the visual content and storing it in a database; Receiving a request for the visual content from the second client locale; Rendering localized content based on the second client locale, the rendered localized content including at least the translated text and the visual data; Transmitting the rendered localized content to a client device in the second client locale in response to the request. A computer-implemented method comprising the above steps.

2. The step of converting comprises: Creating a candidate database entry based on the text and the visual content; Selecting a subset of the candidate database entries to obtain a pool of remaining database entries; Evaluating the entries in the pool of remaining database entries to generate a significance ranking; Filtering to remove one or more entries from the pool of remaining database entries associated with each significance ranking that does not meet a first significance threshold. The computer-implemented method according to Claim 1, comprising the above steps.

3. The computer-implemented method according to Claim 2, wherein the first significance threshold is a value of the significance of the translated text accurately represented in the second client locale.

4. The step of converting comprises the step of translating the text from the visual content into a plurality of languages, each language being associated with a respective client locale, the step of storing comprises the step of storing the translated text in the database, and the stored translated text is associated with the respective client locales, the computer-implemented method according to claim 1.

5. The computer-implemented method according to claim 4, wherein the stored translated text is rendered in localized content and configured to be sent to a client device in the plurality of languages.

6. The step of converting comprises the step of creating candidate database entries based on the text and the visual content, and the step of selecting a subset of the candidate database entries based on the context in which the text is displayed in the visual content. The computer-implemented method according to claim 1.

7. The step of selecting a subset of the candidate database entries comprises the step of deleting candidate database entries associated with invalid sources of the visual content, the computer-implemented method according to claim 6.

8. The computer-implemented method according to claim 1, wherein the translated text is associated with an importance ranking value that meets a first importance threshold.

9. The computer-implemented method according to claim 8, wherein the importance ranking value is a measure of the importance of the translated text accurately represented in the second client locale.

10. The computer-implemented method according to claim 9, wherein the importance ranking value is based on one or more of the number of users viewing the visual content, the number of sessions associated with the visual content, or the source of the visual content.

11. The computer-implemented method according to claim 1, wherein the text is user-generated text provided by a user accessing the game.

12. A computer-implemented method for automatic localization of dynamic content, Receiving visual content associated with a game from a first client locale, the visual content including text and visual data represented in a first language in the first client locale; Extracting the text and the visual data represented in the first language from the visual content; Converting at least a portion of the text to generate text translated in a second language associated with a second client locale; Storing the translated text in a database, the stored translated text being associated with the first client locale and a game change event; Receiving a request for the visual content from a second client locale; Rendering localized content based on the second client locale and the game change event, the rendered localized content including the translated text and the visual data; Transmitting the rendered localized content to a client device in the second client locale; A computer-implemented method comprising.

13. The computer-implemented method according to claim 12, wherein the step of converting the portion of the text includes converting a subset of the text that meets a threshold confidence value.

14. The computer-implemented method according to claim 12, wherein the step of converting comprises translating the portion of the text separately from the visual content.

15. The computer-implemented method according to claim 14, wherein the translated text is stored separately from the visual content.

16. The computer-implemented method according to claim 12, wherein the step of converting comprises selecting a subset of candidate database entries before generating the translated text.

17. The computer-implemented method of claim 16, wherein the step of selecting a subset of the candidate database entries comprises the step of removing candidate database entries associated with unpleasant content. **Claim 18** A memory storing instructions, a processing device coupled to the memory, wherein the processing device is configured to access the memory to execute the instructions, and the instructions cause the processing device to receive visual content associated with a game from a first client locale, the visual content including text and visual data represented in a first language in the first client locale; extract the text and the visual data represented in the first language from the visual content; convert at least a portion of the text to generate text translated in a second language associated with a second client locale; store the translated text in a database, wherein the stored translated text is associated with the first client locale and a game change event; receive a request for the visual content from the second client locale; render localized content based on the second client locale and the game change event, the rendered localized content including the translated text and the visual data; transmit the rendered localized content to a client device in the second client locale; A system for performing operations including the above. **Claim 19** A non-transitory computer-readable medium storing instructions that, in response to execution by a processing device, cause the processing device to receive visual content associated with a game from a first client locale, the visual content including text and visual data represented in a first language in the first client locale; extract the text and the visual data represented in the first language from the visual content; To generate text translated in at least a second language associated with a second client locale, converting the text; Storing the translated text in a database in association with the visual content; Receiving a request for the visual content from the second client locale; Rendering content localized based on the second client locale, the rendered localized content including at least the translated text and the visual data; Transmitting the rendered localized content to a client device in the second client locale in response to the request; A non-transitory computer-readable medium that causes operations to be performed, the operations comprising.

Citation Information

Patent Citations

  • Multilingual on-line chat and its using method, device for managing multilingual on-line, chat, and multiperson-participating on-line game site and its using method

    JP2001290744A

  • Systems and methods of interaction in virtual worlds

    JP2014529792A

  • Information processing device, program, information processing system and information processing method

    JP2016224918A

  • Localization framework for dynamic text

    US20160103826A1