Framework for automating and validating localization of non-native languages in cloud-based applications
By automating the extraction of native language files and internationalization keys through a localization framework, the problems of low translation efficiency and poor security in the multilingual localization process of cloud-based applications are solved. This enables efficient and accurate integration and testing of non-native language files, reducing the investment of human resources.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- HEWLETT PACKARD ENTERPRISE DEV LP
- Filing Date
- 2024-05-13
- Publication Date
- 2026-07-24
AI Technical Summary
Cloud-based applications suffer from low translation efficiency, poor security, and high error rates during multilingual localization, especially due to translation mismatches and integration difficulties caused by third-party translators' inability to access the source code.
It provides a localization framework that automates the translation and verification process of non-native language files by extracting native language files and internationalization keys. It ensures real-time updates of native language files and parameter counting during the translation process, reduces manual intervention, and achieves automated translation and test builds.
It improved translation efficiency, reduced error rates, ensured translation accuracy and security, reduced human resource investment, and enabled automated updating of native language documents and automated integration of non-native language documents.
Smart Images

Figure CN119918531B_ABST
Abstract
Description
Background Technology
[0001] The user interface of cloud applications is typically presented in the native language of the entity providing the software. Such applications are often used in locations where the local language differs from the native language of the entity providing the application. Therefore, translating the user interface text into any number of languages can be useful. However, such translations often require significant manpower and can be difficult to verify. Attached Figure Description
[0002] Some embodiments discussed herein will be described with reference to the accompanying drawings listed below. However, the drawings are merely illustrative of certain aspects or implementations of the embodiments described herein and are not intended 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 non-native language localization in cloud-based applications, according to one or more embodiments disclosed herein, is shown.
[0004] Figure 2 An overview of example methods for performing localization of cloud-based applications according to one or more embodiments disclosed herein is shown;
[0005] Figure 3 An overview of example methods for validating test builds of cloud-based applications and deploying production builds of cloud-based applications, according to one or more embodiments disclosed herein, is provided; and
[0006] Figure 4 A block diagram of a computing device according to one or more embodiments of the present disclosure is shown. Detailed Implementation
[0007] Cloud-based applications are typically structured as any number of microservices. Such applications often display text to users in their user interface to convey information. This text is usually expressed in the native language of the entity providing the application (e.g., an entity in the United States of America could produce an application with text expressed in English). Producing user interface versions translated into multiple languages in cloud-based applications involves translating the native language files, integrating the translated files into the product, and visually inspecting 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 added complexity of integrating these multiple languages into the application can result in considerable manpower.
[0008] The process of preparing a cloud-based application to be presented in both its native and non-native languages is called internationalization. To perform internationalization, the human-readable text strings of the user interface are replaced with tags or variables. The original native language text is then collected into a resource bundle containing all the native language strings. This bundle can include any number of files, each containing a portion of the application's native language text. During runtime for users viewing the application in their native language, the user interface presentation layer replaces the tags with the correct strings from the native language files.
[0009] To support multiple languages or regions, the native language text string set is translated and bound to a resource bundle that matches the native language bundle. This process can be called localization.
[0010] In cloud-based architectures, there is typically any number of microservices, each of which must be internationalized, and in addition to the native language bundle, there are multiple non-native language bundles. These microservices are usually stored 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 be maintained is n+1, where n is the number of languages. The additional plus one is for the key set used for internationalization. Since most cloud infrastructure products have m microservices, the total number of files is m*(n+1).
[0011] Generally, cloud-based application providers do not typically 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 can be granted access to the entire codebase, including the native language files to be translated. This broad access allows the translator to access all the text needed for the translation. The third party can then directly integrate the non-native language files into the application. However, for security reasons, many cloud-based application providers do not wish to grant access to the entire codebase to entities outside the cloud 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 cloud-based application provider with the corresponding non-native language files. This process can be time-consuming and may occur remotely from the data source (e.g., the cloud-based application provider). During the translation process, the cloud-based application provider may make changes to the native language files without notifying the translators. Such activity may result in the newly translated files not matching the now-changed native language files. Furthermore, the cloud-based application provider must reintegrate the non-native language text into the product. This process can be labor-intensive and may introduce errors during the reintegration of the translated non-native language text.
[0014] To at least address the aforementioned problems in providing cloud-based applications capable of being presented in the native language and any number of non-native languages, the embodiments disclosed herein provide a framework for providing native language files of a cloud-based application to a third-party translator without granting the third-party translator access to the source code of the cloud-based application. Additionally, 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, allowing the cloud-based application provider and the third-party translator to validate the cloud-based application before producing a production version. In one or more embodiments, the framework also automates the process of making the third-party translator aware of changes to the native language files when the cloud-based application provider alters them before translation is complete.
[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, an internationalized version of the cloud-based application (including a native language file and an internationalization key) is provided to a localization framework. In one or more embodiments, the localization framework extracts the native language file and the internationalization key from the cloud-based application and transfers the native language file and the internationalization key from the native language bundle to a third-party data store accessible to the 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 non-native language text stored in the corresponding non-native language file. In one or more embodiments, if the cloud-based application provider does not make any changes to the native language file of the cloud-based application during the translation process, the third-party translation service can complete the translation of the native language text in the native language file into the corresponding non-native language text in the 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 developing its cloud-based application while translation is in progress. 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 during the translation period, the localization framework can detect that changes have occurred and obtain an updated native language file 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 database 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 text in the non-native language file (including the updated native language file, which includes the changed native language text automatically provided by the localization framework).
[0018] In one or more embodiments, the localization framework monitors a third-party data repository and detects when all translated non-native language files are present. 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 a third-party database each include a parameter count. In one or more embodiments, parameters are text portions in the native language files that the cloud service application provider does not want translated. For example, the native language text string may include variables that the cloud-based application provider does not want translated, such as the variable "A" in a 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 that file. Additionally, the localization framework may provide a file that includes a list of other words (which may be referred to as reserved words) that the cloud-based application provider does not want translated, such as the proprietary name of a product (e.g., DL380 G12), product family (e.g., ProLiant server), etc. In one or more embodiments, the initial checks performed by the localization framework on the non-native language file include verifying that the parameter count in the non-native language file matches the expected parameter count in the corresponding native language file, and also performing grammatical checks 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 to which the native language is being translated, due to differences between the native and non-native languages.
[0019] In one or more embodiments, if the initial validation fails, the failure result is provided to a third-party translation service, allowing the third-party translation service to update the non-native language files to address any errors found during the initial validation. In one or more embodiments, when the initial validation passes, the localization framework retrieves the non-native language files from a third-party data repository and automatically integrates them into a test build of the cloud-based application, which is deployed in a test location within a cloud infrastructure environment. In one or more embodiments, both the cloud-based application provider and the third-party translation service have access to 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, a visual inspection 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 truly expresses what the third-party translation service believes it should express in that context. As another example, a 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 be in the correct location, whether it is presented appropriately, etc.
[0020] In one or more embodiments, if any party's visualization check fails, a third-party translation service may perform additional translation work to correct any issues identified during the visualization check. In one or more embodiments, each party provides approval of the test build of the cloud-based application with the translation to the localization framework when both parties approve it. In one or more embodiments, in response to approval, the localization framework updates the microservices of the cloud-based application so that when non-native speakers access and use the cloud-based application, the microservices will use non-native language files as needed.
[0021] Certain embodiments of this disclosure can provide a framework that allows providing a cloud-based application's native language file to a third-party translation service without providing the application's source code, by providing only the native language file with parameter counts, the internationalization key, and a file including a list of reserved words to a third-party data repository accessible to the third-party translation service. The framework also automates: providing changes made to the native language file during the translation process; performing an initial check on the translated non-native language file using the parameter counts and the list of reserved words from the native language file; generating a test build of the cloud application and deploying it to a test location in the cloud once the initial check passes; and generating a production version of the cloud-based application once the cloud-based application provider and the third-party translation service approve the test build.
[0022] Figure 1A block diagram of an example system for implementing a localization framework for automating and validating non-native language localization in cloud-based applications, according to one or more embodiments disclosed herein, is shown. Figure 1 As shown, the system may include cloud infrastructure 100. Cloud infrastructure 100 may include any number of microservices, such as microservice A 104, microservice B 106, microservice C 110, microservice N 112, user interface microservice 108, one or more general microservices 114, and any number of communication components 116. Cloud infrastructure 100 may also include a testing 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, 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 application 102), as-a-service (aaS) products (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, part 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 and output devices, non-volatile storage hardware (e.g., solid-state drives (SSDs), permanent 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 a blade server chassis, rack servers in a rack, etc.), desktop computers, mobile devices (e.g., laptops, smartphones, personal digital assistants, tablets, 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 memory arrays, network-connected storage devices, etc.), network devices (e.g., switches, routers, multilayer switches, etc.), virtual machines (executing 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 part thereof, and / or any other type of computing device having the foregoing requirements. In one or more embodiments, any or all of the foregoing 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 and described below. Without departing from the scope of the embodiments disclosed herein, cloud infrastructure 100 may include any number and / or type of such computing devices in any arrangement and / or configuration.
[0025] In one or more embodiments, the storage devices and / or memory of a computing device or a system of computing devices may be and / or include one or more data repositories for storing any number of data structures that store any amount of data (e.g., information). In one or more embodiments, a data repository is any type of storage unit and / or device for storing data (e.g., file system, database, collection of tables, RAM, and / or any other storage mechanism or medium). Furthermore, a data repository may include multiple different storage units and / or devices. These multiple different storage units and / or devices may or may not be of the same type or located in the same physical location.
[0026] In one or more embodiments, any storage device and / or memory of a computing device or a system of computing devices may be regarded, in whole or in part, as a non-transitory computer-readable medium storing 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 a system of the computing device, cause one or more processors and / or other hardware components to perform operations according to one or more embodiments described herein.
[0028] Software instructions may be in the form of computer-readable program code to perform methods, processes, etc., as described herein, and by way of example, may be stored, in whole or in part, temporarily or permanently, on a non-transitory computer-readable medium, such as an optical disc (CD), a digital multifunction disc (DVD), a storage device, a floppy disk, a magnetic tape storage device, flash memory, physical memory, or any other non-transitory computer-readable medium.
[0029] Cloud infrastructure 100 may include any number of computing devices, wherein any number of computing devices may be collectively considered as computing devices as used herein. All or any part of the computing devices may be computing devices of the same type or computing devices of different types.
[0030] In one or more embodiments, all or any part of the cloud infrastructure 100 may be managed at least in part 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, cloud infrastructure 100 can host any number of cloud-based applications (e.g., cloud-based application 102) that 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 microservices 114, etc.) and various communication components 116 that allow the various microservices to interact with other microservices, other parts of cloud infrastructure 100, and / or entities and / or devices outside of cloud infrastructure 100.
[0032] In one or more embodiments, microservices (e.g., 104, 106, 108, 112, 112, 114) can be implemented using any number of containers, container pods, etc. Each microservice (e.g., 104, 106, 108, 112, 112, 114) can implement a specific service component that forms part of the overall cloud-based application 102 deployed in cloud infrastructure 100.
[0033] In one or more embodiments, the generic microservice 114 may be a set of services common to all or any part of other microservices (e.g., 104, 106, 108, 110, 112, 114) of a cloud-based application 102 deployed using a microservice architecture in cloud infrastructure 100. Examples of generic microservices include, but are not limited to, database services, authorization services, workflow orchestration microservices, auditing microservices, management microservices, etc.
[0034] In one or more embodiments, 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, implementing any number of communication protocols that allow microservice communication. As examples, various communication protocols may include, but are not limited to, representative state transfer (REST) protocols, remote procedure call (RPC) frameworks (e.g., gRPC), the Kafka protocol, and other underlying protocols that can be used in communication, such as Hypertext Transfer Protocol (HTTP), Transmission Control Protocol (TCP), User Datagram Protocol (UDP), etc. Such protocols can be used to communicate data, commands, etc.
[0035] In one or more embodiments, the user interface microservice 108 may be a microservice that provides users of an application deployed as a microservice architecture with any type of user interface (e.g., graphical, command-line, etc.). In one or more embodiments, the user interface microservice may be all or any part of the user interface that a user accesses to interact with a cloud-based application. Therefore, in one or more embodiments, the user interface microservice 108, and / or any other part of the user interface of the cloud-based application 102, may display text to the user.
[0036] In one or more embodiments, the cloud-based application 102 has been internationalized. In one or more embodiments, the process of preparing the cloud-based application 102 for presentation in both native and non-native languages is referred to as internationalization. In one or more embodiments, to perform internationalization, human-readable strings in the user interface are replaced with tags or variables, which may be referred to herein as internationalization keys. In one or more embodiments, the original native language text is then collected into a resource bundle containing all native language strings, which may include any number of files, each containing a portion of the native language text for the cloud-based application 102. In one or more embodiments, during runtime for a user viewing the application in their native language, the presentation layer of the user interface replaces the tags (e.g., internationalization keys) with the correct strings from the native language files. In one or more embodiments, to support multiple languages or regions, the set of native language text strings 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 within 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 that store 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., file system, database, collection of tables, RAM, and / or any other storage mechanism or medium) for storing data. Furthermore, the data repository may include multiple different storage units and / or devices. These 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 operation, at least in part based on the language of the text of the user interface of the cloud-based application 102 selected by the user of the cloud-based application 102, when the cloud-based application 102 encounters an internationalization key, the cloud-based application 102 obtains a language file corresponding to the user's language in one or more internationalization keys encountered from the language file repository 118, and uses the language file to present the text of the user interface in the user's selected language.
[0038] although Figure 1 A specific set of microservices arranged in a particular manner to form cloud-based application 102 is shown, but cloud infrastructure 100 may include any microservice architecture having any number of microservices arranged and configured in any manner as cloud-based applications 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). Additionally, all or any part of any of the aforementioned 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 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 the aforementioned resources, devices, components, services, etc., that may exist within cloud infrastructure 100. In one or more embodiments, test environment 120 is designed to deploy test builds (e.g., pre-production builds) of cloud-based applications so that such cloud-based applications (e.g., as cloud-based application 102) can be tested before being released to end users. Although Figure 1 A 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, configured to automate and validate the localization process for translating native language files into a non-native language, perform initial checks on the translated non-native language files, test builds using the non-native language files, and, when the test builds succeed, make the non-native language files available in a production build of a 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 performing all or any part of the embodiments disclosed herein. In one or more embodiments, the localization framework is operatively connected to cloud infrastructure 100 and therefore has access to components therein, such as language file repositories 118, testing environments 120, etc.
[0041] In one or more embodiments, the localization framework 122 is operatively connected to the translation data store 124. In one or more embodiments, the translation data store is any type of data store (described above) configured to receive and store native language files, internationalization keys, reserved word files, and translated non-native language files. Although Figure 1 A single translation data repository 124 is shown, but the system may include any number of translation data repositories operatively 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 have access to the translation data store 124 (discussed below). In one or more embodiments, the translation data store 124 receives a native language file (which includes parameter counts), an internationalization key, and a reserved word file from the localization framework. In one or more embodiments, as discussed above, a cloud-based application provider creates, generates, or otherwise obtains an initial version of a cloud-based application (e.g., cloud-based application 102), which may include any number of individual microservices and has been internationalized as discussed above. In one or more embodiments, an 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 and the internationalization key from the native language bundle to the translation data store 124 accessible to the translation service 126.
[0043] In one or more embodiments, each native language file provided to translation service 126 via translation data repository 124 includes a parameter count. In one or more embodiments, the parameters are text portions in the native language file that the cloud service application provider does not want translated. For example, the native language text string may include variables that the cloud-based application provider does not want translated, such as the variable "A" in a 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 that file.
[0044] Additionally, in one or more embodiments, the localization framework 122 may provide a file that includes a list of other words (which may be referred to as reserved words) that the cloud-based application provider does not want to translate, such as proprietary names of products (e.g., DL345 G11, Greenlake, etc.), product families (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 a 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 in the corresponding native language file, and also performing a grammatical 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 to which the native language is being translated due to differences between the native and non-native languages.
[0046] In one or more embodiments, the system further 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 operatively connected to and has access to both the translation data repository 124 and the testing environment 120. 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, the translation service 126 is configured to access the native language bundle of the native language file (which may be notified by the localization framework 122) and initiate the translation of the native language text in the native language file into non-native language text stored in a non-native language file corresponding to the native language file.
[0048] In one or more embodiments, if the cloud-based application provider does not make any changes to the native language file of cloud-based application 102 during the translation process, translation service 126 can translate the native language text in the native language file into the corresponding non-native language text in the non-native language file. In one or more embodiments, translation service 126 uses an 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 developing the cloud-based application 102 while translation is in progress. In one or more embodiments, such development may 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 translation period, the localization framework 122 can detect that changes have occurred and obtain an updated native language file including these changes.
[0050] In one or more embodiments, the localization framework 122 then sends a notification of the changes to the translation service 126 (via the translation data store 124 or using any other suitable notification means), and replaces the previous version of the native language file in the translation data store 124 with an updated native language file that includes these 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, which includes the modified native language text automatically provided by the localization framework 122).
[0051] In one or more embodiments, after translation service 126 translates the native language files and / or updated native language files into corresponding sets of non-native language files, localization framework 122 is configured to detect the presence of translated non-native language files on a translation data repository, perform an initial check on the non-native language files, and generate a test build of the cloud application if the initial check passes. In one or more embodiments, the provider of cloud-based application 102 and translation service 126 may examine the test build to determine if the result is acceptable (e.g., perform an acceptance test). When the test build is accepted by both parties, localization framework 122 may be notified, and localization framework 122 may use the non-native language files to generate a production build of cloud-based application 102 (e.g., by making the non-native language files available in the language file repository 118 of cloud-based application 102). (The following...) Figure 2 The description further discusses the initial verification of cloud-based application 102, the testing of the test build, and the generation of the production build.
[0052] Although Figure 1 A specific configuration of the component is shown, but other configurations may be used without departing from the scope of the embodiments described herein. For example, although Figure 1 Some components may be shown as part of the same device, but any component can be grouped into multiple groups of one or more components, which can exist and perform as part of any number of separate and operatively connected devices. As another example, a single component can be configured to perform... Figure 1 All or any part of the components shown perform all or any part of the functionality. Therefore, the embodiments disclosed herein should not be limited to... Figure 1 The configuration of the components shown.
[0053] Figure 2 An overview of example methods for performing localization of cloud-based applications according to one or more embodiments disclosed herein is shown. Figure 2 All or any part of the methods shown can be implemented, for example, through a localization framework (e.g., Figure 1 As shown in the diagram and described above in the localization framework 122), it is executed.
[0054] Although Figure 2 The steps in the flowchart shown are presented and described in sequence, but some or all steps may be performed in a different order, some or all steps may be combined or omitted, or steps may be performed separately. Figure 2 Other steps not shown in the diagram, and / or some or all of the steps may be combined with... 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 Cloud-based applications (102). For example, through a localized framework (e.g., Figure 1 A localization framework (122) is used to obtain cloud-based applications. 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. Obtaining the cloud-based application may include obtaining the application's code, files, etc. The cloud-based application can be obtained when the cloud-based application provider provides the cloud-based application to the localization framework. Alternatively, obtaining all or any part 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 cloud infrastructure or otherwise made 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, the cloud-based application is internationalized. Therefore, the cloud-based application may include a native language file, an internationalization key corresponding to the native language file, 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 to the entity providing the cloud-based application (e.g., Japanese for a Japan-based cloud application provider). Each native language file 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, a user can 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 native language text from the native language file corresponding to that internationalization key.
[0057] In step 202, the method includes extracting the native language file and internationalization key from the cloud-based application. As an example, this can be achieved through a localization framework (e.g., Figure 1 The localization framework 122) extracts a native language file and an internationalization key from a cloud-based application. In one or more embodiments, all or any portion of the native language file may include a parameter count, which is a count of the number of parameters in the text of the native language file that do not need 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... Figure 1 As discussed in the description, a reserved word file is a file that lists a set of words, phrases, etc. that should not 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 The translation data is stored in a repository (124). As an example, the native language file, internationalization key, and one or more reserved word files can be stored using a localization framework (e.g., Figure 1 The localization framework 122) is stored on a translation data store. In one or more embodiments, storing the native language file, internationalization key, and one or more reserved word files on the translation data store allows the translation service to be automatically notified of new files (e.g., due to monitoring agents, push notifications, etc.), and / or the localization framework can individually notify of the existence of a file and that it is ready for translation. In one or more embodiments, 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 languages 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 translation is being performed. As an example, this can be achieved through a localization framework (e.g., Figure 1 The localization framework 122 is used to determine this. In one or more embodiments, in some cases, the cloud-based application provider can continue to perform cloud-based application development while translation is in progress. 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, the localization framework can detect that such changes have occurred when such changes are made to the native language text (and therefore the corresponding native language file) during the period of translation. As an example, the localization framework can be configured to monitor language file repositories (e.g., Figure 1 The method uses a language file repository 118 to determine whether any native language files therein have been updated during the translation process. In one or more embodiments, if no update is detected, the method proceeds to step 208. In one or more embodiments, if one or more updates are detected, the method returns to step 202, and the localization framework obtains (e.g., extracts) the updated native language files including these changes, along with a possible internationalization key. In one or more embodiments, the localization framework then sends a notification to the translation service that changes have occurred and replaces the previous version of the native language files in the translation data repository with the updated native language files including these changes.
[0060] In step 208, the method includes detecting non-native language files corresponding to native language files on a translation data repository. As an example, a localization framework (e.g., Figure 1The localization framework 122 can be configured to monitor the translation data repository and determine when non-native language files corresponding to each native language file stored in the translation data repository in step 204 exist.
[0061] In step 210, the method includes determining whether an 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 in the corresponding native language file. In one or more embodiments, the initial check further includes performing an automatic syntax check to ensure that instances of reserved words from one or more reserved working files are not translated; this may be referred to as a reserved word check. As an example, the initial check may be performed by a localization framework (e.g., Figure 1 The localization framework 122) is automatically executed in response to the detection of a non-native language file in step 208. In one or more embodiments, if the initial check passes, the method proceeds to step 214. In one or more embodiments, if the initial check fails, the method proceeds to step 212.
[0062] In step 212, the method includes reporting the initial failure result to the translation service. As an example, the localization framework may provide a failure report to the translation service. In one or more embodiments, the report may include any details about the failures, such as which non-native language documents failed the parameter count test, which reserved words were mistranslated, etc. The report can be provided to the translation service using any suitable technology for transmitting information (e.g., by storing the report on a translation data repository, sending it over a network, etc.). In one or more embodiments, sending the report to the translation service causes the translation service to resume translation to resolve the issues that caused the initial failure, and the method returns to step 206, in which the localization framework monitors updates to the native language documents while translation is in progress.
[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 the passing of an initial verification. In one or more embodiments, generating the test build includes producing a test version of the cloud-based application, which may include, but is not limited to: compiling (e.g., various microservices) code; configuring a container platform; configuring containers; configuring pods; configuring 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 1In the test environment 120). As 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 cloud-based application providers and translation services. In one or more embodiments, after step 216, the method proceeds to... Figure 3 The steps are shown in the figure.
[0065] Figure 3 An overview of example methods for validating test builds of cloud-based applications and deploying production builds of cloud-based applications, according to one or more embodiments disclosed herein, is shown. Figure 3 All or any part of the methods shown can be implemented, for example, through a localization framework (e.g., Figure 1 It is executed using a localized framework.
[0066] Although Figure 3 The steps in the flowchart shown are presented and described in sequence, but some or all steps may be performed in a different order, some or all steps may be combined or omitted, and steps may be performed additionally. Figure 3 Other steps not shown in the diagram, and / or some or all of the steps may be combined with... 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 translation service of the test build's availability. As an example, the localization framework could notify the cloud-based application provider and translation service that the test build is ready for verification once it has been successfully deployed in the test environment, as described above. Figure 2 The steps 214 and 216 are discussed. Notifications can be performed using any suitable technology for transmitting information (e.g., via a network, as part of an email, via updates to a translation data repository, etc.). In one or more embodiments, the cloud-based application provider and the third-party translation service can each access the test environment in which the 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 passes. In one or more embodiments, 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, a visual check performed by a third-party translation service may include viewing the translated text in the context of how a user of a cloud-based application would view the translated text and determining whether the translation truly expresses what the third-party translation service believes it should express in that context. In one or more embodiments, if the validation of the translation service fails, the method proceeds to step 306. In one or more embodiments, if the validation of the translation service passes, the method proceeds to step 304.
[0069] In step 304, the method includes determining whether the cloud-based application provider's validation of the test build passes. In one or more embodiments, validation 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, a visual inspection performed by the cloud-based application provider may include viewing translated text in the context of the cloud-based application and determining whether the text appears to be in the correct position, whether it is presented appropriately, etc. In one or more embodiments, if the cloud-based application provider's validation fails, the method proceeds to step 306. In one or more embodiments, if the cloud-based application provider's validation passes, the method proceeds to step 308.
[0070] In step 306, the method includes notifying the localization framework of a failed verification. This notification may be due to one or both of the verifications performed in steps 302 and 304 failing. In one or more embodiments, how the localization framework responds to the notification depends on which of the one or more verifications failed. In one or more embodiments, if the translation service's verification fails, the localization service may request the translation service to re-execute any part of the translation as needed to correct any issues that caused the verification to fail, and return to... Figure 2 Step 206 involves monitoring updates to the native language file while the translation is being updated. In one or more embodiments, if the cloud-based application provider's verification fails, the localization service may provide the translation service with a report detailing the reasons for the failure, requesting the translation service to re-execute any part of the translation as needed to correct any issues that caused the verification failure, and return... Figure 2 Step 206 involves monitoring updates to the native language file while the translation is being updated. If both verifications fail, all of 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 may be generated and deployed using a localization framework. In one or more embodiments, generating the production build may 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, which may use the native language or any non-native language supported by the methods described herein.
[0072] Figure 4 A block diagram of a computing device according to one or more embodiments of the present disclosure is shown. As discussed above, the embodiments described herein can be implemented using a computing device. For example, Figure 1 All or any part of the components shown 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 methods shown 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-persistent storage devices 404 (e.g., volatile memory such as random access memory (RAM), cache memory, etc.), persistent storage devices 406 (e.g., hard disks, optical drives such as optical disc (CD) drives or digital versatile disc (DVD) drives, flash memory, etc.), communication interfaces 412 (e.g., Bluetooth interface, infrared interface, network interface, optical interface, etc.), input devices 410, output devices 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 microcores 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 association processing unit (APU), a visualization processing unit (VPU), a quantum processing unit (QPU), and / or various other processing units using special-purpose hardware (e.g., field-programmable gate arrays (FPGAs), system-on-a-chip (SoCs), digital signal processors (DSPs), etc.). 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 touchscreen, keyboard, mouse, microphone, touchpad, electronic pen, motion sensor, or any other type of input device. Input devices 410 allow users 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), plasma display, touchscreen, cathode ray tube (CRT) monitor, projector, or other display device), printer, external storage device, or any other output device. One or more of the output devices may be the same as or different from the input devices. Input and output devices may be locally or remotely connected to the computer processor 402, non-persistent storage device 404, and persistent storage device 406. Many different types of computing devices exist, and the aforementioned input and output devices may take other forms. In some cases, a multimodal system may allow users to provide multiple types of input / output to communicate with the computing device 400.
[0075] Furthermore, the communication interface 412 facilitates the connection of the 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. The communication interface 412 can perform or facilitate the reception and / or transmission of wired or wireless communication using wired transceivers and / or wireless transceivers, including those utilizing audio jacks / plugs, microphone jacks / plugs, Universal Serial Bus (USB) ports / plugs, etc. 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), Global Microwave Access Interoperability (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 a combination thereof. Communication interface 412 may also include one or more Global Navigation Satellite System (GNSS) receivers or transceivers for determining the location of computing device 400 based on one or more signals received 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 GLONASS, the Chinese-based BeiDou Navigation Satellite System (BDS), and the European-based Galileo GNSS. There are no restrictions on operation on any particular hardware configuration; therefore, the fundamental features described here can be easily superseded by developed, improved hardware or firmware configurations.
[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, but does not include, non-transitory media in which data can be stored, and carrier waves and / or transient electronic signals propagated wirelessly or via a wired connection. Examples of non-transitory media may include, but are not limited to, magnetic disks or magnetic tapes, optical storage media such as CDs or DVDs, flash memory, memory, or memory devices. Computer-readable media may store code and / or machine-executable instructions that may represent programs, functions, subroutines, routines, subroutines, modules, software packages, classes, or any combination of instructions, data structures, or program statements. Code segments can be coupled to another code segment or hardware circuitry by passing and / or receiving information, data, arguments, parameters, or memory contents. Information, arguments, parameters, data, etc., can be passed, forwarded, or transmitted via any suitable means, including memory sharing, messaging, token passing, network transmission, etc.
[0077] All or any part of the components of computing device 400 may be implemented in a circuit arrangement. For example, a component may include and / or may be implemented using electronic circuitry or other electronic hardware, which may include one or more programmable electronic circuits (e.g., a microprocessor, GPU, DSP, CPU, and / or other suitable electronic circuitry), and / or may include and / or may 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-transitory computer-readable storage media expressly exclude media such as energy, carrier signals, electromagnetic waves, and the signal itself.
[0078] In the above description, many details are set forth as examples of the embodiments described herein. Those skilled in the art (also benefiting from this disclosure) will understand that one or more of the embodiments described herein can be practiced without these specific details, and many variations or modifications are possible without departing from the scope of the embodiments described herein. Certain details known to those skilled in the art may have been omitted to avoid obscuring the description.
[0079] Specific details are provided in the foregoing description to provide a full understanding of the aspects and examples provided herein. However, those skilled in the art will understand that these aspects can be practiced without these specific details. For clarity, in some instances, the technology may be presented as including functional blocks that may include devices, device components, steps, or routines in a method embodied in software, or a combination of hardware and software. Additional components may be used in addition to those shown in the figures and / or described herein. For example, circuits, systems, networks, processes, and other components may be shown as components in block diagram form so as not to obscure aspects with unnecessary detail. In other instances, well-known circuits, processes, algorithms, structures, and techniques may be shown without unnecessary detail to avoid obscuring aspects of the embodiments disclosed herein.
[0080] The various aspects can be described above as processes or methods, which can be depicted as flowcharts, diagrams, data flow diagrams, structure diagrams, or block diagrams. Although flowcharts can describe operations as sequential processes, many operations can be executed in parallel or concurrently. Furthermore, the order of operations can be rearranged. A process terminates when its operations are completed, but there may be additional steps not included in the diagram. A process can correspond to a method, function, program, subroutine, subroutines, etc. When a process corresponds to a function, its termination can correspond to the function returning from the calling function or the main function.
[0081] The processes and methods described in the examples above can be implemented using computer-executable instructions stored in or otherwise obtainable from a computer-readable medium. For example, such instructions may include instructions and data that cause a general-purpose computer, special-purpose computer, or processing device to perform a function or group of functions, or otherwise configure a general-purpose computer, special-purpose computer, or processing device. A portion of the computer resources used may be accessible via a network. The computer-executable instructions may be, for example, binary files, intermediate format instructions (such as assembly language, firmware, source code, etc.). Examples of computer-readable media that may be used to store instructions, information used, and / or information created during the methods according to the examples include disks or optical discs, flash memory, USB devices equipped with non-volatile memory, networked storage devices, etc.
[0082] In the above description of the accompanying drawings, any component described with respect to the drawings in the various embodiments described herein may be equivalent to one or more components with the same or similar names and / or numbers described with respect to any other drawing. 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 optionally exist in each other drawing having one or more components with the same or similar names and / or numbers. Furthermore, any description of the components of the drawings according to the various embodiments described herein should be interpreted as an optional embodiment that may be implemented in combination with, or in place of, the embodiments described with respect to one or more corresponding components with the same or similar names and / or numbers in any other drawing, in addition to the embodiments described with respect to one or more corresponding components with the same or similar names and / or numbers in any other drawing.
[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 a single element unless explicitly stated otherwise, such as through the use of terms like “before,” “after,” “single,” and other such terms. Rather, ordinal numbers are used to distinguish elements. For example, the first element is different from the second element, and the first element may contain more than one element and be after (or before) the second element in the element order.
[0084] As used herein, the phrase "operably connected" or "operably linked" means that there is a direct or indirect connection between elements / components / devices that allows the elements to interact in some way. For example, the phrase "operably connected" can refer to any direct (e.g., a direct wire between two devices or components) or indirect (e.g., a wired and / or wireless connection between any number of devices or components that are operably connected) connection. Therefore, any path through which information can pass can be considered an operational connection.
[0085] While the embodiments discussed herein have been described with respect to a limited number of examples, those skilled in the art who benefit from this disclosure will understand that other embodiments can be designed without departing from the scope of the embodiments disclosed herein. Therefore, the scope of the embodiments described herein should be limited only by the appended claims.
Claims
1. An apparatus for cloud-based applications, 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: Cloud-based applications are obtained from a localized framework that executes on one or more processors; The localization framework extracts multiple native language files and multiple internationalization keys corresponding to the multiple native language files from the cloud-based application. The localization framework stores the multiple native language files and the multiple internationalization keys in a translation data repository accessible by the translation service. The localization framework detects multiple non-native language files that correspond to the multiple native language files in the translation data repository; The localization framework performs an initial check on the non-native language files, the initial check including comparing the parameter counts of the plurality of native language files and the plurality of non-native language files to determine whether there is a parameter count match; When the initial test passes, the localization framework generates a test build of the cloud-based application. The localization framework deploys the test build to a test environment in the cloud infrastructure, so that the first verification is performed by the translation service and the second verification is performed by the cloud-based application provider; as well as When the first and second verifications pass, the localization framework generates a production build of the cloud-based application, which includes the non-native language files.
2. The apparatus of claim 1, wherein when the initial check fails, execution of the instruction further causes the one or more processors to send the failure notification to the translation service.
3. The apparatus of claim 1, wherein, in order to perform the initial check, the execution of the instructions further causes the one or more processors to: Use a reserved word file to perform reserved word checks.
4. The apparatus of claim 1, wherein, in response to the plurality of native language files and the plurality of internationalization keys being stored on the translation data repository, the plurality of non-native language files are provided to the translation data repository by the translation service.
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 updates to the mother language files among the plurality of mother language files; and The native language file is replaced with an updated native language file from the translation data repository.
6. The apparatus of claim 1, wherein when the first verification fails, execution of the instruction 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 instruction further causes the one or more processors to send a report to the translation service including details relating to the reason for the failure of the second verification.
8. A computer-implemented method, comprising: Cloud-based applications are derived from localized frameworks that execute on one or more processors; The localization framework extracts multiple native language files and multiple internationalization keys corresponding to the multiple native language files from the cloud-based application. The localization framework stores the multiple native language files and the multiple internationalization keys in a translation data repository accessible by the translation service. The localization framework detects multiple non-native language files that correspond to the multiple native language files in the translation data repository; The localization framework performs an initial check on the non-native language files, the initial check including comparing the parameter counts of the plurality of native language files and the plurality of non-native language files to determine whether there is a parameter count match; When the initial test passes, the localization framework generates a test build of the cloud-based application. The localization framework deploys the test build to a test environment in the cloud infrastructure, so that the first verification is performed by the translation service and the second verification is performed by the cloud-based application provider; as well as When the first and second verifications pass, the localization framework generates a production build of the cloud-based application that includes the non-native language files.
9. The computer-implemented method according to claim 8, further comprising: If the initial check fails, a notification of failure is sent to the translation service.
10. The computer-implemented method of claim 8, wherein the initial test comprises: Use a reserved word file to perform reserved word checks.
11. The computer-implemented method of claim 8, wherein in response to the plurality of native language files and the plurality of internationalization keys being stored on the translation data repository, the plurality of non-native language files are provided to the translation data repository by the translation service.
12. The computer-implemented method according to claim 8, further comprising: Before the multiple non-native language files were detected: Detect updates to the mother language files among the multiple mother language files; as well as The native language file is replaced with an updated native language file from the translation data repository.
13. The computer-implemented method according to claim 8, further comprising: If the initial check fails, an updated translation is requested from the translation service.
14. The computer-implemented method according to 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: Cloud-based applications are obtained from a localized framework that executes on one or more processors; The localization framework extracts multiple native language files and multiple internationalization keys corresponding to the multiple native language files from the cloud-based application. The localization framework stores the multiple native language files and the multiple internationalization keys in a translation data repository accessible by the translation service. The localization framework detects multiple non-native language files that correspond to the multiple native language files in the translation data repository; The localization framework performs an initial check on the non-native language files, the initial check including comparing the parameter counts of the plurality of native language files and the plurality of non-native language files to determine whether there is a parameter count match; When the initial test passes, the localization framework generates a test build of the cloud-based application. The localization framework deploys the test build to a test environment in the cloud infrastructure, so that the first verification is performed by the translation service and the second verification is performed by the cloud-based application provider; as well as When the first and second verifications pass, the localization framework generates a production build of the cloud-based application that includes the non-native language files.
16. The non-transitory computer-readable medium of claim 15, further comprising additional instructions, which, when executed by the one or more processors, cause the one or more processors to send a notification of failure to the translation service when the initial check fails.
17. The non-transitory computer-readable medium of claim 15, wherein, in order to perform the initial check, execution of the instructions further causes the one or more processors to: Use a reserved word file to perform reserved word checks.
18. The non-transitory computer-readable medium of claim 15, wherein, in response to the plurality of native language files and the plurality of internationalization keys being stored on the translation data repository, the plurality of non-native language files are provided to the translation data repository by the translation service.
19. The non-transitory computer-readable medium of claim 15, further comprising additional instructions, which, when executed by the one or more processors, precede the detection of the plurality of non-native language files: Detecting updates to the mother language files among the plurality of mother language files; and Replace the native language file with the updated native language file from the translation data repository.
20. The non-transitory computer-readable medium of claim 15, further comprising additional instructions that, when executed by the one or more processors: When the first verification fails, an updated translation is requested 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.