Amadis
lang.ini /LANG_CFG format
The lang.ini is an ASCII file contains for all supported languages, the message definition, this ACE_CLIENT side.
The LANG_CFG is a binary file, updated on the level 3 side by Kizis/OpenAce from a lang.ini message sent by ACE_Client
lang.ini Format
Language field defines the number of languages supported, with index and ISO 639-1 code (excepted for Canadian French! = ca
[Language]
1=en
2=fr
3=ca
in this file for example we have 3 languages
This is followed by each language defined by the ISO 639-1 code, mandatory label and message definitions with ID
[en]
Label=ENGLISH
01=AMOUNT
02=AMOUNT OK?
03=APPROVED
04=CALL YOUR BANK
05=CANCEL OR ENTER
06=CARD ERROR
07=DECLINED
08=ENTER AMOUNT
..
9A=TAP UNAIVALABLE\\SEE ATTENDANT
check=0D6B251759DF633A
Here the message ID or Index for CARD ERROR is 0x06
At the end of each language a SHA on 20 bytes is calculated on all messages + indexes
Such as check=0D6B251759DF633A
And the same pattern for other languages
[fr]
Label=FRANCAIS
01=MONTANT
02=MONTANT OK?
03=APPROUVE
…
99=CARTE ABSENTE
9A=TAP INDISPONIBLE\\VOIR MARCHAND
check=A4696D0FDF594A75
[ca]
Label=Canadien
01=MONTANT-$$
02=AMOUNT OK?
03=APPROVED\\APPROVE
..
99=NO CARD\\CARTE ABSENTE
9A=TAP UNAIVALABLE\\SEE ATTENDANT
check=6B2AE6A5B74F366C
LANG_CFG FORMAT:
VERSION
{
[1 byte] Version Prefix
[1 byte] VersionNumber
}
such as:
LANGUAGE ENTRY x [Number Languages]
{
LANGUAGE HEADER
{
[2 bytes] ISO 639-1 Code (1st entry is Default Language, Code = 3030 is allowed for undefined Language example: Canada Bilingual) as for example:
[2 bytes] Length of LANGUAGE DATA (i.e. including SHA-1)
as for example here 0x04AC bytes
[20 bytes] SHA-1 of LANGUAGE DATA
}
as for example:
LANGUAGE DATA (max 2048 bytes)
{
MESSAGE ENTRY x [Number Messages]
{
[1 byte] Message Index
[1 byte] Message Length
such as for example, index is 0m length is 8, including the 0 value byte (NULL) after the text:
[variable] Message String (max 64 bytes)
as for example:
}
}
}
NOTE: Message Index = 0 is used for Language Label (ex: 00='ENGLISH')