Make more modules translateable (#1354)

This commit is contained in:
Alexey Sokolov
2017-02-25 12:14:21 +00:00
parent 80c24b335d
commit c2c85b2335
14 changed files with 953 additions and 367 deletions

View File

@@ -91,14 +91,14 @@ class CChanAttach : public CModule {
if (sChan.empty()) {
bHelp = true;
} else if (Add(bNegated, sChan, sSearch, sHost)) {
PutModule("Added to list");
PutModule(t_s("Added to list"));
} else {
PutModule(sLine.Token(1, true) + " is already added");
PutModule(t_f("{1} is already added")(sLine.Token(1, true)));
bHelp = true;
}
if (bHelp) {
PutModule("Usage: Add [!]<#chan> <search> <host>");
PutModule("Wildcards are allowed");
PutModule(t_s("Usage: Add [!]<#chan> <search> <host>"));
PutModule(t_s("Wildcards are allowed"));
}
}
@@ -110,49 +110,47 @@ class CChanAttach : public CModule {
CString sHost = sMsg.Token(2);
if (Del(bNegated, sChan, sSearch, sHost)) {
PutModule("Removed " + sChan + " from list");
PutModule(t_f("Removed {1} from list")(sChan));
} else {
PutModule("Usage: Del [!]<#chan> <search> <host>");
PutModule(t_s("Usage: Del [!]<#chan> <search> <host>"));
}
}
void HandleList(const CString& sLine) {
CTable Table;
Table.AddColumn("Neg");
Table.AddColumn("Chan");
Table.AddColumn("Search");
Table.AddColumn("Host");
Table.AddColumn(t_s("Neg"));
Table.AddColumn(t_s("Chan"));
Table.AddColumn(t_s("Search"));
Table.AddColumn(t_s("Host"));
VAttachIter it = m_vMatches.begin();
for (; it != m_vMatches.end(); ++it) {
Table.AddRow();
Table.SetCell("Neg", it->IsNegated() ? "!" : "");
Table.SetCell("Chan", it->GetChans());
Table.SetCell("Search", it->GetSearch());
Table.SetCell("Host", it->GetHostMask());
Table.SetCell(t_s("Neg"), it->IsNegated() ? "!" : "");
Table.SetCell(t_s("Chan"), it->GetChans());
Table.SetCell(t_s("Search"), it->GetSearch());
Table.SetCell(t_s("Host"), it->GetHostMask());
}
if (Table.size()) {
PutModule(Table);
} else {
PutModule("You have no entries.");
PutModule(t_s("You have no entries."));
}
}
public:
MODCONSTRUCTOR(CChanAttach) {
AddHelpCommand();
AddCommand("Add", static_cast<CModCommand::ModCmdFunc>(
&CChanAttach::HandleAdd),
"[!]<#chan> <search> <host>",
"Add an entry, use !#chan to negate and * for wildcards");
AddCommand("Del", static_cast<CModCommand::ModCmdFunc>(
&CChanAttach::HandleDel),
"[!]<#chan> <search> <host>",
"Remove an entry, needs to be an exact match");
AddCommand("List", static_cast<CModCommand::ModCmdFunc>(
&CChanAttach::HandleList),
"", "List all entries");
AddCommand(
"Add", t_d("[!]<#chan> <search> <host>"),
t_d("Add an entry, use !#chan to negate and * for wildcards"),
[=](const CString& sLine) { HandleAdd(sLine); });
AddCommand("Del", t_d("[!]<#chan> <search> <host>"),
t_d("Remove an entry, needs to be an exact match"),
[=](const CString& sLine) { HandleDel(sLine); });
AddCommand("List", "", t_d("List all entries"),
[=](const CString& sLine) { HandleList(sLine); });
}
~CChanAttach() override {}
@@ -170,7 +168,7 @@ class CChanAttach : public CModule {
CString sHost = sAdd.Token(2, true);
if (!Add(bNegated, sChan, sSearch, sHost)) {
PutModule("Unable to add [" + *it + "]");
PutModule(t_f("Unable to add [{1}]")(*it));
}
}
@@ -281,8 +279,8 @@ void TModInfo<CChanAttach>(CModInfo& Info) {
Info.AddType(CModInfo::UserModule);
Info.SetWikiPage("autoattach");
Info.SetHasArgs(true);
Info.SetArgsHelpText(
"List of channel masks and channel masks with ! before them.");
Info.SetArgsHelpText(Info.t_s(
"List of channel masks and channel masks with ! before them."));
}
NETWORKMODULEDEFS(CChanAttach, "Reattaches you to channels on activity.")
NETWORKMODULEDEFS(CChanAttach, t_s("Reattaches you to channels on activity."))

View File

@@ -23,16 +23,15 @@ class CAutoCycleMod : public CModule {
public:
MODCONSTRUCTOR(CAutoCycleMod) {
AddHelpCommand();
AddCommand("Add", static_cast<CModCommand::ModCmdFunc>(
&CAutoCycleMod::OnAddCommand),
"[!]<#chan>",
"Add an entry, use !#chan to negate and * for wildcards");
AddCommand("Del", static_cast<CModCommand::ModCmdFunc>(
&CAutoCycleMod::OnDelCommand),
"[!]<#chan>", "Remove an entry, needs to be an exact match");
AddCommand("List", static_cast<CModCommand::ModCmdFunc>(
&CAutoCycleMod::OnListCommand),
"", "List all entries");
AddCommand(
"Add", t_d("[!]<#chan>"),
t_d("Add an entry, use !#chan to negate and * for wildcards"),
[=](const CString& sLine) { OnAddCommand(sLine); });
AddCommand("Del", t_d("[!]<#chan>"),
t_d("Remove an entry, needs to be an exact match"),
[=](const CString& sLine) { OnDelCommand(sLine); });
AddCommand("List", "", t_d("List all entries"),
[=](const CString& sLine) { OnListCommand(sLine); });
m_recentlyCycled.SetTTL(15 * 1000);
}
@@ -44,7 +43,7 @@ class CAutoCycleMod : public CModule {
for (const CString& sChan : vsChans) {
if (!Add(sChan)) {
PutModule("Unable to add [" + sChan + "]");
PutModule(t_f("Unable to add {1}")(sChan));
}
}
@@ -64,11 +63,11 @@ class CAutoCycleMod : public CModule {
CString sChan = sLine.Token(1);
if (AlreadyAdded(sChan)) {
PutModule(sChan + " is already added");
PutModule(t_f("{1} is already added")(sChan));
} else if (Add(sChan)) {
PutModule("Added " + sChan + " to list");
PutModule(t_f("Added {1} to list")(sChan));
} else {
PutModule("Usage: Add [!]<#chan>");
PutModule(t_s("Usage: Add [!]<#chan>"));
}
}
@@ -76,29 +75,29 @@ class CAutoCycleMod : public CModule {
CString sChan = sLine.Token(1);
if (Del(sChan))
PutModule("Removed " + sChan + " from list");
PutModule(t_f("Removed {1} from list")(sChan));
else
PutModule("Usage: Del [!]<#chan>");
PutModule(t_s("Usage: Del [!]<#chan>"));
}
void OnListCommand(const CString& sLine) {
CTable Table;
Table.AddColumn("Chan");
Table.AddColumn(t_s("Channel"));
for (const CString& sChan : m_vsChans) {
Table.AddRow();
Table.SetCell("Chan", sChan);
Table.SetCell(t_s("Channel"), sChan);
}
for (const CString& sChan : m_vsNegChans) {
Table.AddRow();
Table.SetCell("Chan", "!" + sChan);
Table.SetCell(t_s("Channel"), "!" + sChan);
}
if (Table.size()) {
PutModule(Table);
} else {
PutModule("You have no entries.");
PutModule(t_s("You have no entries."));
}
}
@@ -226,9 +225,10 @@ template <>
void TModInfo<CAutoCycleMod>(CModInfo& Info) {
Info.SetWikiPage("autocycle");
Info.SetHasArgs(true);
Info.SetArgsHelpText(
"List of channel masks and channel masks with ! before them.");
Info.SetArgsHelpText(Info.t_s(
"List of channel masks and channel masks with ! before them."));
}
NETWORKMODULEDEFS(CAutoCycleMod,
"Rejoins channels to gain Op if you're the only user left")
NETWORKMODULEDEFS(
CAutoCycleMod,
t_s("Rejoins channels to gain Op if you're the only user left"))

View File

@@ -151,29 +151,26 @@ class CAutoOpMod : public CModule {
public:
MODCONSTRUCTOR(CAutoOpMod) {
AddHelpCommand();
AddCommand("ListUsers", static_cast<CModCommand::ModCmdFunc>(
&CAutoOpMod::OnListUsersCommand),
"", "List all users");
AddCommand("AddChans", static_cast<CModCommand::ModCmdFunc>(
&CAutoOpMod::OnAddChansCommand),
"<user> <channel> [channel] ...", "Adds channels to a user");
AddCommand("DelChans", static_cast<CModCommand::ModCmdFunc>(
&CAutoOpMod::OnDelChansCommand),
"<user> <channel> [channel] ...",
"Removes channels from a user");
AddCommand("AddMasks", static_cast<CModCommand::ModCmdFunc>(
&CAutoOpMod::OnAddMasksCommand),
"<user> <mask>,[mask] ...", "Adds masks to a user");
AddCommand("DelMasks", static_cast<CModCommand::ModCmdFunc>(
&CAutoOpMod::OnDelMasksCommand),
"<user> <mask>,[mask] ...", "Removes masks from a user");
AddCommand("AddUser", static_cast<CModCommand::ModCmdFunc>(
&CAutoOpMod::OnAddUserCommand),
"<user> <hostmask>[,<hostmasks>...] <key> [channels]",
"Adds a user");
AddCommand("DelUser", static_cast<CModCommand::ModCmdFunc>(
&CAutoOpMod::OnDelUserCommand),
"<user>", "Removes a user");
AddCommand("ListUsers", "", t_d("List all users"),
[=](const CString& sLine) { OnListUsersCommand(sLine); });
AddCommand("AddChans", t_d("<user> <channel> [channel] ..."),
t_d("Adds channels to a user"),
[=](const CString& sLine) { OnAddChansCommand(sLine); });
AddCommand("DelChans", t_d("<user> <channel> [channel] ..."),
t_d("Removes channels from a user"),
[=](const CString& sLine) { OnDelChansCommand(sLine); });
AddCommand("AddMasks", t_d("<user> <mask>,[mask] ..."),
t_d("Adds masks to a user"),
[=](const CString& sLine) { OnAddMasksCommand(sLine); });
AddCommand("DelMasks", t_d("<user> <mask>,[mask] ..."),
t_d("Removes masks from a user"),
[=](const CString& sLine) { OnDelMasksCommand(sLine); });
AddCommand("AddUser",
t_d("<user> <hostmask>[,<hostmasks>...] <key> [channels]"),
t_d("Adds a user"),
[=](const CString& sLine) { OnAddUserCommand(sLine); });
AddCommand("DelUser", t_d("<user>"), t_d("Removes a user"),
[=](const CString& sLine) { OnDelUserCommand(sLine); });
}
bool OnLoad(const CString& sArgs, CString& sMessage) override {
@@ -275,8 +272,8 @@ class CAutoOpMod : public CModule {
if (sHost.empty()) {
PutModule(
"Usage: AddUser <user> <hostmask>[,<hostmasks>...] <key> "
"[channels]");
t_s("Usage: AddUser <user> <hostmask>[,<hostmasks>...] <key> "
"[channels]"));
} else {
CAutoOpUser* pUser =
AddUser(sUser, sKey, sHost, sLine.Token(4, true));
@@ -291,7 +288,7 @@ class CAutoOpMod : public CModule {
CString sUser = sLine.Token(1);
if (sUser.empty()) {
PutModule("Usage: DelUser <user>");
PutModule(t_s("Usage: DelUser <user>"));
} else {
DelUser(sUser);
DelNV(sUser);
@@ -300,16 +297,16 @@ class CAutoOpMod : public CModule {
void OnListUsersCommand(const CString& sLine) {
if (m_msUsers.empty()) {
PutModule("There are no users defined");
PutModule(t_s("There are no users defined"));
return;
}
CTable Table;
Table.AddColumn("User");
Table.AddColumn("Hostmasks");
Table.AddColumn("Key");
Table.AddColumn("Channels");
Table.AddColumn(t_s("User"));
Table.AddColumn(t_s("Hostmasks"));
Table.AddColumn(t_s("Key"));
Table.AddColumn(t_s("Channels"));
for (const auto& it : m_msUsers) {
VCString vsHostmasks;
@@ -317,15 +314,15 @@ class CAutoOpMod : public CModule {
for (unsigned int a = 0; a < vsHostmasks.size(); a++) {
Table.AddRow();
if (a == 0) {
Table.SetCell("User", it.second->GetUsername());
Table.SetCell("Key", it.second->GetUserKey());
Table.SetCell("Channels", it.second->GetChannels());
Table.SetCell(t_s("User"), it.second->GetUsername());
Table.SetCell(t_s("Key"), it.second->GetUserKey());
Table.SetCell(t_s("Channels"), it.second->GetChannels());
} else if (a == vsHostmasks.size() - 1) {
Table.SetCell("User", "`-");
Table.SetCell(t_s("User"), "`-");
} else {
Table.SetCell("User", "|-");
Table.SetCell(t_s("User"), "|-");
}
Table.SetCell("Hostmasks", vsHostmasks[a]);
Table.SetCell(t_s("Hostmasks"), vsHostmasks[a]);
}
}
@@ -337,19 +334,19 @@ class CAutoOpMod : public CModule {
CString sChans = sLine.Token(2, true);
if (sChans.empty()) {
PutModule("Usage: AddChans <user> <channel> [channel] ...");
PutModule(t_s("Usage: AddChans <user> <channel> [channel] ..."));
return;
}
CAutoOpUser* pUser = FindUser(sUser);
if (!pUser) {
PutModule("No such user");
PutModule(t_s("No such user"));
return;
}
pUser->AddChans(sChans);
PutModule("Channel(s) added to user [" + pUser->GetUsername() + "]");
PutModule(t_f("Channel(s) added to user {1}")(pUser->GetUsername()));
SetNV(pUser->GetUsername(), pUser->ToString());
}
@@ -358,20 +355,20 @@ class CAutoOpMod : public CModule {
CString sChans = sLine.Token(2, true);
if (sChans.empty()) {
PutModule("Usage: DelChans <user> <channel> [channel] ...");
PutModule(t_s("Usage: DelChans <user> <channel> [channel] ..."));
return;
}
CAutoOpUser* pUser = FindUser(sUser);
if (!pUser) {
PutModule("No such user");
PutModule(t_s("No such user"));
return;
}
pUser->DelChans(sChans);
PutModule("Channel(s) Removed from user [" + pUser->GetUsername() +
"]");
PutModule(
t_f("Channel(s) Removed from user {1}")(pUser->GetUsername()));
SetNV(pUser->GetUsername(), pUser->ToString());
}
@@ -380,19 +377,19 @@ class CAutoOpMod : public CModule {
CString sHostmasks = sLine.Token(2, true);
if (sHostmasks.empty()) {
PutModule("Usage: AddMasks <user> <mask>,[mask] ...");
PutModule(t_s("Usage: AddMasks <user> <mask>,[mask] ..."));
return;
}
CAutoOpUser* pUser = FindUser(sUser);
if (!pUser) {
PutModule("No such user");
PutModule(t_s("No such user"));
return;
}
pUser->AddHostmasks(sHostmasks);
PutModule("Hostmasks(s) added to user [" + pUser->GetUsername() + "]");
PutModule(t_f("Hostmasks(s) added to user {1}")(pUser->GetUsername()));
SetNV(pUser->GetUsername(), pUser->ToString());
}
@@ -401,26 +398,26 @@ class CAutoOpMod : public CModule {
CString sHostmasks = sLine.Token(2, true);
if (sHostmasks.empty()) {
PutModule("Usage: DelMasks <user> <mask>,[mask] ...");
PutModule(t_s("Usage: DelMasks <user> <mask>,[mask] ..."));
return;
}
CAutoOpUser* pUser = FindUser(sUser);
if (!pUser) {
PutModule("No such user");
PutModule(t_s("No such user"));
return;
}
if (pUser->DelHostmasks(sHostmasks)) {
PutModule("Removed user [" + pUser->GetUsername() + "] with key [" +
pUser->GetUserKey() + "] and channels [" +
pUser->GetChannels() + "]");
PutModule(t_f("Removed user {1} with key {2} and channels {3}")(
pUser->GetUsername(), pUser->GetUserKey(),
pUser->GetChannels()));
DelUser(sUser);
DelNV(sUser);
} else {
PutModule("Hostmasks(s) Removed from user [" +
pUser->GetUsername() + "]");
PutModule(t_f("Hostmasks(s) Removed from user {1}")(
pUser->GetUsername()));
SetNV(pUser->GetUsername(), pUser->ToString());
}
}
@@ -472,26 +469,25 @@ class CAutoOpMod : public CModule {
m_msUsers.find(sUser.AsLower());
if (it == m_msUsers.end()) {
PutModule("That user does not exist");
PutModule(t_s("No such user"));
return;
}
delete it->second;
m_msUsers.erase(it);
PutModule("User [" + sUser + "] removed");
PutModule(t_f("User {1} removed")(sUser));
}
CAutoOpUser* AddUser(const CString& sUser, const CString& sKey,
const CString& sHosts, const CString& sChans) {
if (m_msUsers.find(sUser) != m_msUsers.end()) {
PutModule("That user already exists");
PutModule(t_s("That user already exists"));
return nullptr;
}
CAutoOpUser* pUser = new CAutoOpUser(sUser, sKey, sHosts, sChans);
m_msUsers[sUser.AsLower()] = pUser;
PutModule("User [" + sUser + "] added with hostmask(s) [" + sHosts +
"]");
PutModule(t_f("User {1} added with hostmask(s) {2}")(sUser, sHosts));
return pUser;
}
@@ -532,21 +528,21 @@ class CAutoOpMod : public CModule {
if (!bValid) {
if (bMatchedHost) {
PutModule("[" + Nick.GetHostMask() +
"] sent us a challenge but they are not opped in any "
"defined channels.");
PutModule(t_f(
"[{1}] sent us a challenge but they are not opped in any "
"defined channels.")(Nick.GetHostMask()));
} else {
PutModule("[" + Nick.GetHostMask() +
"] sent us a challenge but they do not match a "
"defined user.");
PutModule(
t_f("[{1}] sent us a challenge but they do not match a "
"defined user.")(Nick.GetHostMask()));
}
return false;
}
if (sChallenge.length() != AUTOOP_CHALLENGE_LENGTH) {
PutModule("WARNING! [" + Nick.GetHostMask() +
"] sent an invalid challenge.");
PutModule(t_f("WARNING! [{1}] sent an invalid challenge.")(
Nick.GetHostMask()));
return false;
}
@@ -561,8 +557,8 @@ class CAutoOpMod : public CModule {
if (itQueue == m_msQueue.end()) {
PutModule(
"[" + Nick.GetHostMask() +
"] sent an unchallenged response. This could be due to lag.");
t_f("[{1}] sent an unchallenged response. This could be due "
"to lag.")(Nick.GetHostMask()));
return false;
}
@@ -577,16 +573,18 @@ class CAutoOpMod : public CModule {
OpUser(Nick, *it.second);
return true;
} else {
PutModule("WARNING! [" + Nick.GetHostMask() +
"] sent a bad response. Please verify that you "
"have their correct password.");
PutModule(
t_f("WARNING! [{1}] sent a bad response. Please "
"verify that you have their correct password.")(
Nick.GetHostMask()));
return false;
}
}
}
PutModule("WARNING! [" + Nick.GetHostMask() +
"] sent a response but did not match any defined users.");
PutModule(
t_f("WARNING! [{1}] sent a response but did not match any defined "
"users.")(Nick.GetHostMask()));
return false;
}
@@ -643,4 +641,4 @@ void TModInfo<CAutoOpMod>(CModInfo& Info) {
Info.SetWikiPage("autoop");
}
NETWORKMODULEDEFS(CAutoOpMod, "Auto op the good people")
NETWORKMODULEDEFS(CAutoOpMod, t_s("Auto op the good people"))

View File

@@ -117,22 +117,19 @@ class CAutoVoiceMod : public CModule {
public:
MODCONSTRUCTOR(CAutoVoiceMod) {
AddHelpCommand();
AddCommand("ListUsers", static_cast<CModCommand::ModCmdFunc>(
&CAutoVoiceMod::OnListUsersCommand),
"", "List all users");
AddCommand("AddChans", static_cast<CModCommand::ModCmdFunc>(
&CAutoVoiceMod::OnAddChansCommand),
"<user> <channel> [channel] ...", "Adds channels to a user");
AddCommand("DelChans", static_cast<CModCommand::ModCmdFunc>(
&CAutoVoiceMod::OnDelChansCommand),
"<user> <channel> [channel] ...",
"Removes channels from a user");
AddCommand("AddUser", static_cast<CModCommand::ModCmdFunc>(
&CAutoVoiceMod::OnAddUserCommand),
"<user> <hostmask> [channels]", "Adds a user");
AddCommand("DelUser", static_cast<CModCommand::ModCmdFunc>(
&CAutoVoiceMod::OnDelUserCommand),
"<user>", "Removes a user");
AddCommand("ListUsers", "", t_d("List all users"),
[=](const CString& sLine) { OnListUsersCommand(sLine); });
AddCommand("AddChans", t_d("<user> <channel> [channel] ..."),
t_d("Adds channels to a user"),
[=](const CString& sLine) { OnAddChansCommand(sLine); });
AddCommand("DelChans", t_d("<user> <channel> [channel] ..."),
t_d("Removes channels from a user"),
[=](const CString& sLine) { OnDelChansCommand(sLine); });
AddCommand("AddUser", t_d("<user> <hostmask> [channels]"),
t_d("Adds a user"),
[=](const CString& sLine) { OnAddUserCommand(sLine); });
AddCommand("DelUser", t_d("<user>"), t_d("Removes a user"),
[=](const CString& sLine) { OnDelUserCommand(sLine); });
}
bool OnLoad(const CString& sArgs, CString& sMessage) override {
@@ -215,7 +212,7 @@ class CAutoVoiceMod : public CModule {
CString sHost = sLine.Token(2);
if (sHost.empty()) {
PutModule("Usage: AddUser <user> <hostmask> [channels]");
PutModule(t_s("Usage: AddUser <user> <hostmask> [channels]"));
} else {
CAutoVoiceUser* pUser = AddUser(sUser, sHost, sLine.Token(3, true));
@@ -229,7 +226,7 @@ class CAutoVoiceMod : public CModule {
CString sUser = sLine.Token(1);
if (sUser.empty()) {
PutModule("Usage: DelUser <user>");
PutModule(t_s("Usage: DelUser <user>"));
} else {
DelUser(sUser);
DelNV(sUser);
@@ -238,21 +235,21 @@ class CAutoVoiceMod : public CModule {
void OnListUsersCommand(const CString& sLine) {
if (m_msUsers.empty()) {
PutModule("There are no users defined");
PutModule(t_s("There are no users defined"));
return;
}
CTable Table;
Table.AddColumn("User");
Table.AddColumn("Hostmask");
Table.AddColumn("Channels");
Table.AddColumn(t_s("User"));
Table.AddColumn(t_s("Hostmask"));
Table.AddColumn(t_s("Channels"));
for (const auto& it : m_msUsers) {
Table.AddRow();
Table.SetCell("User", it.second->GetUsername());
Table.SetCell("Hostmask", it.second->GetHostmask());
Table.SetCell("Channels", it.second->GetChannels());
Table.SetCell(t_s("User"), it.second->GetUsername());
Table.SetCell(t_s("Hostmask"), it.second->GetHostmask());
Table.SetCell(t_s("Channels"), it.second->GetChannels());
}
PutModule(Table);
@@ -263,19 +260,19 @@ class CAutoVoiceMod : public CModule {
CString sChans = sLine.Token(2, true);
if (sChans.empty()) {
PutModule("Usage: AddChans <user> <channel> [channel] ...");
PutModule(t_s("Usage: AddChans <user> <channel> [channel] ..."));
return;
}
CAutoVoiceUser* pUser = FindUser(sUser);
if (!pUser) {
PutModule("No such user");
PutModule(t_s("No such user"));
return;
}
pUser->AddChans(sChans);
PutModule("Channel(s) added to user [" + pUser->GetUsername() + "]");
PutModule(t_f("Channel(s) added to user {1}")(pUser->GetUsername()));
SetNV(pUser->GetUsername(), pUser->ToString());
}
@@ -285,20 +282,20 @@ class CAutoVoiceMod : public CModule {
CString sChans = sLine.Token(2, true);
if (sChans.empty()) {
PutModule("Usage: DelChans <user> <channel> [channel] ...");
PutModule(t_s("Usage: DelChans <user> <channel> [channel] ..."));
return;
}
CAutoVoiceUser* pUser = FindUser(sUser);
if (!pUser) {
PutModule("No such user");
PutModule(t_s("No such user"));
return;
}
pUser->DelChans(sChans);
PutModule("Channel(s) Removed from user [" + pUser->GetUsername() +
"]");
PutModule(
t_f("Channel(s) Removed from user {1}")(pUser->GetUsername()));
SetNV(pUser->GetUsername(), pUser->ToString());
}
@@ -329,25 +326,25 @@ class CAutoVoiceMod : public CModule {
m_msUsers.find(sUser.AsLower());
if (it == m_msUsers.end()) {
PutModule("That user does not exist");
PutModule(t_s("No such user"));
return;
}
delete it->second;
m_msUsers.erase(it);
PutModule("User [" + sUser + "] removed");
PutModule(t_f("User {1} removed")(sUser));
}
CAutoVoiceUser* AddUser(const CString& sUser, const CString& sHost,
const CString& sChans) {
if (m_msUsers.find(sUser) != m_msUsers.end()) {
PutModule("That user already exists");
PutModule(t_s("That user already exists"));
return nullptr;
}
CAutoVoiceUser* pUser = new CAutoVoiceUser(sUser, sHost, sChans);
m_msUsers[sUser.AsLower()] = pUser;
PutModule("User [" + sUser + "] added with hostmask [" + sHost + "]");
PutModule(t_f("User {1} added with hostmask {2}")(sUser, sHost));
return pUser;
}
@@ -359,10 +356,10 @@ template <>
void TModInfo<CAutoVoiceMod>(CModInfo& Info) {
Info.SetWikiPage("autovoice");
Info.SetHasArgs(true);
Info.SetArgsHelpText(
Info.SetArgsHelpText(Info.t_s(
"Each argument is either a channel you want autovoice for (which can "
"include wildcards) or, if it starts with !, it is an exception for "
"autovoice.");
"autovoice."));
}
NETWORKMODULEDEFS(CAutoVoiceMod, "Auto voice the good people")
NETWORKMODULEDEFS(CAutoVoiceMod, t_s("Auto voice the good people"))

View File

@@ -64,7 +64,7 @@ class CAway : public CModule {
if (sCommand.Token(1) != "-quiet") {
sReason = CUtils::FormatTime(curtime, sCommand.Token(1, true),
GetUser()->GetTimezone());
PutModNotice("You have been marked as away");
PutModNotice(t_s("You have been marked as away"));
} else {
sReason = CUtils::FormatTime(curtime, sCommand.Token(2, true),
GetUser()->GetTimezone());
@@ -75,7 +75,7 @@ class CAway : public CModule {
void BackCommand(const CString& sCommand) {
if ((m_vMessages.empty()) && (sCommand.Token(1) != "-quiet"))
PutModNotice("Welcome Back!");
PutModNotice(t_s("Welcome back!"));
Ping();
Back();
}
@@ -97,21 +97,20 @@ class CAway : public CModule {
void DeleteCommand(const CString& sCommand) {
CString sWhich = sCommand.Token(1);
if (sWhich == "all") {
PutModNotice("Deleted " + CString(m_vMessages.size()) +
" Messages.");
PutModNotice(t_f("Deleted {1} messages")(m_vMessages.size()));
for (u_int a = 0; a < m_vMessages.size(); a++)
m_vMessages.erase(m_vMessages.begin() + a--);
} else if (sWhich.empty()) {
PutModNotice("USAGE: delete <num|all>");
PutModNotice(t_s("USAGE: delete <num|all>"));
return;
} else {
u_int iNum = sWhich.ToUInt();
if (iNum >= m_vMessages.size()) {
PutModNotice("Illegal Message # Requested");
PutModNotice(t_s("Illegal message # requested"));
return;
} else {
m_vMessages.erase(m_vMessages.begin() + iNum);
PutModNotice("Message Erased.");
PutModNotice(t_s("Message erased"));
}
SaveBufferToDisk();
}
@@ -120,9 +119,9 @@ class CAway : public CModule {
void SaveCommand(const CString& sCommand) {
if (m_saveMessages) {
SaveBufferToDisk();
PutModNotice("Messages saved to disk.");
PutModNotice(t_s("Messages saved to disk"));
} else {
PutModNotice("There are no messages to save.");
PutModNotice(t_s("There are no messages to save"));
}
}
@@ -133,7 +132,7 @@ class CAway : public CModule {
void PassCommand(const CString& sCommand) {
m_sPassword = sCommand.Token(1);
PutModNotice("Password Updated to [" + m_sPassword + "]");
PutModNotice(t_f("Password updated to [{1}]")(m_sPassword));
}
void ShowCommand(const CString& sCommand) {
@@ -145,7 +144,7 @@ class CAway : public CModule {
if ((sTime.empty()) || (sWhom.empty()) || (sMessage.empty())) {
// illegal format
PutModule("Corrupt message! [" + m_vMessages[a] + "]");
PutModule(t_f("Corrupt message! [{1}]")(m_vMessages[a]));
m_vMessages.erase(m_vMessages.begin() + a--);
continue;
}
@@ -157,7 +156,7 @@ class CAway : public CModule {
size_t iCount = strftime(szFormat, 64, "%F %T", &t);
if (iCount <= 0) {
PutModule("Corrupt time stamp! [" + m_vMessages[a] + "]");
PutModule(t_f("Corrupt time stamp! [{1}]")(m_vMessages[a]));
m_vMessages.erase(m_vMessages.begin() + a--);
continue;
}
@@ -176,17 +175,17 @@ class CAway : public CModule {
PutModule(it->second[a]);
}
PutModule("#--- End Messages");
PutModule(t_s("#--- End of messages"));
}
void EnableTimerCommand(const CString& sCommand) {
SetAwayTime(300);
PutModule("Timer set to 300 seconds");
PutModule(t_s("Timer set to 300 seconds"));
}
void DisableTimerCommand(const CString& sCommand) {
SetAwayTime(0);
PutModule("Timer disabled");
PutModule(t_s("Timer disabled"));
}
void SetTimerCommand(const CString& sCommand) {
@@ -195,14 +194,13 @@ class CAway : public CModule {
SetAwayTime(iSetting);
if (iSetting == 0)
PutModule("Timer disabled");
PutModule(t_s("Timer disabled"));
else
PutModule("Timer set to " + CString(iSetting) + " seconds");
PutModule(t_f("Timer set to {1} seconds")(iSetting));
}
void TimerCommand(const CString& sCommand) {
PutModule("Current timer setting: " + CString(GetAwayTime()) +
" seconds");
PutModule(t_f("Current timer setting: {1} seconds")(GetAwayTime()));
}
public:
@@ -277,16 +275,16 @@ class CAway : public CModule {
m_sPassword = CBlowfish::MD5(sMyArgs);
} else {
sMessage =
"This module needs as an argument a keyphrase used for "
"encryption";
t_s("This module needs as an argument a keyphrase used for "
"encryption");
return false;
}
if (!BootStrap()) {
sMessage =
sMessage = t_s(
"Failed to decrypt your saved messages - "
"Did you give the right encryption key as an argument to "
"this module?";
"this module?");
m_bBootError = true;
return false;
}
@@ -384,13 +382,11 @@ class CAway : public CModule {
m_bIsAway = false;
if (!m_vMessages.empty()) {
if (bUsePrivMessage) {
PutModule("Welcome Back!");
PutModule("You have " + CString(m_vMessages.size()) +
" messages!");
PutModule(t_s("Welcome back!"));
PutModule(t_f("You have {1} messages!")(m_vMessages.size()));
} else {
PutModNotice("Welcome Back!");
PutModNotice("You have " + CString(m_vMessages.size()) +
" messages!");
PutModNotice(t_s("Welcome back!"));
PutModNotice(t_f("You have {1} messages!")(m_vMessages.size()));
}
}
m_sReason = "";
@@ -457,7 +453,7 @@ class CAway : public CModule {
CFile File(sMessages);
if (sMessages.empty() || !File.Open() || !File.ReadFile(sFile)) {
PutModule("Unable to find buffer");
PutModule(t_s("Unable to find buffer"));
return (true); // gonna be successful here
}
@@ -470,7 +466,7 @@ class CAway : public CModule {
if (sBuffer.Left(strlen(CRYPT_VERIFICATION_TOKEN)) !=
CRYPT_VERIFICATION_TOKEN) {
// failed to decode :(
PutModule("Unable to decode Encrypted messages");
PutModule(t_s("Unable to decode encrypted messages"));
return (false);
}
sBuffer.erase(0, strlen(CRYPT_VERIFICATION_TOKEN));
@@ -516,11 +512,11 @@ template <>
void TModInfo<CAway>(CModInfo& Info) {
Info.SetWikiPage("awaystore");
Info.SetHasArgs(true);
Info.SetArgsHelpText(
Info.SetArgsHelpText(Info.t_s(
"[ -notimer | -timer N ] [-chans] passw0rd . N is number of seconds, "
"600 by default.");
"600 by default."));
}
NETWORKMODULEDEFS(CAway,
"Adds auto-away with logging, useful when you use ZNC from "
"different locations")
NETWORKMODULEDEFS(
CAway, t_s("Adds auto-away with logging, useful when you use ZNC from "
"different locations"))

71
modules/po/autoattach.pot Normal file
View File

@@ -0,0 +1,71 @@
#: autoattach.cpp:94
msgid "Added to list"
msgstr ""
#: autoattach.cpp:96
msgid "{1} is already added"
msgstr ""
#: autoattach.cpp:100
msgid "Usage: Add [!]<#chan> <search> <host>"
msgstr ""
#: autoattach.cpp:101
msgid "Wildcards are allowed"
msgstr ""
#: autoattach.cpp:113
msgid "Removed {1} from list"
msgstr ""
#: autoattach.cpp:115
msgid "Usage: Del [!]<#chan> <search> <host>"
msgstr ""
#: autoattach.cpp:121 autoattach.cpp:129
msgid "Neg"
msgstr ""
#: autoattach.cpp:122 autoattach.cpp:130
msgid "Chan"
msgstr ""
#: autoattach.cpp:123 autoattach.cpp:131
msgid "Search"
msgstr ""
#: autoattach.cpp:124 autoattach.cpp:132
msgid "Host"
msgstr ""
#: autoattach.cpp:138
msgid "You have no entries."
msgstr ""
#: autoattach.cpp:146 autoattach.cpp:149
msgid "[!]<#chan> <search> <host>"
msgstr ""
#: autoattach.cpp:147
msgid "Add an entry, use !#chan to negate and * for wildcards"
msgstr ""
#: autoattach.cpp:150
msgid "Remove an entry, needs to be an exact match"
msgstr ""
#: autoattach.cpp:152
msgid "List all entries"
msgstr ""
#: autoattach.cpp:171
msgid "Unable to add [{1}]"
msgstr ""
#: autoattach.cpp:283
msgid "List of channel masks and channel masks with ! before them."
msgstr ""
#: autoattach.cpp:286
msgid "Reattaches you to channels on activity."
msgstr ""

55
modules/po/autocycle.pot Normal file
View File

@@ -0,0 +1,55 @@
#: autocycle.cpp:27 autocycle.cpp:30
msgid "[!]<#chan>"
msgstr ""
#: autocycle.cpp:28
msgid "Add an entry, use !#chan to negate and * for wildcards"
msgstr ""
#: autocycle.cpp:31
msgid "Remove an entry, needs to be an exact match"
msgstr ""
#: autocycle.cpp:33
msgid "List all entries"
msgstr ""
#: autocycle.cpp:46
msgid "Unable to add {1}"
msgstr ""
#: autocycle.cpp:66
msgid "{1} is already added"
msgstr ""
#: autocycle.cpp:68
msgid "Added {1} to list"
msgstr ""
#: autocycle.cpp:70
msgid "Usage: Add [!]<#chan>"
msgstr ""
#: autocycle.cpp:78
msgid "Removed {1} from list"
msgstr ""
#: autocycle.cpp:80
msgid "Usage: Del [!]<#chan>"
msgstr ""
#: autocycle.cpp:85 autocycle.cpp:89 autocycle.cpp:94
msgid "Channel"
msgstr ""
#: autocycle.cpp:100
msgid "You have no entries."
msgstr ""
#: autocycle.cpp:229
msgid "List of channel masks and channel masks with ! before them."
msgstr ""
#: autocycle.cpp:234
msgid "Rejoins channels to gain Op if you're the only user left"
msgstr ""

154
modules/po/autoop.pot Normal file
View File

@@ -0,0 +1,154 @@
#: autoop.cpp:154
msgid "List all users"
msgstr ""
#: autoop.cpp:156 autoop.cpp:159
msgid "<user> <channel> [channel] ..."
msgstr ""
#: autoop.cpp:157
msgid "Adds channels to a user"
msgstr ""
#: autoop.cpp:160
msgid "Removes channels from a user"
msgstr ""
#: autoop.cpp:162 autoop.cpp:165
msgid "<user> <mask>,[mask] ..."
msgstr ""
#: autoop.cpp:163
msgid "Adds masks to a user"
msgstr ""
#: autoop.cpp:166
msgid "Removes masks from a user"
msgstr ""
#: autoop.cpp:169
msgid "<user> <hostmask>[,<hostmasks>...] <key> [channels]"
msgstr ""
#: autoop.cpp:170
msgid "Adds a user"
msgstr ""
#: autoop.cpp:172
msgid "<user>"
msgstr ""
#: autoop.cpp:172
msgid "Removes a user"
msgstr ""
#: autoop.cpp:275
msgid "Usage: AddUser <user> <hostmask>[,<hostmasks>...] <key> [channels]"
msgstr ""
#: autoop.cpp:291
msgid "Usage: DelUser <user>"
msgstr ""
#: autoop.cpp:300
msgid "There are no users defined"
msgstr ""
#: autoop.cpp:306 autoop.cpp:317 autoop.cpp:321 autoop.cpp:323
msgid "User"
msgstr ""
#: autoop.cpp:307 autoop.cpp:325
msgid "Hostmasks"
msgstr ""
#: autoop.cpp:308 autoop.cpp:318
msgid "Key"
msgstr ""
#: autoop.cpp:309 autoop.cpp:319
msgid "Channels"
msgstr ""
#: autoop.cpp:337
msgid "Usage: AddChans <user> <channel> [channel] ..."
msgstr ""
#: autoop.cpp:344 autoop.cpp:365 autoop.cpp:387 autoop.cpp:408 autoop.cpp:472
msgid "No such user"
msgstr ""
#: autoop.cpp:349
msgid "Channel(s) added to user {1}"
msgstr ""
#: autoop.cpp:358
msgid "Usage: DelChans <user> <channel> [channel] ..."
msgstr ""
#: autoop.cpp:371
msgid "Channel(s) Removed from user {1}"
msgstr ""
#: autoop.cpp:380
msgid "Usage: AddMasks <user> <mask>,[mask] ..."
msgstr ""
#: autoop.cpp:392
msgid "Hostmasks(s) added to user {1}"
msgstr ""
#: autoop.cpp:401
msgid "Usage: DelMasks <user> <mask>,[mask] ..."
msgstr ""
#: autoop.cpp:413
msgid "Removed user {1} with key {2} and channels {3}"
msgstr ""
#: autoop.cpp:419
msgid "Hostmasks(s) Removed from user {1}"
msgstr ""
#: autoop.cpp:478
msgid "User {1} removed"
msgstr ""
#: autoop.cpp:484
msgid "That user already exists"
msgstr ""
#: autoop.cpp:490
msgid "User {1} added with hostmask(s) {2}"
msgstr ""
#: autoop.cpp:532
msgid ""
"[{1}] sent us a challenge but they are not opped in any defined channels."
msgstr ""
#: autoop.cpp:536
msgid "[{1}] sent us a challenge but they do not match a defined user."
msgstr ""
#: autoop.cpp:544
msgid "WARNING! [{1}] sent an invalid challenge."
msgstr ""
#: autoop.cpp:560
msgid "[{1}] sent an unchallenged response. This could be due to lag."
msgstr ""
#: autoop.cpp:577
msgid ""
"WARNING! [{1}] sent a bad response. Please verify that you have their "
"correct password."
msgstr ""
#: autoop.cpp:586
msgid "WARNING! [{1}] sent a response but did not match any defined users."
msgstr ""
#: autoop.cpp:644
msgid "Auto op the good people"
msgstr ""

29
modules/po/autoreply.pot Normal file
View File

@@ -0,0 +1,29 @@
#: autoreply.cpp:25
msgid "<reply>"
msgstr ""
#: autoreply.cpp:25
msgid "Sets a new reply"
msgstr ""
#: autoreply.cpp:27
msgid "Displays the current query reply"
msgstr ""
#: autoreply.cpp:75
msgid "Current reply is: {1} ({2})"
msgstr ""
#: autoreply.cpp:81
msgid "New reply set to: {1} ({2})"
msgstr ""
#: autoreply.cpp:94
msgid ""
"You might specify a reply text. It is used when automatically answering "
"queries, if you are not connected to ZNC."
msgstr ""
#: autoreply.cpp:98
msgid "Reply to queries when you are away"
msgstr ""

97
modules/po/autovoice.pot Normal file
View File

@@ -0,0 +1,97 @@
#: autovoice.cpp:120
msgid "List all users"
msgstr ""
#: autovoice.cpp:122 autovoice.cpp:125
msgid "<user> <channel> [channel] ..."
msgstr ""
#: autovoice.cpp:123
msgid "Adds channels to a user"
msgstr ""
#: autovoice.cpp:126
msgid "Removes channels from a user"
msgstr ""
#: autovoice.cpp:128
msgid "<user> <hostmask> [channels]"
msgstr ""
#: autovoice.cpp:129
msgid "Adds a user"
msgstr ""
#: autovoice.cpp:131
msgid "<user>"
msgstr ""
#: autovoice.cpp:131
msgid "Removes a user"
msgstr ""
#: autovoice.cpp:215
msgid "Usage: AddUser <user> <hostmask> [channels]"
msgstr ""
#: autovoice.cpp:229
msgid "Usage: DelUser <user>"
msgstr ""
#: autovoice.cpp:238
msgid "There are no users defined"
msgstr ""
#: autovoice.cpp:244 autovoice.cpp:250
msgid "User"
msgstr ""
#: autovoice.cpp:245 autovoice.cpp:251
msgid "Hostmask"
msgstr ""
#: autovoice.cpp:246 autovoice.cpp:252
msgid "Channels"
msgstr ""
#: autovoice.cpp:263
msgid "Usage: AddChans <user> <channel> [channel] ..."
msgstr ""
#: autovoice.cpp:270 autovoice.cpp:292 autovoice.cpp:329
msgid "No such user"
msgstr ""
#: autovoice.cpp:275
msgid "Channel(s) added to user {1}"
msgstr ""
#: autovoice.cpp:285
msgid "Usage: DelChans <user> <channel> [channel] ..."
msgstr ""
#: autovoice.cpp:298
msgid "Channel(s) Removed from user {1}"
msgstr ""
#: autovoice.cpp:335
msgid "User {1} removed"
msgstr ""
#: autovoice.cpp:341
msgid "That user already exists"
msgstr ""
#: autovoice.cpp:347
msgid "User {1} added with hostmask {2}"
msgstr ""
#: autovoice.cpp:360
msgid ""
"Each argument is either a channel you want autovoice for (which can include "
"wildcards) or, if it starts with !, it is an exception for autovoice."
msgstr ""
#: autovoice.cpp:365
msgid "Auto voice the good people"
msgstr ""

96
modules/po/awaystore.pot Normal file
View File

@@ -0,0 +1,96 @@
#: awaystore.cpp:67
msgid "You have been marked as away"
msgstr ""
#: awaystore.cpp:78 awaystore.cpp:385 awaystore.cpp:388
msgid "Welcome back!"
msgstr ""
#: awaystore.cpp:100
msgid "Deleted {1} messages"
msgstr ""
#: awaystore.cpp:104
msgid "USAGE: delete <num|all>"
msgstr ""
#: awaystore.cpp:109
msgid "Illegal message # requested"
msgstr ""
#: awaystore.cpp:113
msgid "Message erased"
msgstr ""
#: awaystore.cpp:122
msgid "Messages saved to disk"
msgstr ""
#: awaystore.cpp:124
msgid "There are no messages to save"
msgstr ""
#: awaystore.cpp:135
msgid "Password updated to [{1}]"
msgstr ""
#: awaystore.cpp:147
msgid "Corrupt message! [{1}]"
msgstr ""
#: awaystore.cpp:159
msgid "Corrupt time stamp! [{1}]"
msgstr ""
#: awaystore.cpp:178
msgid "#--- End of messages"
msgstr ""
#: awaystore.cpp:183
msgid "Timer set to 300 seconds"
msgstr ""
#: awaystore.cpp:188 awaystore.cpp:197
msgid "Timer disabled"
msgstr ""
#: awaystore.cpp:199
msgid "Timer set to {1} seconds"
msgstr ""
#: awaystore.cpp:203
msgid "Current timer setting: {1} seconds"
msgstr ""
#: awaystore.cpp:278
msgid "This module needs as an argument a keyphrase used for encryption"
msgstr ""
#: awaystore.cpp:285
msgid ""
"Failed to decrypt your saved messages - Did you give the right encryption "
"key as an argument to this module?"
msgstr ""
#: awaystore.cpp:386 awaystore.cpp:389
msgid "You have {1} messages!"
msgstr ""
#: awaystore.cpp:456
msgid "Unable to find buffer"
msgstr ""
#: awaystore.cpp:469
msgid "Unable to decode encrypted messages"
msgstr ""
#: awaystore.cpp:516
msgid ""
"[ -notimer | -timer N ] [-chans] passw0rd . N is number of seconds, 600 by "
"default."
msgstr ""
#: awaystore.cpp:521
msgid ""
"Adds auto-away with logging, useful when you use ZNC from different locations"
msgstr ""

65
modules/po/cyrusauth.pot Normal file
View File

@@ -0,0 +1,65 @@
#: cyrusauth.cpp:42
msgid "[yes|no]"
msgstr ""
#: cyrusauth.cpp:43
msgid "Create ZNC user upon first successful login"
msgstr ""
#: cyrusauth.cpp:45
msgid "[username]"
msgstr ""
#: cyrusauth.cpp:46
msgid "User to be used as the template for new users"
msgstr ""
#: cyrusauth.cpp:59
msgid "Access denied"
msgstr ""
#: cyrusauth.cpp:73
msgid "Ignoring invalid SASL pwcheck method: {1}"
msgstr ""
#: cyrusauth.cpp:74
msgid "Ignored invalid SASL pwcheck method"
msgstr ""
#: cyrusauth.cpp:82
msgid "Need a pwcheck method as argument (saslauthd, auxprop)"
msgstr ""
#: cyrusauth.cpp:87
msgid "SASL Could Not Be Initialized - Halting Startup"
msgstr ""
#: cyrusauth.cpp:180
msgid "We will create users on their first login"
msgstr ""
#: cyrusauth.cpp:182
msgid "We will not create users on their first login"
msgstr ""
#: cyrusauth.cpp:194
msgid "We will clone {1}"
msgstr ""
#: cyrusauth.cpp:196
msgid "We will not clone a user"
msgstr ""
#: cyrusauth.cpp:202
msgid "Clone user disabled"
msgstr ""
#: cyrusauth.cpp:233
msgid ""
"This global module takes up to two arguments - the methods of authentication "
"- auxprop and saslauthd"
msgstr ""
#: cyrusauth.cpp:239
msgid "Allow users to authenticate via SASL password verification method"
msgstr ""

View File

@@ -61,19 +61,19 @@ msgid "Save to config"
msgstr ""
#: modules/po/../data/webadmin/tmpl/add_edit_chan.tmpl:67
#: modules/po/../data/webadmin/tmpl/add_edit_user.tmpl:399
#: modules/po/../data/webadmin/tmpl/add_edit_user.tmpl:404
#: modules/po/../data/webadmin/tmpl/add_edit_network.tmpl:282
msgid "Module {1}"
msgstr ""
#: modules/po/../data/webadmin/tmpl/add_edit_chan.tmpl:75
#: modules/po/../data/webadmin/tmpl/add_edit_user.tmpl:408
#: modules/po/../data/webadmin/tmpl/add_edit_user.tmpl:413
#: modules/po/../data/webadmin/tmpl/add_edit_network.tmpl:290
msgid "Save and return"
msgstr ""
#: modules/po/../data/webadmin/tmpl/add_edit_chan.tmpl:76
#: modules/po/../data/webadmin/tmpl/add_edit_user.tmpl:409
#: modules/po/../data/webadmin/tmpl/add_edit_user.tmpl:414
#: modules/po/../data/webadmin/tmpl/add_edit_network.tmpl:291
msgid "Save and continue"
msgstr ""
@@ -147,7 +147,7 @@ msgstr ""
#: modules/po/../data/webadmin/tmpl/settings.tmpl:72
#: modules/po/../data/webadmin/tmpl/add_edit_user.tmpl:123
#: modules/po/../data/webadmin/tmpl/add_edit_user.tmpl:343
#: modules/po/../data/webadmin/tmpl/add_edit_user.tmpl:348
#: modules/po/../data/webadmin/tmpl/add_edit_network.tmpl:185
#: modules/po/../data/webadmin/tmpl/listusers.tmpl:15
msgid "Add"
@@ -158,12 +158,12 @@ msgid "Settings"
msgstr ""
#: modules/po/../data/webadmin/tmpl/settings.tmpl:90
#: modules/po/../data/webadmin/tmpl/add_edit_user.tmpl:362
#: modules/po/../data/webadmin/tmpl/add_edit_user.tmpl:367
msgid "Skin:"
msgstr ""
#: modules/po/../data/webadmin/tmpl/settings.tmpl:94
#: modules/po/../data/webadmin/tmpl/add_edit_user.tmpl:368
#: modules/po/../data/webadmin/tmpl/add_edit_user.tmpl:373
msgid "Default"
msgstr ""
@@ -276,7 +276,7 @@ msgid "Loaded by users"
msgstr ""
#: modules/po/../data/webadmin/tmpl/settings.tmpl:231
#: modules/po/../data/webadmin/tmpl/add_edit_user.tmpl:419
#: modules/po/../data/webadmin/tmpl/add_edit_user.tmpl:424
#: modules/po/../data/webadmin/tmpl/add_edit_network.tmpl:187
msgid "Save"
msgstr ""
@@ -537,77 +537,88 @@ msgid ""
msgstr ""
#: modules/po/../data/webadmin/tmpl/add_edit_user.tmpl:316
msgid "Max IRC Networks Number:"
msgid "Timeout before reconnect:"
msgstr ""
#: modules/po/../data/webadmin/tmpl/add_edit_user.tmpl:318
msgid "Maximum number of IRC networks allowed for this user."
msgid ""
"How much time ZNC waits (in seconds) until it receives something from "
"network or declares the connection timeout. This happens after attempts to "
"ping the peer."
msgstr ""
#: modules/po/../data/webadmin/tmpl/add_edit_user.tmpl:321
msgid "Substitutions"
msgid "Max IRC Networks Number:"
msgstr ""
#: modules/po/../data/webadmin/tmpl/add_edit_user.tmpl:323
#: modules/po/../data/webadmin/tmpl/add_edit_user.tmpl:331
msgid "CTCP Replies:"
msgid "Maximum number of IRC networks allowed for this user."
msgstr ""
#: modules/po/../data/webadmin/tmpl/add_edit_user.tmpl:327
msgid "One reply per line. Example: <code>TIME Buy a watch!</code>"
#: modules/po/../data/webadmin/tmpl/add_edit_user.tmpl:326
msgid "Substitutions"
msgstr ""
#: modules/po/../data/webadmin/tmpl/add_edit_user.tmpl:328
#: modules/po/../data/webadmin/tmpl/add_edit_user.tmpl:344
#: modules/po/../data/webadmin/tmpl/add_edit_user.tmpl:336
msgid "CTCP Replies:"
msgstr ""
#: modules/po/../data/webadmin/tmpl/add_edit_user.tmpl:332
msgid "One reply per line. Example: <code>TIME Buy a watch!</code>"
msgstr ""
#: modules/po/../data/webadmin/tmpl/add_edit_user.tmpl:333
#: modules/po/../data/webadmin/tmpl/add_edit_user.tmpl:349
msgid "{1} are available"
msgstr ""
#: modules/po/../data/webadmin/tmpl/add_edit_user.tmpl:330
#: modules/po/../data/webadmin/tmpl/add_edit_user.tmpl:335
msgid "Empty value means this CTCP request will be ignored"
msgstr ""
#: modules/po/../data/webadmin/tmpl/add_edit_user.tmpl:336
#: modules/po/../data/webadmin/tmpl/add_edit_user.tmpl:341
msgid "Request"
msgstr ""
#: modules/po/../data/webadmin/tmpl/add_edit_user.tmpl:337
#: modules/po/../data/webadmin/tmpl/add_edit_user.tmpl:342
msgid "Response"
msgstr ""
#: modules/po/../data/webadmin/tmpl/add_edit_user.tmpl:366
#: modules/po/../data/webadmin/tmpl/add_edit_user.tmpl:371
msgid "- Global -"
msgstr ""
#: modules/po/../data/webadmin/tmpl/add_edit_user.tmpl:372
#: modules/po/../data/webadmin/tmpl/add_edit_user.tmpl:377
msgid "No other skins found"
msgstr ""
#: modules/po/../data/webadmin/tmpl/add_edit_user.tmpl:378
#: modules/po/../data/webadmin/tmpl/add_edit_user.tmpl:383
msgid "Language:"
msgstr ""
#: modules/po/../data/webadmin/tmpl/add_edit_user.tmpl:411
#: modules/po/../data/webadmin/tmpl/add_edit_user.tmpl:416
msgid "Clone and return"
msgstr ""
#: modules/po/../data/webadmin/tmpl/add_edit_user.tmpl:412
#: modules/po/../data/webadmin/tmpl/add_edit_user.tmpl:417
msgid "Clone and continue"
msgstr ""
#: modules/po/../data/webadmin/tmpl/add_edit_user.tmpl:414
#: modules/po/../data/webadmin/tmpl/add_edit_user.tmpl:419
msgid "Create and return"
msgstr ""
#: modules/po/../data/webadmin/tmpl/add_edit_user.tmpl:415
#: modules/po/../data/webadmin/tmpl/add_edit_user.tmpl:420
msgid "Create and continue"
msgstr ""
#: modules/po/../data/webadmin/tmpl/add_edit_user.tmpl:421
#: modules/po/../data/webadmin/tmpl/add_edit_user.tmpl:426
#: modules/po/../data/webadmin/tmpl/listusers.tmpl:28
msgid "Clone"
msgstr ""
#: modules/po/../data/webadmin/tmpl/add_edit_user.tmpl:423
#: modules/po/../data/webadmin/tmpl/add_edit_user.tmpl:428
msgid "Create"
msgstr ""
@@ -936,7 +947,7 @@ msgstr ""
msgid "Are you sure you want to delete user “{1}”?"
msgstr ""
#: webadmin.cpp:91 webadmin.cpp:1843
#: webadmin.cpp:91 webadmin.cpp:1853
msgid "Global Settings"
msgstr ""
@@ -944,11 +955,11 @@ msgstr ""
msgid "Your Settings"
msgstr ""
#: webadmin.cpp:94 webadmin.cpp:1655
#: webadmin.cpp:94 webadmin.cpp:1665
msgid "Traffic Info"
msgstr ""
#: webadmin.cpp:97 webadmin.cpp:1634
#: webadmin.cpp:97 webadmin.cpp:1644
msgid "Manage Users"
msgstr ""
@@ -960,211 +971,215 @@ msgstr ""
msgid "Invalid Submission [Passwords do not match]"
msgstr ""
#: webadmin.cpp:383 webadmin.cpp:411 webadmin.cpp:1161 webadmin.cpp:2025
#: webadmin.cpp:314
msgid "Timeout can't be less than 30 seconds!"
msgstr ""
#: webadmin.cpp:391 webadmin.cpp:419 webadmin.cpp:1169 webadmin.cpp:2035
msgid "Unable to load module [{1}]: {2}"
msgstr ""
#: webadmin.cpp:388 webadmin.cpp:416
#: webadmin.cpp:396 webadmin.cpp:424
msgid "Unable to load module [{1}] with arguments [{2}]"
msgstr ""
#: webadmin.cpp:497 webadmin.cpp:601 webadmin.cpp:626 webadmin.cpp:648
#: webadmin.cpp:682 webadmin.cpp:1228
#: webadmin.cpp:505 webadmin.cpp:609 webadmin.cpp:634 webadmin.cpp:656
#: webadmin.cpp:690 webadmin.cpp:1236
msgid "No such user"
msgstr ""
#: webadmin.cpp:510 webadmin.cpp:542 webadmin.cpp:571 webadmin.cpp:587
#: webadmin.cpp:518 webadmin.cpp:550 webadmin.cpp:579 webadmin.cpp:595
msgid "No such user or network"
msgstr ""
#: webadmin.cpp:552
#: webadmin.cpp:560
msgid "No such channel"
msgstr ""
#: webadmin.cpp:618
#: webadmin.cpp:626
msgid "Please don't delete yourself, suicide is not the answer!"
msgstr ""
#: webadmin.cpp:691 webadmin.cpp:913 webadmin.cpp:1292
#: webadmin.cpp:699 webadmin.cpp:921 webadmin.cpp:1300
msgid "Edit User [{1}]"
msgstr ""
#: webadmin.cpp:695 webadmin.cpp:945
#: webadmin.cpp:703 webadmin.cpp:953
msgid "Edit Network [{1}]"
msgstr ""
#: webadmin.cpp:705
#: webadmin.cpp:713
msgid "Edit Channel [{1}] of Network [{2}] of User [{3}]"
msgstr ""
#: webadmin.cpp:712
#: webadmin.cpp:720
msgid "Edit Channel [{1}]"
msgstr ""
#: webadmin.cpp:720
#: webadmin.cpp:728
msgid "Add Channel to Network [{1}] of User [{2}]"
msgstr ""
#: webadmin.cpp:725
#: webadmin.cpp:733
msgid "Add Channel"
msgstr ""
#: webadmin.cpp:732 webadmin.cpp:1481
#: webadmin.cpp:740 webadmin.cpp:1491
msgid "Auto Clear Chan Buffer"
msgstr ""
#: webadmin.cpp:734
#: webadmin.cpp:742
msgid "Automatically Clear Channel Buffer After Playback"
msgstr ""
#: webadmin.cpp:742
#: webadmin.cpp:750
msgid "Detached"
msgstr ""
#: webadmin.cpp:749
#: webadmin.cpp:757
msgid "Enabled"
msgstr ""
#: webadmin.cpp:773
#: webadmin.cpp:781
msgid "Channel name is a required argument"
msgstr ""
#: webadmin.cpp:782
#: webadmin.cpp:790
msgid "Channel [{1}] already exists"
msgstr ""
#: webadmin.cpp:789
#: webadmin.cpp:797
msgid "Could not add channel [{1}]"
msgstr ""
#: webadmin.cpp:837
#: webadmin.cpp:845
msgid "Channel was added/modified, but config file was not written"
msgstr ""
#: webadmin.cpp:921
#: webadmin.cpp:929
msgid "Edit Network [{1}] of User [{2}]"
msgstr ""
#: webadmin.cpp:982 webadmin.cpp:1050
#: webadmin.cpp:990 webadmin.cpp:1058
msgid ""
"Network number limit reached. Ask an admin to increase the limit for you, or "
"delete unneeded networks from Your Settings."
msgstr ""
#: webadmin.cpp:990
#: webadmin.cpp:998
msgid "Add Network for User [{1}]"
msgstr ""
#: webadmin.cpp:998
#: webadmin.cpp:1006
msgid "Add Network"
msgstr ""
#: webadmin.cpp:1044
#: webadmin.cpp:1052
msgid "Network name is a required argument"
msgstr ""
#: webadmin.cpp:1168 webadmin.cpp:2032
#: webadmin.cpp:1176 webadmin.cpp:2042
msgid "Unable to reload module [{1}]: {2}"
msgstr ""
#: webadmin.cpp:1205
#: webadmin.cpp:1213
msgid "Network was added/modified, but config file was not written"
msgstr ""
#: webadmin.cpp:1234
#: webadmin.cpp:1242
msgid "That network doesn't exist for this user"
msgstr ""
#: webadmin.cpp:1251
#: webadmin.cpp:1259
msgid "Network was deleted, but config file was not written"
msgstr ""
#: webadmin.cpp:1265
#: webadmin.cpp:1273
msgid "That channel doesn't exist for this network"
msgstr ""
#: webadmin.cpp:1274
#: webadmin.cpp:1282
msgid "Channel was deleted, but config file was not written"
msgstr ""
#: webadmin.cpp:1300
#: webadmin.cpp:1308
msgid "Clone User [{1}]"
msgstr ""
#: webadmin.cpp:1483
#: webadmin.cpp:1493
msgid ""
"Automatically Clear Channel Buffer After Playback (the default value for new "
"channels)"
msgstr ""
#: webadmin.cpp:1493
#: webadmin.cpp:1503
msgid "Multi Clients"
msgstr ""
#: webadmin.cpp:1500
#: webadmin.cpp:1510
msgid "Append Timestamps"
msgstr ""
#: webadmin.cpp:1507
#: webadmin.cpp:1517
msgid "Prepend Timestamps"
msgstr ""
#: webadmin.cpp:1515
#: webadmin.cpp:1525
msgid "Deny LoadMod"
msgstr ""
#: webadmin.cpp:1522
#: webadmin.cpp:1532
msgid "Admin"
msgstr ""
#: webadmin.cpp:1532
#: webadmin.cpp:1542
msgid "Deny SetBindHost"
msgstr ""
#: webadmin.cpp:1540
#: webadmin.cpp:1550
msgid "Auto Clear Query Buffer"
msgstr ""
#: webadmin.cpp:1542
#: webadmin.cpp:1552
msgid "Automatically Clear Query Buffer After Playback"
msgstr ""
#: webadmin.cpp:1566
#: webadmin.cpp:1576
msgid "Invalid Submission: User {1} already exists"
msgstr ""
#: webadmin.cpp:1588 webadmin.cpp:1599
#: webadmin.cpp:1598 webadmin.cpp:1609
msgid "Invalid submission: {1}"
msgstr ""
#: webadmin.cpp:1594
#: webadmin.cpp:1604
msgid "User was added, but config file was not written"
msgstr ""
#: webadmin.cpp:1605
#: webadmin.cpp:1615
msgid "User was edited, but config file was not written"
msgstr ""
#: webadmin.cpp:1763
#: webadmin.cpp:1773
msgid "Choose either IPv4 or IPv6 or both."
msgstr ""
#: webadmin.cpp:1780
#: webadmin.cpp:1790
msgid "Choose either IRC or HTTP or both."
msgstr ""
#: webadmin.cpp:1793 webadmin.cpp:1829
#: webadmin.cpp:1803 webadmin.cpp:1839
msgid "Port was changed, but config file was not written"
msgstr ""
#: webadmin.cpp:1819
#: webadmin.cpp:1829
msgid "Invalid request."
msgstr ""
#: webadmin.cpp:1833
#: webadmin.cpp:1843
msgid "The specified listener was not found."
msgstr ""
#: webadmin.cpp:2061
#: webadmin.cpp:2071
msgid "Settings were changed, but config file was not written"
msgstr ""

View File

@@ -70,19 +70,19 @@ msgid "Save to config"
msgstr "Сохранять в файл конфигурации"
#: modules/po/../data/webadmin/tmpl/add_edit_chan.tmpl:67
#: modules/po/../data/webadmin/tmpl/add_edit_user.tmpl:399
#: modules/po/../data/webadmin/tmpl/add_edit_user.tmpl:404
#: modules/po/../data/webadmin/tmpl/add_edit_network.tmpl:282
msgid "Module {1}"
msgstr "Модуль {1}"
#: modules/po/../data/webadmin/tmpl/add_edit_chan.tmpl:75
#: modules/po/../data/webadmin/tmpl/add_edit_user.tmpl:408
#: modules/po/../data/webadmin/tmpl/add_edit_user.tmpl:413
#: modules/po/../data/webadmin/tmpl/add_edit_network.tmpl:290
msgid "Save and return"
msgstr "Сохранить и вернуться"
#: modules/po/../data/webadmin/tmpl/add_edit_chan.tmpl:76
#: modules/po/../data/webadmin/tmpl/add_edit_user.tmpl:409
#: modules/po/../data/webadmin/tmpl/add_edit_user.tmpl:414
#: modules/po/../data/webadmin/tmpl/add_edit_network.tmpl:291
msgid "Save and continue"
msgstr "Сохранить и продолжить"
@@ -159,7 +159,7 @@ msgstr "Текущий"
#: modules/po/../data/webadmin/tmpl/settings.tmpl:72
#: modules/po/../data/webadmin/tmpl/add_edit_user.tmpl:123
#: modules/po/../data/webadmin/tmpl/add_edit_user.tmpl:343
#: modules/po/../data/webadmin/tmpl/add_edit_user.tmpl:348
#: modules/po/../data/webadmin/tmpl/add_edit_network.tmpl:185
#: modules/po/../data/webadmin/tmpl/listusers.tmpl:15
msgid "Add"
@@ -170,12 +170,12 @@ msgid "Settings"
msgstr "Настройки"
#: modules/po/../data/webadmin/tmpl/settings.tmpl:90
#: modules/po/../data/webadmin/tmpl/add_edit_user.tmpl:362
#: modules/po/../data/webadmin/tmpl/add_edit_user.tmpl:367
msgid "Skin:"
msgstr "Тема:"
#: modules/po/../data/webadmin/tmpl/settings.tmpl:94
#: modules/po/../data/webadmin/tmpl/add_edit_user.tmpl:368
#: modules/po/../data/webadmin/tmpl/add_edit_user.tmpl:373
msgid "Default"
msgstr "По умолчанию"
@@ -294,7 +294,7 @@ msgid "Loaded by users"
msgstr "Загружено пользо&shy;вателями"
#: modules/po/../data/webadmin/tmpl/settings.tmpl:231
#: modules/po/../data/webadmin/tmpl/add_edit_user.tmpl:419
#: modules/po/../data/webadmin/tmpl/add_edit_user.tmpl:424
#: modules/po/../data/webadmin/tmpl/add_edit_network.tmpl:187
msgid "Save"
msgstr "Сохранить"
@@ -580,79 +580,90 @@ msgstr ""
"отключает с ошибкой «Max SendQ Exceeded»"
#: modules/po/../data/webadmin/tmpl/add_edit_user.tmpl:316
msgid "Timeout before reconnect:"
msgstr ""
#: modules/po/../data/webadmin/tmpl/add_edit_user.tmpl:318
msgid ""
"How much time ZNC waits (in seconds) until it receives something from "
"network or declares the connection timeout. This happens after attempts to "
"ping the peer."
msgstr ""
#: modules/po/../data/webadmin/tmpl/add_edit_user.tmpl:321
msgid "Max IRC Networks Number:"
msgstr "Ограничение количества сетей IRC:"
#: modules/po/../data/webadmin/tmpl/add_edit_user.tmpl:318
#: modules/po/../data/webadmin/tmpl/add_edit_user.tmpl:323
msgid "Maximum number of IRC networks allowed for this user."
msgstr ""
"Наибольшее разрешённое число сетей IRC, которые может иметь этот "
"пользователь."
#: modules/po/../data/webadmin/tmpl/add_edit_user.tmpl:321
#: modules/po/../data/webadmin/tmpl/add_edit_user.tmpl:326
msgid "Substitutions"
msgstr "подстановки"
#: modules/po/../data/webadmin/tmpl/add_edit_user.tmpl:323
#: modules/po/../data/webadmin/tmpl/add_edit_user.tmpl:331
#: modules/po/../data/webadmin/tmpl/add_edit_user.tmpl:328
#: modules/po/../data/webadmin/tmpl/add_edit_user.tmpl:336
msgid "CTCP Replies:"
msgstr "Ответы CTCP:"
#: modules/po/../data/webadmin/tmpl/add_edit_user.tmpl:327
#: modules/po/../data/webadmin/tmpl/add_edit_user.tmpl:332
msgid "One reply per line. Example: <code>TIME Buy a watch!</code>"
msgstr "По одному ответу в каждой строке. Пример: <code>TIME Купи часы!</code>"
#: modules/po/../data/webadmin/tmpl/add_edit_user.tmpl:328
#: modules/po/../data/webadmin/tmpl/add_edit_user.tmpl:344
#: modules/po/../data/webadmin/tmpl/add_edit_user.tmpl:333
#: modules/po/../data/webadmin/tmpl/add_edit_user.tmpl:349
msgid "{1} are available"
msgstr "Доступны {1}"
#: modules/po/../data/webadmin/tmpl/add_edit_user.tmpl:330
#: modules/po/../data/webadmin/tmpl/add_edit_user.tmpl:335
msgid "Empty value means this CTCP request will be ignored"
msgstr "Если пусто, этот запрос CTCP игнорируется"
#: modules/po/../data/webadmin/tmpl/add_edit_user.tmpl:336
#: modules/po/../data/webadmin/tmpl/add_edit_user.tmpl:341
msgid "Request"
msgstr "Запрос"
#: modules/po/../data/webadmin/tmpl/add_edit_user.tmpl:337
#: modules/po/../data/webadmin/tmpl/add_edit_user.tmpl:342
msgid "Response"
msgstr "Ответ"
#: modules/po/../data/webadmin/tmpl/add_edit_user.tmpl:366
#: modules/po/../data/webadmin/tmpl/add_edit_user.tmpl:371
msgid "- Global -"
msgstr "- Глобальная -"
#: modules/po/../data/webadmin/tmpl/add_edit_user.tmpl:372
#: modules/po/../data/webadmin/tmpl/add_edit_user.tmpl:377
msgid "No other skins found"
msgstr "Другие темы не найдены"
#: modules/po/../data/webadmin/tmpl/add_edit_user.tmpl:378
#: modules/po/../data/webadmin/tmpl/add_edit_user.tmpl:383
msgid "Language:"
msgstr "Язык:"
#: modules/po/../data/webadmin/tmpl/add_edit_user.tmpl:411
#: modules/po/../data/webadmin/tmpl/add_edit_user.tmpl:416
msgid "Clone and return"
msgstr "Склонировать и вернуться"
#: modules/po/../data/webadmin/tmpl/add_edit_user.tmpl:412
#: modules/po/../data/webadmin/tmpl/add_edit_user.tmpl:417
msgid "Clone and continue"
msgstr "Склонировать и продолжить"
#: modules/po/../data/webadmin/tmpl/add_edit_user.tmpl:414
#: modules/po/../data/webadmin/tmpl/add_edit_user.tmpl:419
msgid "Create and return"
msgstr "Создать и вернуться"
#: modules/po/../data/webadmin/tmpl/add_edit_user.tmpl:415
#: modules/po/../data/webadmin/tmpl/add_edit_user.tmpl:420
msgid "Create and continue"
msgstr "Создать и продолжить"
#: modules/po/../data/webadmin/tmpl/add_edit_user.tmpl:421
#: modules/po/../data/webadmin/tmpl/add_edit_user.tmpl:426
#: modules/po/../data/webadmin/tmpl/listusers.tmpl:28
msgid "Clone"
msgstr "Склонировать"
#: modules/po/../data/webadmin/tmpl/add_edit_user.tmpl:423
#: modules/po/../data/webadmin/tmpl/add_edit_user.tmpl:428
msgid "Create"
msgstr "Создать"
@@ -1000,7 +1011,7 @@ msgstr "Подтверждение удаления пользователя"
msgid "Are you sure you want to delete user “{1}”?"
msgstr "Вы действительно хотите удалить пользователя «{1}»?"
#: webadmin.cpp:91 webadmin.cpp:1843
#: webadmin.cpp:91 webadmin.cpp:1853
msgid "Global Settings"
msgstr "Глобальные настройки"
@@ -1008,11 +1019,11 @@ msgstr "Глобальные настройки"
msgid "Your Settings"
msgstr "Мои настройки"
#: webadmin.cpp:94 webadmin.cpp:1655
#: webadmin.cpp:94 webadmin.cpp:1665
msgid "Traffic Info"
msgstr "Трафик"
#: webadmin.cpp:97 webadmin.cpp:1634
#: webadmin.cpp:97 webadmin.cpp:1644
msgid "Manage Users"
msgstr "Пользователи"
@@ -1024,92 +1035,96 @@ msgstr "Ошибка: необходимо имя пользователя"
msgid "Invalid Submission [Passwords do not match]"
msgstr "Ошибка: пароли не совпадают"
#: webadmin.cpp:383 webadmin.cpp:411 webadmin.cpp:1161 webadmin.cpp:2025
#: webadmin.cpp:314
msgid "Timeout can't be less than 30 seconds!"
msgstr ""
#: webadmin.cpp:391 webadmin.cpp:419 webadmin.cpp:1169 webadmin.cpp:2035
msgid "Unable to load module [{1}]: {2}"
msgstr "Не могу загрузить модуль [{1}]: {2}"
#: webadmin.cpp:388 webadmin.cpp:416
#: webadmin.cpp:396 webadmin.cpp:424
msgid "Unable to load module [{1}] with arguments [{2}]"
msgstr "Не могу загрузить модуль [{1}] с аргументами [{2}]"
#: webadmin.cpp:497 webadmin.cpp:601 webadmin.cpp:626 webadmin.cpp:648
#: webadmin.cpp:682 webadmin.cpp:1228
#: webadmin.cpp:505 webadmin.cpp:609 webadmin.cpp:634 webadmin.cpp:656
#: webadmin.cpp:690 webadmin.cpp:1236
msgid "No such user"
msgstr "Нет такого пользователя"
#: webadmin.cpp:510 webadmin.cpp:542 webadmin.cpp:571 webadmin.cpp:587
#: webadmin.cpp:518 webadmin.cpp:550 webadmin.cpp:579 webadmin.cpp:595
msgid "No such user or network"
msgstr "Нет такого пользователя"
#: webadmin.cpp:552
#: webadmin.cpp:560
msgid "No such channel"
msgstr "Нет такого канала"
#: webadmin.cpp:618
#: webadmin.cpp:626
msgid "Please don't delete yourself, suicide is not the answer!"
msgstr "Пожалуйста, не удаляйте себя, самоубийство — не ответ!"
#: webadmin.cpp:691 webadmin.cpp:913 webadmin.cpp:1292
#: webadmin.cpp:699 webadmin.cpp:921 webadmin.cpp:1300
msgid "Edit User [{1}]"
msgstr "Пользователь [{1}]"
#: webadmin.cpp:695 webadmin.cpp:945
#: webadmin.cpp:703 webadmin.cpp:953
msgid "Edit Network [{1}]"
msgstr "Сеть [{1}]"
#: webadmin.cpp:705
#: webadmin.cpp:713
msgid "Edit Channel [{1}] of Network [{2}] of User [{3}]"
msgstr "Канал [{1}] в сети [{2}] пользователя [{3}]"
#: webadmin.cpp:712
#: webadmin.cpp:720
msgid "Edit Channel [{1}]"
msgstr "Канал [{1}]"
#: webadmin.cpp:720
#: webadmin.cpp:728
msgid "Add Channel to Network [{1}] of User [{2}]"
msgstr "Новый канал для сети [{1}] пользователя [{2}]"
#: webadmin.cpp:725
#: webadmin.cpp:733
msgid "Add Channel"
msgstr "Новый канал"
#: webadmin.cpp:732 webadmin.cpp:1481
#: webadmin.cpp:740 webadmin.cpp:1491
msgid "Auto Clear Chan Buffer"
msgstr "Автоматически очищать буфер канала"
#: webadmin.cpp:734
#: webadmin.cpp:742
msgid "Automatically Clear Channel Buffer After Playback"
msgstr "Автоматически очищать буфер канала после воспроизведения"
#: webadmin.cpp:742
#: webadmin.cpp:750
msgid "Detached"
msgstr "Отделён"
#: webadmin.cpp:749
#: webadmin.cpp:757
msgid "Enabled"
msgstr "Включена"
#: webadmin.cpp:773
#: webadmin.cpp:781
msgid "Channel name is a required argument"
msgstr "Необходимо имя канала"
#: webadmin.cpp:782
#: webadmin.cpp:790
msgid "Channel [{1}] already exists"
msgstr "Канал [{1}] уже существует"
#: webadmin.cpp:789
#: webadmin.cpp:797
msgid "Could not add channel [{1}]"
msgstr "Не могу добавить канал [{1}]"
#: webadmin.cpp:837
#: webadmin.cpp:845
msgid "Channel was added/modified, but config file was not written"
msgstr "Канал добавлен/изменён, но записать конфигурацию в файл не удалось"
#: webadmin.cpp:921
#: webadmin.cpp:929
msgid "Edit Network [{1}] of User [{2}]"
msgstr "Сеть [{1}] пользователя [{2}]"
#: webadmin.cpp:982 webadmin.cpp:1050
#: webadmin.cpp:990 webadmin.cpp:1058
msgid ""
"Network number limit reached. Ask an admin to increase the limit for you, or "
"delete unneeded networks from Your Settings."
@@ -1117,47 +1132,47 @@ msgstr ""
"Достигнуто ограничение на количество сетей. Попросите администратора поднять "
"вам лимит или удалите ненужные сети в «Моих настройках»"
#: webadmin.cpp:990
#: webadmin.cpp:998
msgid "Add Network for User [{1}]"
msgstr "Новая сеть пользователя [{1}]"
#: webadmin.cpp:998
#: webadmin.cpp:1006
msgid "Add Network"
msgstr "Новая сеть"
#: webadmin.cpp:1044
#: webadmin.cpp:1052
msgid "Network name is a required argument"
msgstr "Необходимо имя сети"
#: webadmin.cpp:1168 webadmin.cpp:2032
#: webadmin.cpp:1176 webadmin.cpp:2042
msgid "Unable to reload module [{1}]: {2}"
msgstr "Не могу перегрузить модуль [{1}]: {2}"
#: webadmin.cpp:1205
#: webadmin.cpp:1213
msgid "Network was added/modified, but config file was not written"
msgstr "Сеть добавлена/изменена, но записать конфигурацию в файл не удалось"
#: webadmin.cpp:1234
#: webadmin.cpp:1242
msgid "That network doesn't exist for this user"
msgstr "У этого пользователя нет такой сети"
#: webadmin.cpp:1251
#: webadmin.cpp:1259
msgid "Network was deleted, but config file was not written"
msgstr "Сеть удалена, но записать конфигурацию в файл не удалось"
#: webadmin.cpp:1265
#: webadmin.cpp:1273
msgid "That channel doesn't exist for this network"
msgstr "В этой сети нет такого канала"
#: webadmin.cpp:1274
#: webadmin.cpp:1282
msgid "Channel was deleted, but config file was not written"
msgstr "Канал удалён, но записать конфигурацию в файл не удалось"
#: webadmin.cpp:1300
#: webadmin.cpp:1308
msgid "Clone User [{1}]"
msgstr "Клон пользователя [{1}]"
#: webadmin.cpp:1483
#: webadmin.cpp:1493
msgid ""
"Automatically Clear Channel Buffer After Playback (the default value for new "
"channels)"
@@ -1165,74 +1180,74 @@ msgstr ""
"Автоматически очищать буфер канала после воспроизведения (значение по "
"умолчанию для новых каналов)"
#: webadmin.cpp:1493
#: webadmin.cpp:1503
msgid "Multi Clients"
msgstr "Много клиентов"
#: webadmin.cpp:1500
#: webadmin.cpp:1510
msgid "Append Timestamps"
msgstr "Метка времени в конце"
#: webadmin.cpp:1507
#: webadmin.cpp:1517
msgid "Prepend Timestamps"
msgstr "Метка времени в начале"
#: webadmin.cpp:1515
#: webadmin.cpp:1525
msgid "Deny LoadMod"
msgstr "Запрет загрузки модулей"
#: webadmin.cpp:1522
#: webadmin.cpp:1532
msgid "Admin"
msgstr "Администратор"
#: webadmin.cpp:1532
#: webadmin.cpp:1542
msgid "Deny SetBindHost"
msgstr "Запрет смены хоста"
#: webadmin.cpp:1540
#: webadmin.cpp:1550
msgid "Auto Clear Query Buffer"
msgstr "Автоматически очищать буфер личных сообщений"
#: webadmin.cpp:1542
#: webadmin.cpp:1552
msgid "Automatically Clear Query Buffer After Playback"
msgstr "Автоматически очищать буфер личных сообщений после воспроизведения"
#: webadmin.cpp:1566
#: webadmin.cpp:1576
msgid "Invalid Submission: User {1} already exists"
msgstr "Ошибка: пользователь {1} уже существует"
#: webadmin.cpp:1588 webadmin.cpp:1599
#: webadmin.cpp:1598 webadmin.cpp:1609
msgid "Invalid submission: {1}"
msgstr "Ошибка: {1}"
#: webadmin.cpp:1594
#: webadmin.cpp:1604
msgid "User was added, but config file was not written"
msgstr "Пользователь добавлен, но записать конфигурацию в файл не удалось"
#: webadmin.cpp:1605
#: webadmin.cpp:1615
msgid "User was edited, but config file was not written"
msgstr "Пользователь изменён, но записать конфигурацию в файл не удалось"
#: webadmin.cpp:1763
#: webadmin.cpp:1773
msgid "Choose either IPv4 or IPv6 or both."
msgstr "Выберите IPv4, IPv6 или и то, и другое."
#: webadmin.cpp:1780
#: webadmin.cpp:1790
msgid "Choose either IRC or HTTP or both."
msgstr "Выберите IRC, HTTP или и то, и другое."
#: webadmin.cpp:1793 webadmin.cpp:1829
#: webadmin.cpp:1803 webadmin.cpp:1839
msgid "Port was changed, but config file was not written"
msgstr "Порт изменён, но записать конфигурацию в файл не удалось"
#: webadmin.cpp:1819
#: webadmin.cpp:1829
msgid "Invalid request."
msgstr "Некорректный запрос."
#: webadmin.cpp:1833
#: webadmin.cpp:1843
msgid "The specified listener was not found."
msgstr "Указанный порт не найден."
#: webadmin.cpp:2061
#: webadmin.cpp:2071
msgid "Settings were changed, but config file was not written"
msgstr "Настройки изменены, но записать конфигурацию в файл не удалось"