Beta 4 (the final one before the first release version) sees the addition of code generation.
nxScribe will now produce a Purebasic source code file which your application uses (with XIncludeFile) to load your language file(s) and retrieve individual language strings.
It handles whetever format of language file you create (Purebasic preferences file, xml utf-8 format or xml utf-16 format) and gives you a choice of how your application is to retrieve it's language strings, namely :
1) through a function call : Language(group$, name$)
or 2) through the use of a global array : gLanguage$().
Option 1) is very flexible and uses a binary-chop to find the required language string etc. so is quite fast. If the required string is not found it just returns an empty string. You also only need to build this PB file once unless you wish to change some of the build options.
Option 2) is blisteringly fast, relying upon an enumerated list of constants which you use for the array indexes. However, this option requires that you rebuild the PB include file every time you make any kind of change to the structure of the underlying language files (else the array indexes could be out of bounds etc).
The choice is yours!
There are additional options such as the use of a default language file (which is packed into the application's executable and used if the application can find none of the specified language files) and these options do need a little care where file paths are concerned.
E.g. any default language file must be in the 'current directory' when the application is being built. At run time (after deployment) the language files are in a folder whose location is specified relative to the application installation folder etc.
Basically I need to get the help manual written!

When you have built the PB include file; just XIncludeFile into your application source, doing so very early on in the build. Right at the top of your source if possible.
Call the function : LoadLanguageFile() to load the appropriate language file(s). If this function returns zero then there was an error in trying to load the language file. In this case you would probably decide to terminate your application. It is therefore vitally important to check this return value.
See the first post for the download link.