I merged this now and fixed the issue you had with boost::format. The problem here was that player_no was defined to be a [u]int_8 which is the same as unsigned char on most systems. boost now does not understand that this is not a single character, but indeed a small integer value. I got around this by defining player_no to be a simple int (i.e. 4 byte integer). You could also cast in the future:
I merged this now and fixed the issue you had with boost::format. The problem here was that player_no was defined to be a [u]int_8 which is the same as unsigned char on most systems. boost now does not understand that this is not a single character, but indeed a small integer value. I got around this by defining player_no to be a simple int (i.e. 4 byte integer). You could also cast in the future:
(format( ngettext( "%u player", "%u players, player_no)) % static_ cast<int> (player_ no)).str( ).c_str( )