Many localization companies are aware of sophisticated software translation tools that are being used for translation of software strings in large software products. But what about simpler software? How can small software developers without complex processes jumpstart software translation to see their products become multilingual for global reach?
In partnership with Cameron Lerum, Jan Nelson from Microsoft came up with Multilingual App Toolkit (MAT), a Visual Studio extension that enables simpler translations by focusing on integration with Visual Studio and a pseudo language engine for some basic tests on hardcoded and truncated strings. The translation file export and import roundtrip functionality allows developers to send and receive resources in XLIFF files to individuals or a translator service. As an extension, the Toolkit is free, even for Visual Studio Community, the version of Visual Studio that is itself free of charge — something Nelson insisted on. “I believe that providing a rich set of tools and services to great multilingual apps is critically important to small development shops worldwide,” Nelson said. “In early beta tests in our tech centers in Africa, this was born out.”
Let’s have a quick look at the tool. The MAT integrates with Visual Studio when installed (Figure 1). To enable multilinguality, developers add languages to be used for the app. Upon language selection, language resource files are generated (Figure 2). Upon language selection, multilingual resource XLIFF files are being generated. As seen in Figure 3, you can either translate them yourself in standalone Multilingual Editor (which is a kind of computer-aided translation editor), or send them to a translation service.
When translation is done, the XLIFF files are imported back into Visual Studio and language-specific resource files are populated with translations during the next build. The tool adds new functionality directly to Visual Studio, so that developers can prepare the resources for translation with standard development tools.
I was able to speak with Jan Nelson about the origins and development of an idea that empowers individual software developers to reach more of the world. Nelson is a senior program manager in the Microsoft IT division under CIO Jim DuBois, and has engineering responsibilities for a number of tools and services.
Gladkoff: Hi, Jan. The first question that I have is, how did you come up with the idea in the first place, and what projects and technologies inspired you to do that?
Nelson: I started working with international software engineering at Microsoft unintentionally as part of one of our many reorganizations where my role became leading the team responsible for Localization Studio. At that time we provided the toolset to external companies that had an MSDN subscription. While my focus was on internal engineering, I saw that we needed to do more for external developers, but did not see Localization Studio as the answer to that.
During that time, I also took on an additional role as the W3C internationalization workgroup representative, which served to introduce me to a world of other international subject matter experts in many domains — a few looking at developers, but more focused on web content challenges. As part of that focus, a number of us came together under the umbrella of a European Commission grant to create what became the MultilingualWeb project (http://multilingualweb.eu). Working on the original program committee and in subsequent sessions, I sharpened my thinking around the gap that existed for developers, that so much of the focus was on localization companies and translators, and determined that there was a need to move to a service model directly into the developer’s integrated development environment (IDE), which in our case at Microsoft is Visual Studio.
I met with Cameron Lerum, who worked on my team at the time, and a number of engineering teams in the Operating Systems Group and in Visual Studio to discuss the opportunity during Windows 8 planning. The outcome of those meetings was a proposal we made to our general manager to fund a small project to build a plugin that provided essential localization services and a simple workflow to support any developer who wanted to try to reach a broader audience in a global market. That initial project was a pretty primitive start, but had a core principle we established — that MAT would be available to extend any version of Visual Studio, including the free edition. This principle included providing a full, free and unlimited license to the Microsoft Translator service and an extensibility model that allowed third party translation services to plug in as well.
Overall, the MAT has introduced me to very smart and passionate people around the world sharing a common notion that we can do things that stitch the human experience closer together, and language is key.
Gladkoff: I had a look at the tool page — MAT 4.0 already has more than 10,000 downloads! That may seem to be a large number, but I guess that it’s only a miniscule percentage portion of the millions of Visual Studio developers out there. How do you plan to bring them up to speed on the new Visual Studio extension? Perhaps the first thing for them to understand is how important translation is to break into the global market?
Nelson: Across all the releases we have delivered, we have seen amazing “stickiness” with developers coming back to update the version of the toolset over and over. We have seen well over 100,000 total downloads from over 170 markets worldwide, which affirms my original contention that there is a desire for developers to connect directly with a localization workflow and services in a way that is super simple, and low cost or free.
Gladkoff: Jan, professional software localization firms know how sophisticated software translation actually is, in terms of various quality control checks that are part of the professional process for large products. Do you think that MAT 4.0 can also be used for projects of scale, and not for just “garage startups” and small software projects?
Nelson: Yes. When we started out, our target was the “garage band” app developer, but we were pretty surprised when we started seeing emails from very large organizations looking at the toolset for use in their enterprises. In fact, the feedback we receive from developers at every scale of business has been considered as we have evolved the tools to ensure that they are usable in many different environments. The value is there for the developer team or individual to debug their international code using our free translation service and then, if the market or situation dictates, work with a professional firm to create the kind of quality that human editing provides.
Gladkoff: Let’s talk about compatibility and interoperability. Do you support other XLIFF versions, such as 1.2, 2.0, 2.1, 2.x? Do you have metadata like ITS for XLIFF supported in MAT 4.0?
Nelson: We started out with the concept that XLIFF 1.2, which was used for content localization, could be also used as the standard XML schema for software projects and as you have seen since the beginning, we integrated XLIFF into the IDE as a core part of the workflow. With the release of MAT 4.0, we now also support XLIFF 2.0, a standard that has the ability to support metadata like that which ITS can provide. We made this choice to assure that industry interoperability was maintained. Just a few months ago one of our engineering teams working on creating the XLIFF 2.0 object model, which we use internally and is also consumed in MAT, placed it on GitHub for all to leverage. This is the spirit of open source and industry collaboration that I think makes the international engineering space increasingly dynamic. You can find the code here: https://github.com/Microsoft/XLIFF2-Object-Model.
Gladkoff: What is the future of MAT as you see it?
Nelson: Today, MAT 4.0 not only provides great support for Windows Universal App development, but also has a very strong integration with the Xamarin Visual Studio plug-in to allow for cross-platform support. Translate your app in one platform and get the translations in the others with no extra work involved.
Because MAT 4.0 remains focused on supporting XLIFF as a standard and also provides extensibility for third party translation services, I believe that use of the tools will continue to show healthy growth.
Gladkoff: Is Translation Editor going to remain the built-in MAT editor, or will it take off as a standalone CAT tool?
Nelson: I think the conversation should center around how the industry wants to address working with developers in the context of their IDE, the space that MAT has pioneered. The standalone editor was created to provide a free, simple translation workspace usable by anyone with language skills and not requiring Visual Studio. I do not personally see the Editor needing to become a fully featured CAT tool, that is the work other companies are doing and I think it is great to see them also working to support XLIFF 2.0 and interoperability as well as translation as a service offerings.
Gladkoff: Jan, I know that you are an artist. If I asked you to provide an image symbolizing multilingualism, what would you paint?
Nelson: I was looking at a collection of slides from photo shoots I did over 40 years ago, scanning them and revisiting the thoughts I was having back then. Rather than lean on a stock phrase like “A picture is worth a thousand words” I feel that the imagery can convey a story to the viewer, whether that art is realistic or abstract, and that it is possible for that story to be understood by a multilingual, multicultural audience if it contains seeds of human truth, things that are constant or universal. The photograph is an example. It is one of the images from the early 1970s that I have been revisiting and is something I will probably turn into a painting in the near future. The photograph has the word “Coca” in it, which breaks with the convention of not embedding words in graphic images, but in this case I believe that the ubiquity of the brand carries the meaning without any translation being needed.