diff --git a/src/common/util/nrmessage.c b/src/common/util/nrmessage.c index 9e2407e9a..c5e13cfe0 100644 --- a/src/common/util/nrmessage.c +++ b/src/common/util/nrmessage.c @@ -131,7 +131,6 @@ nrt_register(const struct message_type * mtype, const struct locale * lang, cons c+= strlen(strcpy(c, mtype->pnames[i])); } nrt->vars = strdup(zNames); - /* TODO: really necessary to strdup them all? here? better to extend the caller? hash? */ } } diff --git a/src/common/util/translation.c b/src/common/util/translation.c index 51ca8f925..2ee2b38b0 100644 --- a/src/common/util/translation.c +++ b/src/common/util/translation.c @@ -383,10 +383,17 @@ translate(const char* format, const void * userdata, const char* vars, variant a } } - if (parse(&stack, format, userdata)==NULL) return NULL; - rv = (const char*)opop(&stack).v; - free(stack->begin); - free(stack); + if (format[0]=='"') { + rv = parse(&stack, format, userdata); + } + else { + rv = parse_string(&stack, format, userdata); + } + if (rv!=NULL) { + rv = (const char*)opop(&stack).v; + free(stack->begin); + free(stack); + } return rv; } diff --git a/src/res/messages.xml b/src/res/messages.xml index 48c11a878..dce3168e1 100644 --- a/src/res/messages.xml +++ b/src/res/messages.xml @@ -1967,9 +1967,8 @@ - "$if($isnull($mage),"Ein unentdeckter Magier",$unit($mage)) erschuf einen heiligen Hain von $int($amount) Schößlingen." - $if($isnull($mage),"An unknown magician ",$unit($mage)) created a holy forest of $int($amount) young trees." - $if($isnull($mage),"An unknown magician ",$unit($mage)) created a holy forest of $int($amount) young trees." + $if($isnull($mage),"Ein unentdeckter Magier",$unit($mage)) erschuf einen heiligen Hain von $int($amount) Schößlingen. + $if($isnull($mage),"An unknown magician ",$unit($mage)) created a holy forest of $int($amount) young trees.