I just have a few comments and questions about language files; hopefully, someone knowledgeable can confirm my assumptions. My apologies ahead of time for being "long winded".
As you know, I am still working on the English Help file, and an updated English language file. In the past, each new release from Dirk would send me into a tailspin - new variables were added to the language file, changes made, etc. - I could only cross-check manually! This proved to be very time consuming and tedious. I have recently programmed (simple Free Pascal program - console only) a tool to help me - it can automatically report changes from a base file (Dirk's) to a target file (my new one), as well as some other features.
I abandoned Dirk's language editor quite a while ago; the context of phrases and words was important to the translation, and the language editor could not provide any help there, or detect extra/missing variables. So editing the language file is done with an excellent text editor (AkelPad - freeware). My language tool is programmed to allow comments, so my language source file is heavily commented, in order to help/remind me about where phrases appear in the Ahnenblatt program.
That said, I have deduced a few facts about the language files which I hope can be confirmed:
- Files are save in Codepage 1252, which only allows limited foreign characters.
- Characters outside of Codepage 1252 are encoded using UTF-8, and appear as garbage to an editor using 1252. Incidentally, the AkelPad text editor can work in a foreign codepage (Cyrillic, for example), then save in 1252 with no BOM (byte order mark), as needed by Ahenblatt.
- Section headings in the language file (except [$CONSTANTS]) are identical to names in Ahnenblatt's resources (i.e. RCDATA).
- Variable names in language sections are (mostly) identical to objects or properties (in the resources) which require quoted strings - not all are needed in the language file.
- The [$CONSTANTS] section contains miscellaneous assignments from within the code of Ahnenblatt (e.g. misc. messageboxes, etc.). This makes it more difficult to determine the variable name and purpose in Ahnenblatt.
- Small additions to the language files are done by Dirk, and translated using Google Translate.
- load the "Ahnblatt.exe" file and find the resources
- parse the binary resources (not too difficult) and search for items requiring quoted strings
- compare those items to variables in the language file
I know that maintaining the language files is difficult - my hope is to help Dirk streamline the process, if I can. I have some ideas for a more comprehensive method to maintain the language files.
Thanks in advance to anyone who can confirm my assumptions (1 to 5) above. I don't want to spend a lot of time working with the resource files, only to discover that my assumptions were wrong. If anyone working on translations (who speaks/reads English!) wants to see my language tool, I would be happy to release both the binary version and (Free Pascal) source code.