New Tool Improves Productivity, Quality When Translating Software
Researchers at North Carolina State University have developed a software tool that will make it faster and easier to translate video games and other software into different languages for use in various international markets – addressing a hurdle to internationalization that has traditionally been time-consuming and subject to error.
If you want to sell or promote a software application in a foreign market, you have to translate it into a new language. That used to mean programmers would have to pore over thousands of lines of code in order to identify every little string that relates to what appears on a user’s screen. This could be incredibly time consuming and, even then, there was always room for human error. Programmers have to be certain they are not replacing code that governs how the program actually works.
But now researchers from NC State and Peking University have created a software tool that identifies those pieces of software code that are designed to appear on-screen and communicate with the user (such as menu items), as opposed to those pieces of code that govern how the program actually functions. Once those “on-screen” pieces of code have been identified, the programmers can translate them into the relevant language – for example, translating the tabs on a toolbar from English into Chinese.
“This is a significant advance because it saves programmers from hunting through tens of thousands of lines of code,” says Dr. Tao Xie, an assistant professor of computer science at NC State. “Productivity goes up because finding the ‘need-to-translate’ strings can be done more quickly. The quality also goes up, because there is less chance that a programmer will make a mistake and overlook relevant code.”
As an example of how the software tool can identify errors and oversights made by human programmers, Xie says, the researchers found 17 translation omission errors when they applied the software tool on a popular online video game. The errors were then corrected.
The research was supported in part by the National Science Foundation and the U.S. Army Research Office. The research will be presented in May at the International Conference on Software Engineering in Vancouver, Canada, and will also be published in the proceedings of the conference.
Note to editors: The study abstract follows.
“Locating Need-to-Translate Constant Strings for Software Internationalization”
Authors: Tao Xie, North Carolina State University; Xiaoyin Wang, Lu Zhang, Hong Mei and Jiasu Sun, Institute of Software, School of Electronics Engineering and Computer Science, Key laboratory of High Confidence Software Technologies (Peking University)
Published: May 2009, in Proceedings of the International Conference on Software Engineering
Abstract: Modern software applications require internationalization to be distributed to different regions of the world. In various situations, many software applications are not internationalized at early stages of development. To internationalize such an existing application, developers need to externalize some hard-coded constant strings to resource files, so that translators can easily translate the application into a local language without modifying its source code. Since not all the constant strings require externalization, locating those need-to-translate constant strings is a necessary task that developers must complete for internationalization. In this paper, we present an approach to automatically locating need-to-translate constant strings. Our approach first collects a list of API methods related to the Graphical User Interface (GUI), and then searches for need-to-translate strings from the invocations of these API methods based on string-taint analysis. We evaluated our approach on four real-world open source applications: RText, Risk, ArtOfIllusion, and Megamek. The results show that our approach effectively locates most of the need-to-translate constant strings in all the four applications.