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 version are defined two such files.
For example for english they are BLOCEK1.EN and BLOCEK2.EN
Analogicaly - for russian language they are BLOCEK1.RU and BLOCEK2.RU
The messages in BLOCEK1.* files are displayed not for main program but from
the GUI library Wokna32 which is Blocek built on. It is for example fileselector,
various YES-NO-CANCEL dialogs and so on.
In files BLOCEK2.* are specific messages just for editor Blocek.
In both variants they have the same structure.
The lines beginning with "#" are LABELS
Other lines are the 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 beggining 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.
From all lines are removed leading and tailing spaces. If you want them you
have to close the desired text inside apostrophes. Example:
-----------------------------------------------------------------------------
#_DOTAZ
'Question:     '
-----------------------------------------------------------------------------

Other special case are multi-message labels.
To reduced the amount of labels was the following trick 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.
This spliting into substrings must be kept in all language translations too.
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:
Inside texts are used several general tags and several specific tags. 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 will be without underline

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 are in several places used specific tags. They define the appearance
and even the behaviour in only 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 used with texts displayed 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" what means "confirmated"
  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 is somewhere in the very begining the label
#sys_font with line like <FONT=latin216.ch>
This line has a special meaning for the whole program and it defines which
font will be uset as the default one for all GUI system.
You can override it everywhere by the <FONT> tag but only temporary.
As most of the fonts define the 256 chars the texts are taken as the
8-bit ASCII coding.
However you can also set the #sys_font to <FONT=unismall.ufn> which is a
unicode font. This situation is expected and in this situation are the texts
expected to be in the UTF-8 coding.
Even in this scenario you can switch the actual font to some other one with
the <FONT> tag. If the new font is 8-bit the following text is expected to be
in ASCII coding but as soon as you switch back with <SF> tag the text reader
will switch back to unicode UTF-8 mode.

The only exception from this rules is the label "#identifikuj_se" in the
BLOCEK2 files. The one-line text in this label is the language identifier
which must be in the unicode UTF-8 coding because it is always displayed
with the unicode font.

END OF TEXT
VERSION 1.0
DATE: 5/May/2021