Welcome! If you are reading this text it means that you are (maybe) interrested
in making traslations of program Blocek.
Virtualy all messages in this program are stored in external files.
For each language, two files are defined.
For example, they're BLOCEK1.EN and BLOCEK2.EN in English
Analogically, they're BLOCEK1.RU and BLOCEK2.RU in Russian
The messages in BLOCEK1.* files are displayed not for main program but from
the GUI library Wokna32 which is Blocek built on. It is used in e.g. file selector,
various YES-NO-CANCEL dialogs and so on.
The BLOCEK2.* files are messages specific to Blocek.
In both variants they have the same structure.
The lines beginning with "#" are LABELS
Other lines are displayed texts. They can be on one line ot they can take
more lines.

1) Labels:
All labels begin with char "#". Example:
-----------------------------------------------------------------------------
#_VYBINFO
-----------------------------------------------------------------------------

So far, the labels in the BLOCEK1.* files are prefixed by char "_" and labels
in BLOCEK2.* files are without prefix but it may change in the future.
You must NOT change these labels otherwise the program will not be able to find
the correct message. You can change the order of the labels+texts but I don't
recommend it because of the worse maintainability in such case.
The names of these labels are usualy based on the czech language so it can be
a complication for you but yeah, life is hard.
The special kind of line are these beginning with two # (with ##). Such lines
are commentaries. Example:
-----------------------------------------------------------------------------
## This message appears before saving the edited text.
-----------------------------------------------------------------------------

2) Texts:
Every line beggining with other char than "#" is considered as a message
belonging to last label.
The only exception is the space before the very first label.
All such lines are processed as the commentaries until first label line is
reached.
You can change these texts as you wish. Generaly, the one line messages should
be kept as the one line messages otherwise an unpredicted effects can happen.
In all lines, leading and trailing spaces are removed. If you want them, 
you have to close the desired text inside apostrophes.
Example:
-----------------------------------------------------------------------------
#_DOTAZ
'Question:     '
-----------------------------------------------------------------------------

Other special case are multi-message labels.
To reduce the number of labels, the following trick was introduced.
Some messages contain the asterix sign "*". 
Example:
-----------------------------------------------------------------------------
#exif_GPS_info
GPS information*latitude:*longitude:*altitude:*azimuth*N*S*W*E*m***
-----------------------------------------------------------------------------

The "*" signs splits the message into substrings which will be refered in the
program as #exif_GPS_info:1, #exif_GPS_info:2 and so on.
Splitting to substrings must be kept in all translations.
The empty lines:
If the empty lines are between "normal lines" they will be printed in the
message just as empty lines. If such lines are not between normal lines but
at the end of the messages they will be removed from the message. So you can
use them as a separator between last text line and the next label.

3) Tags:
Some general and specific tags are used in texts. They are
marked into <> brackets like in the most web marking languages.
The general tags are:
<FONT=somefont.ch> changes used font
<SF> returns previous font (line </FONT> in HTML)
<BARVA=xxxx> changes the text color to numeric value [xxxx]
<BARVA=!>    changes the text to internal predefined color number two
<SB> back to previous text color
<POZADI=xxxx> changes the text background to numeric value [xxxx]
<SP> back to original background
<PODTRH=+> text will be underlined
<PODTRH=-> text won't be underlined

You can place and remove these tags as you want - they have a cosmetic effect
only. And it is allowed (and recomended) to change more text attributes in one
tag. In such situation are the attributes separated by the ";" char. Example.
-----------------------------------------------------------------------------
<FONT=latin216,ch;BARVA=64000;PODTRH=+>Error<SF;SB;PODTRH=-> - press some key
-----------------------------------------------------------------------------
Besides these, specific tags are used in several places. They define the 
appearance and behavior only in some special situations.
The most important are:
<VYZNAM=x>  Meaning of the text. It is widely used in the GUI windowing system
            You should always keep this value as is. In the BLOCEK1.* files
            they are usulay a negative numbers, in BLOCEK2.* usualy positive

<KLAVESY=x> This tag is uses to display text on buttons. Word "klavesy"
            means "keys" and it defines the key shortcuts for activating
            from keyboard (without mouse clicking on this text). Example:
-----------------------------------------------------------------------------
#_ANO
' <BARVA=!;KLAVESY=y$;VYZNAM=-1>Y<SB>es '
-----------------------------------------------------------------------------
- Label "_ANO" (means "_yes")
- Changes text color to predefined system color used for highlighting the
  keyboard shortcuts
- Besides clicking to button can be the button acticated by pressing the
  [ALT-y] or by [enter]. The "$" char means [enter]
- The meaning of this text is represented by value "-1" which means 
  "confirmed" or "yes".
- The "Y" is printed with while color, the "ES" with black color


If you are curious how to write chars "<" and ">" you have the answer now:
besides "<" write "<<" and besides ">" write ">>"


4) Fonts and coding.
In the Blocek2.* files, the labels #sys_font and #sys_font_maly are 
at the very beginning with lines like:
   #sys_font
   latin216.ch
   #sys_font_maly
   latin214.ch
   #sys_font_kodovani
   852
These lines have a special meaning for the entire program and defines which 
fonts are used as the default GUI ones.
They are in the fact the configuration parameters.
The label/parameter "#sys_font_kodovani" specifies which encoding the texts 
are encoded.
It is important when copying text from GUI to clipboard.
The number (in this case 852) specifies the codepage.
You can also use Unicode fonts in the GUI. In such case, place the value 
0 or 65535 or write "unicode" (without quotes)
The labels/parameters "#sys_font" and "sys_font_maly" specifies which font 
is used to write the GUI messages. 
It should be correspondent with the "sys_font_kodovani" setting.
Note, that you can everytime override the GUI font using the <FONT> and <SF> 
tags - but only temporary. also note that there is currently no way how to 
temporary override the coding setting.

The last special parameter is the label "#identifikuj_se" in the BLOCEK2 files. 
The text in this label is the language identifier which must be in UTF-8 because 
it is always displayed in the Unicode font.

END OF TEXT
VERSION 1.22
DATE: xx/yy/zzzz

