gettext.cpp

Go to the documentation of this file.
00001 /* $Id: gettext.cpp 23842 2008-02-16 08:47:16Z mordante $ */
00002 /*
00003    Copyright (C) 2003 - 2008 by David White <dave@whitevine.net>
00004    Part of the Battle for Wesnoth Project http://www.wesnoth.org/
00005 
00006    This program is free software; you can redistribute it and/or modify
00007    it under the terms of the GNU General Public License version 2
00008    or at your option any later version.
00009    This program is distributed in the hope that it will be useful,
00010    but WITHOUT ANY WARRANTY.
00011 
00012    See the COPYING file for more details.
00013 */
00014 
00015 #include "global.hpp"
00016 
00017 #include "gettext.hpp"
00018 
00019 #include <cstring>
00020 
00021 char const *egettext(char const *msgid)
00022 {
00023     return msgid[0] == '\0' ? msgid : gettext(msgid);
00024 }
00025 
00026 const char* sgettext (const char *msgid)
00027 {
00028     const char *msgval = gettext (msgid);
00029     if (msgval == msgid) {
00030         msgval = std::strrchr (msgid, '^');
00031         if (msgval == NULL)
00032             msgval = msgid;
00033         else
00034             msgval++;
00035     }
00036     return msgval;
00037 }
00038 
00039 const char* dsgettext (const char * domainname, const char *msgid)
00040 {
00041     bind_textdomain_codeset(domainname, "UTF-8");
00042     const char *msgval = dgettext (domainname, msgid);
00043     if (msgval == msgid) {
00044         msgval = std::strrchr (msgid, '^');
00045         if (msgval == NULL)
00046             msgval = msgid;
00047         else
00048             msgval++;
00049     }
00050     return msgval;
00051 }
00052 
00053 const char* sngettext (const char *singular, const char *plural, int n)
00054 {
00055     const char *msgval = ngettext (singular, plural, n);
00056     if (msgval == singular) {
00057         msgval = std::strrchr (singular, '^');
00058         if (msgval == NULL)
00059             msgval = singular;
00060         else
00061             msgval++;
00062     }
00063     return msgval;
00064 }
00065 
00066 const char* dsngettext (const char * domainname, const char *singular, const char *plural, int n)
00067 {
00068     bind_textdomain_codeset(domainname, "UTF-8");
00069     const char *msgval = dngettext (domainname, singular, plural, n);
00070     if (msgval == singular) {
00071         msgval = std::strrchr (singular, '^');
00072         if (msgval == NULL)
00073             msgval = singular;
00074         else
00075             msgval++;
00076     }
00077     return msgval;
00078 }

Generated by doxygen 1.5.5 on 23 May 2008 for The Battle for Wesnoth
Gna! | Forum | Wiki | CIA | devdocs