For the Helpdesk's FAQs, the languages were translated manually. The different languages just access different pages.
To make a translator, it depends on the complexity, whether it be the translation of a single word, or including grammar. The former can be laterally solved (in one fashion) by linking different translations of the same word with the same array (as mentioned) and accessing separate values of it. Assuming you're not trying to make a translator from the ground up though, you would have to somehow implement translation API, such as Google's.
The array method is admittedly for simple and limited purposes. Specifically, one-way translation and looking up single words (for a made-up language, I guess).
Different meanings for the same word are some of the more advanced aspects of translators. Like with your example, if you want to say "I'm back", the phrase would have to be registered so that the output doesn't mean "I am a back" (or something similar). It probably has something to do with dividing the string up, analyzing each part, and determining an overall meaning based on limited meanings of the individual words. But I really don't know much about it. Even decent translators can mess up with this issue.