00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
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 }