Language Support

Supporting multiple languages in a software product is a complicated issue because, well, there are many, many languages to potentially support. Languages come in many forms, some being completely incompatible with others. Transport Empire deals with this problem by... making someone else deal with the problem.

To produce an user visible message TE uses the 'Language Manager' module. This module defines an interface called, well i_language :) This interface defines a set of methods which produce screen messages. A method in this interface may take several arguments as intputs and format the message with them in mind.

This abstraction allows several languages to be completely separate from each other, thus syntactic rules of one language will not interfere with another. This for example makes it possible to deal with player gender in languages such as polish, where a distinction is made, while not dealing with it otherwise. This also allows to deal with inflexion and other language related problems.

All user visible texts in TE are using unicode strings ( std::wstring ) types, thus all language specific  characters are supported.