Live Breaking News and Articles From the Pharmaceutical Industry

Pharmaceutical News on Ulitzer

Subscribe to Pharmaceutical News on Ulitzer: eMailAlertsEmail Alerts newslettersWeekly Newsletters
Get Pharmaceutical News on Ulitzer: homepageHomepage mobileMobile rssRSS facebookFacebook twitterTwitter linkedinLinkedIn

Pharmaceuticals Authors: Jolie Conahan, Jason Bloomberg

Related Topics: Pharmaceutical News

PowerBuilder: Article

PowerBuilder Cover Story: Introducing Enable

A framework-level tool for creating multilingual applications

What do you do if suddenly your application has to be used in another country, or even in different areas of the same nation? English and French are spoken in Canada; Italian, French, and German are spoken in Italy; and Switzerland has four official languages.

These days, service requirements dictate that software has to speak the language of the end user, who may even be a member of one of the growing ethnic minority groups.

As a PowerBuilder developer, you can now use Enable to make your applications multilingual. This solution allows you to maintain complete control over your executable at runtime, and without any duplication of the source code. End users and technical support personnel alike may well benefit from your application's new ability to change the active language dynamically.

Enable, which tackles the technical and practical barriers to the development and maintenance of multilingual software, is a framework-level tool from Best In, an Italian PowerBuilder consultancy with extensive localization experience.

This article looks at the reasons for adopting Enable, discusses the implementation work required, and describes Enable's technical characteristics. The closing case study illustrates the practical issues that emerged when Enabling an application for a company that serves the pharmaceutical industry.

Why Enable?
Depending on the technique used, the localization of software could involve major reengineering work. The most well-known technique is to replace text strings with descriptive identifiers that alter the legibility of your code. These strings are read into memory when the user specifies the working language that, however, cannot be changed dynamically at runtime. This is because reloading the text strings would call for a refresh of all open windows, something not contemplated in the original source code.

You could avoid such issues by installing an emulator. Although the adaptation process is not easy, this approach is especially useful for users who don't have access to the application's source code, since they can rely on an overlay that intercepts calls to the operating system, searches a database for the required strings, and replaces them with the related translations. Ignoring the economic costs involved, this situation is not optimal for PowerBuilder developers since they lose control over their software at runtime.

If you have a relatively small application, you might consider using the Translation Toolkit to generate separate monolingual source code for each foreign language, although there are maintenance issues to address. In this regard, many larger business applications evolve steadily, with new releases every few months. Here, experience of the code regeneration, recompilation, and redistribution cycle indicates a sharp rise in maintenance costs, as a function of both the number of languages involved and the frequency of the updates.

Enable Tackles All of the Issues Raised Above
The Enabling process does not ask you to rewrite the original source code or affect its legibility since, as discussed later, it just involves adding a few lines of extra code to your application.

As a developer, you maintain full control over your software at all times, with Enable actually becoming part of your application framework. Although Enable allows the active language to be changed dynamically, you determine the degree of flexibility granted to the user. Dynamic change applies to all properties of all controls: windows (including those already open), reports, generated files, and communications with peripheral devices. Indeed, several languages can even be active at the same time if, for example, your end users need to invoice their clients in multiple foreign languages.

This dynamic change takes place without affecting the functioning of the application. The DataWindow and Edit buffers remain unaltered, as do the end-user's selections; everything is retained when the language is changed. The ability to rapidly switch between languages facilitates the work of your support personnel who, as mentioned before, can flip/flop between languages without interfering with the user's activities.

Last, the retention of one source code and one executable application means that new releases can be made by simply translating the new text strings and distributing the revised multilingual database. Even the addition of extra languages does not require changes to your code.

Technical Characteristics of Enable
The philosophy of Enable is to allow PowerBuilder developers to retain a single source code and a single multilingual database across several platforms. In addition to supporting client/server, distributed, and PocketBuilder platforms, Enable also works with Appeon 3 so that monolingual software can be transformed into a multilingual Web application.

Enable comprises:

  • A database manager and related databases
  • An engine to apply translated strings
  • Tools for the developer
The development environment comprises (see Figure 1):
  • Enable Author, which administers the databases
  • Enable Extractor, a parser of PowerBuilder grammar that reads the source code (libraries and *.SR* files) and writes text strings and their contexts to the temporary file
There are two databases: the multilingual database (.ENA, a structured file) and the temporary file (.ENT, a sequential file).The database manager, used both by Enable Engine and Enable Author, is responsible for reading and writing the two types of database.

The multilingual database is a small flat file, in binary Unicode format, that contains the project settings as well as the source and translated strings. This database is created and modified by Enable Author and is optimized to be read by Enable Engine, regardless of the PowerBuilder platform/version actually used. The temporary file is written by Enable Engine, running in authoring mode, and is imported into the multilingual database using Enable Author's "Temporary file analysis" function.

All current versions of PowerBuilder, from 8 to 10, are supported and Enable also works with PowerBuilder 5, 6.5, and 7 (deployed upon request).

Enable supports all languages and all character sets. The use of Unicode characters requires the PowerBuilder 10 runtime and an operating system that supports Unicode, such as Windows 2000 or Windows XP. It is possible to stay with an earlier version of PowerBuilder if, for example, end users are still using operating systems that are not compatible with PowerBuilder 10. In this case, the earlier version is compiled using PowerBuilder 10 whenever Unicode characters are required.

In addition, Enable also supports jargon, which is a variant of the official language such as English for end users (which is frequently different than that used by developers), and English for special purposes. Even the application's source code can be multilingual. This is important for the use of international libraries that have not been localized into the developer's native language, or when development is outsourced abroad.

More Stories By Lluís Martorell

Lluís Martorell is CEO of XMi, a Spanish software house based in Barcelona. He has worked with PowerBuilder since 1991.

Comments (2)

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.