Home  >  Solutions  >  Software Applications

Localizing Software Applications

Localizing your software opens markets that are otherwise closed. According to EU Commission Vice-President, Neelie Kroes:

"Fewer than 1 in 5 Europeans feel comfortable enough to regularly buy online in a foreign language. Yet over 4 in 5 online shops are mono-lingual."Neelie Kroes - Vice-President of the European Commission, Extract from speech given at the LT-Innovate Summit 2013 in Brussels, Belgium on 27 June 2013


Introduction

Software is a broad topic. From a translation point of view, it comprises application user interfaces, user-assistance or help content, websites, mobile applications, embedded software in devices such as keypads or remote controls. Software is used by all industries and comes in many forms. There are other solution articles on this site dealing with different software formats. This article concentrates on the user interface components of software applications. Examples are menu and dialog box elements of software applications such as that below. On the left is the original language of the application, on the right is displayed the localized dialog box in Japanese where both text and button dimensions have been adjusted.

English User Interface

Original language Dialog layout

Japanese User Interface
(with localized text & dimensions)

Localized Dialog layout

The Alchemy CATALYST process

Use Catalyst for every step of your software localization process

  • Insert the files for localization – Catalyst presents translatable text, protecting the rest.
  • See full context for certain software formats – showing your content as a list of segments or as it is viewed in the running software.
  • Prepare your files – add memos containing information for translators/engineers, apply locks for those strings or words which do not need to be translated.
  • Use the Leverage Expert to apply previous translations so that only new or modified text needs manual translation. In fact, Catalyst's Leverage Expert will automatically re-apply locks, memos, translation status and even coordinates, reducing manual tasks to a minimum.
  • At the adoption stage, create Translation Memories quickly and easily from your previously localized files using Catalyst's Alignment feature.
  • Translation - translators carry out translation on the new text in a user-friendly environment with translation tools and aids such as glossary matching, interactive TM matches and spellchecking.
  • Engineering – resize and reposition your UI elements (e.g. dialog buttons, checkboxes etc) within Catalyst's visual environment to fit your target language.
  • Validation – multiple translation and engineering validation checks can be carried out on your files – you can even write your own validation tests!
  • Extract your localized software files automatically into the relevant format (e.g. .NET files are automatically exported as satellite assemblies into the appropriate language folder and language code, ready for use and signed where required).


Making the Complex Simple

Though software development practices and concepts can be complex in nature, Alchemy CATALYST removes that complexity from the translation process. Translation is a creative process and all focus at that time should be on the most appropriate translation. Using Catalyst, users can focus on context, tone and style and ignore the technical aspects of code constructs and syntax. Catalyst dissects the code/binary, presenting only what should be translated and locking away the rest. Once the texts are translated, Catalyst regenerates a localized version of your project. This can be automated creating many language builds at the same time.

English User Interface

Original language layout

Alchemy CATALYST presents text & protects the rest

Catalyst strings viewLayout to protect

Full Context

The context of text is important during translation. This is especially true for short software options such as 'Home', 'New', 'Save'. Such texts will often be translated incorrectly without context. For this reason Catalyst presents UI elements in a visual view (sometimes called WYSIWYG – what you see is what you get). This means that, where possible, translators and engineers benefit from an environment that corresponds with the running software and can see text and UI elements as they should appear.

Full context available


Agile Localization and Build Integration

Modern software development teams use the concept of agile development to streamline the software creation process. Some of these agile concepts should incorporate localization. Regular Builds, Continuous Integration and having Always Working Code are agile best practices that benefit from a localization step. For instance the typical steps displayed in an agile process are shown in the diagram below. Developers are taught the processes of

  • Gather Requirements
  • Design
  • Develop
  • Test

Normally missing from the teaching and the process is the localization step. Retro fitting localization on software that was not prepared for it can be expensive and imperfect. With a little understanding, it is as easy to develop a world-ready application. If software development is done correctly, the localization is a seamless, efficient process. Always ensure Localization is part of your agile process.

Typical Agile Sprint

Typical Agile Sprint schema

World Ready Agile Sprint
(with localized text & dimensions)

World Ready Agile Sprint schema

Alchemy CATALYST can be integrated with an automated development process. If regular builds are created in source language, it is a simple matter of chaining the localized builds in sequence. Once the English exists, all other language builds can be created automatically.

Internationalization

The software development task is only correctly completed when user interface components are capable of being localized. The process of ensuring that an application can be easily translated is called internationalization. The pseudo-translation feature in Alchemy CATALYST tests the internationalization aspects of code. It helps to locate hard-coded strings, and text that should not be edited. Without incurring any cost, it performs a mock translation that simulates what would happen during a real translation. Free-to-create simulated translated builds can be run through functional tests to evaluate how an actual translated build would behave. If changes to the development work are required, it is best to do so while development is still ongoing.

Two Localization Methodologies (source or binary)

Software applications are typically authored using source code (e.g. *.xml, *.rc, *.resx, *.properties), which is readable and editable by a human software developer. The source code is then compiled into machine code (e.g. *.exe, *.dll, *.class) for the computer to understand.


User Interface

Dialog UI

Source Code

Source Code

Binary (Machine Code)
(with localized text & dimensions)

Binary (Machine Code)

Localization can be carried out on either source code or binary. Working with the source code means maintaining a different version of the code for each language and compiling for each language to create the binary image for that target language. Localizing the binary is a simpler process as only one copy of the source code is required, the compilation is done once only and the compiled binary is translated to make target language versions of the software. Alchemy CATALYST can dissect either source or machine code, presenting only what needs to be translated and protecting those aspects that should not be changed. Binary localization is a far simpler and more robust process as it reduces the level of file management; it removes the compilation step for each language, and it significantly lowers the risk of error.

See the knowledge well article discussing source and binary methods.

Conclusion

Alchemy CATALYST will help your software reach new markets. It has a complete set of features that will help the simplest of Localization strategies to advanced processes. It can grow with your needs and ensure you adopt best-practice from the beginning.