diff options
author | Sadie Powell <sadie@witchery.services> | 2024-11-19 17:02:11 +0000 |
---|---|---|
committer | Sadie Powell <sadie@witchery.services> | 2024-11-19 17:10:29 +0000 |
commit | 687bcaa83fb84d8664b17304baa0bc111efdc71b (patch) | |
tree | b22b1bbe846e1359d7b260111411e475c8f566ca | |
parent | 1fb8a624f97909796e52909eef6ad221f188d525 (diff) |
Add a plural form overload of CommandSource::Reply.
-rw-r--r-- | include/commands.h | 1 | ||||
-rw-r--r-- | language/anope.en_US.po | 22 | ||||
-rw-r--r-- | modules/nickserv/ns_group.cpp | 2 | ||||
-rw-r--r-- | modules/operserv/os_forbid.cpp | 2 | ||||
-rw-r--r-- | src/command.cpp | 15 |
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()); |