J'ai fait le même genre de trucs, mais moi c'était un .ini par langue, du style:
[MainForm]
MainForm.Caption=....
MainForm.Button1.Caption=...
MainForm.Edit1.Left=...
etc...
Et l'appel via:
Translator.Language := 'Francais';
Translator.Translate(['MainForm', 'OptionsForm']);
Un truc du genre.
C'est un truc "fait maison" mais ça fonctionne, je peux éventuellement donner cette unit.
Pour le problème des resourcesstring, j'ai sur chaque form un petit composant comportant une TStringList (seuls les composants accessibles depuis les Form sont pris en compte). Donc les chaînes de ce composant sont automatiquement remplacées lors de la traduction, et pour les utiliser je fais :
ShowMessage(Messages.Strings[un_index]);
par exemple
(Messages = la TStringList, et un_index = une constante entière)
[jfdsdjhfuetppo]--Message édité par antp--[/jfdsdjhfuetppo]
---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire