WO2013113135A1 - Translating application resources - Google Patents

Translating application resources Download PDF

Info

Publication number
WO2013113135A1
WO2013113135A1 PCT/CN2012/000142 CN2012000142W WO2013113135A1 WO 2013113135 A1 WO2013113135 A1 WO 2013113135A1 CN 2012000142 W CN2012000142 W CN 2012000142W WO 2013113135 A1 WO2013113135 A1 WO 2013113135A1
Authority
WO
WIPO (PCT)
Prior art keywords
language
word
user
application
resources
Prior art date
Application number
PCT/CN2012/000142
Other languages
French (fr)
Inventor
Genqing Wu
Hanping Feng
Original Assignee
Google Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Google Inc. filed Critical Google Inc.
Priority to EP12867194.8A priority Critical patent/EP2810160A4/en
Priority to PCT/CN2012/000142 priority patent/WO2013113135A1/en
Priority to CN201280069010.XA priority patent/CN104169872B/en
Publication of WO2013113135A1 publication Critical patent/WO2013113135A1/en
Priority to US14/714,041 priority patent/US9805027B2/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • G06F9/454Multi-language systems; Localisation; Internationalisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/40Processing or translation of natural language
    • G06F40/58Use of machine translation, e.g. for multi-lingual retrieval, for server-side translation for client devices or for real-time translation

Definitions

  • This disclosure relates generally to the translation of computer applications.
  • a system includes an identification module, a translation module, and a display module.
  • the identification module being configured to identify when an application running within the system attempts to display a word to a user of the application in a first language.
  • the translation module being configured to translate the word from the first language to a second language different than the first language.
  • the display module being configured to display the work in the second language to the user.
  • a method includes (1) identifying when an application attempts to display a word to a user of the application, the word being in a first language; (2) translating the word attempted to be displayed to the user from the first language to a second language, the second language being different than the first language; and (3) displaying the word in the second language to the user.
  • a computer program product the computer program product is tangibly embodied on a computer-readable medium and includes instructions that, when executed, are configured to cause at least one processor to (1) identify when an application attempts to display a word to a user of the application, the word being in a first language; (2) translate the word attempted to be displayed to the user from the first language to a second language, the second language being different than the first language; and (3) display the word in the second language to the user.
  • a method performed by a computing device having at least one processor and a memory includes receiving, from an application being executed by the at least one processor, a request to provide a first word for use by the application, wherein: the application is published by an entity, and the application is associated with one or more resources that are stored in the memory of the computing device and that are published by the entity; determining a default language of the computing device; accessing, in the memory of the computing device, the one or more resources; determining if the one or more resources include the first word in the default language; if the one or more resources include the first word in the default language, then providing the first word to the application; and if the one or more resources do not include the first word in the default language, then: transmitting the first word and an indication of the default language to a translation server; receiving from the translation server a second word obtained by translating the first word into the default language; and providing the second word to the application.
  • a computing device having at least one processor and a memory includes a receiving module configured to receive a request from an application to provide a first word for use by the application, the application being published by an entity and being associated with one or more resources that are stored in the memory of the computing device and that are published by the entity; a first determination module configured to determine a default language of the computing device; an accessing module configured to access the one or more resources; a second determination module configured to determine if the one or more resources include the first word in the default language; and a transmitting module, the display module configured to transmit the first word in the default language to the application if the one or more resources include the first word in the default language, the transmitting module configured to transmit the first word and an indication of the default language to a translation server, receive from the translation server a second word obtained by translating the first word into the default language, and transmit the second word to the application.
  • a computer program product is tangibly embodied on a computer readable medium and comprising instructions that, if executed, cause at least one processor of a computing device to receive, from an application being executed by the at least one processor, a request to provide a first word for use by the application, wherein: the application is published by an entity, and the application is associated with one or more resources that are stored in a memory of the computing device and that are published by the entity; determine a default language of the computing device; access, in the memory of the computing device, the one or more resources; determine if the one or more resources include the first word in the default language; if the one or more resources include the first word in the default language, then provide the first word to the application; and if the one or more resources do not include the first word in the default language, then: transmit the first word and an indication of the default language to a translation server; receive from the translation server a second word obtained by translating the first word into the default language; and provide the second word to the application.
  • a method is performed by a computing device.
  • the method includes identifying, by the computing device, a preferred language of an application executing on the computing device, wherein the application utilizes a word; accessing one or more resources of the application;
  • determining that the one or more resources do not include the word in the preferred language determining that the one or more resources do not include the word in the preferred language; and transmitting the word and an indication of the preferred language to a computing system.
  • a computing device includes an identification module configured to identify a preferred language of an application executing on the computing device, wherein the application utilizes a word; an accessing module configured to access one or more resources of the application; a determination module configured to determine that the one or more resources do not include the word in the preferred language; and a transmitting module configured to transmit the word and an indication of the preferred language to a computing system.
  • a computer program product tangibly embodied on a computer readable medium and comprising instructions that, if executed, cause at least one processor of a computing device to identify a preferred language of an application executing on the computing device, wherein the application utilizes a word; access one or more resources of the application; determine that the one or more resources do not include the word in the preferred language; and transmit the word and an indication of the preferred language to a computing system.
  • a method is performed by a computing device.
  • the method includes receiving an application to be run on a computing device from a first entity, the application including at least one resource that includes a word in a first language; receiving a request from a second entity to download the application, the second entity having a preferred language, the preferred language being different than the first language; and translating the word from the first language to the preferred language.
  • FIG. 1 is a block diagram of a system for translating information provided by an application according to an implementation.
  • FIG. 2 is a flowchart illustrating example operations of a computer program product according to an implementation.
  • FIG. 3 is a flowchart illustrating example operations of a computer program product according to an implementation.
  • FIG. 4 is a screen shot of an application displaying a user interface.
  • FIG. 5 is a flow chart illustrating a method for displaying text of an application or computer program according to an implementation.
  • FIG. 6 is a block diagram of a system according to an implementation.
  • FIG. 7 is a flowchart illustrating example operations of a computer program product according to an implementation.
  • FIG. 8 is a block diagram of a system according to an implementation.
  • FIG. 9 is a flowchart illustrating example operations of a computer program product according to an implementation.
  • FIG. 10 is a flowchart illustrating example operations of a computer program product according to an implementation.
  • FIG. 1 is a block diagram of a system 100 for translating information provided by an application according to an implementation.
  • the system 100 may be used by users or consumers to run or execute programs or applications.
  • the system 100 may be or may be incorporated into a computing device such as a handheld computing device or a personal computer.
  • application and computer program developers may develop applications or computer programs for running or executing on or within the system 100.
  • the applications or computer programs are configured to communicate via a written language or written words with users of the applications or computer programs.
  • the system 100 is configured to translate the words that an application or computer program attempts to provide to a user.
  • the system 100 includes an identification module 110, a translation module 120, a display module 130, and a determination module 140.
  • one or more of the components or modules of the system 100 or other systems or computing devices disclosed herein can be, or can include, a hardware-based module (e.g., a digital signal processor (DSP), a field programmable gate array (FPGA), a memory), a firmware module, and/or a software-based module (e.g., a module of computer code, a set of computer-readable instructions that can be executed by a computer).
  • the identification module 110 can be, or can include, a software module configured for execution by at least one processor (not shown).
  • the translation module 120 can be, or can include, a software module configured for execution by at least one processor (not shown).
  • the functionality of the modules or components can be included in different modules and/or components than those shown in FIG. 1.
  • the functionality of the identification module 110 can be included in a different module than the identification module 110, or can be divided into several different modules.
  • the identification module 110 is operative ly coupled to the application 105 and to the determination module 140.
  • the identification module 110 is configured to identify when the application is attempting to communicate with the user in a language other than a language that is understood or preferred by the user. For example, if the user prefers to communicate in Japanese and the application 105 is attempting to display words in English to the user, the identification module would identify such inconsistency or difference.
  • the translation module 120 is operatively coupled to the identification module 110.
  • the translation module 120 is configured to translate words or words that the application 105 is attempting to display to the user U.
  • the translation module 130 is configured to translate the word or words into a number of different languages (such as Chinese, Japanese, German, Spanish, etc.).
  • the translation module 120 includes software configured to translate the word or words. In other implementations, the translation module 120 is configured to communicate with a third-party (such as via a network) to request or otherwise acquire a translation of the word or words.
  • a third-party such as via a network
  • the translation module 120 is operatively coupled to the display module 130.
  • the display module 130 is configured to provide an output to the user U.
  • the display module 130 is configured to provide a visual output to the user U, such as via a display screen.
  • the display module 130 is configured to output the word or words that have been translated by the translation module 120.
  • the determination module 140 is configured to determine a preferred language of the user U. For example, in some implementations, the determination module 140 is configured to determine the native language of a user U. In some implementations, the determination module 140 is configured to determine the preferred language of the user by determining the location (such as the country) of the user and basing the preferred language determination on the language used that location or country. In some implementations, the determination module 140 is configured to determine the preferred language of the user U based on setting of the device, system, or application as set by the user U.
  • the determination module 140 includes a query module 142 and a receiving module 144.
  • the query module 142 is configured to provide a query to the user.
  • the query requests that the user U provide an indication of the preferred language of the user U.
  • the receiving module 144 is configured to receive the response to the query as provided by the user U.
  • the operating system or platform of the device or system 100 is configured to recognize or identify when a program or application is communicating with the user using written words. For example, in some implementations, the operating system is configured to recognize when a program or application 105 is attempting to provide a menu or other user interface item to the user. The operating system or platform may then be configured to identify the language of the menu or other user interface item and may provide a translated menu or other user interface item to the application (for providing to the user) or directly to the user. In some implementations, the operating system or platform is configured to communicate with a third party translation service to acquire the necessary translations of the menus or other user interface items. In other
  • the operating system or platform may itself be configured to translate the menu or other user interface items.
  • the program or application 105 may be configured to provide a request to the operating system or to the platform to provide a translation of menu or other user interface items.
  • a secondary program or application may be active and may be configured to identify or recognize when a primary program or application is attempting to communicate with the user of the device using written words.
  • the secondary program or application may be configured to interrupt the communication between the primary program and the user.
  • the secondary program may then communicate with a third party translation service to acquire any necessary translation or may provide the translation function.
  • the secondary application may then provide the translated menus or other user interface items to the primary program or application 105 (for providing to the user) or may provide the translations directly to the user.
  • FIG. 2 is a flow chart illustrating a method 200 according to an implementation.
  • the method 200 allows users of an application or computer program to communicate or interact with the application or computer program in a preferred language of the user. For example, if an application or a computer program is attempting to communicate with the user via a display that would include a word or words in a language that is not preferred by the user or a native language of the user, the method 200 may be used to translate such word or words to a language that is preferred by the user prior to displaying the word or words to the user.
  • a computer program product is tangibly embodied on a computer-readable medium and includes instructions that, when executed, are configured to cause at least one processor to implement the method 200.
  • the application or computer program product is prevented from providing the display to the user.
  • the application or computer program product is interrupted.
  • the system of the device such as a hand-held device or a personal computer
  • the system of the device may interrupt or intercept the attempt by the application or computer program product to provide a display to the user.
  • the word or words of the display are not in the language of the user, then at 240, it is determined whether the user allows for the translation of the word or words. If the user does allow for the translation of the search results, then at 250, the word or words are translated and at 260, the translated display (with the translated word or words) is provided to the user. If the user does not allow for the translation of the word or words, then the translation is not performed and the word or words in the original language are provided to the user.
  • a user may adjust or set a setting to indicate whether the user desires or allows for the translation of the search results.
  • the user may provide an indication of a preferred language of the user.
  • a prompt or request may be provided to the user to allow the user to indicate whether the user desires that the search results be translated.
  • FIG. 3 is a flow chart illustrating a method 300 according to an implementation.
  • the method 300 allows users of an application or computer program to communicate or interact with the application or computer program in a preferred language of the user of the device.
  • FIG. 4 illustrates a screen shot of an application that provides words or communicates with the user of the device in multiple languages (which may not be understood by the user of the device). For example, if an application or a computer program is attempting to communicate with the user via a display that would include a word or words in a language that is not preferred or understood by the user or a native language of the user, the method 300 may be used to translate such word or words to a language that is preferred by the user prior to displaying the word or words to the user.
  • a computer program product that is tangibly embodied on a computer-readable medium and includes instructions, that when executed, are configured to cause at least one processor to implement the method 300.
  • the method includes identifying when an application or a computer program is attempting to provide a display to a user that includes a word that is in a language that differs from a preferred or native language of the user.
  • a publicly available resource such as a resource available via the Internet, is used to determine the language of the word or words that the application or computer program is attempting to display to the user.
  • the operating system or platform of the device is configured to recognize or identify when a program or application is communicating with the user using written words. For example, in some implementations, in some
  • the operating system is configured to recognize when a program or application is attempting to provide a menu or other user interface item to the user.
  • the operating system or platform may then be configured to identify the language of the menu or other user interface item and may provide a translated menu or other user interface item to the application (for providing to the user) or directly to the user.
  • the operating system or platform is configured to
  • the operating system or platform may itself be configured to translate the menu or other user interface items.
  • the program or application may be configured to provide a request to the operating system or to the platform to provide a translation of menu or other user interface items.
  • a secondary program or application may be active and may be configured to identify or recognize when a primary program or application is attempting to communicate with the user of the device using written words.
  • the secondary program or application may be configured to interrupt the communication between the primary program and the user.
  • the secondary program may then communicate with a third party translation service to acquire any necessary translation or may provide the translation function.
  • the secondary application may then provide the translated menus or other user interface items to the primary program or application (for providing to the user) or may provide the translations directly to the user.
  • the user provides an indication of the preferred language of the user.
  • the method 300 includes requesting the user for an indication of the preferred language.
  • the preferred language is the native language of the user.
  • the application or computer program is interrupted from providing the display with the word in its original language to the user.
  • an operating system or other program of the device of the user interrupts the application or computer program from providing the display with the word in its original language to the user.
  • the word of the display that is not in the preferred language of the user is translated. For example, if the preferred language of the user is Chinese and the original language of the word is English, the word would be translated to Chinese.
  • a publicly available translation service may be used to translate the word.
  • a translation service available via the Internet may be used to translate the word to the preferred language of the user.
  • the display including the translated word is provided to the user.
  • FIG. 5 is a flow chart for a method 500 for displaying text of an application or computer program, such as a menu, in a different language according to an implementation.
  • resource-based text strings many be translated and displayed to the user of the device.
  • Menultem item menu.add (menuTitle);
  • R.string.menu title may be as below.
  • the method 500 may be used to display the menu in a preferred language of the user of the device.
  • the local resource such as values/string.xml
  • the resource directories for the given resource are located.
  • the resource files that contradict the device configuration are eliminated.
  • qualifiers are identified.
  • resource directories that do not include the specified qualifier are eliminated. Items 516 and 518 are repeated until only one directory remains, such as
  • the platform of the device may determine or detect whether auto translation has been requested. If it has not, the process is completed. If auto translation has been requested, then at 530, it is determined or detected whether the language of the local resource is the same as the user's preferred language. If it is, then the process is done. If it is not, then at 540, a translation service may be used to translate the resource. For example, the translation service may be used to translate the string of the resource (which is in any language) to the preferred language of the user (any other language).
  • the translation service may be a program run on the device itself or a device may communicate with a third party translation service, such as a translation service accessible via the Internet.
  • the device is configured to identify or detect the preferred language of the user. For example, in some implementations, the user may be requested to provide a preferred language. In other implementations, the device is configured to detect to the location or locale of the user and selects the language of the location or locale of the user as the user's preferred language.
  • the application programming interface may be changed or modified to support the method of 500.
  • the API may be modified as follows.
  • the text strings or resources identify a language.
  • the text strings or resources identify the language of the text string.
  • the device, application, or program includes an identifier that is configured to identify the default language of the text strings.
  • the application or program includes a cache of language translations for the text strings of the application.
  • the translated text string may be looked up or identified rather than performing a new translation of the text string.
  • the application or the platform of the device includes an option to enable or disable the auto translate feature.
  • the user may determine whether the application or program should provide the translated text strings.
  • the developer of the application or program can specify a target language or more than one target languages.
  • the resources and text strings can then all be translated into all of the target languages.
  • an actual translation of the resources or text strings does not need to be done during run time of the application.
  • text strings located within the code of the application or the computer program may be translated.
  • the text string to be displayed may be as follows.
  • the API may be modified as follows.
  • the parameter "language" may specify the language of the given string. If the language of the string is not specified then a translation service may analyze the string and provide the language. If the language of the string is not the same as the preferred language of the user, the application or computer program may contact a translation service (such as via the Internet) to have the string translated into the preferred language. The string in the preferred language of the user may then be displayed or rendered to the user.
  • a translation service such as via the Internet
  • the platform of the device exposes the developers of the applications or computer programs to the translation services.
  • the developers of the application or computer programs may use the translation services as desired.
  • a system such as a computer system or computing device, 600 includes a processor 610 and a memory 620.
  • the system also includes a receiving module 630, a first determination module 640, an accessing module 650, a second determination module 660, and a transmitting module 670.
  • the receiving module 630 is configured to receive a request from an application to provide a first word for use by the application.
  • the application may be stored in the memory 620.
  • the application may be requesting the word so that the word may be displayed or presented to a user of the system or device 600.
  • the application is published or distributed or otherwise provided to the device 600 by an entity.
  • the application may be associated with resources, such as text files or code, such as compiled code, that are stored in the memory 620.
  • the first word requested by the application may be a word that is located in or associated with one of the resources.
  • the resources are also published or distributed by the entity that provided the application.
  • the receiving module 630 is operatively coupled to the first determination module 640.
  • the first determination module 640 is configured to determine the default language of the system or computing device 600. In some implementations, the first determination module 640 is configured to identify the default language via a setting in the device or system 600. In other implementations, the first determination module 640 is configured provide a query to a user of the device 600 to determine the default or preferred language.
  • the accessing module 650 is configured to access the resources of the application.
  • the resources may be located in compiled code or stored in text type files.
  • the second determination module 660 is configured to determine whether the resources of the application include the word or words in the default or preferred language.
  • the transmitting module 670 is configured to transmit the word or words to the application.
  • the transmitting module 670 is configured to provide the translation of the word or words to the application.
  • the transmitting module 670 is configured to transmit the word or words and an indication of the default or preferred language to a translation server, such as a translation server or service that is publicly available via the Internet.
  • the transmitting module 670 is also configured to receive the result of the translation and provide such results (the translated word or words) to the application.
  • FIG. 7 is a flow chart of a method 700 according to an implementation.
  • the method 700 may be performed by a computing device that includes at least one processor and a memory.
  • the method 700 includes at 710 receiving a request to provide a word for use by an application.
  • the application is being executed on the processor of the device.
  • the application is published or distributed by an entity and is associated with resources, such as compiled code or text files, that are also published or provided by the entity.
  • the resources associated with the application are stored in the memory of the device 700.
  • the one or more resources that include the requested word is accessed in the memory of the device.
  • this determination includes determining the default or preferred language of the device.
  • the method includes providing a query to a user of the device to request or determine the default or preferred language of the device (or user of the device).
  • the word is transmitted or provided to the application.
  • the word is provided to the application.
  • the word is translated into the default language and that word (a second word) is provided to the application.
  • the method 700 includes transmitting the first word and an indication of the default language to a translation server or service.
  • a the first word and an indication of the default language may be provided to a translation service via the Internet.
  • the method 700 also includes receiving from the translation service or sever the second word (the results of the first word being translated to the default language), and providing the second word to the application.
  • a system or computing device 800 includes an identification module 810, an accessing module 820, a determination module 830, and a transmitting module 840.
  • the system 800 may also include one or more processors and one or more memories.
  • the identification module 810 is configured to identify a default or preferred language of an application that is executing on the device 800.
  • the application utilizes a word or words.
  • the application may communicate with a user of the device 800 by displaying a word or words on a display of the device.
  • the word or words may be located in code of the application or they may be located and stored in other resources used by the application, such as text files.
  • the accessing module 820 is configured access the one or more resources used by the application that is being executed on the device 800.
  • the determination module 830 is configured to determine whether the word or words are in the default or preferred language of the device 800. If the word or words are not in the default or preferred language, the transmitting module 840 is configured to transmit the word or words and an indication of the preferred language. For example, in some implementations, the word or words and the preferred or default language may be transmitted to a system, such as a computing system, that is configured to translate the word or words to the preferred or default language. In some
  • the word in the preferred language is stored in a memory or cache of the computing device.
  • system 800 is configured to determine whether the word or words should be automatically translated into the preferred language.
  • FIG. 9 is a flow chart of a method 900 according to an implementation.
  • the method 900 may be performed by a computing device.
  • the method 900 includes at 910, identifying a preferred language of an application executing on the computing device.
  • the application utilizes a word.
  • the application utilizes a word to communicate with a user of the computing device (for example, by displaying the word to the user of the computing device).
  • the application is associated with one or more resources.
  • the one or more resources may include the word or words that are utilized by the application.
  • the one or more resources are compiled code or text files stored in a memory of the device.
  • the one or more resources of the application are accessed.
  • the method includes providing a query to the user to determine the preferred language.
  • the word and an indication of the preferred language are provided to a computing system.
  • the word and the indication of the preferred language are provided to allow for a translation of the word into the preferred language.
  • the computing system is a local computing system. In other implementations, the computing system is a remote computing system and the word and the indication of the preferred language may be transmitted via the Internet.
  • the method 900 includes determining whether a memory or a cache of the computing system includes the word in the preferred language.
  • the translation of the text or text strings to be displayed to a user of the device may be done at the time of compiling, the time of release, the time of download, or the time of management.
  • the translation of the text is done at the time of compiling.
  • a developer of an application or computer program may provide the default resource and its language information.
  • the developer can specify several languages.
  • the compiler can then automatically translate the default resource into the specified languages and package them into the binary so that when a user with a preferred language that matches a target language uses the application, the application provides or displays to the user the text in the preferred language of the user.
  • a network connection is not required at runtime.
  • the translation of the text is done at the time of release. Similar to the above, the developer may specify the target languages when the application or computer program is released to the market. In such an
  • the extra resource package may be signed by a market holder instead of the developer.
  • the translation of the text or strings of text may be translated at the time an application or computer program is downloaded by a user.
  • the marketplace or marketplace provider can detect whether the user's preferred language is natively supported by the application. If the preferred language of the user is not supported by the application, the marketplace or marketplace provider can prompt the user that the application can be translated to his language (or more languages can be specified). The user may then accept the suggestion and the related resources will be downloaded or translated into the preferred language of the user and downloaded.
  • FIG. 10 is a flow chart of a method 1000 according to an implementation.
  • the method 1000 may be performed on computing device that has one or more processors and one or more memories.
  • the method includes, at 1010, receiving an application to be run on a computing device from a first entity.
  • a computing system may include a receiving module that is configured to receive the application from the first entity.
  • the application includes at least one resource that has a word in a first language.
  • the resource may be compiled code. In other implementations, the resource may be a text file. In some implementations, the application uses the word to communicate with a user of the application.
  • a request is received from a second entity to download the application.
  • the second entity may be a different entity or individual than the first entity.
  • the second entity has a preferred language, such as the primary language spoken or understood by the second entity.
  • the computing system includes a second receiving module configured to receive the request from the second entity.
  • the second receiving module may be a component of a marketplace that is configured to provide or distribute application to consumers.
  • the word is translated from the first language to the preferred language.
  • the method includes translating the word from the first language to the second language locally.
  • translation software may be executed on the computing device to translate the word from the first language to the preferred language.
  • the word and an indication of the preferred language may be transmitted to a translation service or server, such as via the Internet.
  • the method 1000 includes providing a query to a user to the second entity to determine whether the word should be translated into the preferred language.
  • the text or text strings may be translated at management time.
  • an application manager or provider can specify a target language (or more than one language) for an application.
  • the application manager or provider may request that the text or text strings be translated offline. In such an implementation, the translation is not done at runtime.
  • Implementations of the various techniques described herein may be implemented in digital electronic circuitry, or in computer hardware, firmware, software, or in combinations of them.
  • Implementations may implemented as a computer program product, i.e., a computer program tangibly embodied in an information carrier, e.g., in a machine-readable storage device (computer-readable medium) or in a propagated signal, for processing by, or to control the operation of, data processing apparatus, e.g., a programmable processor, a computer, or multiple computers.
  • a computer program such as the computer program(s) described above, can be written in any form of programming language, including compiled or interpreted languages, and can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment.
  • a computer program can be deployed to be processed on one computer or on multiple computers at one site or distributed across multiple sites and interconnected by a communication network.
  • Method steps may be performed by one or more programmable processors executing a computer program to perform functions by operating on input data and generating output. Method steps also may be performed by, and an apparatus may be implemented as, special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application-specific integrated circuit).
  • FPGA field programmable gate array
  • ASIC application-specific integrated circuit
  • processors suitable for the processing of a computer program include, by way of example, both general and special purpose microprocessors, and any one or more processors of any kind of digital computer.
  • a processor will receive instructions and data from a read-only memory or a random access memory or both.
  • Elements of a computer may include at least one processor for executing instructions and one or more memory devices for storing instructions and data.
  • a computer also may include, or be operatively coupled to receive data from or transfer data to, or both, one or more mass storage devices for storing data, e.g., magnetic, magneto-optical disks, or optical disks.
  • Information carriers suitable for embodying computer program instructions and data include all forms of non-volatile memory, including by way of example semiconductor memory devices, e.g., EP OM,
  • EEPPvOM electrically erasable programmable read-only memory
  • flash memory devices magnetic disks, e.g., internal hard disks or removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks.
  • the processor and the memory may be supplemented by, or incorporated in special purpose logic circuitry.
  • implementations may be implemented on a computer having a display device, e.g., a cathode ray tube (CRT) or liquid crystal display (LCD) monitor, for displaying information to the user and a keyboard and a pointing device, e.g., a mouse or a trackball, by which the user ca provide input to the computer.
  • a display device e.g., a cathode ray tube (CRT) or liquid crystal display (LCD) monitor
  • keyboard and a pointing device e.g., a mouse or a trackball
  • Other kinds of devices can be used to provide for interaction with a user as well; for example, feedback provided to the user can be any form of sensory feedback, e.g., visual feedback, auditory feedback, or tactile feedback; and input from the user can be received in any form, including acoustic, speech, or tactile input.
  • Implementations may be implemented in a computing system that includes a back-end component, e.g., as a data server, or that includes a middleware component, e.g., an application server, or that includes a front-end component, e.g., a client computer having a graphical user interface or a Web browser through which a user can interact with an implementation, or any combination of such back-end, middleware, or front-end components.
  • Components may be interconnected by any form or medium of digital data communication, e.g., a communication network.
  • Examples of communication networks include a local area network (LAN) and a wide area network (WAN), e.g., the Internet.
  • LAN local area network
  • WAN wide area network

Abstract

According to one general aspect a system includes an identification module, a translation module, and a display module. The identification module being configured to identify when an application running within the system attempts to display a work to a user of the application in a first language. The translation module being configured to translate the word from the first language to a second language different than the first language. The display module being configured to display the word in the second language to the user.

Description

TRANSLATING APPLICATION RESOURCES
TECHNICAL FIELD
[0001] This disclosure relates generally to the translation of computer applications.
BACKGROUND
[0002] Many computer applications or computer programs are commercially available to users. For example, many people own mobile devices, such as smartphones, that are able to run computer applications.
[0003] Many of the computer applications or computer programs, however, are not available in more than a few languages. For example, many computer applications or computer programs are only available in the native language of the developer of a particular program. Accordingly, not all computer applications or computer programs are readily usable by all people. For example, a computer program or computer application that required the use of or interacted with a user in only English might not be usable by a person who does not understand English.
[0004] Accordingly, there is a need to provide a system that translates computer applications for use of the applications by users of different languages.
SUMMARY
[0005] According to one general aspect, a system includes an identification module, a translation module, and a display module. The identification module being configured to identify when an application running within the system attempts to display a word to a user of the application in a first language. The translation module being configured to translate the word from the first language to a second language different than the first language. The display module being configured to display the work in the second language to the user. [0006] According to another general aspect, a method includes (1) identifying when an application attempts to display a word to a user of the application, the word being in a first language; (2) translating the word attempted to be displayed to the user from the first language to a second language, the second language being different than the first language; and (3) displaying the word in the second language to the user.
[0007] According to another general aspect, a computer program product, the computer program product is tangibly embodied on a computer-readable medium and includes instructions that, when executed, are configured to cause at least one processor to (1) identify when an application attempts to display a word to a user of the application, the word being in a first language; (2) translate the word attempted to be displayed to the user from the first language to a second language, the second language being different than the first language; and (3) display the word in the second language to the user. According to another general aspect, a method performed by a computing device having at least one processor and a memory, includes receiving, from an application being executed by the at least one processor, a request to provide a first word for use by the application, wherein: the application is published by an entity, and the application is associated with one or more resources that are stored in the memory of the computing device and that are published by the entity; determining a default language of the computing device; accessing, in the memory of the computing device, the one or more resources; determining if the one or more resources include the first word in the default language; if the one or more resources include the first word in the default language, then providing the first word to the application; and if the one or more resources do not include the first word in the default language, then: transmitting the first word and an indication of the default language to a translation server; receiving from the translation server a second word obtained by translating the first word into the default language; and providing the second word to the application.
[0008] According to another general aspect, a computing device having at least one processor and a memory includes a receiving module configured to receive a request from an application to provide a first word for use by the application, the application being published by an entity and being associated with one or more resources that are stored in the memory of the computing device and that are published by the entity; a first determination module configured to determine a default language of the computing device; an accessing module configured to access the one or more resources; a second determination module configured to determine if the one or more resources include the first word in the default language; and a transmitting module, the display module configured to transmit the first word in the default language to the application if the one or more resources include the first word in the default language, the transmitting module configured to transmit the first word and an indication of the default language to a translation server, receive from the translation server a second word obtained by translating the first word into the default language, and transmit the second word to the application.
[0009] According to another general aspect, a computer program product is tangibly embodied on a computer readable medium and comprising instructions that, if executed, cause at least one processor of a computing device to receive, from an application being executed by the at least one processor, a request to provide a first word for use by the application, wherein: the application is published by an entity, and the application is associated with one or more resources that are stored in a memory of the computing device and that are published by the entity; determine a default language of the computing device; access, in the memory of the computing device, the one or more resources; determine if the one or more resources include the first word in the default language; if the one or more resources include the first word in the default language, then provide the first word to the application; and if the one or more resources do not include the first word in the default language, then: transmit the first word and an indication of the default language to a translation server; receive from the translation server a second word obtained by translating the first word into the default language; and provide the second word to the application.
[0010] According to another general aspect, a method is performed by a computing device. The method includes identifying, by the computing device, a preferred language of an application executing on the computing device, wherein the application utilizes a word; accessing one or more resources of the application;
determining that the one or more resources do not include the word in the preferred language; and transmitting the word and an indication of the preferred language to a computing system.
[0011] According to another general aspect, a computing device, includes an identification module configured to identify a preferred language of an application executing on the computing device, wherein the application utilizes a word; an accessing module configured to access one or more resources of the application; a determination module configured to determine that the one or more resources do not include the word in the preferred language; and a transmitting module configured to transmit the word and an indication of the preferred language to a computing system.
[0012] According to another general aspect, a computer program product tangibly embodied on a computer readable medium and comprising instructions that, if executed, cause at least one processor of a computing device to identify a preferred language of an application executing on the computing device, wherein the application utilizes a word; access one or more resources of the application; determine that the one or more resources do not include the word in the preferred language; and transmit the word and an indication of the preferred language to a computing system.
[0013] According to another general aspect, a method is performed by a computing device. The method includes receiving an application to be run on a computing device from a first entity, the application including at least one resource that includes a word in a first language; receiving a request from a second entity to download the application, the second entity having a preferred language, the preferred language being different than the first language; and translating the word from the first language to the preferred language.
[0014] The details of one or more implementations are set forth in the accompanying drawings and the description below. Other features will be apparent from the description and drawings, and from the claims.
BRIEF DESCRIPTION OF THE DRAWINGS
[0015] FIG. 1 is a block diagram of a system for translating information provided by an application according to an implementation.
[0016] FIG. 2 is a flowchart illustrating example operations of a computer program product according to an implementation.
[0017] FIG. 3 is a flowchart illustrating example operations of a computer program product according to an implementation.
[0018] FIG. 4 is a screen shot of an application displaying a user interface.
[0019] FIG. 5 is a flow chart illustrating a method for displaying text of an application or computer program according to an implementation.
[0020] FIG. 6 is a block diagram of a system according to an implementation. [0021] FIG. 7 is a flowchart illustrating example operations of a computer program product according to an implementation.
[0022] FIG. 8 is a block diagram of a system according to an implementation.
[0023] FIG. 9 is a flowchart illustrating example operations of a computer program product according to an implementation.
[0024] FIG. 10 is a flowchart illustrating example operations of a computer program product according to an implementation.
DETAILED DESCRIPTION
[0025] FIG. 1 is a block diagram of a system 100 for translating information provided by an application according to an implementation. The system 100 may be used by users or consumers to run or execute programs or applications. For example, the system 100 may be or may be incorporated into a computing device such as a handheld computing device or a personal computer.
[0026] In some implementations, application and computer program developers may develop applications or computer programs for running or executing on or within the system 100. In some implementations, the applications or computer programs are configured to communicate via a written language or written words with users of the applications or computer programs. In some implementations, the system 100 is configured to translate the words that an application or computer program attempts to provide to a user.
[0027] The system 100 includes an identification module 110, a translation module 120, a display module 130, and a determination module 140. In some implementations, one or more of the components or modules of the system 100 or other systems or computing devices disclosed herein can be, or can include, a hardware-based module (e.g., a digital signal processor (DSP), a field programmable gate array (FPGA), a memory), a firmware module, and/or a software-based module (e.g., a module of computer code, a set of computer-readable instructions that can be executed by a computer). For example, in some implementations, the identification module 110 can be, or can include, a software module configured for execution by at least one processor (not shown). Similarly, the translation module 120 can be, or can include, a software module configured for execution by at least one processor (not shown). In some implementations, the functionality of the modules or components can be included in different modules and/or components than those shown in FIG. 1. For example, although not shown, the functionality of the identification module 110 can be included in a different module than the identification module 110, or can be divided into several different modules.
[0028] The identification module 110 is operative ly coupled to the application 105 and to the determination module 140. The identification module 110 is configured to identify when the application is attempting to communicate with the user in a language other than a language that is understood or preferred by the user. For example, if the user prefers to communicate in Japanese and the application 105 is attempting to display words in English to the user, the identification module would identify such inconsistency or difference.
[0029] The translation module 120 is operatively coupled to the identification module 110. The translation module 120 is configured to translate words or words that the application 105 is attempting to display to the user U. For example, in some implementations, the translation module 130 is configured to translate the word or words into a number of different languages (such as Chinese, Japanese, German, Spanish, etc.).
[0030] In some implementations, the translation module 120 includes software configured to translate the word or words. In other implementations, the translation module 120 is configured to communicate with a third-party (such as via a network) to request or otherwise acquire a translation of the word or words.
[0031] The translation module 120 is operatively coupled to the display module 130. The display module 130 is configured to provide an output to the user U. For example, in some implementations, the display module 130 is configured to provide a visual output to the user U, such as via a display screen. In some
implementations, the display module 130 is configured to output the word or words that have been translated by the translation module 120.
[0032] The determination module 140 is configured to determine a preferred language of the user U. For example, in some implementations, the determination module 140 is configured to determine the native language of a user U. In some implementations, the determination module 140 is configured to determine the preferred language of the user by determining the location (such as the country) of the user and basing the preferred language determination on the language used that location or country. In some implementations, the determination module 140 is configured to determine the preferred language of the user U based on setting of the device, system, or application as set by the user U.
[0033] In some implementations, the determination module 140 includes a query module 142 and a receiving module 144. The query module 142 is configured to provide a query to the user. In some implementations, the query requests that the user U provide an indication of the preferred language of the user U. In such implementations, the receiving module 144 is configured to receive the response to the query as provided by the user U.
[0034] In some implementations, the operating system or platform of the device or system 100 is configured to recognize or identify when a program or application is communicating with the user using written words. For example, in some implementations, the operating system is configured to recognize when a program or application 105 is attempting to provide a menu or other user interface item to the user. The operating system or platform may then be configured to identify the language of the menu or other user interface item and may provide a translated menu or other user interface item to the application (for providing to the user) or directly to the user. In some implementations, the operating system or platform is configured to communicate with a third party translation service to acquire the necessary translations of the menus or other user interface items. In other
implementations, the operating system or platform may itself be configured to translate the menu or other user interface items.
[0035] In other implementations, the program or application 105 may be configured to provide a request to the operating system or to the platform to provide a translation of menu or other user interface items.
[0036] In other implementations, a secondary program or application may be active and may be configured to identify or recognize when a primary program or application is attempting to communicate with the user of the device using written words. In such implementations, the secondary program or application may be configured to interrupt the communication between the primary program and the user. The secondary program may then communicate with a third party translation service to acquire any necessary translation or may provide the translation function. The secondary application may then provide the translated menus or other user interface items to the primary program or application 105 (for providing to the user) or may provide the translations directly to the user.
[0037] FIG. 2 is a flow chart illustrating a method 200 according to an implementation. In some implementations, the method 200 allows users of an application or computer program to communicate or interact with the application or computer program in a preferred language of the user. For example, if an application or a computer program is attempting to communicate with the user via a display that would include a word or words in a language that is not preferred by the user or a native language of the user, the method 200 may be used to translate such word or words to a language that is preferred by the user prior to displaying the word or words to the user.
[0038] In some implementations, a computer program product is tangibly embodied on a computer-readable medium and includes instructions that, when executed, are configured to cause at least one processor to implement the method 200.
[0039] At 210, a determination is made as to whether an application or computer program product is attempting to provide a display to a user. For example, at 210, the method identifies when an application or computer program product is attempting to provide a display that includes a word or a set of words to a user. For example, at 210, the method identifies the application if the application or computer program is attempting to communicate or interact with a user by providing a query to the user or if the application or computer program product is providing verbal instructions or information to the user.
[0040] At 220, the application or computer program product is prevented from providing the display to the user. For example, in some implementations, the application or computer program product is interrupted. Specifically, in some implementations, the system of the device (such as a hand-held device or a personal computer) of the user or another application or computer program may interrupt or intercept the attempt by the application or computer program product to provide a display to the user.
[0041] At 230, a determination is made as to whether the language of the word or words that the application is attempting to display to the user is in a preferred language of the user. For example, a determination may be made as to whether the language of the word or words is the native language of the user. In some implementations, a publicly available resource may be used to determine the language of the word or words.
[0042] If the word or words of the display are not in the language of the user, then at 240, it is determined whether the user allows for the translation of the word or words. If the user does allow for the translation of the search results, then at 250, the word or words are translated and at 260, the translated display (with the translated word or words) is provided to the user. If the user does not allow for the translation of the word or words, then the translation is not performed and the word or words in the original language are provided to the user.
[0043] In some implementations, a user may adjust or set a setting to indicate whether the user desires or allows for the translation of the search results.
Additionally, in some implementations, the user may provide an indication of a preferred language of the user. In other implementations, a prompt or request may be provided to the user to allow the user to indicate whether the user desires that the search results be translated.
[0044] FIG. 3 is a flow chart illustrating a method 300 according to an implementation. In some implementations, the method 300 allows users of an application or computer program to communicate or interact with the application or computer program in a preferred language of the user of the device. FIG. 4 illustrates a screen shot of an application that provides words or communicates with the user of the device in multiple languages (which may not be understood by the user of the device). For example, if an application or a computer program is attempting to communicate with the user via a display that would include a word or words in a language that is not preferred or understood by the user or a native language of the user, the method 300 may be used to translate such word or words to a language that is preferred by the user prior to displaying the word or words to the user.
[0045] In some implementations, a computer program product that is tangibly embodied on a computer-readable medium and includes instructions, that when executed, are configured to cause at least one processor to implement the method 300.
[0046] At 310, the method includes identifying when an application or a computer program is attempting to provide a display to a user that includes a word that is in a language that differs from a preferred or native language of the user. In some implementations, a publicly available resource, such as a resource available via the Internet, is used to determine the language of the word or words that the application or computer program is attempting to display to the user.
[0047] In some implementations, the operating system or platform of the device is configured to recognize or identify when a program or application is communicating with the user using written words. For example, in some
implementations, the operating system is configured to recognize when a program or application is attempting to provide a menu or other user interface item to the user. The operating system or platform may then be configured to identify the language of the menu or other user interface item and may provide a translated menu or other user interface item to the application (for providing to the user) or directly to the user. In some implementations, the operating system or platform is configured to
communicate with a third party translation service to acquire the necessary translations of the menus or other user interface items. In other implementations, the operating system or platform may itself be configured to translate the menu or other user interface items.
[0048] In other implementations, the program or application may be configured to provide a request to the operating system or to the platform to provide a translation of menu or other user interface items.
[0049] In other implementations, a secondary program or application may be active and may be configured to identify or recognize when a primary program or application is attempting to communicate with the user of the device using written words. In such implementations, the secondary program or application may be configured to interrupt the communication between the primary program and the user. The secondary program may then communicate with a third party translation service to acquire any necessary translation or may provide the translation function. The secondary application may then provide the translated menus or other user interface items to the primary program or application (for providing to the user) or may provide the translations directly to the user.
[0050] In some implementations, the user provides an indication of the preferred language of the user. For example, in some implementations, the method 300 includes requesting the user for an indication of the preferred language. In some implementations, the preferred language is the native language of the user.
[0051] In some implementations, the application or computer program is interrupted from providing the display with the word in its original language to the user. For example, in some implementations an operating system or other program of the device of the user interrupts the application or computer program from providing the display with the word in its original language to the user.
[0052] At 320, the word of the display that is not in the preferred language of the user is translated. For example, if the preferred language of the user is Chinese and the original language of the word is English, the word would be translated to Chinese. In some implementations, a publicly available translation service may be used to translate the word. For example, a translation service available via the Internet may be used to translate the word to the preferred language of the user. At 330, the display including the translated word is provided to the user.
[0053] FIG. 5 is a flow chart for a method 500 for displaying text of an application or computer program, such as a menu, in a different language according to an implementation. In this example, resource-based text strings many be translated and displayed to the user of the device.
[0054] For example, in some implementations, the following is an
implementation of a menu item and the display of such menu item.
@Override
public boolean onCreateOptionsMenu (final Menu menu) {
final boolean result = super.onCreateOptionsMenu(menu);
String menuTitle = getString (R.string.menu title);
Menultem item = menu.add (menuTitle);
return result && item != null;
[0055] Additionally, the string resource directories that contain
R.string.menu title may be as below.
values/string.xml values-mcc232-de/strings.xml values-en/string.xml values-fr-rCA/string.xml values-en-port/string.xml values-en-notouch- 12key/ string.xml
[0056] The method 500 may be used to display the menu in a preferred language of the user of the device. In the illustrated implementation, at 510 the local resource, such as values/string.xml, is determined. Specifically, at 512, all of the resource directories for the given resource are located. At 514, the resource files that contradict the device configuration are eliminated. At 516, qualifiers are identified. At 518, resource directories that do not include the specified qualifier are eliminated. Items 516 and 518 are repeated until only one directory remains, such as
values/ string, xml .
[0057] At 520, the platform of the device may determine or detect whether auto translation has been requested. If it has not, the process is completed. If auto translation has been requested, then at 530, it is determined or detected whether the language of the local resource is the same as the user's preferred language. If it is, then the process is done. If it is not, then at 540, a translation service may be used to translate the resource. For example, the translation service may be used to translate the string of the resource (which is in any language) to the preferred language of the user (any other language).
[0058] In some implementations, the translation service may be a program run on the device itself or a device may communicate with a third party translation service, such as a translation service accessible via the Internet.
[0059] In some implementations, the device is configured to identify or detect the preferred language of the user. For example, in some implementations, the user may be requested to provide a preferred language. In other implementations, the device is configured to detect to the location or locale of the user and selects the language of the location or locale of the user as the user's preferred language.
[0060] In some implementations, the application programming interface (API) may be changed or modified to support the method of 500. For example, the API may be modified as follows.
"String getString(int resourceld)" can be modified to "String getString(int resourceld, boolean autoTranslateWhenNeeded)"
[0061] Accordingly, from the example above, "String menuTitle = getString
(R.string.menu title)" can be modified to be "String menuTitle = getString(R.string.menu_title, true)."
[0062] In some implementations, the text strings or resources identify a language. For example, in some implementations the text strings or resources identify the language of the text string. In other implementations, the device, application, or program includes an identifier that is configured to identify the default language of the text strings.
[0063] In some implementations, the application or program includes a cache of language translations for the text strings of the application. In such
implementations, the translated text string may be looked up or identified rather than performing a new translation of the text string.
[0064] In some implementations, the application or the platform of the device includes an option to enable or disable the auto translate feature. In such
implementations, the user may determine whether the application or program should provide the translated text strings.
[0065] In some implementations, the developer of the application or program can specify a target language or more than one target languages. The resources and text strings can then all be translated into all of the target languages. In such implementations, an actual translation of the resources or text strings does not need to be done during run time of the application.
[0066] In some implementations, text strings located within the code of the application or the computer program may be translated. For example, the text string to be displayed may be as follows.
myTextView.setText("Hello World");
[0067] The API may be modified as follows.
Text View: :setText( String text, Language language, Boolean autoTranslateWhenNeeded);
[0068] The parameter "language" may specify the language of the given string. If the language of the string is not specified then a translation service may analyze the string and provide the language. If the language of the string is not the same as the preferred language of the user, the application or computer program may contact a translation service (such as via the Internet) to have the string translated into the preferred language. The string in the preferred language of the user may then be displayed or rendered to the user.
[0069] In some implementations, the below pseudocode may be used.
String text = "hello world";
String textTranslated = getTranslateService().translate(text,
originalLanguage, targetLanguage);
myTextView. setText(textTranslated) ;
[0070] In such implementations, the platform of the device exposes the developers of the applications or computer programs to the translation services. The developers of the application or computer programs may use the translation services as desired.
[0071] As illustrated in FIG. 6, in some implementations, a system, such as a computer system or computing device, 600 includes a processor 610 and a memory 620. The system also includes a receiving module 630, a first determination module 640, an accessing module 650, a second determination module 660, and a transmitting module 670.
[0072] The receiving module 630 is configured to receive a request from an application to provide a first word for use by the application. For example, in some implementations, the application may be stored in the memory 620. The application may be requesting the word so that the word may be displayed or presented to a user of the system or device 600. In some implementations, the application is published or distributed or otherwise provided to the device 600 by an entity. The application may be associated with resources, such as text files or code, such as compiled code, that are stored in the memory 620. The first word requested by the application may be a word that is located in or associated with one of the resources. In some
implementations, the resources are also published or distributed by the entity that provided the application.
[0073] The receiving module 630 is operatively coupled to the first determination module 640. The first determination module 640 is configured to determine the default language of the system or computing device 600. In some implementations, the first determination module 640 is configured to identify the default language via a setting in the device or system 600. In other implementations, the first determination module 640 is configured provide a query to a user of the device 600 to determine the default or preferred language.
[0074] The accessing module 650 is configured to access the resources of the application. The resources may be located in compiled code or stored in text type files. The second determination module 660 is configured to determine whether the resources of the application include the word or words in the default or preferred language.
[0075] If the word or words of the resources are in the preferred or default language, then the transmitting module 670 is configured to transmit the word or words to the application.
[0076] If the word or words of the resource are not in the preferred or default language, then the transmitting module 670 is configured to provide the translation of the word or words to the application. In some implementations, the transmitting module 670 is configured to transmit the word or words and an indication of the default or preferred language to a translation server, such as a translation server or service that is publicly available via the Internet. In such implementations, the transmitting module 670 is also configured to receive the result of the translation and provide such results (the translated word or words) to the application.
[0077] FIG. 7 is a flow chart of a method 700 according to an implementation. The method 700 may be performed by a computing device that includes at least one processor and a memory. The method 700 includes at 710 receiving a request to provide a word for use by an application. In some implementations, the application is being executed on the processor of the device. The application is published or distributed by an entity and is associated with resources, such as compiled code or text files, that are also published or provided by the entity. In some implementations, the resources associated with the application are stored in the memory of the device 700.
[0078] At 720, the one or more resources that include the requested word is accessed in the memory of the device. At 730, it is determined whether the requested word is in a default language or preferred language of the device. In some
implementations, this determination includes determining the default or preferred language of the device. For example, in some implementations, the method includes providing a query to a user of the device to request or determine the default or preferred language of the device (or user of the device).
[0079] At 740, the word is transmitted or provided to the application. In some implementations, if the word is in the default language of the device, then the word is provided to the application. In some implementations, if the word is not in the default language, then the word is translated into the default language and that word (a second word) is provided to the application. In some implementations, the method 700 includes transmitting the first word and an indication of the default language to a translation server or service. For example, a the first word and an indication of the default language may be provided to a translation service via the Internet. In such implementations, the method 700 also includes receiving from the translation service or sever the second word (the results of the first word being translated to the default language), and providing the second word to the application.
[0080] As illustrated in FIG. 8, in some implementations, a system or computing device 800 includes an identification module 810, an accessing module 820, a determination module 830, and a transmitting module 840. In some implementations, the system 800 may also include one or more processors and one or more memories.
[0081] The identification module 810 is configured to identify a default or preferred language of an application that is executing on the device 800. In some implementations, the application utilizes a word or words. For example, the application may communicate with a user of the device 800 by displaying a word or words on a display of the device. The word or words may be located in code of the application or they may be located and stored in other resources used by the application, such as text files.
[0082] The accessing module 820 is configured access the one or more resources used by the application that is being executed on the device 800. The determination module 830 is configured to determine whether the word or words are in the default or preferred language of the device 800. If the word or words are not in the default or preferred language, the transmitting module 840 is configured to transmit the word or words and an indication of the preferred language. For example, in some implementations, the word or words and the preferred or default language may be transmitted to a system, such as a computing system, that is configured to translate the word or words to the preferred or default language. In some
implementations, the word in the preferred language is stored in a memory or cache of the computing device.
[0083] In some implementations, the system 800 is configured to determine whether the word or words should be automatically translated into the preferred language.
[0084] FIG. 9 is a flow chart of a method 900 according to an implementation. The method 900 may be performed by a computing device. The method 900 includes at 910, identifying a preferred language of an application executing on the computing device. In some implementations, the application utilizes a word. For example, in some implementations, the application utilizes a word to communicate with a user of the computing device (for example, by displaying the word to the user of the computing device).
[0085] In some implementations, the application is associated with one or more resources. The one or more resources may include the word or words that are utilized by the application. For example, in some implementations, the one or more resources are compiled code or text files stored in a memory of the device. At 920, the one or more resources of the application are accessed.
[0086] At 930, a determination is made as to whether the one or more resources include the word in the preferred language of the user or of the device. In some implementations, the method includes providing a query to the user to determine the preferred language.
[0087] At 940, the word and an indication of the preferred language are provided to a computing system. In some implementations, the word and the indication of the preferred language are provided to allow for a translation of the word into the preferred language. In some implementations, the computing system is a local computing system. In other implementations, the computing system is a remote computing system and the word and the indication of the preferred language may be transmitted via the Internet.
[0088] In some implementations, the method 900 includes determining whether a memory or a cache of the computing system includes the word in the preferred language.
[0089] In some implementations, the translation of the text or text strings to be displayed to a user of the device may be done at the time of compiling, the time of release, the time of download, or the time of management.
[0090] In some implementations, the translation of the text is done at the time of compiling. A developer of an application or computer program may provide the default resource and its language information. When the code is compiled, the developer can specify several languages. The compiler can then automatically translate the default resource into the specified languages and package them into the binary so that when a user with a preferred language that matches a target language uses the application, the application provides or displays to the user the text in the preferred language of the user. In such an implementation, a network connection is not required at runtime.
[0091] In some implementations, the translation of the text is done at the time of release. Similar to the above, the developer may specify the target languages when the application or computer program is released to the market. In such an
implementation, the extra resource package may be signed by a market holder instead of the developer.
[0092] In some implementations, the translation of the text or strings of text may be translated at the time an application or computer program is downloaded by a user. For example, when a user downloads an application or computer program, the marketplace or marketplace provider can detect whether the user's preferred language is natively supported by the application. If the preferred language of the user is not supported by the application, the marketplace or marketplace provider can prompt the user that the application can be translated to his language (or more languages can be specified). The user may then accept the suggestion and the related resources will be downloaded or translated into the preferred language of the user and downloaded.
[0093] FIG. 10 is a flow chart of a method 1000 according to an implementation. The method 1000 may be performed on computing device that has one or more processors and one or more memories. The method includes, at 1010, receiving an application to be run on a computing device from a first entity. For example, a computing system may include a receiving module that is configured to receive the application from the first entity. In some implementations, the application includes at least one resource that has a word in a first language. In some
implementations, the resource may be compiled code. In other implementations, the resource may be a text file. In some implementations, the application uses the word to communicate with a user of the application.
[0094] At 1010, a request is received from a second entity to download the application. For example, the second entity may be a different entity or individual than the first entity. The second entity has a preferred language, such as the primary language spoken or understood by the second entity.
[0095] In some implementations, the computing system includes a second receiving module configured to receive the request from the second entity. The second receiving module may be a component of a marketplace that is configured to provide or distribute application to consumers.
[0096] At 1020, the word is translated from the first language to the preferred language. In some implementations, the method includes translating the word from the first language to the second language locally. For example, translation software may be executed on the computing device to translate the word from the first language to the preferred language. In other implementations, the word and an indication of the preferred language may be transmitted to a translation service or server, such as via the Internet.
[0097] In some implementations, the method 1000 includes providing a query to a user to the second entity to determine whether the word should be translated into the preferred language.
[0098] In some implementations, the text or text strings may be translated at management time. For example, as discussed above with respect to the translation at compiling time, an application manager or provider, can specify a target language (or more than one language) for an application. The application manager or provider may request that the text or text strings be translated offline. In such an implementation, the translation is not done at runtime. [0099] Implementations of the various techniques described herein may be implemented in digital electronic circuitry, or in computer hardware, firmware, software, or in combinations of them. Implementations may implemented as a computer program product, i.e., a computer program tangibly embodied in an information carrier, e.g., in a machine-readable storage device (computer-readable medium) or in a propagated signal, for processing by, or to control the operation of, data processing apparatus, e.g., a programmable processor, a computer, or multiple computers. A computer program, such as the computer program(s) described above, can be written in any form of programming language, including compiled or interpreted languages, and can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment. A computer program can be deployed to be processed on one computer or on multiple computers at one site or distributed across multiple sites and interconnected by a communication network.
[00100] Method steps may be performed by one or more programmable processors executing a computer program to perform functions by operating on input data and generating output. Method steps also may be performed by, and an apparatus may be implemented as, special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application-specific integrated circuit).
[00101 ] Processors suitable for the processing of a computer program include, by way of example, both general and special purpose microprocessors, and any one or more processors of any kind of digital computer. Generally, a processor will receive instructions and data from a read-only memory or a random access memory or both. Elements of a computer may include at least one processor for executing instructions and one or more memory devices for storing instructions and data. Generally, a computer also may include, or be operatively coupled to receive data from or transfer data to, or both, one or more mass storage devices for storing data, e.g., magnetic, magneto-optical disks, or optical disks. Information carriers suitable for embodying computer program instructions and data include all forms of non-volatile memory, including by way of example semiconductor memory devices, e.g., EP OM,
EEPPvOM, and flash memory devices; magnetic disks, e.g., internal hard disks or removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks. The processor and the memory may be supplemented by, or incorporated in special purpose logic circuitry.
[00102] To provide for interaction with a user, implementations may be implemented on a computer having a display device, e.g., a cathode ray tube (CRT) or liquid crystal display (LCD) monitor, for displaying information to the user and a keyboard and a pointing device, e.g., a mouse or a trackball, by which the user ca provide input to the computer. Other kinds of devices can be used to provide for interaction with a user as well; for example, feedback provided to the user can be any form of sensory feedback, e.g., visual feedback, auditory feedback, or tactile feedback; and input from the user can be received in any form, including acoustic, speech, or tactile input.
[00103] Implementations may be implemented in a computing system that includes a back-end component, e.g., as a data server, or that includes a middleware component, e.g., an application server, or that includes a front-end component, e.g., a client computer having a graphical user interface or a Web browser through which a user can interact with an implementation, or any combination of such back-end, middleware, or front-end components. Components may be interconnected by any form or medium of digital data communication, e.g., a communication network.
Examples of communication networks include a local area network (LAN) and a wide area network (WAN), e.g., the Internet.
[00104] While certain features of the described implementations have been illustrated as described herein, many modifications, substitutions, changes and equivalents will now occur to those skilled in the art. It is, therefore, to be understood that the appended claims are intended to cover all such modifications and changes as fall within the scope of the implementations. It should be understood that they have been presented by way of example only, not limitation, and various changes in form and details may be made. Any portion of the apparatus and/or methods described herein may be combined in any combination, except mutually exclusive combinations. The implementations described herein can include various combinations and/or subcombinations of the functions, components and/or features of the different
implementations described.

Claims

WHAT IS CLAIMED IS:
1. A method performed by a computing device having at least one processor and a memory, the method comprising:
receiving, from an application being executed by the at least one processor, a request to provide a first word for use by the application, wherein:
the application is published by an entity, and
the application is associated with one or more resources that are stored in the memory of the computing device and that are published by the entity; determining a default language of the computing device;
accessing, in the memory of the computing device, the one or more resources; determining if the one or more resources include the first word in the default language;
if the one or more resources include the first word in the default language, then providing the first word to the application; and
if the one or more resources do not include the first word in the default language, then:
transmitting the first word and an indication of the default language to a translation server;
receiving from the translation server a second word obtained by translating the first word into the default language; and
providing the second word to the application.
2. The method of claim 1, wherein the one or more resources include resources stored as text files.
3. The method of claim 1, wherein the accessing, in the memory of the computing device, the one or more resources includes accessing, in the memory of the computing device, one or more resources stored as text files.
4. The method of claim 1, wherein the one or more resources include resources stored within a compiled code.
5. The method of claim 1, wherein the accessing, in the memory of the computing device, the one or more resources includes accessing, in the memory of the computing device, one or more resources stored within compiled code.
6. The method of claim 1, wherein the default language is a preferred language of a user of the computing device.
7. The method of claim 1, wherein the determining a default language of the device includes providing a query to the user of the device to identify the default language of the device.
8. A computing device having at least one processor and a memory, comprising:
a receiving module configured to receive a request from an application to provide a first word for use by the application, the application being published by an entity and being associated with one or more resources that are stored in the memory of the computing device and that are published by the entity;
a first determination module configured to determine a default language of the computing device;
an accessing module configured to access the one or more resources;
a second determination module configured to determine if the one or more resources include the first word in the default language; and
a transmitting module, the transmitting module configured to transmit the first word in the default language to the application if the one or more resources include the first word in the default language,
the transmitting module configured to transmit the first word and an indication of the default language to a translation server, receive from the translation server a second word obtained by translating the first word into the default language, and transmit the second word to the application.
9. The computing device of claim 8, wherein the one or more resources include resources stored as text files.
10. The computing device of claim 8, wherein the one or more resources include resources stored within a compiled code.
11. The computing device of claim 8, wherein the default language is a preferred language of a user of the computing device.
12. The computing device of claim 8, wherein the first determination module includes a query module configured to provide a query to the user of the device to identify the default language of the device.
13. A computer program product tangibly embodied on a computer readable medium and comprising instructions that, if executed, cause at least one processor of a computing device to:
receive, from an application being executed by the at least one processor, a request to provide a first word for use by the application, wherein:
the application is published by an entity, and
the application is associated with one or more resources that are stored in a memory of the computing device and that are published by the entity; determine a default language of the computing device;
access, in the memory of the computing device, the one or more resources; determine if the one or more resources include the first word in the default language;
if the one or more resources include the first word in the default language, then provide the first word to the application; and
if the one or more resources do not include the first word in the default language, then:
transmit the first word and an indication of the default language to a translation server;
receive from the translation server a second word obtained by translating the first word into the default language; and
provide the second word to the application.
14. The computer program product of claim 13, wherein the one or more resources include resources stored as text files.
15. The computer program product of claim 13, wherein the one or more resources include resources stored within a compiled code.
16. The computer program product of claim 13, wherein the default language is a preferred language of a user of the computing device.
17. The computer program product of claim 13, further comprising instructions that, if executed, cause the at least one processor to provide a query to the user of the device to identify the default language of the device.
18. A method performed by a computing device, the method comprising: identifying, by the computing device, a preferred language of an application executing on the computing device, wherein the application utilizes a word;
accessing one or more resources of the application;
determining that the one or more resources do not include the word in the preferred language; and
transmitting the word and an indication of the preferred language to a computing system.
19. The method of claim 18, further comprising:
determining if the word is to be automatically translated into the preferred language.
20. The method of claim 18, further comprising:
determining if the a cache of the computing device includes the word in the preferred language.
21. The method of claim 18, wherein the one or more resources includes resources stored as text files.
22. The method of claim 18, wherein the accessing one or more resources includes accessing one or more resources stored as text files.
23. The method of claim 18, wherein the one or more resources includes resources stored within a compiled code.
24. The method of claim 18, wherein the accessing the one or more resources includes accessing one or more resources stored within compiled code.
25. The method of claim 18, wherein the identifying includes providing a query to a user of the device to identify the preferred language.
26. A computing device, comprising:
an identification module configured to identify a preferred language of an application executing on the computing device, wherein the application utilizes a word;
an accessing module configured to access one or more resources of the application;
a determination module configured to determine that the one or more resources do not include the word in the preferred language; and
a transmitting module configured to transmit the word and an indication of the preferred language to a computing system.
27. The computing device of claim 26, wherein the one or more resources include resources stored as text files.
28. The computing device of claim 26, wherein the one or more resources include resources stored within a compiled code.
29. A computer program product tangibly embodied on a computer readable medium and comprising instructions that, if executed, cause at least one processor of a computing device to: identify a preferred language of an application executing on the computing device, wherein the application utilizes a word;
access one or more resources of the application;
determine that the one or more resources do not include the word in the preferred language; and
transmit the word and an indication of the preferred language to a computing system.
30. The computer program product of claim 29, further comprising instructions that, if executed, cause the at least one processor to determine if the word is to be automatically translated into the preferred language.
31. The computer program product of claim 29, further comprising instructions that, if executed, cause the at least one processor to determine if the a cache of the computing device includes the word in the preferred language.
32. The computer program product of claim 29, wherein the one or more resources includes a resource stored as a text file.
33. The computer program product of claim 29, wherein the one or more resources includes a resource stored within a compiled code.
34. The computer program product of claim 29, further comprising instructions that, if executed, cause the at least one processor to provide a query to a user of the device to identify the preferred language.
35. A method performed by a computing device, the method comprising: receiving an application to be run on a computing device from a first entity, the application including at least one resource that includes a word in a first language; receiving a request from a second entity to download the application, the second entity having a preferred language, the preferred language being different than the first language; and
translating the word from the first language to the preferred language.
36. The method of claim 41, further comprising:
providing a query to the second entity to determine whether the word should be translated to the preferred language.
37. The method of claim 41, wherein the word is stored as a text file.
38. The method of claim 41, wherein the word is stored within a compiled code.
39. A system, comprising:
an identification module configured to identify when an application running within the system attempts to display a word to a user of the application in a first language,
a translation module configured to translate the word from the first language to a second language different than the first; and
a display module configured to display the word in the second language to the user.
40. The system of claim 39, wherein the second language is a preferred language of the user.
41. The system of claim 39, further comprising:
a determination module configured to determine a preferred language of the user.
42. The system of claim 39, further comprising:
a determination module configured to determine a preferred language of the user, the determination module including a query module configured to provide a query as to a preferred language of the user.
43. The system of claim 39, further comprising: a determination module configured to determine a preferred language of the user, the determination module including a query module and a receiving module, the query module being configured to provide a query as to a preferred language of the user, the receiving module being configured to receive from the user a response to the query.
44. A computer program product tangibly embodied on a computer-readable medium and comprising instructions that, when executed, are configured to cause at least one processor to:
identify when an application attempts to display a word to a user of the application, the word being in a first language;
translate the word attempted to be displayed to the user from the first language to a second language, the second language being different than the first language; and
display the word in the second language to the user.
45. The computer program product of claim 44, wherein the second language is a preferred language of the user.
46. The computer program product of claim 44, further comprising
instructions that, when executed, are configured to cause the at least one processor to:
determine whether the first language is a preferred language of the user, and if the first language is not the preferred language of the user, translate the word attempted to be displayed to the user form the first language to the second language.
47. The computer program product of claim 44, further comprising
instructions that, when executed, are configured to cause the at least one processor to:
provide a query to the user to determine a preferred language of the user.
48. The computer program product of claim 44, further comprising
instructions that, when executed, are configured to cause the at least one processor to:
determine a preferred language of the user.
49. The computer program product of claim 44, wherein the word is one of a group of words.
50. The computer program product of claim 44, further comprising instructions that, when executed, are configured to cause the at least one processor to:
receive an input from the user to determine a preferred language of the user.
51. A method, comprising:
identifying when an application attempts to display a word to a user of the application, the word being in a first language;
translating the word attempted to be displayed to the user from the first language to a second language, the second language being different than the first language; and
displaying the word in the second language to the user.
52. The method of claim 51 , wherein the second language is a preferred language of the user.
53. The method of claim 51, further comprising:
determining whether the first language is a preferred language of the user, and if the first language is not the preferred language of the user, translate the word attempted to be displayed to the user form the first language to the second language.
54. The method of claim 51, further comprising:
providing a query to the user to determine a preferred language of the user.
55. The method of claim 51, further comprising:
determining a preferred language of the user.
56. The method of claim 51 , wherein the word is one of a group of words.
57. The method of claim 51, further comprising:
receiving an input from the user to determine a preferred language of the user.
58. The method of claim 51, wherein the displaying includes displaying the word on a visual display.
PCT/CN2012/000142 2012-02-03 2012-02-03 Translating application resources WO2013113135A1 (en)

Priority Applications (4)

Application Number Priority Date Filing Date Title
EP12867194.8A EP2810160A4 (en) 2012-02-03 2012-02-03 Translating application resources
PCT/CN2012/000142 WO2013113135A1 (en) 2012-02-03 2012-02-03 Translating application resources
CN201280069010.XA CN104169872B (en) 2012-02-03 2012-02-03 Translation application resource
US14/714,041 US9805027B2 (en) 2012-02-03 2015-05-15 Translating application resources

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2012/000142 WO2013113135A1 (en) 2012-02-03 2012-02-03 Translating application resources

Related Child Applications (2)

Application Number Title Priority Date Filing Date
US14375855 A-371-Of-International 2012-02-03
US14/714,041 Continuation US9805027B2 (en) 2012-02-03 2015-05-15 Translating application resources

Publications (1)

Publication Number Publication Date
WO2013113135A1 true WO2013113135A1 (en) 2013-08-08

Family

ID=48904350

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2012/000142 WO2013113135A1 (en) 2012-02-03 2012-02-03 Translating application resources

Country Status (3)

Country Link
EP (1) EP2810160A4 (en)
CN (1) CN104169872B (en)
WO (1) WO2013113135A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018035169A1 (en) * 2016-08-17 2018-02-22 Netflix, Inc. Change detection in a string repository for translated content
CN112632212A (en) * 2019-10-08 2021-04-09 腾讯科技(深圳)有限公司 Method, device, equipment and medium for updating entry to be translated

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI659369B (en) * 2017-07-12 2019-05-11 金腦數位股份有限公司 Message processing device
CN110414011A (en) * 2019-06-21 2019-11-05 北京三快在线科技有限公司 Multilingual translation device, method, electronic equipment and storage medium

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050050526A1 (en) * 2003-08-28 2005-03-03 Dahne-Steuber Ines Antje System and method for real-time generation of software translation
US20050251562A1 (en) 2000-11-01 2005-11-10 Microsoft Corporation System and method for providing language localization for server-based application with scripts
US20060117304A1 (en) 2004-11-23 2006-06-01 Microsoft Corporation Method and system for localizing a package
US20060294463A1 (en) * 2005-06-24 2006-12-28 International Business Machines Corporation Localizing a Java GUI Application Without Source Code Modification and Rebuilding
CN1928813A (en) 2006-09-22 2007-03-14 华为技术有限公司 Translation method and system for man/machine interaction interface of application program
US20100088695A1 (en) * 2008-10-03 2010-04-08 Takashi Kakinari System and method for localizing a server application using a client-side translator
US20120022851A1 (en) 2010-07-23 2012-01-26 International Business Machines Corporation On-demand translation of application text

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1474312A (en) * 2003-06-04 2004-02-11 无敌科技(西安)有限公司 Device capable of supporting multiple languages and its display method
US8249854B2 (en) * 2005-05-26 2012-08-21 Microsoft Corporation Integrated native language translation

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050251562A1 (en) 2000-11-01 2005-11-10 Microsoft Corporation System and method for providing language localization for server-based application with scripts
US20050050526A1 (en) * 2003-08-28 2005-03-03 Dahne-Steuber Ines Antje System and method for real-time generation of software translation
US20060117304A1 (en) 2004-11-23 2006-06-01 Microsoft Corporation Method and system for localizing a package
US20060294463A1 (en) * 2005-06-24 2006-12-28 International Business Machines Corporation Localizing a Java GUI Application Without Source Code Modification and Rebuilding
CN1928813A (en) 2006-09-22 2007-03-14 华为技术有限公司 Translation method and system for man/machine interaction interface of application program
US20100088695A1 (en) * 2008-10-03 2010-04-08 Takashi Kakinari System and method for localizing a server application using a client-side translator
US20120022851A1 (en) 2010-07-23 2012-01-26 International Business Machines Corporation On-demand translation of application text

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP2810160A4 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018035169A1 (en) * 2016-08-17 2018-02-22 Netflix, Inc. Change detection in a string repository for translated content
US10162819B2 (en) 2016-08-17 2018-12-25 Netflix, Inc. Change detection in a string repository for translated content
US11210476B2 (en) 2016-08-17 2021-12-28 Netflix, Inc. Change detection in a string repository for translated content
CN112632212A (en) * 2019-10-08 2021-04-09 腾讯科技(深圳)有限公司 Method, device, equipment and medium for updating entry to be translated
CN112632212B (en) * 2019-10-08 2024-03-15 腾讯科技(深圳)有限公司 Method, device, equipment and medium for updating to-be-translated entry

Also Published As

Publication number Publication date
CN104169872A (en) 2014-11-26
EP2810160A4 (en) 2015-10-28
EP2810160A1 (en) 2014-12-10
CN104169872B (en) 2018-07-31

Similar Documents

Publication Publication Date Title
US9805027B2 (en) Translating application resources
JP7018463B2 (en) Managing the delivery of code and dependent data using the application container
US11461111B2 (en) Method for running applets, and electronic device
US10091628B2 (en) Message based application state and card sharing methods for user devices
US9635138B2 (en) Client-server input method editor architecture
US9547721B2 (en) Native application search results
CA3050378C (en) Natural language control of web browsers
WO2018129509A1 (en) Managing, using, and updating application resources
EP3058460B1 (en) Incrementally compiling software artifacts from an interactive development environment
JP2019513260A (en) Service execution method and device
EP3251013B1 (en) Monitoring application loading
US9038019B2 (en) Paige control for enterprise mobile applications
US10262155B1 (en) Disabling features using feature toggle
CN114586005A (en) System and method for hosting another browser within a browser
WO2013113135A1 (en) Translating application resources
US9210209B2 (en) Extensible browser plugin interface
US9185513B1 (en) Method and system for compilation with profiling feedback from client
US9256651B1 (en) Inheritance of properties files with locale chain support
US20220300574A1 (en) Caching for Single Page Web Applications
US8739187B2 (en) Legacy application integration within a bundle framework
US10445111B2 (en) Font download on application boot
US20240039963A1 (en) Process security capability requirements identification

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 12867194

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 2012867194

Country of ref document: EP