<URL: http://bugs.freeciv.org/Ticket/Display.html?id=40059 >
Based on discussion on the -i18n list, it seems that removing the possessive names is highly desirable. And, that swapping the fields is common. Also, there's a list of sentence fragments immediately following the header. Changed to allow translators more flexibility. Committed S2_2 revision 14346. Committed trunk revision 14347.
Index: server/report.c =================================================================== --- server/report.c (revision 14346) +++ server/report.c (working copy) @@ -53,22 +53,35 @@ #define HISTORIAN_LAST HISTORIAN_LARGEST static const char *historian_message[]={ - N_("%s report on the RICHEST Civilizations in the World %s."), - N_("%s report on the most ADVANCED Civilizations in the World %s."), - N_("%s report on the most MILITARIZED Civilizations in the World %s."), - N_("%s report on the HAPPIEST Civilizations in the World %s."), - N_("%s report on the LARGEST Civilizations in the World %s.") + /* TRANS: year <name> reports ... */ + N_("%s %s reports on the RICHEST Civilizations in the World."), + /* TRANS: year <name> reports ... */ + N_("%s %s reports on the most ADVANCED Civilizations in the World."), + /* TRANS: year <name> reports ... */ + N_("%s %s reports on the most MILITARIZED Civilizations in the World."), + /* TRANS: year <name> reports ... */ + N_("%s %s reports on the HAPPIEST Civilizations in the World."), + /* TRANS: year <name> reports ... */ + N_("%s %s reports on the LARGEST Civilizations in the World.") }; static const char *historian_name[]={ - N_("Herodotus'"), - N_("Thucydides'"), - N_("Pliny the Elder's"), - N_("Livy's"), - N_("Toynbee's"), - N_("Gibbon's"), - N_("Ssu-ma Ch'ien's"), - N_("Pan Ku's") + /* TRANS: [year] <name> [reports ...] */ + N_("Herodotus"), + /* TRANS: [year] <name> [reports ...] */ + N_("Thucydides"), + /* TRANS: [year] <name> [reports ...] */ + N_("Pliny the Elder"), + /* TRANS: [year] <name> [reports ...] */ + N_("Livy"), + /* TRANS: [year] <name> [reports ...] */ + N_("Toynbee"), + /* TRANS: [year] <name> [reports ...] */ + N_("Gibbon"), + /* TRANS: [year] <name> [reports ...] */ + N_("Ssu-ma Ch'ien"), + /* TRANS: [year] <name> [reports ...] */ + N_("Pan Ku") }; static const char scorelog_magic[] = "#FREECIV SCORELOG2 "; @@ -145,13 +158,25 @@ ((const struct player_score_entry *)a)->value); } -static const char *greatness[MAX_NUM_PLAYERS] = { - N_("Magnificent"), N_("Glorious"), N_("Great"), N_("Decent"), - N_("Mediocre"), N_("Hilarious"), N_("Worthless"), N_("Pathetic"), - N_("Useless"), "Useless", "Useless", "Useless", "Useless", "Useless", - "Useless", "Useless", "Useless", "Useless", "Useless", "Useless", - "Useless", "Useless", "Useless", "Useless", "Useless", "Useless", - "Useless", "Useless", "Useless", "Useless" +static const char *greatness[] = { + /* TRANS: <1>: The <ranking> Poles */ + N_("%2d: The Magnificent %s"), + /* TRANS: <2>: The <ranking> Poles */ + N_("%2d: The Great %s"), + /* TRANS: <3>: The <ranking> Poles */ + N_("%2d: The Glorious %s"), + /* TRANS: <4>: The <ranking> Poles */ + N_("%2d: The Excellent %s"), + /* TRANS: <5>: The <ranking> Poles */ + N_("%2d: The Average %s"), + /* TRANS: <6>: The <ranking> Poles */ + N_("%2d: The Mediocre %s"), + /* TRANS: <7>: The <ranking> Poles */ + N_("%2d: The Pathetic %s"), + /* TRANS: <8>: The <ranking> Poles */ + N_("%2d: The Useless %s"), + /* TRANS: <9>: The <ranking> Poles */ + N_("%2d: The Worthless %s"), }; /************************************************************************** @@ -195,17 +220,23 @@ buffer[0] = '\0'; for (i = 0; i < j; i++) { if (i == 0 || size[i].value < size[i - 1].value) { - rank = i; + if (i >= sizeof(greatness)) { + rank = sizeof(greatness) - 1; + } else if (j >= sizeof(greatness)) { + rank = i; + } else { + rank = (i * sizeof(greatness)) / j; + } } cat_snprintf(buffer, sizeof(buffer), - _("%2d: The %s %s\n"), + _(greatness[rank]), rank + 1, - _(greatness[rank]), nation_plural_for_player(size[i].player)); + mystrlcat(buffer, "\n", sizeof(buffer)); } my_snprintf(title, sizeof(title), _(historian_message[which_news]), - _(historian_name[myrand(ARRAY_SIZE(historian_name))]), - textyear(game.info.year)); + textyear(game.info.year), + _(historian_name[myrand(ARRAY_SIZE(historian_name))])); page_conn_etype(game.est_connections, _("Historian Publishes!"), title, buffer, E_BROADCAST_REPORT); }
_______________________________________________ Freeciv-dev mailing list Freeciv-dev@gna.org https://mail.gna.org/listinfo/freeciv-dev