Framework for automation and verification of non-native language localization in cloud-based applications
By providing an automated non-native localization framework in cloud-based applications, the problems of manpower and high complexity are solved, and efficient and accurate translation files are achieved.
Patent Information
- Application Number
- CN202410590360.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2023-10-31
- Filing Date
- 2024-05-13
- Publication Date
- 2025-05-02
- Estimated Expiration
- 2044-05-13
AI Technical Summary
In cloud-based applications, non-native localization automation and verification are problematic of labor-intensive and complexity, especially in multilingual support and secure access control.
Provides a framework to automate the integration and verification process of translation files by providing native language files and internationalization keys with parameter counts and reserved word lists to third-party data repositories accessible to third-party translation services, ensuring testing and verification before production versions.
This framework enables automated integration and verification of non-native documents for cloud-based applications, reducing manpower requirements, improving efficiency, and ensuring the accuracy and consistency of translated files.
Smart Images

Figure CN119918531A_ABST
Abstract
Description
Background Art
[0001] The user interface of a cloud application is often presented in the native language of the entity providing the software. Such applications are often used in any number of locations where the local language is different from the native language of the entity providing the application. Therefore, it may be useful to translate the text of the user interface into any number of languages. However, such translations often require a lot of manpower and can be difficult to verify. BRIEF DESCRIPTION OF THE DRAWINGS
[0002] Certain embodiments discussed herein will be described with reference to the drawings listed below. However, the drawings merely illustrate certain aspects or implementations of the embodiments described herein and are not meant to limit the scope of the claims.
[0003] Figure 1 A block diagram of an example system for implementing a localization framework for automating and validating localization of non-native languages in cloud-based applications according to one or more embodiments disclosed herein is shown;
[0004] Figure 2 An overview of an example method for performing localization of a cloud-based application according to one or more embodiments disclosed herein is shown;
[0005] Figure 3 An overview of an example method for validating a test build of a cloud-based application and deploying a production build of a cloud-based application according to one or more embodiments disclosed herein is shown; and
[0006] Figure 4 A block diagram of a computing device according to one or more embodiments of the present disclosure is shown. DETAILED DESCRIPTION
[0007] Cloud-based applications are typically structured as any number of microservices. Such applications often display text to users in the user interface of the application in order to convey information. Such text is typically expressed in the native language of the entity providing the application (e.g., an entity in the United States of America can produce an application with text expressed in English). Producing user interface versions translated into multiple languages in cloud-based applications includes translated text of native language files, integrating the translated files with the product, and visually checking the product for errors. Many cloud-based architectures exacerbate this complexity by providing multiple code repositories for different aspects of the application. With such an architecture, each repository requires native language files and non-native language files, which are then integrated into a cohesive product for testing and production. The additional complexity of integrating these multiple languages into the application may result in considerable manpower.
[0008] The process of preparing a cloud-based application for presentation in both native and non-native languages is called internationalization. To perform internationalization, human-readable text strings of the user interface are replaced with tokens or variables. The original native text is then collected into a resource bundle of all native language strings, which can include any number of files, each of which includes a portion of the native language text for the application. During runtime for a user viewing the application in their native language, the presentation layer of the user interface replaces the tokens with the correct strings in the native language files.
[0009] To support multiple languages or regions, the native language text string set is translated and bundled into resource bundles that match the native language bundle. This process can be called localization.
[0010] In a cloud-based architecture, there are typically any number of microservices, each of which must be internationalized and have multiple non-native language bundles in addition to the native language bundle. Typically, these microservices are maintained in disjoint source code repositories, which increases the burden of localization. Therefore, for a single microservice in a cloud-based application, the total number of files to maintain is equal to n+1, where n is the number of languages. The additional plus one is for the key set for internationalization. Since most cloud-based products have m microservices, the total number of files is m*(n+1).
[0011] Generally speaking, cloud-based application providers usually do not have trained translators. Therefore, the task of translating native (or source) language files into other languages is performed by a third party.
[0012] In some cases, third-party translators may be granted access to the entire code base to access native language files to be translated. Such broad access allows the translator to access all texts needed for translation. The third party can then integrate the non-native language files directly into the application. However, due to security concerns, many cloud-based application providers do not want to provide access to the entire code base to entities outside of the cloud-based application provider.
[0013] Another option is to package the native language files into a bundle and provide the bundle to the entity performing the translation. After a period of time, the translators will complete their work and provide the non-native language files corresponding to the native language files to the cloud-based application provider. This process may be time-consuming and may occur in a place far away from the data source (e.g., the cloud-based application provider). During the time period when the translation is being performed, the cloud-based application provider may make changes to the native language files without notifying the translator. Such activities may cause the newly translated files to not match the now changed native language files. In addition, the cloud-based application provider must reintegrate the non-native language texts into the product. This process may be labor-intensive and may introduce errors when reintegrating the translated texts of the non-native language.
[0014] In order to at least solve the above-mentioned problems in providing cloud-based applications that can be presented in a native language and any number of non-native languages, embodiments disclosed herein provide a framework for providing native language files of cloud-based applications to third-party translators without providing the third-party translators with access to the source code of the cloud-based applications. In addition, in one or more embodiments, the framework automates the integration of translated non-native language files into a test version of the cloud-based application, so that the cloud-based application provider and the third-party translator can verify the cloud-based application before producing a production version of the cloud-based application. In one or more embodiments, when the cloud-based application provider changes the native language file before the translation is completed, the framework also automates the process for making the third-party translator aware of the change in the native language file.
[0015] In one or more embodiments, a cloud-based application provider creates, generates, or otherwise obtains an initial version of a cloud-based application, which may include any number of individual microservices and has been internationalized as discussed above. In one or more embodiments, the internationalized version of the cloud-based application (including native language files and internationalization keys) is provided to a localization framework. In one or more embodiments, the localization framework extracts the native language files and internationalization keys from the cloud-based application and transmits the native language files and internationalization keys in a native language bundle to a third-party data repository accessible to a third-party translation service.
[0016] In one or more embodiments, the third-party translation service accesses the native language bundle and initiates the translation of the native language text in the native language file into the non-native language text stored in the non-native language file corresponding to the native language file. In one or more embodiments, if the cloud-based application provider does not make changes to the native language file of the cloud-based application during the time period in which the translation is being performed, the third-party translation service can complete the translation of the native language text in the native language file into the non-native language text in the corresponding non-native language file. In one or more embodiments, the third-party translation service uses an internationalization key to identify the mapping between the key and the language file.
[0017] In one or more embodiments, in some cases, a cloud-based application provider can continue to perform development of cloud-based applications while translation is in progress. In one or more embodiments, such development can include changes to the native language text of a cloud-based application. In one or more embodiments, when such changes are made to the native language text during the time period in which translation is in progress, the localization framework can detect that changes have occurred and obtain updated native language files including these changes. In one or more embodiments, the localization framework then sends a notification of the changes to a third-party translation service, and replaces the previous version of the native language file in the third-party data repository with the updated native language file including these changes. In one or more embodiments, the third-party translation service completes the translation of the native language text in the native language file into the corresponding non-native language file (including an updated native language file, the updated native language file includes the changed native language text automatically provided by the localization framework) in the non-native language text.
[0018] In one or more embodiments, the localization framework monitors the third-party data repository and detects when all the translated non-native language files exist. In one or more embodiments, the localization framework obtains the non-native language files from the third-party data repository and performs an initial check on the non-native language files. In one or more embodiments, the native language files provided to the third-party translation service via the third-party database each include a parameter count. In one or more embodiments, the parameter is a text portion in the native language file that the cloud service application provider does not want to be translated. For example, the native language text string may include variables that the cloud-based application provider does not want to translate, such as the variable "A" in the text string expressing "Server A has been disconnected". In that case, the words "server", "has" and "disconnected" need to be translated, but parameter A does not. In one or more embodiments, each such parameter in the native language file contributes to the parameter count of the file. Additionally, the localization framework can provide a file that includes a list of other words (which can be called reserved words) that the cloud-based application provider does not want to translate, such as the proprietary name of the product (e.g., DL380 G12), the product line (e.g., ProLiant server), etc. In one or more embodiments, the initial check performed by the localization framework on the non-native language file includes verifying that the parameter count in the non-native language file matches the expected parameter count of the corresponding native language file, and also performing a grammar check to ensure that instances of reserved words are not translated. In one or more embodiments, the order of parameters in the native language file is not considered because the order of parameters in the non-native language file may change depending on the language into which the native language is translated due to differences between the native language and the non-native language.
[0019] In one or more embodiments, if the initial inspection fails, the failure result is provided to the third-party translation service so that the third-party translation service can update the non-native language file to solve any errors found during the initial inspection. In one or more embodiments, when the initial inspection passes, the localization framework obtains the non-native language file from the third-party data repository and automatically integrates the non-native language file into the test build of the cloud-based application, which is deployed in the test location in the cloud infrastructure environment. In one or more embodiments, the cloud-based application provider and the third-party translation service can each access the test build of the cloud-based application. In one or more embodiments, the parties then perform a visual inspection of the test build. As an example, the visual inspection performed by the third-party translation service can include viewing the translated text in the context of how the user of the cloud-based application will view the translated text, and determining whether the translation really expresses what the third-party translation service believes it should express in the context. As another example, the visual inspection performed by the cloud-based application provider can include viewing the translated text in the context of the cloud-based application, and determining whether the text appears to appear in the correct position, whether it is properly presented, etc.
[0020] In one or more embodiments, if the visual check fails for either party, a third-party translation service can perform additional translation work to correct any issues found during the visual check. In one or more embodiments, when both parties approve the test build of the cloud-based application with the translation, each party provides approval of the test build to the localization framework. In one or more embodiments, in response to the approval, the localization framework updates the microservices of the cloud-based application so that when a non-native speaker accesses and uses the cloud-based application, the microservices will use the non-native language files as needed.
[0021] Certain embodiments of the present disclosure may provide a framework that allows providing native language files of cloud-based applications to third-party translation services without providing source code for the application by only providing native language files with parameter counts, internationalization keys, and files including reserved word lists to third-party data repositories accessible to the third-party translation service. The framework also automates the following: providing changes made to native language files during ongoing translation; performing initial verification of translated non-native language files using the parameter counts and reserved word lists of the native language files; once the initial verification passes, generating a test build of the cloud application and deploying it to a test location in the cloud; and once the cloud-based application provider and the third-party translation service approve the test build, generating a production version of the cloud-based application.
[0022] Figure 1A block diagram of an example system for implementing a localization framework for automating and verifying localization of non-native languages in cloud-based applications according to one or more embodiments disclosed herein is shown. Figure 1 As shown in , the system may include a cloud infrastructure 100. The cloud infrastructure 100 may include any number of microservices, for example, microservice A 104, microservice B 106, microservice C 110, microservice N 112, a user interface microservice 108, one or more general microservices 114, and any number of communication components 116. The cloud infrastructure 100 may also include a test environment 120. The system may also include a localization framework 122, a translation data repository, and a translation service. Each of these components is described below.
[0023] In one or more embodiments, the cloud infrastructure 100 is a collection of any number of computing devices and other components in which a cloud computing environment is deployed and which can host any number of cloud-based applications (e.g., cloud-based applications 102), as-a-service (aaS) offerings (e.g., software aaS (SaaS), infrastructure aaS (IaaS), platform aaS (PaaS), storage aaS (STaaS), etc.). In one or more embodiments, as used herein, a computing device can be any single computing device, a set of computing devices, a portion of one or more computing devices, or any other physical, virtual, and / or logical grouping of computing resources. In one or more embodiments, a computing device is any device, portion of a device, or any group of devices capable of electronically processing instructions, and may include, but is not limited to, any of the following: one or more processors (e.g., components including circuitry), memory (e.g., random access memory (RAM)), input devices and output devices, non-volatile storage hardware (e.g., solid state drives (SSDs), persistent memory (Pmem) devices, hard disk drives (HDDs) (not shown)), one or more physical interfaces (e.g., network ports, storage ports), any number of other hardware components (not shown), and / or any combination thereof.
[0024] Examples of computing devices include, but are not limited to, servers (e.g., blade servers in blade server chassis, rack servers in racks, etc.), desktop computers, mobile devices (e.g., laptop computers, smart phones, personal digital assistants, tablet computers, automotive computing systems, and / or any other mobile computing devices), storage devices (e.g., disk drive arrays, Fibre Channel storage devices, Internet Small Computer System Interface (iSCSI) storage devices, tape storage devices, flash arrays, network attached storage devices, etc.), network devices (e.g., switches, routers, multilayer switches, etc.), virtual machines (executed using underlying physical hardware), virtualized computing environments, logical containers (e.g., for one or more cloud-based applications), one or more container pods, Internet of Things (IoT) devices, node arrays of computing resources, supercomputing devices, data centers or any portion thereof, and / or any other type of computing device having the above requirements. In one or more embodiments, any or all of the above examples may be combined to create a system of such devices, or may be divided into separate logical devices, which may be collectively referred to as computing devices. Other types of computing devices may be used without departing from the scope of the embodiments described herein, for example, Figure 4 The computing devices shown in and described below. Cloud infrastructure 100 can include any number and / or type of such computing devices in any arrangement and / or configuration without departing from the scope of the embodiments disclosed herein.
[0025] In one or more embodiments, the storage device and / or memory of a computing device or system of computing devices may be and / or include one or more data repositories for storing any number of data structures storing any amount of data (e.g., information). In one or more embodiments, a data repository is any type of storage unit and / or device (e.g., a file system, a database, a collection of tables, RAM, and / or any other storage mechanism or medium) for storing data. In addition, a data repository may include multiple different storage units and / or devices. Multiple different storage units and / or devices may or may not be of the same type or located at the same physical location.
[0026] In one or more embodiments, any storage and / or memory of a computing device or system of computing devices may be considered, in whole or in part, to be a non-transitory computer-readable medium that stores software and / or firmware.
[0027] Such software and / or firmware may include instructions that, when executed by one or more processors (not shown) and / or other hardware (e.g., circuitry) of a computing device and / or system of computing devices, cause the one or more processors and / or other hardware components to perform operations according to one or more embodiments described herein.
[0028] The software instructions may be in the form of computer-readable program code to perform the methods, processes, etc. of the embodiments described herein, and as an example, may be stored in whole or in part, temporarily or permanently on a non-transitory computer-readable medium, such as a compact disk (CD), a digital versatile disk (DVD), a storage device, a floppy disk, a tape storage device, a flash memory, a physical memory, or any other non-transitory computer-readable medium.
[0029] Cloud infrastructure 100 may include any number of computing devices, which may be collectively considered computing devices as used herein. All or any portion of the computing devices may be the same type of computing devices or different types of computing devices.
[0030] In one or more embodiments, all or any portion of the cloud infrastructure 100 may be at least partially managed by a container platform (not shown), such as Kubernetes. In one or more embodiments, the container platform includes a control plane (not shown). The control plane of the container platform may include various components for managing the cloud infrastructure 100 (e.g., one or more API servers, controllers, schedulers, etc.). For example, the control plane may be implemented on one or more master nodes, each of which may be a computing device (discussed above).
[0031] In one or more embodiments, the cloud infrastructure 100 can host any number of cloud-based applications (e.g., cloud-based application 102), which can be implemented using a microservices architecture that includes any number of microservices (e.g., microservice A 104, microservice B 106, microservice C 110, microservice N 112), as well as various other microservices (e.g., user interface microservice 108, any number of general-purpose microservices 114, etc.) and various communication components 116 that allow the various microservices to interact with other microservices, other parts of the cloud infrastructure 100, and / or entities and / or devices external to the cloud infrastructure 100.
[0032] In one or more embodiments, the microservices (e.g., 104 , 106 , 108 , 112 , 112 , 114 ) may be implemented using any number of containers, container pods, etc. Each microservice (e.g., 104 , 106 , 108 , 112 , 112 , 114 ) may implement a specific service component that constitutes part of the overall cloud-based application 102 deployed in the cloud infrastructure 100 .
[0033] In one or more embodiments, the common microservices 114 may be a set of services that are common to all or any portion of the other microservices (e.g., 104, 106, 108, 110, 112, 114) of the cloud-based application 102 deployed using the microservices architecture in the cloud infrastructure 100. Examples of common microservices include, but are not limited to, database services, authorization services, workflow orchestration microservices, auditing microservices, management microservices, and the like.
[0034] In one or more embodiments, the cloud infrastructure 100 includes a communication component 116. In one or more embodiments, as used herein, the communication component 116 includes physical devices and / or components, and / or logical devices and / or components that implement any number of communication protocols that allow microservices to communicate. As an example, various communication protocols may include, but are not limited to, a representative state transfer (REST) protocol, a remote procedure call (RPC) framework (e.g., gRPC), a Kafka protocol, etc., as well as other underlying protocols that may be used in communication, such as a hypertext transfer protocol (HTTP), a transmission control protocol (TCP), a user datagram protocol (UDP), etc. Such protocols may be used to communicate data, commands, etc.
[0035] In one or more embodiments, user interface microservice 108 can be a microservice that provides any type of user interface (e.g., graphical, command line, etc.) to users of an application deployed as a microservice of a microservice architecture. In one or more embodiments, the user interface microservice can be all or any portion of a user interface that a user accesses to interact with a cloud-based application. Thus, in one or more embodiments, user interface microservice 108, and / or any other portion of a user interface of cloud-based application 102, can display text to a user.
[0036] In one or more embodiments, the cloud-based application 102 has been internationalized. In one or more embodiments, the process of making the cloud-based application 102 ready to be presented in native and non-native languages is called internationalization. In one or more embodiments, in order to perform internationalization, the human-readable strings of the user interface are replaced with tags or variables, which may be referred to as internationalization keys in this article. In one or more embodiments, the original native text is then collected into a resource bundle of all native language strings, which may include any number of files, each of which includes a portion of the native language text of the cloud-based application 102. In one or more embodiments, during the runtime of a user viewing the application in the native language, the presentation layer of the user interface replaces the tag (e.g., internationalization key) with the correct string from the native language file. In one or more embodiments, in order to support multiple languages or regions, the native language text string set is translated and bundled into a resource bundle that matches the native language bundle. This process may be referred to as localization.
[0037] In one or more embodiments, native language files, non-native language files, and internationalization keys are stored in a language file repository 118 in the cloud infrastructure 100. In one or more embodiments, the language file repository 118 is any type of data repository capable of storing information. In one or more embodiments, the language file repository 118 includes one or more data repositories for storing any number of data structures storing any amount of data (e.g., information). In one or more embodiments, the data repository is any type of storage unit and / or device (e.g., a file system, a database, a collection of tables, RAM, and / or any other storage mechanism or medium) for storing data. In addition, the data repository may include multiple different storage units and / or devices. Multiple different storage units and / or devices may or may not be of the same type or located in the same physical location. In one or more embodiments, during runtime, based at least in part on a user of cloud-based application 102 selecting a language in which to view text of a user interface of cloud-based application 102, when cloud-based application 102 encounters an internationalization key, cloud-based application 102 obtains a language file in the user's language that corresponds to the encountered one or more internationalization keys from language file repository 118 and uses the language file to render the text of the user interface in the user's selected language.
[0038] although Figure 1 A specific set of microservices arranged in a specific manner to form a cloud-based application 102 is shown, but the cloud infrastructure 100 may include any microservice architecture with any number of microservices arranged and configured as a cloud-based application in any manner without departing from the scope of the embodiments disclosed herein. Such a microservice architecture can be used to implement any type of cloud-based application, any number of cloud-based applications, and / or any other service (e.g., aaS products). In addition, all or any portion of any of the above-mentioned devices, components, etc. (e.g., computing devices, servers, network devices, storage devices, container platforms, containers, container pods, microservices, virtual machines, etc.), in any combination, may be referred to herein as one or more components of the cloud infrastructure and may be used as part of a cloud-based application 102, or a host component.
[0039] In one or more embodiments, cloud infrastructure 100 includes a test environment 120. In one or more embodiments, the test environment is any collection of any number of any of the aforementioned resources, devices, components, services, etc. that may be present in cloud infrastructure 100. In one or more embodiments, test environment 120 is intended to deploy test builds (e.g., pre-production builds) of cloud-based applications so that such cloud-based applications (e.g., as cloud-based applications 102) can be tested before being released to end users. Although Figure 1 The test environment 120 is shown in the same cloud infrastructure 100 as the cloud-based application 102 , but the test environment 120 may be in a separate cloud infrastructure without departing from the scope of the embodiments disclosed herein.
[0040] In one or more embodiments, the system includes a localization framework 122. In one or more embodiments, the localization framework is any hardware, software, firmware, or any combination thereof that is configured to automate and verify the localization process for translating native language files into non-native languages, perform initial verification of translated non-native language files, test the test build using the non-native language files, and when the test of the test build is successful, make the non-native language files available in the production build of the cloud-based application (e.g., cloud-based application 102). As an example, the localization framework 122 can be implemented on any number of computing devices (described above). The localization framework 122 can be all or any part of an apparatus for executing all or any part of the embodiments disclosed herein. In one or more embodiments, the localization framework is operably connected to the cloud infrastructure 100 and can therefore access components therein, such as the language file repository 118, the test environment 120, etc.
[0041] In one or more embodiments, the localization framework 122 is operably connected to a translation data repository 124. In one or more embodiments, the translation data repository is any type of data repository (described above) that is configured to receive and store native language files, internationalization keys, reserved word files, and translated non-native language files. Figure 1 A single translation data repository 124 is shown, but the system may include any number of translation data repositories operably connected to the localization framework 122 without departing from the scope of the embodiments disclosed herein.
[0042] In one or more embodiments, the localization framework 122 and the translation service 126 can access the translation data repository 124 (discussed below). In one or more embodiments, the translation data repository 124 receives the native language file (which includes the parameter count), the internationalization key, and the reserved word file from the localization framework. In one or more embodiments, as discussed above, the cloud-based application provider creates, generates, or otherwise obtains an initial version of a cloud-based application (e.g., the cloud-based application 102), which can include any number of separate microservices and has been internationalized as discussed above. In one or more embodiments, the internationalized version of the cloud-based application 102 including the native language file and the internationalization key is provided to the localization framework 122. In one or more embodiments, the localization framework 122 extracts the native language file and the internationalization key from the cloud-based application, and transmits the native language file in the native language bundle, and the internationalization key to the translation data repository 124 accessible to the translation service 126.
[0043] In one or more embodiments, the native language files provided to the translation service 126 via the translation data repository 124 database each include a parameter count. In one or more embodiments, a parameter is a portion of text in the native language file that the cloud service application provider does not want to be translated. For example, a native language text string may include a variable that the cloud-based application provider does not want to translate, such as the variable "A" in a text string that expresses "Server A has been disconnected." In that case, the words "server," "has," and "disconnected" need to be translated, but parameter A does not. In one or more embodiments, each such parameter in the native language file contributes to the parameter count of the file.
[0044] Additionally, in one or more embodiments, the localization framework 122 can provide a file that includes a list of other words (which can be referred to as reserved words) that the cloud-based application provider does not want translated, such as proprietary names of products (e.g., DL345 G11, Greenlake, etc.), product lines (e.g., ProLiant servers), etc.
[0045] In one or more embodiments, the localization framework 122 is configured to perform an initial check on the non-native language file after translating the native language file into the non-native language file. In one or more embodiments, the initial check includes verifying (e.g., by performing a comparison) that the parameter count in the non-native language file matches the expected parameter count of the corresponding native language file, and also performing a grammar check to ensure that instances of reserved words are not translated. In one or more embodiments, the order of the parameters in the native language file is not considered because the order of the parameters in the non-native language file may change depending on the language into which the native language is translated due to differences between the native language and the non-native language.
[0046] In one or more embodiments, the system also includes a translation service 126. In one or more embodiments, the translation service 126 is any entity capable of translating language files from one language into one or more other languages. The translation service may include a human translator, a machine translator, or any combination thereof. In one or more embodiments, the translation service 126 is operably connected to the translation data repository 124 and the test environment 120 and can access both. Although Figure 1 A single translation service 126 is shown, but the system may include any number of translation services without departing from the scope of the embodiments disclosed herein.
[0047] In one or more embodiments, translation service 126 is configured to access a native language bundle of native language files (which may be informed by localization framework 122) and initiate translation of native language text in the native language files into non-native language text stored in non-native language files corresponding to the native language files.
[0048] In one or more embodiments, if the cloud-based application provider does not make changes to the native language files of the cloud-based application 102 during the period of time when the translation is being performed, the translation service 126 can complete the translation of the native language text in the native language file into the non-native language text in the corresponding non-native language file. In one or more embodiments, the translation service 126 uses the internationalization key to identify the mapping between the key and the language file.
[0049] In one or more embodiments, in some cases, the cloud-based application provider can continue to perform development of the cloud-based application 102 while the translation is ongoing. In one or more embodiments, such development can include making changes to the native language text of the cloud-based application 102. In one or more embodiments, when such changes are made to the native language text during the period of time when the translation is ongoing, the localization framework 122 can detect that the changes have occurred and obtain an updated native language file that includes the changes.
[0050] In one or more embodiments, the localization framework 122 then sends a notification to the translation service 126 (via the translation data repository 124 or using any other suitable notification means) that the changes have occurred, and replaces the previous version of the native language file in the translation data repository 124 with the updated native language file that includes the changes. In one or more embodiments, the translation service 126 completes the translation of the native language text in the native language file into the non-native language text in the corresponding non-native language file (including the updated native language file that includes the changed native language text automatically provided by the localization framework 122).
[0051] In one or more embodiments, after the translation service 126 translates the native language files and / or updated native language files into a corresponding set of non-native language files, the localization framework 122 is configured to detect the presence of the translated non-native language files on the translation data repository, perform an initial check on the non-native language files, and generate a test build of the cloud application when the initial check passes. In one or more embodiments, the provider of the cloud-based application 102 and the translation service 126 can check the test build to determine whether the results are acceptable (e.g., perform acceptance testing). When the test build is accepted by both parties, the localization framework 122 can be notified, and the localization framework 122 can use the non-native language files to generate a production build of the cloud-based application 102 (e.g., by making the non-native language files available in the language file repository 118 of the cloud-based application 102). In the following Figure 2 Initial inspection of the cloud-based application 102, testing of the test build, and generation of the production build are further discussed in the description of FIG.
[0052] Although Figure 1 A particular configuration of components is shown, but other configurations may be used without departing from the scope of the embodiments described herein. Figure 1 Certain components are shown as part of the same device, but any component may be grouped in multiple groups of one or more components, which may exist and perform as parts of any number of separate and operatively connected devices. As another example, a single component may be configured to perform the operations performed by Figure 1 All or any part of the functions performed by all or any part of the components shown in the figure. Therefore, the embodiments disclosed herein should not be limited to Figure 1 Configuration of the components shown in .
[0053] Figure 2 An overview of an example method for performing localization of a cloud-based application according to one or more embodiments disclosed herein is presented. Figure 2 All or any part of the method shown in can be implemented, for example, by a localization framework (e.g., Figure 1 , and described above).
[0054] Although Figure 2 The various steps in the flowchart shown in the figure are presented and described in sequence, but some or all of the steps may be performed in a different order, some or all of the steps may be combined or omitted, or may be performed in another order. Figure 2 Other steps not shown, and / or some or all of the steps may be Figure 2 and / or Figure 3 The other steps are executed in parallel.
[0055] In step 200, the method includes obtaining a cloud-based application (e.g., Figure 1 For example, a localization framework (e.g., Figure 1 The cloud-based application can be obtained by using a localization framework 122 of the cloud-based application. In one or more embodiments, a cloud-based application provider creates, generates, or otherwise obtains an initial version of a cloud-based application, which may include any number of separate microservices. Obtaining the cloud-based application may include obtaining code, files, etc. of the cloud-based application. The cloud-based application can be obtained when the cloud-based application provider provides the cloud-based application to the localization framework. In addition, or alternatively, obtaining all or any portion of the cloud-based application through the localization framework can be automated. For example, when a production version of the cloud-based application is deployed in a cloud infrastructure or otherwise available to users, the localization framework can be configured to detect the deployment and obtain the cloud-based application.
[0056] In one or more embodiments, cloud-based applications are internationalized. Therefore, cloud-based applications may include native language files, internationalization keys corresponding to native language files, and one or more reserved word files. In one or more embodiments, the native language file includes native language text. As discussed above, the native language may be local relative to the entity providing the cloud-based application (e.g., Japanese for a Japan-based cloud application provider). The native language files may each include any amount of native language text, may each correspond to one or more locations in the user interface, and may be used when the native language text is to be presented in the user interface. As an example, when the cloud-based application is executed, the user may interact with the cloud-based application using the user interface. When the user interface is executed, the cloud-based application may encounter an internationalization key and replace the internationalization key with the native language text from the native language file corresponding to the internationalization key.
[0057] In step 202, the method includes extracting native language files and internationalization keys from the cloud-based application. As an example, the native language files and internationalization keys can be extracted by a localization framework (e.g., Figure 1 The localization framework 122 of the embodiment of the present invention extracts the native language file and the internationalization key from the cloud-based application. In one or more embodiments, all or any part of the native language file may include a parameter count, which is a count of the number of parameters included in the text of the native language file that are not to be translated. The localization framework may also extract one or more reserved word files, or such reserved word files may be provided to the localization framework separately. In one or more embodiments, as described above in Figure 1 As discussed in the description of , a reserved word file is a file that lists a set of words, phrases, etc. that are not to be translated.
[0058] In step 204, the method includes storing the native language file, the internationalization key, and one or more reserved word files in a translation data repository (e.g., Figure 1 As an example, the native language file, the internationalization key, and one or more reserved word files may be stored in a localization framework (e.g., Figure 1 In one or more embodiments, the native language file, the internationalization key, and the one or more reserved word files are stored in the translation data repository. In one or more embodiments, the native language file, the internationalization key, and the one or more reserved word files are stored in the translation data repository so that the translation service can be automatically notified of the new file (e.g., due to a monitoring agent, a push notification, etc.), and / or the localization framework can be notified separately that the file exists and is ready for translation. In one or more embodiments, at this point, in response to the notification, the translation service begins translating the text of the native language file into one or more non-native languages, which are any language other than the native language.
[0059] In step 206, the method includes determining whether there are any updates to the native language files of the cloud-based application while the translation is being performed. As an example, the localization framework (e.g., Figure 1 In one or more embodiments, in some cases, a cloud-based application provider may continue to perform development of the cloud-based application while translation is ongoing. In one or more embodiments, such development may include making changes to the native language text of the cloud-based application. In one or more embodiments, when such changes are made to the native language text (and therefore the corresponding native language files) during the time period when translation is ongoing, the localization framework may detect that the changes have occurred. As an example, the localization framework may be configured to monitor a language file repository (e.g., Figure 1 The localization framework retrieves (e.g., extracts) the native language files that include the changes, and possibly the internationalization keys. In one or more embodiments, the localization framework then sends a notification to the translation service that a change has occurred, and replaces the previous version of the native language file in the translation data repository with the updated native language file that includes the changes.
[0060] In step 208, the method includes detecting a non-native language file corresponding to a native language file on a translation data repository. As an example, a localization framework (e.g., Figure 1The localization framework 122 of the translation data repository may be configured to monitor the translation data repository and determine when a non-native language file corresponding to each native language file stored in the translation data repository in step 204 exists.
[0061] In step 210, the method includes determining whether the initial check passes. In one or more embodiments, the initial check includes verifying (e.g., by performing a comparison) that the parameter count in the non-native language file matches the expected parameter count of the corresponding native language file. In one or more embodiments, the initial check also includes performing an automatic grammar check to ensure that instances of reserved words from one or more reserved working files are not translated, which can be referred to as a reserved word check. As an example, the initial check can be performed by a localization framework (e.g., Figure 1 The localization framework 122 of the embodiment of the present invention is automatically executed in response to detecting the non-native language file in step 208. In one or more embodiments, if the initial verification passes, the method proceeds to step 214. In one or more embodiments, if the initial verification fails, the method proceeds to step 212.
[0062] In step 212, the method includes the failed result of the initial inspection to the translation service report. As an example, the localization framework can provide the failed report to the translation service. In one or more embodiments, the report can include any details about the failure, for example, which non-native language files fail to pass the parameter count test, which reserved words are wrongly translated, etc. Any suitable technology for transmitting information (for example, by storing the report on the translation data repository, sending it through a network, etc.) can be used to provide the report to the translation service. In one or more embodiments, the translation service is sent a report so that the translation service resumes the execution of the translation to solve the problem that causes the initial inspection to fail, and the method returns to step 206, in which the localization framework monitors the updating of the native language file while the translation is being performed.
[0063] In step 214, the method includes generating a test build of the cloud-based application. In one or more embodiments, the localization framework automatically generates the test build in response to passing the initial inspection. In one or more embodiments, generating the test build includes generating a test version of the cloud-based application, which may include, but is not limited to: compiling code (e.g., various microservices); configuring the container platform; configuring the container; configuring the pod; configuring the components of the cloud infrastructure; storing native language files, non-native language files, and internationalization keys in one or more appropriate data repositories; etc.
[0064] In step 216, the method includes building the test in a deployment test environment (e.g., Figure 1As an example, after generating the test build, the localization framework can automatically deploy the test build in the test environment. In one or more embodiments, deploying the test build in the test environment includes preparing the test environment for access by the cloud-based application provider and the translation service. In one or more embodiments, after step 216, the method proceeds to Figure 3 Follow the steps shown in .
[0065] Figure 3 An overview of an example method for validating a test build of a cloud-based application and deploying a production build of a cloud-based application according to one or more embodiments disclosed herein is presented. Figure 3 All or any part of the method shown in can be implemented, for example, by a localization framework (e.g., Figure 1 localization framework) to execute.
[0066] Although Figure 3 The various steps in the flowchart shown in the figure are presented and described in sequence, but some or all of the steps may be performed in a different order, some or all of the steps may be combined or omitted, or may be performed additionally. Figure 3 Other steps not shown, and / or some or all of the steps may be Figure 2 and / or Figure 3 The other steps are executed in parallel.
[0067] In step 300, the method includes notifying the cloud-based application provider and the translation service of the availability of the test build. As an example, the localization framework may notify the cloud-based application provider and the translation service that once the test build is successfully deployed in the test environment, the test build is ready for verification, as described above in Figure 2 The notification may be performed using any suitable technique for transmitting information (e.g., over a network, as part of an email, via an update to a translation data repository, etc.). In one or more embodiments, the cloud-based application provider and the third-party translation service each have access to a test environment in which a test build of the cloud-based application is deployed.
[0068] In step 302, the method includes determining whether the translation service's validation of the test build is passed. In one or more embodiments, the validation includes a visual check of the test build by the translation service, which is performed by accessing and using the test build. As an example, the visual check performed by the third-party translation service may include viewing the translated text in the context of how a user of the cloud-based application would view the translated text, and determining whether the translation actually expresses what the third-party translation service believes it should express in that context. In one or more embodiments, if the translation service's validation is not passed, the method proceeds to step 306. In one or more embodiments, if the translation service's validation is passed, the method proceeds to step 304.
[0069] In step 304, the method includes determining whether verification of the test build by the cloud-based application provider passes. In one or more embodiments, the verification includes a visual inspection of the test build by the cloud-based application provider, which is performed by accessing and using the test build. As an example, the visual inspection performed by the cloud-based application provider may include viewing the translated text in the context of the cloud-based application and determining whether the text appears to appear in the correct location, is properly rendered, etc. In one or more embodiments, if the verification of the cloud-based application provider fails, the method proceeds to step 306. In one or more embodiments, if the verification of the cloud-based application provider passes, the method proceeds to step 308.
[0070] In step 306, the method includes notifying the localization framework that the validation failed. The notification may be that one or both of the validations performed in step 302 and step 304 failed. In one or more embodiments, how the localization framework responds to the notification depends on which of the one or more validations failed. In one or more embodiments, if the translation service's validation fails, the localization service may request the translation service to re-perform any portion of the translation as needed to correct any problems that caused the validation to fail, and return to Figure 2 Step 206 of the localization service may be performed to monitor updates to the native language file while the updated translation is being performed. In one or more embodiments, if the cloud-based application provider fails the verification, the localization service may provide a report to the translation service detailing the reasons for the failure, requesting the translation service to re-perform all or any portion of the translation as needed to correct any problems that caused the verification to fail, and return a response. Figure 2 Step 206 of , to monitor the update of the native language file while the updated translation is being performed. If both verifications fail, all the above actions can be performed.
[0071] In step 308, the method includes generating and deploying a production build of the cloud-based application. As an example, the production build can be generated and deployed by a localization framework. In one or more embodiments, generating the production build can include integrating non-native language files into the cloud-based application. In one or more embodiments, the production build is deployed in a cloud infrastructure for user access, and the cloud infrastructure can use the native language or any non-native language supported by the method described herein.
[0072] Figure 4 1 shows a block diagram of a computing device according to one or more embodiments of the present disclosure. As discussed above, the embodiments described herein may be implemented using a computing device. For example, Figure 1 All or any portion of the components shown in can be implemented at least in part using one or more computing devices, and Figure 2 and Figure 3 All or any part of the method shown in can be performed using one or more computing devices such as computing device 400. Computing device 400 may include one or more computer processors 402, non-permanent storage 404 (e.g., volatile memory, such as random access memory (RAM), cache memory, etc.), permanent storage 406 (e.g., hard disk, optical drive such as compact disk (CD) drive or digital versatile disk (DVD) drive, flash memory, etc.), communication interface 412 (e.g., Bluetooth interface, infrared interface, network interface, optical interface, etc.), input device 410, output device 408, and many other elements (not shown) and functions. Each of these components is described below.
[0073] In one or more embodiments, the computer processor 402 may be an integrated circuit for processing instructions. For example, the computer processor may be one or more cores or micro-cores of a processor. The processor 402 may be a general-purpose processor configured to execute program code included in software executed on the computing device 400. The processor 402 may be a special-purpose processor in which certain instructions are integrated into the processor design. The processor 402 may be an application-specific integrated circuit (ASIC), a graphics processing unit (GPU), a data processing unit (DPU), a tensor processing unit (TPU), an associative processing unit (APU), a visualization processing unit (VPU), a quantum processing unit (QPU), and / or various other processing units using dedicated hardware (e.g., a field programmable gate array (FPGA), a system on a chip (SOC), a digital signal processor (DSP), etc.). Although in Figure 4 Only one processor 402 is shown, but computing device 400 may include any number of processors without departing from the scope of the embodiments disclosed herein.
[0074] The computing device 400 may also include one or more input devices 410, such as a touch screen, keyboard, mouse, microphone, touch pad, electronic pen, motion sensor, or any other type of input device. The input device 410 may allow a user to interact with the computing device 400. In one or more embodiments, the computing device 400 may include one or more output devices 408, such as a screen (e.g., a liquid crystal display (LCD), a plasma display, a touch screen, a cathode ray tube (CRT) monitor, a projector, or other display device), a printer, an external storage device, or any other output device. One or more of the output devices may be the same or different from the input device. The input device and the output device may be locally or remotely connected to the computer processor 402, the non-permanent storage device 404, and the permanent storage device 406. There are many different types of computing devices, and the above-mentioned input device and output device may take other forms. In some cases, a multimodal system may allow a user to provide multiple types of input / output to communicate with the computing device 400.
[0075] In addition, communication interface 412 can facilitate connecting computing device 400 to a network (not shown) (e.g., a local area network (LAN), a wide area network (WAN) such as the Internet, a mobile network, or any other type of network) and / or to another device, such as another computing device. Communication interface 412 can perform or facilitate reception and / or transmission of wired or wireless communications using wired transceivers and / or wireless transceivers, including those utilizing audio jacks / plugs, microphone jacks / plugs, universal serial bus (USB) ports / plugs, Ports / plugs, Ethernet ports / plugs, Fiber optic ports / plugs, Dedicated wired ports / plugs, Wireless signal transmission, BLE wireless signal transmission, Wireless signal transmission, RFID wireless signal transmission, near field communication (NFC) wireless signal transmission, dedicated short range communication (DSRC) wireless signal transmission, 802.11 Wi-Fi wireless signal transmission, WLAN signal transmission, visible light communication (VLC), Worldwide Interoperability for Microwave Access (WiMAX), IR communication wireless signal transmission, public switched telephone network (PSTN) signal transmission, integrated services digital network (ISDN) signal transmission, 3G / 4G / 5G / LTE cellular data network wireless signal transmission, ad hoc network signal transmission, radio wave signal transmission, microwave signal transmission, infrared signal transmission, visible light signal transmission, ultraviolet light signal transmission, wireless signal transmission along the electromagnetic spectrum, or some combination thereof. The communication interface 412 may also include one or more global navigation satellite system (GNSS) receivers or transceivers for determining the location of the computing device 400 based on receiving one or more signals from one or more satellites associated with one or more GNSS systems. GNSS systems include, but are not limited to, the US-based GPS, the Russian-based Global Navigation Satellite System (GLONASS), the Chinese-based BeiDou Navigation Satellite System (BDS), and the European-based Galileo GNSS. There is no restriction to operate on any particular hardware arrangement, so the basic features here can be easily replaced by improved hardware or firmware arrangements as developed.
[0076] The term computer-readable medium includes, but is not limited to, portable or non-portable storage devices, optical storage devices, and various other media capable of storing, containing, or carrying instructions and / or data. Computer-readable media may include non-transient media in which data can be stored and do not include carrier waves and / or transient electronic signals that are propagated wirelessly or by wired connections. Examples of non-transient media may include, but are not limited to, disks or tapes, optical storage media such as CDs or DVDs, flash memory, memory, or memory devices. Codes and / or machine executable instructions may be stored on computer-readable media, and these codes and / or machine executable instructions may represent any combination of programs, functions, subroutines, programs, routines, subroutines, modules, software packages, classes, or instructions, data structures, or program statements. Code segments may be coupled to another code segment or hardware circuit by transmitting and / or receiving information, data, independent variables, parameters, or memory contents. Information, independent variables, parameters, data, etc. may be transmitted, forwarded, or transmitted via any suitable means (including memory sharing, message passing, token passing, network transmission, etc.).
[0077] All or any portion of the components of computing device 400 may be implemented in a circuit device. For example, the components may include and / or may be implemented using electronic circuits or other electronic hardware, which may include one or more programmable electronic circuits (e.g., microprocessors, GPUs, DSPs, CPUs, and / or other suitable electronic circuits), and / or may include and / or be implemented using computer software, firmware, or any combination thereof to perform the various operations described herein. In some aspects, computer-readable storage devices, media, and memories may include cable signals or wireless signals containing bit streams, etc. However, when referred to, non-transient computer-readable storage media explicitly exclude media such as energy, carrier signals, electromagnetic waves, and the signals themselves.
[0078] In the above description, many details are set forth as examples of the embodiments described herein. Those skilled in the art (who also benefit from this disclosure) will appreciate that one or more of the embodiments described herein may be practiced without these specific details, and that many variations or modifications are possible without departing from the scope of the embodiments described herein. Certain details known to those of ordinary skill in the art may be omitted to avoid obscuring the description.
[0079] Specific details are provided in the above description to provide a comprehensive understanding of the aspects and examples provided herein. However, it will be understood by those skilled in the art that these aspects can be practiced without these specific details. For clarity of explanation, in some cases, the present technology may be presented as including a functional block, which may include a device, device component, step, or routine in a method embodied in software or a combination of hardware and software. In addition to those components shown in the figure and / or described herein, additional components may also be used. For example, circuits, systems, networks, processes, and other components may be shown as components in the form of block diagrams so as not to confuse various aspects with unnecessary details. In other cases, well-known circuits, processes, algorithms, structures, and techniques may be shown without unnecessary details to avoid confusing various aspects of the embodiments disclosed herein.
[0080] Various aspects can be described above as a process or method, which can be depicted as a flow chart, flow diagram, data flow diagram, structure diagram, or block diagram. Although a flow chart can describe an operation as a sequential process, many operations can be performed in parallel or concurrently. In addition, the order of the operations can be rearranged. The process terminates when its operation is completed, but there may be additional steps not included in the figure. The process can correspond to a method, function, program, subroutine, subprogram, etc. When the process corresponds to a function, its termination can correspond to the function returning to the calling function or the main function.
[0081] The process and method according to the above-mentioned example can be implemented using computer executable instructions stored in a computer readable medium or otherwise available from a computer readable medium. For example, such instructions may include instructions and data that make a general-purpose computer, a special-purpose computer, or a processing device perform a certain function or function group or otherwise configure a general-purpose computer, a special-purpose computer, or a processing device. A part of the computer resources used can be accessed through a network. Computer executable instructions can be, for example, binary files, intermediate format instructions (such as assembly language, firmware, source code, etc.). Examples of computer readable media that can be used to store instructions, information used, and / or information created during the method according to the example include disks or optical disks, flash memory, USB devices equipped with non-volatile memory, networked storage devices, etc.
[0082] In the above description of the drawings, in the various embodiments described herein, any component described for the drawings may be equivalent to one or more identical or similarly named and / or numbered components described for any other drawings. For the sake of brevity, the description of these components may not be repeated for each drawing. Therefore, each embodiment of the components of each drawing is incorporated by reference and is assumed to be optionally present in each other drawing with one or more identical or similarly named and / or coded components. In addition, according to the various embodiments described herein, any description of the components of the drawings should be interpreted as an optional embodiment, which can be implemented in addition to the embodiments described for the corresponding one or more identical or similarly named and / or numbered components in any other drawings, in combination with the embodiments described for the corresponding one or more identical or similarly named and / or numbered components in any other drawings, or in place of the embodiments described for the corresponding one or more identical or similarly named and / or numbered components in any other drawings.
[0083] Throughout the application, ordinal numbers (e.g., first, second, third, etc.) may be used as adjectives for elements (i.e., any noun in the application). The use of ordinal numbers does not imply or create any particular ordering of elements, nor does it limit any element to only a single element, unless explicitly disclosed, such as by using the terms "before," "after," "single," and other such terms. Instead, the use of ordinal numbers is to distinguish elements. For example, a first element is different from a second element, and a first element may contain more than one element and be after (or before) a second element in the ordering of elements.
[0084] As used herein, the phrase operably connected or operably connected means that there is a direct or indirect connection between elements / components / devices that allows the elements to interact in some manner. For example, the phrase "operably connected" can refer to any direct (e.g., directly wired between two devices or components) or indirect (e.g., a wired connection and / or wireless connection between any number of devices or components that connect operably connected devices) connection. Therefore, any path that information can pass can be considered an operably connected.
[0085] Although the embodiments discussed herein have been described with respect to a limited number of embodiments, those skilled in the art having benefit of this disclosure will appreciate that other embodiments may be designed without departing from the scope of the embodiments as disclosed herein. Therefore, the scope of the embodiments described herein should be limited only by the appended claims.
Claims
1. A device comprising: one or more processors; as well as One or more non-transitory computer-readable media storing instructions that, when executed by the one or more processors, cause the one or more processors to: obtaining, by a localized framework executed on the one or more processors, a cloud-based application; extracting, by the localization framework, a plurality of native language files and a plurality of internationalization keys corresponding to the plurality of native language files from the cloud-based application; storing, by the localization framework, the plurality of native language files and the plurality of internationalization keys in a translation data repository accessible by a translation service; detecting, by the localization framework, a plurality of non-native language files corresponding to the plurality of native language files in the translation data repository; performing, by the localization framework, an initial check on the non-native language document; When the initial verification passes, generating, by the localization framework, a test build of the cloud-based application; deploying, by the localization framework, the test build to a test environment in a cloud infrastructure to have a first validation performed by the translation service and a second validation performed by a cloud-based application provider; as well as When the first verification and the second verification pass, a production build of the cloud-based application including the non-native language file is generated by the localization framework. 2 . The apparatus of claim 1 , wherein when the initial check fails, execution of the instructions further causes the one or more processors to send a notification of the failure to the translation service.
3. The apparatus of claim 1 , wherein to perform the initial check, execution of the instructions further causes the one or more processors to: performing a comparison of native language file parameter counts of the plurality of native language files with non-native language file parameter counts of the plurality of non-native language files to determine whether there is a parameter count match; and Use a reserved words file to perform reserved word testing. 4 . The apparatus of claim 1 , wherein the plurality of non-native language files are provided to the translation data repository by the translation service in response to the plurality of native language files and the plurality of internationalization keys being stored on the translation data repository.
5. The apparatus of claim 1 , wherein execution of the instructions further causes the one or more processors to, before detecting the plurality of non-native language files: detecting an update to a native language file among the plurality of native language files; and The native language file is replaced with an updated native language file in the translation data repository. 6 . The apparatus of claim 1 , wherein when the first verification fails, execution of the instructions further causes the one or more processors to request an updated translation from the translation service.
7. The apparatus of claim 1, wherein when the second verification fails, execution of the instructions further causes the one or more processors to send a report to the translation service including details regarding a reason for the failure of the second verification.
8. A computer-implemented method comprising: Obtaining a cloud-based application from a localized framework executed on one or more processors; extracting, by the localization framework, a plurality of native language files and a plurality of internationalization keys corresponding to the plurality of native language files from the cloud-based application; storing, by the localization framework, the plurality of native language files and the plurality of internationalization keys in a translation data repository accessible by a translation service; detecting, by the localization framework, a plurality of non-native language files corresponding to the plurality of native language files in the translation data repository; performing, by the localization framework, an initial check on the non-native language document; When the initial verification passes, generating, by the localization framework, a test build of the cloud-based application; deploying, by the localization framework, the test build to a test environment in a cloud infrastructure to have a first validation performed by the translation service and a second validation performed by a cloud-based application provider; as well as When the first validation and the second validation pass, a production build of the cloud-based application including the non-native language file is generated by the localization framework.
9. The computer-implemented method of claim 8, further comprising: When the initial check fails, a notification of the failure is sent to the translation service.
10. The computer-implemented method of claim 8, wherein the initial verification comprises: performing a comparison of native language file parameter counts of the plurality of native language files with non-native language file parameter counts of the plurality of non-native language files to determine whether there is a parameter count match; as well as Use a reserved words file to perform reserved word testing.
11. The computer-implemented method of claim 8, wherein the plurality of non-native language files are provided to the translation data repository by the translation service in response to the plurality of native language files and the plurality of internationalization keys being stored on the translation data repository.
12. The computer-implemented method of claim 8, further comprising: Before the plurality of non-native language files are detected: detecting an update to a native language file among the plurality of native language files; as well as The native language file is replaced with an updated native language file in the translation data repository.
13. The computer-implemented method of claim 8, further comprising: When the initial verification fails, an updated translation is requested from the translation service.
14. The computer-implemented method of claim 8, further comprising: When the second verification fails, a report including details about the reason for the failure of the second verification is sent to the translation service.
15. A non-transitory computer readable medium storing programming for execution by one or more processors, the programming comprising instructions for: obtaining, by a localized framework executed on the one or more processors, a cloud-based application; extracting, by the localization framework, a plurality of native language files and a plurality of internationalization keys corresponding to the plurality of native language files from the cloud-based application; storing, by the localization framework, the plurality of native language files and the plurality of internationalization keys in a translation data repository accessible by a translation service; detecting, by the localization framework, a plurality of non-native language files corresponding to the plurality of native language files in the translation data repository; performing, by the localization framework, an initial check on the non-native language document; When the initial verification passes, generating, by the localization framework, a test build of the cloud-based application; deploying, by the localization framework, the test build to a test environment in a cloud infrastructure to have a first validation performed by the translation service and a second validation performed by a cloud-based application provider; as well as When the first validation and the second validation pass, a production build of the cloud-based application including the non-native language file is generated by the localization framework.
16. The non-transitory computer-readable medium of claim 15, comprising additional instructions which, when executed by the one or more processors, cause the one or more processors to send a notification of the failure to the translation service when the initial check fails.
17. The non-transitory computer readable medium of claim 15, wherein to perform the initial verification, execution of the instructions further causes the one or more processors to: performing a comparison of native language file parameter counts of the plurality of native language files with non-native language file parameter counts of the plurality of non-native language files to determine whether there is a parameter count match; and Use a reserved words file to perform reserved word testing.
18. The non-transitory computer-readable medium of claim 15, wherein the plurality of non-native language files are provided to the translation data repository by the translation service in response to the plurality of native language files and the plurality of internationalization keys being stored on the translation data repository.
19. The non-transitory computer readable medium of claim 15, comprising further instructions that, when executed by the one or more processors, before detecting the plurality of non-native language files: detecting an update to a native language file among the plurality of native language files; and The native language file is replaced with an updated native language file in the translation data repository.
20. The non-transitory computer readable medium of claim 15, comprising further instructions that, when executed by the one or more processors: When the first verification fails, requesting an updated translation from the translation service; and When the second verification fails, a report including details about the reason for the failure of the second verification is sent to the translation service.
Citation Information
Patent Citations
Software internationalization method and system
CN110007994A
Software application internationalization method and device and electronic equipment
CN110018876A
Method and System for Generating a Localized Software Product
US20110144972A1
Website Debugger For Natural Language Translation And Localization
US20180300218A1