diff options
author | Sadie Powell <sadie@witchery.services> | 2025-04-16 00:04:30 +0100 |
---|---|---|
committer | Sadie Powell <sadie@witchery.services> | 2025-04-16 00:04:30 +0100 |
commit | ce362854a39c35249f8d2c7bcf27e3d5f9aa9980 (patch) | |
tree | 6d4012d9579c2d56055d621768122cf5f3b658ba /modules | |
parent | a883b616a1360ba74254661cbd39280404d1753a (diff) |
Update as many messages as possible for automatic line wrapping.
Diffstat (limited to 'modules')
104 files changed, 2132 insertions, 1527 deletions
diff --git a/modules/botserv/botserv.cpp b/modules/botserv/botserv.cpp index cd9d7f7ae..99e2c9134 100644 --- a/modules/botserv/botserv.cpp +++ b/modules/botserv/botserv.cpp @@ -135,29 +135,41 @@ public: if (source.c) { - source.Reply(_("\002%s\002 allows you to execute \"fantasy\" commands in the channel.\n" - "Fantasy commands are commands that can be executed from messaging a\n" - "channel, and provide a more convenient way to execute commands. Commands that\n" - "require a channel as a parameter will automatically have that parameter\n" - "given.\n"), source.service->nick.c_str()); + source.Reply(_( + "\002%s\002 allows you to execute \"fantasy\" commands in the channel. " + "Fantasy commands are commands that can be executed from messaging a " + "channel, and provide a more convenient way to execute commands. Commands that " + "require a channel as a parameter will automatically have that parameter " + "given." + ), + source.service->nick.c_str()); + const Anope::string &fantasycharacters = Config->GetModule("fantasy").Get<const Anope::string>("fantasycharacter", "!"); if (!fantasycharacters.empty()) - source.Reply(_(" \n" - "Fantasy commands may be prefixed with one of the following characters: %s\n"), fantasycharacters.c_str()); - source.Reply(_(" \n" - "Available commands are:")); + { + source.Reply(" "); + source.Reply(_("Fantasy commands may be prefixed with one of the following characters: %s"), + fantasycharacters.c_str()); + } + source.Reply(" "); + source.Reply(_("Available commands are:")); } else if (*source.service == BotServ) { - source.Reply(_("\002%s\002 allows you to have a bot on your own channel.\n" - "It has been created for users that can't host or\n" - "configure a bot, or for use on networks that don't\n" - "allow user bots. Available commands are listed\n" - "below; to use them, type \002%s \037command\037\002. For\n" - "more information on a specific command, type\n" - "\002%s \037command\037\002.\n"), - BotServ->nick.c_str(), BotServ->GetQueryCommand().c_str(), + source.Reply(_( + "\002%s\002 allows you to have a bot on your own channel. " + "It has been created for users that can't host or " + "configure a bot, or for use on networks that don't " + "allow user bots. Available commands are listed " + "below; to use them, type \002%s\032\037command\037\002. For " + "more information on a specific command, type " + "\002%s\032\037command\037\002." + ), + BotServ->nick.c_str(), + BotServ->GetQueryCommand().c_str(), BotServ->GetQueryCommand({}, source.command).c_str()); + + source.Reply(" "); } return EVENT_CONTINUE; @@ -168,14 +180,20 @@ public: if (!params.empty() || source.c || source.service != *BotServ) return; - source.Reply(_(" \n" - "Bot will join a channel whenever there is at least\n" - "\002%d\002 user(s) on it."), Config->GetModule(this).Get<unsigned>("minusers")); + source.Reply(" "); + source.Reply(_("Bot will join a channel whenever there is at least \002%d\002 user(s) on it."), + Config->GetModule(this).Get<unsigned>("minusers")); + const Anope::string &fantasycharacters = Config->GetModule("fantasy").Get<const Anope::string>("fantasycharacter", "!"); if (!fantasycharacters.empty()) - source.Reply(_("Additionally, if fantasy is enabled fantasy commands\n" - "can be executed by prefixing the command name with\n" - "one of the following characters: %s"), fantasycharacters.c_str()); + { + source.Reply(_( + "Additionally, if fantasy is enabled fantasy commands " + "can be executed by prefixing the command name with " + "one of the following characters: %s" + ), + fantasycharacters.c_str()); + } } EventReturn OnChannelModeSet(Channel *c, MessageSource &source, ChannelMode *mode, const Anope::string ¶m) override diff --git a/modules/botserv/bs_assign.cpp b/modules/botserv/bs_assign.cpp index f80e9c17e..292c89459 100644 --- a/modules/botserv/bs_assign.cpp +++ b/modules/botserv/bs_assign.cpp @@ -76,9 +76,11 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Assigns the specified bot to a channel. You\n" - "can then configure the bot for the channel so it fits\n" - "your needs.")); + source.Reply(_( + "Assigns the specified bot to a channel. You " + "can then configure the bot for the channel so it fits " + "your needs." + )); return true; } }; @@ -138,11 +140,13 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Unassigns a bot from a channel. When you use this command,\n" - "the bot won't join the channel anymore. However, bot\n" - "configuration for the channel is kept, so you will always\n" - "be able to reassign a bot later without having to reconfigure\n" - "it entirely.")); + source.Reply(_( + "Unassigns a bot from a channel. When you use this command, " + "the bot won't join the channel anymore. However, bot " + "configuration for the channel is kept, so you will always " + "be able to reassign a bot later without having to reconfigure " + "it entirely." + )); return true; } }; @@ -197,10 +201,12 @@ public: bool OnHelp(CommandSource &source, const Anope::string &) override { this->SendSyntax(source); - source.Reply(_(" \n" - "This option makes a channel unassignable. If a bot\n" - "is already assigned to the channel, it is unassigned\n" - "automatically when you enable it.")); + source.Reply(" "); + source.Reply(_( + "This option makes a channel unassignable. If a bot " + "is already assigned to the channel, it is unassigned " + "automatically when you enable it." + )); return true; } }; diff --git a/modules/botserv/bs_badwords.cpp b/modules/botserv/bs_badwords.cpp index 789689699..d50ca0f95 100644 --- a/modules/botserv/bs_badwords.cpp +++ b/modules/botserv/bs_badwords.cpp @@ -435,35 +435,38 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Maintains the \002bad words list\002 for a channel. The bad\n" - "words list determines which words are to be kicked\n" - "when the bad words kicker is enabled. For more information,\n" - "type \002%s KICK %s\002.\n" - " \n" - "The \002ADD\002 command adds the given word to the\n" - "bad words list. If SINGLE is specified, a kick will be\n" - "done only if a user says the entire word. If START is\n" - "specified, a kick will be done if a user says a word\n" - "that starts with \037word\037. If END is specified, a kick\n" - "will be done if a user says a word that ends with\n" - "\037word\037. If you don't specify anything, a kick will\n" - "be issued every time \037word\037 is said by a user.\n" - " \n"), source.service->GetQueryCommand("generic/help").c_str(), source.command.c_str()); - - source.Reply(_("The \002DEL\002 command removes the given word from the\n" - "bad words list. If a list of entry numbers is given, those\n" - "entries are deleted. (See the example for LIST below.)\n" - " \n" - "The \002LIST\002 command displays the bad words list. If\n" - "a wildcard mask is given, only those entries matching the\n" - "mask are displayed. If a list of entry numbers is given,\n" + source.Reply(_( + "Maintains the \002bad words list\002 for a channel. The bad " + "words list determines which words are to be kicked " + "when the bad words kicker is enabled. For more information, " + "type \002%s\032KICK\032%s\002." + "\n\n" + "The \002ADD\002 command adds the given word to the " + "bad words list. If SINGLE is specified, a kick will be " + "done only if a user says the entire word. If START is " + "specified, a kick will be done if a user says a word " + "that starts with \037word\037. If END is specified, a kick " + "will be done if a user says a word that ends with " + "\037word\037. If you don't specify anything, a kick will " + "be issued every time \037word\037 is said by a user." + "\n\n" + "The \002DEL\002 command removes the given word from the " + "bad words list. If a list of entry numbers is given, those " + "entries are deleted. (See the example for LIST below.)" + "\n\n" + "The \002LIST\002 command displays the bad words list. If " + "a wildcard mask is given, only those entries matching the " + "mask are displayed. If a list of entry numbers is given, " "only those entries are shown; for example:\n" - " \002#channel LIST 2-5,7-9\002\n" + " \002#channel\032LIST\0322-5,7-9\002\n" " Lists bad words entries numbered 2 through 5 and\n" - " 7 through 9.\n" - " \n" - "The \002CLEAR\002 command clears all entries from the\n" - "bad words list.")); + " 7 through 9." + "\n\n" + "The \002CLEAR\002 command clears all entries from the " + "bad words list." + ), + source.service->GetQueryCommand("generic/help").c_str(), + source.command.c_str()); return true; } }; diff --git a/modules/botserv/bs_bot.cpp b/modules/botserv/bs_bot.cpp index 829b8ec9d..cd39f73b0 100644 --- a/modules/botserv/bs_bot.cpp +++ b/modules/botserv/bs_bot.cpp @@ -347,23 +347,25 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Allows Services Operators to create, modify, and delete\n" - "bots that users will be able to use on their own\n" - "channels.\n" - " \n" - "\002BOT ADD\002 adds a bot with the given nickname, username,\n" - "hostname and realname. Since no integrity checks are done\n" - "for these settings, be really careful.\n" - " \n" - "\002BOT CHANGE\002 allows you to change the nickname, username, hostname\n" - "or realname of a bot without deleting it (and\n" - "all the data associated with it).\n" - " \n" - "\002BOT DEL\002 removes the given bot from the bot list.\n" - " \n" - "\002Note\002: You cannot create a bot with a nick that is\n" - "currently registered. If an unregistered user is currently\n" - "using the nick, they will be killed.")); + source.Reply(_( + "Allows Services Operators to create, modify, and delete " + "bots that users will be able to use on their own " + "channels." + "\n\n" + "\002BOT\032ADD\002 adds a bot with the given nickname, username, " + "hostname and realname. Since no integrity checks are done " + "for these settings, be really careful." + "\n\n" + "\002BOT\032CHANGE\002 allows you to change the nickname, username, hostname " + "or realname of a bot without deleting it (and " + "all the data associated with it)." + "\n\n" + "\002BOT\032DEL\002 removes the given bot from the bot list." + "\n\n" + "\002Note\002: You cannot create a bot with a nick that is " + "currently registered. If an unregistered user is currently " + "using the nick, they will be killed." + )); return true; } }; diff --git a/modules/botserv/bs_botlist.cpp b/modules/botserv/bs_botlist.cpp index dbb92a999..c49d5bc26 100644 --- a/modules/botserv/bs_botlist.cpp +++ b/modules/botserv/bs_botlist.cpp @@ -70,8 +70,12 @@ public: list.Process(replies); if (!count) - source.Reply(_("There are no bots available at this time.\n" - "Ask a Services Operator to create one!")); + { + source.Reply(_( + "There are no bots available at this time. " + "Ask a Services Operator to create one!" + )); + } else { source.Reply(_("Bot list:")); @@ -87,15 +91,17 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Lists all available bots on this network.\n" - "\n" - "If the OPERONLY, UNUSED or VANITY options are given only\n" - "bots which, respectively, are oper-only, unused or were\n" - "added at runtime will be displayed. If multiple options are\n" - "given, all nicks matching at least one option will be\n" - "displayed.\n" - "\n" - "Note that these options are limited to \037Services Operators\037.")); + source.Reply(_( + "Lists all available bots on this network." + "\n\n" + "If the OPERONLY, UNUSED or VANITY options are given only " + "bots which, respectively, are oper-only, unused or were " + "added at runtime will be displayed. If multiple options are " + "given, all nicks matching at least one option will be " + "displayed." + "\n\n" + "Note that these options are limited to \037Services Operators\037." + )); return true; } }; diff --git a/modules/botserv/bs_control.cpp b/modules/botserv/bs_control.cpp index 2ea81a45b..e97b98871 100644 --- a/modules/botserv/bs_control.cpp +++ b/modules/botserv/bs_control.cpp @@ -122,8 +122,10 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Makes the bot do the equivalent of a \"/me\" command\n" - "on the specified channel using the specified text.")); + source.Reply(_( + "Makes the bot do the equivalent of a \"/me\" command " + "on the specified channel using the specified text." + )); return true; } }; diff --git a/modules/botserv/bs_info.cpp b/modules/botserv/bs_info.cpp index ae4af76cf..8ecff03ec 100644 --- a/modules/botserv/bs_info.cpp +++ b/modules/botserv/bs_info.cpp @@ -104,11 +104,13 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Allows you to see %s information about a channel or a bot.\n" - "If the parameter is a channel, then you'll get information\n" - "such as enabled kickers. If the parameter is a nick,\n" - "you'll get information about a bot, such as creation\n" - "time or number of channels it is on."), source.service->nick.c_str()); + source.Reply(_( + "Allows you to see %s information about a channel or a bot. " + "If the parameter is a channel, then you'll get information " + "such as enabled kickers. If the parameter is a nick, " + "you'll get information about a bot, such as creation " + "time or number of channels it is on." + ), source.service->nick.c_str()); return true; } diff --git a/modules/botserv/bs_kick.cpp b/modules/botserv/bs_kick.cpp index 835d90491..80d8fc45d 100644 --- a/modules/botserv/bs_kick.cpp +++ b/modules/botserv/bs_kick.cpp @@ -153,13 +153,14 @@ public: } } - source.Reply(_("Type \002%s \037option\037\002 for more information\n" - "on a specific option.\n" - " \n" - "Note: access to this command is controlled by the\n" - "level SET."), + source.Reply(_( + "Type \002%s\032\037option\037\002 for more information " + "on a specific option." + "\n\n" + "Note: access to this command is controlled by the " + "level SET." + ), source.service->GetQueryCommand("generic/help", this_name).c_str()); - return true; } }; @@ -221,8 +222,10 @@ protected: val = true; if (kd->ttb[ttb_idx]) - source.Reply(_("Bot will now kick for \002%s\002, and will place a ban\n" - "after %d kicks for the same user."), optname.c_str(), kd->ttb[ttb_idx]); + { + source.Reply(_("Bot will now kick for \002%s\002, and will place a ban after %d kicks for the same user."), + optname.c_str(), kd->ttb[ttb_idx]); + } else source.Reply(_("Bot will now kick for \002%s\002."), optname.c_str()); @@ -268,13 +271,16 @@ public: this->SendSyntax(source); source.Reply(" "); BotInfo *bi = Config->GetClient("BotServ"); - source.Reply(_("Sets the AMSG kicker on or off. When enabled, the bot will\n" - "kick users who send the same message to multiple channels\n" - "where %s bots are.\n" - " \n" - "\037ttb\037 is the number of times a user can be kicked\n" - "before they get banned. Don't give ttb to disable\n" - "the ban system once activated."), bi ? bi->nick.c_str() : "BotServ"); + source.Reply(_( + "Sets the AMSG kicker on or off. When enabled, the bot will " + "kick users who send the same message to multiple channels " + "where %s bots are." + "\n\n" + "\037ttb\037 is the number of times a user can be kicked " + "before they get banned. Don't give ttb to disable " + "the ban system once activated." + ), + bi ? bi->nick.c_str() : "BotServ"); return true; } }; @@ -305,16 +311,19 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Sets the bad words kicker on or off. When enabled, this\n" - "option tells the bot to kick users who say certain words\n" - "on the channels.\n" - "You can define bad words for your channel using the\n" - "\002BADWORDS\002 command. Type \002%s BADWORDS\002 for\n" - "more information.\n" - " \n" - "\037ttb\037 is the number of times a user can be kicked\n" - "before it gets banned. Don't give ttb to disable\n" - "the ban system once activated."), + source.Reply(_( + "Sets the bad words kicker on or off. When enabled, this " + "option tells the bot to kick users who say certain words " + "on the channels." + "\n\n" + "You can define bad words for your channel using the " + "\002BADWORDS\002 command. Type \002%s\032BADWORDS\002 for " + "more information." + "\n\n" + "\037ttb\037 is the number of times a user can be kicked " + "before it gets banned. Don't give ttb to disable " + "the ban system once activated." + ), source.service->GetQueryCommand("generic/help").c_str()); return true; } @@ -345,12 +354,14 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Sets the bolds kicker on or off. When enabled, this\n" - "option tells the bot to kick users who use bolds.\n" - " \n" - "\037ttb\037 is the number of times a user can be kicked\n" - "before it gets banned. Don't give ttb to disable\n" - "the ban system once activated.")); + source.Reply(_( + "Sets the bolds kicker on or off. When enabled, this " + "option tells the bot to kick users who use bolds." + "\n\n" + "\037ttb\037 is the number of times a user can be kicked " + "before it gets banned. Don't give ttb to disable " + "the ban system once activated." + )); return true; } }; @@ -402,12 +413,23 @@ public: kd->caps = true; if (kd->ttb[TTB_CAPS]) - source.Reply(_("Bot will now kick for \002caps\002 (they must constitute at least\n" - "%d characters and %d%% of the entire message), and will\n" - "place a ban after %d kicks for the same user."), kd->capsmin, kd->capspercent, kd->ttb[TTB_CAPS]); + { + source.Reply(_( + "Bot will now kick for \002caps\002 (they must constitute at least " + "%d characters and %d%% of the entire message), and will " + "place a ban after %d kicks for the same user." + ), + kd->capsmin, + kd->capspercent, + kd->ttb[TTB_CAPS]); + } else - source.Reply(_("Bot will now kick for \002caps\002 (they must constitute at least\n" - "%d characters and %d%% of the entire message)."), kd->capsmin, kd->capspercent); + source.Reply(_( + "Bot will now kick for \002caps\002 (they must constitute at least " + "%d characters and %d%% of the entire message)." + ), + kd->capsmin, + kd->capspercent); } else { @@ -422,17 +444,20 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Sets the caps kicker on or off. When enabled, this\n" - "option tells the bot to kick users who are talking in\n" - "CAPS.\n" - "The bot kicks only if there are at least \002min\002 caps\n" - "and they constitute at least \002percent\002%% of the total\n" - "text line (if not given, it defaults to 10 characters\n" - "and 25%%).\n" - " \n" - "\037ttb\037 is the number of times a user can be kicked\n" - "before it gets banned. Don't give ttb to disable\n" - "the ban system once activated.")); + source.Reply(_( + "Sets the caps kicker on or off. When enabled, this " + "option tells the bot to kick users who are talking in " + "CAPS." + "\n\n" + "The bot kicks only if there are at least \002min\002 caps " + "and they constitute at least \002percent\002%% of the total " + "text line (if not given, it defaults to 10 characters " + "and 25%%)." + "\n\n" + "\037ttb\037 is the number of times a user can be kicked " + "before it gets banned. Don't give ttb to disable " + "the ban system once activated." + )); return true; } }; @@ -462,12 +487,14 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Sets the colors kicker on or off. When enabled, this\n" - "option tells the bot to kick users who use colors.\n" - " \n" - "\037ttb\037 is the number of times a user can be kicked\n" - "before it gets banned. Don't give ttb to disable\n" - "the ban system once activated.")); + source.Reply(_( + "Sets the colors kicker on or off. When enabled, this " + "option tells the bot to kick users who use colors." + "\n\n" + "\037ttb\037 is the number of times a user can be kicked " + "before it gets banned. Don't give ttb to disable " + "the ban system once activated." + )); return true; } }; @@ -522,8 +549,15 @@ public: kd->flood = true; if (kd->ttb[TTB_FLOOD]) - source.Reply(_("Bot will now kick for \002flood\002 (%d lines in %d seconds\n" - "and will place a ban after %d kicks for the same user."), kd->floodlines, kd->floodsecs, kd->ttb[TTB_FLOOD]); + { + source.Reply(_( + "Bot will now kick for \002flood\002 (%d lines in %d seconds " + "and will place a ban after %d kicks for the same user." + ), + kd->floodlines, + kd->floodsecs, + kd->ttb[TTB_FLOOD]); + } else source.Reply(_("Bot will now kick for \002flood\002 (%d lines in %d seconds)."), kd->floodlines, kd->floodsecs); } @@ -542,14 +576,15 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Sets the flood kicker on or off. When enabled, this\n" - "option tells the bot to kick users who are flooding\n" - "the channel using at least \002ln\002 lines in \002secs\002 seconds\n" - "(if not given, it defaults to 6 lines in 10 seconds).\n" - " \n" - "\037ttb\037 is the number of times a user can be kicked\n" - "before it gets banned. Don't give ttb to disable\n" - "the ban system once activated.")); + source.Reply(_( + "Sets the flood kicker on or off. When enabled, this " + "option tells the bot to kick users who are flooding " + "the channel using at least \002ln\002 lines in \002secs\002 seconds " + "(if not given, it defaults to 6 lines in 10 seconds). " + "\n\n" + "\037ttb\037 is the number of times a user can be kicked " + "before it gets banned. Don't give ttb to disable " + "the ban system once activated.")); return true; } }; @@ -579,12 +614,14 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Sets the italics kicker on or off. When enabled, this\n" - "option tells the bot to kick users who use italics.\n" - " \n" - "\037ttb\037 is the number of times a user can be kicked\n" - "before it gets banned. Don't give ttb to disable\n" - "the ban system once activated.")); + source.Reply(_( + "Sets the italics kicker on or off. When enabled, this " + "option tells the bot to kick users who use italics. " + "\n\n" + "\037ttb\037 is the number of times a user can be kicked " + "before it gets banned. Don't give ttb to disable " + "the ban system once activated." + )); return true; } }; @@ -633,22 +670,42 @@ public: if (kd->ttb[TTB_REPEAT]) { if (kd->repeattimes != 1) - source.Reply(_("Bot will now kick for \002repeats\002 (users that repeat the\n" - "same message %d times), and will place a ban after %d\n" - "kicks for the same user."), kd->repeattimes, kd->ttb[TTB_REPEAT]); + { + source.Reply(_( + "Bot will now kick for \002repeats\002 (users that repeat the " + "same message %d times), and will place a ban after %d " + "kicks for the same user." + ), + kd->repeattimes, + kd->ttb[TTB_REPEAT]); + } else - source.Reply(_("Bot will now kick for \002repeats\002 (users that repeat the\n" - "same message %d time), and will place a ban after %d\n" - "kicks for the same user."), kd->repeattimes, kd->ttb[TTB_REPEAT]); + source.Reply(_( + "Bot will now kick for \002repeats\002 (users that repeat the " + "same message %d time), and will place a ban after %d " + "kicks for the same user." + ), + kd->repeattimes, + kd->ttb[TTB_REPEAT]); } else { if (kd->repeattimes != 1) - source.Reply(_("Bot will now kick for \002repeats\002 (users that repeat the\n" - "same message %d times)."), kd->repeattimes); + { + source.Reply(_( + "Bot will now kick for \002repeats\002 (users that repeat the " + "same message %d times)." + ), + kd->repeattimes); + } else - source.Reply(_("Bot will now kick for \002repeats\002 (users that repeat the\n" - "same message %d time)."), kd->repeattimes); + { + source.Reply(_( + "Bot will now kick for \002repeats\002 (users that repeat the " + "same message %d time)." + ), + kd->repeattimes); + } } } else if (params[1].equals_ci("OFF")) @@ -666,14 +723,16 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Sets the repeat kicker on or off. When enabled, this\n" - "option tells the bot to kick users who are repeating\n" - "themselves \002num\002 times (if num is not given, it\n" - "defaults to 3).\n" - " \n" - "\037ttb\037 is the number of times a user can be kicked\n" - "before it gets banned. Don't give ttb to disable\n" - "the ban system once activated.")); + source.Reply(_( + "Sets the repeat kicker on or off. When enabled, this " + "option tells the bot to kick users who are repeating " + "themselves \002num\002 times (if num is not given, it " + "defaults to 3)." + "\n\n" + "\037ttb\037 is the number of times a user can be kicked " + "before it gets banned. Don't give ttb to disable " + "the ban system once activated." + )); return true; } }; @@ -703,12 +762,14 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Sets the reverses kicker on or off. When enabled, this\n" - "option tells the bot to kick users who use reverses.\n" - " \n" - "\037ttb\037 is the number of times a user can be kicked\n" - "before it gets banned. Don't give ttb to disable\n" - "the ban system once activated.")); + source.Reply(_( + "Sets the reverses kicker on or off. When enabled, this " + "option tells the bot to kick users who use reverses. " + "\n\n" + "\037ttb\037 is the number of times a user can be kicked " + "before it gets banned. Don't give ttb to disable " + "the ban system once activated." + )); return true; } }; @@ -738,12 +799,14 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Sets the underlines kicker on or off. When enabled, this\n" - "option tells the bot to kick users who use underlines.\n" - " \n" - "\037ttb\037 is the number of times a user can be kicked\n" - "before it gets banned. Don't give ttb to disable\n" - "the ban system once activated.")); + source.Reply(_( + "Sets the underlines kicker on or off. When enabled, this " + "option tells the bot to kick users who use underlines. " + "\n\n" + "\037ttb\037 is the number of times a user can be kicked " + "before it gets banned. Don't give ttb to disable " + "the ban system once activated." + )); return true; } }; @@ -806,10 +869,12 @@ public: bool OnHelp(CommandSource &source, const Anope::string &) override { this->SendSyntax(source); - source.Reply(_(" \n" - "Enables or disables \002ops protection\002 mode on a channel.\n" - "When it is enabled, ops won't be kicked by the bot\n" - "even if they don't match the NOKICK level.")); + source.Reply(" "); + source.Reply(_( + "Enables or disables \002ops protection\002 mode on a channel. " + "When it is enabled, ops won't be kicked by the bot " + "even if they don't match the NOKICK level." + )); return true; } }; @@ -872,10 +937,12 @@ public: bool OnHelp(CommandSource &source, const Anope::string &) override { this->SendSyntax(source); - source.Reply(_(" \n" - "Enables or disables \002voices protection\002 mode on a channel.\n" - "When it is enabled, voices won't be kicked by the bot\n" - "even if they don't match the NOKICK level.")); + source.Reply(" "); + source.Reply(_( + "Enables or disables \002voices protection\002 mode on a channel. " + "When it is enabled, voices won't be kicked by the bot " + "even if they don't match the NOKICK level." + )); return true; } }; diff --git a/modules/botserv/bs_set.cpp b/modules/botserv/bs_set.cpp index 7110e123b..4cce07b98 100644 --- a/modules/botserv/bs_set.cpp +++ b/modules/botserv/bs_set.cpp @@ -30,9 +30,11 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Configures bot options.\n" - " \n" - "Available options:")); + source.Reply(_( + "Configures bot options." + "\n\n" + "Available options:" + )); bool hide_privileged_commands = Config->GetBlock("options").Get<bool>("hideprivilegedcommands"), hide_registered_commands = Config->GetBlock("options").Get<bool>("hideregisteredcommands"); Anope::string this_name = source.command; @@ -58,8 +60,7 @@ public: } } } - source.Reply(_("Type \002%s \037option\037\002 for more information on a\n" - "particular option."), + source.Reply(_("Type \002%s\032\037option\037\002 for more information on a particular option."), source.service->GetQueryCommand("generic/help", this_name).c_str()); return true; @@ -151,11 +152,13 @@ public: bool OnHelp(CommandSource &source, const Anope::string &) override { this->SendSyntax(source); - source.Reply(_(" \n" - "Sets the time bot bans expire in. If enabled, any bans placed by\n" - "bots, such as flood kicker, badwords kicker, etc. will automatically\n" - "be removed after the given time. Set to 0 to disable bans from\n" - "automatically expiring.")); + source.Reply(" "); + source.Reply(_( + "Sets the time bot bans expire in. If enabled, any bans placed by " + "bots, such as flood kicker, badwords kicker, etc. will automatically " + "be removed after the given time. Set to 0 to disable bans from " + "automatically expiring." + )); return true; } }; @@ -204,9 +207,11 @@ public: bool OnHelp(CommandSource &source, const Anope::string &) override { this->SendSyntax(source); - source.Reply(_(" \n" - "This option prevents a bot from being assigned to a\n" - "channel by users that aren't IRC Operators.")); + source.Reply(" "); + source.Reply(_( + "This option prevents a bot from being assigned to a " + "channel by users that aren't IRC Operators." + )); return true; } }; diff --git a/modules/chanserv/chanserv.cpp b/modules/chanserv/chanserv.cpp index 4fcf3c097..38d2f0ef0 100644 --- a/modules/chanserv/chanserv.cpp +++ b/modules/chanserv/chanserv.cpp @@ -260,15 +260,19 @@ public: { if (!params.empty() || source.c || source.service != *ChanServ) return EVENT_CONTINUE; - source.Reply(_("\002%s\002 allows you to register and control various\n" - "aspects of channels. %s can often prevent\n" - "malicious users from \"taking over\" channels by limiting\n" - "who is allowed channel operator privileges. Available\n" - "commands are listed below; to use them, type\n" - "\002%s \037command\037\002. For more information on a\n" - "specific command, type \002%s \037command\037\002.\n"), - ChanServ->nick.c_str(), ChanServ->nick.c_str(), - ChanServ->GetQueryCommand().c_str(), ChanServ->GetQueryCommand("generic/help").c_str()); + source.Reply(_( + "\002%s\002 allows you to register and control various " + "aspects of channels. %s can often prevent " + "malicious users from \"taking over\" channels by limiting " + "who is allowed channel operator privileges. Available " + "commands are listed below; to use them, type " + "\002%s\032\037command\037\002. For more information on a " + "specific command, type \002%s\032\037command\037\002." + ), + ChanServ->nick.c_str(), + ChanServ->nick.c_str(), + ChanServ->GetQueryCommand().c_str(), + ChanServ->GetQueryCommand("generic/help").c_str()); return EVENT_CONTINUE; } @@ -278,15 +282,24 @@ public: return; time_t chanserv_expire = Config->GetModule(this).Get<time_t>("expire", "30d"); if (chanserv_expire >= 86400) - source.Reply(_(" \n" - "Note that any channel which is not used for %lu days\n" - "(i.e. which no user on the channel's access list enters\n" - "for that period of time) will be automatically dropped."), (unsigned long)chanserv_expire / 86400); + { + source.Reply(" "); + source.Reply(_( + "Note that any channel which is not used for %lu days " + "(i.e. which no user on the channel's access list enters " + "for that period of time) will be automatically dropped." + ), + (unsigned long)chanserv_expire / 86400); + } if (source.IsServicesOper()) - source.Reply(_(" \n" - "Services Operators can also, depending on their access drop\n" - "any channel, view (and modify) the access, levels and akick\n" - "lists and settings for any channel.")); + { + source.Reply(" "); + source.Reply(_( + "Services Operators can also, depending on their access drop " + "any channel, view (and modify) the access, levels and akick " + "lists and settings for any channel." + )); + } } void OnCheckModes(Reference<Channel> &c) override diff --git a/modules/chanserv/cs_access.cpp b/modules/chanserv/cs_access.cpp index 72dc57450..d3ca6e492 100644 --- a/modules/chanserv/cs_access.cpp +++ b/modules/chanserv/cs_access.cpp @@ -582,54 +582,68 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Maintains the \002access list\002 for a channel. The access\n" - "list specifies which users are allowed chanop status or\n" - "access to %s commands on the channel. Different\n" - "user levels allow for access to different subsets of\n" - "privileges. Any registered user not on the access list has\n" - "a user level of 0, and any unregistered user has a user level\n" - "of -1."), source.service->nick.c_str()); - source.Reply(" "); - source.Reply(_("The \002ACCESS ADD\002 command adds the given mask to the\n" - "access list with the given user level; if the mask is\n" - "already present on the list, its access level is changed to\n" - "the level specified in the command. The \037level\037 specified\n" - "may be a numerical level or the name of a privilege (eg AUTOOP).\n" - "When a user joins the channel the access they receive is from the\n" - "highest level entry in the access list.")); + source.Reply(_( + "Maintains the \002access list\002 for a channel. The access " + "list specifies which users are allowed chanop status or " + "access to %s commands on the channel. Different " + "user levels allow for access to different subsets of " + "privileges. Any registered user not on the access list has " + "a user level of 0, and any unregistered user has a user level " + "of -1." + "\n\n" + "The \002ACCESS\032ADD\002 command adds the given mask to the " + "access list with the given user level; if the mask is " + "already present on the list, its access level is changed to " + "the level specified in the command. The \037level\037 specified " + "may be a numerical level or the name of a privilege (eg AUTOOP). " + "When a user joins the channel the access they receive is from the " + "highest level entry in the access list." + ), + source.service->nick.c_str()); + if (!Config->GetModule("chanserv").Get<bool>("disallow_channel_access")) - source.Reply(_("The given mask may also be a channel, which will use the\n" - "access list from the other channel up to the given \037level\037.")); - source.Reply(" "); - source.Reply(_("The \002ACCESS DEL\002 command removes the given nick from the\n" - "access list. If a list of entry numbers is given, those\n" - "entries are deleted. (See the example for LIST below.)\n" - "You may remove yourself from an access list, even if you\n" - "do not have access to modify that list otherwise.")); - source.Reply(" "); - source.Reply(_("The \002ACCESS LIST\002 command displays the access list. If\n" - "a wildcard mask is given, only those entries matching the\n" - "mask are displayed. If a list of entry numbers is given,\n" - "only those entries are shown; for example:\n" - " \002ACCESS #channel LIST 2-5,7-9\002\n" - " Lists access entries numbered 2 through 5 and\n" - " 7 through 9.\n" - " \n" - "The \002ACCESS VIEW\002 command displays the access list similar\n" - "to \002ACCESS LIST\002 but shows the creator and last used time.\n" - " \n" - "The \002ACCESS CLEAR\002 command clears all entries of the\n" - "access list.")); + { + source.Reply(_( + "The given mask may also be a channel, which will use the " + "access list from the other channel up to the given \037level\037." + )); + } + source.Reply(" "); + source.Reply(_( + "The \002ACCESS\032DEL\002 command removes the given nick from the " + "access list. If a list of entry numbers is given, those " + "entries are deleted. (See the example for LIST below.) " + "You may remove yourself from an access list, even if you " + "do not have access to modify that list otherwise." + "\n\n" + "The \002ACCESS\032LIST\002 command displays the access list. If " + "a wildcard mask is given, only those entries matching the " + "mask are displayed. If a list of entry numbers is given, " + "only those entries are shown; for example:\n" + " \002ACCESS\032#channel\032LIST\0322-5,7-9\002\n" + " Lists access entries numbered 2 through 5 and\n" + " 7 through 9." + "\n\n" + "The \002ACCESS\032VIEW\002 command displays the access list similar " + "to \002ACCESS\032LIST\002 but shows the creator and last used time." + "\n\n" + "The \002ACCESS\032CLEAR\002 command clears all entries of the " + "access list." + )); BotInfo *bi; Anope::string cmd; if (Command::FindCommandFromService("chanserv/levels", bi, cmd)) { - source.Reply(_("\002User access levels\002 can be seen by using the\n" - "\002%s\002 command; type \002%s LEVELS\002 for\n" - "information."), - cmd.c_str(), bi->GetQueryCommand("generic/help").c_str()); + source.Reply(" "); + source.Reply(_( + "\002User access levels\002 can be seen by using the " + "\002%s\002 command; type \002%s\032LEVELS\002 for " + "information." + ), + cmd.c_str(), + bi->GetQueryCommand("generic/help").c_str()); } return true; } @@ -665,7 +679,7 @@ class CommandCSLevels final Privilege *p = PrivilegeManager::FindPrivilege(what); if (p == NULL) { - source.Reply(_("Setting \002%s\002 not known. Type \002%s LEVELS\002 for a list of valid settings."), + source.Reply(_("Setting \002%s\002 not known. Type \002%s\032LEVELS\002 for a list of valid settings."), what.c_str(), source.service->GetQueryCommand("generic/help").c_str()); } else @@ -708,7 +722,7 @@ class CommandCSLevels final return; } - source.Reply(_("Setting \002%s\002 not known. Type \002%s LEVELS\002 for a list of valid settings."), + source.Reply(_("Setting \002%s\002 not known. Type \002%s\032LEVELS\002 for a list of valid settings."), what.c_str(), source.service->GetQueryCommand("generic/help").c_str()); } @@ -838,25 +852,28 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("The \002LEVELS\002 command allows fine control over the meaning of\n" - "the numeric access levels used for channels. With this\n" - "command, you can define the access level required for most\n" - "of %s's functions. (The \002SET FOUNDER\002 and this command\n" - "are always restricted to the channel founder.)\n" - " \n" - "\002LEVELS SET\002 allows the access level for a function or group of\n" - "functions to be changed. \002LEVELS DISABLE\002 (or \002DIS\002 for short)\n" - "disables an automatic feature or disallows access to a\n" - "function by anyone, INCLUDING the founder (although, the founder\n" - "can always re-enable it). Use \002LEVELS SET founder\002 to make a level\n" - "founder only.\n" - " \n" - "\002LEVELS LIST\002 shows the current levels for each function or\n" - "group of functions. \002LEVELS RESET\002 resets the levels to the\n" - "default levels of a newly-created channel.\n" - " \n" - "For a list of the features and functions whose levels can be\n" - "set, see \002HELP LEVELS DESC\002."), source.service->nick.c_str()); + source.Reply(_( + "The \002LEVELS\002 command allows fine control over the meaning of " + "the numeric access levels used for channels. With this " + "command, you can define the access level required for most " + "of %s's functions. (The \002SET\032FOUNDER\002 and this command " + "are always restricted to the channel founder)." + "\n\n" + "\002LEVELS\032SET\002 allows the access level for a function or group of " + "functions to be changed. \002LEVELS\032DISABLE\002 (or \002DIS\002 for short) " + "disables an automatic feature or disallows access to a " + "function by anyone, INCLUDING the founder (although, the founder " + "can always re-enable it). Use \002LEVELS\032SET founder\002 to make a level " + "founder only." + "\n\n" + "\002LEVELS\032LIST\002 shows the current levels for each function or " + "group of functions. \002LEVELS\032RESET\002 resets the levels to the " + "default levels of a newly-created channel." + "\n\n" + "For a list of the features and functions whose levels can be " + "set, see \002HELP\032LEVELS\032DESC\002." + ), + source.service->nick.c_str()); } return true; } diff --git a/modules/chanserv/cs_akick.cpp b/modules/chanserv/cs_akick.cpp index e6672b965..b242fed4a 100644 --- a/modules/chanserv/cs_akick.cpp +++ b/modules/chanserv/cs_akick.cpp @@ -488,40 +488,44 @@ public: BotInfo *bi = Config->GetClient("NickServ"); this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Maintains the \002AutoKick list\002 for a channel. If a user\n" - "on the AutoKick list attempts to join the channel,\n" - "%s will ban that user from the channel, then kick\n" - "the user.\n" - " \n" - "The \002AKICK ADD\002 command adds the given nick or usermask\n" - "to the AutoKick list. If a \037reason\037 is given with\n" - "the command, that reason will be used when the user is\n" - "kicked; if not, the default reason is \"User has been\n" - "banned from the channel\".\n" - "When akicking a \037registered nick\037 the %s account\n" - "will be added to the akick list instead of the mask.\n" - "All users within that nickgroup will then be akicked.\n"), - source.service->nick.c_str(), bi ? bi->nick.c_str() : "NickServ"); source.Reply(_( - " \n" - "The \002AKICK DEL\002 command removes the given nick or mask\n" - "from the AutoKick list. It does not, however, remove any\n" - "bans placed by an AutoKick; those must be removed\n" - "manually.\n" - " \n" - "The \002AKICK LIST\002 command displays the AutoKick list, or\n" - "optionally only those AutoKick entries which match the\n" - "given mask.\n" - " \n" - "The \002AKICK VIEW\002 command is a more verbose version of the\n" - "\002AKICK LIST\002 command.\n" - " \n" - "The \002AKICK ENFORCE\002 command causes %s to enforce the\n" - "current AKICK list by removing those users who match an\n" - "AKICK mask.\n" - " \n" - "The \002AKICK CLEAR\002 command clears all entries of the\n" - "akick list."), source.service->nick.c_str()); + "Maintains the \002AutoKick list\002 for a channel. If a user " + "on the AutoKick list attempts to join the channel, " + "%s will ban that user from the channel, then kick " + "the user." + "\n\n" + "The \002AKICK\032ADD\002 command adds the given nick or usermask " + "to the AutoKick list. If a \037reason\037 is given with " + "the command, that reason will be used when the user is " + "kicked; if not, the default reason is \"User has been " + "banned from the channel\". " + "When akicking a \037registered nick\037 the %s account " + "will be added to the akick list instead of the mask. " + "All users within that nickgroup will then be akicked. " + "\n\n" + "The \002AKICK\032DEL\002 command removes the given nick or mask " + "from the AutoKick list. It does not, however, remove any " + "bans placed by an AutoKick; those must be removed " + "manually." + "\n\n" + "The \002AKICK\032LIST\002 command displays the AutoKick list, or " + "optionally only those AutoKick entries which match the " + "given mask." + "\n\n" + "The \002AKICK\032VIEW\002 command is a more verbose version of the " + "\002AKICK\032LIST\002 command." + "\n\n" + "The \002AKICK\032ENFORCE\002 command causes %s to enforce the " + "current AKICK list by removing those users who match an " + "AKICK mask." + "\n\n" + "The \002AKICK\032CLEAR\002 command clears all entries of the " + "akick list." + ), + source.service->nick.c_str(), + source.service->nick.c_str(), + bi ? bi->nick.c_str() : "NickServ"); + return true; } }; diff --git a/modules/chanserv/cs_ban.cpp b/modules/chanserv/cs_ban.cpp index 8560e4eac..dca9e8bbf 100644 --- a/modules/chanserv/cs_ban.cpp +++ b/modules/chanserv/cs_ban.cpp @@ -240,12 +240,14 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Bans a given nick or mask on a channel. An optional expiry may\n" - "be given to cause services to remove the ban after a set amount\n" - "of time.\n" - " \n" - "By default, limited to AOPs or those with level 5 access\n" - "and above on the channel. Channel founders may ban masks.")); + source.Reply(_( + "Bans a given nick or mask on a channel. An optional expiry may " + "be given to cause services to remove the ban after a set amount " + "of time." + "\n\n" + "By default, limited to AOPs or those with level 5 access " + "and above on the channel. Channel founders may ban masks." + )); return true; } }; diff --git a/modules/chanserv/cs_clone.cpp b/modules/chanserv/cs_clone.cpp index b58635ff0..bad74d304 100644 --- a/modules/chanserv/cs_clone.cpp +++ b/modules/chanserv/cs_clone.cpp @@ -239,10 +239,12 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Copies all settings, access, akicks, etc from \002channel\002 to the\n" - "\002target\002 channel. If \037what\037 is \002ACCESS\002, \002AKICK\002, \002BADWORDS\002,\n" - "or \002LEVELS\002 then only the respective settings are cloned.\n" - "You must be the founder of \037channel\037 and \037target\037.")); + source.Reply(_( + "Copies all settings, access, akicks, etc from \002channel\002 to the " + "\002target\002 channel. If \037what\037 is \002ACCESS\002, \002AKICK\002, \002BADWORDS\002, " + "or \002LEVELS\002 then only the respective settings are cloned. " + "You must be the founder of \037channel\037 and \037target\037." + )); return true; } }; diff --git a/modules/chanserv/cs_drop.cpp b/modules/chanserv/cs_drop.cpp index 582ede836..7e513b340 100644 --- a/modules/chanserv/cs_drop.cpp +++ b/modules/chanserv/cs_drop.cpp @@ -88,16 +88,28 @@ public: this->SendSyntax(source); source.Reply(" "); if (source.IsServicesOper()) - source.Reply(_("Unregisters the specified channel. Only \002Services Operators\002\n" - "can drop a channel of which they are not the founder of.")); + { + source.Reply(_( + "Unregisters the specified channel. Only \002Services Operators\002 " + "can drop a channel of which they are not the founder of." + )); + } else - source.Reply(_("Unregisters the named channel. Can only be used by\n" - "the \002channel founder\002.")); + { + source.Reply(_( + "Unregisters the named channel. Can only be used by " + "the \002channel founder\002." + )); + } source.Reply(" "); if (source.HasPriv("chanserv/drop/override")) - source.Reply(_("Additionally, Services Operators with the \037chanserv/drop/override\037 permission can\n" - "replace \037code\037 with \002OVERRIDE\002 to drop without a confirmation code.")); + { + source.Reply(_( + "Additionally, Services Operators with the \037chanserv/drop/override\037 permission can " + "replace \037code\037 with \002OVERRIDE\002 to drop without a confirmation code." + )); + } return true; } }; diff --git a/modules/chanserv/cs_enforce.cpp b/modules/chanserv/cs_enforce.cpp index 3b38b3a89..d0d2cc03a 100644 --- a/modules/chanserv/cs_enforce.cpp +++ b/modules/chanserv/cs_enforce.cpp @@ -240,19 +240,21 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Enforce various channel modes and set options. The \037channel\037\n" - "option indicates what channel to enforce the modes and options\n" - "on. The \037what\037 option indicates what modes and options to\n" - "enforce, and can be any of \002SECUREOPS\002, \002RESTRICTED\002, \002REGONLY\002, \002SSLONLY\002,\n" - "\002BANS\002, or \002LIMIT\002.\n" - " \n" - "Use \002SECUREOPS\002 to enforce the SECUREOPS option, even if it is not\n" - "enabled. Use \002RESTRICTED\002 to enforce the RESTRICTED option, also\n" - "if it's not enabled. Use \002REGONLY\002 to kick all unregistered users\n" - "from the channel. Use \002SSLONLY\002 to kick all users not using a secure\n" - "connection from the channel. \002BANS\002 will enforce bans on the channel by\n" - "kicking users affected by them, and \002LIMIT\002 will kick users until the\n" - "user count drops below the channel limit, if one is set.")); + source.Reply(_( + "Enforce various channel modes and set options. The \037channel\037 " + "option indicates what channel to enforce the modes and options " + "on. The \037what\037 option indicates what modes and options to " + "enforce, and can be any of \002SECUREOPS\002, \002RESTRICTED\002, \002REGONLY\002, \002SSLONLY\002, " + "\002BANS\002, or \002LIMIT\002." + "\n\n" + "Use \002SECUREOPS\002 to enforce the SECUREOPS option, even if it is not " + "enabled. Use \002RESTRICTED\002 to enforce the RESTRICTED option, also " + "if it's not enabled. Use \002REGONLY\002 to kick all unregistered users " + "from the channel. Use \002SSLONLY\002 to kick all users not using a secure " + "connection from the channel. \002BANS\002 will enforce bans on the channel by " + "kicking users affected by them, and \002LIMIT\002 will kick users until the " + "user count drops below the channel limit, if one is set." + )); return true; } }; diff --git a/modules/chanserv/cs_entrymsg.cpp b/modules/chanserv/cs_entrymsg.cpp index bbb3f03cb..fa3c59c84 100644 --- a/modules/chanserv/cs_entrymsg.cpp +++ b/modules/chanserv/cs_entrymsg.cpp @@ -245,26 +245,28 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Controls what messages will be sent to users when they join the channel.")); - source.Reply(" "); - source.Reply(_("The \002ENTRYMSG ADD\002 command adds the given message to\n" - "the list of messages shown to users when they join\n" - "the channel.")); - source.Reply(" "); - source.Reply(_("The \002ENTRYMSG DEL\002 command removes the specified message from\n" - "the list of messages shown to users when they join\n" - "the channel. You can remove a message by specifying its number\n" - "which you can get by listing the messages as explained below.")); - source.Reply(" "); - source.Reply(_("The \002ENTRYMSG LIST\002 command displays a listing of messages\n" - "shown to users when they join the channel.")); - source.Reply(" "); - source.Reply(_("The \002ENTRYMSG CLEAR\002 command clears all entries from\n" - "the list of messages shown to users when they join\n" - "the channel, effectively disabling entry messages.")); - source.Reply(" "); - source.Reply(_("Adding, deleting, or clearing entry messages requires the\n" - "SET permission.")); + source.Reply(_( + "Controls what messages will be sent to users when they join the channel." + "\n\n" + "The \002ENTRYMSG\032ADD\002 command adds the given message to " + "the list of messages shown to users when they join " + "the channel." + "\n\n" + "The \002ENTRYMSG\032DEL\002 command removes the specified message from " + "the list of messages shown to users when they join " + "the channel. You can remove a message by specifying its number " + "which you can get by listing the messages as explained below." + "\n\n" + "The \002ENTRYMSG\032LIST\002 command displays a listing of messages " + "shown to users when they join the channel." + "\n\n" + "The \002ENTRYMSG\032CLEAR\002 command clears all entries from " + "the list of messages shown to users when they join " + "the channel, effectively disabling entry messages." + "\n\n" + "Adding, deleting, or clearing entry messages requires the " + "SET permission." + )); return true; } }; diff --git a/modules/chanserv/cs_flags.cpp b/modules/chanserv/cs_flags.cpp index 876eb67e4..708978191 100644 --- a/modules/chanserv/cs_flags.cpp +++ b/modules/chanserv/cs_flags.cpp @@ -444,24 +444,27 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("%s is another way to modify the channel access list, similar to\n" - "the XOP and ACCESS methods."), source.command.c_str()); - source.Reply(" "); - source.Reply(_("The \002MODIFY\002 command allows you to modify the access list. If the mask is\n" - "not already on the access list it is added, then the changes are applied.\n" - "If the mask has no more flags, then the mask is removed from the access list.\n" - "Additionally, you may use +* or -* to add or remove all flags, respectively. You are\n" - "only able to modify the access list if you have the proper permission on the channel,\n" - "and even then you can only give other people access to the equivalent of what your access is.")); - source.Reply(" "); - source.Reply(_("The \002LIST\002 command allows you to list existing entries on the channel access list.\n" - "If a mask is given, the mask is wildcard matched against all existing entries on the\n" - "access list, and only those entries are returned. If a set of flags is given, only those\n" - "on the access list with the specified flags are returned.")); - source.Reply(" "); - source.Reply(_("The \002CLEAR\002 command clears the channel access list. This requires channel founder access.")); - source.Reply(" "); - source.Reply(_("The available flags are:")); + source.Reply(_( + "%s is another way to modify the channel access list, similar to " + "the XOP and ACCESS methods." + "\n\n" + "The \002MODIFY\002 command allows you to modify the access list. If the mask is " + "not already on the access list it is added, then the changes are applied. " + "If the mask has no more flags, then the mask is removed from the access list. " + "Additionally, you may use +* or -* to add or remove all flags, respectively. You are " + "only able to modify the access list if you have the proper permission on the channel, " + "and even then you can only give other people access to the equivalent of what your access is." + "\n\n" + "The \002LIST\002 command allows you to list existing entries on the channel access list. " + "If a mask is given, the mask is wildcard matched against all existing entries on the " + "access list, and only those entries are returned. If a set of flags is given, only those " + "on the access list with the specified flags are returned." + "\n\n" + "The \002CLEAR\002 command clears the channel access list. This requires channel founder access." + "\n\n" + "The available flags are:" + ), + source.command.c_str()); typedef std::multimap<char, Anope::string, ci::less> reverse_map; reverse_map reverse; diff --git a/modules/chanserv/cs_info.cpp b/modules/chanserv/cs_info.cpp index c1200aa3e..8d9b0c04f 100644 --- a/modules/chanserv/cs_info.cpp +++ b/modules/chanserv/cs_info.cpp @@ -74,12 +74,14 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Lists information about the specified registered channel,\n" - "including its founder, time of registration, last\n" - "time used, and description. If the user issuing the\n" - "command has the appropriate access for it, then the\n" - "successor, last topic set, settings and expiration\n" - "time will also be displayed when applicable.")); + source.Reply(_( + "Lists information about the specified registered channel, " + "including its founder, time of registration, last " + "time used, and description. If the user issuing the " + "command has the appropriate access for it, then the " + "successor, last topic set, settings and expiration " + "time will also be displayed when applicable." + )); return true; } }; diff --git a/modules/chanserv/cs_invite.cpp b/modules/chanserv/cs_invite.cpp index 1d36c0375..df11e45fb 100644 --- a/modules/chanserv/cs_invite.cpp +++ b/modules/chanserv/cs_invite.cpp @@ -89,11 +89,14 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Tells %s to invite you or an optionally specified\n" - "nick into the given channel.\n" - " \n" - "By default, limited to AOPs or those with level 5 access and above\n" - "on the channel."), source.service->nick.c_str()); + source.Reply(_( + "Tells %s to invite you or an optionally specified " + "nick into the given channel." + "\n\n" + "By default, limited to AOPs or those with level 5 access and above " + "on the channel." + ), + source.service->nick.c_str()); return true; } }; diff --git a/modules/chanserv/cs_kick.cpp b/modules/chanserv/cs_kick.cpp index 5ba61eaef..e4175d29e 100644 --- a/modules/chanserv/cs_kick.cpp +++ b/modules/chanserv/cs_kick.cpp @@ -131,10 +131,12 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Kicks a specified nick from a channel.\n" - " \n" - "By default, limited to AOPs or those with level 5 access\n" - "and above on the channel. Channel founders can also specify masks.")); + source.Reply(_( + "Kicks a specified nick from a channel." + "\n\n" + "By default, limited to AOPs or those with level 5 access " + "and above on the channel. Channel founders can also specify masks." + )); return true; } }; diff --git a/modules/chanserv/cs_list.cpp b/modules/chanserv/cs_list.cpp index 1002d10ba..408d4c9a8 100644 --- a/modules/chanserv/cs_list.cpp +++ b/modules/chanserv/cs_list.cpp @@ -42,8 +42,10 @@ public: if (!num1.has_value() || !num2.has_value()) { source.Reply(LIST_INCORRECT_RANGE); - source.Reply(_("To search for channels starting with #, search for the channel\n" - "name without the #-sign prepended (\002anope\002 instead of \002#anope\002).")); + source.Reply(_( + "To search for channels starting with #, search for the channel " + "name without the #-sign prepended (\002anope\002 instead of \002#anope\002)." + )); return; } @@ -133,38 +135,43 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Lists all registered channels matching the given pattern.\n" - "Channels with the \002PRIVATE\002 option set will only be\n" - "displayed to Services Operators with the proper access.\n" - "Channels with the \002NOEXPIRE\002 option set will have\n" - "a \002!\002 prefixed to the channel for Services Operators to see.\n" - " \n" - "Note that a preceding '#' specifies a range, channel names\n" - "are to be written without '#'.\n" - " \n" - "If the SUSPENDED or NOEXPIRE options are given, only channels\n" - "which, respectively, are SUSPENDED or have the NOEXPIRE\n" - "flag set will be displayed. If multiple options are given,\n" - "all channels matching at least one option will be displayed.\n" - "Note that these options are limited to \037Services Operators\037.\n" - " \n" - "Examples:\n" - " \n" - " \002LIST *anope*\002\n" - " Lists all registered channels with \002anope\002 in their\n" - " names (case insensitive).\n" - " \n" - " \002LIST * NOEXPIRE\002\n" - " Lists all registered channels which have been set to not expire.\n" - " \n" - " \002LIST #51-100\002\n" - " Lists all registered channels within the given range (51-100).")); + source.Reply(_( + "Lists all registered channels matching the given pattern. " + "Channels with the \002PRIVATE\002 option set will only be " + "displayed to Services Operators with the proper access. " + "Channels with the \002NOEXPIRE\002 option set will have " + "a \002!\002 prefixed to the channel for Services Operators to see." + "\n\n" + "Note that a preceding '#' specifies a range, channel names " + "are to be written without '#'." + "\n\n" + "If the SUSPENDED or NOEXPIRE options are given, only channels " + "which, respectively, are SUSPENDED or have the NOEXPIRE " + "flag set will be displayed. If multiple options are given, " + "all channels matching at least one option will be displayed. " + "Note that these options are limited to \037Services Operators\037." + "\n\n" + "Examples:" + "\n\n" + " \002LIST\032*anope*\002\n" + " Lists all registered channels with \002anope\002 in their\n" + " names (case insensitive)." + "\n\n" + " \002LIST\032*\032NOEXPIRE\002\n" + " Lists all registered channels which have been set to not expire." + "\n\n" + " \002LIST #51-100\002\n" + " Lists all registered channels within the given range (51-100)." + )); if (!Config->GetBlock("options").Get<const Anope::string>("regexengine").empty()) { source.Reply(" "); - source.Reply(_("Regex matches are also supported using the %s engine.\n" - "Enclose your pattern in // if this is desired."), Config->GetBlock("options").Get<const Anope::string>("regexengine").c_str()); + source.Reply(_( + "Regex matches are also supported using the %s engine. " + "Enclose your pattern in // if this is desired." + ), + Config->GetBlock("options").Get<const Anope::string>("regexengine").c_str()); } return true; @@ -234,8 +241,10 @@ public: BotInfo *bi; Anope::string cmd; if (Command::FindCommandFromService("chanserv/list", bi, cmd)) - source.Reply(_("When \002private\002 is set, the channel will not appear in\n" - "%s's %s command."), bi->nick.c_str(), cmd.c_str()); + { + source.Reply(_("When \002private\002 is set, the channel will not appear in %s's %s command."), + bi->nick.c_str(), cmd.c_str()); + } return true; } }; diff --git a/modules/chanserv/cs_log.cpp b/modules/chanserv/cs_log.cpp index e704b7021..de3bbed2b 100644 --- a/modules/chanserv/cs_log.cpp +++ b/modules/chanserv/cs_log.cpp @@ -271,26 +271,30 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("The %s command allows users to configure logging settings\n" - "for their channel. If no parameters are given this command\n" - "lists the current logging methods in place for this channel.\n" - " \n" - "Otherwise, \037command\037 must be a command name, and \037method\037\n" - "is one of the following logging methods:\n" - " \n" - " MESSAGE [status], NOTICE [status], MEMO\n" - " \n" - "Which are used to message, notice, and memo the channel respectively.\n" - "With MESSAGE or NOTICE you must have a service bot assigned to and joined\n" - "to your channel. Status may be a channel status such as @ or +.\n" - " \n" - "To remove a logging method use the same syntax as you would to add it.\n" - " \n" + source.Reply(_( + "The %s command allows users to configure logging settings " + "for their channel. If no parameters are given this command " + "lists the current logging methods in place for this channel." + "\n\n" + "Otherwise, \037command\037 must be a command name, and \037method\037 " + "is one of the following logging methods:" + "\n\n" + " MESSAGE\032[status], NOTICE\032[status], MEMO" + "\n\n" + "Which are used to message, notice, and memo the channel respectively. " + "With MESSAGE or NOTICE you must have a service bot assigned to and joined " + "to your channel. Status may be a channel status such as @ or +." + "\n\n" + "To remove a logging method use the same syntax as you would to add it." + "\n\n" "Example:\n" - " %s #anope chanserv/access MESSAGE @\n" - " Would message any channel operators whenever someone used the\n" - " ACCESS command on ChanServ on the channel."), - source.command.upper().c_str(), source.command.upper().c_str()); + " %s\032#anope\032chanserv/access\032MESSAGE\032@\n" + " Would message any channel operators whenever someone used the " + "ACCESS command on ChanServ on the channel." + ), + source.command.upper().c_str(), + source.command.upper().c_str()); + return true; } }; diff --git a/modules/chanserv/cs_mode.cpp b/modules/chanserv/cs_mode.cpp index 20638973b..85ebaf5ce 100644 --- a/modules/chanserv/cs_mode.cpp +++ b/modules/chanserv/cs_mode.cpp @@ -774,29 +774,35 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Mainly controls mode locks and mode access (which is different from channel access)\n" - "on a channel.\n" - " \n" - "The \002%s LOCK\002 command allows you to add, delete, and view mode locks on a channel.\n" - "If a mode is locked on or off, services will not allow that mode to be changed. The \002SET\002\n" - "command will clear all existing mode locks and set the new one given, while \002ADD\002 and \002DEL\002\n" - "modify the existing mode lock.\n" - "Example:\n" - " \002MODE #channel LOCK ADD +bmnt *!*@*aol*\002\n" - " \n" - "The \002%s SET\002 command allows you to set modes through services. Wildcards * and ? may\n" - "be given as parameters for list and status modes.\n" - "Example:\n" - " \002MODE #channel SET +v *\002\n" - " Sets voice status to all users in the channel.\n" - " \n" - " \002MODE #channel SET -b ~c:*\n" - " Clears all extended bans that start with ~c:\n" - " \n" - "The \002%s CLEAR\002 command is an easy way to clear modes on a channel. \037what\037 may be\n" - "any mode name. Examples include bans, excepts, inviteoverrides, ops, halfops, and voices. If \037what\037\n" - "is not given then all basic modes are removed."), - source.command.upper().c_str(), source.command.upper().c_str(), source.command.upper().c_str()); + source.Reply(_( + "Mainly controls mode locks and mode access (which is different from channel access) " + "on a channel." + "\n\n" + "The \002%s\032LOCK\002 command allows you to add, delete, and view mode locks on a channel. " + "If a mode is locked on or off, services will not allow that mode to be changed. The \002SET\002 " + "command will clear all existing mode locks and set the new one given, while \002ADD\002 and \002DEL\002 " + "modify the existing mode lock." + "\n\n" + "Example:\n" + " \002MODE\032#channel\032LOCK\032ADD\032+bmnt\032*!*@*aol*\002\n" + "\n\n" + "The \002%s\032SET\002 command allows you to set modes through services. Wildcards * and ? may " + "be given as parameters for list and status modes." + "\n\n" + "Example:\n" + " \002MODE\032#channel\032SET\032+v\032*\002\n" + " Sets voice status to all users in the channel." + "\n\n" + " \002MODE\032#channel\032SET\032-b\032~c:*\n" + " Clears all extended bans that start with ~c:" + "\n\n" + "The \002%s\032CLEAR\002 command is an easy way to clear modes on a channel. \037what\037 may be " + "any mode name. Examples include bans, excepts, inviteoverrides, ops, halfops, and voices. If \037what\037 " + "is not given then all basic modes are removed." + ), + source.command.upper().c_str(), + source.command.upper().c_str(), + source.command.upper().c_str()); return true; } }; @@ -924,13 +930,15 @@ public: this->SendSyntax(source); source.Reply(" "); if (m.first) - source.Reply(_("Gives %s status to the selected nicks on a channel. If \037nick\037 is\n" - "not given, it will %s you."), - m.second.upper().c_str(), m.second.lower().c_str()); + { + source.Reply(_("Gives %s status to the selected nicks on a channel. If \037nick\037 is not given, it will %s you."), + m.second.upper().c_str(), m.second.lower().c_str()); + } else - source.Reply(_("Removes %s status from the selected nicks on a channel. If \037nick\037 is\n" - "not given, it will de%s you."), - m.second.upper().c_str(), m.second.lower().c_str()); + { + source.Reply(_("Removes %s status from the selected nicks on a channel. If \037nick\037 is not given, it will de%s you."), + m.second.upper().c_str(), m.second.lower().c_str()); + } source.Reply(" "); source.Reply(_("You must have the %s(ME) privilege on the channel to use this command."), m.second.upper().c_str()); diff --git a/modules/chanserv/cs_register.cpp b/modules/chanserv/cs_register.cpp index e8074ed19..f206aea8b 100644 --- a/modules/chanserv/cs_register.cpp +++ b/modules/chanserv/cs_register.cpp @@ -84,29 +84,41 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Registers a channel in the %s database. In order\n" - "to use this command, you must first be a channel operator\n" - "on the channel you're trying to register.\n" - "The description, which is optional, is a\n" - "general description of the channel's purpose.\n" - " \n" - "When you register a channel, you are recorded as the\n" - "\"founder\" of the channel. The channel founder is allowed\n" - "to change all of the channel settings for the channel;\n" - "%s will also automatically give the founder\n" - "channel operator privileges when they enter the channel."), - source.service->nick.c_str(), source.service->nick.c_str()); + source.Reply(_( + "Registers a channel in the %s database. In order " + "to use this command, you must first be a channel operator " + "on the channel you're trying to register. " + "The description, which is optional, is a " + "general description of the channel's purpose. " + "\n\n" + "When you register a channel, you are recorded as the " + "\"founder\" of the channel. The channel founder is allowed " + "to change all of the channel settings for the channel; " + "%s will also automatically give the founder " + "channel operator privileges when they enter the channel." + ), + source.service->nick.c_str(), + source.service->nick.c_str()); + BotInfo *bi; Anope::string cmd; if (Command::FindCommandFromService("chanserv/access", bi, cmd)) - source.Reply(_(" \n" - "See the \002%s\002 command (\002%s ACCESS\002) for\n" - "information on giving a subset of these privileges to\n" - "other channel users.\n"), - cmd.c_str(), bi->GetQueryCommand("generic/help").c_str()); - source.Reply(_(" \n" - "NOTICE: In order to register a channel, you must have\n" + { + source.Reply(" "); + source.Reply(_( + "See the \002%s\002 command (\002%s\032ACCESS\002) for " + "information on giving a subset of these privileges to " + "other channel users." + ), + cmd.c_str(), + bi->GetQueryCommand("generic/help").c_str()); + } + + source.Reply(" "); + source.Reply(_( + "NOTICE: In order to register a channel, you must have " "first registered your nickname.")); + return true; } }; diff --git a/modules/chanserv/cs_seen.cpp b/modules/chanserv/cs_seen.cpp index 835e3b124..31c5e6b88 100644 --- a/modules/chanserv/cs_seen.cpp +++ b/modules/chanserv/cs_seen.cpp @@ -181,13 +181,17 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("The \002STATS\002 command prints out statistics about stored nicks and memory usage.")); - source.Reply(_("The \002CLEAR\002 command lets you clean the database by removing all entries from the\n" - "database that were added within \037time\037.\n" - " \n" + source.Reply(_( + "The \002STATS\002 command prints out statistics about stored nicks and memory usage." + "\n\n" + "The \002CLEAR\002 command lets you clean the database by removing all entries from the " + "database that were added within \037time\037." + "\n\n" "Example:\n" - " %s CLEAR 30m\n" - " Will remove all entries that were added within the last 30 minutes."), source.command.c_str()); + " %s\032CLEAR\03230m\n" + " Will remove all entries that were added within the last 30 minutes." + ), + source.command.c_str()); return true; } }; @@ -374,9 +378,11 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Checks for the last time \037nick\037 was seen joining, leaving,\n" - "or changing nick on the network and tells you when and, depending\n" - "on channel or user settings, where it was.")); + source.Reply(_( + "Checks for the last time \037nick\037 was seen joining, leaving, " + "or changing nick on the network and tells you when and, depending " + "on channel or user settings, where it was." + )); return true; } }; diff --git a/modules/chanserv/cs_set.cpp b/modules/chanserv/cs_set.cpp index 271746b49..d4325bd8a 100644 --- a/modules/chanserv/cs_set.cpp +++ b/modules/chanserv/cs_set.cpp @@ -31,9 +31,10 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Allows the channel founder to set various channel options\n" - "and other information.\n" - " \n" + source.Reply(_( + "Allows the channel founder to set various channel options " + "and other information." + "\n\n" "Available options:")); Anope::string this_name = source.command; bool hide_privileged_commands = Config->GetBlock("options").Get<bool>("hideprivilegedcommands"), @@ -59,8 +60,7 @@ public: c->OnServHelp(source); } } - source.Reply(_("Type \002%s \037option\037\002 for more information on a\n" - "particular option."), + source.Reply(_("Type \002%s\032\037option\037\002 for more information on a particular option."), source.service->GetQueryCommand("generic/help", this_name).c_str()); return true; } @@ -122,9 +122,12 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Enables or disables %s's autoop feature for a\n" - "channel. When disabled, users who join the channel will\n" - "not automatically gain any status from %s."), source.service->nick.c_str(), + source.Reply(_( + "Enables or disables %s's autoop feature for a " + "channel. When disabled, users who join the channel will " + "not automatically gain any status from %s." + ), + source.service->nick.c_str(), source.service->nick.c_str()); return true; } @@ -182,15 +185,17 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Sets the ban type that will be used by services whenever\n" - "they need to ban someone from your channel.\n" - " \n" - "Bantype is a number between 0 and 3 that means:\n" - " \n" - "0: ban in the form *!user@host\n" - "1: ban in the form *!*user@host\n" - "2: ban in the form *!*@host\n" - "3: ban in the form *!*user@*.domain")); + source.Reply(_( + "Sets the ban type that will be used by services whenever " + "they need to ban someone from your channel." + "\n\n" + "Bantype is a number between 0 and 3 that means:" + "\n\n" + "0: ban in the form *!user@host\n" + "1: ban in the form *!*user@host\n" + "2: ban in the form *!*@host\n" + "3: ban in the form *!*user@*.domain" + )); return true; } }; @@ -252,8 +257,10 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Sets the description for the channel, which shows up with\n" - "the \002LIST\002 and \002INFO\002 commands.")); + source.Reply(_( + "Sets the description for the channel, which shows up with " + "the \002LIST\002 and \002INFO\002 commands." + )); return true; } }; @@ -322,8 +329,10 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Changes the founder of a channel. The new nickname must\n" - "be a registered one.")); + source.Reply(_( + "Changes the founder of a channel. The new nickname must " + "be a registered one." + )); return true; } }; @@ -387,9 +396,11 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Enables or disables keepmodes for the given channel. If keep\n" - "modes is enabled, services will remember modes set on the channel\n" - "and attempt to re-set them the next time the channel is created.")); + source.Reply(_( + "Enables or disables keepmodes for the given channel. If keep " + "modes is enabled, services will remember modes set on the channel " + "and attempt to re-set them the next time the channel is created." + )); return true; } }; @@ -452,10 +463,13 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Enables or disables the \002peace\002 option for a channel.\n" - "When \002peace\002 is set, a user won't be able to kick,\n" - "ban or remove a channel status of a user that has\n" - "a level superior or equal to theirs via %s commands."), source.service->nick.c_str()); + source.Reply(_( + "Enables or disables the \002peace\002 option for a channel. " + "When \002peace\002 is set, a user won't be able to kick, " + "ban or remove a channel status of a user that has " + "a level superior or equal to theirs via %s commands." + ), + source.service->nick.c_str()); return true; } }; @@ -595,26 +609,30 @@ public: BotInfo *ChanServ = Config->GetClient("ChanServ"); this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Enables or disables the persistent channel setting.\n" - "When persistent is set, the service bot will remain\n" - "in the channel when it has emptied of users.\n" - " \n" - "If your IRCd does not have a permanent (persistent) channel\n" - "mode you must have a service bot in your channel to\n" - "set persist on, and it can not be unassigned while persist\n" - "is on.\n" - " \n" - "If this network does not have %s enabled and does\n" - "not have a permanent channel mode, %s will\n" - "join your channel when you set persist on (and leave when\n" - "it has been set off).\n" - " \n" - "If your IRCd has a permanent (persistent) channel mode\n" - "and it is set or unset (for any reason, including MODE LOCK),\n" - "persist is automatically set and unset for the channel as well.\n" - "Additionally, services will set or unset this mode when you\n" - "set persist on or off."), BotServ ? BotServ->nick.c_str() : "BotServ", - ChanServ ? ChanServ->nick.c_str() : "ChanServ"); + source.Reply(_( + "Enables or disables the persistent channel setting. " + "When persistent is set, the service bot will remain " + "in the channel when it has emptied of users. " + "\n\n" + "If your IRCd does not have a permanent (persistent) channel " + "mode you must have a service bot in your channel to " + "set persist on, and it can not be unassigned while persist " + "is on." + "\n\n" + "If this network does not have %s enabled and does " + "not have a permanent channel mode, %s will " + "join your channel when you set persist on (and leave when " + "it has been set off)." + "\n\n" + "If your IRCd has a permanent (persistent) channel mode " + "and it is set or unset (for any reason, including MODE LOCK), " + "persist is automatically set and unset for the channel as well. " + "Additionally, services will set or unset this mode when you " + "set persist on or off." + ), + BotServ ? BotServ->nick.c_str() : "BotServ", + ChanServ ? ChanServ->nick.c_str() : "ChanServ" + ); return true; } }; @@ -675,9 +693,11 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Enables or disables the \002restricted access\002 option for a\n" - "channel. When \002restricted access\002 is set, users not on the access list will\n" - "instead be kicked and banned from the channel.")); + source.Reply(_( + "Enables or disables the \002restricted access\002 option for a " + "channel. When \002restricted access\002 is set, users not on the access list will " + "instead be kicked and banned from the channel." + )); return true; } }; @@ -738,11 +758,13 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Enables or disables the \002secure founder\002 option for a channel.\n" - "When \002secure founder\002 is set, only the real founder will be\n" - "able to drop the channel, change its founder and its successor,\n" - "and not those who have founder level access through\n" - "the access/qop command.")); + source.Reply(_( + "Enables or disables the \002secure founder\002 option for a channel. " + "When \002secure founder\002 is set, only the real founder will be " + "able to drop the channel, change its founder and its successor, " + "and not those who have founder level access through " + "the access/qop command." + )); return true; } }; @@ -803,9 +825,11 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Enables or disables the \002secure ops\002 option for a channel.\n" - "When \002secure ops\002 is set, users who are not on the access list\n" - "will not be allowed channel operator status.")); + source.Reply(_( + "Enables or disables the \002secure ops\002 option for a channel. " + "When \002secure ops\002 is set, users who are not on the access list " + "will not be allowed channel operator status." + )); return true; } }; @@ -857,8 +881,8 @@ public: { ci->Extend<bool>("SIGNKICK_LEVEL"); ci->Shrink<bool>("SIGNKICK"); - source.Reply(_("Signed kick option for %s is now \002on\002, but depends of the\n" - "level of the user that is using the command."), ci->name.c_str()); + source.Reply(_("Signed kick option for %s is now \002on\002, but depends of the level of the user that is using the command."), + ci->name.c_str()); Log(source.AccessFor(ci).HasPriv("SET") ? LOG_COMMAND : LOG_OVERRIDE, source, this, ci) << "to enable sign kick level"; } else if (params[1].equals_ci("OFF")) @@ -876,14 +900,16 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Enables or disables signed kicks for a\n" - "channel. When \002SIGNKICK\002 is set, kicks issued with\n" - "the \002KICK\002 command will have the nick that used the\n" - "command in their reason.\n" - " \n" - "If you use \002LEVEL\002, those who have a level that is superior\n" - "or equal to the SIGNKICK level on the channel won't have their\n" - "kicks signed.")); + source.Reply(_( + "Enables or disables signed kicks for a " + "channel. When \002SIGNKICK\002 is set, kicks issued with " + "the \002KICK\002 command will have the nick that used the " + "command in their reason." + "\n\n" + "If you use \002LEVEL\002, those who have a level that is superior " + "or equal to the SIGNKICK level on the channel won't have their " + "kicks signed." + )); return true; } }; @@ -962,22 +988,28 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Changes the successor of a channel. If the founder's\n" - "nickname expires or is dropped while the channel is still\n" - "registered, the successor will become the new founder of the\n" - "channel. The successor's nickname must be a registered one.\n" - "If there's no successor set, then the first nickname on the\n" - "access list (with the highest access, if applicable) will\n" - "become the new founder, but if the access list is empty, the\n" - "channel will be dropped.")); + source.Reply(_( + "Changes the successor of a channel. If the founder's " + "nickname expires or is dropped while the channel is still " + "registered, the successor will become the new founder of the " + "channel. The successor's nickname must be a registered one. " + "If there's no successor set, then the first nickname on the " + "access list (with the highest access, if applicable) will " + "become the new founder, but if the access list is empty, the " + "channel will be dropped." + )); + unsigned max_reg = Config->GetModule("chanserv").Get<unsigned>("maxregistered"); if (max_reg) { source.Reply(" "); - source.Reply(_("Note, however, if the successor already has too many\n" - "channels registered (%d), they will not be able to\n" - "become the new founder and it will be as if the\n" - "channel had no successor set."), max_reg); + source.Reply(_( + "Note, however, if the successor already has too many " + "channels registered (%u), they will not be able to " + "become the new founder and it will be as if the " + "channel had no successor set." + ), + max_reg); } return true; } @@ -1036,8 +1068,10 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Sets whether the given channel will expire. Setting this\n" - "to ON prevents the channel from expiring.")); + source.Reply(_( + "Sets whether the given channel will expire. Setting this " + "to ON prevents the channel from expiring." + )); return true; } }; diff --git a/modules/chanserv/cs_status.cpp b/modules/chanserv/cs_status.cpp index 39b54280e..31697e706 100644 --- a/modules/chanserv/cs_status.cpp +++ b/modules/chanserv/cs_status.cpp @@ -102,11 +102,13 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("This command tells you what a users access is on a channel\n" - "and what access entries, if any, they match. Additionally it\n" - "will tell you of any auto kick entries they match. Usage of\n" - "this command is limited to users who have the ability to modify\n" - "access entries on the channel.")); + source.Reply(_( + "This command tells you what a users access is on a channel " + "and what access entries, if any, they match. Additionally it " + "will tell you of any auto kick entries they match. Usage of " + "this command is limited to users who have the ability to modify " + "access entries on the channel." + )); return true; } }; diff --git a/modules/chanserv/cs_suspend.cpp b/modules/chanserv/cs_suspend.cpp index bda608481..9df5cea0b 100644 --- a/modules/chanserv/cs_suspend.cpp +++ b/modules/chanserv/cs_suspend.cpp @@ -143,14 +143,16 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Disallows anyone from using the given channel.\n" - "May be cancelled by using the \002UNSUSPEND\002\n" - "command to preserve all previous channel data/settings.\n" - "If an expiry is given the channel will be unsuspended after\n" - "that period of time, else the default expiry from the\n" - "configuration is used.\n" - " \n" - "Reason may be required on certain networks.")); + source.Reply(_( + "Disallows anyone from using the given channel. " + "May be cancelled by using the \002UNSUSPEND\002 " + "command to preserve all previous channel data/settings. " + "If an expiry is given the channel will be unsuspended after " + "that period of time, else the default expiry from the " + "configuration is used." + "\n\n" + "Reason may be required on certain networks." + )); return true; } }; @@ -201,8 +203,10 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Releases a suspended channel. All data and settings\n" - "are preserved from before the suspension.")); + source.Reply(_( + "Releases a suspended channel. All data and settings " + "are preserved from before the suspension." + )); return true; } }; diff --git a/modules/chanserv/cs_sync.cpp b/modules/chanserv/cs_sync.cpp index 46b6bad66..dd03075b9 100644 --- a/modules/chanserv/cs_sync.cpp +++ b/modules/chanserv/cs_sync.cpp @@ -47,8 +47,10 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Syncs all modes set on users on the channel with the modes\n" - "they should have based on their access.")); + source.Reply(_( + "Syncs all modes set on users on the channel with the modes " + "they should have based on their access." + )); return true; } }; diff --git a/modules/chanserv/cs_topic.cpp b/modules/chanserv/cs_topic.cpp index 59adcd433..e1aa98e99 100644 --- a/modules/chanserv/cs_topic.cpp +++ b/modules/chanserv/cs_topic.cpp @@ -68,11 +68,15 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Enables or disables the \002topic retention\002 option for a\n" - "channel. When \002%s\002 is set, the topic for the\n" - "channel will be remembered by %s even after the\n" - "last user leaves the channel, and will be restored the\n" - "next time the channel is created."), source.command.c_str(), source.service->nick.c_str()); + source.Reply(_( + "Enables or disables the \002topic retention\002 option for a " + "channel. When \002%s\002 is set, the topic for the " + "channel will be remembered by %s even after the " + "last user leaves the channel, and will be restored the " + "next time the channel is created." + ), + source.command.c_str(), + source.service->nick.c_str()); return true; } }; @@ -192,14 +196,16 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Allows manipulating the topic of the specified channel.\n" - "The \002SET\002 command changes the topic of the channel to the given topic\n" - "or unsets the topic if no topic is given. The \002APPEND\002 command appends\n" - "the given topic to the existing topic.\n" - " \n" - "\002LOCK\002 and \002UNLOCK\002 may be used to enable and disable topic lock. When\n" - "topic lock is set, the channel topic will be unchangeable by users who do not have\n" - "the \002TOPIC\002 privilege.")); + source.Reply(_( + "Allows manipulating the topic of the specified channel. " + "The \002SET\002 command changes the topic of the channel to the given topic " + "or unsets the topic if no topic is given. The \002APPEND\002 command appends " + "the given topic to the existing topic. " + "\n\n" + "\002LOCK\002 and \002UNLOCK\002 may be used to enable and disable topic lock. When " + "topic lock is set, the channel topic will be unchangeable by users who do not have " + "the \002TOPIC\002 privilege." + )); return true; } }; diff --git a/modules/chanserv/cs_unban.cpp b/modules/chanserv/cs_unban.cpp index 0a1955115..15d8679de 100644 --- a/modules/chanserv/cs_unban.cpp +++ b/modules/chanserv/cs_unban.cpp @@ -120,13 +120,16 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Tells %s to remove all bans preventing you or the given\n" - "user from entering the given channel. If no channel is\n" - "given, all bans affecting you in channels you have access\n" - "in are removed.\n" - " \n" - "By default, limited to AOPs or those with level 5 access and above\n" - "on the channel."), source.service->nick.c_str()); + source.Reply(_( + "Tells %s to remove all bans preventing you or the given " + "user from entering the given channel. If no channel is " + "given, all bans affecting you in channels you have access " + "in are removed." + "\n\n" + "By default, limited to AOPs or those with level 5 access and above " + "on the channel." + ), + source.service->nick.c_str()); return true; } }; diff --git a/modules/chanserv/cs_updown.cpp b/modules/chanserv/cs_updown.cpp index 28c35042d..3562daf9c 100644 --- a/modules/chanserv/cs_updown.cpp +++ b/modules/chanserv/cs_updown.cpp @@ -123,9 +123,11 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Updates a selected nicks status modes on a channel. If \037nick\037 is\n" - "omitted then your status is updated. If \037channel\037 is omitted then\n" - "your channel status is updated on every channel you are in.")); + source.Reply(_( + "Updates a selected nicks status modes on a channel. If \037nick\037 is " + "omitted then your status is updated. If \037channel\037 is omitted then " + "your channel status is updated on every channel you are in." + )); return true; } }; @@ -221,9 +223,11 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Removes a selected nicks status modes on a channel. If \037nick\037 is\n" - "omitted then your status is removed. If \037channel\037 is omitted then\n" - "your channel status is removed on every channel you are in.")); + source.Reply(_( + "Removes a selected nicks status modes on a channel. If \037nick\037 is " + "omitted then your status is removed. If \037channel\037 is omitted then " + "your channel status is removed on every channel you are in." + )); return true; } }; diff --git a/modules/chanserv/cs_xop.cpp b/modules/chanserv/cs_xop.cpp index e2e326eb8..f808c7622 100644 --- a/modules/chanserv/cs_xop.cpp +++ b/modules/chanserv/cs_xop.cpp @@ -542,59 +542,78 @@ public: this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Maintains the \002%s list\002 for a channel. Users who match an access entry\n" - "on the %s list receive the following privileges:\n" - " "), cmd.c_str(), cmd.c_str()); + source.Reply(_( + "Maintains the \002%s list\002 for a channel. Users who match an access entry " + "on the %s list receive the following privileges:" + ), + cmd.c_str(), + cmd.c_str()); + source.Reply(" "); Anope::string buf; for (const auto &permission : permissions[cmd]) { buf += ", " + permission; if (buf.length() > 75) { - source.Reply(" %s\n", buf.substr(2).c_str()); + source.Reply(" %s", buf.substr(2).c_str()); buf.clear(); } } if (!buf.empty()) { - source.Reply(" %s\n", buf.substr(2).c_str()); + source.Reply(" %s", buf.substr(2).c_str()); buf.clear(); } - source.Reply(_(" \n" - "The \002%s ADD\002 command adds the given nickname to the\n" - "%s list.\n" - " \n" - "The \002%s DEL\002 command removes the given nick from the\n" - "%s list. If a list of entry numbers is given, those\n" - "entries are deleted. (See the example for LIST below.)\n" - " \n" - "The \002%s LIST\002 command displays the %s list. If\n" - "a wildcard mask is given, only those entries matching the\n" - "mask are displayed. If a list of entry numbers is given,\n" + source.Reply(" "); + source.Reply(_( + "The \002%s\032ADD\002 command adds the given nickname to the " + "%s list." + "\n\n" + "The \002%s\032DEL\002 command removes the given nick from the " + "%s list. If a list of entry numbers is given, those " + "entries are deleted. (See the example for LIST below.)" + "\n\n" + "The \002%s\032LIST\002 command displays the %s list. If " + "a wildcard mask is given, only those entries matching the " + "mask are displayed. If a list of entry numbers is given, " "only those entries are shown; for example:\n" - " \002%s #channel LIST 2-5,7-9\002\n" + " \002%s\032#channel\032LIST\0322-5,7-9\002\n" " Lists %s entries numbered 2 through 5 and\n" - " 7 through 9.\n" - " \n" - "The \002%s CLEAR\002 command clears all entries of the\n" - "%s list."), cmd.c_str(), cmd.c_str(), cmd.c_str(), cmd.c_str(), - cmd.c_str(), cmd.c_str(), cmd.c_str(), cmd.c_str(), cmd.c_str(), cmd.c_str()); + " 7 through 9." + "\n\n" + "The \002%s\032CLEAR\002 command clears all entries of the " + "%s list." + ), + cmd.c_str(), + cmd.c_str(), + cmd.c_str(), + cmd.c_str(), + cmd.c_str(), + cmd.c_str(), + cmd.c_str(), + cmd.c_str(), + cmd.c_str(), + cmd.c_str()); + BotInfo *access_bi, *flags_bi; Anope::string access_cmd, flags_cmd; Command::FindCommandFromService("chanserv/access", access_bi, access_cmd); Command::FindCommandFromService("chanserv/flags", flags_bi, flags_cmd); if (!access_cmd.empty() || !flags_cmd.empty()) { - source.Reply(_("Alternative methods of modifying channel access lists are\n" - "available.")); + source.Reply(_("Alternative methods of modifying channel access lists are available.")); if (!access_cmd.empty()) - source.Reply(_("See \002%s\002 for more information\n" - "about the access list."), access_bi->GetQueryCommand("generic/help", access_cmd).c_str()); + { + source.Reply(_("See \002%s\002 for more information about the access list."), + access_bi->GetQueryCommand("generic/help", access_cmd).c_str()); + } if (!flags_cmd.empty()) - source.Reply(_("See \002%s\002 for more information\n" - "about the flags system."), flags_bi->GetQueryCommand("generic/help", flags_cmd).c_str()); + { + source.Reply(_("See \002%s\002 for more information about the flags system."), + flags_bi->GetQueryCommand("generic/help", flags_cmd).c_str()); + } } return true; } diff --git a/modules/fantasy.cpp b/modules/fantasy.cpp index dc4fab4e9..21a5027d5 100644 --- a/modules/fantasy.cpp +++ b/modules/fantasy.cpp @@ -67,16 +67,18 @@ public: bool OnHelp(CommandSource &source, const Anope::string &) override { this->SendSyntax(source); - source.Reply(_(" \n" - "Enables or disables \002fantasy\002 mode on a channel.\n" - "When it is enabled, users will be able to use\n" - "fantasy commands on a channel when prefixed\n" - "with one of the following fantasy characters: \002%s\002\n" - " \n" - "Note that users wanting to use fantasy commands\n" - "MUST have enough access for both the FANTASY\n" - "privilege and the command they are executing."), - Config->GetModule(this->owner).Get<const Anope::string>("fantasycharacter", "!").c_str()); + source.Reply(" "); + source.Reply(_( + "Enables or disables \002fantasy\002 mode on a channel. " + "When it is enabled, users will be able to use " + "fantasy commands on a channel when prefixed " + "with one of the following fantasy characters: \002%s\002" + "\n\n" + "Note that users wanting to use fantasy commands " + "MUST have enough access for both the FANTASY " + "privilege and the command they are executing." + ), + Config->GetModule(this->owner).Get<const Anope::string>("fantasycharacter", "!").c_str()); return true; } }; diff --git a/modules/global/gl_global.cpp b/modules/global/gl_global.cpp index a88c8080d..8fbfd180a 100644 --- a/modules/global/gl_global.cpp +++ b/modules/global/gl_global.cpp @@ -77,12 +77,13 @@ public: this->SendSyntax(source); source.Reply(" "); source.Reply(_( - "Allows sending messages to all users on the network. The message will be sent\n" - "from \002%s\002.\n" - "\n" - "You can either send a message by specifying it as a parameter or provide no\n" - "parameters to send a previously queued message.\n" - ), GetSender(source)->nick.c_str()); + "Allows sending messages to all users on the network. The message will be sent " + "from \002%s\002." + "\n\n" + "You can either send a message by specifying it as a parameter or provide no " + "parameters to send a previously queued message." + ), + GetSender(source)->nick.c_str()); return true; } }; diff --git a/modules/global/gl_queue.cpp b/modules/global/gl_queue.cpp index 864176c01..a66fb6b4b 100644 --- a/modules/global/gl_queue.cpp +++ b/modules/global/gl_queue.cpp @@ -167,16 +167,16 @@ public: this->SendSyntax(source); source.Reply(""); source.Reply(_( - "Allows queueing messages to send to users on the network.\n" - "\n" - "The \002QUEUE ADD\002 command adds the given message to the message queue." - "\n" - "The \002QUEUE CLEAR\002 command clears the message queue." - "\n" - "The \002QUEUE DEL\002 command removes the specified message from the message queue. The\n" - "message number can be obtained from the output of the \002QUEUE LIST\002 command." - "\n" - "The \002QUEUE LIST\002 command lists all messages that are currently in the message queue." + "Allows queueing messages to send to users on the network." + "\n\n" + "The \002QUEUE\032ADD\002 command adds the given message to the message queue." + "\n\n" + "The \002QUEUE\032CLEAR\002 command clears the message queue." + "\n\n" + "The \002QUEUE\032DEL\002 command removes the specified message from the message queue. The " + "message number can be obtained from the output of the \002QUEUE\032LIST\002 command." + "\n\n" + "The \002QUEUE\032LIST\002 command lists all messages that are currently in the message queue." )); return true; } diff --git a/modules/global/gl_server.cpp b/modules/global/gl_server.cpp index 4b9effdaa..7219c60e7 100644 --- a/modules/global/gl_server.cpp +++ b/modules/global/gl_server.cpp @@ -84,12 +84,13 @@ public: this->SendSyntax(source); source.Reply(" "); source.Reply(_( - "Allows sending messages to all users on a server. The message will be sent\n" - "from \002%s\002.\n" - "\n" - "You can either send a message by specifying it as a parameter or provide no\n" - "parameters to send a previously queued message.\n" - ), GetSender(source)->nick.c_str()); + "Allows sending messages to all users on a server. The message will be sent " + "from \002%s\002." + "\n\n" + "You can either send a message by specifying it as a parameter or provide no " + "parameters to send a previously queued message." + ), + GetSender(source)->nick.c_str()); return true; } }; diff --git a/modules/greet.cpp b/modules/greet.cpp index 9f620d9cb..b76b352fc 100644 --- a/modules/greet.cpp +++ b/modules/greet.cpp @@ -67,12 +67,14 @@ public: bool OnHelp(CommandSource &source, const Anope::string &) override { this->SendSyntax(source); - source.Reply(_(" \n" - "Enables or disables \002greet\002 mode on a channel.\n" - "When it is enabled, the bot will display greet\n" - "messages of users joining the channel, provided\n" - "they have enough access to the channel.")); - return true; + source.Reply(" "); + source.Reply(_( + "Enables or disables \002greet\002 mode on a channel. " + "When it is enabled, the bot will display greet " + "messages of users joining the channel, provided " + "they have enough access to the channel." + )); + return true; } }; @@ -130,10 +132,12 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Makes the given message the greet of your nickname, that\n" - "will be displayed when joining a channel that has GREET\n" - "option enabled, provided that you have the necessary\n" - "access on it.")); + source.Reply(_( + "Makes the given message the greet of your nickname, that " + "will be displayed when joining a channel that has GREET " + "option enabled, provided that you have the necessary " + "access on it." + )); return true; } }; @@ -157,10 +161,12 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Makes the given message the greet of the nickname, that\n" - "will be displayed when joining a channel that has GREET\n" - "option enabled, provided that the user has the necessary\n" - "access on it.")); + source.Reply(_( + "Makes the given message the greet of the nickname, that " + "will be displayed when joining a channel that has GREET " + "option enabled, provided that the user has the necessary " + "access on it." + )); return true; } }; diff --git a/modules/help.cpp b/modules/help.cpp index ba559ca7f..abf97f7e1 100644 --- a/modules/help.cpp +++ b/modules/help.cpp @@ -117,7 +117,7 @@ public: if (!groups.empty()) { source.Reply(" "); - source.Reply(_("Use the \002%s ALL\002 command to list all commands and their descriptions."), source_command.c_str()); + source.Reply(_("Use the \002%s\032ALL\002 command to list all commands and their descriptions."), source_command.c_str()); } } else diff --git a/modules/hostserv/hs_del.cpp b/modules/hostserv/hs_del.cpp index 357f4f8e3..7ce67dbbe 100644 --- a/modules/hostserv/hs_del.cpp +++ b/modules/hostserv/hs_del.cpp @@ -46,8 +46,7 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Deletes the vhost assigned to the given nick from the\n" - "database.")); + source.Reply(_("Deletes the vhost assigned to the given nick from the database.")); return true; } }; @@ -92,8 +91,7 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Deletes the vhost for all nicks in the same group as\n" - "that of the given nick.")); + source.Reply(_("Deletes the vhost for all nicks in the same group as that of the given nick.")); return true; } }; diff --git a/modules/hostserv/hs_group.cpp b/modules/hostserv/hs_group.cpp index bf7b5ddca..183956b72 100644 --- a/modules/hostserv/hs_group.cpp +++ b/modules/hostserv/hs_group.cpp @@ -67,9 +67,11 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("This command allows users to set the vhost of their\n" - "CURRENT nick to be the vhost for all nicks in the same\n" - "group.")); + source.Reply(_( + "This command allows users to set the vhost of their " + "CURRENT nick to be the vhost for all nicks in the same " + "group." + )); return true; } }; diff --git a/modules/hostserv/hs_list.cpp b/modules/hostserv/hs_list.cpp index 174f4baf1..3ff6fe39d 100644 --- a/modules/hostserv/hs_list.cpp +++ b/modules/hostserv/hs_list.cpp @@ -123,13 +123,15 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("This command lists registered vhosts to the operator.\n" - "If a \037key\037 is specified, only entries whose nick or vhost match\n" - "the pattern given in \037key\037 are displayed e.g. Rob* for all\n" - "entries beginning with \"Rob\"\n" - "If a \037#X-Y\037 style is used, only entries between the range of \002X\002\n" - "and \002Y\002 will be displayed, e.g. \002#1-3\002 will display the first 3\n" - "nick/vhost entries.")); + source.Reply(_( + "This command lists registered vhosts to the operator. " + "If a \037key\037 is specified, only entries whose nick or vhost match " + "the pattern given in \037key\037 are displayed e.g. Rob* for all " + "entries beginning with \"Rob\". " + "If a \037#X-Y\037 style is used, only entries between the range of \002X\002 " + "and \002Y\002 will be displayed, e.g. \002#1-3\002 will display the first 3 " + "nick/vhost entries." + )); return true; } }; diff --git a/modules/hostserv/hs_off.cpp b/modules/hostserv/hs_off.cpp index 534640ca3..a5528d4c7 100644 --- a/modules/hostserv/hs_off.cpp +++ b/modules/hostserv/hs_off.cpp @@ -47,9 +47,11 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Deactivates the vhost currently assigned to the nick in use.\n" - "When you use this command any user who performs a /whois\n" - "on you will see your real host/IP address.")); + source.Reply(_( + "Deactivates the vhost currently assigned to the nick in use. " + "When you use this command any user who performs a /whois " + "on you will see your real host/IP address." + )); return true; } }; diff --git a/modules/hostserv/hs_on.cpp b/modules/hostserv/hs_on.cpp index dbd675333..33a077f32 100644 --- a/modules/hostserv/hs_on.cpp +++ b/modules/hostserv/hs_on.cpp @@ -50,9 +50,11 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Activates the vhost currently assigned to the nick in use.\n" - "When you use this command any user who performs a /whois\n" - "on you will see the vhost instead of your real host/IP address.")); + source.Reply(_( + "Activates the vhost currently assigned to the nick in use. " + "When you use this command any user who performs a /whois " + "on you will see the vhost instead of your real host/IP address." + )); return true; } }; diff --git a/modules/hostserv/hs_request.cpp b/modules/hostserv/hs_request.cpp index 65c92ea9b..12252e62f 100644 --- a/modules/hostserv/hs_request.cpp +++ b/modules/hostserv/hs_request.cpp @@ -189,9 +189,11 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Request the given vhost to be activated for your nick by the\n" - "network administrators. Please be patient while your request\n" - "is being considered.")); + source.Reply(_( + "Request the given vhost to be activated for your nick by the " + "network administrators. Please be patient while your request " + "is being considered." + )); return true; } }; diff --git a/modules/hostserv/hs_set.cpp b/modules/hostserv/hs_set.cpp index 740646a9c..1de34b5a3 100644 --- a/modules/hostserv/hs_set.cpp +++ b/modules/hostserv/hs_set.cpp @@ -94,10 +94,12 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Sets the vhost for the given nick to that of the given\n" - "hostmask. If your IRCD supports vidents, then using\n" - "SET <nick> <ident>@<hostmask> set idents for users as\n" - "well as vhosts.")); + source.Reply(_( + "Sets the vhost for the given nick to that of the given " + "hostmask. If your IRCD supports vidents, then using " + "SET <nick> <ident>@<hostmask> set idents for users as " + "well as vhosts." + )); return true; } }; @@ -198,12 +200,15 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Sets the vhost for all nicks in the same group as that\n" - "of the given nick. If your IRCD supports vidents, then\n" - "using SETALL <nick> <ident>@<hostmask> will set idents\n" - "for users as well as vhosts.\n" - "* NOTE, this will not update the vhost for any nicks\n" - "added to the group after this command was used.")); + source.Reply(_( + "Sets the vhost for all nicks in the same group as that " + "of the given nick. If your IRCD supports vidents, then " + "using SETALL <nick> <ident>@<hostmask> will set idents " + "for users as well as vhosts." + "\n\n" + "* NOTE, this will not update the vhost for any nicks " + "added to the group after this command was used." + )); return true; } }; diff --git a/modules/memoserv/memoserv.cpp b/modules/memoserv/memoserv.cpp index b653e8ade..e25497f0d 100644 --- a/modules/memoserv/memoserv.cpp +++ b/modules/memoserv/memoserv.cpp @@ -214,12 +214,17 @@ public: { if (!params.empty() || source.c || source.service != *MemoServ) return EVENT_CONTINUE; - source.Reply(_("\002%s\002 is a utility allowing IRC users to send short\n" - "messages to other IRC users, whether they are online at\n" - "the time or not, or to channels(*). Both the sender's\n" - "nickname and the target nickname or channel must be\n" - "registered in order to send a memo.\n" - "%s's commands include:"), MemoServ->nick.c_str(), MemoServ->nick.c_str()); + source.Reply(_( + "\002%s\002 is a utility allowing IRC users to send short " + "messages to other IRC users, whether they are online at " + "the time or not, or to channels(*). Both the sender's " + "nickname and the target nickname or channel must be " + "registered in order to send a memo." + "\n\n" + "%s's commands include:" + ), + MemoServ->nick.c_str(), + MemoServ->nick.c_str()); return EVENT_CONTINUE; } @@ -227,9 +232,9 @@ public: { if (!params.empty() || source.c || source.service != *MemoServ) return; - source.Reply(_(" \n" - "Type \002%s \037command\037\002 for help on any of the\n" - "above commands."), + + source.Reply(" "); + source.Reply(_("Type \002%s\032\037command\037\002 for help on any of the above commands."), MemoServ->GetQueryCommand("generic/help").c_str()); } }; diff --git a/modules/memoserv/ms_cancel.cpp b/modules/memoserv/ms_cancel.cpp index b423899b0..5a93497fe 100644 --- a/modules/memoserv/ms_cancel.cpp +++ b/modules/memoserv/ms_cancel.cpp @@ -82,8 +82,10 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Cancels the last memo you sent to the given nick or channel,\n" - "provided it has not been read at the time you use the command.")); + source.Reply(_( + "Cancels the last memo you sent to the given nick or channel, " + "provided it has not been read at the time you use the command." + )); return true; } }; diff --git a/modules/memoserv/ms_check.cpp b/modules/memoserv/ms_check.cpp index 7c478b02b..31efa70c3 100644 --- a/modules/memoserv/ms_check.cpp +++ b/modules/memoserv/ms_check.cpp @@ -67,8 +67,10 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Checks whether the _last_ memo you sent to \037nick\037 has been read\n" - "or not. Note that this only works with nicks, not with channels.")); + source.Reply(_( + "Checks whether the _last_ memo you sent to \037nick\037 has been read " + "or not. Note that this only works with nicks, not with channels." + )); return true; } }; diff --git a/modules/memoserv/ms_del.cpp b/modules/memoserv/ms_del.cpp index 56700b0bd..d905a2e08 100644 --- a/modules/memoserv/ms_del.cpp +++ b/modules/memoserv/ms_del.cpp @@ -128,20 +128,23 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Deletes the specified memo or memos. You can supply\n" - "multiple memo numbers or ranges of numbers instead of a\n" - "single number, as in the second example below.\n" - " \n" - "If \002LAST\002 is given, the last memo will be deleted.\n" - "If \002ALL\002 is given, deletes all of your memos.\n" - " \n" - "Examples:\n" - " \n" - " \002DEL 1\002\n" - " Deletes your first memo.\n" - " \n" - " \002DEL 2-5,7-9\002\n" - " Deletes memos numbered 2 through 5 and 7 through 9.")); + source.Reply(_( + "Deletes the specified memo or memos. You can supply " + "multiple memo numbers or ranges of numbers instead of a " + "single number, as in the second example below." + "\n\n" + "If \002LAST\002 is given, the last memo will be deleted." + "\n\n" + "If \002ALL\002 is given, deletes all of your memos." + "\n\n" + "Examples:" + "\n\n" + " \002DEL\0321\002\n" + " Deletes your first memo." + "\n\n" + " \002DEL\0322-5,7-9\002\n" + " Deletes memos numbered 2 through 5 and 7 through 9." + )); return true; } }; diff --git a/modules/memoserv/ms_ignore.cpp b/modules/memoserv/ms_ignore.cpp index 6b50d90bc..022a95bc4 100644 --- a/modules/memoserv/ms_ignore.cpp +++ b/modules/memoserv/ms_ignore.cpp @@ -103,10 +103,12 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Allows you to ignore users by nick or host from memoing\n" - "you or a channel. If someone on the memo ignore list tries\n" - "to memo you or a channel, they will not be told that you have\n" - "them ignored.")); + source.Reply(_( + "Allows you to ignore users by nick or host from memoing " + "you or a channel. If someone on the memo ignore list tries " + "to memo you or a channel, they will not be told that you have " + "them ignored." + )); return true; } }; diff --git a/modules/memoserv/ms_info.cpp b/modules/memoserv/ms_info.cpp index 91acaabde..e325c13e2 100644 --- a/modules/memoserv/ms_info.cpp +++ b/modules/memoserv/ms_info.cpp @@ -204,16 +204,18 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Without a parameter, displays information on the number of\n" - "memos you have, how many of them are unread, and how many\n" - "total memos you can receive.\n" - " \n" - "With a channel parameter, displays the same information for\n" - "the given channel.\n" - " \n" - "With a nickname parameter, displays the same information\n" - "for the given nickname. This is limited to \002Services\002\n" - "\002Operators\002.")); + source.Reply(_( + "Without a parameter, displays information on the number of " + "memos you have, how many of them are unread, and how many " + "total memos you can receive." + "\n\n" + "With a channel parameter, displays the same information for " + "the given channel." + "\n\n" + "With a nickname parameter, displays the same information " + "for the given nickname. This is limited to \002Services " + "Operators\002." + )); return true; } diff --git a/modules/memoserv/ms_list.cpp b/modules/memoserv/ms_list.cpp index d421efe86..d7926b39f 100644 --- a/modules/memoserv/ms_list.cpp +++ b/modules/memoserv/ms_list.cpp @@ -141,12 +141,14 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Lists any memos you currently have. With \002NEW\002, lists only\n" - "new (unread) memos. Unread memos are marked with a \"*\"\n" - "to the left of the memo number. You can also specify a list\n" - "of numbers, as in the example below:\n" - " \002LIST 2-5,7-9\002\n" - " Lists memos numbered 2 through 5 and 7 through 9.")); + source.Reply(_( + "Lists any memos you currently have. With \002NEW\002, lists only " + "new (unread) memos. Unread memos are marked with a \"*\" " + "to the left of the memo number. You can also specify a list " + "of numbers, as in the example below:\n" + " \002LIST 2-5,7-9\002\n" + " Lists memos numbered 2 through 5 and 7 through 9." + )); return true; } }; diff --git a/modules/memoserv/ms_read.cpp b/modules/memoserv/ms_read.cpp index 7878027bf..4fec8cdb8 100644 --- a/modules/memoserv/ms_read.cpp +++ b/modules/memoserv/ms_read.cpp @@ -39,8 +39,8 @@ static void rsend_notify(CommandSource &source, MemoInfo *mi, Memo *m, const Ano /* Notify recipient of the memo that a notification has been sent to the sender */ - source.Reply(_("A notification memo has been sent to %s informing them you have\n" - "read their memo."), nc->display.c_str()); + source.Reply(_("A notification memo has been sent to %s informing them you have read their memo."), + nc->display.c_str()); } /* Remove receipt flag from the original memo */ @@ -198,15 +198,17 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Sends you the text of the memos specified. If LAST is\n" - "given, sends you the memo you most recently received. If\n" - "NEW is given, sends you all of your new memos. If ALL is\n" - "given, sends you all of your memos. Otherwise, sends you\n" - "memo number \037num\037. You can also give a list of numbers,\n" - "as in this example:\n" - " \n" - " \002READ 2-5,7-9\002\n" - " Displays memos numbered 2 through 5 and 7 through 9.")); + source.Reply(_( + "Sends you the text of the memos specified. If LAST is " + "given, sends you the memo you most recently received. If " + "NEW is given, sends you all of your new memos. If ALL is " + "given, sends you all of your memos. Otherwise, sends you " + "memo number \037num\037. You can also give a list of numbers, " + "as in this example:" + "\n\n" + " \002READ 2-5,7-9\002\n" + " Displays memos numbered 2 through 5 and 7 through 9." + )); return true; } }; diff --git a/modules/memoserv/ms_rsend.cpp b/modules/memoserv/ms_rsend.cpp index 6543e2451..22b27a4f4 100644 --- a/modules/memoserv/ms_rsend.cpp +++ b/modules/memoserv/ms_rsend.cpp @@ -82,13 +82,15 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Sends the named \037nick\037 or \037channel\037 a memo containing\n" - "\037memo-text\037. When sending to a nickname, the recipient will\n" - "receive a notice that they have a new memo. The target\n" - "nickname/channel must be registered.\n" - "Once the memo is read by its recipient, an automatic notification\n" - "memo will be sent to the sender informing them that the memo\n" - "has been read.")); + source.Reply(_( + "Sends the named \037nick\037 or \037channel\037 a memo containing " + "\037memo-text\037. When sending to a nickname, the recipient will " + "receive a notice that they have a new memo. The target " + "nickname/channel must be registered. " + "Once the memo is read by its recipient, an automatic notification " + "memo will be sent to the sender informing them that the memo " + "has been read." + )); return true; } }; diff --git a/modules/memoserv/ms_send.cpp b/modules/memoserv/ms_send.cpp index ba025a5ca..8e348b949 100644 --- a/modules/memoserv/ms_send.cpp +++ b/modules/memoserv/ms_send.cpp @@ -68,10 +68,12 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Sends the named \037nick\037 or \037channel\037 a memo containing\n" - "\037memo-text\037. When sending to a nickname, the recipient will\n" - "receive a notice that they have a new memo. The target\n" - "nickname/channel must be registered.")); + source.Reply(_( + "Sends the named \037nick\037 or \037channel\037 a memo containing " + "\037memo-text\037. When sending to a nickname, the recipient will " + "receive a notice that they have a new memo. The target " + "nickname/channel must be registered." + )); return true; } }; diff --git a/modules/memoserv/ms_set.cpp b/modules/memoserv/ms_set.cpp index ac2f066ba..f4158c855 100644 --- a/modules/memoserv/ms_set.cpp +++ b/modules/memoserv/ms_set.cpp @@ -225,65 +225,85 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Sets various memo options. \037option\037 can be one of:\n" - " \n" + source.Reply(_( + "Sets various memo options. \037option\037 can be one of:" + "\n\n" " NOTIFY Changes when you will be notified about\n" - " new memos (only for nicknames)\n" + " new memos (only for nicknames)" + "\n\n" " LIMIT Sets the maximum number of memos you can\n" - " receive\n" - " \n" - "Type \002%s \037option\037\002 for more information\n" - "on a specific option."), + " receive" + "\n\n" + "Type \002%s\032\037option\037\002 for more information " + "on a specific option." + ), source.service->GetQueryCommand("generic/help", source.command).c_str()); } else if (subcommand.equals_ci("NOTIFY")) - source.Reply(_("Syntax: \002NOTIFY {ON | LOGON | NEW | MAIL | NOMAIL | OFF}\002\n" - " \n" - "Changes when you will be notified about new memos:\n" - " \n" - " ON You will be notified of memos when you log on,\n" - " when you unset /AWAY, and when they are sent\n" - " to you.\n" - " LOGON You will only be notified of memos when you log\n" - " on or when you unset /AWAY.\n" - " NEW You will only be notified of memos when they\n" - " are sent to you.\n" - " MAIL You will be notified of memos by email as well as\n" - " any other settings you have.\n" - " NOMAIL You will not be notified of memos by email.\n" - " OFF You will not receive any notification of memos.\n" - " \n" - "\002ON\002 is essentially \002LOGON\002 and \002NEW\002 combined.")); + { + source.Reply(_( + "Syntax: \002NOTIFY {ON | LOGON | NEW | MAIL | NOMAIL | OFF}\002" + "\n\n" + "Changes when you will be notified about new memos:" + "\n\n" + " ON You will be notified of memos when you log on,\n" + " when you unset /AWAY, and when they are sent\n" + " to you." + "\n\n" + " LOGON You will only be notified of memos when you log\n" + " on or when you unset /AWAY." + "\n\n" + " NEW You will only be notified of memos when they\n" + " are sent to you." + "\n\n" + " MAIL You will be notified of memos by email as well as\n" + " any other settings you have." + "\n\n" + " NOMAIL You will not be notified of memos by email." + "\n\n" + " OFF You will not receive any notification of memos." + "\n\n" + "\002ON\002 is essentially \002LOGON\002 and \002NEW\002 combined." + )); + } else if (subcommand.equals_ci("LIMIT")) { int max_memos = Config->GetModule("memoserv").Get<int>("maxmemos"); if (source.IsServicesOper()) - source.Reply(_("Syntax: \002LIMIT [\037user\037 | \037channel\037] {\037limit\037 | NONE} [HARD]\002\n" - " \n" - "Sets the maximum number of memos a user or channel is\n" - "allowed to have. Setting the limit to 0 prevents the user\n" - "from receiving any memos; setting it to \002NONE\002 allows the\n" - "user to receive and keep as many memos as they want. If\n" - "you do not give a nickname or channel, your own limit is\n" - "set.\n" - " \n" - "Adding \002HARD\002 prevents the user from changing the limit. Not\n" - "adding \002HARD\002 has the opposite effect, allowing the user to\n" - "change the limit (even if a previous limit was set with\n" - "\002HARD\002).\n" - " \n" - "This use of the \002SET LIMIT\002 command is limited to \002Services\002\n" - "\002Operators\002. Other users may only enter a limit for themselves\n" - "or a channel on which they have such privileges, may not\n" - "remove their limit, may not set a limit above %d, and may\n" - "not set a hard limit."), max_memos); + { + source.Reply(_( + "Syntax: \002LIMIT [\037user\037 | \037channel\037] {\037limit\037 | NONE} [HARD]\002" + "\n\n" + "Sets the maximum number of memos a user or channel is " + "allowed to have. Setting the limit to 0 prevents the user " + "from receiving any memos; setting it to \002NONE\002 allows the " + "user to receive and keep as many memos as they want. If " + "you do not give a nickname or channel, your own limit is " + "set." + "\n\n" + "Adding \002HARD\002 prevents the user from changing the limit. Not " + "adding \002HARD\002 has the opposite effect, allowing the user to " + "change the limit (even if a previous limit was set with " + "\002HARD\002)." + "\n\n" + "This use of the \002SET\032LIMIT\002 command is limited to \002Services " + "Operators\002. Other users may only enter a limit for themselves " + "or a channel on which they have such privileges, may not " + "remove their limit, may not set a limit above %d, and may " + "not set a hard limit." + ), + max_memos); + } else - source.Reply(_("Syntax: \002LIMIT [\037channel\037] \037limit\037\002\n" - " \n" - "Sets the maximum number of memos you (or the given channel)\n" - "are allowed to have. If you set this to 0, no one will be\n" - "able to send any memos to you. However, you cannot set\n" - "this any higher than %d."), max_memos); + source.Reply(_( + "Syntax: \002LIMIT [\037channel\037] \037limit\037\002" + "\n\n" + "Sets the maximum number of memos you (or the given channel) " + "are allowed to have. If you set this to 0, no one will be " + "able to send any memos to you. However, you cannot set " + "this any higher than %d." + ), + max_memos); } else return false; diff --git a/modules/nickserv/nickserv.cpp b/modules/nickserv/nickserv.cpp index 3358dcbef..36d32d236 100644 --- a/modules/nickserv/nickserv.cpp +++ b/modules/nickserv/nickserv.cpp @@ -390,10 +390,12 @@ public: if (block.Get<bool>("forceemail", "yes") && u->Account()->email.empty()) { - u->SendMessage(NickServ, _("You must now supply an email for your nick.\n" - "This email will allow you to retrieve your password in\n" - "case you forget it.")); - u->SendMessage(NickServ, _("Type \002%s \037email\037\002 in order to set your email."), + u->SendMessage(NickServ, _( + "You must now supply an email for your nick. " + "This email will allow you to retrieve your password in " + "case you forget it. " + "Type \002%s\032\037email\037\002 in order to set your email." + ), NickServ->GetQueryCommand("nickserv/set/email").c_str()); } @@ -497,20 +499,34 @@ public: { if (!params.empty() || source.c || source.service != *NickServ) return EVENT_CONTINUE; + if (!Config->GetModule("nickserv").Get<bool>("nonicknameownership")) - source.Reply(_("\002%s\002 allows you to register a nickname and\n" - "prevent others from using it. The following\n" - "commands allow for registration and maintenance of\n" - "nicknames; to use them, type \002%s \037command\037\002.\n" - "For more information on a specific command, type\n" - "\002%s \037command\037\002.\n"), NickServ->nick.c_str(), NickServ->GetQueryCommand().c_str(), NickServ->GetQueryCommand({}, source.command).c_str()); + { + source.Reply(_( + "\002%s\002 allows you to register a nickname and " + "prevent others from using it. The following " + "commands allow for registration and maintenance of " + "nicknames; to use them, type \002%s\032\037command\037\002. " + "For more information on a specific command, type " + "\002%s\032\037command\037\002." + ), + NickServ->nick.c_str(), + NickServ->GetQueryCommand().c_str(), + NickServ->GetQueryCommand({}, source.command).c_str()); + } else - source.Reply(_("\002%s\002 allows you to register an account.\n" - "The following commands allow for registration and maintenance of\n" - "accounts; to use them, type \002%s \037command\037\002.\n" - "For more information on a specific command, type\n" - "\002%s \037command\037\002.\n"), - NickServ->nick.c_str(), NickServ->GetQueryCommand().c_str(), NickServ->GetQueryCommand({}, source.command.c_str()).c_str()); + { + source.Reply(_( + "\002%s\002 allows you to register an account. " + "The following commands allow for registration and maintenance of " + "accounts; to use them, type \002%s\032\037command\037\002. " + "For more information on a specific command, type " + "\002%s\032\037command\037\002." + ), + NickServ->nick.c_str(), + NickServ->GetQueryCommand().c_str(), + NickServ->GetQueryCommand({}, source.command.c_str()).c_str()); + } return EVENT_CONTINUE; } @@ -518,17 +534,28 @@ public: { if (!params.empty() || source.c || source.service != *NickServ) return; + if (source.IsServicesOper()) - source.Reply(_(" \n" - "Services Operators can also drop any nickname without needing\n" - "to identify for the nick, and may view the access list for\n" - "any nickname.")); + { + source.Reply(" "); + source.Reply(_( + "Services Operators can also drop any nickname without needing " + "to identify for the nick, and may view the access list for " + "any nickname." + )); + } + time_t nickserv_expire = Config->GetModule(this).Get<time_t>("expire", "1y"); if (nickserv_expire >= 86400) - source.Reply(_(" \n" - "Accounts that are not used anymore are subject to\n" - "the automatic expiration, i.e. they will be deleted\n" - "after %lu days if not used."), (unsigned long)nickserv_expire / 86400); + { + source.Reply(" "); + source.Reply(_( + "Accounts that are not used anymore are subject to " + "the automatic expiration, i.e. they will be deleted " + "after %lu days if not used." + ), + (unsigned long)nickserv_expire / 86400); + } } void OnNickCoreCreate(NickCore *nc) override diff --git a/modules/nickserv/ns_ajoin.cpp b/modules/nickserv/ns_ajoin.cpp index c2e432f2e..7404db93e 100644 --- a/modules/nickserv/ns_ajoin.cpp +++ b/modules/nickserv/ns_ajoin.cpp @@ -304,10 +304,12 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("This command manages your auto join list. When you identify\n" - "you will automatically join the channels on your auto join list.\n" - "Services Operators may provide a nick to modify other users'\n" - "auto join lists.")); + source.Reply(_( + "This command manages your auto join list. When you identify " + "you will automatically join the channels on your auto join list. " + "Services Operators may provide a nick to modify other users' " + "auto join lists." + )); return true; } }; diff --git a/modules/nickserv/ns_alist.cpp b/modules/nickserv/ns_alist.cpp index 4b246f54f..aeb817155 100644 --- a/modules/nickserv/ns_alist.cpp +++ b/modules/nickserv/ns_alist.cpp @@ -119,11 +119,13 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Lists all channels you have access on.\n" - " \n" - "Channels that have the \037NOEXPIRE\037 option set will be\n" - "prefixed by an exclamation mark. The nickname parameter is\n" - "limited to Services Operators")); + source.Reply(_( + "Lists all channels you have access on." + "\n\n" + "Channels that have the \037NOEXPIRE\037 option set will be " + "prefixed by an exclamation mark. The nickname parameter is " + "limited to Services Operators." + )); return true; } diff --git a/modules/nickserv/ns_cert.cpp b/modules/nickserv/ns_cert.cpp index f89199565..869f236fa 100644 --- a/modules/nickserv/ns_cert.cpp +++ b/modules/nickserv/ns_cert.cpp @@ -354,24 +354,26 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Modifies or displays the certificate list for your nick.\n" - "If you connect to IRC and provide a client certificate with a\n" - "matching fingerprint in the cert list, you will be\n" - "automatically identified to services. Services Operators\n" - "may provide a nick to modify other users' certificate lists.\n" - " \n")); - source.Reply(_("Examples:\n" - " \n" - " \002CERT ADD\002\n" - " Adds your current fingerprint to the certificate list and\n" - " automatically identifies you when you connect to IRC\n" - " using this fingerprint.\n" - " \n" - " \002CERT DEL <fingerprint>\002\n" - " Removes the fingerprint <fingerprint> from your certificate list.\n" - " \n" - " \002CERT LIST\002\n" - " Displays the current certificate list.")); + source.Reply(_( + "Modifies or displays the certificate list for your nick. " + "If you connect to IRC and provide a client certificate with a " + "matching fingerprint in the cert list, you will be " + "automatically identified to services. Services Operators " + "may provide a nick to modify other users' certificate lists." + "\n\n" + "Examples:" + "\n\n" + " \002CERT\032ADD\002\n" + " Adds your current fingerprint to the certificate list and\n" + " automatically identifies you when you connect to IRC\n" + " using this fingerprint." + "\n\n" + " \002CERT\032DEL\032<fingerprint>\002\n" + " Removes the fingerprint <fingerprint> from your certificate list." + "\n\n" + " \002CERT\032LIST\002\n" + " Displays the current certificate list." + )); return true; } }; diff --git a/modules/nickserv/ns_drop.cpp b/modules/nickserv/ns_drop.cpp index a51f5ce58..69f998395 100644 --- a/modules/nickserv/ns_drop.cpp +++ b/modules/nickserv/ns_drop.cpp @@ -89,10 +89,12 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Drops the given nick from the database. Once your nickname\n" - "is dropped you may lose all of your access and channels that\n" - "you may own. Any other user will be able to gain control of\n" - "this nick.")); + source.Reply(_( + "Drops the given nick from the database. Once your nickname " + "is dropped you may lose all of your access and channels that " + "you may own. Any other user will be able to gain control of " + "this nick." + )); source.Reply(" "); if (!source.HasPriv("nickserv/drop")) @@ -102,8 +104,12 @@ public: source.Reply(" "); if (source.HasPriv("nickserv/drop/override")) - source.Reply(_("Additionally, Services Operators with the \037nickserv/drop/override\037 permission can\n" - "replace \037code\037 with \002OVERRIDE\002 to drop without a confirmation code.")); + { + source.Reply(_( + "Additionally, Services Operators with the \037nickserv/drop/override\037 permission can " + "replace \037code\037 with \002OVERRIDE\002 to drop without a confirmation code." + )); + } return true; } }; diff --git a/modules/nickserv/ns_group.cpp b/modules/nickserv/ns_group.cpp index 18521bf0c..e1cd7e46f 100644 --- a/modules/nickserv/ns_group.cpp +++ b/modules/nickserv/ns_group.cpp @@ -207,32 +207,34 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("This command makes your nickname join the \037target\037 nickname's\n" - "group. \037password\037 is the password of the target nickname.\n" - " \n" - "Joining a group will allow you to share your configuration,\n" - "memos, and channel privileges with all the nicknames in the\n" - "group, and much more!\n" - " \n" - "A group exists as long as it is useful. This means that even\n" - "if a nick of the group is dropped, you won't lose the\n" - "shared things described above, as long as there is at\n" - "least one nick remaining in the group.\n" - " \n" - "You may be able to use this command even if you have not registered\n" - "your nick yet. If your nick is already registered, you'll\n" - "need to identify yourself before using this command.\n" - " \n" - "It is recommended to use this command with a non-registered\n" - "nick because it will be registered automatically when\n" - "using this command. You may use it with a registered nick (to\n" - "change your group) only if your network administrators allowed\n" - "it.\n" - " \n" - "You can only be in one group at a time. Group merging is\n" - "not possible.\n" - " \n" - "\037Note\037: all the nicknames of a group have the same password.")); + source.Reply(_( + "This command makes your nickname join the \037target\037 nickname's " + "group. \037password\037 is the password of the target nickname. " + "\n\n" + "Joining a group will allow you to share your configuration, " + "memos, and channel privileges with all the nicknames in the " + "group, and much more!" + "\n\n" + "A group exists as long as it is useful. This means that even " + "if a nick of the group is dropped, you won't lose the " + "shared things described above, as long as there is at " + "least one nick remaining in the group." + "\n\n" + "You may be able to use this command even if you have not registered " + "your nick yet. If your nick is already registered, you'll " + "need to identify yourself before using this command. " + "\n\n" + "It is recommended to use this command with a non-registered " + "nick because it will be registered automatically when " + "using this command. You may use it with a registered nick (to " + "change your group) only if your network administrators allowed " + "it." + "\n\n" + "You can only be in one group at a time. Group merging is " + "not possible. " + "\n\n" + "\037Note\037: all the nicknames of a group have the same password." + )); return true; } }; @@ -292,11 +294,13 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("This command ungroups your nick, or if given, the specified nick,\n" - "from the group it is in. The ungrouped nick keeps its registration\n" - "time, password, email, greet, language, and url. Everything else\n" - "is reset. You may not ungroup yourself if there is only one nick in\n" - "your group.")); + source.Reply(_( + "This command ungroups your nick, or if given, the specified nick, " + "from the group it is in. The ungrouped nick keeps its registration " + "time, password, email, greet, language, and url. Everything else " + "is reset. You may not ungroup yourself if there is only one nick in " + "your group." + )); return true; } }; @@ -369,19 +373,29 @@ public: bool OnHelp(CommandSource &source, const Anope::string &subcommand) override { if (source.IsServicesOper()) - source.Reply(_("Syntax: \002%s [\037nickname\037]\002\n" - " \n" - "Without a parameter, lists all nicknames that are in\n" - "your group.\n" - " \n" - "With a parameter, lists all nicknames that are in the\n" - "group of the given nick.\n" - "Specifying a nick is limited to \002Services Operators\002."), - source.command.c_str()); + { + source.Reply(_( + "Syntax: \002%s [\037nickname\037]\002" + "\n\n" + "Without a parameter, lists all nicknames that are in " + "your group." + "\n\n" + "With a parameter, lists all nicknames that are in the " + "group of the given nick." + "\n\n" + "Specifying a nick is limited to \002Services Operators\002." + ), + source.command.c_str()); + } else - source.Reply(_("Syntax: \002%s\002\n" - " \n" - "Lists all nicks in your group."), source.command.c_str()); + { + source.Reply(_( + "Syntax: \002%s\002" + "\n\n" + "Lists all nicks in your group." + ), + source.command.c_str()); + } return true; } diff --git a/modules/nickserv/ns_identify.cpp b/modules/nickserv/ns_identify.cpp index 44e6bb840..94ca476ae 100644 --- a/modules/nickserv/ns_identify.cpp +++ b/modules/nickserv/ns_identify.cpp @@ -111,11 +111,14 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Tells %s that you are really the owner of this\n" - "nick. Many commands require you to authenticate yourself\n" - "with this command before you use them. The password\n" - "should be the same one you sent with the \002REGISTER\002\n" - "command."), source.service->nick.c_str()); + source.Reply(_( + "Tells %s that you are really the owner of this " + "nick. Many commands require you to authenticate yourself " + "with this command before you use them. The password " + "should be the same one you sent with the \002REGISTER\002 " + "command." + ), + source.service->nick.c_str()); return true; } }; diff --git a/modules/nickserv/ns_info.cpp b/modules/nickserv/ns_info.cpp index d67fe0a18..4637bb06e 100644 --- a/modules/nickserv/ns_info.cpp +++ b/modules/nickserv/ns_info.cpp @@ -148,12 +148,13 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Displays information about the given nickname, such as\n" - "the nick's owner, last seen address and time, and nick\n" - "options. If no nick is given, and you are identified,\n" - "your account name is used, else your current nickname is\n" - "used.")); - + source.Reply(_( + "Displays information about the given nickname, such as " + "the nick's owner, last seen address and time, and nick " + "options. If no nick is given, and you are identified, " + "your account name is used, else your current nickname is " + "used." + )); return true; } }; @@ -247,13 +248,16 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Allows you to prevent certain pieces of information from\n" - "being displayed when someone does a %s \002INFO\002 on your\n" - "nick. You can hide your email address (\002EMAIL\002), last seen\n" - "user@host mask (\002USERMASK\002), your services access status\n" - "(\002STATUS\002) and last quit message (\002QUIT\002).\n" - "The second parameter specifies whether the information should\n" - "be displayed (\002OFF\002) or hidden (\002ON\002)."), source.service->nick.c_str()); + source.Reply(_( + "Allows you to prevent certain pieces of information from " + "being displayed when someone does a %s\032\002INFO\002 on your " + "nick. You can hide your email address\032(\002EMAIL\002), last seen " + "user@host mask (\002USERMASK\002), your services access status " + "(\002STATUS\002) and last quit message (\002QUIT\002). " + "The second parameter specifies whether the information should " + "be displayed (\002OFF\002) or hidden (\002ON\002)." + ), + source.service->nick.c_str()); return true; } }; @@ -277,13 +281,16 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Allows you to prevent certain pieces of information from\n" - "being displayed when someone does a %s \002INFO\002 on the\n" - "nick. You can hide the email address (\002EMAIL\002), last seen\n" - "user@host mask (\002USERMASK\002), the services access status\n" - "(\002STATUS\002) and last quit message (\002QUIT\002).\n" - "The second parameter specifies whether the information should\n" - "be displayed (\002OFF\002) or hidden (\002ON\002)."), source.service->nick.c_str()); + source.Reply(_( + "Allows you to prevent certain pieces of information from " + "being displayed when someone does a %s\032\002INFO\002 on the " + "nick. You can hide the email address (\002EMAIL\002), last seen " + "user@host mask (\002USERMASK\002), the services access status " + "(\002STATUS\002) and last quit message (\002QUIT\002). " + "The second parameter specifies whether the information should " + "be displayed (\002OFF\002) or hidden (\002ON\002)." + ), + source.service->nick.c_str()); return true; } }; diff --git a/modules/nickserv/ns_list.cpp b/modules/nickserv/ns_list.cpp index 5a5beacbd..61f05171f 100644 --- a/modules/nickserv/ns_list.cpp +++ b/modules/nickserv/ns_list.cpp @@ -135,41 +135,46 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Lists all registered nicknames which match the given\n" - "pattern, in \037nick!user@host\037 format. Nicks with the \002PRIVATE\002\n" - "option set will only be displayed to Services Operators with the\n" - "proper access. Nicks with the \002NOEXPIRE\002 option set will have\n" - "a \002!\002 prefixed to the nickname for Services Operators to see.\n" - " \n" - "Note that a preceding '#' specifies a range.\n" - " \n" - "If the SUSPENDED, UNCONFIRMED or NOEXPIRE options are given, only\n" - "nicks which, respectively, are SUSPENDED, UNCONFIRMED or have the\n" - "NOEXPIRE flag set will be displayed. If multiple options are\n" - "given, all nicks matching at least one option will be displayed.\n" - "Note that these options are limited to \037Services Operators\037.\n" - " \n" - "Examples:\n" - " \n" - " \002LIST *!joeuser@foo.com\002\n" - " Lists all registered nicks owned by joeuser@foo.com.\n" - " \n" - " \002LIST *Bot*!*@*\002\n" - " Lists all registered nicks with \002Bot\002 in their\n" - " names (case insensitive).\n" - " \n" - " \002LIST * NOEXPIRE\002\n" - " Lists all registered nicks which have been set to not expire.\n" - " \n" - " \002LIST #51-100\002\n" - " Lists all registered nicks within the given range (51-100).")); + source.Reply(_( + "Lists all registered nicknames which match the given " + "pattern, in \037nick!user@host\037 format. Nicks with the \002PRIVATE\002 " + "option set will only be displayed to Services Operators with the " + "proper access. Nicks with the \002NOEXPIRE\002 option set will have " + "a \002!\002 prefixed to the nickname for Services Operators to see." + "\n\n" + "Note that a preceding '#' specifies a range." + "\n\n" + "If the SUSPENDED, UNCONFIRMED or NOEXPIRE options are given, only " + "nicks which, respectively, are SUSPENDED, UNCONFIRMED or have the " + "NOEXPIRE flag set will be displayed. If multiple options are " + "given, all nicks matching at least one option will be displayed. " + "Note that these options are limited to \037Services Operators\037." + "\n\n" + "Examples:" + "\n\n" + " \002LIST *!joeuser@foo.com\002\n" + " Lists all registered nicks owned by joeuser@foo.com." + "\n\n" + " \002LIST *Bot*!*@*\002\n" + " Lists all registered nicks with \002Bot\002 in their\n" + " names (case insensitive)." + "\n\n" + " \002LIST * NOEXPIRE\002\n" + " Lists all registered nicks which have been set to not expire." + "\n\n" + " \002LIST #51-100\002\n" + " Lists all registered nicks within the given range (51-100)." + )); const Anope::string ®exengine = Config->GetBlock("options").Get<const Anope::string>("regexengine"); if (!regexengine.empty()) { source.Reply(" "); - source.Reply(_("Regex matches are also supported using the %s engine.\n" - "Enclose your pattern in // if this is desired."), regexengine.c_str()); + source.Reply(_( + "Regex matches are also supported using the %s engine. " + "Enclose your pattern in // if this is desired." + ), + regexengine.c_str()); } return true; @@ -233,12 +238,15 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Turns %s's privacy option on or off for your nick.\n" - "With \002PRIVATE\002 set, your nickname will not appear in\n" - "nickname lists generated with %s's \002LIST\002 command.\n" - "(However, anyone who knows your nickname can still get\n" - "information on it using the \002INFO\002 command.)"), - source.service->nick.c_str(), source.service->nick.c_str()); + source.Reply(_( + "Turns %s's privacy option on or off for your nick. " + "With \002PRIVATE\002 set, your nickname will not appear in " + "nickname lists generated with %s's \002LIST\002 command. " + "(However, anyone who knows your nickname can still get " + "information on it using the \002INFO\002 command.)" + ), + source.service->nick.c_str(), + source.service->nick.c_str()); return true; } }; @@ -262,12 +270,15 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Turns %s's privacy option on or off for the nick.\n" - "With \002PRIVATE\002 set, the nickname will not appear in\n" - "nickname lists generated with %s's \002LIST\002 command.\n" - "(However, anyone who knows the nickname can still get\n" - "information on it using the \002INFO\002 command.)"), - source.service->nick.c_str(), source.service->nick.c_str()); + source.Reply(_( + "Turns %s's privacy option on or off for the nick. " + "With \002PRIVATE\002 set, the nickname will not appear in " + "nickname lists generated with %s's \002LIST\002 command. " + "(However, anyone who knows the nickname can still get " + "information on it using the \002INFO\002 command.)" + ), + source.service->nick.c_str(), + source.service->nick.c_str()); return true; } }; diff --git a/modules/nickserv/ns_logout.cpp b/modules/nickserv/ns_logout.cpp index 90f9f295a..c0095e95d 100644 --- a/modules/nickserv/ns_logout.cpp +++ b/modules/nickserv/ns_logout.cpp @@ -64,14 +64,16 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Without a parameter, reverses the effect of the \002IDENTIFY\002\n" - "command, i.e. make you not recognized as the real owner of the nick\n" - "anymore. Note, however, that you won't be asked to reidentify\n" - "yourself.\n" - " \n" - "With a parameter, does the same for the given nick. If you\n" - "specify \002REVALIDATE\002 as well, services will ask the given nick\n" - "to re-identify. This is limited to \002Services Operators\002.")); + source.Reply(_( + "Without a parameter, reverses the effect of the \002IDENTIFY\002 " + "command, i.e. make you not recognized as the real owner of the nick " + "anymore. Note, however, that you won't be asked to reidentify " + "yourself." + "\n\n" + "With a parameter, does the same for the given nick. If you " + "specify \002REVALIDATE\002 as well, services will ask the given nick " + "to re-identify. This is limited to \002Services Operators\002." + )); return true; } diff --git a/modules/nickserv/ns_recover.cpp b/modules/nickserv/ns_recover.cpp index ef0d009ec..1c14a2cad 100644 --- a/modules/nickserv/ns_recover.cpp +++ b/modules/nickserv/ns_recover.cpp @@ -81,9 +81,12 @@ public: } } - u->SendMessage(source.service, _("This nickname has been recovered by %s. If you did not do\n" - "this then %s may have your password, and you should change it."), - source.GetNick().c_str(), source.GetNick().c_str()); + u->SendMessage(source.service, _( + "This nickname has been recovered by %s. If you did not do " + "this then %s may have your password, and you should change it." + ), + source.GetNick().c_str(), + source.GetNick().c_str()); Anope::string buf = source.command.upper() + " command used by " + source.GetNick(); u->Kill(*source.service, buf); @@ -125,8 +128,7 @@ public: } else { - source.Reply(_("The user with your nick has been removed. Use this command again\n" - "to release services's hold on your nick.")); + source.Reply(_("The user with your nick has been removed. Use this command again to release services's hold on your nick.")); } } } @@ -217,12 +219,14 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Recovers your nick from another user or from services.\n" - "If services are currently holding your nick, the hold\n" - "will be released. If another user is holding your nick\n" - "and is identified they will be killed (similar to the old\n" - "GHOST command). If they are not identified they will be\n" - "forced off of the nick.")); + source.Reply(_( + "Recovers your nick from another user or from services. " + "If services are currently holding your nick, the hold " + "will be released. If another user is holding your nick " + "and is identified they will be killed (similar to the old " + "GHOST command). If they are not identified they will be " + "forced off of the nick." + )); return true; } }; diff --git a/modules/nickserv/ns_register.cpp b/modules/nickserv/ns_register.cpp index 2bcb8eac1..bfa528bd5 100644 --- a/modules/nickserv/ns_register.cpp +++ b/modules/nickserv/ns_register.cpp @@ -97,17 +97,24 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("This command is used by several commands as a way to confirm\n" - "changes made to your account.\n" - " \n" - "This is most commonly used to confirm your email address once\n" - "you register or change it.\n" - " \n" - "This is also used after the RESETPASS command has been used to\n" - "force identify you to your nick so you may change your password.")); + source.Reply(_( + "This command is used by several commands as a way to confirm " + "changes made to your account." + "\n\n" + "This is most commonly used to confirm your email address once " + "you register or change it." + "\n\n" + "This is also used after the RESETPASS command has been used to " + "force identify you to your nick so you may change your password." + )); + if (source.HasPriv("nickserv/confirm")) - source.Reply(_("Additionally, Services Operators with the \037nickserv/confirm\037 permission can\n" - "replace \037passcode\037 with a users nick to force validate them.")); + { + source.Reply(_( + "Additionally, Services Operators with the \037nickserv/confirm\037 permission can " + "replace \037passcode\037 with a users nick to force validate them." + )); + } return true; } @@ -274,39 +281,46 @@ public: unsigned int minpasslen = Config->GetModule("nickserv").Get<unsigned>("minpasslen", "10"); this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Registers your nickname in the %s database. Once\n" - "your nick is registered, you can use the \002SET\002 and \002ACCESS\002\n" - "commands to configure your nick's settings as you like\n" - "them. Make sure you remember the password you use when\n" - "registering - you'll need it to make changes to your nick\n" - "later. (Note that \002case matters!\002 \037ANOPE\037, \037Anope\037, and\n" - "\037anope\037 are all different passwords!)\n" - " \n" - "Guidelines on choosing passwords:\n" - " \n" - "Passwords should not be easily guessable. For example,\n" - "using your real name as a password is a bad idea. Using\n" - "your nickname as a password is a much worse idea ;) and,\n" - "in fact, %s will not allow it. Also, short\n" - "passwords are vulnerable to trial-and-error searches, so\n" - "you should choose a password at least %u characters long.\n" - "Finally, the space character cannot be used in passwords."), - source.service->nick.c_str(), source.service->nick.c_str(), - minpasslen); + source.Reply(_( + "Registers your nickname in the %s database. Once " + "your nick is registered, you can use the \002SET\002 and \002ACCESS\002 " + "commands to configure your nick's settings as you like " + "them. Make sure you remember the password you use when " + "registering - you'll need it to make changes to your nick " + "later. (Note that \002case matters!\002 \037ANOPE\037, \037Anope\037, and " + "\037anope\037 are all different passwords!) " + "\n\n" + "Guidelines on choosing passwords:" + "\n\n" + "Passwords should not be easily guessable. For example, " + "using your real name as a password is a bad idea. Using " + "your nickname as a password is a much worse idea ;) and, " + "in fact, %s will not allow it. Also, short " + "passwords are vulnerable to trial-and-error searches, so " + "you should choose a password at least %u characters long. " + "Finally, the space character cannot be used in passwords." + ), + source.service->nick.c_str(), + source.service->nick.c_str(), + minpasslen); if (!Config->GetModule("nickserv").Get<bool>("forceemail", "yes")) { source.Reply(" "); - source.Reply(_("The \037email\037 parameter is optional and will set the email\n" - "for your nick immediately. You may also wish to \002SET HIDE\002 it\n" - "after registering if it isn't the default setting already.")); + source.Reply(_( + "The \037email\037 parameter is optional and will set the email " + "for your nick immediately. You may also wish to \002SET\032HIDE\002 it " + "after registering if it isn't the default setting already." + )); } source.Reply(" "); - source.Reply(_("This command also creates a new group for your nickname,\n" - "that will allow you to register other nicks later sharing\n" - "the same configuration, the same set of memos and the\n" - "same channel privileges.")); + source.Reply(_( + "This command also creates a new group for your nickname, " + "that will allow you to register other nicks later sharing " + "the same configuration, the same set of memos and the " + "same channel privileges." + )); return true; } }; diff --git a/modules/nickserv/ns_resetpass.cpp b/modules/nickserv/ns_resetpass.cpp index 7425ade66..94e1c89b2 100644 --- a/modules/nickserv/ns_resetpass.cpp +++ b/modules/nickserv/ns_resetpass.cpp @@ -50,9 +50,11 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Sends a passcode to the nickname with instructions on how to\n" - "reset their password. Email must be the email address associated\n" - "to the nickname.")); + source.Reply(_( + "Sends a passcode to the nickname with instructions on how to " + "reset their password. Email must be the email address associated " + "to the nickname." + )); return true; } }; diff --git a/modules/nickserv/ns_set.cpp b/modules/nickserv/ns_set.cpp index b8f6c257b..d1fefecab 100644 --- a/modules/nickserv/ns_set.cpp +++ b/modules/nickserv/ns_set.cpp @@ -57,8 +57,7 @@ public: } } - source.Reply(_("Type \002%s \037option\037\002 for more information\n" - "on a specific option."), + source.Reply(_("Type \002%s\032\037option\037\002 for more information on a specific option."), source.service->GetQueryCommand("generic/help", this_name).c_str()); return true; @@ -101,9 +100,11 @@ public: } } - source.Reply(_("Type \002%s \037option\037\002 for more information\n" - "on a specific option. The options will be set on the given\n" - "\037nickname\037."), + source.Reply(_( + "Type \002%s\032\037option\037\002 for more information " + "on a specific option. The options will be set on the given " + "\037nickname\037." + ), source.service->GetQueryCommand("generic/help", this_name).c_str()); return true; } @@ -164,8 +165,7 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Changes the password used to identify you as the nick's\n" - "owner.")); + source.Reply(_("Changes the password used to identify you as the nick's owner.")); return true; } }; @@ -300,10 +300,13 @@ public: BotInfo *bi = Config->GetClient("ChanServ"); this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Sets whether you will be given your channel status modes automatically.\n" - "Set to \002ON\002 to allow %s to set status modes on you automatically\n" - "when entering channels. Note that depending on channel settings some modes\n" - "may not get set automatically."), bi ? bi->nick.c_str() : "ChanServ"); + source.Reply(_( + "Sets whether you will be given your channel status modes automatically. " + "Set to \002ON\002 to allow %s to set status modes on you automatically " + "when entering channels. Note that depending on channel settings some modes " + "may not get set automatically." + ), + bi ? bi->nick.c_str() : "ChanServ"); return true; } }; @@ -328,11 +331,14 @@ public: BotInfo *bi = Config->GetClient("ChanServ"); this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Sets whether the given nickname will be given its status modes\n" - "in channels automatically. Set to \002ON\002 to allow %s\n" - "to set status modes on the given nickname automatically when it\n" - "is entering channels. Note that depending on channel settings\n" - "some modes may not get set automatically."), bi ? bi->nick.c_str() : "ChanServ"); + source.Reply(_( + "Sets whether the given nickname will be given its status modes " + "in channels automatically. Set to \002ON\002 to allow %s " + "to set status modes on the given nickname automatically when it " + "is entering channels. Note that depending on channel settings " + "some modes may not get set automatically." + ), + bi ? bi->nick.c_str() : "ChanServ"); return true; } }; @@ -486,8 +492,10 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Changes the display used to refer to your nickname group in\n" - "services. The new display MUST be a nick of your group.")); + source.Reply(_( + "Changes the display used to refer to your nickname group in " + "services. The new display MUST be a nick of your group." + )); return true; } }; @@ -511,8 +519,10 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Changes the display used to refer to the nickname group in\n" - "services. The new display MUST be a nick of the group.")); + source.Reply(_( + "Changes the display used to refer to the nickname group in " + "services. The new display MUST be a nick of the group." + )); return true; } }; @@ -631,9 +641,11 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Associates the given email address with your nickname.\n" - "This address will be displayed whenever someone requests\n" - "information on the nickname with the \002INFO\002 command.")); + source.Reply(_( + "Associates the given email address with your nickname. " + "This address will be displayed whenever someone requests " + "information on the nickname with the \002INFO\002 command." + )); return true; } }; @@ -709,8 +721,10 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Sets whether the given nickname will expire. Setting this\n" - "to \002ON\002 prevents the nickname from expiring.")); + source.Reply(_( + "Sets whether the given nickname will expire. Setting this " + "to \002ON\002 prevents the nickname from expiring." + )); return true; } }; diff --git a/modules/nickserv/ns_set_keepmodes.cpp b/modules/nickserv/ns_set_keepmodes.cpp index 03fec7d1f..faa44b9d3 100644 --- a/modules/nickserv/ns_set_keepmodes.cpp +++ b/modules/nickserv/ns_set_keepmodes.cpp @@ -68,9 +68,11 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Enables or disables keepmodes for your nick. If keep\n" - "modes is enabled, services will remember your usermodes\n" - "and attempt to re-set them the next time you authenticate.")); + source.Reply(_( + "Enables or disables keepmodes for your nick. If keep " + "modes is enabled, services will remember your usermodes " + "and attempt to re-set them the next time you authenticate." + )); return true; } }; @@ -95,9 +97,11 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Enables or disables keepmodes for the given nick. If keep\n" - "modes is enabled, services will remember users' usermodes\n" - "and attempt to re-set them the next time they authenticate.")); + source.Reply(_( + "Enables or disables keepmodes for the given nick. If keep " + "modes is enabled, services will remember users' usermodes " + "and attempt to re-set them the next time they authenticate." + )); return true; } }; diff --git a/modules/nickserv/ns_set_language.cpp b/modules/nickserv/ns_set_language.cpp index 07f31d8b0..7ac553bef 100644 --- a/modules/nickserv/ns_set_language.cpp +++ b/modules/nickserv/ns_set_language.cpp @@ -87,10 +87,12 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Changes the language services uses when sending messages to\n" - "you (for example, when responding to a command you send).\n" - "\037language\037 should be chosen from the following list of\n" - "supported languages:")); + source.Reply(_( + "Changes the language services uses when sending messages to " + "you (for example, when responding to a command you send). " + "\037language\037 should be chosen from the following list of " + "supported languages:" + )); for (const auto &[langcode, langname] : languages) source.Reply(" %s (%s)", langcode.c_str(), langname.c_str()); @@ -119,10 +121,12 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Changes the language services uses when sending messages to\n" - "the given user (for example, when responding to a command they send).\n" - "\037language\037 should be chosen from the following list of\n" - "supported languages:")); + source.Reply(_( + "Changes the language services uses when sending messages to " + "the given user (for example, when responding to a command they send). " + "\037language\037 should be chosen from the following list of " + "supported languages:" + )); for (const auto &[langcode, langname] : languages) source.Reply(" %s (%s)", langcode.c_str(), langname.c_str()); diff --git a/modules/nickserv/ns_set_message.cpp b/modules/nickserv/ns_set_message.cpp index 99f5d6782..6027d1d0a 100644 --- a/modules/nickserv/ns_set_message.cpp +++ b/modules/nickserv/ns_set_message.cpp @@ -74,9 +74,12 @@ public: this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Allows you to choose the way services are communicating with\n" - "you. With \002%s\002 set, services will use messages, else they'll\n" - "use notices."), cmd.upper().c_str()); + source.Reply(_( + "Allows you to choose the way services are communicating with " + "you. With \002%s\002 set, services will use messages, else they'll " + "use notices." + ), + cmd.upper().c_str()); return true; } }; @@ -95,9 +98,11 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Allows you to choose the way services are communicating with\n" - "the given user. With \002MSG\002 set, services will use messages,\n" - "else they'll use notices.")); + source.Reply(_( + "Allows you to choose the way services are communicating with " + "the given user. With \002MSG\002 set, services will use messages, " + "else they'll use notices." + )); return true; } diff --git a/modules/nickserv/ns_set_protect.cpp b/modules/nickserv/ns_set_protect.cpp index af4f37e0a..5d3bd8c5b 100644 --- a/modules/nickserv/ns_set_protect.cpp +++ b/modules/nickserv/ns_set_protect.cpp @@ -99,10 +99,13 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Turns automatic protection for your account on or off. With\n" - "protection on if another user tries to use a nickname from\n" - "your group they will be given some time to change their nick\n" - "after which %s will forcibly change their nick."), source.service->nick.c_str()); + source.Reply(_( + "Turns automatic protection for your account on or off. With " + "protection on if another user tries to use a nickname from " + "your group they will be given some time to change their nick " + "after which %s will forcibly change their nick." + ), + source.service->nick.c_str()); return true; } }; @@ -127,10 +130,13 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Turns automatic protection for the nick on or off. With\n" - "protection on if a user tries to use a nickname from the\n" - "nick's group they will be given some time to change their\n" - "nick after which %s will forcibly change their nick."), source.service->nick.c_str()); + source.Reply(_( + "Turns automatic protection for the nick on or off. With " + "protection on if a user tries to use a nickname from the " + "nick's group they will be given some time to change their " + "nick after which %s will forcibly change their nick." + ), + source.service->nick.c_str()); return true; } }; diff --git a/modules/nickserv/ns_suspend.cpp b/modules/nickserv/ns_suspend.cpp index 04af0797d..c5d284e0a 100644 --- a/modules/nickserv/ns_suspend.cpp +++ b/modules/nickserv/ns_suspend.cpp @@ -157,10 +157,12 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Suspends a registered nickname, which prevents it from being used\n" - "while keeping all the data for that nick. If an expiry is given\n" - "the nick will be unsuspended after that period of time, else the\n" - "default expiry from the configuration is used.")); + source.Reply(_( + "Suspends a registered nickname, which prevents it from being used " + "while keeping all the data for that nick. If an expiry is given " + "the nick will be unsuspended after that period of time, else the " + "default expiry from the configuration is used." + )); return true; } }; diff --git a/modules/nickserv/ns_update.cpp b/modules/nickserv/ns_update.cpp index 0ce6a5c95..9a182bc6a 100644 --- a/modules/nickserv/ns_update.cpp +++ b/modules/nickserv/ns_update.cpp @@ -41,9 +41,11 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Updates your current status, i.e. it checks for new memos,\n" - "sets needed channel modes and updates your vhost and\n" - "your userflags (lastseentime, etc).")); + source.Reply(_( + "Updates your current status, i.e. it checks for new memos, " + "sets needed channel modes and updates your vhost and " + "your userflags (lastseentime, etc)." + )); return true; } }; diff --git a/modules/operserv/os_akill.cpp b/modules/operserv/os_akill.cpp index e2be2ed7a..0cb2f51d3 100644 --- a/modules/operserv/os_akill.cpp +++ b/modules/operserv/os_akill.cpp @@ -421,53 +421,61 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Allows Services Operators to manipulate the AKILL list. If\n" - "a user matching an AKILL mask attempts to connect, services\n" - "will issue a KILL for that user and, on supported server\n" - "types, will instruct all servers to add a ban for the mask\n" - "which the user matched.\n" - " \n" - "\002AKILL ADD\002 adds the given mask to the AKILL\n" - "list for the given reason, which \002must\002 be given.\n" - "Mask should be in the format of nick!user@host#real name,\n" - "though all that is required is user@host. If a real name is specified,\n" - "the reason must be prepended with a :.\n" - "\037expiry\037 is specified as an integer followed by one of \037d\037\n" - "(days), \037h\037 (hours), or \037m\037 (minutes). Combinations (such as\n" - "\0371h30m\037) are not permitted. If a unit specifier is not\n" - "included, the default is days (so \037+30\037 by itself means 30\n" - "days). To add an AKILL which does not expire, use \037+0\037. If the\n" - "usermask to be added starts with a \037+\037, an expiry time must\n" - "be given, even if it is the same as the default. The\n" - "current AKILL default expiry time can be found with the\n" - "\002STATS AKILL\002 command.")); + source.Reply(_( + "Allows Services Operators to manipulate the AKILL list. If " + "a user matching an AKILL mask attempts to connect, services " + "will issue a KILL for that user and, on supported server " + "types, will instruct all servers to add a ban for the mask " + "which the user matched." + "\n\n" + "\002AKILL\032ADD\002 adds the given mask to the AKILL " + "list for the given reason, which \002must\002 be given. " + "Mask should be in the format of nick!user@host#real\032name, " + "though all that is required is user@host. If a real name is specified, " + "the reason must be prepended with a :. " + "\037expiry\037 is specified as an integer followed by one of \037d\037 " + "(days), \037h\037 (hours), or \037m\037 (minutes). Combinations (such as " + "\0371h30m\037) are not permitted. If a unit specifier is not " + "included, the default is days (so \037+30\037 by itself means 30 " + "days). To add an AKILL which does not expire, use \037+0\037. If the " + "usermask to be added starts with a \037+\037, an expiry time must " + "be given, even if it is the same as the default. The " + "current AKILL default expiry time can be found with the " + "\002STATS\032AKILL\002 command." + )); + const Anope::string ®exengine = Config->GetBlock("options").Get<const Anope::string>("regexengine"); if (!regexengine.empty()) { source.Reply(" "); - source.Reply(_("Regex matches are also supported using the %s engine.\n" - "Enclose your mask in // if this is desired."), regexengine.c_str()); + source.Reply(_( + "Regex matches are also supported using the %s engine. " + "Enclose your mask in // if this is desired." + ), + regexengine.c_str()); } + + source.Reply(" "); source.Reply(_( - " \n" - "The \002AKILL DEL\002 command removes the given mask from the\n" - "AKILL list if it is present. If a list of entry numbers is\n" - "given, those entries are deleted. (See the example for LIST\n" - "below.)\n" - " \n" - "The \002AKILL LIST\002 command displays the AKILL list.\n" - "If a wildcard mask is given, only those entries matching the\n" - "mask are displayed. If a list of entry numbers is given,\n" - "only those entries are shown; for example:\n" - " \002AKILL LIST 2-5,7-9\002\n" - " Lists AKILL entries numbered 2 through 5 and 7\n" - " through 9.\n" - " \n" - "\002AKILL VIEW\002 is a more verbose version of \002AKILL LIST\002, and\n" - "will show who added an AKILL, the date it was added, and when\n" - "it expires, as well as the user@host/ip mask and reason.\n" - " \n" - "\002AKILL CLEAR\002 clears all entries of the AKILL list.")); + "The \002AKILL\032DEL\002 command removes the given mask from the " + "AKILL list if it is present. If a list of entry numbers is " + "given, those entries are deleted. (See the example for LIST " + "below.)" + "\n\n" + "The \002AKILL\032LIST\002 command displays the AKILL list. " + "If a wildcard mask is given, only those entries matching the " + "mask are displayed. If a list of entry numbers is given, " + "only those entries are shown; for example:\n" + " \002AKILL\032LIST\0322-5,7-9\002\n" + " Lists AKILL entries numbered 2 through 5 and 7\n" + " through 9." + "\n\n" + "\002AKILL\032VIEW\002 is a more verbose version of \002AKILL\032LIST\002, and " + "will show who added an AKILL, the date it was added, and when " + "it expires, as well as the user@host/ip mask and reason." + "\n\n" + "\002AKILL\032CLEAR\002 clears all entries of the AKILL list." + )); return true; } }; diff --git a/modules/operserv/os_chankill.cpp b/modules/operserv/os_chankill.cpp index e66123a62..bed10c505 100644 --- a/modules/operserv/os_chankill.cpp +++ b/modules/operserv/os_chankill.cpp @@ -96,9 +96,11 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Puts an AKILL for every nick on the specified channel. It\n" - "uses the entire real ident@host for every nick, and\n" - "then enforces the AKILL.")); + source.Reply(_( + "Puts an AKILL for every nick on the specified channel. It " + "uses the entire real ident@host for every nick, and " + "then enforces the AKILL." + )); return true; } }; diff --git a/modules/operserv/os_config.cpp b/modules/operserv/os_config.cpp index b10c59e4d..d889df31e 100644 --- a/modules/operserv/os_config.cpp +++ b/modules/operserv/os_config.cpp @@ -122,13 +122,15 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Allows you to change and view configuration settings.\n" - "Settings changed by this command are temporary and will not be reflected\n" - "back into the configuration file, and will be lost if Anope is shut down,\n" - "restarted, or the configuration is reloaded.\n" - " \n" - "Example:\n" - " \002MODIFY nickserv regdelay 15m\002")); + source.Reply(_( + "Allows you to change and view configuration settings. " + "Settings changed by this command are temporary and will not be reflected " + "back into the configuration file, and will be lost if Anope is shut down, " + "restarted, or the configuration is reloaded." + "\n\n" + "Example:\n" + " \002MODIFY\032nickserv\032regdelay\03215m\002" + )); return true; } }; diff --git a/modules/operserv/os_defcon.cpp b/modules/operserv/os_defcon.cpp index 53ceef8a3..0965b0961 100644 --- a/modules/operserv/os_defcon.cpp +++ b/modules/operserv/os_defcon.cpp @@ -235,9 +235,11 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("The defcon system can be used to implement a pre-defined\n" - "set of restrictions to services useful during an attempted\n" - "attack on the network.")); + source.Reply(_( + "The defcon system can be used to implement a pre-defined " + "set of restrictions to services useful during an attempted " + "attack on the network." + )); return true; } }; diff --git a/modules/operserv/os_dns.cpp b/modules/operserv/os_dns.cpp index a045b9ce2..9e8a6ac4e 100644 --- a/modules/operserv/os_dns.cpp +++ b/modules/operserv/os_dns.cpp @@ -722,20 +722,22 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("This command allows managing DNS zones used for controlling what servers users\n" - "are directed to when connecting. Omitting all parameters prints out the status of\n" - "the DNS zone.\n" - " \n" - "\002ADDZONE\002 adds a zone, eg us.yournetwork.tld. Servers can then be added to this\n" - "zone with the \002ADDSERVER\002 command.\n" - " \n" - "The \002ADDSERVER\002 command adds a server to the given zone. When a query is done, the\n" - "zone in question is served if it exists, else all servers in all zones are served.\n" - "A server may be in more than one zone.\n" - " \n" - "The \002ADDIP\002 command associates an IP with a server.\n" - " \n" - "The \002POOL\002 and \002DEPOOL\002 commands actually add and remove servers to their given zones.")); + source.Reply(_( + "This command allows managing DNS zones used for controlling what servers users " + "are directed to when connecting. Omitting all parameters prints out the status of " + "the DNS zone." + "\n\n" + "\002ADDZONE\002 adds a zone, eg us.yournetwork.tld. Servers can then be added to this " + "zone with the \002ADDSERVER\002 command." + "\n\n" + "The \002ADDSERVER\002 command adds a server to the given zone. When a query is done, the " + "zone in question is served if it exists, else all servers in all zones are served. " + "A server may be in more than one zone." + "\n\n" + "The \002ADDIP\002 command associates an IP with a server." + "\n\n" + "The \002POOL\002 and \002DEPOOL\002 commands actually add and remove servers to their given zones." + )); return true; } }; diff --git a/modules/operserv/os_forbid.cpp b/modules/operserv/os_forbid.cpp index 6c34cb0e7..ed836817f 100644 --- a/modules/operserv/os_forbid.cpp +++ b/modules/operserv/os_forbid.cpp @@ -457,15 +457,20 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Forbid allows you to forbid usage of certain nicknames, channels,\n" - "and email addresses. Wildcards are accepted for all entries.")); + source.Reply(_( + "Forbid allows you to forbid usage of certain nicknames, channels, " + "and email addresses. Wildcards are accepted for all entries." + )); const Anope::string ®exengine = Config->GetBlock("options").Get<const Anope::string>("regexengine"); if (!regexengine.empty()) { source.Reply(" "); - source.Reply(_("Regex matches are also supported using the %s engine.\n" - "Enclose your pattern in // if this is desired."), regexengine.c_str()); + source.Reply(_( + "Regex matches are also supported using the %s engine. " + "Enclose your pattern in // if this is desired." + ), + regexengine.c_str()); } return true; diff --git a/modules/operserv/os_ignore.cpp b/modules/operserv/os_ignore.cpp index 41b7ae858..c30cfe8b2 100644 --- a/modules/operserv/os_ignore.cpp +++ b/modules/operserv/os_ignore.cpp @@ -381,24 +381,29 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Allows Services Operators to make services ignore a nick or mask\n" - "for a certain time or until the next restart. The default\n" - "time format is seconds. You can specify it by using units.\n" - "Valid units are: \037s\037 for seconds, \037m\037 for minutes,\n" - "\037h\037 for hours and \037d\037 for days.\n" - "Combinations of these units are not permitted.\n" - "To make services permanently ignore the user, type 0 as time.\n" - "When adding a \037mask\037, it should be in the format nick!user@host,\n" - "everything else will be considered a nick. Wildcards are permitted.\n" - " \n" - "Ignores will not be enforced on IRC Operators.")); + source.Reply(_( + "Allows Services Operators to make services ignore a nick or mask " + "for a certain time or until the next restart. The default " + "time format is seconds. You can specify it by using units. " + "Valid units are: \037s\037 for seconds, \037m\037 for minutes, " + "\037h\037 for hours and \037d\037 for days. " + "Combinations of these units are not permitted. " + "To make services permanently ignore the user, type 0 as time. " + "When adding a \037mask\037, it should be in the format nick!user@host, " + "everything else will be considered a nick. Wildcards are permitted." + "\n\n" + "Ignores will not be enforced on IRC Operators." + )); const Anope::string ®exengine = Config->GetBlock("options").Get<const Anope::string>("regexengine"); if (!regexengine.empty()) { source.Reply(" "); - source.Reply(_("Regex matches are also supported using the %s engine.\n" - "Enclose your pattern in // if this is desired."), regexengine.c_str()); + source.Reply(_( + "Regex matches are also supported using the %s engine. " + "Enclose your pattern in // if this is desired." + ), + regexengine.c_str()); } return true; diff --git a/modules/operserv/os_info.cpp b/modules/operserv/os_info.cpp index 05ff6af07..62ccef2f0 100644 --- a/modules/operserv/os_info.cpp +++ b/modules/operserv/os_info.cpp @@ -254,9 +254,11 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Add or delete oper information for a given nick or channel.\n" - "This will show to opers in the respective info command for\n" - "the nick or channel.")); + source.Reply(_( + "Add or delete oper information for a given nick or channel. " + "This will show to opers in the respective info command for " + "the nick or channel." + )); return true; } }; diff --git a/modules/operserv/os_jupe.cpp b/modules/operserv/os_jupe.cpp index c6823449d..acd5e5112 100644 --- a/modules/operserv/os_jupe.cpp +++ b/modules/operserv/os_jupe.cpp @@ -54,14 +54,16 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Tells services to jupiter a server -- that is, to create\n" - "a fake \"server\" connected to services which prevents\n" - "the real server of that name from connecting. The jupe\n" - "may be removed using a standard \002SQUIT\002. If a reason is\n" - "given, it is placed in the server information field;\n" - "otherwise, the server information field will contain the\n" - "text \"Juped by <nick>\", showing the nickname of the\n" - "person who jupitered the server.")); + source.Reply(_( + "Tells services to jupiter a server -- that is, to create " + "a fake \"server\" connected to services which prevents " + "the real server of that name from connecting. The jupe " + "may be removed using a standard \002SQUIT\002. If a reason is " + "given, it is placed in the server information field; " + "otherwise, the server information field will contain the " + "text \"Juped by <nick>\", showing the nickname of the " + "person who jupitered the server." + )); return true; } }; diff --git a/modules/operserv/os_kick.cpp b/modules/operserv/os_kick.cpp index 667b8aa50..d9df7feec 100644 --- a/modules/operserv/os_kick.cpp +++ b/modules/operserv/os_kick.cpp @@ -60,12 +60,15 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Allows staff to kick a user from any channel.\n" - "Parameters are the same as for the standard /KICK\n" - "command. The kick message will have the nickname of the\n" - "IRCop sending the KICK command prepended; for example:\n" - " \n" - "*** SpamMan has been kicked off channel #my_channel by %s (Alcan (Flood))"), source.service->nick.c_str()); + source.Reply(_( + "Allows staff to kick a user from any channel. " + "Parameters are the same as for the standard /KICK " + "command. The kick message will have the nickname of the " + "IRCop sending the KICK command prepended; for example:" + "\n\n" + "*** SpamMan has been kicked off channel #my_channel by %s (Alcan (Flood))" + ), + source.service->nick.c_str()); return true; } }; diff --git a/modules/operserv/os_kill.cpp b/modules/operserv/os_kill.cpp index 7ad58d062..b0ae2ce59 100644 --- a/modules/operserv/os_kill.cpp +++ b/modules/operserv/os_kill.cpp @@ -46,9 +46,11 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Allows you to kill a user from the network.\n" - "Parameters are the same as for the standard /KILL\n" - "command.")); + source.Reply(_( + "Allows you to kill a user from the network. " + "Parameters are the same as for the standard /KILL " + "command." + )); return true; } }; diff --git a/modules/operserv/os_list.cpp b/modules/operserv/os_list.cpp index 46c4c89bb..83069ec2e 100644 --- a/modules/operserv/os_list.cpp +++ b/modules/operserv/os_list.cpp @@ -109,20 +109,25 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Lists all channels currently in use on the IRC network, whether they\n" - "are registered or not.\n" - " \n" - "If \002pattern\002 is given, lists only channels that match it. If a nickname\n" - "is given, lists only the channels the user using it is on. If SECRET is\n" - "specified, lists only channels matching \002pattern\002 that have the +s or\n" - "+p mode.")); + source.Reply(_( + "Lists all channels currently in use on the IRC network, whether they " + "are registered or not." + "\n\n" + "If \002pattern\002 is given, lists only channels that match it. If a nickname " + "is given, lists only the channels the user using it is on. If SECRET is " + "specified, lists only channels matching \002pattern\002 that have the +s or " + "+p mode." + )); const Anope::string ®exengine = Config->GetBlock("options").Get<const Anope::string>("regexengine"); if (!regexengine.empty()) { source.Reply(" "); - source.Reply(_("Regex matches are also supported using the %s engine.\n" - "Enclose your pattern in // if this is desired."), regexengine.c_str()); + source.Reply(_( + "Regex matches are also supported using the %s engine. " + "Enclose your pattern in // if this is desired." + ), + regexengine.c_str()); } return true; @@ -252,20 +257,25 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Lists all users currently online on the IRC network, whether their\n" - "nick is registered or not.\n" - " \n" - "If \002pattern\002 is given, lists only users that match it (it must be in\n" - "the format nick!user@host[#realname]). If \002channel\002 is given, lists\n" - "only users that are on the given channel. If INVISIBLE is specified, only users\n" - "with the +i flag will be listed.")); + source.Reply(_( + "Lists all users currently online on the IRC network, whether their " + "nick is registered or not." + "\n\n" + "If \002pattern\002 is given, lists only users that match it (it must be in " + "the format nick!user@host[#realname]). If \002channel\002 is given, lists " + "only users that are on the given channel. If INVISIBLE is specified, only users " + "with the +i flag will be listed." + )); const Anope::string ®exengine = Config->GetBlock("options").Get<const Anope::string>("regexengine"); if (!regexengine.empty()) { source.Reply(" "); - source.Reply(_("Regex matches are also supported using the %s engine.\n" - "Enclose your pattern in // if this is desired."), regexengine.c_str()); + source.Reply(_( + "Regex matches are also supported using the %s engine. " + "Enclose your pattern in // if this is desired." + ), + regexengine.c_str()); } return true; diff --git a/modules/operserv/os_login.cpp b/modules/operserv/os_login.cpp index 9cf62e947..f453bd8f0 100644 --- a/modules/operserv/os_login.cpp +++ b/modules/operserv/os_login.cpp @@ -48,9 +48,12 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Logs you in to %s so you gain Services Operator privileges.\n" - "This command may be unnecessary if your oper block is\n" - "configured without a password."), source.service->nick.c_str()); + source.Reply(_( + "Logs you in to %s so you gain Services Operator privileges. " + "This command may be unnecessary if your oper block is " + "configured without a password." + ), + source.service->nick.c_str()); return true; } @@ -91,9 +94,12 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Logs you out from %s so you lose Services Operator privileges.\n" - "This command is only useful if your oper block is configured\n" - "with a password."), source.service->nick.c_str()); + source.Reply(_( + "Logs you out from %s so you lose Services Operator privileges. " + "This command is only useful if your oper block is configured " + "with a password." + ), + source.service->nick.c_str()); return true; } diff --git a/modules/operserv/os_logsearch.cpp b/modules/operserv/os_logsearch.cpp index cd3781ae1..d969cf74f 100644 --- a/modules/operserv/os_logsearch.cpp +++ b/modules/operserv/os_logsearch.cpp @@ -147,17 +147,19 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("This command searches the services logfiles for messages\n" - "that match the given pattern. The day and limit argument\n" - "may be used to specify how many days of logs to search\n" - "and the number of replies to limit to. By default this\n" - "command searches one week of logs, and limits replies\n" - "to 50.\n" - " \n" - "For example:\n" - " \002LOGSEARCH +21d +500l Anope\002\n" - " Searches the last 21 days worth of logs for messages\n" - " containing Anope and lists the most recent 500 of them.")); + source.Reply(_( + "This command searches the services logfiles for messages " + "that match the given pattern. The day and limit argument " + "may be used to specify how many days of logs to search " + "and the number of replies to limit to. By default this " + "command searches one week of logs, and limits replies " + "to 50." + "\n\n" + "For example:\n" + " \002LOGSEARCH\032+21d\032+500l\032Anope\002\n" + " Searches the last 21 days worth of logs for messages\n" + " containing Anope and lists the most recent 500 of them." + )); return true; } }; diff --git a/modules/operserv/os_mode.cpp b/modules/operserv/os_mode.cpp index 3a6b2159e..0ac9b48d4 100644 --- a/modules/operserv/os_mode.cpp +++ b/modules/operserv/os_mode.cpp @@ -128,10 +128,12 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Allows Services Operators to change modes for any channel.\n" - "Parameters are the same as for the standard /MODE command.\n" - "Alternatively, CLEAR may be given to clear all modes on the channel.\n" - "If CLEAR ALL is given then all modes, including user status, is removed.")); + source.Reply(_( + "Allows Services Operators to change modes for any channel. " + "Parameters are the same as for the standard /MODE command. " + "Alternatively, CLEAR may be given to clear all modes on the channel. " + "If CLEAR\032ALL is given then all modes, including user status, is removed." + )); return true; } }; @@ -169,8 +171,10 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Allows Services Operators to change modes for any user.\n" - "Parameters are the same as for the standard /MODE command.")); + source.Reply(_( + "Allows Services Operators to change modes for any user. " + "Parameters are the same as for the standard /MODE command." + )); return true; } }; diff --git a/modules/operserv/os_module.cpp b/modules/operserv/os_module.cpp index 2a54d9a67..2055f3cd9 100644 --- a/modules/operserv/os_module.cpp +++ b/modules/operserv/os_module.cpp @@ -43,8 +43,7 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("This command loads the module named \037modname\037 from the modules\n" - "directory.")); + source.Reply(_("This command loads the module named \037modname\037 from the modules directory.")); return true; } }; diff --git a/modules/operserv/os_news.cpp b/modules/operserv/os_news.cpp index e5b6b057c..37eeef1c1 100644 --- a/modules/operserv/os_news.cpp +++ b/modules/operserv/os_news.cpp @@ -319,12 +319,14 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Edits or displays the list of logon news messages. When a\n" - "user connects to the network, these messages will be sent\n" - "to them. However, no more than \002%d\002 messages will be\n" - "sent in order to avoid flooding the user. If there are\n" - "more news messages, only the most recent will be sent."), - Config->GetModule(this->owner).Get<unsigned>("newscount", "3")); + source.Reply(_( + "Edits or displays the list of logon news messages. When a " + "user connects to the network, these messages will be sent " + "to them. However, no more than \002%d\002 messages will be " + "sent in order to avoid flooding the user. If there are " + "more news messages, only the most recent will be sent." + ), + Config->GetModule(this->owner).Get<unsigned>("newscount", "3")); return true; } }; @@ -347,12 +349,14 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Edits or displays the list of oper news messages. When a\n" - "user opers up (with the /OPER command), these messages will\n" - "be sent to them. However, no more than \002%d\002 messages will\n" - "be sent in order to avoid flooding the user. If there are\n" - "more news messages, only the most recent will be sent."), - Config->GetModule(this->owner).Get<unsigned>("newscount", "3")); + source.Reply(_( + "Edits or displays the list of oper news messages. When a " + "user opers up (with the /OPER command), these messages will " + "be sent to them. However, no more than \002%d\002 messages will " + "be sent in order to avoid flooding the user. If there are " + "more news messages, only the most recent will be sent." + ), + Config->GetModule(this->owner).Get<unsigned>("newscount", "3")); return true; } }; @@ -375,9 +379,11 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Edits or displays the list of random news messages. When a\n" - "user connects to the network, one (and only one) of the\n" - "random news will be randomly chosen and sent to them.")); + source.Reply(_( + "Edits or displays the list of random news messages. When a " + "user connects to the network, one (and only one) of the " + "random news will be randomly chosen and sent to them." + )); return true; } }; diff --git a/modules/operserv/os_noop.cpp b/modules/operserv/os_noop.cpp index 6e4b412fd..23bb6636e 100644 --- a/modules/operserv/os_noop.cpp +++ b/modules/operserv/os_noop.cpp @@ -64,10 +64,12 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("\002SET\002 kills all operators from the given\n" - "\002server\002 and prevents operators from opering\n" - "up on the given server. \002REVOKE\002 removes this\n" - "restriction.")); + source.Reply(_( + "\002SET\002 kills all operators from the given " + "\002server\002 and prevents operators from opering " + "up on the given server. \002REVOKE\002 removes this " + "restriction." + )); return true; } }; diff --git a/modules/operserv/os_oper.cpp b/modules/operserv/os_oper.cpp index 5a87cd6ba..d19567f9a 100644 --- a/modules/operserv/os_oper.cpp +++ b/modules/operserv/os_oper.cpp @@ -253,9 +253,11 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Allows you to change and view Services Operators.\n" - "Note that operators removed by this command but are still set in\n" - "the configuration file are not permanently affected by this.")); + source.Reply(_( + "Allows you to change and view Services Operators. " + "Note that operators removed by this command but are still set in " + "the configuration file are not permanently affected by this." + )); return true; } }; diff --git a/modules/operserv/os_reload.cpp b/modules/operserv/os_reload.cpp index 88bcead7c..4330b5175 100644 --- a/modules/operserv/os_reload.cpp +++ b/modules/operserv/os_reload.cpp @@ -45,10 +45,12 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Causes services to reload the configuration file. Note that\n" - "some directives still need the restart of the services to\n" - "take effect (such as services' nicknames, activation of the\n" - "session limitation, etc.).")); + source.Reply(_( + "Causes services to reload the configuration file. Note that " + "some directives still need the restart of the services to " + "take effect (such as services' nicknames, activation of the " + "session limitation, etc.)." + )); return true; } }; diff --git a/modules/operserv/os_session.cpp b/modules/operserv/os_session.cpp index 858b1b2a9..4920e478e 100644 --- a/modules/operserv/os_session.cpp +++ b/modules/operserv/os_session.cpp @@ -299,20 +299,22 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Allows Services Operators to view the session list.\n" - " \n" - "\002SESSION LIST\002 lists hosts with at least \037threshold\037 sessions.\n" - "The threshold must be a number greater than 1. This is to\n" - "prevent accidental listing of the large number of single\n" - "session hosts.\n" - " \n" - "\002SESSION VIEW\002 displays detailed information about a specific\n" - "host - including the current session count and session limit.\n" - "The \037host\037 value may not include wildcards.\n" - " \n" - "See the \002EXCEPTION\002 help for more information about session\n" - "limiting and how to set session limits specific to certain\n" - "hosts and groups thereof.")); + source.Reply(_( + "Allows Services Operators to view the session list." + "\n\n" + "\002SESSION\032LIST\002 lists hosts with at least \037threshold\037 sessions. " + "The threshold must be a number greater than 1. This is to " + "prevent accidental listing of the large number of single " + "session hosts." + "\n\n" + "\002SESSION\032VIEW\002 displays detailed information about a specific " + "host - including the current session count and session limit. " + "The \037host\037 value may not include wildcards. " + "\n\n" + "See the \002EXCEPTION\002 help for more information about session " + "limiting and how to set session limits specific to certain " + "hosts and groups thereof." + )); return true; } }; @@ -575,36 +577,38 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Allows Services Operators to manipulate the list of hosts that\n" - "have specific session limits - allowing certain machines,\n" - "such as shell servers, to carry more than the default number\n" - "of clients at a time. Once a host reaches its session limit,\n" - "all clients attempting to connect from that host will be\n" - "killed. Before the user is killed, they are notified, of a\n" - "source of help regarding session limiting. The content of\n" - "this notice is a config setting.")); - source.Reply(" "); - source.Reply(_("\002EXCEPTION ADD\002 adds the given host mask to the exception list.\n" - "Note that \002nick!user@host\002 and \002user@host\002 masks are invalid!\n" - "Only real host masks, such as \002box.host.dom\002 and \002*.host.dom\002,\n" - "are allowed because sessions limiting does not take nick or\n" - "user names into account. \037limit\037 must be a number greater than\n" - "or equal to zero. This determines how many sessions this host\n" - "may carry at a time. A value of zero means the host has an\n" - "unlimited session limit. See the \002AKILL\002 help for details about\n" - "the format of the optional \037expiry\037 parameter.\n" - " \n" - "\002EXCEPTION DEL\002 removes the given mask from the exception list.\n" - " \n" - "\002EXCEPTION LIST\002 and \002EXCEPTION VIEW\002 show all current\n" - "sessions if the optional mask is given, the list is limited\n" - "to those sessions matching the mask. The difference is that\n" - "\002EXCEPTION VIEW\002 is more verbose, displaying the name of the\n" - "person who added the exception, its session limit, reason,\n" - "host mask and the expiry date and time.\n" - " \n" - "Note that a connecting client will \"use\" the first exception\n" - "their host matches.")); + source.Reply(_( + "Allows Services Operators to manipulate the list of hosts that " + "have specific session limits - allowing certain machines, " + "such as shell servers, to carry more than the default number " + "of clients at a time. Once a host reaches its session limit, " + "all clients attempting to connect from that host will be " + "killed. Before the user is killed, they are notified, of a " + "source of help regarding session limiting. The content of " + "this notice is a config setting." + "\n\n" + "\002EXCEPTION\032ADD\002 adds the given host mask to the exception list. " + "Note that \002nick!user@host\002 and \002user@host\002 masks are invalid! " + "Only real host masks, such as \002box.host.dom\002 and \002*.host.dom\002, " + "are allowed because sessions limiting does not take nick or " + "user names into account. \037limit\037 must be a number greater than " + "or equal to zero. This determines how many sessions this host " + "may carry at a time. A value of zero means the host has an " + "unlimited session limit. See the \002AKILL\002 help for details about " + "the format of the optional \037expiry\037 parameter. " + "\n\n" + "\002EXCEPTION\032DEL\002 removes the given mask from the exception list." + "\n\n" + "\002EXCEPTION\032LIST\002 and \002EXCEPTION\032VIEW\002 show all current " + "sessions if the optional mask is given, the list is limited " + "to those sessions matching the mask. The difference is that " + "\002EXCEPTION\032VIEW\002 is more verbose, displaying the name of the " + "person who added the exception, its session limit, reason, " + "host mask and the expiry date and time. " + "\n\n" + "Note that a connecting client will \"use\" the first exception " + "their host matches." + )); return true; } }; diff --git a/modules/operserv/os_set.cpp b/modules/operserv/os_set.cpp index 50451d53a..ced5a9d97 100644 --- a/modules/operserv/os_set.cpp +++ b/modules/operserv/os_set.cpp @@ -197,57 +197,79 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Sets various global services options. Option names\n" - "currently defined are:\n" - " READONLY Set read-only or read-write mode\n" - " DEBUG Activate or deactivate debug mode\n" - " NOEXPIRE Activate or deactivate no expire mode\n" - " SUPERADMIN Activate or deactivate super admin mode\n" - " LIST List the options")); + source.Reply(_( + "Sets various global services options. Option names " + "currently defined are:" + "\n\n" + " READONLY Set read-only or read-write mode\n" + " DEBUG Activate or deactivate debug mode\n" + " NOEXPIRE Activate or deactivate no expire mode\n" + " SUPERADMIN Activate or deactivate super admin mode\n" + " LIST List the options" + )); } else if (subcommand.equals_ci("LIST")) - source.Reply(_("Syntax: \002LIST\002\n" - " \n" - "Display the various %s settings."), source.service->nick.c_str()); + { + source.Reply(_( + "Syntax: \002LIST\002" + "\n\n" + "Display the various %s settings." + ), + source.service->nick.c_str()); + } else if (subcommand.equals_ci("READONLY")) - source.Reply(_("Syntax: \002READONLY {ON | OFF}\002\n" - " \n" - "Sets read-only mode on or off. In read-only mode, normal\n" - "users will not be allowed to modify any services data,\n" - "including channel access lists, etc. Server operators\n" - "with sufficient services privileges will be able to modify\n" - "Services' AKILL, SQLINE, SNLINE and ignore lists, drop,\n" - "suspend or forbid nicknames and channels, and manage news,\n" - "oper info and DNS, but any such changes will not be saved\n" - "unless read-only mode is deactivated before services are\n" - "terminated or restarted.\n" - " \n" - "This option is equivalent to the command-line option\n" - "\002--readonly\002.")); + { + source.Reply(_( + "Syntax: \002READONLY {ON | OFF}\002" + "\n\n" + "Sets read-only mode on or off. In read-only mode, normal " + "users will not be allowed to modify any services data, " + "including channel access lists, etc. Server operators " + "with sufficient services privileges will be able to modify " + "Services' AKILL, SQLINE, SNLINE and ignore lists, drop, " + "suspend or forbid nicknames and channels, and manage news, " + "oper info and DNS, but any such changes will not be saved " + "unless read-only mode is deactivated before services are " + "terminated or restarted." + "\n\n" + "This option is equivalent to the command-line option " + "\002--readonly\002." + )); + } else if (subcommand.equals_ci("DEBUG")) - source.Reply(_("Syntax: \002DEBUG {ON | OFF}\002\n" - " \n" - "Sets debug mode on or off.\n" - " \n" - "This option is equivalent to the command-line option\n" - "\002--debug\002.")); + { + source.Reply(_( + "Syntax: \002DEBUG {ON | OFF}\002" + "\n\n" + "Sets debug mode on or off." + "\n\n" + "This option is equivalent to the command-line option " + "\002--debug\002." + )); + } else if (subcommand.equals_ci("NOEXPIRE")) - source.Reply(_("Syntax: \002NOEXPIRE {ON | OFF}\002\n" - " \n" - "Sets no expire mode on or off. In no expire mode, nicks,\n" - "channels, akills and exceptions won't expire until the\n" - "option is unset.\n" - " \n" - "This option is equivalent to the command-line option\n" - "\002--noexpire\002.")); + source.Reply(_( + "Syntax: \002NOEXPIRE {ON | OFF}\002" + "\n\n" + "Sets no expire mode on or off. In no expire mode, nicks, " + "channels, akills and exceptions won't expire until the " + "option is unset." + "\n\n" + "This option is equivalent to the command-line option " + "\002--noexpire\002." + )); else if (subcommand.equals_ci("SUPERADMIN")) - source.Reply(_("Syntax: \002SUPERADMIN {ON | OFF}\002\n" - " \n" - "Setting this will grant you extra privileges such as the\n" - "ability to be \"founder\" on all channel's etc...\n" - " \n" - "This option is \002not\002 persistent, and should only be used when\n" - "needed, and set back to OFF when no longer needed.")); + { + source.Reply(_( + "Syntax: \002SUPERADMIN {ON | OFF}\002" + "\n\n" + "Setting this will grant you extra privileges such as the " + "ability to be \"founder\" on all channels, etc..." + "\n\n" + "This option is \002not\002 persistent, and should only be used when " + "needed, and set back to OFF when no longer needed." + )); + } else return false; return true; diff --git a/modules/operserv/os_shutdown.cpp b/modules/operserv/os_shutdown.cpp index 96002439b..971c0525f 100644 --- a/modules/operserv/os_shutdown.cpp +++ b/modules/operserv/os_shutdown.cpp @@ -54,10 +54,12 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Causes services to do an immediate shutdown; databases are\n" - "\002not\002 saved. This command should not be used unless\n" - "damage to the in-memory copies of the databases is feared\n" - "and they should not be saved.")); + source.Reply(_( + "Causes services to do an immediate shutdown; databases are " + "\002not\002 saved. This command should not be used unless " + "damage to the in-memory copies of the databases is feared " + "and they should not be saved." + )); return true; } }; @@ -88,8 +90,10 @@ public: bool OnHelp(CommandSource &source, const Anope::string &subcommand) override { this->SendSyntax(source); - source.Reply(_("Causes services to save all databases and then restart\n" - "(i.e. exit and immediately re-run the executable).")); + source.Reply(_( + "Causes services to save all databases and then restart " + "(i.e. exit and immediately re-run the executable)." + )); return true; } }; diff --git a/modules/operserv/os_stats.cpp b/modules/operserv/os_stats.cpp index 4b94a8f46..15287bffa 100644 --- a/modules/operserv/os_stats.cpp +++ b/modules/operserv/os_stats.cpp @@ -298,25 +298,27 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Without any option, shows the current number of users online,\n" - "and the highest number of users online since services was\n" - "started, and the length of time services has been running.\n" - " \n" - "With the \002AKILL\002 option, displays the current size of the\n" - "AKILL list and the current default expiry time.\n" - " \n" - "The \002RESET\002 option currently resets the maximum user count\n" - "to the number of users currently present on the network.\n" - " \n" - "The \002PASSWORD\002 option displays the encryption algorithms used\n" - "for user passwords.\n" - " \n" - "The \002UPLINK\002 option displays information about the current\n" - "server Anope uses as an uplink to the network.\n" - " \n" - "The \002HASH\002 option displays information about the hash maps.\n" - " \n" - "The \002ALL\002 option displays all of the above statistics.")); + source.Reply(_( + "Without any option, shows the current number of users online, " + "and the highest number of users online since services was " + "started, and the length of time services has been running." + "\n\n" + "With the \002AKILL\002 option, displays the current size of the " + "AKILL list and the current default expiry time." + "\n\n" + "The \002RESET\002 option currently resets the maximum user count " + "to the number of users currently present on the network." + "\n\n" + "The \002PASSWORD\002 option displays the encryption algorithms used " + "for user passwords. " + "\n\n" + "The \002UPLINK\002 option displays information about the current " + "server Anope uses as an uplink to the network." + "\n\n" + "The \002HASH\002 option displays information about the hash maps." + "\n\n" + "The \002ALL\002 option displays all of the above statistics." + )); return true; } }; diff --git a/modules/operserv/os_sxline.cpp b/modules/operserv/os_sxline.cpp index ebb935c33..0b85d9d16 100644 --- a/modules/operserv/os_sxline.cpp +++ b/modules/operserv/os_sxline.cpp @@ -436,51 +436,60 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Allows Services Operators to manipulate the SNLINE list. If\n" - "a user with a realname matching an SNLINE mask attempts to\n" - "connect, services will not allow them to pursue their IRC\n" - "session.")); - source.Reply(_(" \n" - "\002SNLINE ADD\002 adds the given realname mask to the SNLINE\n" - "list for the given reason (which \002must\002 be given).\n" - "\037expiry\037 is specified as an integer followed by one of \037d\037\n" - "(days), \037h\037 (hours), or \037m\037 (minutes). Combinations (such as\n" - "\0371h30m\037) are not permitted. If a unit specifier is not\n" - "included, the default is days (so \037+30\037 by itself means 30\n" - "days). To add an SNLINE which does not expire, use \037+0\037. If the\n" - "realname mask to be added starts with a \037+\037, an expiry time must\n" - "be given, even if it is the same as the default. The\n" - "current SNLINE default expiry time can be found with the\n" - "\002STATS AKILL\002 command.\n" - " \n" - "\002Note\002: because the realname mask may contain spaces, the\n" - "separator between it and the reason is a colon.")); + source.Reply(_( + "Allows Services Operators to manipulate the SNLINE list. If " + "a user with a realname matching an SNLINE mask attempts to " + "connect, services will not allow them to pursue their IRC " + "session." + "\n\n" + "\002SNLINE\032ADD\002 adds the given realname mask to the SNLINE " + "list for the given reason (which \002must\002 be given). " + "\037expiry\037 is specified as an integer followed by one of \037d\037 " + "(days), \037h\037 (hours), or \037m\037 (minutes). Combinations (such as " + "\0371h30m\037) are not permitted. If a unit specifier is not " + "included, the default is days (so \037+30\037 by itself means 30 " + "days). To add an SNLINE which does not expire, use \037+0\037. If the " + "realname mask to be added starts with a \037+\037, an expiry time must " + "be given, even if it is the same as the default. The " + "current SNLINE default expiry time can be found with the " + "\002STATS\032AKILL\002 command. " + "\n\n" + "\002Note\002: because the realname mask may contain spaces, the " + "separator between it and the reason is a colon." + )); + const Anope::string ®exengine = Config->GetBlock("options").Get<const Anope::string>("regexengine"); if (!regexengine.empty()) { source.Reply(" "); - source.Reply(_("Regex matches are also supported using the %s engine.\n" - "Enclose your mask in // if this is desired."), regexengine.c_str()); + source.Reply(_( + "Regex matches are also supported using the %s engine. " + "Enclose your mask in // if this is desired." + ), + regexengine.c_str()); } - source.Reply(_(" \n" - "The \002SNLINE DEL\002 command removes the given mask from the\n" - "SNLINE list if it is present. If a list of entry numbers is\n" - "given, those entries are deleted. (See the example for LIST\n" - "below.)\n" - " \n" - "The \002SNLINE LIST\002 command displays the SNLINE list.\n" - "If a wildcard mask is given, only those entries matching the\n" - "mask are displayed. If a list of entry numbers is given,\n" - "only those entries are shown; for example:\n" - " \002SNLINE LIST 2-5,7-9\002\n" - " Lists SNLINE entries numbered 2 through 5 and 7\n" - " through 9.\n" - " \n" - "\002SNLINE VIEW\002 is a more verbose version of \002SNLINE LIST\002, and\n" - "will show who added an SNLINE, the date it was added, and when\n" - "it expires, as well as the realname mask and reason.\n" - " \n" - "\002SNLINE CLEAR\002 clears all entries of the SNLINE list.")); + + source.Reply(" "); + source.Reply(_( + "The \002SNLINE\032DEL\002 command removes the given mask from the " + "SNLINE list if it is present. If a list of entry numbers is " + "given, those entries are deleted. (See the example for LIST " + "below.)" + "\n\n" + "The \002SNLINE\032LIST\002 command displays the SNLINE list. " + "If a wildcard mask is given, only those entries matching the " + "mask are displayed. If a list of entry numbers is given, " + "only those entries are shown; for example:\n" + " \002SNLINE\032LIST\0322-5,7-9\002\n" + " Lists SNLINE entries numbered 2 through 5 and 7\n" + " through 9." + "\n\n" + "\002SNLINE\032VIEW\002 is a more verbose version of \002SNLINE\032LIST\002, and " + "will show who added an SNLINE, the date it was added, and when " + "it expires, as well as the realname mask and reason." + "\n\n" + "\002SNLINE\032CLEAR\002 clears all entries of the SNLINE list." + )); return true; } }; @@ -666,52 +675,61 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Allows Services Operators to manipulate the SQLINE list. If\n" - "a user with a nick matching an SQLINE mask attempts to\n" - "connect, services will not allow them to pursue their IRC\n" - "session.\n" - "If the first character of the mask is #, services will\n" - "prevent the use of matching channels. If the mask is a\n" - "regular expression, the expression will be matched against\n" - "channels too.")); - source.Reply(_(" \n" - "\002SQLINE ADD\002 adds the given (nick/channel) mask to the SQLINE\n" - "list for the given reason (which \002must\002 be given).\n" - "\037expiry\037 is specified as an integer followed by one of \037d\037\n" - "(days), \037h\037 (hours), or \037m\037 (minutes). Combinations (such as\n" - "\0371h30m\037) are not permitted. If a unit specifier is not\n" - "included, the default is days (so \037+30\037 by itself means 30\n" - "days). To add an SQLINE which does not expire, use \037+0\037.\n" - "If the mask to be added starts with a \037+\037, an expiry time\n" - "must be given, even if it is the same as the default. The\n" - "current SQLINE default expiry time can be found with the\n" - "\002STATS AKILL\002 command.")); + source.Reply(_( + "Allows Services Operators to manipulate the SQLINE list. If " + "a user with a nick matching an SQLINE mask attempts to " + "connect, services will not allow them to pursue their IRC " + "session. " + "If the first character of the mask is #, services will " + "prevent the use of matching channels. If the mask is a " + "regular expression, the expression will be matched against " + "channels too." + "\n\n" + "\002SQLINE\032ADD\002 adds the given (nick/channel) mask to the SQLINE " + "list for the given reason (which \002must\002 be given). " + "\037expiry\037 is specified as an integer followed by one of \037d\037 " + "(days), \037h\037 (hours), or \037m\037 (minutes). Combinations (such as " + "\0371h30m\037) are not permitted. If a unit specifier is not " + "included, the default is days (so \037+30\037 by itself means 30 " + "days). To add an SQLINE which does not expire, use \037+0\037. " + "If the mask to be added starts with a \037+\037, an expiry time " + "must be given, even if it is the same as the default. The " + "current SQLINE default expiry time can be found with the " + "\002STATS\032AKILL\002 command." + )); + const Anope::string ®exengine = Config->GetBlock("options").Get<const Anope::string>("regexengine"); if (!regexengine.empty()) { source.Reply(" "); - source.Reply(_("Regex matches are also supported using the %s engine.\n" - "Enclose your mask in // if this is desired."), regexengine.c_str()); + source.Reply(_( + "Regex matches are also supported using the %s engine. " + "Enclose your mask in // if this is desired." + ), + regexengine.c_str()); } - source.Reply(_(" \n" - "The \002SQLINE DEL\002 command removes the given mask from the\n" - "SQLINE list if it is present. If a list of entry numbers is\n" - "given, those entries are deleted. (See the example for LIST\n" - "below.)\n" - " \n" - "The \002SQLINE LIST\002 command displays the SQLINE list.\n" - "If a wildcard mask is given, only those entries matching the\n" - "mask are displayed. If a list of entry numbers is given,\n" - "only those entries are shown; for example:\n" - " \002SQLINE LIST 2-5,7-9\002\n" - " Lists SQLINE entries numbered 2 through 5 and 7\n" - " through 9.\n" - " \n" - "\002SQLINE VIEW\002 is a more verbose version of \002SQLINE LIST\002, and\n" - "will show who added an SQLINE, the date it was added, and when\n" - "it expires, as well as the mask and reason.\n" - " \n" - "\002SQLINE CLEAR\002 clears all entries of the SQLINE list.")); + + source.Reply(" "); + source.Reply(_( + "The \002SQLINE\032DEL\002 command removes the given mask from the " + "SQLINE list if it is present. If a list of entry numbers is " + "given, those entries are deleted. (See the example for LIST " + "below.)" + "\n\n" + "The \002SQLINE\032LIST\002 command displays the SQLINE list. " + "If a wildcard mask is given, only those entries matching the " + "mask are displayed. If a list of entry numbers is given, " + "only those entries are shown; for example:\n" + " \002SQLINE\032LIST\0322-5,7-9\002\n" + " Lists SQLINE entries numbered 2 through 5 and 7\n" + " through 9." + "\n\n" + "\002SQLINE\032VIEW\002 is a more verbose version of \002SQLINE\032LIST\002, and " + "will show who added an SQLINE, the date it was added, and when " + "it expires, as well as the mask and reason." + "\n\n" + "\002SQLINE\032CLEAR\002 clears all entries of the SQLINE list." + )); return true; } }; diff --git a/modules/operserv/os_update.cpp b/modules/operserv/os_update.cpp index e1c25a1be..0be8e2675 100644 --- a/modules/operserv/os_update.cpp +++ b/modules/operserv/os_update.cpp @@ -32,8 +32,7 @@ public: { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Causes services to update all database files as soon as you\n" - "send the command.")); + source.Reply(_("Causes services to update all database files as soon as you send the command.")); return true; } }; |