summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/commands.h1
-rw-r--r--language/anope.en_US.po22
-rw-r--r--modules/nickserv/ns_group.cpp2
-rw-r--r--modules/operserv/os_forbid.cpp2
-rw-r--r--src/command.cpp15
5 files changed, 31 insertions, 11 deletions
diff --git a/include/commands.h b/include/commands.h
index 583f02da1..7f0b79e3d 100644
--- a/include/commands.h
+++ b/include/commands.h
@@ -81,6 +81,7 @@ public:
bool IsFounder(ChannelInfo *ci);
void Reply(const char *message, ...) ATTR_FORMAT(2, 3);
+ void Reply(int count, const char *singular, const char *plural, ...) ATTR_FORMAT(4, 5);
void Reply(const Anope::string &message);
bool HasCommand(const Anope::string &cmd);
diff --git a/language/anope.en_US.po b/language/anope.en_US.po
index 4123c76b5..79cbb2918 100644
--- a/language/anope.en_US.po
+++ b/language/anope.en_US.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Anope\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-11-19 16:54+0000\n"
+"POT-Creation-Date: 2024-11-19 17:06+0000\n"
"PO-Revision-Date: 2024-11-13 02:45+0000\n"
"Last-Translator: Sadie Powell <sadie@witchery.services>\n"
"Language-Team: English\n"
@@ -23,10 +23,6 @@ msgid "%d channel(s) cleared, and %d channel(s) dropped."
msgstr ""
#, c-format
-msgid "%d nickname(s) dropped."
-msgstr ""
-
-#, c-format
msgid "%s added to %s %s list."
msgstr ""
@@ -354,6 +350,12 @@ msgstr ""
msgid "%s HELP %s for more information."
msgstr ""
+#, c-format
+msgid "1 nickname dropped."
+msgid_plural "%d nicknames dropped."
+msgstr[0] ""
+msgstr[1] ""
+
msgid "ADD nick user host real"
msgstr ""
@@ -1362,10 +1364,6 @@ msgid "%s's memo limit is %d."
msgstr ""
#, c-format
-msgid "%zu nickname(s) in the group."
-msgstr ""
-
-#, c-format
msgid "(%s ago)"
msgstr ""
@@ -1454,6 +1452,12 @@ msgstr[0] ""
msgstr[1] ""
#, c-format
+msgid "1 nickname in the group."
+msgid_plural "%zu nicknames in the group."
+msgstr[0] ""
+msgstr[1] ""
+
+#, c-format
msgid "1 second"
msgid_plural "%lld seconds"
msgstr[0] ""
diff --git a/modules/nickserv/ns_group.cpp b/modules/nickserv/ns_group.cpp
index c7a118211..f2a7f33ae 100644
--- a/modules/nickserv/ns_group.cpp
+++ b/modules/nickserv/ns_group.cpp
@@ -359,7 +359,7 @@ public:
for (const auto &reply : replies)
source.Reply(reply);
- source.Reply(_("%zu nickname(s) in the group."), nc->aliases->size());
+ source.Reply(nc->aliases->size(), N_("1 nickname in the group.", "%zu nicknames in the group."), nc->aliases->size());
}
bool OnHelp(CommandSource &source, const Anope::string &subcommand) override
diff --git a/modules/operserv/os_forbid.cpp b/modules/operserv/os_forbid.cpp
index 032cf0da7..374e04648 100644
--- a/modules/operserv/os_forbid.cpp
+++ b/modules/operserv/os_forbid.cpp
@@ -292,7 +292,7 @@ public:
delete na;
}
- source.Reply(_("\002%d\002 nickname(s) dropped."), na_matches);
+ source.Reply(na_matches, N_("\0021\002 nickname dropped.", "\002%d\002 nicknames dropped."), na_matches);
break;
}
case FT_CHAN:
diff --git a/src/command.cpp b/src/command.cpp
index ae391b433..4a4bb8234 100644
--- a/src/command.cpp
+++ b/src/command.cpp
@@ -118,6 +118,21 @@ void CommandSource::Reply(const char *message, ...)
va_end(args);
}
+void CommandSource::Reply(int count, const char *single, const char *plural, ...)
+{
+ va_list args;
+ char buf[4096]; // Messages can be really big.
+
+ const char *translated_message = Language::Translate(this->nc, count, single, plural);
+
+ va_start(args, plural);
+ vsnprintf(buf, sizeof(buf), translated_message, args);
+
+ this->Reply(Anope::string(buf));
+
+ va_end(args);
+}
+
void CommandSource::Reply(const Anope::string &message)
{
const char *translated_message = Language::Translate(this->nc, message.c_str());