StringDB – A New Approach for Software Localization in Embedded Systems

Localization of software is done in different ways for embedded systems. The traditional approach for software localization is to put the strings inside specific source files and compile them with other project files. Multilingual builds with different language packages are done with use of conditional compilation. With this approach changing the software’s language capabilities needs recompilation and insertion of many preprocessor defines inside the code, which can be hard to understand after some time, if not well documented.

Dealing with localization of software has always been a burden for the developers, especially if multilingual software builds are released with different language packages for customers from all around the world. Without specialized tools, software localization is a very time-consuming and complicated process. In order to manage the localization procedure effectively and avoid going over the same task again and again, it is advisable to use software localization tools. Besides, software localization is not just a technical problem; it involves translators and other non-technical people. Use of a proper tool will isolate engineers from the details of the translation and localization process.

StringDB is a generic localization tool for multilingual embedded software. It is a relocatable string structure, which is directly generated from string tables in MS Excel files. It allows you to change the string/language configuration of your embedded software without even recompiling the code. StringDB can be merged with the binary-image of the software See Figure 1.
StringDB: Software Localization Tool
Figure 1. ROM image of a software binary using StringDB.

You can use StringDB in your new projects or you can easily port it to the existing software. Build your code without the strings and merge StringDB later to the binary. If there is a file system, StringDB files can be loaded at runtime

StringDB is initialized once at system startup and the API functions are called to get the pointer of the requested string during runtime.

StringDB binaries can easily be created by using the PC tool “StringDB Wizard” in seconds. The tool also includes a post-compile binary merge utility, “StringDB Merger”, which is used to embed the resulting StringDB into the binary image of the software.

StringDB can be used both for software with or without a file system:

  1. For systems without a file system you need to merge the StringDB with the binary image.
  2. For systems with a file system you can load the file StringDB.bin file at runtime.

Advantages of the Most Powerful Localization Tool for Embedded Systems

Time is cash!
Decreasing development and debugging time of multilingual software is the biggest advantage of using StringDB. By using StringDB you don’t need to design and implement a localization structure in your software and you can change the language configuration of your software just in seconds, without even recompiling the code. This way, your response time for special customer requests will be much shorter.

Free the developers!
Because of the simple usage of StringDB Tools, one should not be a software developer to change the language configuration or debug the strings. By using StringDB tools you can localize your software without recompiling the code. Non-engineering people like testers can easily use StringDB tools. This lets software developers focus on more important issues.

Release only one software build!
By using StringDB in your embedded software, you don’t need to release many software builds for each language configuration. You can release just one software binary without the strings. And any StringDB can be merged later for different needs. This decreases the build time and eases tracking of builds.

Dynamic language menus
By using StringDB, the language selection menu of the software can be dynamic, which means that there is no need to hard-code the language options inside the menu source code. The software gets the language information from the StringDB and configures its language selection menu accordingly. This makes the menu code more readable and easier to debug.

StringDB is flexible
StringDB can be used virtually in any embedded system. In the design of StringDB we took every detail into account. StringDB tools support both ASCII and Unicode (wide-char and UTF-8) character encoding, different byte orders and alignment options. These design issues make StringDB work on any platform.

Unicode Support
StringDB tools support Unicode character encoding (wide-char and UTF-8). This means by using StringDB you can support all special characters of any language without any problem. So your applications can really be multilingual.

Easy to use tools
Generating and using StringDB in your software is very simple. Generation of the StringDB is done by our PC tool StringDB Wizard, which directly converts string tables in MS Excel files to StringDB image. And StringDB images can easily be merged to your software’s binary image with our StringDB Merger utility. StringDB Wizard creates an optimized database, where none of the strings repeats and this decreases your ROM-usage for strings.

Easy to use API
Integrating the StringDB to your software is also easy with our ready-to-use platform independent C/C++ API. The API is quite simple and easy to understand and to modify for different platforms. The main purpose of the API is to find/load and initialize the StringDB inside the ROM and provide access functions to it.

StringDB is designed for software developers, who develop multi-language systems and who have to modify string and language capabilities of their system frequently, for different customers from all around the world.