If you need it to be in another language, then assuming that the structure of numbers as words is the same as for English, then I would use a combination of what Dmitry has given as the function ReplaceStr.
e.g. something similar to the below code snippet:
var
strNumber: string;
strNumberAsWords: string;
begin
strNumber := '123456';
ShowMessage(strNumber);
strNumberAsWords := ToWords(StrToFloat(strNumber), '', 0, False);
strNumberAsWords := Lowercase(strNumberAsWords);
ShowMessage(strNumberAsWords);
strNumberAsWords := ReplaceStr(strNumberAsWords, 'one', 'un');
//...2 to 8
strNumberAsWords := ReplaceStr(strNumberAsWords, 'nine', 'neuf');
//...11 to 18
strNumberAsWords := ReplaceStr(strNumberAsWords, 'nineteen', 'dix neuf');
//...more for 10, 20, 30, 40, 50, 60 70, 80, 90
//...more for hundred, thousand, million, billion, etc.
ShowMessage(strNumberAsWords);
end.
you may have to fiddle around a bit to get an accurate translated version though.
Dennis