This describes the format of PLANG.HST / PLANG4.HST of PHost version 4.1 and 3.5 upwards. Previous versions use an encrypted file format not documented here.
PLANGxx.HST is a container file using the "ar" file format.
+0 8 BYTEs Signature, "!<arch>",10 +8 n RECORDs of variable length, containing the individual languages: +0 16 BYTEs File name. Terminated with a '/' character or, if none, with a ' '. For PLANGxx.HST, this always has the form "NAME.phl", where "NAME" is the name of the language, in lower case, truncated to 8 characters. +16 12 BYTEs File time, seconds since epoch, decimal. +28 6 BYTEs User Id, decimal. +34 6 BYTEs Group Id, decimal. +40 8 BYTEs File mode (permissions), octal. +48 10 BYTEs File size, decimal. +58 2 BYTEs Signature, "`",10 +60 n BYTEs File data +? 1 BYTE Padding. Only present if file size is odd, to align next record to even position.
The numeric fields are formatted into ASCII numbers using the specified base, and stored left-justified, space-padded. PHost ignores all but the file size field, thus the others are not filled in in the file distributed with PHost.
Format of individual Languages
Each language file, "NAME.phl", consists of a sequence of strings delimited by null characters (ASCII 0).
The first string in each file contains control information in the form of a sequence of assignments:
VERSION=4,LANGUAGE=German,STRINGS=438
- "VERSION=4" marks this as a file for PHost 4.x
- "LANGUAGE=German" contains the spelled-out language name
- "STRINGS=438" contains the number of strings that follow
PHost addresses strings by index, i.e. the fifth string in german.phl is the translation of the fifth string in english.phl. In order to save space, if a string in a language other than English is empty, PHost uses the English string instead.