Speaking your language!

Developing software applications in different languages or dialects.

A good many of us now work in very diverse and multi-cultural organizations, some of which are geographically spread throughout the world. Today the same application that runs a specific part of your business may well be used across multiple sites and countries. More and more of us now acknowledge that there may not be a ‘one language’ fits all solution for software applications anymore.  In fact in places such as Quebec, Canada there are specific laws. For instance Bill 101, article 4 states that ‘workers have a right to carry out their work activities in French’ so we can interpret that as the software they use needs to be at least available in French and probably English too, i.e. it needs to be multilingual.

Multilingual is however much broader than most people think. If your application supports different languages then it can almost certainly support different dialects or phrases. Take a look at an over simplified scenario. The evaluation phase from a prospect completes and you want to close the deal, there are no language hurdles to get over but they don’t like some of the phrases or messages that are presented to them from the application. As an example you are trying to get a client to take a new HR system, in this system you present them with ‘employee number’ but in their business it’s known as a ‘badge number’. The client states that in order to purchase your system these changes will need to be made. Now, you could be facing expensive modifications in order to win that deal (often ending up with a bespoke system) and choices about whether to pass those additional costs on to the client of absorb the cost and extended roll out times.

However, you could use the same approach as a multilingual application. If the application design took this into account from the outset or was built using a framework that supported this concept then the costs would be minimal and you could deliver a solution to your new client quicker and with no customization apart from a new language file.

Attributes of a multi-lingual application

A multi-lingual application is an application that can present itself in multiple languages or dialects from a single installed instance, this is particularly important when running software in the cloud which might be accessed from multiple places around the world, i.e. it’s geographically independent. The application must be able to present itself in a language chosen by the user’s profile and not be dictated by the location it’s installed in.

How do they typically work?

Multilingual applications typically work by the use of a lexicon; inside the lexicon you would define the phrases in the relevant language, so ‘Purchase order’ would have an entry in the Spanish lexicon as ‘orden de compra’. The runtime code would know from the users profile which language or dialect to use and look it up in the relevant lexicon file before presenting the screen to the user, in its simplest form its string substitution. Some modern day software development frameworks already support this concept, so if you have chosen one to develop your software, all you need to worry about is the physical translation of the relevant phrases and the end user configuration. Obviously there is more to it than the above, for instance, careful consideration needs to be placed on the screen real estate to ensure that field names and prompts etc. fit properly for all languages, but the purpose of this article is to show you how you can adapt an application to give its users a more personalized experience.

As a software development organization, accommodating different languages or even dialects can lead to expensive re-writes of the presentation layer to present your application in a language appropriate to new markets or to meet legal requirements if not properly accounted for in the original design. So next time you are building a new piece of software or evaluating an application consider whether it may be  required to support multiple languages or a different dialect either now or in the future to avoid expensive modifications at a later date.

Choosing the right development framework at the outset that has built in multilingual capabilities such as PROIV can save you both time and money over the lifetime of the application.