Internationalization
For my undergraduate thesis, I wrote a Visual Basic project that would enable a User Interface (UI) to translate between different languages. I did this as a project for a company called Think & Do Software. They used an interactive version of Visio as their User Interface. I used ActiveX to communicate to Visio from Visual Basic. The software consisted of two programs:
- The Globalization Add-On. This program was used by the developer to add translation text to each object on the UI.
- The Translation Add-On. This program was used by the end-user to switch between languages.
The Globalization Add-On parsed an entire Visio document to find all the objects of the document. The algorithm had to be recursive, because each Visio object can contain child objects which can repeat to n-levels. After the document was parsed, it showed a TreeView of the objects within the Visio Document. The developer could then enter translation information about each object. This information was stored in a database.

Figure 1: Globalization Add-On Screenshot
The Translation Add-On could be run at anytime the Visio document was showing. This run-time translation was very different from anything else on the market at the time. It was not necessary to recompile the program to switch languages. It was also not necessary to have a French, German and English version of the same product. Also, it was good for mixed environments where not all users speak the same language.

Figure 2: Translation Add-On Screenshot