Adding new language versions

New releases of PINs and MWSnap offer support for custom language modules. To add your own module, please follow these simple steps.

In the folder where the program is installed, open the \Lang folder and make a copy of the "English.ini" file, and name it according to the language you want to add. (for example "German.ini" or even better "Deutsch.ini" for a German module). Please don't change the file extension, it must remain .ini.

Now open the file with a text editor like system Notepad, and translate the strings to the new language. Each string is represented in the form


Please translate only the contents (the part after the "=" sign.) The name serves as a string identifier and must remain unchanged.

Here is a small example:

frmMain.optRecordCopy.Caption=Duplicate record
frmMain.optCatRename.Caption=Rename category
rsDeleteRec=Delete current record?

The strings like "frmMain.optRecordCopy.Caption" are identifiers. Please translate only texts "Duplicate record", "Rename category", "Delete current record?" in this case.

Make sure you don't exceed the length of the particular strings too much, if they appear within dialog boxes. All dialogs are designed with translation in mind so there is usually some extra space for longer translations, but be sure to check if your texts are not trimmed.

Special characters

In some texts several special characters can appear.

%s, %d

These are placeholders and will be expanded to values when the program runs. %s is a placeholder for a text and %d is a placeholder for a numerical value. Please leave placeholders in your translated version, just place them at the proper position.

"Text [%s] was not found" will be expanded at runtime for example to "Text [e-mail] was not found"
"Count of records: %d" will be expanded at runtime for example to "Count of records: 243"


Hot key symbol. If the text being translated is a button's caption or a menu item, one of characters can be preceded with the hot key symbol. It will then automatically get underlined and will be selectable using the standard Windows <Alt-character> combination.

"&Cancel" will appear as "Cancel", <Alt-C> will activate this button automatically.


This symbol stands for a line break (carriage return). It is used in long strings, for example in messages and warnings.

rsFileXNotFound=File*|*[%s]*|*has not been found!

Country flags

After saving the file, you can supply a small 32 x 20 bitmap that represents your country. It will be displayed in the language selection window. In order to have the program combine the bitmap with the .ini file, it must have exactly the same filename (just with a .bmp extension).

For example :
Dutch.ini (language module)
Dutch.bmp (optional country flag)

I have a large collection of flags pictures, so ask me before drawing a new one.

About the Translator

Three first lines of the message module allow adding the translator details and show up in the running program when selecting the language module. You can put there whatever you want, including your name, URL, etc.

Info1=English translation
Info2=By Mirek Wójtowicz


To install and test the new language module, just copy both .ini and .bmp files into the \Lang subfolder, and choose the new language using the Tools/Language option.

Please send your language modules to if you want to publish them on my download page. Please notice that I cannot publish multiple versions for a language, as long as the new version is not an improvement to the existing version.

Thank you for your contribution!


Webmaster: Mirek Wojtowicz


Last update: 14 Dec 2001