I would like to discuss about internationalization approach of siComponent. First, let me explain current situation.
I have a project.
It has named PRJ.EXE.
It will be run on more than two languages.
I don't want to store language data into DFM/XFM files.
I would like to use external SIL or SIB files.
But I don't want to use single external file for all possible languages.
And each file will contain only one language data.
External language files will be named like these:
for Turkish PRJ.TRK.SIL (base language)
for English PRJ.ENG.SIL
for German PRJ.GER.SIL
bla bla...
There will be only one language and ActiveLanguage property of LangDispatcher will be always 1. PRJ.EXE will dynamically load user's language file at runtime.
PRJ.EXE will load necessary language file.
I don't want to disturb all external language files.
If you speak English, you will only download PRJ.ENG.SIL (or .SIB)
1- TsiCustomLang descendants are using binary TranslationData property in unit's form. I think it is saving same data with external data file. If I have exported unit's or project's language data to external file, I don't need data of TranslationData property in forms. Because it grows totally size of application. It may be optional.
If you are using 3 language with external file, your project's language data will grow (1+(3*2)) = 7 times. One time for orginal captions, 3 times in TranslationData and 3 times in external file.
2- I have implemented single external file per each language. After changings on forms I have saved changes to base language's external file. It has worked fine, new captions have stored into external file with their IDs.
But other external files has not reflected with these changes. I think we need new translation editor. It will use one external language file for master (base) language, and it will load any external language file which is to be translated.
I'm developing little program for this situation. It will check String IDs of each files, it will add new IDs to target file, and it will remove unused IDs from target file.
siComponent may use these ideas in the future relases.
Bye
Hür Akdülger
