В свое время (когда был полным бараном в программировании) каких только компонентов я не перепробовал
Ну и как настоящий СНГ-овский программер начал сам "изобретать велосипед".
Пришел к выводу, что гибче (и при разработке, и при использовании - юзер сам может добавлять-изменять свою локализацию) формат текстового файла. Вариантов несколько -
1.TStringList - загрузил раз и "тянешь" оттель.
2.TIniFile - практически то-же, что и первый вариант (см. исходники TIniFile).
Ну а как быть, если программа на API и добавление любого из вышеуказанных классов неоправдвнно "раздует" размер?
Тут 3-й вариант
GetPrivateProfileString - работает аж со свистом... Даже на "медленных" машинах.
А подразобравшись с PrivateProfileString я вообще отказался в своих программах от TIniFile. И не жалею - работает быстрее.
Еще один момент. В качестве ключа я использую не название или Caption по дефолту компонента, а его Tag. Очень удобно, т.к. этот-же Tag используется в качестве идентификатора команды. Т.е. не на каждую кнопку-меню-и т.д. по событию OnClick, а одно OnClick на группу и дальше через case выполнение команды. Таким образом можно идентифицировать и сообщения, и внутренние команды и т.д. и т.п.
З.Ы. Кому такой подход не нравится, просьба свое "Фа" в мой адрес оставить при себе