Small update - bugfix.
The generated code files were looking in the current directory for the language files rather than the program directory of the application being created. This could have led to problems, particularly if your application was being used as a PB IDE tool for example! (ahem!

This has been fixed. It does mean, however, that when developing an application you should instruct Purebasic (via the IDE compiler options) to "Create temporary executable in the source directory" in order for the nxScribe generated code file to be able to locate your language files correctly at compile time. (Not a problem if using a default language file, but, otherwise...

Download nxScribe 1.0.2
===============================================
18th Oct 2007. Update - nxScribe version 1.0.0.
This is the first full release as no more bugs have been reported for a while.
I did take the opportunity, however, to upgrade the UI by adding a nice explorer bar gadget. Makes things function a little smoother as well.
(The screenshot looks a little cluttered but that's only because of the image resizing etc.

DOWNLOAD link is at the top of this thread.

15th Oct 2007. Update - nxScribe version 1.0 beta 5.
Have added an optional parameter to the function LoadLanguageFile() which forms part of the include file generated by nxScribe and used by applications to load language files and retrieve individual language strings etc.
You can now specifiy the name of a language file (at run time) to use and which takes absolute priority over any language files specified when building the include file.
E.g. LoadLanguageFile("c:\English.lan") will load the relevant language file. Unlike the language files specified at the time nxScribe builds the include file, the file path can either be a relative or absolute path. Use LoadLanguageFile() as per beta 4 if you prefer to use the file(s) specified at build time etc.
DOWNLOAD link is at the top of this thread.
15th Oct 2007. Update - nxScribe version 1.0 beta 4.
Beta 4 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.
DOWNLOAD link is at the top of this thread.
11th Oct 2007. Update - nxScribe version 1.0 beta 3.
A couple of bugs fixed.
Individual language files can now be saved in either PB preferences format, xml (utf-8 ) format or xml (utf-16) format.
REMOVED.
DOWNLOAD link is at the top of this thread.
10th Oct 2007. Update - nxScribe version 1.0 beta 2.
My thanks to all those who have tested out the first beta. Particular thanks to Gnozal and fangbeast for really going out of their way to help out.
Beta 2 sees the following alterations :
- Individual language files can now be saved in Purebasic preferences format (as in beta 1) or XML (utf-8 ) format (new for beta 2). I've tested the resulting XML files with IE 6 and they seem well formed etc.
Use XML format if you require trailing spaces with your language strings etc. - Individual language strings now retain their leading and trailing spaces (bug fix).
- The toolbar icons no longer appear dithered (bug with the nxToolbar library which is now fixed). My thanks to fangbeast for this.
- Grid columns are now resizeable.
- Bugs with keyboard shortcuts fixed.
- Added a button for adding rows to the grids used to edit language strings. You can still use the context menus however.
- Fixed an issue causing nxScribe to crash out on Win NT. Still remains to be seen whether this new version will run on NT however? (Gnozal?
)
- Altered a few other things, but can't remember what they were now!
DOWNLOAD link is at the top of this thread.
Hi,
here's an easy to use tool which I've created as part of a much bigger project, but is really a stand alone product in it's own right.
nxScribe will allow you to easily create, manage and maintain multiple language files for your own multi-language applications. In fact with the code generation feature, users of this tool will really not have to worry about the various languages their application must support as nxScribe can handle the lot!
First a screenshot (why not!)
REMOVED.
As you can see from the screenshot, all language strings (English, French, Swahili, Zulu,... etc.) are kept together within a single 'project', making life much easier than would be the case when dealing with separate files for each language.
nxScribe will, when instructed, create separate language files for your application and for any selection of the languages defined within the project.
These individual language files so created are totally compatible with the multi-language management code posted by Freak in the following thread :
http://www.purebasic.fr/english/viewtop ... t=language
So, even if you don't take advantage of nxScribe's code generation feature, you can still use Freak's source code to interface your nxScribe generated language files with your application.
This is a beta version for those able to test this early version. As such, there is no help facility added as yet, and there remain a couple of things for me to add (the main one being the code generation!

I've released it now as it is a convenient time for me to seek some bug hunters!
The zip file contains the executable + the project file used to generate the language files used for nxScribe itself. Just run the program and open the project to get a feel for how it all works. Better still get nxScribe to generate the English language file from this project etc. (I've added a column to this project for French, hoping some kind French speaking person will fill in the gaps for me!

The executable requires Win 2000 onwards although, if there is a demand, I can compile a version which 'should' run on earlier versions of Windows.
Sorry about the lack of documentation, but I think the application is easy enough to figure out!

Whilst the kind hearted testers are busy ripping nxScribe apart I will be completing the code generation and then the user manual etc.
Regards.
DOWNLOAD link is at the top of this thread.