language.txt The Language object handles all readable text produced by the software. The most used function is getMessage(), usually called with the wrapper function wfMsg() which calls that method on the global language object. It just returns a piece of text given a text key. It is recommended that you use each key only once--bits of text in different contexts that happen to be identical in English may not be in other languages, so it's better to add new keys than to reuse them a lot. Likewise, if there is text that gets combined with things like names and titles, it is better to put markers like "$1" inside a piece of text and use str_replace() than to compose such messages in code, because their order may change in other languages too. While the system is running, there will be one global language object, which will be a subtype of Language. The methods in these objects will return the native text requested if available, otherwise they fall back to sending English text (which is why the LanguageEn object has no code at all--it just inherits the English defaults of the Language base class). The names of the namespaces are also contained in the language object, though the numbers are fixed.