summaryrefslogtreecommitdiff
path: root/src/modules.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/modules.cpp')
-rw-r--r--src/modules.cpp9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/modules.cpp b/src/modules.cpp
index 3f6cf5ce0..51ae4acb9 100644
--- a/src/modules.cpp
+++ b/src/modules.cpp
@@ -289,19 +289,22 @@ void Module::SendMessage(CommandSource &source, const char *fmt, ...)
{
Anope::string language = (source.u && source.u->Account() ? source.u->Account()->language : "");
- Anope::string message = GetString(this->name.c_str(), language, fmt);
+ PushLanguage(this->name, language);
+ fmt = anope_gettext(fmt);
va_list args;
char buf[4096];
va_start(args, fmt);
- vsnprintf(buf, sizeof(buf) - 1, message.c_str(), args);
+ vsnprintf(buf, sizeof(buf) - 1, fmt, args);
va_end(args);
sepstream sep(buf, '\n');
Anope::string token;
while (sep.GetToken(token))
- source.Reply(token.c_str());
+ source.Reply(token);
+
+ PopLanguage();
}
Service::Service(Module *o, const Anope::string &n) : owner(o), name(n)