diff options
author | Adam <Adam@anope.org> | 2011-06-17 19:57:43 -0400 |
---|---|---|
committer | Adam <Adam@anope.org> | 2011-06-17 19:57:43 -0400 |
commit | a1b36ec0a527e6d7a9d224b56bf9571619d5f92e (patch) | |
tree | 5e74290f46205ef1ad86700e1f04ec016b1f66fd | |
parent | 48e995ddf2cd30a05222a51e665c02b1e7ae567a (diff) |
Search all domains for language strings, fixes the mess that we used to use to translate strings in 3rd party modules
63 files changed, 762 insertions, 628 deletions
diff --git a/include/extern.h b/include/extern.h index 8aa5428a7..91312d1ab 100644 --- a/include/extern.h +++ b/include/extern.h @@ -93,12 +93,12 @@ E void pmodule_ircd_message(IRCdMessage *message); /**** language.cpp ****/ E std::vector<Anope::string> languages; +E std::vector<Anope::string> domains; E void InitLanguages(); -E const Anope::string GetString(NickCore *nc, const char *string); -E const Anope::string GetString(const Anope::string &domain, const Anope::string &lang, const char *string); -E void PushLanguage(const Anope::string &, Anope::string); -E void PopLanguage(); -E const char *anope_gettext(const char *string); +E const char *translate(const char *string); +E const char *translate(User *u, const char *string); +E const char *translate(NickCore *nc, const char *string); +E const char *anope_gettext(const char *lang, const char *string); E void SyntaxError(CommandSource &source, const Anope::string &command, const Anope::string &message); /**** main.c ****/ diff --git a/include/language.h b/include/language.h index e8d69aaf0..efddc0a34 100644 --- a/include/language.h +++ b/include/language.h @@ -6,107 +6,107 @@ * Please read COPYING and README for further details. */ -#define MORE_INFO gtl("\002%s%s HELP %s\002 for more information.") -#define BAD_USERHOST_MASK gtl("Mask must be in the form \037user\037@\037host\037.") -#define BAD_EXPIRY_TIME gtl("Invalid expiry time.") -#define USERHOST_MASK_TOO_WIDE gtl("%s coverage is too wide; Please use a more specific mask.") -#define READ_ONLY_MODE gtl("Services are in read-only mode!") -#define PASSWORD_INCORRECT gtl("Password incorrect.") -#define ACCESS_DENIED gtl("Access denied.") -#define MORE_OBSCURE_PASSWORD gtl("Please try again with a more obscure password. Passwords should be at least\n \ +#define MORE_INFO _("\002%s%s HELP %s\002 for more information.") +#define BAD_USERHOST_MASK _("Mask must be in the form \037user\037@\037host\037.") +#define BAD_EXPIRY_TIME _("Invalid expiry time.") +#define USERHOST_MASK_TOO_WIDE _("%s coverage is too wide; Please use a more specific mask.") +#define READ_ONLY_MODE _("Services are 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 be at least\n \ five characters long, should not be something easily guessed\n \ (e.g. your real name or your nick), and cannot contain the space or tab characters.") -#define PASSWORD_TOO_LONG gtl("Your password is too long. Please try again with a shorter password.") -#define NICK_NOT_REGISTERED gtl("Your nick isn't registered.") -#define NICK_X_NOT_REGISTERED gtl("Nick \002%s\002 isn't registered.") -#define NICK_X_NOT_IN_USE gtl("Nick \002%s\002 isn't currently in use.") -#define NICK_X_NOT_ON_CHAN gtl("\002%s\002 is not currently on channel %s.") -#define NICK_X_SUSPENDED gtl("Nick %s is currently suspended.") -#define CHAN_X_SUSPENDED gtl("Channel %s is currently suspended.") -#define CHAN_X_NOT_REGISTERED gtl("Channel \002%s\002 isn't registered.") -#define CHAN_X_NOT_IN_USE gtl("Channel \002%s\002 doesn't exist.") -#define NICK_IDENTIFY_REQUIRED gtl("Password authentication required for that command.\n" \ +#define PASSWORD_TOO_LONG _("Your password is too long. Please try again with a shorter password.") +#define NICK_NOT_REGISTERED _("Your nick isn't registered.") +#define NICK_X_NOT_REGISTERED _("Nick \002%s\002 isn't registered.") +#define NICK_X_NOT_IN_USE _("Nick \002%s\002 isn't currently in use.") +#define NICK_X_NOT_ON_CHAN _("\002%s\002 is not currently on channel %s.") +#define NICK_X_SUSPENDED _("Nick %s is currently suspended.") +#define CHAN_X_SUSPENDED _("Channel %s is currently suspended.") +#define CHAN_X_NOT_REGISTERED _("Channel \002%s\002 isn't registered.") +#define CHAN_X_NOT_IN_USE _("Channel \002%s\002 doesn't exist.") +#define NICK_IDENTIFY_REQUIRED _("Password authentication required for that command.\n" \ "Retry after typing \002%s%s IDENTIFY \037password\037\002.") -#define MAIL_X_INVALID gtl("\002%s\002 is not a valid e-mail address.") -#define NO_REASON gtl("No reason") -#define UNKNOWN gtl("<unknown>") -#define NO_EXPIRE gtl("does not expire") -#define END_OF_ANY_LIST gtl("End of \002%s\002 list.") -#define LIST_INCORRECT_RANGE gtl("Incorrect range specified. The correct syntax is \002#\037from\037-\037to\037\002.") -#define UNKNOWN_OPTION gtl("Unknown option \002%s\002.\n" \ +#define MAIL_X_INVALID _("\002%s\002 is not a valid e-mail address.") +#define NO_REASON _("No reason") +#define UNKNOWN _("<unknown>") +#define NO_EXPIRE _("does not expire") +#define END_OF_ANY_LIST _("End of \002%s\002 list.") +#define LIST_INCORRECT_RANGE _("Incorrect range specified. The correct syntax is \002#\037from\037-\037to\037\002.") +#define UNKNOWN_OPTION _("Unknown option \002%s\002.\n" \ "Type %s%s HELP %s for more information.") -#define NICK_IS_REGISTERED gtl("This nick is owned by someone else. Please choose another.\n" \ +#define NICK_IS_REGISTERED _("This nick is owned by someone else. Please choose another.\n" \ "(If this is your nick, type \002%s%s IDENTIFY \037password\037\002.)") -#define NICK_IS_SECURE gtl("This nickname is registered and protected. If it is your\n" \ +#define NICK_IS_SECURE _("This nickname is registered and protected. If it is your\n" \ "nick, type \002%s%s IDENTIFY \037password\037\002. Otherwise,\n" \ "please choose a different nick.") -#define FORCENICKCHANGE_NOW gtl("This nickname has been registered; you may not use it.") -#define NICK_CANNOT_BE_REGISTERED gtl("Nickname \002%s\002 may not be registered.") -#define NICK_ALREADY_REGISTERED gtl("Nickname \002%s\002 is already registered!") -#define NICK_SET_SYNTAX gtl("SET \037option\037 \037parameters\037") -#define NICK_SET_DISABLED gtl("Sorry, nickname option setting is temporarily disabled.") -#define NICK_SET_UNKNOWN_OPTION gtl("Unknown SET option \002%s%s\002.") -#define NICK_SET_DISPLAY_CHANGED gtl("The new display is now \002%s\002.") -#define NICK_SASET_SYNTAX gtl("SASET \037nickname\037 \037option\037 \037parameters\037") -#define NICK_SASET_DISPLAY_INVALID gtl("The new display for \002%s\002 MUST be a nickname of the nickname group!") -#define NICK_SASET_PASSWORD_FAILED gtl("Sorry, couldn't change password for \002%s\002.") -#define NICK_SASET_PASSWORD_CHANGED gtl("Password for \002%s\002 changed.") -#define NICK_SASET_PASSWORD_CHANGED_TO gtl("Password for \002%s\002 changed to \002%s\002.") -#define NICK_INFO_OPTIONS gtl(" Options: %s") -#define NICK_LIST_SYNTAX gtl("LIST \037pattern\037") -#define LIST_HEADER gtl("List of entries matching \002%s\002:") -#define NICK_RECOVERED gtl("User claiming your nick has been killed.\n" \ +#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.") +#define NICK_ALREADY_REGISTERED _("Nickname \002%s\002 is already registered!") +#define NICK_SET_SYNTAX _("SET \037option\037 \037parameters\037") +#define NICK_SET_DISABLED _("Sorry, nickname option setting is temporarily disabled.") +#define NICK_SET_UNKNOWN_OPTION _("Unknown SET option \002%s%s\002.") +#define NICK_SET_DISPLAY_CHANGED _("The new display is now \002%s\002.") +#define NICK_SASET_SYNTAX _("SASET \037nickname\037 \037option\037 \037parameters\037") +#define NICK_SASET_DISPLAY_INVALID _("The new display for \002%s\002 MUST be a nickname of the nickname group!") +#define NICK_SASET_PASSWORD_FAILED _("Sorry, couldn't change password for \002%s\002.") +#define NICK_SASET_PASSWORD_CHANGED _("Password for \002%s\002 changed.") +#define NICK_SASET_PASSWORD_CHANGED_TO _("Password for \002%s\002 changed to \002%s\002.") +#define NICK_INFO_OPTIONS _(" Options: %s") +#define NICK_LIST_SYNTAX _("LIST \037pattern\037") +#define LIST_HEADER _("List of entries matching \002%s\002:") +#define NICK_RECOVERED _("User claiming your nick has been killed.\n" \ "\002%s%s RELEASE %s\002 to get it back before %s timeout.") -#define NICK_REQUESTED gtl("This nick has already been requested, please check your e-mail address for the pass code") -#define NICK_CONFIRM_INVALID gtl("Invalid passcode has been entered, please check the e-mail again, and retry") -#define CHAN_NOT_ALLOWED_TO_JOIN gtl("You are not permitted to be on this channel.") -#define CHAN_X_INVALID gtl("Channel %s is not a valid channel.") -#define CHAN_REACHED_CHANNEL_LIMIT gtl("Sorry, you have already reached your limit of \002%d\002 channels.") -#define CHAN_EXCEEDED_CHANNEL_LIMIT gtl("Sorry, you have already exceeded your limit of \002%d\002 channels.") -#define CHAN_SYMBOL_REQUIRED gtl("Please use the symbol of \002#\002 when attempting to register") -#define CHAN_SASET_SYNTAX gtl("SASET \002channel\002 \037option\037 \037parameters\037") -#define CHAN_SET_SYNTAX gtl("SET \037channel\037 \037option\037 \037parameters\037") -#define CHAN_SET_DISABLED gtl("Sorry, channel option setting is temporarily disabled.") -#define CHAN_SETTING_CHANGED gtl("%s for %s set to %s.") -#define CHAN_SETTING_UNSET gtl("%s for %s unset.") -#define CHAN_SET_MLOCK_DEPRECATED gtl("MLOCK is deprecated. Use \002%s%s HELP MODE\002 instead.") -#define CHAN_ACCESS_LEVEL_RANGE gtl("Access level must be between %d and %d inclusive.") -#define CHAN_ACCESS_LIST_HEADER gtl("Access list for %s:\n" \ +#define NICK_REQUESTED _("This nick has already been requested, please check your e-mail address for the pass code") +#define NICK_CONFIRM_INVALID _("Invalid passcode has been entered, please check the e-mail again, and retry") +#define CHAN_NOT_ALLOWED_TO_JOIN _("You are not permitted to be on this channel.") +#define CHAN_X_INVALID _("Channel %s is not a valid channel.") +#define CHAN_REACHED_CHANNEL_LIMIT _("Sorry, you have already reached your limit of \002%d\002 channels.") +#define CHAN_EXCEEDED_CHANNEL_LIMIT _("Sorry, you have already exceeded your limit of \002%d\002 channels.") +#define CHAN_SYMBOL_REQUIRED _("Please use the symbol of \002#\002 when attempting to register") +#define CHAN_SASET_SYNTAX _("SASET \002channel\002 \037option\037 \037parameters\037") +#define CHAN_SET_SYNTAX _("SET \037channel\037 \037option\037 \037parameters\037") +#define CHAN_SET_DISABLED _("Sorry, channel option setting is temporarily disabled.") +#define CHAN_SETTING_CHANGED _("%s for %s set to %s.") +#define CHAN_SETTING_UNSET _("%s for %s unset.") +#define CHAN_SET_MLOCK_DEPRECATED _("MLOCK is deprecated. Use \002%s%s HELP MODE\002 instead.") +#define CHAN_ACCESS_LEVEL_RANGE _("Access level must be between %d and %d inclusive.") +#define CHAN_ACCESS_LIST_HEADER _("Access list for %s:\n" \ " Num Lev Mask") -#define CHAN_ACCESS_VIEW_XOP_FORMAT gtl(" %3d %s %s\n" \ +#define CHAN_ACCESS_VIEW_XOP_FORMAT _(" %3d %s %s\n" \ " by %s, last seen %s") -#define CHAN_ACCESS_VIEW_AXS_FORMAT gtl(" %3d %4d %s\n" \ +#define CHAN_ACCESS_VIEW_AXS_FORMAT _(" %3d %4d %s\n" \ " by %s, last seen %s") -#define CHAN_AKICK_VIEW_FORMAT gtl("%3d %s (by %s on %s)\n" \ +#define CHAN_AKICK_VIEW_FORMAT _("%3d %s (by %s on %s)\n" \ " %s") -#define CHAN_INFO_HEADER gtl("Information for channel \002%s\002:") -#define CHAN_EXCEPTED gtl("\002%s\002 matches an except on %s and cannot be banned until the except have been removed.") -#define CHAN_LIST_ENTRY gtl("%3d %s\n" \ +#define CHAN_INFO_HEADER _("Information for channel \002%s\002:") +#define CHAN_EXCEPTED _("\002%s\002 matches an except on %s and cannot be banned until the except have been removed.") +#define CHAN_LIST_ENTRY _("%3d %s\n" \ " Added by %s on %s") -#define MEMO_NEW_X_MEMO_ARRIVED gtl("There is a new memo on channel %s.\n" \ +#define MEMO_NEW_X_MEMO_ARRIVED _("There is a new memo on channel %s.\n" \ "Type \002%s%s READ %s %d\002 to read it.") -#define MEMO_NEW_MEMO_ARRIVED gtl("You have a new memo from %s.\n" \ +#define MEMO_NEW_MEMO_ARRIVED _("You have a new memo from %s.\n" \ "Type \002%s%s READ %d\002 to read it.") -#define MEMO_HAVE_NO_MEMOS gtl("You have no memos.") -#define MEMO_X_HAS_NO_MEMOS gtl("%s has no memos.") -#define MEMO_SEND_SYNTAX gtl("SEND {\037nick\037 | \037channel\037} \037memo-text\037") -#define MEMO_SEND_DISABLED gtl("Sorry, memo sending is temporarily disabled.") -#define MEMO_HAVE_NO_NEW_MEMOS gtl("You have no new memos.") -#define MEMO_X_HAS_NO_NEW_MEMOS gtl("%s has no new memos.") -#define BOT_DOES_NOT_EXIST gtl("Bot \002%s\002 does not exist.") -#define BOT_NOT_ASSIGNED gtl("You must assign a bot to the channel before using this command.\n" \ +#define MEMO_HAVE_NO_MEMOS _("You have no memos.") +#define MEMO_X_HAS_NO_MEMOS _("%s has no memos.") +#define MEMO_SEND_SYNTAX _("SEND {\037nick\037 | \037channel\037} \037memo-text\037") +#define MEMO_SEND_DISABLED _("Sorry, memo sending is temporarily disabled.") +#define MEMO_HAVE_NO_NEW_MEMOS _("You have no new memos.") +#define MEMO_X_HAS_NO_NEW_MEMOS _("%s has no new memos.") +#define BOT_DOES_NOT_EXIST _("Bot \002%s\002 does not exist.") +#define BOT_NOT_ASSIGNED _("You must assign a bot to the channel before using this command.\n" \ "Type %s%s HELP ASSIGN for more information.") -#define BOT_NOT_ON_CHANNEL gtl("Bot is not on channel \002%s\002.") -#define BOT_ASSIGN_READONLY gtl("Sorry, bot assignment is temporarily disabled.") -#define ENABLED gtl("Enabled") -#define DISABLED gtl("Disabled") -#define OPER_LIST_FORMAT gtl(" %3d %-32s %s") -#define OPER_VIEW_FORMAT gtl("%3d %s (by %s on %s; %s)\n" \ +#define BOT_NOT_ON_CHANNEL _("Bot is not on channel \002%s\002.") +#define BOT_ASSIGN_READONLY _("Sorry, bot assignment is temporarily disabled.") +#define ENABLED _("Enabled") +#define DISABLED _("Disabled") +#define OPER_LIST_FORMAT _(" %3d %-32s %s") +#define OPER_VIEW_FORMAT _("%3d %s (by %s on %s; %s)\n" \ " %s") -#define HOST_SET_ERROR gtl("A vhost must be in the format of a valid hostmask.") -#define HOST_SET_IDENT_ERROR gtl("A vhost ident must be in the format of a valid ident") -#define HOST_SET_TOOLONG gtl("Error! The vhost is too long, please use a host shorter than %d characters.") -#define HOST_SET_IDENTTOOLONG gtl("Error! The Ident is too long, please use an ident shorter than %d characters.") -#define HOST_NOT_ASSIGNED gtl("Please contact an Operator to get a vhost assigned to this nick.") -#define HOST_NO_VIDENT gtl("Your IRCD does not support vIdent's, if this is incorrect, please report this as a possible bug") +#define HOST_SET_ERROR _("A vhost must be in the format of a valid hostmask.") +#define HOST_SET_IDENT_ERROR _("A vhost ident must be in the format of a valid ident") +#define HOST_SET_TOOLONG _("Error! The vhost is too long, please use a host shorter than %d characters.") +#define HOST_SET_IDENTTOOLONG _("Error! The Ident is too long, please use an ident shorter than %d characters.") +#define HOST_NOT_ASSIGNED _("Please contact an Operator to get a vhost assigned to this nick.") +#define HOST_NO_VIDENT _("Your IRCD does not support vIdent's, if this is incorrect, please report this as a possible bug") diff --git a/include/modules.h b/include/modules.h index 0f58afebb..b9ed03664 100644 --- a/include/modules.h +++ b/include/modules.h @@ -270,12 +270,6 @@ class CoreExport Module : public Extensible */ Version GetVersion() const; - /** Send a message to a user in their language, if a translation is available - * @param source The source of the message - * @param fmt The message - */ - void SendMessage(CommandSource &source, const char *fmt, ...); - /** * Add a module provided command to the given service. * @param bi The service to add the command to diff --git a/include/services.h b/include/services.h index 8aea5b019..fdc78ff59 100644 --- a/include/services.h +++ b/include/services.h @@ -45,11 +45,8 @@ #if GETTEXT_FOUND # include <libintl.h> -# define _(x) anope_gettext(x) -#else -# define _(x) x #endif -#define gtl(x) x +#define _(x) x #ifndef _WIN32 # include <unistd.h> diff --git a/language/update.sh b/language/update.sh index 8ebda609e..8302d813c 100755 --- a/language/update.sh +++ b/language/update.sh @@ -7,7 +7,7 @@ cd .. FILES=`find ./ -name *.cpp -o -name *.h | grep -v /modules/extra/` for f in $FILES do - xgettext -C -s -d Anope -j -o language/anope.pot --from-code=utf-8 --keyword --keyword=_ --keyword=gtl $f + xgettext -C -s -d Anope -j -o language/anope.pot --from-code=utf-8 --keyword --keyword=_ $f done cd - diff --git a/modules/core/bs_kick.cpp b/modules/core/bs_kick.cpp index 66232f10c..3e6719338 100644 --- a/modules/core/bs_kick.cpp +++ b/modules/core/bs_kick.cpp @@ -616,10 +616,8 @@ class BSKick : public Module if (!ci || !ci->bi || !ci->c || !u || u->server->IsULined()) return; - Anope::string fmt = GetString(u->Account(), message); + Anope::string fmt = translate(u, message); va_start(args, message); - if (fmt.empty()) - return; vsnprintf(buf, sizeof(buf), fmt.c_str(), args); va_end(args); diff --git a/modules/core/bs_main.cpp b/modules/core/bs_main.cpp index 442d522db..e325b012f 100644 --- a/modules/core/bs_main.cpp +++ b/modules/core/bs_main.cpp @@ -24,8 +24,6 @@ class BotServBotInfo : public BotInfo void OnMessage(User *u, const Anope::string &message) { - PushLanguage("anope", u->Account() ? u->Account()->language : ""); - spacesepstream sep(message); Anope::string command, param; if (sep.GetToken(command) && sep.GetToken(param)) @@ -40,30 +38,26 @@ class BotServBotInfo : public BotInfo { if (ci->HasFlag(CI_SUSPENDED) && !c->HasFlag(CFLAG_ALLOW_SUSPENDED)) { - u->SendMessage(this, _(_(CHAN_X_SUSPENDED)), ci->name.c_str()); + u->SendMessage(this, CHAN_X_SUSPENDED, ci->name.c_str()); Log(LOG_COMMAND, "denied", this) << "Access denied for user " << u->GetMask() << " with command " << command << " because of SUSPENDED channel " << ci->name; - PopLanguage(); return; } } else if (!c->HasFlag(CFLAG_ALLOW_UNREGISTEREDCHANNEL)) { - u->SendMessage(this, _(_(CHAN_X_NOT_REGISTERED)), param.c_str()); - PopLanguage(); + u->SendMessage(this, CHAN_X_NOT_REGISTERED, param.c_str()); return; } } /* A user not giving a channel name for a param that should be a channel */ else { - u->SendMessage(this, _(CHAN_X_INVALID), param.c_str()); - PopLanguage(); + u->SendMessage(this, CHAN_X_INVALID, param.c_str()); return; } } } - PopLanguage(); BotInfo::OnMessage(u, message); } }; diff --git a/modules/core/cs_access.cpp b/modules/core/cs_access.cpp index 23d8c4e16..7d39b2ce5 100644 --- a/modules/core/cs_access.cpp +++ b/modules/core/cs_access.cpp @@ -716,7 +716,7 @@ class CommandCSLevels : public Command levelinfo_maxwidth = len; } for (i = 0; levelinfo[i].what >= 0; ++i) - source.Reply(_(" %-*s %s"), levelinfo_maxwidth, levelinfo[i].name.c_str(), GetString(source.u->Account(), levelinfo[i].desc).c_str()); + source.Reply(_(" %-*s %s"), levelinfo_maxwidth, levelinfo[i].name.c_str(), translate(source.u, levelinfo[i].desc)); } else source.Reply(_("Syntax: \002LEVELS \037channel\037 SET \037type\037 \037level\037\002\n" diff --git a/modules/core/cs_main.cpp b/modules/core/cs_main.cpp index 9d1664afb..49d1c800b 100644 --- a/modules/core/cs_main.cpp +++ b/modules/core/cs_main.cpp @@ -23,12 +23,9 @@ class ChanServBotInfo : public BotInfo void OnMessage(User *u, const Anope::string &message) { - PushLanguage("anope", u->Account() ? u->Account()->language : ""); - if (!u->HasMode(UMODE_OPER) && Config->CSOpersOnly) { - u->SendMessage(ChanServ, _(ACCESS_DENIED)); - PopLanguage(); + u->SendMessage(ChanServ, ACCESS_DENIED); return; } @@ -46,30 +43,26 @@ class ChanServBotInfo : public BotInfo { if (ci->HasFlag(CI_SUSPENDED) && !c->HasFlag(CFLAG_ALLOW_SUSPENDED)) { - u->SendMessage(this, _(_(CHAN_X_SUSPENDED)), ci->name.c_str()); + u->SendMessage(this, CHAN_X_SUSPENDED, ci->name.c_str()); Log(LOG_COMMAND, "denied", this) << "Access denied for user " << u->GetMask() << " with command " << command << " because of SUSPENDED channel " << ci->name; - PopLanguage(); return; } } else if (!c->HasFlag(CFLAG_ALLOW_UNREGISTEREDCHANNEL)) { - u->SendMessage(this, _(CHAN_X_NOT_REGISTERED), param.c_str()); - PopLanguage(); + u->SendMessage(this, CHAN_X_NOT_REGISTERED, param.c_str()); return; } } /* A user not giving a channel name for a param that should be a channel */ else { - u->SendMessage(this, _(CHAN_X_INVALID), param.c_str()); - PopLanguage(); + u->SendMessage(this, CHAN_X_INVALID, param.c_str()); return; } } } - PopLanguage(); BotInfo::OnMessage(u, message); } }; diff --git a/modules/core/cs_suspend.cpp b/modules/core/cs_suspend.cpp index 32d75bbeb..a027bc173 100644 --- a/modules/core/cs_suspend.cpp +++ b/modules/core/cs_suspend.cpp @@ -54,7 +54,7 @@ class CommandCSSuspend : public Command if (uc->user->HasMode(UMODE_OPER)) continue; - c->Kick(NULL, uc->user, "%s", !reason.empty() ? reason.c_str() : GetString(uc->user->Account(), gtl("This channel has been suspended.")).c_str()); + c->Kick(NULL, uc->user, "%s", !reason.empty() ? reason.c_str() : translate(uc->user, _("This channel has been suspended."))); } } diff --git a/modules/core/ms_main.cpp b/modules/core/ms_main.cpp index c2933254c..487059413 100644 --- a/modules/core/ms_main.cpp +++ b/modules/core/ms_main.cpp @@ -17,16 +17,16 @@ static BotInfo *MemoServ = NULL; static bool SendMemoMail(NickCore *nc, MemoInfo *mi, Memo *m) { - Anope::string message = Anope::printf(GetString(nc, gtl( + Anope::string message = Anope::printf(translate(nc, _( "Hi %s\n" " \n" "You've just received a new memo from %s. This is memo number %d.\n" " \n" "Memo text:\n" " \n" - "%s")).c_str(), nc->display.c_str(), m->sender.c_str(), mi->GetIndex(m), m->text.c_str()); + "%s")), nc->display.c_str(), m->sender.c_str(), mi->GetIndex(m), m->text.c_str()); - return Mail(nc, GetString(nc, gtl("New memo")), message); + return Mail(nc, translate(nc, _("New memo")), message); } class MyMemoServService : public MemoServService @@ -105,7 +105,7 @@ class MyMemoServService : public MemoServService if (check_access(cu->user, ci, CA_MEMO)) { if (cu->user->Account() && cu->user->Account()->HasFlag(NI_MEMO_RECEIVE)) - cu->user->SendMessage(MemoServ, _(MEMO_NEW_X_MEMO_ARRIVED), ci->name.c_str(), Config->UseStrictPrivMsgString.c_str(), Config->s_MemoServ.c_str(), ci->name.c_str(), mi->memos.size()); + cu->user->SendMessage(MemoServ, MEMO_NEW_X_MEMO_ARRIVED, ci->name.c_str(), Config->UseStrictPrivMsgString.c_str(), Config->s_MemoServ.c_str(), ci->name.c_str(), mi->memos.size()); } } } @@ -121,7 +121,7 @@ class MyMemoServService : public MemoServService NickAlias *na = *it; User *user = finduser(na->nick); if (user && user->IsIdentified()) - user->SendMessage(MemoServ, _(MEMO_NEW_MEMO_ARRIVED), source.c_str(), Config->UseStrictPrivMsgString.c_str(), Config->s_MemoServ.c_str(), mi->memos.size()); + user->SendMessage(MemoServ, MEMO_NEW_MEMO_ARRIVED, source.c_str(), Config->UseStrictPrivMsgString.c_str(), Config->s_MemoServ.c_str(), mi->memos.size()); } } diff --git a/modules/core/ms_read.cpp b/modules/core/ms_read.cpp index 706906be4..a868b5c88 100644 --- a/modules/core/ms_read.cpp +++ b/modules/core/ms_read.cpp @@ -33,7 +33,7 @@ void rsend_notify(CommandSource &source, MemoInfo *mi, Memo *m, const Anope::str /* Text of the memo varies if the recepient was a nick or channel */ - Anope::string text = Anope::printf(GetString(na->nc, gtl("\002[auto-memo]\002 The memo you sent to %s has been viewed.")).c_str(), targ.c_str()); + Anope::string text = Anope::printf(translate(na->nc, _("\002[auto-memo]\002 The memo you sent to %s has been viewed.")), targ.c_str()); /* Send notification */ memoserv->Send(source.u->nick, m->sender, text, true); diff --git a/modules/core/ns_help.cpp b/modules/core/ns_help.cpp index 29a6bd1cd..77c1b6f69 100644 --- a/modules/core/ns_help.cpp +++ b/modules/core/ns_help.cpp @@ -37,7 +37,7 @@ class CommandNSHelp : public Command "commands allow for registration and maintenance of\n" "nicknames; to use them, type \002%s%s \037command\037\002.\n" "For more information on a specific command, type\n" - "\002%s%s HELP \037command\037\002."), Config->UseStrictPrivMsgString.c_str(), Config->s_NickServ.c_str(), Config->UseStrictPrivMsgString.c_str(), Config->s_NickServ.c_str(), Config->s_NickServ.c_str()); + "\002%s%s HELP \037command\037\002."), Config->s_NickServ.c_str(), Config->UseStrictPrivMsgString.c_str(), Config->s_NickServ.c_str(), Config->UseStrictPrivMsgString.c_str(), Config->s_NickServ.c_str()); for (CommandMap::const_iterator it = nickserv->Bot()->Commands.begin(), it_end = nickserv->Bot()->Commands.end(); it != it_end; ++it) if (!Config->HidePrivilegedCommands || it->second->permission.empty() || u->HasCommand(it->second->permission)) it->second->OnServHelp(source); diff --git a/modules/core/ns_main.cpp b/modules/core/ns_main.cpp index 8d50f7042..f4797fa29 100644 --- a/modules/core/ns_main.cpp +++ b/modules/core/ns_main.cpp @@ -34,14 +34,14 @@ class MyNickServService : public NickServService if (na->nc->HasFlag(NI_SUSPENDED)) { - u->SendMessage(NickServ, _(NICK_X_SUSPENDED), u->nick.c_str()); + u->SendMessage(NickServ, NICK_X_SUSPENDED, u->nick.c_str()); u->Collide(na); return; } if (!u->IsIdentified() && !u->fingerprint.empty() && na->nc->FindCert(u->fingerprint)) { - u->SendMessage(NickServ, _("SSL Fingerprint accepted, you are now identified")); + u->SendMessage(NickServ, _("SSL Fingerprint accepted, you are now identified.")); u->Identify(na); return; } @@ -58,16 +58,16 @@ class MyNickServService : public NickServService if (u->IsRecognized() || !na->nc->HasFlag(NI_KILL_IMMED)) { if (na->nc->HasFlag(NI_SECURE)) - u->SendMessage(NickServ, _(NICK_IS_SECURE), Config->UseStrictPrivMsgString.c_str(), Config->s_NickServ.c_str()); + u->SendMessage(NickServ, NICK_IS_SECURE, Config->UseStrictPrivMsgString.c_str(), Config->s_NickServ.c_str()); else - u->SendMessage(NickServ, _(NICK_IS_REGISTERED), Config->UseStrictPrivMsgString.c_str(), Config->s_NickServ.c_str()); + u->SendMessage(NickServ, NICK_IS_REGISTERED, Config->UseStrictPrivMsgString.c_str(), Config->s_NickServ.c_str()); } if (na->nc->HasFlag(NI_KILLPROTECT) && !u->IsRecognized()) { if (na->nc->HasFlag(NI_KILL_IMMED)) { - u->SendMessage(NickServ, _(FORCENICKCHANGE_NOW)); + u->SendMessage(NickServ, FORCENICKCHANGE_NOW); u->Collide(na); } else if (na->nc->HasFlag(NI_KILL_QUICK)) diff --git a/modules/core/ns_recover.cpp b/modules/core/ns_recover.cpp index bbac98e09..b6a8e1c5d 100644 --- a/modules/core/ns_recover.cpp +++ b/modules/core/ns_recover.cpp @@ -49,7 +49,7 @@ class CommandNSRecover : public Command if (MOD_RESULT == EVENT_ALLOW) { - u2->SendMessage(nickserv->Bot(), _(FORCENICKCHANGE_NOW)); + u2->SendMessage(nickserv->Bot(), FORCENICKCHANGE_NOW); u2->Collide(na); /* Convert Config->NSReleaseTimeout seconds to string format */ @@ -69,7 +69,7 @@ class CommandNSRecover : public Command if (u->Account() == na->nc || (!na->nc->HasFlag(NI_SECURE) && is_on_access(u, na->nc)) || (!u->fingerprint.empty() && na->nc->FindCert(u->fingerprint))) { - u2->SendMessage(nickserv->Bot(), _(FORCENICKCHANGE_NOW)); + u2->SendMessage(nickserv->Bot(), FORCENICKCHANGE_NOW); u2->Collide(na); /* Convert Config->NSReleaseTimeout seconds to string format */ diff --git a/modules/core/ns_resetpass.cpp b/modules/core/ns_resetpass.cpp index 903e136fb..55b4ae18b 100644 --- a/modules/core/ns_resetpass.cpp +++ b/modules/core/ns_resetpass.cpp @@ -138,8 +138,8 @@ static bool SendResetEmail(User *u, NickAlias *na) for (idx = 0; idx < 20; ++idx) passcode += chars[1 + static_cast<int>((static_cast<float>(max - min)) * getrandom16() / 65536.0) + min]; - Anope::string subject = Anope::printf(GetString(na->nc, gtl("Reset password request for %s")).c_str(), na->nick.c_str()); - Anope::string message = Anope::printf(GetString(na->nc, gtl( + Anope::string subject = Anope::printf(translate(na->nc, _("Reset password request for %s")), na->nick.c_str()); + Anope::string message = Anope::printf(translate(na->nc, _( "Hi,\n" " \n" "You have requested to have the password for %s reset.\n" @@ -147,7 +147,7 @@ static bool SendResetEmail(User *u, NickAlias *na) " \n" "If you don't know why this mail was sent to you, please ignore it silently.\n" " \n" - "%s administrators.")).c_str(), na->nick.c_str(), Config->UseStrictPrivMsgString.c_str(), Config->s_NickServ.c_str(), na->nick.c_str(), passcode.c_str(), Config->NetworkName.c_str()); + "%s administrators.")), na->nick.c_str(), Config->UseStrictPrivMsgString.c_str(), Config->s_NickServ.c_str(), na->nick.c_str(), passcode.c_str(), Config->NetworkName.c_str()); na->nc->Extend("ns_resetpass_code", new ExtensibleItemRegular<Anope::string>(passcode)); na->nc->Extend("ns_resetpass_time", new ExtensibleItemRegular<time_t>(Anope::CurTime)); diff --git a/modules/core/ns_sendpass.cpp b/modules/core/ns_sendpass.cpp index e9ef06d59..d1d47df84 100644 --- a/modules/core/ns_sendpass.cpp +++ b/modules/core/ns_sendpass.cpp @@ -98,8 +98,8 @@ static bool SendPassMail(User *u, NickAlias *na, const Anope::string &pass) { char subject[BUFSIZE], message[BUFSIZE]; - snprintf(subject, sizeof(subject), GetString(na->nc, gtl("Nickname password (%s)")).c_str(), na->nick.c_str()); - snprintf(message, sizeof(message), GetString(na->nc, gtl( + snprintf(subject, sizeof(subject), translate(na->nc, _("Nickname password (%s)")), na->nick.c_str()); + snprintf(message, sizeof(message), translate(na->nc, _( "Hi,\n" " \n" "You have requested to receive the password of nickname %s by e-mail.\n" @@ -107,7 +107,7 @@ static bool SendPassMail(User *u, NickAlias *na, const Anope::string &pass) " \n" "If you don't know why this mail was sent to you, please ignore it silently.\n" " \n" - "%s administrators.")).c_str(), na->nick.c_str(), pass.c_str(), Config->NetworkName.c_str()); + "%s administrators.")), na->nick.c_str(), pass.c_str(), Config->NetworkName.c_str()); return Mail(u, na->nc, nickserv->Bot(), subject, message); } diff --git a/modules/core/ns_set_language.cpp b/modules/core/ns_set_language.cpp index 98f8f044a..c614e7642 100644 --- a/modules/core/ns_set_language.cpp +++ b/modules/core/ns_set_language.cpp @@ -43,8 +43,6 @@ class CommandNSSetLanguage : public Command } nc->language = param != "en" ? param : ""; - PopLanguage(); - PushLanguage("anope", nc->language); source.Reply(_("Language changed to \002English\002.")); return MOD_CONT; @@ -62,9 +60,7 @@ class CommandNSSetLanguage : public Command source.Reply(" en (English)"); for (unsigned j = 0; j < languages.size(); ++j) { - PushLanguage("anope", languages[j]); - const Anope::string &langname = _("English"); - PopLanguage(); + const Anope::string &langname = anope_gettext(languages[j].c_str(), _("English")); if (langname == "English") continue; source.Reply(" %s (%s)", languages[j].c_str(), langname.c_str()); diff --git a/modules/core/os_main.cpp b/modules/core/os_main.cpp index 1c8203e8d..ec5e95ac8 100644 --- a/modules/core/os_main.cpp +++ b/modules/core/os_main.cpp @@ -25,9 +25,7 @@ class OperServBotInfo : public BotInfo { if (!u->HasMode(UMODE_OPER) && Config->OSOpersOnly) { - PushLanguage("anope", u->Account() ? u->Account()->language : ""); - u->SendMessage(OperServ, _(ACCESS_DENIED)); - PopLanguage(); + u->SendMessage(OperServ, ACCESS_DENIED); if (Config->WallBadOS) ircdproto->SendGlobops(this, "Denied access to %s from %s!%s@%s (non-oper)", Config->s_OperServ.c_str(), u->nick.c_str(), u->GetIdent().c_str(), u->host.c_str()); } diff --git a/modules/extra/cs_appendtopic.cpp b/modules/extra/cs_appendtopic.cpp index 5132d272f..bb6702237 100644 --- a/modules/extra/cs_appendtopic.cpp +++ b/modules/extra/cs_appendtopic.cpp @@ -87,9 +87,9 @@ class CommandCSAppendTopic : public Command bool OnHelp(CommandSource &source, const Anope::string &subcommand) { - me->SendMessage(source, _("Syntax: APPENDTOPIC channel text")); + source.Reply(_("Syntax: APPENDTOPIC channel text")); source.Reply(" "); - me->SendMessage(source, _("This command allows users to append text to a currently set\n" + source.Reply(("This command allows users to append text to a currently set\n" "channel topic. When TOPICLOCK is on, the topic is updated and\n" "the new, updated topic is locked.")); @@ -98,7 +98,7 @@ class CommandCSAppendTopic : public Command void OnSyntaxError(CommandSource &source, const Anope::string &subcommand) { - me->SendMessage(source, _("Syntax: APPENDTOPIC channel text")); + source.Reply(_("Syntax: APPENDTOPIC channel text")); } }; diff --git a/modules/extra/cs_enforce.cpp b/modules/extra/cs_enforce.cpp index 29914a17e..c39744ca2 100644 --- a/modules/extra/cs_enforce.cpp +++ b/modules/extra/cs_enforce.cpp @@ -90,7 +90,7 @@ class CommandCSEnforce : public Command if (check_access(uc->user, ci, CA_NOJOIN)) { get_idealban(ci, uc->user, mask); - Anope::string reason = GetString(uc->user->Account(), CHAN_NOT_ALLOWED_TO_JOIN); + Anope::string reason = translate(uc->user, CHAN_NOT_ALLOWED_TO_JOIN); c->SetMode(NULL, CMODE_BAN, mask); c->Kick(NULL, uc->user, "%s", reason.c_str()); } @@ -114,7 +114,7 @@ class CommandCSEnforce : public Command if (!uc->user->IsIdentified()) { get_idealban(ci, uc->user, mask); - Anope::string reason = GetString(uc->user->Account(), CHAN_NOT_ALLOWED_TO_JOIN); + Anope::string reason = translate(uc->user, CHAN_NOT_ALLOWED_TO_JOIN); if (!c->HasMode(CMODE_REGISTEREDONLY)) c->SetMode(NULL, CMODE_BAN, mask); c->Kick(NULL, uc->user, "%s", reason.c_str()); @@ -144,27 +144,27 @@ class CommandCSEnforce : public Command if (what.empty() || what.equals_ci("SET")) { this->DoSet(c); - me->SendMessage(source, _("Enforced %s"), !what.empty() ? what.c_str() : "SET"); + source.Reply(_("Enforced %s"), !what.empty() ? what.c_str() : "SET"); } else if (what.equals_ci("MODES")) { this->DoModes(c); - me->SendMessage(source, _("Enforced %s"), what.c_str()); + source.Reply(_("Enforced %s"), what.c_str()); } else if (what.equals_ci("SECUREOPS")) { this->DoSecureOps(c); - me->SendMessage(source, _("Enforced %s"), what.c_str()); + source.Reply(_("Enforced %s"), what.c_str()); } else if (what.equals_ci("RESTRICTED")) { this->DoRestricted(c); - me->SendMessage(source, _("Enforced %s"), what.c_str()); + source.Reply(_("Enforced %s"), what.c_str()); } else if (what.equals_ci("+R")) { this->DoCModeR(c); - me->SendMessage(source, _("Enforced %s"), what.c_str()); + source.Reply(_("Enforced %s"), what.c_str()); } else this->OnSyntaxError(source, ""); @@ -175,9 +175,9 @@ class CommandCSEnforce : public Command bool OnHelp(CommandSource &source, const Anope::string &subcommand) { - me->SendMessage(source, _("Syntax: \002ENFORCE \037channel\037 [\037what\037]\002")); - me->SendMessage(source, " "); - me->SendMessage(source, _("Enforce various channel modes and set options. The \037channel\037\n" + source.Reply(_("Syntax: \002ENFORCE \037channel\037 [\037what\037]\002")); + 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 SET, SECUREOPS, RESTRICTED, MODES,\n" @@ -188,14 +188,14 @@ class CommandCSEnforce : public Command "SECUREOPS to enforce the SECUREOPS option, even if it is not\n" "enabled. Use RESTRICTED to enfore the RESTRICTED option, also\n" "if it's not enabled.")); - me->SendMessage(source, " "); + source.Reply(" "); if (ModeManager::FindChannelModeByName(CMODE_REGISTERED)) - me->SendMessage(source, _("If \037what\037 is MODES, it will enforce channelmode +R if it is\n" + source.Reply(_("If \037what\037 is MODES, it will enforce channelmode +R if it is\n" "set. If +R is specified for \037what\037, the +R channelmode will\n" "also be enforced, but even if it is not set. If it is not set,\n" "users will be banned to ensure they don't just rejoin.")); else - me->SendMessage(source, _("If \037what\037 is MODES, nothing will be enforced, since it would\n" + source.Reply(_("If \037what\037 is MODES, nothing will be enforced, since it would\n" "enforce modes that the current ircd does not support. If +R is\n" "specified for \037what\037, an equalivant of channelmode +R on\n" "other ircds will be enforced. All users that are in the channel\n" @@ -207,7 +207,7 @@ class CommandCSEnforce : public Command void OnSyntaxError(CommandSource &source, const Anope::string &subcommand) { - me->SendMessage(source, _("Syntax: \002ENFORCE \037channel\037 [\037what\037]\002")); + source.Reply(_("Syntax: \002ENFORCE \037channel\037 [\037what\037]\002")); } }; diff --git a/modules/extra/cs_tban.cpp b/modules/extra/cs_tban.cpp index 003f8a3d5..78c3b1fa9 100644 --- a/modules/extra/cs_tban.cpp +++ b/modules/extra/cs_tban.cpp @@ -82,7 +82,7 @@ class CommandCSTBan : public Command get_idealban(c->ci, u2, mask); c->SetMode(NULL, CMODE_BAN, mask); new TempBan(dotime(time), c, mask); - me->SendMessage(source, _("%s banned from %s, will auto-expire in %s"), mask.c_str(), c->name.c_str(), time.c_str()); + source.Reply(_("%s banned from %s, will auto-expire in %s"), mask.c_str(), c->name.c_str(), time.c_str()); } return MOD_CONT; @@ -91,8 +91,8 @@ class CommandCSTBan : public Command bool OnHelp(CommandSource &source, const Anope::string &subcommand) { this->OnSyntaxError(source, ""); - me->SendMessage(source, " "); - me->SendMessage(source, _("Bans the given user from a channel for a specified length of\n" + source.Reply(" "); + source.Reply(_("Bans the given user from a channel for a specified length of\n" "time. If the ban is removed before by hand, it will NOT be replaced.")); return true; @@ -100,7 +100,7 @@ class CommandCSTBan : public Command void OnSyntaxError(CommandSource &source, const Anope::string &subcommand) { - me->SendMessage(source, _("Syntax: TBAN channel nick time")); + source.Reply(_("Syntax: TBAN channel nick time")); } }; diff --git a/modules/extra/hs_request.cpp b/modules/extra/hs_request.cpp index f62e21e1a..518acb6de 100644 --- a/modules/extra/hs_request.cpp +++ b/modules/extra/hs_request.cpp @@ -65,7 +65,7 @@ class CommandHSRequest : public Command rawhostmask = myStrGetTokenRemainder(rawhostmask, '@', 1); /* get the remaining string */ if (rawhostmask.empty()) { - me->SendMessage(source, _("Syntax: \002REQUEST \037vhost\037\002")); + source.Reply(_("Syntax: \002REQUEST \037vhost\037\002")); return MOD_CONT; } if (vIdent.length() > Config->UserLen) @@ -102,13 +102,13 @@ class CommandHSRequest : public Command if (HSRequestMemoOper && Config->MSSendDelay > 0 && u && u->lastmemosend + Config->MSSendDelay > Anope::CurTime) { - me->SendMessage(source, _("Please wait %d seconds before requesting a new vHost"), Config->MSSendDelay); + source.Reply(_("Please wait %d seconds before requesting a new vHost"), Config->MSSendDelay); u->lastmemosend = Anope::CurTime; return MOD_CONT; } my_add_host_request(u->nick, vIdent, hostmask, u->nick, Anope::CurTime); - me->SendMessage(source, _("Your vHost has been requested")); + source.Reply(_("Your vHost has been requested")); req_send_memos(source, vIdent, hostmask); Log(LOG_COMMAND, u, this, NULL) << "to request new vhost " << (!vIdent.empty() ? vIdent + "@" : "") << hostmask; @@ -117,9 +117,9 @@ class CommandHSRequest : public Command bool OnHelp(CommandSource &source, const Anope::string &subcommand) { - me->SendMessage(source, _("Syntax: \002REQUEST \037vhost\037\002")); - me->SendMessage(source, " "); - me->SendMessage(source, _("Request the given vHost to be actived for your nick by the\n" + source.Reply(_("Syntax: \002REQUEST \037vhost\037\002")); + source.Reply(" "); + source.Reply(_("Request the given vHost to be actived for your nick by the\n" "network administrators. Please be patient while your request\n" "is being considered.")); return true; @@ -127,7 +127,7 @@ class CommandHSRequest : public Command void OnSyntaxError(CommandSource &source, const Anope::string &subcommand) { - me->SendMessage(source, _("Syntax: \002REQUEST \037vhost\037\002")); + source.Reply(_("Syntax: \002REQUEST \037vhost\037\002")); } }; @@ -157,13 +157,13 @@ class CommandHSActivate : public Command if (HSRequestMemoUser && memoserv) memoserv->Send(Config->s_HostServ, na->nick, _("[auto memo] Your requested vHost has been approved."), true); - me->SendMessage(source, _("vHost for %s has been activated"), na->nick.c_str()); + source.Reply(_("vHost for %s has been activated"), na->nick.c_str()); Log(LOG_COMMAND, u, this, NULL) << "for " << na->nick << " for vhost " << (!it->second->ident.empty() ? it->second->ident + "@" : "") << it->second->host; delete it->second; Requests.erase(it); } else - me->SendMessage(source, _("No request for nick %s found."), nick.c_str()); + source.Reply(_("No request for nick %s found."), nick.c_str()); } else source.Reply(_(NICK_X_NOT_REGISTERED), nick.c_str()); @@ -173,18 +173,18 @@ class CommandHSActivate : public Command bool OnHelp(CommandSource &source, const Anope::string &subcommand) { - me->SendMessage(source, _("Syntax: \002ACTIVATE \037nick\037\002")); - me->SendMessage(source, " "); - me->SendMessage(source, _("Activate the requested vHost for the given nick.")); + source.Reply(_("Syntax: \002ACTIVATE \037nick\037\002")); + source.Reply(" "); + source.Reply(_("Activate the requested vHost for the given nick.")); if (HSRequestMemoUser) - me->SendMessage(source, _("A memo informing the user will also be sent.")); + source.Reply(_("A memo informing the user will also be sent.")); return true; } void OnSyntaxError(CommandSource &source, const Anope::string &subcommand) { - me->SendMessage(source, _("Syntax: \002ACTIVATE \037nick\037\002")); + source.Reply(_("Syntax: \002ACTIVATE \037nick\037\002")); } }; @@ -220,29 +220,29 @@ class CommandHSReject : public Command memoserv->Send(Config->s_HostServ, nick, message, true); } - me->SendMessage(source, _("vHost for %s has been rejected"), nick.c_str()); + source.Reply(_("vHost for %s has been rejected"), nick.c_str()); Log(LOG_COMMAND, u, this, NULL) << "to reject vhost for " << nick << " (" << (!reason.empty() ? reason : "") << ")"; } else - me->SendMessage(source, _("No request for nick %s found."), nick.c_str()); + source.Reply(_("No request for nick %s found."), nick.c_str()); return MOD_CONT; } bool OnHelp(CommandSource &source, const Anope::string &subcommand) { - me->SendMessage(source, _("Syntax: \002REJECT \037nick\037\002")); - me->SendMessage(source, " "); - me->SendMessage(source, _("Reject the requested vHost for the given nick.")); + source.Reply(_("Syntax: \002REJECT \037nick\037\002")); + source.Reply(" "); + source.Reply(_("Reject the requested vHost for the given nick.")); if (HSRequestMemoUser) - me->SendMessage(source, _("A memo informing the user will also be sent.")); + source.Reply(_("A memo informing the user will also be sent.")); return true; } void OnSyntaxError(CommandSource &source, const Anope::string &subcommand) { - me->SendMessage(source, _("Syntax: \002REJECT \037nick\037\002")); + source.Reply(_("Syntax: \002REJECT \037nick\037\002")); } }; @@ -293,9 +293,9 @@ class CommandHSWaiting : public HSListBase bool OnHelp(CommandSource &source, const Anope::string &subcommand) { - me->SendMessage(source, _("Syntax: \002WAITING\002")); - me->SendMessage(source, " "); - me->SendMessage(source, _("This command is provided for convenience. It is essentially\n" + source.Reply(_("Syntax: \002WAITING\002")); + source.Reply(" "); + source.Reply(_("This command is provided for convenience. It is essentially\n" "the same as performing a LIST +req .")); return true; diff --git a/modules/extra/language/cs_appendtopic.de_DE.po b/modules/extra/language/cs_appendtopic.de_DE.po index 8e5111d5d..2305709c1 100644 --- a/modules/extra/language/cs_appendtopic.de_DE.po +++ b/modules/extra/language/cs_appendtopic.de_DE.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Anope\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-02-04 03:41-0500\n" +"POT-Creation-Date: 2011-06-17 13:49-0400\n" "PO-Revision-Date: 2010-09-25 20:57-0400\n" "Last-Translator: Adam <adam@anope.org>\n" "Language-Team: German\n" @@ -17,9 +17,9 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../cs_appendtopic.cpp:106 -msgid " APPENDTOPIC Add text to a channels topic" -msgstr " APPENDTOPIC Fьgt einen Text zu einem Channel-Topic hinzu." +#: ../cs_appendtopic.cpp:50 +msgid "Add text to a channels topic" +msgstr "Fьgt einen Text zu einem Channel-Topic hinzu." #: ../cs_appendtopic.cpp:90 ../cs_appendtopic.cpp:101 msgid "Syntax: APPENDTOPIC channel text" diff --git a/modules/extra/language/cs_appendtopic.it_IT.po b/modules/extra/language/cs_appendtopic.it_IT.po index 827fe5bd6..43620d0b2 100644 --- a/modules/extra/language/cs_appendtopic.it_IT.po +++ b/modules/extra/language/cs_appendtopic.it_IT.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Anope\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-02-04 03:41-0500\n" +"POT-Creation-Date: 2011-06-17 13:49-0400\n" "PO-Revision-Date: 2010-09-25 21:04-0400\n" "Last-Translator: Adam <adam@anope.org>\n" "Language-Team: Italian\n" @@ -17,8 +17,9 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../cs_appendtopic.cpp:106 -msgid " APPENDTOPIC Add text to a channels topic" +#: ../cs_appendtopic.cpp:50 +#, fuzzy +msgid "Add text to a channels topic" msgstr " APPENDTOPIC Aggiunge del testo al topic di un canale" #: ../cs_appendtopic.cpp:90 ../cs_appendtopic.cpp:101 diff --git a/modules/extra/language/cs_appendtopic.nl_NL.po b/modules/extra/language/cs_appendtopic.nl_NL.po index 15e857506..21d81eaba 100644 --- a/modules/extra/language/cs_appendtopic.nl_NL.po +++ b/modules/extra/language/cs_appendtopic.nl_NL.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Anope\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-02-04 03:41-0500\n" +"POT-Creation-Date: 2011-06-17 13:49-0400\n" "PO-Revision-Date: 2010-09-25 20:55-0400\n" "Last-Translator: Adam <adam@anope.org>\n" "Language-Team: Dutch\n" @@ -17,8 +17,9 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../cs_appendtopic.cpp:106 -msgid " APPENDTOPIC Add text to a channels topic" +#: ../cs_appendtopic.cpp:50 +#, fuzzy +msgid "Add text to a channels topic" msgstr " APPENDTOPIC Voeg tekst aan een kanaal onderwerp toe" #: ../cs_appendtopic.cpp:90 ../cs_appendtopic.cpp:101 diff --git a/modules/extra/language/cs_appendtopic.pot b/modules/extra/language/cs_appendtopic.pot index 4c37b8d37..b5e60813b 100644 --- a/modules/extra/language/cs_appendtopic.pot +++ b/modules/extra/language/cs_appendtopic.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-02-04 03:41-0500\n" +"POT-Creation-Date: 2011-06-17 13:50-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -16,8 +16,8 @@ msgstr "" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" -#: ../cs_appendtopic.cpp:106 -msgid " APPENDTOPIC Add text to a channels topic" +#: ../cs_appendtopic.cpp:50 +msgid "Add text to a channels topic" msgstr "" #: ../cs_appendtopic.cpp:90 ../cs_appendtopic.cpp:101 diff --git a/modules/extra/language/cs_appendtopic.pt_PT.po b/modules/extra/language/cs_appendtopic.pt_PT.po index 853f0502c..e97d94a90 100644 --- a/modules/extra/language/cs_appendtopic.pt_PT.po +++ b/modules/extra/language/cs_appendtopic.pt_PT.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Anope\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-02-04 03:41-0500\n" +"POT-Creation-Date: 2011-06-17 13:49-0400\n" "PO-Revision-Date: 2010-09-25 21:00-0400\n" "Last-Translator: Adam <adam@anope.org>\n" "Language-Team: Portuguese\n" @@ -16,8 +16,9 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../cs_appendtopic.cpp:106 -msgid " APPENDTOPIC Add text to a channels topic" +#: ../cs_appendtopic.cpp:50 +#, fuzzy +msgid "Add text to a channels topic" msgstr " APPENDTOPIC Adiciona texto ao tуpico de um canal" #: ../cs_appendtopic.cpp:90 ../cs_appendtopic.cpp:101 diff --git a/modules/extra/language/cs_appendtopic.ru_RU.po b/modules/extra/language/cs_appendtopic.ru_RU.po index 89e0a19b3..cb5566a8c 100644 --- a/modules/extra/language/cs_appendtopic.ru_RU.po +++ b/modules/extra/language/cs_appendtopic.ru_RU.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Anope\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-02-04 03:41-0500\n" +"POT-Creation-Date: 2011-06-17 13:49-0400\n" "PO-Revision-Date: 2010-09-25 21:02-0400\n" "Last-Translator: Adam <adam@anope.org>\n" "Language-Team: Russian\n" @@ -18,8 +18,9 @@ msgstr "" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%" "10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -#: ../cs_appendtopic.cpp:106 -msgid " APPENDTOPIC Add text to a channels topic" +#: ../cs_appendtopic.cpp:50 +#, fuzzy +msgid "Add text to a channels topic" msgstr " APPENDTOPIC Добавляет текст к топику канала" #: ../cs_appendtopic.cpp:90 ../cs_appendtopic.cpp:101 diff --git a/modules/extra/language/cs_enforce.de_DE.po b/modules/extra/language/cs_enforce.de_DE.po index 40eddc19c..5e8ccd94b 100644 --- a/modules/extra/language/cs_enforce.de_DE.po +++ b/modules/extra/language/cs_enforce.de_DE.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Anope\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-02-04 03:41-0500\n" +"POT-Creation-Date: 2011-06-17 13:49-0400\n" "PO-Revision-Date: 2010-09-25 21:12-0400\n" "Last-Translator: Adam <adam@anope.org>\n" "Language-Team: German\n" @@ -17,11 +17,12 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../cs_enforce.cpp:213 -msgid " ENFORCE Enforce various channel modes and set options" +#: ../cs_enforce.cpp:127 +#, fuzzy +msgid "Enforce various channel modes and set options" msgstr " ENFORCE Erzwingt verschieden Modes und SET Optionen" -#: ../cs_enforce.cpp:178 +#: ../cs_enforce.cpp:180 msgid "" "Enforce various channel modes and set options. The channel\n" "option indicates what channel to enforce the modes and options\n" @@ -46,13 +47,13 @@ msgstr "" "Benutze SECUREOPS oder RESTRICTED , um die Optionen einzeln\n" "zu erzwingen, also wenn sie nicht eingeschaltet sind." -#: ../cs_enforce.cpp:145 ../cs_enforce.cpp:150 ../cs_enforce.cpp:155 -#: ../cs_enforce.cpp:160 ../cs_enforce.cpp:165 +#: ../cs_enforce.cpp:147 ../cs_enforce.cpp:152 ../cs_enforce.cpp:157 +#: ../cs_enforce.cpp:162 ../cs_enforce.cpp:167 #, c-format msgid "Enforced %s" msgstr "Erzwungen %s" -#: ../cs_enforce.cpp:191 +#: ../cs_enforce.cpp:193 msgid "" "If what is MODES, it will enforce channelmode +R if it is\n" "set. If +R is specified for what, the +R channelmode will\n" @@ -65,7 +66,7 @@ msgstr "" "Channel-Mode war werden alle User aus den Channel gebannt um\n" "sicher zu sein das sie nicht rejoinen." -#: ../cs_enforce.cpp:196 +#: ../cs_enforce.cpp:198 msgid "" "If what is MODES, nothing will be enforced, since it would\n" "enforce modes that the current ircd does not support. If +R is\n" @@ -80,6 +81,6 @@ msgstr "" "erzwungen. Alle User die nicht fьr deren Nicknamen identifiziert\n" "sind werden aus den Channel gekickt und gebannt." -#: ../cs_enforce.cpp:176 ../cs_enforce.cpp:208 +#: ../cs_enforce.cpp:178 ../cs_enforce.cpp:210 msgid "Syntax: ENFORCE channel [what]" msgstr "Syntax: ENFORCE Channel [was]" diff --git a/modules/extra/language/cs_enforce.it_IT.po b/modules/extra/language/cs_enforce.it_IT.po index 98605397c..4721e823f 100644 --- a/modules/extra/language/cs_enforce.it_IT.po +++ b/modules/extra/language/cs_enforce.it_IT.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Anope\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-02-04 03:41-0500\n" +"POT-Creation-Date: 2011-06-17 13:49-0400\n" "PO-Revision-Date: 2010-09-25 21:55-0400\n" "Last-Translator: Adam <adam@anope.org>\n" "Language-Team: Italian\n" @@ -17,11 +17,12 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../cs_enforce.cpp:213 -msgid " ENFORCE Enforce various channel modes and set options" +#: ../cs_enforce.cpp:127 +#, fuzzy +msgid "Enforce various channel modes and set options" msgstr " ENFORCE Forza diversi modi di canale ed opzioni SET" -#: ../cs_enforce.cpp:178 +#: ../cs_enforce.cpp:180 msgid "" "Enforce various channel modes and set options. The channel\n" "option indicates what channel to enforce the modes and options\n" @@ -47,13 +48,13 @@ msgstr "" "RESTRICTED per forzare l'opzione RESTRICTED, anche se non и\n" "attivata." -#: ../cs_enforce.cpp:145 ../cs_enforce.cpp:150 ../cs_enforce.cpp:155 -#: ../cs_enforce.cpp:160 ../cs_enforce.cpp:165 +#: ../cs_enforce.cpp:147 ../cs_enforce.cpp:152 ../cs_enforce.cpp:157 +#: ../cs_enforce.cpp:162 ../cs_enforce.cpp:167 #, c-format msgid "Enforced %s" msgstr "Forzato %s" -#: ../cs_enforce.cpp:191 +#: ../cs_enforce.cpp:193 msgid "" "If what is MODES, it will enforce channelmode +R if it is\n" "set. If +R is specified for what, the +R channelmode will\n" @@ -65,7 +66,7 @@ msgstr "" "forzato, anche se non и impostato. Se non и impostato, gli utenti\n" "verranno bannati per assicurare che non rientrino semplicemente." -#: ../cs_enforce.cpp:196 +#: ../cs_enforce.cpp:198 msgid "" "If what is MODES, nothing will be enforced, since it would\n" "enforce modes that the current ircd does not support. If +R is\n" @@ -80,6 +81,6 @@ msgstr "" "forzato. Tutti gli utenti presenti nel canale ma non identificati\n" "per il loro nickname verranno bannati ed espulsi dal canale." -#: ../cs_enforce.cpp:176 ../cs_enforce.cpp:208 +#: ../cs_enforce.cpp:178 ../cs_enforce.cpp:210 msgid "Syntax: ENFORCE channel [what]" msgstr "Sintassi: ENFORCE canale [cosa]" diff --git a/modules/extra/language/cs_enforce.nl_NL.po b/modules/extra/language/cs_enforce.nl_NL.po index e791db46d..935e8dce7 100644 --- a/modules/extra/language/cs_enforce.nl_NL.po +++ b/modules/extra/language/cs_enforce.nl_NL.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Anope\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-02-04 03:41-0500\n" +"POT-Creation-Date: 2011-06-17 13:49-0400\n" "PO-Revision-Date: 2010-09-25 21:07-0400\n" "Last-Translator: Adam <adam@anope.org>\n" "Language-Team: Dutch\n" @@ -17,11 +17,12 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../cs_enforce.cpp:213 -msgid " ENFORCE Enforce various channel modes and set options" +#: ../cs_enforce.cpp:127 +#, fuzzy +msgid "Enforce various channel modes and set options" msgstr " ENFORCE Forceer enkele kanaalmodes en set-opties" -#: ../cs_enforce.cpp:178 +#: ../cs_enforce.cpp:180 msgid "" "Enforce various channel modes and set options. The channel\n" "option indicates what channel to enforce the modes and options\n" @@ -47,13 +48,13 @@ msgstr "" "SECUREOPS of RESTRICTED wordt gegeven voor wat zal die optie\n" "altijd geforceerd worden, ook als die niet is aangezet." -#: ../cs_enforce.cpp:145 ../cs_enforce.cpp:150 ../cs_enforce.cpp:155 -#: ../cs_enforce.cpp:160 ../cs_enforce.cpp:165 +#: ../cs_enforce.cpp:147 ../cs_enforce.cpp:152 ../cs_enforce.cpp:157 +#: ../cs_enforce.cpp:162 ../cs_enforce.cpp:167 #, c-format msgid "Enforced %s" msgstr "" -#: ../cs_enforce.cpp:191 +#: ../cs_enforce.cpp:193 msgid "" "If what is MODES, it will enforce channelmode +R if it is\n" "set. If +R is specified for what, the +R channelmode will\n" @@ -67,7 +68,7 @@ msgstr "" "gebanned worden om te zorgen dat ze niet opnieuw het kanaal binnen\n" "kunnen komen." -#: ../cs_enforce.cpp:196 +#: ../cs_enforce.cpp:198 msgid "" "If what is MODES, nothing will be enforced, since it would\n" "enforce modes that the current ircd does not support. If +R is\n" @@ -83,6 +84,6 @@ msgstr "" "hebben geidentificeerd voor hun nick uit het kanaal gekicked en\n" "verbannen worden." -#: ../cs_enforce.cpp:176 ../cs_enforce.cpp:208 +#: ../cs_enforce.cpp:178 ../cs_enforce.cpp:210 msgid "Syntax: ENFORCE channel [what]" msgstr "Syntax: ENFORCE kanaal [wat]" diff --git a/modules/extra/language/cs_enforce.pot b/modules/extra/language/cs_enforce.pot index e3604eb44..7d00d0d84 100644 --- a/modules/extra/language/cs_enforce.pot +++ b/modules/extra/language/cs_enforce.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-02-04 03:41-0500\n" +"POT-Creation-Date: 2011-06-17 13:50-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -16,11 +16,11 @@ msgstr "" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" -#: ../cs_enforce.cpp:213 -msgid " ENFORCE Enforce various channel modes and set options" +#: ../cs_enforce.cpp:127 +msgid "Enforce various channel modes and set options" msgstr "" -#: ../cs_enforce.cpp:178 +#: ../cs_enforce.cpp:180 msgid "" "Enforce various channel modes and set options. The channel\n" "option indicates what channel to enforce the modes and options\n" @@ -35,13 +35,13 @@ msgid "" "if it's not enabled." msgstr "" -#: ../cs_enforce.cpp:145 ../cs_enforce.cpp:150 ../cs_enforce.cpp:155 -#: ../cs_enforce.cpp:160 ../cs_enforce.cpp:165 +#: ../cs_enforce.cpp:147 ../cs_enforce.cpp:152 ../cs_enforce.cpp:157 +#: ../cs_enforce.cpp:162 ../cs_enforce.cpp:167 #, c-format msgid "Enforced %s" msgstr "" -#: ../cs_enforce.cpp:191 +#: ../cs_enforce.cpp:193 msgid "" "If what is MODES, it will enforce channelmode +R if it is\n" "set. If +R is specified for what, the +R channelmode will\n" @@ -49,7 +49,7 @@ msgid "" "users will be banned to ensure they don't just rejoin." msgstr "" -#: ../cs_enforce.cpp:196 +#: ../cs_enforce.cpp:198 msgid "" "If what is MODES, nothing will be enforced, since it would\n" "enforce modes that the current ircd does not support. If +R is\n" @@ -59,6 +59,6 @@ msgid "" "banned from the channel." msgstr "" -#: ../cs_enforce.cpp:176 ../cs_enforce.cpp:208 +#: ../cs_enforce.cpp:178 ../cs_enforce.cpp:210 msgid "Syntax: ENFORCE channel [what]" msgstr "" diff --git a/modules/extra/language/cs_enforce.pt_PT.po b/modules/extra/language/cs_enforce.pt_PT.po index 864db1f96..955ea87aa 100644 --- a/modules/extra/language/cs_enforce.pt_PT.po +++ b/modules/extra/language/cs_enforce.pt_PT.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Anope\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-02-04 03:41-0500\n" +"POT-Creation-Date: 2011-06-17 13:49-0400\n" "PO-Revision-Date: 2010-09-25 21:24-0400\n" "Last-Translator: Adam <adam@anope.org>\n" "Language-Team: Portuguese\n" @@ -16,13 +16,14 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../cs_enforce.cpp:213 -msgid " ENFORCE Enforce various channel modes and set options" +#: ../cs_enforce.cpp:127 +#, fuzzy +msgid "Enforce various channel modes and set options" msgstr "" " ENFORCE Verifica o cumprimento de vбrios modos de canal e opзхes " "ajustadas" -#: ../cs_enforce.cpp:178 +#: ../cs_enforce.cpp:180 msgid "" "Enforce various channel modes and set options. The channel\n" "option indicates what channel to enforce the modes and options\n" @@ -49,13 +50,13 @@ msgstr "" "Use RESTRICTED para verificar a opзгo RESTRICTED, mesmo que ela nгo esteja\n" "ativada." -#: ../cs_enforce.cpp:145 ../cs_enforce.cpp:150 ../cs_enforce.cpp:155 -#: ../cs_enforce.cpp:160 ../cs_enforce.cpp:165 +#: ../cs_enforce.cpp:147 ../cs_enforce.cpp:152 ../cs_enforce.cpp:157 +#: ../cs_enforce.cpp:162 ../cs_enforce.cpp:167 #, c-format msgid "Enforced %s" msgstr "Verificado %s" -#: ../cs_enforce.cpp:191 +#: ../cs_enforce.cpp:193 msgid "" "If what is MODES, it will enforce channelmode +R if it is\n" "set. If +R is specified for what, the +R channelmode will\n" @@ -67,7 +68,7 @@ msgstr "" "+R tambйm serб verificado, mesmo que ele nгo esteja ativado. Se ele nгo\n" "estiver ativado, os usuбrios serгo banidos para evitar que reentrem no canal." -#: ../cs_enforce.cpp:196 +#: ../cs_enforce.cpp:198 msgid "" "If what is MODES, nothing will be enforced, since it would\n" "enforce modes that the current ircd does not support. If +R is\n" @@ -82,6 +83,6 @@ msgstr "" "serб verificado. Todos os usuбrios que estгo no canal, mas nгo estejam\n" "identificados para seus nicks serгo kickados e banidos do canal." -#: ../cs_enforce.cpp:176 ../cs_enforce.cpp:208 +#: ../cs_enforce.cpp:178 ../cs_enforce.cpp:210 msgid "Syntax: ENFORCE channel [what]" msgstr "Sintaxe: ENFORCE canal [opзгo]" diff --git a/modules/extra/language/cs_enforce.ru_RU.po b/modules/extra/language/cs_enforce.ru_RU.po index 67032f069..2beef37cd 100644 --- a/modules/extra/language/cs_enforce.ru_RU.po +++ b/modules/extra/language/cs_enforce.ru_RU.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Anope\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-02-04 03:41-0500\n" +"POT-Creation-Date: 2011-06-17 13:49-0400\n" "PO-Revision-Date: 2010-09-25 21:38-0400\n" "Last-Translator: Adam <adam@anope.org>\n" "Language-Team: Russian\n" @@ -18,12 +18,13 @@ msgstr "" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%" "10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -#: ../cs_enforce.cpp:213 -msgid " ENFORCE Enforce various channel modes and set options" +#: ../cs_enforce.cpp:127 +#, fuzzy +msgid "Enforce various channel modes and set options" msgstr "" " ENFORCE Перепроверка и установка различных режимов и опций канала" -#: ../cs_enforce.cpp:178 +#: ../cs_enforce.cpp:180 msgid "" "Enforce various channel modes and set options. The channel\n" "option indicates what channel to enforce the modes and options\n" @@ -48,13 +49,13 @@ msgstr "" "применит опцию SECUREOPS (даже если она НЕ установлена). Параметр\n" "RESTRICTED применит опцию RESTRICTED (даже если она НЕ установлена)" -#: ../cs_enforce.cpp:145 ../cs_enforce.cpp:150 ../cs_enforce.cpp:155 -#: ../cs_enforce.cpp:160 ../cs_enforce.cpp:165 +#: ../cs_enforce.cpp:147 ../cs_enforce.cpp:152 ../cs_enforce.cpp:157 +#: ../cs_enforce.cpp:162 ../cs_enforce.cpp:167 #, c-format msgid "Enforced %s" msgstr "Перепроверено: %s" -#: ../cs_enforce.cpp:191 +#: ../cs_enforce.cpp:193 msgid "" "If what is MODES, it will enforce channelmode +R if it is\n" "set. If +R is specified for what, the +R channelmode will\n" @@ -68,7 +69,7 @@ msgstr "" "которые не идентифицировались к своему нику или не имеют зарегистрированного " "ника." -#: ../cs_enforce.cpp:196 +#: ../cs_enforce.cpp:198 msgid "" "If what is MODES, nothing will be enforced, since it would\n" "enforce modes that the current ircd does not support. If +R is\n" @@ -84,6 +85,6 @@ msgstr "" "своему\n" "нику или не имеют зарегистрированного ника." -#: ../cs_enforce.cpp:176 ../cs_enforce.cpp:208 +#: ../cs_enforce.cpp:178 ../cs_enforce.cpp:210 msgid "Syntax: ENFORCE channel [what]" msgstr "Синтаксис: ENFORCE #канал параметр" diff --git a/modules/extra/language/cs_entrymsg.pot b/modules/extra/language/cs_entrymsg.pot index 756bb439c..e16bd1789 100644 --- a/modules/extra/language/cs_entrymsg.pot +++ b/modules/extra/language/cs_entrymsg.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-02-04 03:41-0500\n" +"POT-Creation-Date: 2011-06-17 13:50-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -16,56 +16,56 @@ msgstr "" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" -#: ../cs_entrymsg.cpp:149 -msgid " ENTRYMSG Manage the channel's entrymsgs" -msgstr "" - -#: ../cs_entrymsg.cpp:136 +#: ../cs_entrymsg.cpp:145 msgid "ENTRYMSG channel {ADD|DEL|LIST|CLEAR} [message|num]" msgstr "" -#: ../cs_entrymsg.cpp:44 +#: ../cs_entrymsg.cpp:45 msgid "End of entry message list." msgstr "" -#: ../cs_entrymsg.cpp:77 +#: ../cs_entrymsg.cpp:80 #, c-format msgid "Entry message %i for %s deleted." msgstr "" -#: ../cs_entrymsg.cpp:80 +#: ../cs_entrymsg.cpp:87 #, c-format msgid "Entry message %s not found on channel %s." msgstr "" -#: ../cs_entrymsg.cpp:61 +#: ../cs_entrymsg.cpp:62 #, c-format msgid "Entry message added to %s" msgstr "" -#: ../cs_entrymsg.cpp:47 ../cs_entrymsg.cpp:83 +#: ../cs_entrymsg.cpp:48 ../cs_entrymsg.cpp:91 #, c-format msgid "Entry message list for %s is empty." msgstr "" -#: ../cs_entrymsg.cpp:41 +#: ../cs_entrymsg.cpp:42 #, c-format msgid "Entry message list for %s:" msgstr "" -#: ../cs_entrymsg.cpp:89 +#: ../cs_entrymsg.cpp:97 #, c-format msgid "Entry messages for %s have been cleared." msgstr "" -#: ../cs_entrymsg.cpp:141 +#: ../cs_entrymsg.cpp:103 +msgid "Manage the channel's entry messages" +msgstr "" + +#: ../cs_entrymsg.cpp:150 msgid "" "Syntax: ENTRYMSG channel {ADD|DEL|LIST|CLEAR} [message|num]\n" " \n" "Controls what messages will be sent to users when they join the channel." msgstr "" -#: ../cs_entrymsg.cpp:56 +#: ../cs_entrymsg.cpp:57 #, c-format msgid "The entry message list for %s is full." msgstr "" diff --git a/modules/extra/language/cs_tban.de_DE.po b/modules/extra/language/cs_tban.de_DE.po index 56980dee0..37ae58466 100644 --- a/modules/extra/language/cs_tban.de_DE.po +++ b/modules/extra/language/cs_tban.de_DE.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Anope\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-02-04 03:41-0500\n" +"POT-Creation-Date: 2011-06-17 13:49-0400\n" "PO-Revision-Date: 2010-09-26 00:16-0400\n" "Last-Translator: Adam <adam@anope.org>\n" "Language-Team: German\n" @@ -17,16 +17,12 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../cs_tban.cpp:106 -msgid " TBAN Bans the user for a given length of time" -msgstr " TBAN Bant ein User fьr eine bestimmte Zeit aus ein Channel" - -#: ../cs_tban.cpp:83 +#: ../cs_tban.cpp:85 #, c-format msgid "%s banned from %s, will auto-expire in %s" msgstr "%s gebannt von %s, wird auto-auslaufen in %s" -#: ../cs_tban.cpp:93 +#: ../cs_tban.cpp:95 msgid "" "Bans the given user from a channel for a specified length of\n" "time. If the ban is removed before by hand, it will NOT be replaced." @@ -34,6 +30,11 @@ msgstr "" "Bant ein User fьr eine bestimmte Zeit aus ein Channel\n" "Wenn der Ban manuell entfernt wird, wird es NICHT ersetzt." -#: ../cs_tban.cpp:101 +#: ../cs_tban.cpp:61 +#, fuzzy +msgid "Bans the user for a given length of time" +msgstr " TBAN Bant ein User fьr eine bestimmte Zeit aus ein Channel" + +#: ../cs_tban.cpp:103 msgid "Syntax: TBAN channel nick time" msgstr "Syntax: TBAN Channel Nickname Zeit" diff --git a/modules/extra/language/cs_tban.it_IT.po b/modules/extra/language/cs_tban.it_IT.po index 9f7797eba..3989c74d7 100644 --- a/modules/extra/language/cs_tban.it_IT.po +++ b/modules/extra/language/cs_tban.it_IT.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Anope\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-02-04 03:41-0500\n" +"POT-Creation-Date: 2011-06-17 13:49-0400\n" "PO-Revision-Date: 2010-09-26 00:22-0400\n" "Last-Translator: Adam <adam@anope.org>\n" "Language-Team: Italian\n" @@ -17,16 +17,12 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../cs_tban.cpp:106 -msgid " TBAN Bans the user for a given length of time" -msgstr " TBAN Banna l'utente per un periodo di tempo specificato" - -#: ../cs_tban.cpp:83 +#: ../cs_tban.cpp:85 #, c-format msgid "%s banned from %s, will auto-expire in %s" msgstr "%s bannato da %s, scadrа automaticamente tra %s" -#: ../cs_tban.cpp:93 +#: ../cs_tban.cpp:95 msgid "" "Bans the given user from a channel for a specified length of\n" "time. If the ban is removed before by hand, it will NOT be replaced." @@ -35,6 +31,11 @@ msgstr "" "specificato. Se il ban viene rimosso a mano prima della scadenza, NON verrа " "rimpiazzato." -#: ../cs_tban.cpp:101 +#: ../cs_tban.cpp:61 +#, fuzzy +msgid "Bans the user for a given length of time" +msgstr " TBAN Banna l'utente per un periodo di tempo specificato" + +#: ../cs_tban.cpp:103 msgid "Syntax: TBAN channel nick time" msgstr "Sintassi: TBAN canale nick tempo" diff --git a/modules/extra/language/cs_tban.nl_NL.po b/modules/extra/language/cs_tban.nl_NL.po index 9439b7408..18239f383 100644 --- a/modules/extra/language/cs_tban.nl_NL.po +++ b/modules/extra/language/cs_tban.nl_NL.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Anope\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-02-04 03:41-0500\n" +"POT-Creation-Date: 2011-06-17 13:49-0400\n" "PO-Revision-Date: 2010-09-26 00:15-0400\n" "Last-Translator: Adam <adam@anope.org>\n" "Language-Team: Dutch\n" @@ -17,16 +17,12 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../cs_tban.cpp:106 -msgid " TBAN Bans the user for a given length of time" -msgstr " TBAN Verban een gebruiker voor een bepaalde tijd" - -#: ../cs_tban.cpp:83 +#: ../cs_tban.cpp:85 #, c-format msgid "%s banned from %s, will auto-expire in %s" msgstr "%s verbannen van %s, zal verlopen in %s" -#: ../cs_tban.cpp:93 +#: ../cs_tban.cpp:95 msgid "" "Bans the given user from a channel for a specified length of\n" "time. If the ban is removed before by hand, it will NOT be replaced." @@ -35,6 +31,11 @@ msgstr "" "gegeven tijdsduur. Als de verbanning eerder wordt verwijderd,\n" "zal deze NIET worden vervangen." -#: ../cs_tban.cpp:101 +#: ../cs_tban.cpp:61 +#, fuzzy +msgid "Bans the user for a given length of time" +msgstr " TBAN Verban een gebruiker voor een bepaalde tijd" + +#: ../cs_tban.cpp:103 msgid "Syntax: TBAN channel nick time" msgstr "Syntax: TBAN kanaal nick tijd" diff --git a/modules/extra/language/cs_tban.pot b/modules/extra/language/cs_tban.pot index 6717f9e2c..4c7257dfb 100644 --- a/modules/extra/language/cs_tban.pot +++ b/modules/extra/language/cs_tban.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-02-04 03:41-0500\n" +"POT-Creation-Date: 2011-06-17 13:50-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -16,21 +16,21 @@ msgstr "" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" -#: ../cs_tban.cpp:106 -msgid " TBAN Bans the user for a given length of time" -msgstr "" - -#: ../cs_tban.cpp:83 +#: ../cs_tban.cpp:85 #, c-format msgid "%s banned from %s, will auto-expire in %s" msgstr "" -#: ../cs_tban.cpp:93 +#: ../cs_tban.cpp:95 msgid "" "Bans the given user from a channel for a specified length of\n" "time. If the ban is removed before by hand, it will NOT be replaced." msgstr "" -#: ../cs_tban.cpp:101 +#: ../cs_tban.cpp:61 +msgid "Bans the user for a given length of time" +msgstr "" + +#: ../cs_tban.cpp:103 msgid "Syntax: TBAN channel nick time" msgstr "" diff --git a/modules/extra/language/cs_tban.pt_PT.po b/modules/extra/language/cs_tban.pt_PT.po index 0f60ecbcf..944d977fd 100644 --- a/modules/extra/language/cs_tban.pt_PT.po +++ b/modules/extra/language/cs_tban.pt_PT.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Anope\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-02-04 03:41-0500\n" +"POT-Creation-Date: 2011-06-17 13:49-0400\n" "PO-Revision-Date: 2010-09-26 00:18-0400\n" "Last-Translator: Adam <adam@anope.org>\n" "Language-Team: Portuguese\n" @@ -16,16 +16,12 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../cs_tban.cpp:106 -msgid " TBAN Bans the user for a given length of time" -msgstr " TBAN Bane o usuбrio por um determinado perнodo de tempo" - -#: ../cs_tban.cpp:83 +#: ../cs_tban.cpp:85 #, c-format msgid "%s banned from %s, will auto-expire in %s" msgstr "%s foi banido do %s, irб auto-expirar em %s" -#: ../cs_tban.cpp:93 +#: ../cs_tban.cpp:95 msgid "" "Bans the given user from a channel for a specified length of\n" "time. If the ban is removed before by hand, it will NOT be replaced." @@ -34,6 +30,11 @@ msgstr "" "tempo. Se o ban for removido manualmente antes do tempo, ele nгo serб " "recolocado." -#: ../cs_tban.cpp:101 +#: ../cs_tban.cpp:61 +#, fuzzy +msgid "Bans the user for a given length of time" +msgstr " TBAN Bane o usuбrio por um determinado perнodo de tempo" + +#: ../cs_tban.cpp:103 msgid "Syntax: TBAN channel nick time" msgstr "Sintaxe: TBAN canal nick tempo" diff --git a/modules/extra/language/cs_tban.ru_RU.po b/modules/extra/language/cs_tban.ru_RU.po index f14c06d58..881c9ea79 100644 --- a/modules/extra/language/cs_tban.ru_RU.po +++ b/modules/extra/language/cs_tban.ru_RU.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Anope\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-02-04 03:41-0500\n" +"POT-Creation-Date: 2011-06-17 13:49-0400\n" "PO-Revision-Date: 2010-09-26 00:20-0400\n" "Last-Translator: Adam <adam@anope.org>\n" "Language-Team: Russian\n" @@ -18,16 +18,12 @@ msgstr "" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%" "10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -#: ../cs_tban.cpp:106 -msgid " TBAN Bans the user for a given length of time" -msgstr " TBAN Банит пользователя на указанный промежуток времени" - -#: ../cs_tban.cpp:83 +#: ../cs_tban.cpp:85 #, c-format msgid "%s banned from %s, will auto-expire in %s" msgstr "Установленный бан %s на канале %s истечет через %s секунд" -#: ../cs_tban.cpp:93 +#: ../cs_tban.cpp:95 msgid "" "Bans the given user from a channel for a specified length of\n" "time. If the ban is removed before by hand, it will NOT be replaced." @@ -36,6 +32,11 @@ msgstr "" "Примечание: удаленный вручную (до своего истечения) бан НЕ БУДЕТ\n" "переустановлен сервисами автоматически!" -#: ../cs_tban.cpp:101 +#: ../cs_tban.cpp:61 +#, fuzzy +msgid "Bans the user for a given length of time" +msgstr " TBAN Банит пользователя на указанный промежуток времени" + +#: ../cs_tban.cpp:103 msgid "Syntax: TBAN channel nick time" msgstr "Синтаксис: TBAN #канал ник время" diff --git a/modules/extra/language/hs_request.it_IT.po b/modules/extra/language/hs_request.it_IT.po index 0f50b0596..5fa437bad 100644 --- a/modules/extra/language/hs_request.it_IT.po +++ b/modules/extra/language/hs_request.it_IT.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Anope\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-02-04 03:41-0500\n" +"POT-Creation-Date: 2011-06-17 13:50-0400\n" "PO-Revision-Date: 2010-09-25 23:42-0400\n" "Last-Translator: Adam <adam@anope.org>\n" "Language-Team: Italian\n" @@ -17,58 +17,63 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../hs_request.cpp:193 -msgid "" -" ACTIVATE Approve the requested vHost of a user\n" -" REJECT Reject the requested vHost of a user\n" -" WAITING Convenience command for LIST +req" -msgstr "" -" ACTIVATE Approva il vHost richiesto di un utente\n" -" REJECT Rifiuta il vHost richiesto di un utente\n" -" WAITING Comando per LIST +req" - -#: ../hs_request.cpp:132 -msgid " REQUEST Request a vHost for your nick" -msgstr " REQUEST Richiede un vHost per il tuo nick" - -#: ../hs_request.cpp:274 +#: ../hs_request.cpp:267 #, c-format msgid "#%d Nick:%s, vhost:%s (%s - %s)" msgstr "" -#: ../hs_request.cpp:272 +#: ../hs_request.cpp:265 #, c-format msgid "#%d Nick:%s, vhost:%s@%s (%s - %s)" msgstr "" -#: ../hs_request.cpp:181 ../hs_request.cpp:245 +#: ../hs_request.cpp:180 ../hs_request.cpp:238 msgid "A memo informing the user will also be sent." msgstr "Viene inviato un memo per informare l'utente." -#: ../hs_request.cpp:179 +#: ../hs_request.cpp:178 msgid "Activate the requested vHost for the given nick." msgstr "Attiva il vHost richiesto per il nick specificato." -#: ../hs_request.cpp:278 +#: ../hs_request.cpp:139 +#, fuzzy +msgid "Approve the requested vHost of a user" +msgstr "Attiva il vHost richiesto per il nick specificato." + +#: ../hs_request.cpp:286 +msgid "Convenience command for LIST +req" +msgstr "" + +#: ../hs_request.cpp:271 #, c-format msgid "Displayed all records (Count: %d)" msgstr "" -#: ../hs_request.cpp:167 ../hs_request.cpp:234 +#: ../hs_request.cpp:166 ../hs_request.cpp:227 #, c-format msgid "No request for nick %s found." msgstr "Nessuna richiesta trovata per il nick %s." -#: ../hs_request.cpp:102 +#: ../hs_request.cpp:105 #, c-format msgid "Please wait %d seconds before requesting a new vHost" msgstr "Prego attendere %d secondi prima di richiedere un nuovo vHost" -#: ../hs_request.cpp:243 +#: ../hs_request.cpp:236 msgid "Reject the requested vHost for the given nick." msgstr "Rifiuta il vHost richiesto per il nick specificato." -#: ../hs_request.cpp:119 +#: ../hs_request.cpp:196 +#, fuzzy +msgid "Reject the requested vHost of a user" +msgstr "Rifiuta il vHost richiesto per il nick specificato." + +#: ../hs_request.cpp:52 +#, fuzzy +msgid "Request a vHost for your nick" +msgstr " REQUEST Richiede un vHost per il tuo nick" + +#: ../hs_request.cpp:122 msgid "" "Request the given vHost to be actived for your nick by the\n" "network administrators. Please be patient while your request\n" @@ -78,23 +83,23 @@ msgstr "" "degli amministratori di rete. Sei pregato di pazientare finchи la tua\n" "richiesta viene elaborata." -#: ../hs_request.cpp:177 ../hs_request.cpp:188 +#: ../hs_request.cpp:176 ../hs_request.cpp:187 msgid "Syntax: ACTIVATE nick" msgstr "Sintassi: ACTIVATE nick" -#: ../hs_request.cpp:241 ../hs_request.cpp:252 +#: ../hs_request.cpp:234 ../hs_request.cpp:245 msgid "Syntax: REJECT nick" msgstr "Sintassi: REJECT nick" -#: ../hs_request.cpp:65 ../hs_request.cpp:117 ../hs_request.cpp:127 +#: ../hs_request.cpp:68 ../hs_request.cpp:120 ../hs_request.cpp:130 msgid "Syntax: REQUEST vhost" msgstr "Sintassi: REQUEST vhost" -#: ../hs_request.cpp:307 +#: ../hs_request.cpp:296 msgid "Syntax: WAITING" msgstr "Sintassi: WAITING" -#: ../hs_request.cpp:309 +#: ../hs_request.cpp:298 msgid "" "This command is provided for convenience. It is essentially\n" "the same as performing a LIST +req ." @@ -102,34 +107,43 @@ msgstr "" "Questo comando и per comoditа. Praticamente и la stessa cosa che\n" "eseguire un LIST +req ." -#: ../hs_request.cpp:108 +#: ../hs_request.cpp:111 msgid "Your vHost has been requested" msgstr "Il tuo vHost и stato richiesto" -#: ../hs_request.cpp:159 +#: ../hs_request.cpp:158 msgid "[auto memo] Your requested vHost has been approved." msgstr "[auto memo] Il vHost da te richiesto и stato approvato." -#: ../hs_request.cpp:225 +#: ../hs_request.cpp:218 msgid "[auto memo] Your requested vHost has been rejected." msgstr "[auto memo] Il vHost da te richiesto и stato rifiutato." -#: ../hs_request.cpp:223 +#: ../hs_request.cpp:216 #, c-format msgid "[auto memo] Your requested vHost has been rejected. Reason: %s" msgstr "[auto memo] Il vHost da te richiesto и stato rifiutato. Motivo: %s" -#: ../hs_request.cpp:443 -#, c-format -msgid "[auto memo] vHost %s has been requested." +#: ../hs_request.cpp:438 +#, fuzzy, c-format +msgid "[auto memo] vHost %s has been requested by %s." msgstr "[auto memo] и stato richiesto il vHost %s." -#: ../hs_request.cpp:161 +#: ../hs_request.cpp:160 #, c-format msgid "vHost for %s has been activated" msgstr "Il vHost per %s и stato attivato" -#: ../hs_request.cpp:230 +#: ../hs_request.cpp:223 #, c-format msgid "vHost for %s has been rejected" msgstr "Il vHost per %s и stato rifiutato" + +#~ msgid "" +#~ " ACTIVATE Approve the requested vHost of a user\n" +#~ " REJECT Reject the requested vHost of a user\n" +#~ " WAITING Convenience command for LIST +req" +#~ msgstr "" +#~ " ACTIVATE Approva il vHost richiesto di un utente\n" +#~ " REJECT Rifiuta il vHost richiesto di un utente\n" +#~ " WAITING Comando per LIST +req" diff --git a/modules/extra/language/hs_request.nl_NL.po b/modules/extra/language/hs_request.nl_NL.po index 59852158c..2f1f065a1 100644 --- a/modules/extra/language/hs_request.nl_NL.po +++ b/modules/extra/language/hs_request.nl_NL.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Anope\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-02-04 03:41-0500\n" +"POT-Creation-Date: 2011-06-17 13:50-0400\n" "PO-Revision-Date: 2010-09-25 22:26-0400\n" "Last-Translator: Adam <adam@anope.org>\n" "Language-Team: Dutch\n" @@ -17,59 +17,64 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../hs_request.cpp:193 -msgid "" -" ACTIVATE Approve the requested vHost of a user\n" -" REJECT Reject the requested vHost of a user\n" -" WAITING Convenience command for LIST +req" -msgstr "" -" ACTIVATE Activeer de aangevraagde vHost voor een gebruiker\n" -" REJECT Keur de aangevraagde vHost voor een gebruiker af\n" -" WAITING Snelkoppeling naar LIST +req" - -#: ../hs_request.cpp:132 -msgid " REQUEST Request a vHost for your nick" -msgstr " REQUEST Vraag een vHost aan voor je nick" - -#: ../hs_request.cpp:274 +#: ../hs_request.cpp:267 #, c-format msgid "#%d Nick:%s, vhost:%s (%s - %s)" msgstr "" -#: ../hs_request.cpp:272 +#: ../hs_request.cpp:265 #, c-format msgid "#%d Nick:%s, vhost:%s@%s (%s - %s)" msgstr "" -#: ../hs_request.cpp:181 ../hs_request.cpp:245 +#: ../hs_request.cpp:180 ../hs_request.cpp:238 msgid "A memo informing the user will also be sent." msgstr "" "Een memo die de gebruiker op de hoogste stelt zal ook worden verstuurd." -#: ../hs_request.cpp:179 +#: ../hs_request.cpp:178 msgid "Activate the requested vHost for the given nick." msgstr "Activeer de aangevraagde vHost voor de gegeven nick." -#: ../hs_request.cpp:278 +#: ../hs_request.cpp:139 +#, fuzzy +msgid "Approve the requested vHost of a user" +msgstr "Activeer de aangevraagde vHost voor de gegeven nick." + +#: ../hs_request.cpp:286 +msgid "Convenience command for LIST +req" +msgstr "" + +#: ../hs_request.cpp:271 #, c-format msgid "Displayed all records (Count: %d)" msgstr "" -#: ../hs_request.cpp:167 ../hs_request.cpp:234 +#: ../hs_request.cpp:166 ../hs_request.cpp:227 #, c-format msgid "No request for nick %s found." msgstr "Geen aanvraag voor nick %s gevonden." -#: ../hs_request.cpp:102 +#: ../hs_request.cpp:105 #, c-format msgid "Please wait %d seconds before requesting a new vHost" msgstr "Wacht %d seconden voor je een nieuwe vHost aanvraagt" -#: ../hs_request.cpp:243 +#: ../hs_request.cpp:236 msgid "Reject the requested vHost for the given nick." msgstr "Keur de aangevraagde vHost voor de gegeven nick af." -#: ../hs_request.cpp:119 +#: ../hs_request.cpp:196 +#, fuzzy +msgid "Reject the requested vHost of a user" +msgstr "Keur de aangevraagde vHost voor de gegeven nick af." + +#: ../hs_request.cpp:52 +#, fuzzy +msgid "Request a vHost for your nick" +msgstr " REQUEST Vraag een vHost aan voor je nick" + +#: ../hs_request.cpp:122 msgid "" "Request the given vHost to be actived for your nick by the\n" "network administrators. Please be patient while your request\n" @@ -79,23 +84,23 @@ msgstr "" "netwerk beheerders. Het kan even duren voordat je aanvraag\n" "afgehandeld wordt." -#: ../hs_request.cpp:177 ../hs_request.cpp:188 +#: ../hs_request.cpp:176 ../hs_request.cpp:187 msgid "Syntax: ACTIVATE nick" msgstr "Gebruik: ACTIVATE nick" -#: ../hs_request.cpp:241 ../hs_request.cpp:252 +#: ../hs_request.cpp:234 ../hs_request.cpp:245 msgid "Syntax: REJECT nick" msgstr "Gebruik: REJECT nick" -#: ../hs_request.cpp:65 ../hs_request.cpp:117 ../hs_request.cpp:127 +#: ../hs_request.cpp:68 ../hs_request.cpp:120 ../hs_request.cpp:130 msgid "Syntax: REQUEST vhost" msgstr "Gebruik: REQUEST vhost" -#: ../hs_request.cpp:307 +#: ../hs_request.cpp:296 msgid "Syntax: WAITING" msgstr "Gebruik: WAITING" -#: ../hs_request.cpp:309 +#: ../hs_request.cpp:298 msgid "" "This command is provided for convenience. It is essentially\n" "the same as performing a LIST +req ." @@ -103,34 +108,43 @@ msgstr "" "Dit commando is beschikbaar als handigheid. Het is simpelweg\n" "hetzelfde als LIST +req ." -#: ../hs_request.cpp:108 +#: ../hs_request.cpp:111 msgid "Your vHost has been requested" msgstr "Je vHost is aangevraagd" -#: ../hs_request.cpp:159 +#: ../hs_request.cpp:158 msgid "[auto memo] Your requested vHost has been approved." msgstr "[auto memo] Je aangevraagde vHost is geaccepteerd." -#: ../hs_request.cpp:225 +#: ../hs_request.cpp:218 msgid "[auto memo] Your requested vHost has been rejected." msgstr "[auto memo] Je aangevraagde vHost is afgekeurd." -#: ../hs_request.cpp:223 +#: ../hs_request.cpp:216 #, c-format msgid "[auto memo] Your requested vHost has been rejected. Reason: %s" msgstr "[auto memo] Je aangevraagde vHost is afgekeurd. Reden: %s" -#: ../hs_request.cpp:443 -#, c-format -msgid "[auto memo] vHost %s has been requested." +#: ../hs_request.cpp:438 +#, fuzzy, c-format +msgid "[auto memo] vHost %s has been requested by %s." msgstr "[auto memo] vHost %s is aangevraagd." -#: ../hs_request.cpp:161 +#: ../hs_request.cpp:160 #, c-format msgid "vHost for %s has been activated" msgstr "vHost voor %s is geactiveerd" -#: ../hs_request.cpp:230 +#: ../hs_request.cpp:223 #, c-format msgid "vHost for %s has been rejected" msgstr "vHost voor %s is afgekeurd" + +#~ msgid "" +#~ " ACTIVATE Approve the requested vHost of a user\n" +#~ " REJECT Reject the requested vHost of a user\n" +#~ " WAITING Convenience command for LIST +req" +#~ msgstr "" +#~ " ACTIVATE Activeer de aangevraagde vHost voor een gebruiker\n" +#~ " REJECT Keur de aangevraagde vHost voor een gebruiker af\n" +#~ " WAITING Snelkoppeling naar LIST +req" diff --git a/modules/extra/language/hs_request.pot b/modules/extra/language/hs_request.pot index d2e0a7c35..1500def61 100644 --- a/modules/extra/language/hs_request.pot +++ b/modules/extra/language/hs_request.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-02-04 03:41-0500\n" +"POT-Creation-Date: 2011-06-17 13:50-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -16,111 +16,116 @@ msgstr "" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" -#: ../hs_request.cpp:193 -msgid "" -" ACTIVATE Approve the requested vHost of a user\n" -" REJECT Reject the requested vHost of a user\n" -" WAITING Convenience command for LIST +req" -msgstr "" - -#: ../hs_request.cpp:132 -msgid " REQUEST Request a vHost for your nick" -msgstr "" - -#: ../hs_request.cpp:274 +#: ../hs_request.cpp:267 #, c-format msgid "#%d Nick:%s, vhost:%s (%s - %s)" msgstr "" -#: ../hs_request.cpp:272 +#: ../hs_request.cpp:265 #, c-format msgid "#%d Nick:%s, vhost:%s@%s (%s - %s)" msgstr "" -#: ../hs_request.cpp:181 ../hs_request.cpp:245 +#: ../hs_request.cpp:180 ../hs_request.cpp:238 msgid "A memo informing the user will also be sent." msgstr "" -#: ../hs_request.cpp:179 +#: ../hs_request.cpp:178 msgid "Activate the requested vHost for the given nick." msgstr "" -#: ../hs_request.cpp:278 +#: ../hs_request.cpp:139 +msgid "Approve the requested vHost of a user" +msgstr "" + +#: ../hs_request.cpp:286 +msgid "Convenience command for LIST +req" +msgstr "" + +#: ../hs_request.cpp:271 #, c-format msgid "Displayed all records (Count: %d)" msgstr "" -#: ../hs_request.cpp:167 ../hs_request.cpp:234 +#: ../hs_request.cpp:166 ../hs_request.cpp:227 #, c-format msgid "No request for nick %s found." msgstr "" -#: ../hs_request.cpp:102 +#: ../hs_request.cpp:105 #, c-format msgid "Please wait %d seconds before requesting a new vHost" msgstr "" -#: ../hs_request.cpp:243 +#: ../hs_request.cpp:236 msgid "Reject the requested vHost for the given nick." msgstr "" -#: ../hs_request.cpp:119 +#: ../hs_request.cpp:196 +msgid "Reject the requested vHost of a user" +msgstr "" + +#: ../hs_request.cpp:52 +msgid "Request a vHost for your nick" +msgstr "" + +#: ../hs_request.cpp:122 msgid "" "Request the given vHost to be actived for your nick by the\n" "network administrators. Please be patient while your request\n" "is being considered." msgstr "" -#: ../hs_request.cpp:177 ../hs_request.cpp:188 +#: ../hs_request.cpp:176 ../hs_request.cpp:187 msgid "Syntax: ACTIVATE nick" msgstr "" -#: ../hs_request.cpp:241 ../hs_request.cpp:252 +#: ../hs_request.cpp:234 ../hs_request.cpp:245 msgid "Syntax: REJECT nick" msgstr "" -#: ../hs_request.cpp:65 ../hs_request.cpp:117 ../hs_request.cpp:127 +#: ../hs_request.cpp:68 ../hs_request.cpp:120 ../hs_request.cpp:130 msgid "Syntax: REQUEST vhost" msgstr "" -#: ../hs_request.cpp:307 +#: ../hs_request.cpp:296 msgid "Syntax: WAITING" msgstr "" -#: ../hs_request.cpp:309 +#: ../hs_request.cpp:298 msgid "" "This command is provided for convenience. It is essentially\n" "the same as performing a LIST +req ." msgstr "" -#: ../hs_request.cpp:108 +#: ../hs_request.cpp:111 msgid "Your vHost has been requested" msgstr "" -#: ../hs_request.cpp:159 +#: ../hs_request.cpp:158 msgid "[auto memo] Your requested vHost has been approved." msgstr "" -#: ../hs_request.cpp:225 +#: ../hs_request.cpp:218 msgid "[auto memo] Your requested vHost has been rejected." msgstr "" -#: ../hs_request.cpp:223 +#: ../hs_request.cpp:216 #, c-format msgid "[auto memo] Your requested vHost has been rejected. Reason: %s" msgstr "" -#: ../hs_request.cpp:443 +#: ../hs_request.cpp:438 #, c-format -msgid "[auto memo] vHost %s has been requested." +msgid "[auto memo] vHost %s has been requested by %s." msgstr "" -#: ../hs_request.cpp:161 +#: ../hs_request.cpp:160 #, c-format msgid "vHost for %s has been activated" msgstr "" -#: ../hs_request.cpp:230 +#: ../hs_request.cpp:223 #, c-format msgid "vHost for %s has been rejected" msgstr "" diff --git a/modules/extra/language/hs_request.pt_PT.po b/modules/extra/language/hs_request.pt_PT.po index a9fd9844c..74f767395 100644 --- a/modules/extra/language/hs_request.pt_PT.po +++ b/modules/extra/language/hs_request.pt_PT.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Anope\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-02-04 03:41-0500\n" +"POT-Creation-Date: 2011-06-17 13:50-0400\n" "PO-Revision-Date: 2010-09-25 22:48-0400\n" "Last-Translator: Adam <adam@anope.org>\n" "Language-Team: Portuguese\n" @@ -16,58 +16,63 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../hs_request.cpp:193 -msgid "" -" ACTIVATE Approve the requested vHost of a user\n" -" REJECT Reject the requested vHost of a user\n" -" WAITING Convenience command for LIST +req" -msgstr "" -" ACTIVATE Aprova o pedido de vHost de um usuбrio\n" -" REJECT Recusa o pedido de vHost de um usuбrio\n" -" WAITING Comando para LISTAR +req" - -#: ../hs_request.cpp:132 -msgid " REQUEST Request a vHost for your nick" -msgstr " REQUEST Request a vHost for your nick" - -#: ../hs_request.cpp:274 +#: ../hs_request.cpp:267 #, c-format msgid "#%d Nick:%s, vhost:%s (%s - %s)" msgstr "" -#: ../hs_request.cpp:272 +#: ../hs_request.cpp:265 #, c-format msgid "#%d Nick:%s, vhost:%s@%s (%s - %s)" msgstr "" -#: ../hs_request.cpp:181 ../hs_request.cpp:245 +#: ../hs_request.cpp:180 ../hs_request.cpp:238 msgid "A memo informing the user will also be sent." msgstr "Um memo informando o usuбrio tambйm serб enviado." -#: ../hs_request.cpp:179 +#: ../hs_request.cpp:178 msgid "Activate the requested vHost for the given nick." msgstr "Ativa o vHost solicitado para o nick fornecido." -#: ../hs_request.cpp:278 +#: ../hs_request.cpp:139 +#, fuzzy +msgid "Approve the requested vHost of a user" +msgstr "Ativa o vHost solicitado para o nick fornecido." + +#: ../hs_request.cpp:286 +msgid "Convenience command for LIST +req" +msgstr "" + +#: ../hs_request.cpp:271 #, c-format msgid "Displayed all records (Count: %d)" msgstr "" -#: ../hs_request.cpp:167 ../hs_request.cpp:234 +#: ../hs_request.cpp:166 ../hs_request.cpp:227 #, c-format msgid "No request for nick %s found." msgstr "Nenhum pedido encontrado para o nick %s." -#: ../hs_request.cpp:102 +#: ../hs_request.cpp:105 #, c-format msgid "Please wait %d seconds before requesting a new vHost" msgstr "Por favor, espere %d segundos antes de fazer um novo pedido de vHost" -#: ../hs_request.cpp:243 +#: ../hs_request.cpp:236 msgid "Reject the requested vHost for the given nick." msgstr "Recusa o pedido de vHost para o nick fornecido." -#: ../hs_request.cpp:119 +#: ../hs_request.cpp:196 +#, fuzzy +msgid "Reject the requested vHost of a user" +msgstr "Recusa o pedido de vHost para o nick fornecido." + +#: ../hs_request.cpp:52 +#, fuzzy +msgid "Request a vHost for your nick" +msgstr " REQUEST Request a vHost for your nick" + +#: ../hs_request.cpp:122 msgid "" "Request the given vHost to be actived for your nick by the\n" "network administrators. Please be patient while your request\n" @@ -77,23 +82,23 @@ msgstr "" "administradores da rede. Por favor, tenha paciкncia\n" "enquanto seu pedido й analisado." -#: ../hs_request.cpp:177 ../hs_request.cpp:188 +#: ../hs_request.cpp:176 ../hs_request.cpp:187 msgid "Syntax: ACTIVATE nick" msgstr "Sintaxe: ACTIVATE nick" -#: ../hs_request.cpp:241 ../hs_request.cpp:252 +#: ../hs_request.cpp:234 ../hs_request.cpp:245 msgid "Syntax: REJECT nick" msgstr "Sintaxe: REJECT nick" -#: ../hs_request.cpp:65 ../hs_request.cpp:117 ../hs_request.cpp:127 +#: ../hs_request.cpp:68 ../hs_request.cpp:120 ../hs_request.cpp:130 msgid "Syntax: REQUEST vhost" msgstr "Sintaxe: REQUEST vhost" -#: ../hs_request.cpp:307 +#: ../hs_request.cpp:296 msgid "Syntax: WAITING" msgstr "Sintaxe: WAITING" -#: ../hs_request.cpp:309 +#: ../hs_request.cpp:298 msgid "" "This command is provided for convenience. It is essentially\n" "the same as performing a LIST +req ." @@ -101,34 +106,43 @@ msgstr "" "Este comando й usado por conveniкncia. Й essencialmente\n" "o mesmo que fazer um LIST +req" -#: ../hs_request.cpp:108 +#: ../hs_request.cpp:111 msgid "Your vHost has been requested" msgstr "Seu pedido de vHost foi encaminhado" -#: ../hs_request.cpp:159 +#: ../hs_request.cpp:158 msgid "[auto memo] Your requested vHost has been approved." msgstr "[Auto Memo] Seu pedido de vHost foi aprovado." -#: ../hs_request.cpp:225 +#: ../hs_request.cpp:218 msgid "[auto memo] Your requested vHost has been rejected." msgstr "[Auto Memo] Seu pedido de vHost foi recusado." -#: ../hs_request.cpp:223 +#: ../hs_request.cpp:216 #, c-format msgid "[auto memo] Your requested vHost has been rejected. Reason: %s" msgstr "[Auto Memo] Seu pedido de vHost foi recusado. Motivo: %s" -#: ../hs_request.cpp:443 -#, c-format -msgid "[auto memo] vHost %s has been requested." +#: ../hs_request.cpp:438 +#, fuzzy, c-format +msgid "[auto memo] vHost %s has been requested by %s." msgstr "[Auto Memo] O vHost %s foi solicitado." -#: ../hs_request.cpp:161 +#: ../hs_request.cpp:160 #, c-format msgid "vHost for %s has been activated" msgstr "O vHost para %s foi ativado" -#: ../hs_request.cpp:230 +#: ../hs_request.cpp:223 #, c-format msgid "vHost for %s has been rejected" msgstr "O vHost de %s foi recusado" + +#~ msgid "" +#~ " ACTIVATE Approve the requested vHost of a user\n" +#~ " REJECT Reject the requested vHost of a user\n" +#~ " WAITING Convenience command for LIST +req" +#~ msgstr "" +#~ " ACTIVATE Aprova o pedido de vHost de um usuбrio\n" +#~ " REJECT Recusa o pedido de vHost de um usuбrio\n" +#~ " WAITING Comando para LISTAR +req" diff --git a/modules/extra/language/hs_request.ru_RU.po b/modules/extra/language/hs_request.ru_RU.po index 646fc4714..81c905802 100644 --- a/modules/extra/language/hs_request.ru_RU.po +++ b/modules/extra/language/hs_request.ru_RU.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Anope\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-02-04 03:41-0500\n" +"POT-Creation-Date: 2011-06-17 13:50-0400\n" "PO-Revision-Date: 2010-09-25 23:27-0400\n" "Last-Translator: Adam <adam@anope.org>\n" "Language-Team: Russian\n" @@ -18,58 +18,63 @@ msgstr "" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%" "10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -#: ../hs_request.cpp:193 -msgid "" -" ACTIVATE Approve the requested vHost of a user\n" -" REJECT Reject the requested vHost of a user\n" -" WAITING Convenience command for LIST +req" -msgstr "" -" ACTIVATE Утвердить запрашиваемый пользователем vHost\n" -" REJECT Отклонить запрашиваемый пользователем vHost\n" -" WAITING Список запросов ожидающих обработки (аналог LIST +req)" - -#: ../hs_request.cpp:132 -msgid " REQUEST Request a vHost for your nick" -msgstr " REQUEST Запрос на vHost для вашего текущего ника" - -#: ../hs_request.cpp:274 +#: ../hs_request.cpp:267 #, c-format msgid "#%d Nick:%s, vhost:%s (%s - %s)" msgstr "" -#: ../hs_request.cpp:272 +#: ../hs_request.cpp:265 #, c-format msgid "#%d Nick:%s, vhost:%s@%s (%s - %s)" msgstr "" -#: ../hs_request.cpp:181 ../hs_request.cpp:245 +#: ../hs_request.cpp:180 ../hs_request.cpp:238 msgid "A memo informing the user will also be sent." msgstr "Пользователю будет послано авто-уведомление об активации его запроса." -#: ../hs_request.cpp:179 +#: ../hs_request.cpp:178 msgid "Activate the requested vHost for the given nick." msgstr "Утвердить запрашиваемый vHost для указанного ника." -#: ../hs_request.cpp:278 +#: ../hs_request.cpp:139 +#, fuzzy +msgid "Approve the requested vHost of a user" +msgstr "Утвердить запрашиваемый vHost для указанного ника." + +#: ../hs_request.cpp:286 +msgid "Convenience command for LIST +req" +msgstr "" + +#: ../hs_request.cpp:271 #, c-format msgid "Displayed all records (Count: %d)" msgstr "" -#: ../hs_request.cpp:167 ../hs_request.cpp:234 +#: ../hs_request.cpp:166 ../hs_request.cpp:227 #, c-format msgid "No request for nick %s found." msgstr "Запрос на vHost для ника %s не найден." -#: ../hs_request.cpp:102 +#: ../hs_request.cpp:105 #, c-format msgid "Please wait %d seconds before requesting a new vHost" msgstr "Пожалуйста, подождите %d секунд, прежде чем запрашивать новый vHost" -#: ../hs_request.cpp:243 +#: ../hs_request.cpp:236 msgid "Reject the requested vHost for the given nick." msgstr "Отклонить запрашиваемый vHost для указанного ника." -#: ../hs_request.cpp:119 +#: ../hs_request.cpp:196 +#, fuzzy +msgid "Reject the requested vHost of a user" +msgstr "Отклонить запрашиваемый vHost для указанного ника." + +#: ../hs_request.cpp:52 +#, fuzzy +msgid "Request a vHost for your nick" +msgstr " REQUEST Запрос на vHost для вашего текущего ника" + +#: ../hs_request.cpp:122 msgid "" "Request the given vHost to be actived for your nick by the\n" "network administrators. Please be patient while your request\n" @@ -79,23 +84,23 @@ msgstr "" "администраторов сети. Просьба проявить терпение, пока запрос\n" "рассматривается администрацией." -#: ../hs_request.cpp:177 ../hs_request.cpp:188 +#: ../hs_request.cpp:176 ../hs_request.cpp:187 msgid "Syntax: ACTIVATE nick" msgstr "Синтаксис: ACTIVATE ник" -#: ../hs_request.cpp:241 ../hs_request.cpp:252 +#: ../hs_request.cpp:234 ../hs_request.cpp:245 msgid "Syntax: REJECT nick" msgstr "Синтаксис: REJECT ник" -#: ../hs_request.cpp:65 ../hs_request.cpp:117 ../hs_request.cpp:127 +#: ../hs_request.cpp:68 ../hs_request.cpp:120 ../hs_request.cpp:130 msgid "Syntax: REQUEST vhost" msgstr "Синтаксис: REQUEST vHost" -#: ../hs_request.cpp:307 +#: ../hs_request.cpp:296 msgid "Syntax: WAITING" msgstr "Синтаксис: WAITING" -#: ../hs_request.cpp:309 +#: ../hs_request.cpp:298 msgid "" "This command is provided for convenience. It is essentially\n" "the same as performing a LIST +req ." @@ -104,34 +109,43 @@ msgstr "" "запросов,\n" "ожидающих обработки. Аналогичная команда: LIST +req ." -#: ../hs_request.cpp:108 +#: ../hs_request.cpp:111 msgid "Your vHost has been requested" msgstr "Ваш запрос на vHost отправлен." -#: ../hs_request.cpp:159 +#: ../hs_request.cpp:158 msgid "[auto memo] Your requested vHost has been approved." msgstr "[авто-сообщение] Запрашиваемый вами vHost утвержден и активирован." -#: ../hs_request.cpp:225 +#: ../hs_request.cpp:218 msgid "[auto memo] Your requested vHost has been rejected." msgstr "[авто-сообщение] Запрашиваемый вами vHost отклонен." -#: ../hs_request.cpp:223 +#: ../hs_request.cpp:216 #, c-format msgid "[auto memo] Your requested vHost has been rejected. Reason: %s" msgstr "[авто-сообщение] Запрашиваемый вами vHost отклонен. Причина: %s" -#: ../hs_request.cpp:443 -#, c-format -msgid "[auto memo] vHost %s has been requested." +#: ../hs_request.cpp:438 +#, fuzzy, c-format +msgid "[auto memo] vHost %s has been requested by %s." msgstr "[авто-сообщение] Был запрошен vHost %s" -#: ../hs_request.cpp:161 +#: ../hs_request.cpp:160 #, c-format msgid "vHost for %s has been activated" msgstr "vHost для %s успешно активирован" -#: ../hs_request.cpp:230 +#: ../hs_request.cpp:223 #, c-format msgid "vHost for %s has been rejected" msgstr "vHost для %s отклонен." + +#~ msgid "" +#~ " ACTIVATE Approve the requested vHost of a user\n" +#~ " REJECT Reject the requested vHost of a user\n" +#~ " WAITING Convenience command for LIST +req" +#~ msgstr "" +#~ " ACTIVATE Утвердить запрашиваемый пользователем vHost\n" +#~ " REJECT Отклонить запрашиваемый пользователем vHost\n" +#~ " WAITING Список запросов ожидающих обработки (аналог LIST +req)" diff --git a/modules/extra/language/m_ldap_authentication.pot b/modules/extra/language/m_ldap_authentication.pot new file mode 100644 index 000000000..dd3504074 --- /dev/null +++ b/modules/extra/language/m_ldap_authentication.pot @@ -0,0 +1,27 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-06-17 13:50-0400\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: LANGUAGE <LL@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../m_ldap_authentication.cpp:60 +#, c-format +msgid "Your account %s has been successfully created." +msgstr "" + +#: ../m_ldap_authentication.cpp:132 +#, c-format +msgid "Your email has been updated to %s" +msgstr "" diff --git a/modules/extra/language/ns_maxemail.pot b/modules/extra/language/ns_maxemail.pot index c799470d3..fe8d4167d 100644 --- a/modules/extra/language/ns_maxemail.pot +++ b/modules/extra/language/ns_maxemail.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-02-04 03:41-0500\n" +"POT-Creation-Date: 2011-06-17 13:50-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" diff --git a/modules/extra/language/os_defcon.pot b/modules/extra/language/os_defcon.pot new file mode 100644 index 000000000..07591f5a0 --- /dev/null +++ b/modules/extra/language/os_defcon.pot @@ -0,0 +1,100 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-06-17 13:50-0400\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: LANGUAGE <LL@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../os_defcon.cpp:122 ../os_defcon.cpp:214 +#, c-format +msgid "%s Changed the DEFCON level to %d" +msgstr "" + +#: ../os_defcon.cpp:162 ../os_defcon.cpp:638 +msgid "* AKILL any new clients connecting" +msgstr "" + +#: ../os_defcon.cpp:152 ../os_defcon.cpp:628 +#, c-format +msgid "* Force Chan Modes (%s) to be set on all channels" +msgstr "" + +#: ../os_defcon.cpp:158 ../os_defcon.cpp:634 +msgid "* Ignore any non-opers with message" +msgstr "" + +#: ../os_defcon.cpp:156 ../os_defcon.cpp:632 +msgid "* Kill any NEW clients connecting" +msgstr "" + +#: ../os_defcon.cpp:150 ../os_defcon.cpp:626 +msgid "* No MLOCK changes" +msgstr "" + +#: ../os_defcon.cpp:146 ../os_defcon.cpp:622 +msgid "* No new channel registrations" +msgstr "" + +#: ../os_defcon.cpp:164 ../os_defcon.cpp:640 +msgid "* No new memos sent" +msgstr "" + +#: ../os_defcon.cpp:148 ../os_defcon.cpp:624 +msgid "* No new nick registrations" +msgstr "" + +#: ../os_defcon.cpp:160 ../os_defcon.cpp:636 +msgid "* Silently ignore non-opers" +msgstr "" + +#: ../os_defcon.cpp:154 ../os_defcon.cpp:630 +#, c-format +msgid "* Use the reduced session limit of %d" +msgstr "" + +#: ../os_defcon.cpp:245 +msgid "DEFCON [1|2|3|4|5]" +msgstr "" + +#: ../os_defcon.cpp:170 +msgid "Manipulate the DefCon system" +msgstr "" + +#: ../os_defcon.cpp:485 ../os_defcon.cpp:502 ../os_defcon.cpp:513 +#: ../os_defcon.cpp:521 ../os_defcon.cpp:532 +msgid "Services are in Defcon mode, Please try again later." +msgstr "" + +#: ../os_defcon.cpp:180 ../os_defcon.cpp:211 +#, c-format +msgid "Services are now at DEFCON %d" +msgstr "" + +#: ../os_defcon.cpp:236 +msgid "" +"Syntax: DEFCON [1|2|3|4|5]\n" +"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." +msgstr "" + +#: ../os_defcon.cpp:129 +#, c-format +msgid "The Defcon Level is now at Level: %d" +msgstr "" + +#: ../os_defcon.cpp:223 +#, c-format +msgid "The Defcon level is now at: %d" +msgstr "" diff --git a/modules/extra/language/update.sh b/modules/extra/language/update.sh index 3ca7081ae..1f16ea961 100755 --- a/modules/extra/language/update.sh +++ b/modules/extra/language/update.sh @@ -3,7 +3,7 @@ for f in `ls ../*.cpp` do BASE=`basename $f | cut -d'.' -f1` - xgettext -C -s -d $BASE -o $BASE.pot --from-code=utf-8 --keyword=_ $f + xgettext -C -s -d $BASE -o $BASE.pot --from-code=utf-8 --keyword --keyword=_ $f done for f in `ls *.po` diff --git a/modules/extra/m_async_commands.cpp b/modules/extra/m_async_commands.cpp index 5ea7735f9..c223bcdc5 100644 --- a/modules/extra/m_async_commands.cpp +++ b/modules/extra/m_async_commands.cpp @@ -48,7 +48,7 @@ class AsynchCommandMutex : public CommandMutex if (!command->permission.empty() && !u->HasCommand(command->permission)) { - u->SendMessage(bi, _(ACCESS_DENIED)); + u->SendMessage(bi, ACCESS_DENIED); Log(LOG_COMMAND, "denied", bi) << "Access denied for user " << u->GetMask() << " with command " << command; } else @@ -206,7 +206,6 @@ class ModuleAsynchCommands : public Module, public Pipe, public AsynchCommandsSe current_command = cm; // Unlock to give processing back to the command thread - PushLanguage("anope", cm->source.u->Account() ? cm->source.u->Account()->language : ""); if (!cm->started) { try @@ -216,7 +215,6 @@ class ModuleAsynchCommands : public Module, public Pipe, public AsynchCommandsSe catch (const CoreException &) { delete cm; - PopLanguage(); continue; } } @@ -224,7 +222,6 @@ class ModuleAsynchCommands : public Module, public Pipe, public AsynchCommandsSe cm->mutex.Unlock(); // Relock to regain processing once the command thread hangs for any reason main_mutex.Lock(); - PopLanguage(); current_command = NULL; } diff --git a/modules/extra/ns_maxemail.cpp b/modules/extra/ns_maxemail.cpp index e4c7ec8cc..25feffd79 100644 --- a/modules/extra/ns_maxemail.cpp +++ b/modules/extra/ns_maxemail.cpp @@ -28,9 +28,9 @@ class NSMaxEmail : public Module return false; if (this->NSEmailMax == 1) - this->SendMessage(source, _("The given email address has reached its usage limit of 1 user.")); + source.Reply(_("The given email address has reached its usage limit of 1 user.")); else - this->SendMessage(source, _("The given email address has reached its usage limit of %d users."), this->NSEmailMax); + source.Reply(_("The given email address has reached its usage limit of %d users."), this->NSEmailMax); return true; } diff --git a/modules/extra/os_defcon.cpp b/modules/extra/os_defcon.cpp index a23a1a4a8..b7e523312 100644 --- a/modules/extra/os_defcon.cpp +++ b/modules/extra/os_defcon.cpp @@ -119,14 +119,14 @@ class DefConTimeout : public CallBack DConfig.defaultlevel = level; FOREACH_MOD(I_OnDefconLevel, OnDefconLevel(level)); Log(operserv->Bot(), "operserv/defcon") << "Defcon level timeout, returning to level " << level; - ircdproto->SendGlobops(operserv->Bot(), GetString(NULL, gtl("\002%s\002 Changed the DEFCON level to \002%d\002")).c_str(), Config->s_OperServ.c_str(), level); + ircdproto->SendGlobops(operserv->Bot(), translate(_("\002%s\002 Changed the DEFCON level to \002%d\002")), Config->s_OperServ.c_str(), level); if (DConfig.globalondefcon) { if (!DConfig.offmessage.empty()) global->SendGlobal(global->Bot(), "", DConfig.offmessage); else - global->SendGlobal(global->Bot(), "", Anope::printf(GetString(NULL, gtl("The Defcon Level is now at Level: \002%d\002")).c_str(), DConfig.defaultlevel)); + global->SendGlobal(global->Bot(), "", Anope::printf(translate(_("The Defcon Level is now at Level: \002%d\002")), DConfig.defaultlevel)); if (!DConfig.message.empty()) global->SendGlobal(global->Bot(), "", DConfig.message); diff --git a/src/botserv.cpp b/src/botserv.cpp index 48b355f24..9d7c38817 100644 --- a/src/botserv.cpp +++ b/src/botserv.cpp @@ -51,7 +51,7 @@ void bot_raw_ban(User *requester, ChannelInfo *ci, User *u, const Anope::string if (ModeManager::FindUserModeByName(UMODE_PROTECTED) && u->IsProtected() && requester != u) { - ircdproto->SendPrivmsg(ci->bi, ci->name, "%s", GetString(requester->Account(), ACCESS_DENIED).c_str()); + ircdproto->SendPrivmsg(ci->bi, ci->name, "%s", translate(requester, ACCESS_DENIED)); return; } @@ -62,7 +62,7 @@ void bot_raw_ban(User *requester, ChannelInfo *ci, User *u, const Anope::string if (matches_list(ci->c, u, CMODE_EXCEPT)) { - ircdproto->SendPrivmsg(ci->bi, ci->name, "%s", GetString(requester->Account(), gtl("User matches channel except.")).c_str()); + ircdproto->SendPrivmsg(ci->bi, ci->name, "%s", translate(requester, _("User matches channel except."))); return; } @@ -93,7 +93,7 @@ void bot_raw_kick(User *requester, ChannelInfo *ci, User *u, const Anope::string if (ModeManager::FindUserModeByName(UMODE_PROTECTED) && u->IsProtected() && requester != u) { - ircdproto->SendPrivmsg(ci->bi, ci->name, "%s", GetString(requester->Account(), ACCESS_DENIED).c_str()); + ircdproto->SendPrivmsg(ci->bi, ci->name, "%s", translate(requester, ACCESS_DENIED)); return; } diff --git a/src/command.cpp b/src/command.cpp index 04295bbe6..cb39ba926 100644 --- a/src/command.cpp +++ b/src/command.cpp @@ -29,7 +29,10 @@ void CommandSource::Reply(const Anope::string &message) sepstream sep(message, '\n'); Anope::string tok; while (sep.GetToken(tok)) - this->reply.push_back(tok); + { + const char *translated_message = translate(this->u, tok.c_str()); + this->reply.push_back(translated_message); + } } void CommandSource::DoReply() @@ -76,7 +79,7 @@ const Anope::string &Command::GetDesc() const void Command::OnServHelp(CommandSource &source) { - source.Reply(" %-14s %s", this->name.c_str(), _(this->GetDesc().c_str())); + source.Reply(" %-14s %s", this->name.c_str(), translate(source.u, (this->GetDesc().c_str()))); } bool Command::OnHelp(CommandSource &source, const Anope::string &subcommand) { return false; } diff --git a/src/commands.cpp b/src/commands.cpp index 194547a58..fea6e4376 100644 --- a/src/commands.cpp +++ b/src/commands.cpp @@ -53,21 +53,17 @@ void mod_run_cmd(BotInfo *bi, User *u, ChannelInfo *ci, Command *c, const Anope: if (!bi || !u) return; - PushLanguage("anope", u->Account() ? u->Account()->language : ""); - if (!c) { u->SendMessage(bi, _("Unknown command \002%s\002. \"%s%s HELP\" for help."), command.c_str(), Config->UseStrictPrivMsgString.c_str(), bi->nick.c_str()); - PopLanguage(); return; } // Command requires registered users only if (!c->HasFlag(CFLAG_ALLOW_UNREGISTERED) && !u->IsIdentified()) { - u->SendMessage(bi, _(NICK_IDENTIFY_REQUIRED), Config->UseStrictPrivMsgString.c_str(), Config->s_NickServ.c_str()); + u->SendMessage(bi, NICK_IDENTIFY_REQUIRED, Config->UseStrictPrivMsgString.c_str(), Config->s_NickServ.c_str()); Log(LOG_COMMAND, "denied", bi) << "Access denied for unregistered user " << u->GetMask() << " with command " << command; - PopLanguage(); return; } @@ -107,7 +103,6 @@ void mod_run_cmd(BotInfo *bi, User *u, ChannelInfo *ci, Command *c, const Anope: { c->OnSyntaxError(source, !params.empty() ? params[params.size() - 1] : ""); source.DoReply(); - PopLanguage(); return; } @@ -116,17 +111,15 @@ void mod_run_cmd(BotInfo *bi, User *u, ChannelInfo *ci, Command *c, const Anope: if (MOD_RESULT == EVENT_STOP) { source.DoReply(); - PopLanguage(); return; } // If the command requires a permission, and they aren't registered or don't have the required perm, DENIED if (!c->permission.empty() && !u->HasCommand(c->permission)) { - u->SendMessage(bi, _(ACCESS_DENIED)); + u->SendMessage(bi, ACCESS_DENIED); Log(LOG_COMMAND, "denied", bi) << "Access denied for user " << u->GetMask() << " with command " << command; source.DoReply(); - PopLanguage(); return; } @@ -137,8 +130,6 @@ void mod_run_cmd(BotInfo *bi, User *u, ChannelInfo *ci, Command *c, const Anope: FOREACH_MOD(I_OnPostCommand, OnPostCommand(source, c, params)); source.DoReply(); } - - PopLanguage(); } /** diff --git a/src/language.cpp b/src/language.cpp index 59df4c7dc..4e1b94e02 100644 --- a/src/language.cpp +++ b/src/language.cpp @@ -2,6 +2,7 @@ #include <stack> std::vector<Anope::string> languages; +std::vector<Anope::string> domains; void InitLanguages() { @@ -34,49 +35,34 @@ void InitLanguages() #endif } -const Anope::string GetString(NickCore *nc, const char *string) +const char *translate(const char *string) { - return GetString("anope", nc ? nc->language : Config->NSDefLanguage, string); + return anope_gettext(Config->NSDefLanguage.c_str(), string); } -const Anope::string GetString(const Anope::string &domain, const Anope::string &lang, const char *string) +const char *translate(User *u, const char *string) { - PushLanguage(domain, lang); - const char *t_string = anope_gettext(string); - PopLanguage(); - return t_string; + return translate(u ? u->Account() : NULL, string); } -#if GETTEXT_FOUND -static std::stack<std::pair<Anope::string, Anope::string > > language_stack; - -void PushLanguage(const Anope::string &domain, Anope::string language) +const char *translate(NickCore *nc, const char *string) { - if (language.empty() && !Config->NSDefLanguage.empty()) - language = Config->NSDefLanguage; - - language_stack.push(std::make_pair(domain, language)); + return anope_gettext(nc ? nc->language.c_str() : Config->NSDefLanguage.c_str(), string); } -void PopLanguage() -{ - language_stack.pop(); -} +#if GETTEXT_FOUND /* Used by gettext to make it always dynamically load language strings (so we can drop them in while Anope is running) */ extern "C" int _nl_msg_cat_cntr; -const char *anope_gettext(const char *string) +const char *anope_gettext(const char *lang, const char *string) { - std::pair<Anope::string, Anope::string> lang_info; - if (!language_stack.empty()) - lang_info = language_stack.top(); - if (*string == 0 || lang_info.first.empty() || lang_info.second.empty()) - return string; + if (!string || !*string || !lang || !*lang) + return string ? string : ""; ++_nl_msg_cat_cntr; #ifdef _WIN32 - SetThreadLocale(MAKELCID(MAKELANGID(WindowsGetLanguage(lang_info.second.c_str()), SUBLANG_DEFAULT), SORT_DEFAULT)); + SetThreadLocale(MAKELCID(MAKELANGID(WindowsGetLanguage(lang), SUBLANG_DEFAULT), SORT_DEFAULT)); #else /* First, set LANGUAGE env variable. * Some systems (Debian) don't care about this, so we must setlocale LC_ALL aswell. @@ -85,11 +71,13 @@ const char *anope_gettext(const char *string) * use the LANGUAGE env variable. We must reset the locale to en_US (or, anything not * C or POSIX) then. */ - setenv("LANGUAGE", lang_info.second.c_str(), 1); - if (setlocale(LC_ALL, lang_info.second.c_str()) == NULL) + setenv("LANGUAGE", lang, 1); + if (setlocale(LC_ALL, lang) == NULL) setlocale(LC_ALL, "en_US"); #endif - const char *translated_string = dgettext(lang_info.first.c_str(), string); + const char *translated_string = dgettext("anope", string); + for (unsigned i = 0; translated_string == string && i < domains.size(); ++i) + translated_string = dgettext(domains[i].c_str(), string); #ifdef _WIN32 SetThreadLocale(MAKELCID(MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), SORT_DEFAULT)); #else @@ -97,18 +85,10 @@ const char *anope_gettext(const char *string) setlocale(LC_ALL, ""); #endif - return translated_string != NULL ? translated_string : ""; + return translated_string; } #else -void PushLanguage(const Anope::string &, Anope::string) -{ -} - -void PopLanguage() -{ -} - -const char *anope_gettext(const char *string) +const char *anope_gettext(const char *lang, const char *string) { return string != NULL ? string : ""; } diff --git a/src/misc.cpp b/src/misc.cpp index 6b88a5846..73791a0cc 100644 --- a/src/misc.cpp +++ b/src/misc.cpp @@ -212,26 +212,26 @@ Anope::string duration(const time_t &t, NickCore *nc) time_t seconds = (t) % 60; if (!days && !hours && !minutes) - return stringify(seconds) + " " + (seconds != 1 ? GetString(nc, gtl("seconds")) : GetString(nc, gtl("second"))); + return stringify(seconds) + " " + (seconds != 1 ? translate(nc, _("seconds")) : translate(nc, _("second"))); else { bool need_comma = false; Anope::string buffer; if (days) { - buffer = stringify(days) + " " + (days != 1 ? GetString(nc, gtl("days")) : GetString(nc, gtl("day"))); + buffer = stringify(days) + " " + (days != 1 ? translate(nc, _("days")) : translate(nc, _("day"))); need_comma = true; } if (hours) { buffer += need_comma ? ", " : ""; - buffer += stringify(hours) + " " + (hours != 1 ? GetString(nc, gtl("hours")) : GetString(nc, gtl("hour"))); + buffer += stringify(hours) + " " + (hours != 1 ? translate(nc, _("hounslaters")) : translate(nc, _("hour"))); need_comma = true; } if (minutes) { buffer += need_comma ? ", " : ""; - buffer += stringify(minutes) + " " + (minutes != 1 ? GetString(nc, gtl("minutes")) : GetString(nc, gtl("minute"))); + buffer += stringify(minutes) + " " + (minutes != 1 ? translate(nc, _("minutes")) : translate(nc, _("minute"))); } return buffer; } @@ -240,14 +240,13 @@ Anope::string duration(const time_t &t, NickCore *nc) Anope::string do_strftime(const time_t &t, NickCore *nc, bool short_output) { tm tm = *localtime(&t); - char buf[BUFSIZE]; - strftime(buf, sizeof(buf), GetString(nc, gtl("%b %d %H:%M:%S %Y %Z")).c_str(), &tm); + const char *buf = translate(nc, _("%b %d %H:%M:%S %Y %Z")); if (short_output) return buf; if (t < Anope::CurTime) - return Anope::string(buf) + " " + Anope::printf(GetString(nc, gtl("(%s ago)")).c_str(), duration(Anope::CurTime - t).c_str(), nc); + return Anope::string(buf) + " " + Anope::printf(translate(nc, _("(%s ago)")), duration(Anope::CurTime - t).c_str(), nc); else - return Anope::string(buf) + " " + Anope::printf(GetString(nc, gtl("(%s from now)")).c_str(), duration(t - Anope::CurTime).c_str(), nc); + return Anope::string(buf) + " " + Anope::printf(translate(nc, _("(%s from now)")), duration(t - Anope::CurTime).c_str(), nc); } /*************************************************************************/ @@ -261,9 +260,9 @@ Anope::string do_strftime(const time_t &t, NickCore *nc, bool short_output) Anope::string expire_left(NickCore *nc, time_t expires) { if (!expires) - return GetString(nc, NO_EXPIRE); + return translate(nc, NO_EXPIRE); else if (expires <= Anope::CurTime) - return GetString(nc, gtl("expires at next database update")); + return translate(nc, _("expires at next database update")); else { char buf[256]; @@ -272,21 +271,21 @@ Anope::string expire_left(NickCore *nc, time_t expires) if (diff >= 86400) { int days = diff / 86400; - snprintf(buf, sizeof(buf), GetString(nc, days == 1 ? gtl("expires in %d day") : gtl("expires in %d days")).c_str(), days); + snprintf(buf, sizeof(buf), translate(nc, days == 1 ? _("expires in %d day") : _("expires in %d days")), days); } else { if (diff <= 3600) { int minutes = diff / 60; - snprintf(buf, sizeof(buf), GetString(nc, minutes == 1 ? gtl("expires in %d minute") : gtl("expires in %d minutes")).c_str(), minutes); + snprintf(buf, sizeof(buf), translate(nc, minutes == 1 ? _("expires in %d minute") : _("expires in %d minutes")), minutes); } else { int hours = diff / 3600, minutes; diff -= hours * 3600; minutes = diff / 60; - snprintf(buf, sizeof(buf), GetString(nc, hours == 1 && minutes == 1 ? gtl("expires in %d hour, %d minute") : (hours == 1 && minutes != 1 ? gtl("expires in %d hour, %d minutes") : (hours != 1 && minutes == 1 ? gtl("expires in %d hours, %d minute") : gtl("expires in %d hours, %d minutes")))).c_str(), hours, minutes); + snprintf(buf, sizeof(buf), translate(nc, hours == 1 && minutes == 1 ? _("expires in %d hour, %d minute") : (hours == 1 && minutes != 1 ? _("expires in %d hour, %d minutes") : (hours != 1 && minutes == 1 ? _("expires in %d hours, %d minute") : _("expires in %d hours, %d minutes")))), hours, minutes); } } diff --git a/src/module.cpp b/src/module.cpp index 929984e2e..7ec6892ac 100644 --- a/src/module.cpp +++ b/src/module.cpp @@ -28,8 +28,15 @@ Module::Module(const Anope::string &modname, const Anope::string &, ModType modt Modules.push_back(this); #if GETTEXT_FOUND - if (!bindtextdomain(this->name.c_str(), (services_dir + "/languages/").c_str())) - Log() << "Error calling bindtextdomain, " << Anope::LastError(); + for (unsigned i = 0; i < languages.size(); ++i) + if (IsFile("languages/" + languages[i] + "/LC_MESSAGES/" + modname + ".mo")) + { + if (!bindtextdomain(this->name.c_str(), (services_dir + "/languages/").c_str())) + Log() << "Error calling bindtextdomain, " << Anope::LastError(); + else + domains.push_back(modname); + break; + } #endif } @@ -45,6 +52,12 @@ Module::~Module() std::list<Module *>::iterator it = std::find(Modules.begin(), Modules.end(), this); if (it != Modules.end()) Modules.erase(it); + +#if GETTEXT_FOUND + std::vector<Anope::string>::iterator dit = std::find(domains.begin(), domains.end(), this->name); + if (dit != domains.end()) + domains.erase(dit); +#endif } void Module::SetPermanent(bool state) diff --git a/src/modules.cpp b/src/modules.cpp index f77b28676..c379a66dd 100644 --- a/src/modules.cpp +++ b/src/modules.cpp @@ -108,28 +108,6 @@ int Module::DelCommand(BotInfo *bi, Command *c) return MOD_ERR_OK; } -void Module::SendMessage(CommandSource &source, const char *fmt, ...) -{ - Anope::string language = (source.u && source.u->Account() ? source.u->Account()->language : ""); - - PushLanguage(this->name, language); - fmt = anope_gettext(fmt); - - va_list args; - char buf[4096]; - va_start(args, fmt); - vsnprintf(buf, sizeof(buf) - 1, fmt, args); - va_end(args); - - sepstream sep(buf, '\n'); - Anope::string token; - - while (sep.GetToken(token)) - source.Reply(token); - - PopLanguage(); -} - Service::Service(Module *o, const Anope::string &n) : owner(o), name(n) { } diff --git a/src/regchannel.cpp b/src/regchannel.cpp index b76c85b64..cf2cb42df 100644 --- a/src/regchannel.cpp +++ b/src/regchannel.cpp @@ -793,7 +793,7 @@ bool ChannelInfo::CheckKick(User *user) if (!user->HasMode(UMODE_OPER) && this->HasFlag(CI_SUSPENDED)) { get_idealban(this, user, mask); - reason = GetString(user->Account(), gtl("This channel may not be used.")); + reason = translate(user, _("This channel may not be used.")); set_modes = true; do_kick = true; } @@ -837,7 +837,7 @@ bool ChannelInfo::CheckKick(User *user) if (!do_kick && check_access(user, this, CA_NOJOIN)) { get_idealban(this, user, mask); - reason = GetString(user->Account(), CHAN_NOT_ALLOWED_TO_JOIN); + reason = translate(user, CHAN_NOT_ALLOWED_TO_JOIN); do_kick = true; } diff --git a/src/users.cpp b/src/users.cpp index fe947d89a..6f676e79b 100644 --- a/src/users.cpp +++ b/src/users.cpp @@ -243,10 +243,11 @@ void User::SendMessage(BotInfo *source, Anope::string msg) Anope::string tok; while (sep.GetToken(tok)) { + const char *translated_message = translate(this, tok.c_str()); if (Config->UsePrivmsg && ((!this->nc && Config->NSDefFlags.HasFlag(NI_MSG)) || (this->nc && this->nc->HasFlag(NI_MSG)))) - ircdproto->SendPrivmsg(source, this->nick, "%s", tok.c_str()); + ircdproto->SendPrivmsg(source, this->nick, "%s", translated_message); else - ircdproto->SendNotice(source, this->nick, "%s", tok.c_str()); + ircdproto->SendNotice(source, this->nick, "%s", translated_message); } } |