Я слышал, что компоненты TsiLang хороши, но вы смотрите на решение на месте ...
Я использовал GNU gettext для Delphi , который делает именно то, что вам нужно, загружает переводы из текстового файла и заменяет текст в ваших компонентах. Он даже имеет сканер pas / dfm для автоматического создания файла перевода на английский язык.
Также возможно автоматически изменить ваш исходный код на паскале, чтобы внедрить процедуру gettext вместо ваших статических строк. Если я не ошибаюсь, он просто добавляет подчеркивание как функцию, как показано ниже.
ShowMessage('Hello'); // before
ShowMessage(_('Hello')); // after
Я должен сказать, что прошло 2 года с тех пор, как я последний раз использовал этот метод.
Одна вещь останется проблематичной: компоненты Delphi не поддерживают Unicode (D2009 исправляет это), поэтому, если вы не измените компоненты, у вас все равно будет ограниченная поддержка других языков.