mirror of
https://github.com/wesnoth/wesnoth
synced 2025-05-18 13:57:00 +00:00
78 lines
1.7 KiB
C++
78 lines
1.7 KiB
C++
/* $Id$ */
|
|
/*
|
|
Copyright (C) 2003-5 by David White <davidnwhite@verizon.net>
|
|
Part of the Battle for Wesnoth Project http://www.wesnoth.org/
|
|
|
|
This program is free software; you can redistribute it and/or modify
|
|
it under the terms of the GNU General Public License.
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY.
|
|
|
|
See the COPYING file for more details.
|
|
*/
|
|
|
|
#include "global.hpp"
|
|
|
|
#include "gettext.hpp"
|
|
|
|
#include <cstring>
|
|
|
|
char const *egettext(char const *msgid)
|
|
{
|
|
return msgid[0] == '\0' ? msgid : gettext(msgid);
|
|
}
|
|
|
|
const char* sgettext (const char *msgid)
|
|
{
|
|
const char *msgval = gettext (msgid);
|
|
if (msgval == msgid) {
|
|
msgval = strrchr (msgid, '^');
|
|
if (msgval == NULL)
|
|
msgval = msgid;
|
|
else
|
|
msgval++;
|
|
}
|
|
return msgval;
|
|
}
|
|
|
|
const char* dsgettext (const char * domainname, const char *msgid)
|
|
{
|
|
bind_textdomain_codeset(domainname, "UTF-8");
|
|
const char *msgval = dgettext (domainname, msgid);
|
|
if (msgval == msgid) {
|
|
msgval = strrchr (msgid, '^');
|
|
if (msgval == NULL)
|
|
msgval = msgid;
|
|
else
|
|
msgval++;
|
|
}
|
|
return msgval;
|
|
}
|
|
|
|
const char* sngettext (const char *singular, const char *plural, int n)
|
|
{
|
|
const char *msgval = ngettext (singular, plural, n);
|
|
if (msgval == singular) {
|
|
msgval = strrchr (singular, '^');
|
|
if (msgval == NULL)
|
|
msgval = singular;
|
|
else
|
|
msgval++;
|
|
}
|
|
return msgval;
|
|
}
|
|
|
|
const char* dsngettext (const char * domainname, const char *singular, const char *plural, int n)
|
|
{
|
|
bind_textdomain_codeset(domainname, "UTF-8");
|
|
const char *msgval = dngettext (domainname, singular, plural, n);
|
|
if (msgval == singular) {
|
|
msgval = strrchr (singular, '^');
|
|
if (msgval == NULL)
|
|
msgval = singular;
|
|
else
|
|
msgval++;
|
|
}
|
|
return msgval;
|
|
}
|