diff options
106 files changed, 2759 insertions, 3162 deletions
diff --git a/include/language.h b/include/language.h index 7c01ded47..808ad4097 100644 --- a/include/language.h +++ b/include/language.h @@ -100,7 +100,7 @@ namespace Language } // namespace Language /* Commonly used language strings */ -#define CONFIRM_DROP _("Please confirm that you want to drop \002%s\002 with \002%s %s %s\002") +#define CONFIRM_DROP _("Please confirm that you want to drop \002%s\002 with \002%s\032%s\032%s\002") #define SERVICE_UNAVAILABLE _("Sorry, %s is temporarily unavailable.") #define MORE_INFO _("\002%s\002 for more information.") #define BAD_USERHOST_MASK _("Mask must be in the form \037user\037@\037host\037.") @@ -109,9 +109,9 @@ namespace Language #define READ_ONLY_MODE _("Services are temporarily in read-only mode.") #define PASSWORD_INCORRECT _("Password incorrect.") #define ACCESS_DENIED _("Access denied.") -#define MORE_OBSCURE_PASSWORD _("Please try again with a more obscure password. Passwords should not be\n" \ - "something that could be easily guessed (e.g. your real name or your nick) and\n" \ - "cannot contain the space or tab characters.\n") +#define MORE_OBSCURE_PASSWORD _("Please try again with a more obscure password. Passwords should not be " \ + "something that could be easily guessed (e.g. your real name or your nick) and " \ + "cannot contain the space or tab characters.") #define PASSWORD_TOO_SHORT _("Your password is too short. It must be longer than %u characters.") #define PASSWORD_TOO_LONG _("Your password is too long. It must be shorter than %u characters.") #define NICK_NOT_REGISTERED _("Your nick isn't registered.") @@ -127,8 +127,8 @@ namespace Language #define UNKNOWN _("<unknown>") #define NO_EXPIRE _("does not expire") #define LIST_INCORRECT_RANGE _("Incorrect range specified. The correct syntax is \002#\037from\037-\037to\037\002.") -#define NICK_IS_SECURE _("This nickname is registered and protected. If it is your\n" \ - "nick, type \002%s \037password\037\002. Otherwise,\n" \ +#define NICK_IS_SECURE _("This nickname is registered and protected. If it is your " \ + "nick, type \002%s\032\037password\037\002. Otherwise, " \ "please choose a different nick.") #define FORCENICKCHANGE_NOW _("This nickname has been registered; you may not use it.") #define NICK_CANNOT_BE_REGISTERED _("Nickname \002%s\002 may not be registered.") @@ -145,10 +145,10 @@ namespace Language #define CHAN_ACCESS_LEVEL_RANGE _("Access level must be between %d and %d inclusive.") #define CHAN_INFO_HEADER _("Information about channel \002%s\002:") #define CHAN_EXCEPTED _("\002%s\002 matches an except on %s and cannot be banned until the except has been removed.") -#define MEMO_NEW_X_MEMO_ARRIVED _("There is a new memo on channel %s.\n" \ - "Type \002%s %s %zu\002 to read it.") -#define MEMO_NEW_MEMO_ARRIVED _("You have a new memo from %s.\n" \ - "Type \002%s %zu\002 to read it.") +#define MEMO_NEW_X_MEMO_ARRIVED _("There is a new memo on channel %s. " \ + "Type \002%s\032%s\032%zu\002 to read it.") +#define MEMO_NEW_MEMO_ARRIVED _("You have a new memo from %s. " \ + "Type \002%s\032%zu\002 to read it.") #define MEMO_HAVE_NO_MEMOS _("You have no memos.") #define MEMO_X_HAS_NO_MEMOS _("%s has no memos.") #define MEMO_HAVE_NO_NEW_MEMOS _("You have no new memos.") diff --git a/language/anope.en_US.po b/language/anope.en_US.po index 034ce54cc..ceae6ff5c 100644 --- a/language/anope.en_US.po +++ b/language/anope.en_US.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Anope\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-04-10 13:32+0100\n" +"POT-Creation-Date: 2025-04-16 00:04+0100\n" "PO-Revision-Date: 2025-04-10 13:32+0100\n" "Last-Translator: Sadie Powell <sadie@witchery.services>\n" "Language-Team: English\n" @@ -65,53 +65,23 @@ msgid "%s added to the AKILL list." msgstr "" #, c-format -msgid "" -"%s 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" +msgid "%s 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." msgstr "" #, c-format -msgid "" -"%s 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 %s command. For\n" -"more information on a specific command, type\n" -"%s command.\n" +msgid "%s 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 %scommand. For more information on a specific command, type %scommand." msgstr "" #, c-format -msgid "" -"%s 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 %s command.\n" -"For more information on a specific command, type\n" -"%s command.\n" +msgid "%s 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 %scommand. For more information on a specific command, type %scommand." msgstr "" #, c-format -msgid "" -"%s allows you to register an account.\n" -"The following commands allow for registration and maintenance of\n" -"accounts; to use them, type %s command.\n" -"For more information on a specific command, type\n" -"%s command.\n" +msgid "%s allows you to register an account. The following commands allow for registration and maintenance of accounts; to use them, type %scommand. For more information on a specific command, type %scommand." msgstr "" #, c-format -msgid "" -"%s 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" -"%s command. For more information on a\n" -"specific command, type %s command.\n" +msgid "%s 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 %scommand. For more information on a specific command, type %scommand." msgstr "" #, c-format @@ -216,11 +186,8 @@ msgstr "" #, c-format msgid "" -"%s 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 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:" msgstr "" @@ -365,42 +332,11 @@ msgstr "" msgid "DEL nick" msgstr "" -msgid "" -"EXCEPTION ADD adds the given host mask to the exception list.\n" -"Note that nick!user@host and user@host masks are invalid!\n" -"Only real host masks, such as box.host.dom and *.host.dom,\n" -"are allowed because sessions limiting does not take nick or\n" -"user names into account. limit 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 AKILL help for details about\n" -"the format of the optional expiry parameter.\n" -" \n" -"EXCEPTION DEL removes the given mask from the exception list.\n" -" \n" -"EXCEPTION LIST and EXCEPTION VIEW 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" -"EXCEPTION VIEW 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." -msgstr "" - -msgid "" -"SET kills all operators from the given\n" -"server and prevents operators from opering\n" -"up on the given server. REVOKE removes this\n" -"restriction." +msgid "SET kills all operators from the given server and prevents operators from opering up on the given server. REVOKE removes this restriction." msgstr "" #, c-format -msgid "" -"User access levels can be seen by using the\n" -"%s command; type %s LEVELS for\n" -"information." +msgid "User access levels can be seen by using the %s command; type %sLEVELS for information." msgstr "" #, c-format @@ -713,275 +649,6 @@ msgstr "" msgid "user [reason]" msgstr "" -msgid "" -" \n" -"SNLINE ADD adds the given realname mask to the SNLINE\n" -"list for the given reason (which must be given).\n" -"expiry is specified as an integer followed by one of d\n" -"(days), h (hours), or m (minutes). Combinations (such as\n" -"1h30m) are not permitted. If a unit specifier is not\n" -"included, the default is days (so +30 by itself means 30\n" -"days). To add an SNLINE which does not expire, use +0. If the\n" -"realname mask to be added starts with a +, 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" -"STATS AKILL command.\n" -" \n" -"Note: because the realname mask may contain spaces, the\n" -"separator between it and the reason is a colon." -msgstr "" - -msgid "" -" \n" -"SQLINE ADD adds the given (nick/channel) mask to the SQLINE\n" -"list for the given reason (which must be given).\n" -"expiry is specified as an integer followed by one of d\n" -"(days), h (hours), or m (minutes). Combinations (such as\n" -"1h30m) are not permitted. If a unit specifier is not\n" -"included, the default is days (so +30 by itself means 30\n" -"days). To add an SQLINE which does not expire, use +0.\n" -"If the mask to be added starts with a +, 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" -"STATS AKILL command." -msgstr "" - -#, c-format -msgid "" -" \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." -msgstr "" - -msgid "" -" \n" -"Available commands are:" -msgstr "" - -#, c-format -msgid "" -" \n" -"Bot will join a channel whenever there is at least\n" -"%d user(s) on it." -msgstr "" - -#, c-format -msgid "" -" \n" -"Enables or disables fantasy 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: %s\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." -msgstr "" - -msgid "" -" \n" -"Enables or disables greet 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." -msgstr "" - -msgid "" -" \n" -"Enables or disables ops protection 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." -msgstr "" - -msgid "" -" \n" -"Enables or disables voices protection 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." -msgstr "" - -#, c-format -msgid "" -" \n" -"Fantasy commands may be prefixed with one of the following characters: %s\n" -msgstr "" - -msgid "" -" \n" -"NOTICE: In order to register a channel, you must have\n" -"first registered your nickname." -msgstr "" - -#, c-format -msgid "" -" \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." -msgstr "" - -#, c-format -msgid "" -" \n" -"See the %s command (%s ACCESS) for\n" -"information on giving a subset of these privileges to\n" -"other channel users.\n" -msgstr "" - -msgid "" -" \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." -msgstr "" - -msgid "" -" \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." -msgstr "" - -msgid "" -" \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." -msgstr "" - -#, c-format -msgid "" -" \n" -"The %s ADD command adds the given nickname to the\n" -"%s list.\n" -" \n" -"The %s DEL 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 %s LIST 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" -"only those entries are shown; for example:\n" -" %s #channel LIST 2-5,7-9\n" -" Lists %s entries numbered 2 through 5 and\n" -" 7 through 9.\n" -" \n" -"The %s CLEAR command clears all entries of the\n" -"%s list." -msgstr "" - -#, c-format -msgid "" -" \n" -"The AKICK DEL 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 AKICK LIST command displays the AutoKick list, or\n" -"optionally only those AutoKick entries which match the\n" -"given mask.\n" -" \n" -"The AKICK VIEW command is a more verbose version of the\n" -"AKICK LIST command.\n" -" \n" -"The AKICK ENFORCE command causes %s to enforce the\n" -"current AKICK list by removing those users who match an\n" -"AKICK mask.\n" -" \n" -"The AKICK CLEAR command clears all entries of the\n" -"akick list." -msgstr "" - -msgid "" -" \n" -"The AKILL DEL 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 AKILL LIST 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" -" AKILL LIST 2-5,7-9\n" -" Lists AKILL entries numbered 2 through 5 and 7\n" -" through 9.\n" -" \n" -"AKILL VIEW is a more verbose version of AKILL LIST, 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" -"AKILL CLEAR clears all entries of the AKILL list." -msgstr "" - -msgid "" -" \n" -"The SNLINE DEL 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 SNLINE LIST 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" -" SNLINE LIST 2-5,7-9\n" -" Lists SNLINE entries numbered 2 through 5 and 7\n" -" through 9.\n" -" \n" -"SNLINE VIEW is a more verbose version of SNLINE LIST, 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" -"SNLINE CLEAR clears all entries of the SNLINE list." -msgstr "" - -msgid "" -" \n" -"The SQLINE DEL 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 SQLINE LIST 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" -" SQLINE LIST 2-5,7-9\n" -" Lists SQLINE entries numbered 2 through 5 and 7\n" -" through 9.\n" -" \n" -"SQLINE VIEW is a more verbose version of SQLINE LIST, 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" -"SQLINE CLEAR clears all entries of the SQLINE list." -msgstr "" - -msgid "" -" \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." -msgstr "" - -msgid "" -" \n" -"This option prevents a bot from being assigned to a\n" -"channel by users that aren't IRC Operators." -msgstr "" - -#, c-format -msgid "" -" \n" -"Type %s command for help on any of the\n" -"above commands." -msgstr "" - #, c-format msgid " %s is online using this oper block." msgstr "" @@ -1275,8 +942,15 @@ msgstr "" #, c-format msgid "" -"%s is another way to modify the channel access list, similar to\n" -"the XOP and ACCESS methods." +"%s is another way to modify the channel access list, similar to the XOP and ACCESS methods.\n" +"\n" +"The MODIFY 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 LIST 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 CLEAR command clears the channel access list. This requires channel founder access.\n" +"\n" +"The available flags are:" msgstr "" #, c-format @@ -1492,9 +1166,7 @@ msgid "A memo informing the user will also be sent." msgstr "" #, c-format -msgid "" -"A notification memo has been sent to %s informing them you have\n" -"read their memo." +msgid "A notification memo has been sent to %s informing them you have read their memo." msgstr "" msgid "A vhost must be in the format of a valid hostname." @@ -1607,22 +1279,20 @@ msgstr "" msgid "Accounts can not be registered right now. Please try again later." msgstr "" +#, c-format +msgid "Accounts that are not used anymore are subject to the automatic expiration, i.e. they will be deleted after %lu days if not used." +msgstr "" + msgid "Activate the requested vhost for the given nick." msgstr "" -msgid "" -"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." +msgid "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." msgstr "" msgid "Activates your assigned vhost" msgstr "" -msgid "" -"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." +msgid "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." msgstr "" #, c-format @@ -1654,31 +1324,17 @@ msgstr "" msgid "Added zone %s." msgstr "" -msgid "" -"Adding, deleting, or clearing entry messages requires the\n" -"SET permission." -msgstr "" - -msgid "" -"Additionally, Services Operators with the chanserv/drop/override permission can\n" -"replace code with OVERRIDE to drop without a confirmation code." +msgid "Additionally, Services Operators with the chanserv/drop/override permission can replace code with OVERRIDE to drop without a confirmation code." msgstr "" -msgid "" -"Additionally, Services Operators with the nickserv/confirm permission can\n" -"replace passcode with a users nick to force validate them." +msgid "Additionally, Services Operators with the nickserv/confirm permission can replace passcode with a users nick to force validate them." msgstr "" -msgid "" -"Additionally, Services Operators with the nickserv/drop/override permission can\n" -"replace code with OVERRIDE to drop without a confirmation code." +msgid "Additionally, Services Operators with the nickserv/drop/override permission can replace code with OVERRIDE to drop without a confirmation code." msgstr "" #, c-format -msgid "" -"Additionally, if fantasy is enabled fantasy commands\n" -"can be executed by prefixing the command name with\n" -"one of the following characters: %s" +msgid "Additionally, if fantasy is enabled fantasy commands can be executed by prefixing the command name with one of the following characters: %s" msgstr "" #, c-format @@ -1827,239 +1483,146 @@ msgstr "" msgid "Allowed to view the access list" msgstr "" -msgid "" -"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." +msgid "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 CLEARALL is given then all modes, including user status, is removed." msgstr "" -msgid "" -"Allows Services Operators to change modes for any user.\n" -"Parameters are the same as for the standard /MODE command." +msgid "Allows Services Operators to change modes for any user. Parameters are the same as for the standard /MODE command." msgstr "" msgid "" -"Allows Services Operators to create, modify, and delete\n" -"bots that users will be able to use on their own\n" -"channels.\n" -" \n" -"BOT ADD 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" -"BOT CHANGE 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" -"BOT DEL removes the given bot from the bot list.\n" -" \n" -"Note: 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." +"Allows Services Operators to create, modify, and delete bots that users will be able to use on their own channels.\n" +"\n" +"BOTADD 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" +"BOTCHANGE 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" +"BOTDEL removes the given bot from the bot list.\n" +"\n" +"Note: 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." msgstr "" msgid "" -"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: s for seconds, m for minutes,\n" -"h for hours and d 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 mask, it should be in the format nick!user@host,\n" -"everything else will be considered a nick. Wildcards are permitted.\n" -" \n" +"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: s for seconds, m for minutes, h for hours and d for days. Combinations of these units are not permitted. To make services permanently ignore the user, type 0 as time. When adding a mask, 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." msgstr "" msgid "" -"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" -"AKILL ADD adds the given mask to the AKILL\n" -"list for the given reason, which must 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" -"expiry is specified as an integer followed by one of d\n" -"(days), h (hours), or m (minutes). Combinations (such as\n" -"1h30m) are not permitted. If a unit specifier is not\n" -"included, the default is days (so +30 by itself means 30\n" -"days). To add an AKILL which does not expire, use +0. If the\n" -"usermask to be added starts with a +, 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" -"STATS AKILL command." +"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" +"AKILLADD adds the given mask to the AKILL list for the given reason, which must be given. Mask should be in the format of nick!user@host#realname, though all that is required is user@host. If a real name is specified, the reason must be prepended with a :. expiry is specified as an integer followed by one of d (days), h (hours), or m (minutes). Combinations (such as 1h30m) are not permitted. If a unit specifier is not included, the default is days (so +30 by itself means 30 days). To add an AKILL which does not expire, use +0. If the usermask to be added starts with a +, 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 STATSAKILL command." msgstr "" msgid "" -"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." +"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" +"SNLINEADD adds the given realname mask to the SNLINE list for the given reason (which must be given). expiry is specified as an integer followed by one of d (days), h (hours), or m (minutes). Combinations (such as 1h30m) are not permitted. If a unit specifier is not included, the default is days (so +30 by itself means 30 days). To add an SNLINE which does not expire, use +0. If the realname mask to be added starts with a +, 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 STATSAKILL command. \n" +"\n" +"Note: because the realname mask may contain spaces, the separator between it and the reason is a colon." msgstr "" msgid "" -"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." +"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" +"SQLINEADD adds the given (nick/channel) mask to the SQLINE list for the given reason (which must be given). expiry is specified as an integer followed by one of d (days), h (hours), or m (minutes). Combinations (such as 1h30m) are not permitted. If a unit specifier is not included, the default is days (so +30 by itself means 30 days). To add an SQLINE which does not expire, use +0. If the mask to be added starts with a +, 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 STATSAKILL command." msgstr "" msgid "" -"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." +"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" +"EXCEPTIONADD adds the given host mask to the exception list. Note that nick!user@host and user@host masks are invalid! Only real host masks, such as box.host.dom and *.host.dom, are allowed because sessions limiting does not take nick or user names into account. limit 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 AKILL help for details about the format of the optional expiry parameter. \n" +"\n" +"EXCEPTIONDEL removes the given mask from the exception list.\n" +"\n" +"EXCEPTIONLIST and EXCEPTIONVIEW show all current sessions if the optional mask is given, the list is limited to those sessions matching the mask. The difference is that EXCEPTIONVIEW 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." msgstr "" msgid "" "Allows Services Operators to view the session list.\n" -" \n" -"SESSION LIST lists hosts with at least threshold 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" -"SESSION VIEW displays detailed information about a specific\n" -"host - including the current session count and session limit.\n" -"The host value may not include wildcards.\n" -" \n" -"See the EXCEPTION help for more information about session\n" -"limiting and how to set session limits specific to certain\n" -"hosts and groups thereof." +"\n" +"SESSIONLIST lists hosts with at least threshold 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" +"SESSIONVIEW displays detailed information about a specific host - including the current session count and session limit. The host value may not include wildcards. \n" +"\n" +"See the EXCEPTION help for more information about session limiting and how to set session limits specific to certain hosts and groups thereof." msgstr "" msgid "" -"Allows manipulating the topic of the specified channel.\n" -"The SET command changes the topic of the channel to the given topic\n" -"or unsets the topic if no topic is given. The APPEND command appends\n" -"the given topic to the existing topic.\n" -" \n" -"LOCK and UNLOCK 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 TOPIC privilege." +"Allows manipulating the topic of the specified channel. The SET command changes the topic of the channel to the given topic or unsets the topic if no topic is given. The APPEND command appends the given topic to the existing topic. \n" +"\n" +"LOCK and UNLOCK 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 TOPIC privilege." msgstr "" msgid "" "Allows queueing messages to send to users on the network.\n" "\n" -"The QUEUE ADD command adds the given message to the message queue.\n" -"The QUEUE CLEAR command clears the message queue.\n" -"The QUEUE DEL command removes the specified message from the message queue. The\n" -"message number can be obtained from the output of the QUEUE LIST command.\n" -"The QUEUE LIST command lists all messages that are currently in the message queue." +"The QUEUEADD command adds the given message to the message queue.\n" +"\n" +"The QUEUECLEAR command clears the message queue.\n" +"\n" +"The QUEUEDEL command removes the specified message from the message queue. The message number can be obtained from the output of the QUEUELIST command.\n" +"\n" +"The QUEUELIST command lists all messages that are currently in the message queue." msgstr "" #, c-format msgid "" -"Allows sending messages to all users on a server. The message will be sent\n" -"from %s.\n" +"Allows sending messages to all users on a server. The message will be sent from %s.\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" +"You can either send a message by specifying it as a parameter or provide no parameters to send a previously queued message." msgstr "" #, c-format msgid "" -"Allows sending messages to all users on the network. The message will be sent\n" -"from %s.\n" +"Allows sending messages to all users on the network. The message will be sent from %s.\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" +"You can either send a message by specifying it as a parameter or provide no parameters to send a previously queued message." msgstr "" #, c-format msgid "" -"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" +"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))" msgstr "" msgid "" -"Allows the channel founder to set various channel options\n" -"and other information.\n" -" \n" +"Allows the channel founder to set various channel options and other information.\n" +"\n" "Available options:" msgstr "" -msgid "" -"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." +msgid "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." msgstr "" msgid "" -"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" +"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" -" MODIFY nickserv regdelay 15m" +" MODIFYnickservregdelay15m" msgstr "" -msgid "" -"Allows you to choose the way services are communicating with\n" -"the given user. With MSG set, services will use messages,\n" -"else they'll use notices." +msgid "Allows you to choose the way services are communicating with the given user. With MSG set, services will use messages, else they'll use notices." msgstr "" #, c-format -msgid "" -"Allows you to choose the way services are communicating with\n" -"you. With %s set, services will use messages, else they'll\n" -"use notices." +msgid "Allows you to choose the way services are communicating with you. With %s set, services will use messages, else they'll use notices." msgstr "" -msgid "" -"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." +msgid "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." msgstr "" -msgid "" -"Allows you to kill a user from the network.\n" -"Parameters are the same as for the standard /KILL\n" -"command." +msgid "Allows you to kill a user from the network. Parameters are the same as for the standard /KILL command." msgstr "" #, c-format -msgid "" -"Allows you to prevent certain pieces of information from\n" -"being displayed when someone does a %s INFO on the\n" -"nick. You can hide the email address (EMAIL), last seen\n" -"user@host mask (USERMASK), the services access status\n" -"(STATUS) and last quit message (QUIT).\n" -"The second parameter specifies whether the information should\n" -"be displayed (OFF) or hidden (ON)." +msgid "Allows you to prevent certain pieces of information from being displayed when someone does a %sINFO on the nick. You can hide the email address (EMAIL), last seen user@host mask (USERMASK), the services access status (STATUS) and last quit message (QUIT). The second parameter specifies whether the information should be displayed (OFF) or hidden (ON)." msgstr "" #, c-format -msgid "" -"Allows you to prevent certain pieces of information from\n" -"being displayed when someone does a %s INFO on your\n" -"nick. You can hide your email address (EMAIL), last seen\n" -"user@host mask (USERMASK), your services access status\n" -"(STATUS) and last quit message (QUIT).\n" -"The second parameter specifies whether the information should\n" -"be displayed (OFF) or hidden (ON)." +msgid "Allows you to prevent certain pieces of information from being displayed when someone does a %sINFO on your nick. You can hide your email address(EMAIL), last seen user@host mask (USERMASK), your services access status (STATUS) and last quit message (QUIT). The second parameter specifies whether the information should be displayed (OFF) or hidden (ON)." msgstr "" #, c-format @@ -2067,17 +1630,10 @@ msgid "Allows you to see %s information about a channel or a bot" msgstr "" #, c-format -msgid "" -"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." +msgid "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." msgstr "" -msgid "" -"Alternative methods of modifying channel access lists are\n" -"available." +msgid "Alternative methods of modifying channel access lists are available." msgstr "" msgid "Approve the requested vhost of a user" @@ -2089,10 +1645,7 @@ msgstr "" msgid "Assigns a bot to a channel" msgstr "" -msgid "" -"Assigns the specified bot to a channel. You\n" -"can then configure the bot for the channel so it fits\n" -"your needs." +msgid "Assigns the specified bot to a channel. You can then configure the bot for the channel so it fits your needs." msgstr "" msgid "Associate a URL with the channel" @@ -2119,10 +1672,7 @@ msgstr "" msgid "Associates the given email address with the nickname." msgstr "" -msgid "" -"Associates the given email address with your nickname.\n" -"This address will be displayed whenever someone requests\n" -"information on the nickname with the INFO command." +msgid "Associates the given email address with your nickname. This address will be displayed whenever someone requests information on the nickname with the INFO command." msgstr "" msgid "Auto-op" @@ -2147,6 +1697,9 @@ msgstr "" msgid "Automatic voice on join" msgstr "" +msgid "Available commands are:" +msgstr "" + #, c-format msgid "Available commands for %s:" msgstr "" @@ -2189,12 +1742,9 @@ msgid "Bans a given nick or mask on a channel" msgstr "" msgid "" -"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." +"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." msgstr "" #, c-format @@ -2291,9 +1841,11 @@ msgid "Bot nicks may only contain valid nick characters." msgstr "" #, c-format -msgid "" -"Bot will now kick for %s, and will place a ban\n" -"after %d kicks for the same user." +msgid "Bot will join a channel whenever there is at least %d user(s) on it." +msgstr "" + +#, c-format +msgid "Bot will now kick for %s, and will place a ban after %d kicks for the same user." msgstr "" #, c-format @@ -2301,22 +1853,15 @@ msgid "Bot will now kick for %s." msgstr "" #, c-format -msgid "" -"Bot will now kick for caps (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." +msgid "Bot will now kick for caps (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." msgstr "" #, c-format -msgid "" -"Bot will now kick for caps (they must constitute at least\n" -"%d characters and %d%% of the entire message)." +msgid "Bot will now kick for caps (they must constitute at least %d characters and %d%% of the entire message)." msgstr "" #, c-format -msgid "" -"Bot will now kick for flood (%d lines in %d seconds\n" -"and will place a ban after %d kicks for the same user." +msgid "Bot will now kick for flood (%d lines in %d seconds and will place a ban after %d kicks for the same user." msgstr "" #, c-format @@ -2324,29 +1869,19 @@ msgid "Bot will now kick for flood (%d lines in %d seconds)." msgstr "" #, c-format -msgid "" -"Bot will now kick for repeats (users that repeat the\n" -"same message %d time), and will place a ban after %d\n" -"kicks for the same user." +msgid "Bot will now kick for repeats (users that repeat the same message %d time), and will place a ban after %d kicks for the same user." msgstr "" #, c-format -msgid "" -"Bot will now kick for repeats (users that repeat the\n" -"same message %d time)." +msgid "Bot will now kick for repeats (users that repeat the same message %d time)." msgstr "" #, c-format -msgid "" -"Bot will now kick for repeats (users that repeat the\n" -"same message %d times), and will place a ban after %d\n" -"kicks for the same user." +msgid "Bot will now kick for repeats (users that repeat the same message %d times), and will place a ban after %d kicks for the same user." msgstr "" #, c-format -msgid "" -"Bot will now kick for repeats (users that repeat the\n" -"same message %d times)." +msgid "Bot will now kick for repeats (users that repeat the same message %d times)." msgstr "" #, c-format @@ -2380,9 +1915,7 @@ msgstr "" msgid "Cancel the registration of a nickname" msgstr "" -msgid "" -"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." +msgid "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." msgstr "" #, c-format @@ -2395,31 +1928,19 @@ msgstr "" msgid "Caps kicker" msgstr "" -msgid "" -"Causes services to do an immediate shutdown; databases are\n" -"not 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." +msgid "Causes services to do an immediate shutdown; databases are not 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." msgstr "" -msgid "" -"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.)." +msgid "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.)." msgstr "" -msgid "" -"Causes services to save all databases and then restart\n" -"(i.e. exit and immediately re-run the executable)." +msgid "Causes services to save all databases and then restart (i.e. exit and immediately re-run the executable)." msgstr "" msgid "Causes services to save all databases and then shut down." msgstr "" -msgid "" -"Causes services to update all database files as soon as you\n" -"send the command." +msgid "Causes services to update all database files as soon as you send the command." msgstr "" #, c-format @@ -2442,52 +1963,28 @@ msgstr "" msgid "Changed usermodes of %s to %s." msgstr "" -msgid "" -"Changes the display used to refer to the nickname group in\n" -"services. The new display MUST be a nick of the group." +msgid "Changes the display used to refer to the nickname group in services. The new display MUST be a nick of the group." msgstr "" -msgid "" -"Changes the display used to refer to your nickname group in\n" -"services. The new display MUST be a nick of your group." +msgid "Changes the display used to refer to your nickname group in services. The new display MUST be a nick of your group." msgstr "" -msgid "" -"Changes the founder of a channel. The new nickname must\n" -"be a registered one." +msgid "Changes the founder of a channel. The new nickname must be a registered one." msgstr "" -msgid "" -"Changes the language services uses when sending messages to\n" -"the given user (for example, when responding to a command they send).\n" -"language should be chosen from the following list of\n" -"supported languages:" +msgid "Changes the language services uses when sending messages to the given user (for example, when responding to a command they send). language should be chosen from the following list of supported languages:" msgstr "" -msgid "" -"Changes the language services uses when sending messages to\n" -"you (for example, when responding to a command you send).\n" -"language should be chosen from the following list of\n" -"supported languages:" +msgid "Changes the language services uses when sending messages to you (for example, when responding to a command you send). language should be chosen from the following list of supported languages:" msgstr "" msgid "Changes the password used to identify as the nick's owner." msgstr "" -msgid "" -"Changes the password used to identify you as the nick's\n" -"owner." +msgid "Changes the password used to identify you as the nick's owner." msgstr "" -msgid "" -"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." +msgid "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." msgstr "" #, c-format @@ -2626,18 +2123,13 @@ msgstr "" msgid "Chanstats statistics are now enabled for your nick." msgstr "" -msgid "" -"Checks for the last time nick 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." +msgid "Checks for the last time nick was seen joining, leaving, or changing nick on the network and tells you when and, depending on channel or user settings, where it was." msgstr "" msgid "Checks if last memo to a nick was read" msgstr "" -msgid "" -"Checks whether the _last_ memo you sent to nick has been read\n" -"or not. Note that this only works with nicks, not with channels." +msgid "Checks whether the _last_ memo you sent to nick has been read or not. Note that this only works with nicks, not with channels." msgstr "" #, c-format @@ -2667,7 +2159,7 @@ msgstr "" msgid "" "Configures bot options.\n" -" \n" +"\n" "Available options:" msgstr "" @@ -2707,14 +2199,21 @@ msgstr "" msgid "Control modes and mode locks on a channel" msgstr "" -msgid "Controls what messages will be sent to users when they join the channel." +msgid "" +"Controls what messages will be sent to users when they join the channel.\n" +"\n" +"The ENTRYMSGADD command adds the given message to the list of messages shown to users when they join the channel.\n" +"\n" +"The ENTRYMSGDEL 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 ENTRYMSGLIST command displays a listing of messages shown to users when they join the channel.\n" +"\n" +"The ENTRYMSGCLEAR 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." msgstr "" -msgid "" -"Copies all settings, access, akicks, etc from channel to the\n" -"target channel. If what is ACCESS, AKICK, BADWORDS,\n" -"or LEVELS then only the respective settings are cloned.\n" -"You must be the founder of channel and target." +msgid "Copies all settings, access, akicks, etc from channel to the target channel. If what is ACCESS, AKICK, BADWORDS, or LEVELS then only the respective settings are cloned. You must be the founder of channel and target." msgstr "" msgid "Copy all settings from one channel to another" @@ -2804,10 +2303,7 @@ msgstr "" msgid "Date/Time" msgstr "" -msgid "" -"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." +msgid "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." msgstr "" msgid "Deactivates your assigned vhost" @@ -2953,33 +2449,28 @@ msgid "Deleted info from %s." msgstr "" msgid "" -"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" +"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 LAST is given, the last memo will be deleted.\n" +"\n" "If ALL is given, deletes all of your memos.\n" -" \n" +"\n" "Examples:\n" -" \n" -" DEL 1\n" +"\n" +" DEL1\n" " Deletes your first memo.\n" -" \n" -" DEL 2-5,7-9\n" +"\n" +" DEL2-5,7-9\n" " Deletes memos numbered 2 through 5 and 7 through 9." msgstr "" -msgid "" -"Deletes the vhost assigned to the given nick from the\n" -"database." +msgid "Deletes the vhost assigned to the given nick from the database." msgstr "" msgid "Deletes the vhost for all nicks in a group" msgstr "" -msgid "" -"Deletes the vhost for all nicks in the same group as\n" -"that of the given nick." +msgid "Deletes the vhost for all nicks in the same group as that of the given nick." msgstr "" #, c-format @@ -3001,13 +2492,8 @@ msgid "Disabled" msgstr "" msgid "" -"Disallows anyone from using the given channel.\n" -"May be cancelled by using the UNSUSPEND\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" +"Disallows anyone from using the given channel. May be cancelled by using the UNSUSPEND 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." msgstr "" @@ -3030,12 +2516,7 @@ msgstr "" msgid "Displays information about a given nickname" msgstr "" -msgid "" -"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." +msgid "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." msgstr "" msgid "Displays information about your memos" @@ -3087,35 +2568,18 @@ msgstr "" msgid "Don't use underlines on this channel!" msgstr "" -msgid "" -"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." +msgid "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." msgstr "" #, c-format -msgid "" -"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 %d 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." +msgid "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 %d messages will be sent in order to avoid flooding the user. If there are more news messages, only the most recent will be sent." msgstr "" #, c-format -msgid "" -"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 %d 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." +msgid "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 %d messages will be sent in order to avoid flooding the user. If there are more news messages, only the most recent will be sent." msgstr "" -msgid "" -"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." +msgid "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." msgstr "" msgid "Email address" @@ -3151,101 +2615,68 @@ msgstr "" #, c-format msgid "" -"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." +"Enables or disables fantasy 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: %s\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." msgstr "" -msgid "" -"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." +msgid "Enables or disables greet 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." msgstr "" -msgid "" -"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." +msgid "Enables or disables ops protection 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." msgstr "" -msgid "" -"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." +msgid "Enables or disables voices protection 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." +msgstr "" + +#, c-format +msgid "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." +msgstr "" + +msgid "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." +msgstr "" + +msgid "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." +msgstr "" + +msgid "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." msgstr "" msgid "" -"Enables or disables signed kicks for a\n" -"channel. When SIGNKICK is set, kicks issued with\n" -"the KICK command will have the nick that used the\n" -"command in their reason.\n" -" \n" -"If you use LEVEL, 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." +"Enables or disables signed kicks for a channel. When SIGNKICK is set, kicks issued with the KICK command will have the nick that used the command in their reason.\n" +"\n" +"If you use LEVEL, those who have a level that is superior or equal to the SIGNKICK level on the channel won't have their kicks signed." msgstr "" #, c-format -msgid "" -"Enables or disables the peace option for a channel.\n" -"When peace 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." +msgid "Enables or disables the peace option for a channel. When peace 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." msgstr "" msgid "Enables or disables the private option for a channel." msgstr "" -msgid "" -"Enables or disables the restricted access option for a\n" -"channel. When restricted access is set, users not on the access list will\n" -"instead be kicked and banned from the channel." +msgid "Enables or disables the restricted access option for a channel. When restricted access is set, users not on the access list will instead be kicked and banned from the channel." msgstr "" -msgid "" -"Enables or disables the secure founder option for a channel.\n" -"When secure founder 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." +msgid "Enables or disables the secure founder option for a channel. When secure founder 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." msgstr "" -msgid "" -"Enables or disables the secure ops option for a channel.\n" -"When secure ops is set, users who are not on the access list\n" -"will not be allowed channel operator status." +msgid "Enables or disables the secure ops option for a channel. When secure ops is set, users who are not on the access list will not be allowed channel operator status." msgstr "" #, c-format -msgid "" -"Enables or disables the topic retention option for a\n" -"channel. When %s 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." +msgid "Enables or disables the topic retention option for a channel. When %s 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." msgstr "" #, c-format msgid "" -"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." +"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." msgstr "" msgid "End of AKILL list." @@ -3303,19 +2734,9 @@ msgid "Enforce various channel modes and set options" msgstr "" msgid "" -"Enforce various channel modes and set options. The channel\n" -"option indicates what channel to enforce the modes and options\n" -"on. The what option indicates what modes and options to\n" -"enforce, and can be any of SECUREOPS, RESTRICTED, REGONLY, SSLONLY,\n" -"BANS, or LIMIT.\n" -" \n" -"Use SECUREOPS to enforce the SECUREOPS option, even if it is not\n" -"enabled. Use RESTRICTED to enforce the RESTRICTED option, also\n" -"if it's not enabled. Use REGONLY to kick all unregistered users\n" -"from the channel. Use SSLONLY to kick all users not using a secure\n" -"connection from the channel. BANS will enforce bans on the channel by\n" -"kicking users affected by them, and LIMIT will kick users until the\n" -"user count drops below the channel limit, if one is set." +"Enforce various channel modes and set options. The channel option indicates what channel to enforce the modes and options on. The what option indicates what modes and options to enforce, and can be any of SECUREOPS, RESTRICTED, REGONLY, SSLONLY, BANS, or LIMIT.\n" +"\n" +"Use SECUREOPS to enforce the SECUREOPS option, even if it is not enabled. Use RESTRICTED to enforce the RESTRICTED option, also if it's not enabled. Use REGONLY to kick all unregistered users from the channel. Use SSLONLY to kick all users not using a secure connection from the channel. BANS will enforce bans on the channel by kicking users affected by them, and LIMIT will kick users until the user count drops below the channel limit, if one is set." msgstr "" msgid "English" @@ -3357,21 +2778,6 @@ msgstr "" msgid "Error! The vident is too long, please use an ident shorter than %zu characters." msgstr "" -msgid "" -"Examples:\n" -" \n" -" CERT ADD\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" -" CERT DEL <fingerprint>\n" -" Removes the fingerprint <fingerprint> from your certificate list.\n" -" \n" -" CERT LIST\n" -" Displays the current certificate list." -msgstr "" - #, c-format msgid "Exception for %s has been updated to %d." msgstr "" @@ -3391,6 +2797,10 @@ msgid "Fantasy" msgstr "" #, c-format +msgid "Fantasy commands may be prefixed with one of the following characters: %s" +msgstr "" + +#, c-format msgid "Fantasy mode is now off on channel %s." msgstr "" @@ -3423,9 +2833,7 @@ msgstr "" msgid "Flood kicker" msgstr "" -msgid "" -"Forbid allows you to forbid usage of certain nicknames, channels,\n" -"and email addresses. Wildcards are accepted for all entries." +msgid "Forbid allows you to forbid usage of certain nicknames, channels, and email addresses. Wildcards are accepted for all entries." msgstr "" msgid "Forbid list is empty." @@ -3473,9 +2881,7 @@ msgid "Ghost with your nick has been killed." msgstr "" #, c-format -msgid "" -"Gives %s status to the selected nicks on a channel. If nick is\n" -"not given, it will %s you." +msgid "Gives %s status to the selected nicks on a channel. If nick is not given, it will %s you." msgstr "" #, c-format @@ -3644,9 +3050,8 @@ msgstr "" msgid "" "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." +"\n" +"By default, limited to AOPs or those with level 5 access and above on the channel. Channel founders can also specify masks." msgstr "" msgid "Kill a user" @@ -3752,11 +3157,7 @@ msgstr "" msgid "" "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" +"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 Services Operators." msgstr "" @@ -3765,21 +3166,15 @@ msgid "Lists all channel records" msgstr "" msgid "" -"Lists all channels currently in use on the IRC network, whether they\n" -"are registered or not.\n" -" \n" -"If pattern 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 pattern that have the +s or\n" -"+p mode." +"Lists all channels currently in use on the IRC network, whether they are registered or not.\n" +"\n" +"If pattern 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 pattern that have the +s or +p mode." msgstr "" msgid "" "Lists all channels you have access on.\n" -" \n" -"Channels that have the NOEXPIRE option set will be\n" -"prefixed by an exclamation mark. The nickname parameter is\n" -"limited to Services Operators" +"\n" +"Channels that have the NOEXPIRE option set will be prefixed by an exclamation mark. The nickname parameter is limited to Services Operators." msgstr "" msgid "Lists all nicknames in your group" @@ -3789,61 +3184,44 @@ msgid "Lists all registered channels matching the given pattern" msgstr "" msgid "" -"Lists all registered channels matching the given pattern.\n" -"Channels with the PRIVATE option set will only be\n" -"displayed to Services Operators with the proper access.\n" -"Channels with the NOEXPIRE option set will have\n" -"a ! 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 Services Operators.\n" -" \n" +"Lists all registered channels matching the given pattern. Channels with the PRIVATE option set will only be displayed to Services Operators with the proper access. Channels with the NOEXPIRE option set will have a ! 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 Services Operators.\n" +"\n" "Examples:\n" -" \n" -" LIST *anope*\n" +"\n" +" LIST*anope*\n" " Lists all registered channels with anope in their\n" " names (case insensitive).\n" -" \n" -" LIST * NOEXPIRE\n" +"\n" +" LIST*NOEXPIRE\n" " Lists all registered channels which have been set to not expire.\n" -" \n" +"\n" " LIST #51-100\n" " Lists all registered channels within the given range (51-100)." msgstr "" msgid "" -"Lists all registered nicknames which match the given\n" -"pattern, in nick!user@host format. Nicks with the PRIVATE\n" -"option set will only be displayed to Services Operators with the\n" -"proper access. Nicks with the NOEXPIRE option set will have\n" -"a ! prefixed to the nickname for Services Operators to see.\n" -" \n" +"Lists all registered nicknames which match the given pattern, in nick!user@host format. Nicks with the PRIVATE option set will only be displayed to Services Operators with the proper access. Nicks with the NOEXPIRE option set will have a ! 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 Services Operators.\n" -" \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 Services Operators.\n" +"\n" "Examples:\n" -" \n" +"\n" " LIST *!joeuser@foo.com\n" " Lists all registered nicks owned by joeuser@foo.com.\n" -" \n" +"\n" " LIST *Bot*!*@*\n" " Lists all registered nicks with Bot in their\n" " names (case insensitive).\n" -" \n" +"\n" " LIST * NOEXPIRE\n" " Lists all registered nicks which have been set to not expire.\n" -" \n" +"\n" " LIST #51-100\n" " Lists all registered nicks within the given range (51-100)." msgstr "" @@ -3852,20 +3230,13 @@ msgid "Lists all user records" msgstr "" msgid "" -"Lists all users currently online on the IRC network, whether their\n" -"nick is registered or not.\n" -" \n" -"If pattern is given, lists only users that match it (it must be in\n" -"the format nick!user@host[#realname]). If channel 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." +"Lists all users currently online on the IRC network, whether their nick is registered or not.\n" +"\n" +"If pattern is given, lists only users that match it (it must be in the format nick!user@host[#realname]). If channel is given, lists only users that are on the given channel. If INVISIBLE is specified, only users with the +i flag will be listed." msgstr "" msgid "" -"Lists any memos you currently have. With NEW, 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" +"Lists any memos you currently have. With NEW, 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" " LIST 2-5,7-9\n" " Lists memos numbered 2 through 5 and 7 through 9." msgstr "" @@ -3879,13 +3250,7 @@ msgstr "" msgid "Lists information about the specified registered channel" msgstr "" -msgid "" -"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." +msgid "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." msgstr "" msgid "Load a module" @@ -3930,17 +3295,11 @@ msgid "Logout from %s" msgstr "" #, c-format -msgid "" -"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." +msgid "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." msgstr "" #, c-format -msgid "" -"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." +msgid "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." msgstr "" #, c-format @@ -3949,28 +3308,24 @@ msgstr "" #, c-format msgid "" -"Mainly controls mode locks and mode access (which is different from channel access)\n" -"on a channel.\n" -" \n" -"The %s LOCK 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 SET\n" -"command will clear all existing mode locks and set the new one given, while ADD and DEL\n" -"modify the existing mode lock.\n" +"Mainly controls mode locks and mode access (which is different from channel access) on a channel.\n" +"\n" +"The %sLOCK 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 SET command will clear all existing mode locks and set the new one given, while ADD and DEL modify the existing mode lock.\n" +"\n" "Example:\n" -" MODE #channel LOCK ADD +bmnt *!*@*aol*\n" -" \n" -"The %s SET command allows you to set modes through services. Wildcards * and ? may\n" -"be given as parameters for list and status modes.\n" +" MODE#channelLOCKADD+bmnt*!*@*aol*\n" +"\n" +"\n" +"The %sSET command allows you to set modes through services. Wildcards * and ? may be given as parameters for list and status modes.\n" +"\n" "Example:\n" -" MODE #channel SET +v *\n" +" MODE#channelSET+v*\n" " Sets voice status to all users in the channel.\n" -" \n" -" MODE #channel SET -b ~c:*\n" +"\n" +" MODE#channelSET-b~c:*\n" " Clears all extended bans that start with ~c:\n" -" \n" -"The %s CLEAR command is an easy way to clear modes on a channel. what may be\n" -"any mode name. Examples include bans, excepts, inviteoverrides, ops, halfops, and voices. If what\n" -"is not given then all basic modes are removed." +"\n" +"The %sCLEAR command is an easy way to clear modes on a channel. what may be any mode name. Examples include bans, excepts, inviteoverrides, ops, halfops, and voices. If what is not given then all basic modes are removed." msgstr "" msgid "Maintain the AutoKick list" @@ -3980,56 +3335,47 @@ msgid "Maintains network bot list" msgstr "" #, c-format -msgid "" -"Maintains the %s list for a channel. Users who match an access entry\n" -"on the %s list receive the following privileges:\n" -" " +msgid "Maintains the %s list for a channel. Users who match an access entry on the %s list receive the following privileges:" msgstr "" #, c-format msgid "" -"Maintains the AutoKick list 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 AKICK ADD command adds the given nick or usermask\n" -"to the AutoKick list. If a reason 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 registered nick 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" +"Maintains the AutoKick list 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 AKICKADD command adds the given nick or usermask to the AutoKick list. If a reason 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 registered nick 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 AKICKDEL 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 AKICKLIST command displays the AutoKick list, or optionally only those AutoKick entries which match the given mask.\n" +"\n" +"The AKICKVIEW command is a more verbose version of the AKICKLIST command.\n" +"\n" +"The AKICKENFORCE command causes %s to enforce the current AKICK list by removing those users who match an AKICK mask.\n" +"\n" +"The AKICKCLEAR command clears all entries of the akick list." msgstr "" #, c-format msgid "" -"Maintains the access list 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." +"Maintains the access list 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 ACCESSADD 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 level 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." msgstr "" #, c-format msgid "" -"Maintains the bad words list 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 %s KICK %s.\n" -" \n" -"The ADD 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 word. If END is specified, a kick\n" -"will be done if a user says a word that ends with\n" -"word. If you don't specify anything, a kick will\n" -"be issued every time word is said by a user.\n" -" \n" +"Maintains the bad words list 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 %sKICK%s.\n" +"\n" +"The ADD 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 word. If END is specified, a kick will be done if a user says a word that ends with word. If you don't specify anything, a kick will be issued every time word is said by a user.\n" +"\n" +"The DEL 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 LIST 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" +" #channelLIST2-5,7-9\n" +" Lists bad words entries numbered 2 through 5 and\n" +" 7 through 9.\n" +"\n" +"The CLEAR command clears all entries from the bad words list." msgstr "" msgid "Maintains the bad words list" @@ -4038,9 +3384,7 @@ msgstr "" msgid "Makes the bot do the equivalent of a \"/me\" command" msgstr "" -msgid "" -"Makes the bot do the equivalent of a \"/me\" command\n" -"on the specified channel using the specified text." +msgid "Makes the bot do the equivalent of a \"/me\" command on the specified channel using the specified text." msgstr "" msgid "Makes the bot say the specified text on the specified channel" @@ -4049,18 +3393,10 @@ msgstr "" msgid "Makes the bot say the specified text on the specified channel." msgstr "" -msgid "" -"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." +msgid "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." msgstr "" -msgid "" -"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." +msgid "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." msgstr "" msgid "Manage DNS zones for this network" @@ -4192,12 +3528,20 @@ msgid "Modes cleared on %s and the channel destroyed." msgstr "" msgid "" -"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" +"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" +" CERTADD\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" +" CERTDEL<fingerprint>\n" +" Removes the fingerprint <fingerprint> from your certificate list.\n" +"\n" +" CERTLIST\n" +" Displays the current certificate list." msgstr "" #, c-format @@ -4254,6 +3598,9 @@ msgstr "" msgid "Multiple languages matched %s. Please be more specific." msgstr "" +msgid "NOTICE: In order to register a channel, you must have first registered your nickname." +msgstr "" + msgid "Name" msgstr "" @@ -4504,11 +3851,11 @@ msgid "None" msgstr "" #, c-format -msgid "" -"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." +msgid "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." +msgstr "" + +#, c-format +msgid "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." msgstr "" msgid "Nothing to do." @@ -4616,16 +3963,13 @@ msgid "Persistent" msgstr "" #, c-format -msgid "Please confirm that you want to drop %s with %s %s %s" +msgid "Please confirm that you want to drop %s with %s%s%s" msgstr "" msgid "Please contact an Operator to get a vhost assigned to this nick." msgstr "" -msgid "" -"Please try again with a more obscure password. Passwords should not be\n" -"something that could be easily guessed (e.g. your real name or your nick) and\n" -"cannot contain the space or tab characters.\n" +msgid "Please try again with a more obscure password. Passwords should not be something that could be easily guessed (e.g. your real name or your nick) and cannot contain the space or tab characters." msgstr "" msgid "Please use a valid server name when juping." @@ -4723,6 +4067,9 @@ msgstr "" msgid "Protection" msgstr "" +msgid "Protection after" +msgstr "" + #, c-format msgid "Protection delay must be between %s and %s." msgstr "" @@ -4739,10 +4086,7 @@ msgstr "" msgid "Protection is now on for %s." msgstr "" -msgid "" -"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." +msgid "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." msgstr "" msgid "RANDOMNEWS {ADD|DEL|LIST} [text|num]" @@ -4784,13 +4128,7 @@ msgstr "" msgid "Reason for %s updated." msgstr "" -msgid "" -"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." +msgid "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." msgstr "" msgid "Redefine the meanings of access levels" @@ -4803,15 +4141,11 @@ msgid "Regex is disabled." msgstr "" #, c-format -msgid "" -"Regex matches are also supported using the %s engine.\n" -"Enclose your mask in // if this is desired." +msgid "Regex matches are also supported using the %s engine. Enclose your mask in // if this is desired." msgstr "" #, c-format -msgid "" -"Regex matches are also supported using the %s engine.\n" -"Enclose your pattern in // if this is desired." +msgid "Regex matches are also supported using the %s engine. Enclose your pattern in // if this is desired." msgstr "" msgid "Register a channel" @@ -4841,38 +4175,18 @@ msgstr "" #, c-format msgid "" -"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." +"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." msgstr "" #, c-format msgid "" -"Registers your nickname in the %s database. Once\n" -"your nick is registered, you can use the SET and ACCESS\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 case matters! ANOPE, Anope, and\n" -"anope are all different passwords!)\n" -" \n" +"Registers your nickname in the %s database. Once your nick is registered, you can use the SET and ACCESS 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 case matters! ANOPE, Anope, and anope 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." +"\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." msgstr "" msgid "Registration is currently disabled." @@ -4890,9 +4204,7 @@ msgstr "" msgid "Releases a suspended channel" msgstr "" -msgid "" -"Releases a suspended channel. All data and settings\n" -"are preserved from before the suspension." +msgid "Releases a suspended channel. All data and settings are preserved from before the suspension." msgstr "" msgid "Reload a module" @@ -4923,9 +4235,7 @@ msgid "Removed server %s." msgstr "" #, c-format -msgid "" -"Removes %s status from the selected nicks on a channel. If nick is\n" -"not given, it will de%s you." +msgid "Removes %s status from the selected nicks on a channel. If nick is not given, it will de%s you." msgstr "" #, c-format @@ -4935,10 +4245,7 @@ msgstr "" msgid "Removes a selected nicks status from a channel" msgstr "" -msgid "" -"Removes a selected nicks status modes on a channel. If nick is\n" -"omitted then your status is removed. If channel is omitted then\n" -"your channel status is removed on every channel you are in." +msgid "Removes a selected nicks status modes on a channel. If nick is omitted then your status is removed. If channel is omitted then your channel status is removed on every channel you are in." msgstr "" #, c-format @@ -4951,10 +4258,7 @@ msgstr "" msgid "Request a vhost for your nick" msgstr "" -msgid "" -"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." +msgid "Request the given vhost to be activated for your nick by the network administrators. Please be patient while your request is being considered." msgstr "" msgid "Resend registration confirmation email" @@ -5055,15 +4359,15 @@ msgid "Secureops enforced on %s." msgstr "" #, c-format -msgid "" -"See %s for more information\n" -"about the access list." +msgid "See %s for more information about the access list." msgstr "" #, c-format -msgid "" -"See %s for more information\n" -"about the flags system." +msgid "See %s for more information about the flags system." +msgstr "" + +#, c-format +msgid "See the %s command (%sACCESS) for information on giving a subset of these privileges to other channel users." msgstr "" msgid "Send a memo to a nick or channel" @@ -5087,10 +4391,7 @@ msgstr "" msgid "Sends a memo and requests a read receipt" msgstr "" -msgid "" -"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." +msgid "Sends a passcode to the nickname with instructions on how to reset their password. Email must be the email address associated to the nickname." msgstr "" msgid "Sends all registered users a memo containing memo-text." @@ -5099,31 +4400,15 @@ msgstr "" msgid "Sends all services staff a memo containing memo-text." msgstr "" -msgid "" -"Sends the named nick or channel a memo containing\n" -"memo-text. 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." +msgid "Sends the named nick or channel a memo containing memo-text. When sending to a nickname, the recipient will receive a notice that they have a new memo. The target nickname/channel must be registered." msgstr "" -msgid "" -"Sends the named nick or channel a memo containing\n" -"memo-text. 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." +msgid "Sends the named nick or channel a memo containing memo-text. 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." msgstr "" msgid "" -"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 num. You can also give a list of numbers,\n" -"as in this example:\n" -" \n" +"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 num. You can also give a list of numbers, as in this example:\n" +"\n" " READ 2-5,7-9\n" " Displays memos numbered 2 through 5 and 7 through 9." msgstr "" @@ -5196,6 +4481,12 @@ msgstr "" msgid "Services Operator commands" msgstr "" +msgid "Services Operators can also drop any nickname without needing to identify for the nick, and may view the access list for any nickname." +msgstr "" + +msgid "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." +msgstr "" + msgid "Services are in DefCon mode, please try again later." msgstr "" @@ -5332,35 +4623,25 @@ msgstr "" #, c-format msgid "" -"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" -"ttb 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." +"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" +"ttb 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." msgstr "" #, c-format msgid "" -"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" -"BADWORDS command. Type %s BADWORDS for\n" -"more information.\n" -" \n" -"ttb 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." +"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 BADWORDS command. Type %sBADWORDS for more information.\n" +"\n" +"ttb 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." msgstr "" msgid "" -"Sets the ban type that will be used by services whenever\n" -"they need to ban someone from your channel.\n" -" \n" +"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" +"\n" "0: ban in the form *!user@host\n" "1: ban in the form *!*user@host\n" "2: ban in the form *!*@host\n" @@ -5368,111 +4649,74 @@ msgid "" msgstr "" msgid "" -"Sets the bolds kicker on or off. When enabled, this\n" -"option tells the bot to kick users who use bolds.\n" -" \n" -"ttb 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." +"Sets the bolds kicker on or off. When enabled, this option tells the bot to kick users who use bolds.\n" +"\n" +"ttb 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." msgstr "" #, c-format msgid "" -"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 min caps\n" -"and they constitute at least percent%% of the total\n" -"text line (if not given, it defaults to 10 characters\n" -"and 25%%).\n" -" \n" -"ttb 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." +"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 min caps and they constitute at least percent%% of the total text line (if not given, it defaults to 10 characters and 25%%).\n" +"\n" +"ttb 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." msgstr "" msgid "" -"Sets the colors kicker on or off. When enabled, this\n" -"option tells the bot to kick users who use colors.\n" -" \n" -"ttb 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." +"Sets the colors kicker on or off. When enabled, this option tells the bot to kick users who use colors.\n" +"\n" +"ttb 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." msgstr "" -msgid "" -"Sets the description for the channel, which shows up with\n" -"the LIST and INFO commands." +msgid "Sets the description for the channel, which shows up with the LIST and INFO commands." msgstr "" msgid "" -"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 ln lines in secs seconds\n" -"(if not given, it defaults to 6 lines in 10 seconds).\n" -" \n" -"ttb 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." +"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 ln lines in secs seconds (if not given, it defaults to 6 lines in 10 seconds). \n" +"\n" +"ttb 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." msgstr "" msgid "" -"Sets the italics kicker on or off. When enabled, this\n" -"option tells the bot to kick users who use italics.\n" -" \n" -"ttb 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." +"Sets the italics kicker on or off. When enabled, this option tells the bot to kick users who use italics. \n" +"\n" +"ttb 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." msgstr "" msgid "" -"Sets the repeat kicker on or off. When enabled, this\n" -"option tells the bot to kick users who are repeating\n" -"themselves num times (if num is not given, it\n" -"defaults to 3).\n" -" \n" -"ttb 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." +"Sets the repeat kicker on or off. When enabled, this option tells the bot to kick users who are repeating themselves num times (if num is not given, it defaults to 3).\n" +"\n" +"ttb 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." msgstr "" msgid "" -"Sets the reverses kicker on or off. When enabled, this\n" -"option tells the bot to kick users who use reverses.\n" -" \n" -"ttb 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." +"Sets the reverses kicker on or off. When enabled, this option tells the bot to kick users who use reverses. \n" +"\n" +"ttb 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." msgstr "" -msgid "" -"Sets the underlines kicker on or off. When enabled, this\n" -"option tells the bot to kick users who use underlines.\n" -" \n" -"ttb 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." +msgid "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." msgstr "" msgid "" -"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." +"Sets the underlines kicker on or off. When enabled, this option tells the bot to kick users who use underlines. \n" +"\n" +"ttb 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." msgstr "" msgid "" -"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." +"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." +msgstr "" + +msgid "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." msgstr "" msgid "" -"Sets various global services options. Option names\n" -"currently defined are:\n" +"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" @@ -5483,14 +4727,14 @@ msgstr "" #, c-format msgid "" "Sets various memo options. option can be one of:\n" -" \n" +"\n" " NOTIFY Changes when you will be notified about\n" " new memos (only for nicknames)\n" +"\n" " LIMIT Sets the maximum number of memos you can\n" " receive\n" -" \n" -"Type %s option for more information\n" -"on a specific option." +"\n" +"Type %soption for more information on a specific option." msgstr "" msgid "Sets various nickname options. option can be one of:" @@ -5499,41 +4743,28 @@ msgstr "" msgid "Sets whether services should set channel status modes on you automatically." msgstr "" -msgid "" -"Sets whether the given channel will expire. Setting this\n" -"to ON prevents the channel from expiring." +msgid "Sets whether the given channel will expire. Setting this to ON prevents the channel from expiring." msgstr "" msgid "Sets whether the given nickname can be added to a channel access list." msgstr "" #, c-format -msgid "" -"Sets whether the given nickname will be given its status modes\n" -"in channels automatically. Set to ON 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." +msgid "Sets whether the given nickname will be given its status modes in channels automatically. Set to ON 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." msgstr "" -msgid "" -"Sets whether the given nickname will expire. Setting this\n" -"to ON prevents the nickname from expiring." +msgid "Sets whether the given nickname will expire. Setting this to ON prevents the nickname from expiring." msgstr "" msgid "Sets whether you can be added to a channel access list." msgstr "" #, c-format -msgid "" -"Sets whether you will be given your channel status modes automatically.\n" -"Set to ON 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." +msgid "Sets whether you will be given your channel status modes automatically. Set to ON 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." msgstr "" #, c-format -msgid "Setting %s not known. Type %s LEVELS for a list of valid settings." +msgid "Setting %s not known. Type %sLEVELS for a list of valid settings." msgstr "" msgid "Setting for DEBUG must be ON, OFF, or a positive number." @@ -5566,9 +4797,7 @@ msgid "Signed kick option for %s is now off." msgstr "" #, c-format -msgid "" -"Signed kick option for %s is now on, but depends of the\n" -"level of the user that is using the command." +msgid "Signed kick option for %s is now on, but depends of the level of the user that is using the command." msgstr "" #, c-format @@ -5675,11 +4904,7 @@ msgstr "" msgid "Suspended on" msgstr "" -msgid "" -"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." +msgid "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." msgstr "" msgid "Suspension expires" @@ -5688,9 +4913,7 @@ msgstr "" msgid "Sync users channel modes" msgstr "" -msgid "" -"Syncs all modes set on users on the channel with the modes\n" -"they should have based on their access." +msgid "Syncs all modes set on users on the channel with the modes they should have based on their access." msgstr "" msgid "Syncs the vhost for all nicks in a group" @@ -5702,167 +4925,122 @@ msgstr "" #, c-format msgid "" "Syntax: %s\n" -" \n" +"\n" "Lists all nicks in your group." msgstr "" #, c-format msgid "" "Syntax: %s [nickname]\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" +"\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 Services Operators." msgstr "" msgid "" "Syntax: DEBUG {ON | OFF}\n" -" \n" +"\n" "Sets debug mode on or off.\n" -" \n" -"This option is equivalent to the command-line option\n" -"--debug." +"\n" +"This option is equivalent to the command-line option --debug." msgstr "" #, c-format msgid "" "Syntax: LIMIT [channel] limit\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." +"\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." msgstr "" #, c-format msgid "" "Syntax: LIMIT [user | channel] {limit | NONE} [HARD]\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 NONE 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 HARD prevents the user from changing the limit. Not\n" -"adding HARD has the opposite effect, allowing the user to\n" -"change the limit (even if a previous limit was set with\n" -"HARD).\n" -" \n" -"This use of the SET LIMIT command is limited to Services\n" -"Operators. 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." +"\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 NONE 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 HARD prevents the user from changing the limit. Not adding HARD has the opposite effect, allowing the user to change the limit (even if a previous limit was set with HARD).\n" +"\n" +"This use of the SETLIMIT command is limited to Services Operators. 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." msgstr "" #, c-format msgid "" "Syntax: LIST\n" -" \n" +"\n" "Display the various %s settings." msgstr "" msgid "" "Syntax: NOEXPIRE {ON | OFF}\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" -"--noexpire." +"\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 --noexpire." msgstr "" msgid "" "Syntax: NOTIFY {ON | LOGON | NEW | MAIL | NOMAIL | OFF}\n" -" \n" +"\n" "Changes when you will be notified about new memos:\n" -" \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" +"\n" "ON is essentially LOGON and NEW combined." msgstr "" msgid "" "Syntax: READONLY {ON | OFF}\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" -"--readonly." +"\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 --readonly." msgstr "" msgid "" "Syntax: SUPERADMIN {ON | OFF}\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 not persistent, and should only be used when\n" -"needed, and set back to OFF when no longer needed." +"\n" +"Setting this will grant you extra privileges such as the ability to be \"founder\" on all channels, etc...\n" +"\n" +"This option is not persistent, and should only be used when needed, and set back to OFF when no longer needed." msgstr "" #, c-format -msgid "" -"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 REGISTER\n" -"command." +msgid "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 REGISTER command." msgstr "" #, c-format msgid "" -"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." +"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." msgstr "" #, c-format msgid "" -"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." +"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." msgstr "" -msgid "" -"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 SQUIT. 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." +msgid "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 SQUIT. 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." msgstr "" msgid "Tells you about the last time a user was seen" @@ -5877,163 +5055,112 @@ msgstr "" msgid "Text" msgstr "" -msgid "" -"The ACCESS ADD 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 level 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." -msgstr "" - -msgid "" -"The ACCESS DEL 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." -msgstr "" - -msgid "" -"The ACCESS LIST 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" -" ACCESS #channel LIST 2-5,7-9\n" -" Lists access entries numbered 2 through 5 and\n" -" 7 through 9.\n" -" \n" -"The ACCESS VIEW command displays the access list similar\n" -"to ACCESS LIST but shows the creator and last used time.\n" -" \n" -"The ACCESS CLEAR command clears all entries of the\n" -"access list." -msgstr "" - -msgid "The CLEAR command clears the channel access list. This requires channel founder access." -msgstr "" - #, c-format msgid "" -"The CLEAR command lets you clean the database by removing all entries from the\n" -"database that were added within time.\n" -" \n" -"Example:\n" -" %s CLEAR 30m\n" -" Will remove all entries that were added within the last 30 minutes." +"The %sADD command adds the given nickname to the %s list.\n" +"\n" +"The %sDEL 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 %sLIST 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" +" %s#channelLIST2-5,7-9\n" +" Lists %s entries numbered 2 through 5 and\n" +" 7 through 9.\n" +"\n" +"The %sCLEAR command clears all entries of the %s list." msgstr "" msgid "" -"The DEL 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 LIST 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" -"only those entries are shown; for example:\n" -" #channel LIST 2-5,7-9\n" -" Lists bad words entries numbered 2 through 5 and\n" +"The ACCESSDEL 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 ACCESSLIST 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" +" ACCESS#channelLIST2-5,7-9\n" +" Lists access entries numbered 2 through 5 and\n" " 7 through 9.\n" -" \n" -"The CLEAR command clears all entries from the\n" -"bad words list." +"\n" +"The ACCESSVIEW command displays the access list similar to ACCESSLIST but shows the creator and last used time.\n" +"\n" +"The ACCESSCLEAR command clears all entries of the access list." msgstr "" msgid "" -"The ENTRYMSG ADD command adds the given message to\n" -"the list of messages shown to users when they join\n" -"the channel." +"The AKILLDEL 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 AKILLLIST 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" +" AKILLLIST2-5,7-9\n" +" Lists AKILL entries numbered 2 through 5 and 7\n" +" through 9.\n" +"\n" +"AKILLVIEW is a more verbose version of AKILLLIST, 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" +"AKILLCLEAR clears all entries of the AKILL list." msgstr "" +#, c-format msgid "" -"The ENTRYMSG CLEAR command clears all entries from\n" -"the list of messages shown to users when they join\n" -"the channel, effectively disabling entry messages." +"The LEVELS 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 SETFOUNDER and this command are always restricted to the channel founder).\n" +"\n" +"LEVELSSET allows the access level for a function or group of functions to be changed. LEVELSDISABLE (or DIS 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 LEVELSSET founder to make a level founder only.\n" +"\n" +"LEVELSLIST shows the current levels for each function or group of functions. LEVELSRESET 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 HELPLEVELSDESC." msgstr "" msgid "" -"The ENTRYMSG DEL 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." +"The SNLINEDEL 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 SNLINELIST 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" +" SNLINELIST2-5,7-9\n" +" Lists SNLINE entries numbered 2 through 5 and 7\n" +" through 9.\n" +"\n" +"SNLINEVIEW is a more verbose version of SNLINELIST, 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" +"SNLINECLEAR clears all entries of the SNLINE list." msgstr "" msgid "" -"The ENTRYMSG LIST command displays a listing of messages\n" -"shown to users when they join the channel." +"The SQLINEDEL 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 SQLINELIST 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" +" SQLINELIST2-5,7-9\n" +" Lists SQLINE entries numbered 2 through 5 and 7\n" +" through 9.\n" +"\n" +"SQLINEVIEW is a more verbose version of SQLINELIST, 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" +"SQLINECLEAR clears all entries of the SQLINE list." msgstr "" #, c-format msgid "" -"The LEVELS 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 SET FOUNDER and this command\n" -"are always restricted to the channel founder.)\n" -" \n" -"LEVELS SET allows the access level for a function or group of\n" -"functions to be changed. LEVELS DISABLE (or DIS 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 LEVELS SET founder to make a level\n" -"founder only.\n" -" \n" -"LEVELS LIST shows the current levels for each function or\n" -"group of functions. LEVELS RESET 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 HELP LEVELS DESC." -msgstr "" - -msgid "" -"The LIST 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." -msgstr "" - -msgid "" -"The MODIFY 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." -msgstr "" - -msgid "The STATS command prints out statistics about stored nicks and memory usage." +"The STATS command prints out statistics about stored nicks and memory usage.\n" +"\n" +"The CLEAR command lets you clean the database by removing all entries from the database that were added within time.\n" +"\n" +"Example:\n" +" %sCLEAR30m\n" +" Will remove all entries that were added within the last 30 minutes." msgstr "" -msgid "" -"The email parameter is optional and will set the email\n" -"for your nick immediately. You may also wish to SET HIDE it\n" -"after registering if it isn't the default setting already." +msgid "The email parameter is optional and will set the email for your nick immediately. You may also wish to SETHIDE it after registering if it isn't the default setting already." msgstr "" #, c-format msgid "" -"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, command must be a command name, and method\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" +"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, command must be a command name, and method 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. 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" +"\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." +" %s#anopechanserv/accessMESSAGE@\n" +" Would message any channel operators whenever someone used the ACCESS command on ChanServ on the channel." msgstr "" #, c-format @@ -6051,13 +5178,7 @@ msgstr "" msgid "The Defcon level is now at: %d" msgstr "" -msgid "The available flags are:" -msgstr "" - -msgid "" -"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." +msgid "The defcon system can be used to implement a pre-defined set of restrictions to services useful during an attempted attack on the network." msgstr "" #, c-format @@ -6081,9 +5202,7 @@ msgstr "" msgid "The following feature/function names are available:" msgstr "" -msgid "" -"The given mask may also be a channel, which will use the\n" -"access list from the other channel up to the given level." +msgid "The given mask may also be a channel, which will use the access list from the other channel up to the given level." msgstr "" #, c-format @@ -6167,18 +5286,14 @@ msgstr "" msgid "The session exception list is empty." msgstr "" -msgid "" -"The user with your nick has been removed. Use this command again\n" -"to release services's hold on your nick." +msgid "The user with your nick has been removed. Use this command again to release services's hold on your nick." msgstr "" #, c-format msgid "There are %zu memos on channel %s." msgstr "" -msgid "" -"There are no bots available at this time.\n" -"Ask a Services Operator to create one!" +msgid "There are no bots available at this time. Ask a Services Operator to create one!" msgstr "" msgid "There are no configured servers." @@ -6200,9 +5315,7 @@ msgid "There is %zu memo on channel %s." msgstr "" #, c-format -msgid "" -"There is a new memo on channel %s.\n" -"Type %s %s %zu to read it." +msgid "There is a new memo on channel %s. Type %s%s%zu to read it." msgstr "" #, c-format @@ -6243,33 +5356,21 @@ msgid "This channel may not be used." msgstr "" msgid "" -"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" -"ADDZONE adds a zone, eg us.yournetwork.tld. Servers can then be added to this\n" -"zone with the ADDSERVER command.\n" -" \n" -"The ADDSERVER 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" +"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" +"ADDZONE adds a zone, eg us.yournetwork.tld. Servers can then be added to this zone with the ADDSERVER command.\n" +"\n" +"The ADDSERVER 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 ADDIP command associates an IP with a server.\n" -" \n" +"\n" "The POOL and DEPOOL commands actually add and remove servers to their given zones." msgstr "" -msgid "" -"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." +msgid "This command allows users to set the vhost of their CURRENT nick to be the vhost for all nicks in the same group." msgstr "" -msgid "" -"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." +msgid "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." msgstr "" #, c-format @@ -6277,68 +5378,39 @@ msgid "This command is an alias to the command %s." msgstr "" msgid "" -"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." +"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." msgstr "" msgid "This command lists information about the specified loaded module." msgstr "" -msgid "" -"This command lists registered vhosts to the operator.\n" -"If a key is specified, only entries whose nick or vhost match\n" -"the pattern given in key are displayed e.g. Rob* for all\n" -"entries beginning with \"Rob\"\n" -"If a #X-Y style is used, only entries between the range of X\n" -"and Y will be displayed, e.g. #1-3 will display the first 3\n" -"nick/vhost entries." +msgid "This command lists registered vhosts to the operator. If a key is specified, only entries whose nick or vhost match the pattern given in key are displayed e.g. Rob* for all entries beginning with \"Rob\". If a #X-Y style is used, only entries between the range of X and Y will be displayed, e.g. #1-3 will display the first 3 nick/vhost entries." msgstr "" -msgid "" -"This command loads the module named modname from the modules\n" -"directory." +msgid "This command loads the module named modname from the modules directory." msgstr "" msgid "" -"This command makes your nickname join the target nickname's\n" -"group. password 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" +"This command makes your nickname join the target nickname's group. password 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" "Note: all the nicknames of a group have the same password." msgstr "" -msgid "" -"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." +msgid "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." msgstr "" msgid "This command may not be used on this network because nickname ownership is disabled." @@ -6351,33 +5423,18 @@ msgid "This command retrieves the vhost requests." msgstr "" msgid "" -"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" +"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" -" LOGSEARCH +21d +500l Anope\n" +" LOGSEARCH+21d+500lAnope\n" " Searches the last 21 days worth of logs for messages\n" " containing Anope and lists the most recent 500 of them." msgstr "" -msgid "" -"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." +msgid "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." msgstr "" -msgid "" -"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." +msgid "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." msgstr "" msgid "This command unloads the module named modname." @@ -6395,9 +5452,7 @@ msgid "This nickname has been recovered by %s." msgstr "" #, c-format -msgid "" -"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." +msgid "This nickname has been recovered by %s. If you did not do this then %s may have your password, and you should change it." msgstr "" msgid "This nickname has been registered; you may not use it." @@ -6407,10 +5462,13 @@ msgid "This nickname is suspended." msgstr "" #, c-format -msgid "" -"This nickname is registered and protected. If it is your\n" -"nick, type %s password. Otherwise,\n" -"please choose a different nick." +msgid "This nickname is registered and protected. If it is your nick, type %spassword. Otherwise, please choose a different nick." +msgstr "" + +msgid "This option makes a channel unassignable. If a bot is already assigned to the channel, it is unassigned automatically when you enable it." +msgstr "" + +msgid "This option prevents a bot from being assigned to a channel by users that aren't IRC Operators." msgstr "" #, c-format @@ -6427,9 +5485,7 @@ msgstr "" msgid "To protect voices against bot kicks" msgstr "" -msgid "" -"To search for channels starting with #, search for the channel\n" -"name without the #-sign prepended (anope instead of #anope)." +msgid "To search for channels starting with #, search for the channel name without the #-sign prepended (anope instead of #anope)." msgstr "" #, c-format @@ -6478,37 +5534,19 @@ msgid "Turn protection on or off" msgstr "" #, c-format -msgid "" -"Turns %s's privacy option on or off for the nick.\n" -"With PRIVATE set, the nickname will not appear in\n" -"nickname lists generated with %s's LIST command.\n" -"(However, anyone who knows the nickname can still get\n" -"information on it using the INFO command.)" +msgid "Turns %s's privacy option on or off for the nick. With PRIVATE set, the nickname will not appear in nickname lists generated with %s's LIST command. (However, anyone who knows the nickname can still get information on it using the INFO command.)" msgstr "" #, c-format -msgid "" -"Turns %s's privacy option on or off for your nick.\n" -"With PRIVATE set, your nickname will not appear in\n" -"nickname lists generated with %s's LIST command.\n" -"(However, anyone who knows your nickname can still get\n" -"information on it using the INFO command.)" +msgid "Turns %s's privacy option on or off for your nick. With PRIVATE set, your nickname will not appear in nickname lists generated with %s's LIST command. (However, anyone who knows your nickname can still get information on it using the INFO command.)" msgstr "" #, c-format -msgid "" -"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." +msgid "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." msgstr "" #, c-format -msgid "" -"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." +msgid "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." msgstr "" msgid "Turns chanstats channel statistics ON or OFF for this user." @@ -6521,35 +5559,26 @@ msgid "Type" msgstr "" #, c-format -msgid "Type %s email in order to set your email." +msgid "Type %scommand for help on any of the above commands." msgstr "" #, c-format -msgid "" -"Type %s option for more information\n" -"on a specific option." +msgid "Type %soption for more information on a particular option." msgstr "" #, c-format -msgid "" -"Type %s option for more information\n" -"on a specific option.\n" -" \n" -"Note: access to this command is controlled by the\n" -"level SET." +msgid "Type %soption for more information on a specific option." msgstr "" #, c-format msgid "" -"Type %s option for more information\n" -"on a specific option. The options will be set on the given\n" -"nickname." +"Type %soption for more information on a specific option.\n" +"\n" +"Note: access to this command is controlled by the level SET." msgstr "" #, c-format -msgid "" -"Type %s option for more information on a\n" -"particular option." +msgid "Type %soption for more information on a specific option. The options will be set on the given nickname." msgstr "" msgid "Un-Load a module" @@ -6570,12 +5599,7 @@ msgstr "" msgid "Unassigns a bot from a channel" msgstr "" -msgid "" -"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." +msgid "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." msgstr "" msgid "Underlines kicker" @@ -6619,14 +5643,10 @@ msgstr "" msgid "Unpooled" msgstr "" -msgid "" -"Unregisters the named channel. Can only be used by\n" -"the channel founder." +msgid "Unregisters the named channel. Can only be used by the channel founder." msgstr "" -msgid "" -"Unregisters the specified channel. Only Services Operators\n" -"can drop a channel of which they are not the founder of." +msgid "Unregisters the specified channel. Only Services Operators can drop a channel of which they are not the founder of." msgstr "" msgid "Unsuspend a given nick" @@ -6635,10 +5655,7 @@ msgstr "" msgid "Unsuspends a nickname which allows it to be used again." msgstr "" -msgid "" -"Updates a selected nicks status modes on a channel. If nick is\n" -"omitted then your status is updated. If channel is omitted then\n" -"your channel status is updated on every channel you are in." +msgid "Updates a selected nicks status modes on a channel. If nick is omitted then your status is updated. If channel is omitted then your channel status is updated on every channel you are in." msgstr "" msgid "Updates a selected nicks status on a channel" @@ -6647,10 +5664,7 @@ msgstr "" msgid "Updates your current status, i.e. it checks for new memos" msgstr "" -msgid "" -"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)." +msgid "Updates your current status, i.e. it checks for new memos, sets needed channel modes and updates your vhost and your userflags (lastseentime, etc)." msgstr "" msgid "Updating databases." @@ -6665,7 +5679,7 @@ msgid "Uplink server: %s" msgstr "" #, c-format -msgid "Use the %s ALL command to list all commands and their descriptions." +msgid "Use the %sALL command to list all commands and their descriptions." msgstr "" msgid "Used on" @@ -6768,54 +5782,36 @@ msgid "Watch your language!" msgstr "" #, c-format -msgid "" -"When private is set, the channel will not appear in\n" -"%s's %s command." +msgid "When private is set, the channel will not appear in %s's %s command." msgstr "" msgid "" -"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 Services\n" -"Operators." +"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 Services Operators." msgstr "" msgid "" -"Without a parameter, reverses the effect of the IDENTIFY\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 REVALIDATE as well, services will ask the given nick\n" -"to re-identify. This is limited to Services Operators." +"Without a parameter, reverses the effect of the IDENTIFY 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 REVALIDATE as well, services will ask the given nick to re-identify. This is limited to Services Operators." msgstr "" msgid "" -"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 AKILL option, displays the current size of the\n" -"AKILL list and the current default expiry time.\n" -" \n" -"The RESET option currently resets the maximum user count\n" -"to the number of users currently present on the network.\n" -" \n" -"The PASSWORD option displays the encryption algorithms used\n" -"for user passwords.\n" -" \n" -"The UPLINK option displays information about the current\n" -"server Anope uses as an uplink to the network.\n" -" \n" +"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 AKILL option, displays the current size of the AKILL list and the current default expiry time.\n" +"\n" +"The RESET option currently resets the maximum user count to the number of users currently present on the network.\n" +"\n" +"The PASSWORD option displays the encryption algorithms used for user passwords. \n" +"\n" +"The UPLINK option displays information about the current server Anope uses as an uplink to the network.\n" +"\n" "The HASH option displays information about the hash maps.\n" -" \n" +"\n" "The ALL option displays all of the above statistics." msgstr "" @@ -6969,9 +5965,7 @@ msgstr[0] "" msgstr[1] "" #, c-format -msgid "" -"You have a new memo from %s.\n" -"Type %s %zu to read it." +msgid "You have a new memo from %s. Type %s%zu to read it." msgstr "" #, c-format @@ -7076,10 +6070,8 @@ msgstr "" msgid "You must have the %s(ME) privilege on the channel to use this command." msgstr "" -msgid "" -"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." +#, c-format +msgid "You must now supply an email for your nick. This email will allow you to retrieve your password in case you forget it. Type %semail in order to set your email." msgstr "" #, c-format 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; } }; |