Pathfinder: Updated

I’ve been taking a look at the rules for Pathfinder and so far I can’t see any significant differences from 3.5 D&D. I’ve taken a look at Wikipedia and it seems to be more informative, I’m making progress!

So far it looks pretty similar, but I guess some new data will need to be provided.

I’ll have to make some changes to the classes and skills and I’ll take a look at that over the next few weeks.

Please let me know if there’s anything else I need to change.

D&D Manager 2.3.1 released

Earlier today I released D&D Manager 2.3.1 and this can be downloaded from the sidebar on the left hand side or from the downloads page.

Thanks to Lester Ward for reporting an issue fixed in this release.

D&D Manager 2.3 Released

I’ve been taking a look through D&D Manager over the past few days and I’ve managed to fix a fair few bugs and made some other minor changes. These changes especially apply to Feats and Weapons. Of note files opened with this version will no longer work with previous versions.

Thanks to Jonas Ernstsen for filing a bug report which has been fixed in this release.

This can be downloaded from the download page or the link on the left hand side.


I made a mistake with my localisation coding and I assumed that NSLocalizedString used the form NSLocalizedString(key,value) when in fact it uses NSLocalizedString(keyValue,comment). Rather than go back and redo my coding so that it would work I created a new program called CocoaLocalizer to do this hard work for me. This program creates better comments than genstrings as it allows you to import comments from an external file with the same keys, and it also displays the ‘default value’ in the comment so you can see what you’re translating from. Additionally it allows you to ‘merge’ another .strings file (though it misses the comments in that at the moment) into the one it generates. Also the application checks both the keys and values to make sure they don’t clash with existing values and displays a ‘nice’ error for this.

It also works with NSLocalizedString done in the default way as well (i.e. NSLocalizedString(keyValue, comment) and with that it just uses the extra comment from the comment.strings file as another comment.

This program has a Cocoa interface and isn’t a command line application and it requires Mac OS X 10.6 Snow Leopard.

It can be downloaded from the applications Sourceforge project page at:

Localisation part 2

As I mentioned in my original post on Localisation I’ve written some code to extract the strings from my programming code.

This file can be downloaded individually from here and they’ve also been added to the original zip file, which can be found here.

UPDATE: I’ve finished creating this comments file now. Still dropping me an email giving me a regular update of your changes would be great.

New Data file released

This evening I received some new data file information from Dan Brown, which has now been uploaded to my website and can be downloaded from the data page or the link on the left hand side.

D&D Manager 2.2.7 released

I’ve just released a new version of D&D Manager, with minor fixes and improvements.

Thanks to Thomas Gordon for help in pointing out the lack of Gnome ‘type’ for characters.

The new version can be downloaded now on the left hand side or from the downloads page.

Data file updated

I got some information on new spells, which I have added to the data file. This is now at version 2.1.7 and can be downloaded from the left hand menu or the data project page.

Thanks to Dan Brown for the information in this update.

Looking at Localisation

Today I’ve also had a look at the options available for localisation of D&D Manager. I’ve started out by creating some of the files with lists of strings to translate. I’ve created a strings file for each of the user interface “.xib” files that are used to create the interface. This has produced a series of .strings files which I’ve uploaded to my website.

These files can be downloaded in one big zip here.

From these files you have to convert the text after the equals sign on each line to the language you are translating to. i.e. in the following example

/* Class = “NSBox”; title = “Box”; ObjectID = “14489”; */

“14489.title” = “Box”;

You are wanting to translate the word Box, so (assuming is holding up) if you wanted to translate that into Spanish you’d land up with:

/* Class = “NSBox”; title = “Box”; ObjectID = “14489”; */

“14489.title” = “Recuadro”;

Now that seems fairly simple, and that’s all that has to be done for each entry. Now for the bad news, there are around 2500 strings to translate so its going to be a fair bit of work. Fortunately though there are quite a few duplicates (like the box example where there are actually 170 different uses of the word Box, so with multi-file find and replace you can do them all in one go.) and there are also things like +, – etc. which probably won’t need translating.

Although there are 170 versions of the word Box appearing that is one of the more common things to appear in the user interface files – and actually I don’t know if it appears in the final UI at all so it could be skipped. I’d personally make a very, very rough estimate that there are 750 unique strings that will need translating (though there could easily be as many as 1000).

To make the situation even worse this isn’t actually a complete list. There are approximately a further 200 – 250 strings that are created programatically, but quite a few of those will overwrite some strings in the user interface – it might be difficult to be sure which is which, but if you load the program, any strings which change are created programmatically. I haven’t got them in this list as they aren’t in the form required for them to be translated into different languages.

If you are still interested in translating to your language add a comment to this post so everyone can see what has been done, also if anyone is interested in doing a decent amount of translation then I’ll convert the 200-odd strings that are created programmatically into a form which means they can be translated easily.

Its also worth noting that the localisation files have been created from SVN revision 185, in case anyone wants to re-create them later

EDIT: To save the irony of the only text in the program not being localised being the menu item which links to this post, I also need: Information on Localisation translating.