1
0
mirror of https://github.com/anope/anope.git synced 2026-06-26 23:16:39 +02:00

Changed the language system to use gettext

This commit is contained in:
Adam
2010-09-26 02:33:01 -04:00
parent 05e6815d91
commit d646d455e2
239 changed files with 168730 additions and 90259 deletions
-72
View File
@@ -81,75 +81,3 @@ void notice_server(const Anope::string &source, const Server *s, const char *fmt
}
}
/*************************************************************************/
/**
* Send a message in the user's selected language to the user using NOTICE.
* @param source Orgin of the Message
* @param u User Struct
* @param int Index of the Message
* @param ... any number of parameters
* @return void
*/
void notice_lang(const Anope::string &source, const User *dest, int message, ...)
{
if (!dest || !message)
return;
va_list args;
va_start(args, message);
const char *fmt = getstring(dest, message);
if (!fmt)
return;
char buf[4096] = ""; /* because messages can be really big */
vsnprintf(buf, sizeof(buf), fmt, args);
sepstream lines(buf, '\n');
Anope::string line;
while (lines.GetToken(line))
dest->SendMessage(source, "%s", line.empty() ? " " : line.c_str());
va_end(args);
}
/*************************************************************************/
/**
* Like notice_lang(), but replace %S by the source. This is an ugly hack
* to simplify letting help messages display the name of the pseudoclient
* that's sending them.
* @param source Orgin of the Message
* @param u User Struct
* @param int Index of the Message
* @param ... any number of parameters
* @return void
*/
void notice_help(const Anope::string &source, const User *dest, int message, ...)
{
if (!dest || !message)
return;
va_list args;
va_start(args, message);
const char *fmt = getstring(dest, message);
if (!fmt)
return;
/* Some sprintf()'s eat %S or turn it into just S, so change all %S's
* into \1\1... we assume this doesn't occur anywhere else in the
* string. */
char buf[4096];
Anope::string buf2 = fmt;
buf2 = buf2.replace_all_cs("%S", "\1\1");
vsnprintf(buf, sizeof(buf), buf2.c_str(), args);
sepstream lines(buf, '\n');
Anope::string line;
while (lines.GetToken(line))
{
line = line.replace_all_cs("\1\1", source);
dest->SendMessage(source, "%s", line.empty() ? " " : line.c_str());
}
va_end(args);
}