I implemented language translation in an application by putting all strings at runtime in a TStringList with:
procedure PopulateStringList; begin EnglishStri
THashedStringList should be better, I think.