forked from github/server
Get the NR message text from locale.
This commit is contained in:
parent
c0ed53b679
commit
615dfe7ec5
10 changed files with 47 additions and 5659 deletions
|
@ -1650,7 +1650,7 @@
|
||||||
<text locale="de">"$string"</text>
|
<text locale="de">"$string"</text>
|
||||||
<text locale="en">"$string"</text>
|
<text locale="en">"$string"</text>
|
||||||
</message>
|
</message>
|
||||||
<message name="battle_army_index" section="battle">
|
<message name="para_army_index" section="battle">
|
||||||
<type>
|
<type>
|
||||||
<arg name="index" type="int"/>
|
<arg name="index" type="int"/>
|
||||||
<arg name="name" type="string"/>
|
<arg name="name" type="string"/>
|
||||||
|
@ -7179,7 +7179,7 @@
|
||||||
<text locale="en">"$unit($mage) casts $spell($spell), but nobody was in range."</text>
|
<text locale="en">"$unit($mage) casts $spell($spell), but nobody was in range."</text>
|
||||||
</message>
|
</message>
|
||||||
|
|
||||||
<message name="after_battle" section="battle">
|
<message name="para_after_battle" section="battle">
|
||||||
<type>
|
<type>
|
||||||
</type>
|
</type>
|
||||||
<text locale="de">"Einheiten nach dem Kampf:"</text>
|
<text locale="de">"Einheiten nach dem Kampf:"</text>
|
||||||
|
@ -7245,7 +7245,7 @@
|
||||||
<text locale="en">"$unit($mage) causes the walls of $building($building) to glow in an eerie magic light."</text>
|
<text locale="en">"$unit($mage) causes the walls of $building($building) to glow in an eerie magic light."</text>
|
||||||
</message>
|
</message>
|
||||||
|
|
||||||
<message name="lineup_battle" section="battle">
|
<message name="para_lineup_battle" section="battle">
|
||||||
<type>
|
<type>
|
||||||
<arg name="turn" type="int"/>
|
<arg name="turn" type="int"/>
|
||||||
</type>
|
</type>
|
||||||
|
|
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
@ -2886,7 +2886,7 @@ static void print_stats(battle * b)
|
||||||
message *msg;
|
message *msg;
|
||||||
char buf[1024];
|
char buf[1024];
|
||||||
|
|
||||||
msg = msg_message("battle_army_index", "index name", army_index(s), sname);
|
msg = msg_message("para_army_index", "index name", army_index(s), sname);
|
||||||
battle_message_faction(b, f, msg);
|
battle_message_faction(b, f, msg);
|
||||||
msg_release(msg);
|
msg_release(msg);
|
||||||
|
|
||||||
|
@ -3497,9 +3497,9 @@ static int battle_report(battle * b)
|
||||||
sbs_init(&sbs, buf, sizeof(buf));
|
sbs_init(&sbs, buf, sizeof(buf));
|
||||||
|
|
||||||
if (cont)
|
if (cont)
|
||||||
m = msg_message("lineup_battle", "turn", b->turn);
|
m = msg_message("para_lineup_battle", "turn", b->turn);
|
||||||
else
|
else
|
||||||
m = msg_message("after_battle", "");
|
m = msg_message("para_after_battle", "");
|
||||||
battle_message_faction(b, fac, m);
|
battle_message_faction(b, fac, m);
|
||||||
msg_release(m);
|
msg_release(m);
|
||||||
|
|
||||||
|
|
|
@ -918,10 +918,10 @@ static void export_locale(const struct locale *lang, const char *name) {
|
||||||
char fname[64];
|
char fname[64];
|
||||||
FILE * F;
|
FILE * F;
|
||||||
|
|
||||||
sprintf(fname, "strings.%2s.po", name);
|
sprintf(fname, "messages.%2s.po", name);
|
||||||
F = fopen(fname, "wt");
|
F = fopen(fname, "wt");
|
||||||
if (F) {
|
if (F) {
|
||||||
export_strings(lang, F);
|
export_messages(lang, F, NULL);
|
||||||
fclose(F);
|
fclose(F);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -743,6 +743,10 @@ rp_messages(struct stream *out, message_list * msgs, faction * viewer, int inden
|
||||||
k = 1;
|
k = 1;
|
||||||
}
|
}
|
||||||
nr_render(m->msg, viewer->locale, lbuf, sizeof(lbuf), viewer);
|
nr_render(m->msg, viewer->locale, lbuf, sizeof(lbuf), viewer);
|
||||||
|
/* Hack: some messages should start a new paragraph with a newline: */
|
||||||
|
if (strncmp("para_", m->msg->type->name, 5) == 0) {
|
||||||
|
newline(out);
|
||||||
|
}
|
||||||
paragraph(out, lbuf, indent, 2, 0);
|
paragraph(out, lbuf, indent, 2, 0);
|
||||||
}
|
}
|
||||||
m = m->next;
|
m = m->next;
|
||||||
|
|
|
@ -258,29 +258,6 @@ void po_write_msg(FILE *F, const char *id, const char *str, const char *ctxt) {
|
||||||
fputs("\"\n\n", F);
|
fputs("\"\n\n", F);
|
||||||
}
|
}
|
||||||
|
|
||||||
void export_strings(const struct locale * lang, FILE *F) {
|
|
||||||
int i;
|
|
||||||
|
|
||||||
for (i = 0; i != SMAXHASH; ++i) {
|
|
||||||
const struct locale_str *find = lang->strings[i];
|
|
||||||
while (find) {
|
|
||||||
const char *dcolon = strstr(find->key, "::");
|
|
||||||
if (dcolon) {
|
|
||||||
size_t len = dcolon - find->key;
|
|
||||||
char ctxname[16];
|
|
||||||
assert(sizeof(ctxname) > len);
|
|
||||||
memcpy(ctxname, find->key, len);
|
|
||||||
ctxname[len] = '\0';
|
|
||||||
po_write_msg(F, dcolon + 2, find->str, ctxname);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
po_write_msg(F, find->key, find->str, NULL);
|
|
||||||
}
|
|
||||||
find = find->nexthash;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
const char *locale_name(const locale * lang)
|
const char *locale_name(const locale * lang)
|
||||||
{
|
{
|
||||||
return lang ? lang->name : "(null)";
|
return lang ? lang->name : "(null)";
|
||||||
|
|
|
@ -58,7 +58,6 @@ extern "C" {
|
||||||
void make_locales(const char *str);
|
void make_locales(const char *str);
|
||||||
|
|
||||||
void locale_foreach(void(*callback)(const struct locale *lang, const char *name));
|
void locale_foreach(void(*callback)(const struct locale *lang, const char *name));
|
||||||
void export_strings(const struct locale * lang, FILE *F);
|
|
||||||
void po_write_msg(FILE *F, const char *id, const char *str, const char *ctxt);
|
void po_write_msg(FILE *F, const char *id, const char *str, const char *ctxt);
|
||||||
|
|
||||||
#define LOC(lang, s) (lang?locale_string(lang, s, true):s)
|
#define LOC(lang, s) (lang?locale_string(lang, s, true):s)
|
||||||
|
|
|
@ -32,7 +32,12 @@ static nrmessage_type *nrtypes[NRT_MAXHASH];
|
||||||
|
|
||||||
const char *nrt_string(const struct nrmessage_type *nrt, const struct locale *lang)
|
const char *nrt_string(const struct nrmessage_type *nrt, const struct locale *lang)
|
||||||
{
|
{
|
||||||
return locale_getstring(lang, nrt->mtype->name);
|
const char * str = locale_getstring(lang, nrt->mtype->name);
|
||||||
|
if (!str) {
|
||||||
|
str = locale_getstring(default_locale, nrt->mtype->name);
|
||||||
|
}
|
||||||
|
assert(str);
|
||||||
|
return str;
|
||||||
}
|
}
|
||||||
|
|
||||||
nrmessage_type *nrt_find(const struct message_type * mtype)
|
nrmessage_type *nrt_find(const struct message_type * mtype)
|
||||||
|
@ -169,3 +174,14 @@ void free_nrmesssages(void) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void export_messages(const struct locale * lang, FILE *F, const char *msgctxt) {
|
||||||
|
int i;
|
||||||
|
for (i = 0; i != NRT_MAXHASH; ++i) {
|
||||||
|
nrmessage_type *nrt = nrtypes[i];
|
||||||
|
while (nrt) {
|
||||||
|
po_write_msg(F, nrt->mtype->name, nrt_string(nrt, lang), msgctxt);
|
||||||
|
nrt = nrt->next;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -43,6 +43,8 @@ extern "C" {
|
||||||
char *buffer, size_t size, const void *userdata);
|
char *buffer, size_t size, const void *userdata);
|
||||||
const char *nr_section(const struct message *msg);
|
const char *nr_section(const struct message *msg);
|
||||||
|
|
||||||
|
void export_messages(const struct locale * lang, FILE *F, const char *msgctxt);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in a new issue