Overview of the Dev Center

The Design and Translation Process
Non-Technical Perspective

SUMMARY

The online System Localizer interface brings the desktop version to easier and broader audience. The System Localizer is a combination of support for the developer and support for translation management and was created specifically for software and IVR developers, game designers, and similar. The System Localizer offers many features, not all of which may be required for any one application. Examples:

Globally translating and controlling an Excel column of prompts or text with easy access to the “latest and greatest” version – the System Localizer imports the Excel and the translation can be performed around the world, also review and approval cycles by other linguists, all in a secure online environment.

Translating text buried inside code – the code files can be imported, the System Localizer will separate the text for translation from the code, and display the text in a manner accessible to translators with proper password. When translation is finished, the System Localizer will reassemble the code with the translated content. There are certain pre-existing imports to parse translatable text from code, but it is also inexpensive to order custom imports, exports, and parsing.

Improving the internationalization of developer’s hard code using the “automated code generator” feature of the System Localizer to export ready-to-use localized source code prepared to play or display other languages properly. This auto-generated code can be in almost any programming language and will follow a model set by the developer and include customized variables and approach.

Integrating the System Localizer Runtime Engine into the application and cease to worry about complex linguistic rules, because the Runtime Engine makes the decisions on personalization, translation and localization for the application on the fly at runtime.

Whatever the approach, there is probably a way to handle it in the System Localizer. Each primary user has own online database – not shared with others, plus levels of permissions and passwords for other participants. The databases were created specifically for private use and because they are not shared with other customers, calls to the database can be made using the API in a manner similar to an in-house database.

Using the online System Localizer can start small and grow over time. The online software is easy to use or complex, depending upon how the developer desires to use it. If the complex route is chosen, a wide variety of possibilities are offered, giving developers the full freedom they need, with a choice of design approaches, so that each developer has complete control over own project. The goal of the System Localizer software is to assure that whatever the developer creates can be translated and personalized with less effort and will function universally in up to 200 languages and dialects.

BACKGROUND

Whenever software and other technologies are created and are planned for translation, localization, and personalization of the user experience, a series of steps should occur.

•    Translation is the exchange of words from one human language to another. So: an orange in English = una naranja in Spanish.

•    Localization is the adaptation of the product or the translation for a locale or specific target audience, and the re-arrangements of its parts to be grammatically correct for the new language. So, for Puerto Rico, orange = chino, not naranja. Another example is the date 6/14 (or 14/6 in Europe): in the U.S., this would be read as “Sunday, June 14th”, whereas in the United Kingdom, this is more properly spoken as: “Sunday, the 14th of June”.

•    Personalization is the adaptation or variance of an element to please an individual or company, such as inserting a company name, a preferred vocabulary word, or a company logo. Also included in this stage are changing telephony menus, such as “press 1 for Sales” for one customer, but “press 1 for Technical Support” for another.

When a software product is created, many assumptions are built into its design. Any time the software is altered to accommodate new languages or dialects, some of these assumptions cause the software to cease functioning properly, and it must be changed in order to accommodate linguistic differences and new preferences. For example, software may be coded to present, “Your bank balance is <amount>”. The <amount> indicates the place in the sentence where the amount of money will be inserted by the computer when the software is used. Typically, an assumption is made that for this presentation item, there will be text followed by a currency amount. However, other languages can formulate the same sentence differently:

•    “Your bank balance <amount> is.”
•    “<amount> is your bank balance.”
•    “Balance <amount> for your bank account is.”

Moreover, within this sentence, the variable <amount> requires more computation. In English, the result for $2,403 is typically read as “two thousand four hundred three”. In other languages, however, the same number might be read as “Two thousand four hundred zero-ten three”, or even “twenty four hundred and three”.

The System Localizer resolves vagaries that occur during technology translation, without the developer needing to know the rules or speak the languages. The System Localizer’s new online interface includes a Developer Center that assists companies in creating internationalized products.

An “internationalized product” has a slightly new way of handling the data that creates the user experience – specializing in variable data that changes every time a phrase is spoken, like “You have <5> messages. Message <1> received on date at time”. The programming does not know very far in advance how many messages there are until it needs to present the information to the user, or which message is being referred to, or when the message was received. And when the information is known, there may be up to 25 ways to say the number 5 in some languages. How does the programmer write the algorithm that will decide which to use? Also, the word for “messages” may vary in other languages, because some languages have multiple plurals. English as singular (1) and plural (2 or more) – many languages have several more states than these, such as 2-5, or any number ending in 13 except 13 itself, or countless other seemingly random rules regarding pluralization. In English, we think of “message” and “messages”; in other languages, the program must also accommodate “messagi”, “messagu”, “messagay”, or others.

The System Localizer assists developers to internationalize their product without requiring any knowledge of these types of linguistic rules, so that the product will play or display correctly in 200 languages and dialects without the changing the software or its code, once the software has been internationalized. And once internationalized, other managers and professionals can control the content and the translations with very low risk of error, with significant benefits to personalization.

SYSTEM LOCALIZER VERSUS AUTO-TRANSLATION

The System Localizer is a significant step above auto-translation in terms of quality. The System Localizer is a complete control mechanism over the translation and localization process. The developer can choose the manner to carry out the translation and localization – either by a human or by a machine.

The System Localizer gives the software developer the ability to choose what should be used for what translation, be it auto-translation, professional translators, or internal personnel. Each development manager knows his or her target and budget. The System Localizer assists the team in reaching the target in the manner most appropriate for the developer’s circumstance.

To be clear, auto-translation software comes in a wide range of quality, from incomprehensible to passable. Many auto-translators produce very questionable – even silly – results. The quality of auto-translation really depends upon the software package purchased and the content you wish to translate.

With the System Localizer, the developer/product manager is in control of the quality of the language of its software.

THE DEVELOPER CENTER

The System Localizer Developer Center is the centralized location for control of internationalization. The Developer Center:
•    Assists developers through the internationalization process
•    Assists translators throughout the translation cycle, including glossary creation
•    Assists reviewers to review translations by others
•    Assists Q&A and QC personnel with written and audio concatenation checks
•    Provides an approval process

Then, as a last step, a button is pressed and either:

•    Usable, localized hard code is issued in C#, C++, Java, XML, VXML, and other computer programming languages. This code is usable source code, and can be customized, upon request, to the developer’s internal naming convention.
•    A condensed version of all database elements is extracted into a binary file. This file, called an Extract File, will be transferred to a place where it can be found by the developer’s product, website or embedded application. This Extract File feeds the System Localizer’s Runtime Engine. The Runtime Engine is an alternative to code, and requires much less development effort when taking an application into multiple languages. The Runtime Engine is a DLL/shared library that can make all of the localization decisions for the software on the fly when it is running “live”. The Runtime Engine does not speak words, or show text, or play audio files. Rather, it tells the host application what to say, what to show, and what to play. Then, the application performs all tasks.

So, the Developer Center is a localization hub used by all – used by the developer to internationalize the base system, by the translator to insert the translation online, and by the project manager to keep track of the project, to name a few people. If audio files are involved, the audio files can be uploaded to the Developer Center for testing and concatenation QA from anywhere in the world. Even basic speech recognition can be translated and tested in many languages.