LOOP OptionLoop ?>
@@ -38,7 +39,7 @@
-
+ " />
diff --git a/modules/q.cpp b/modules/q.cpp
index 3c7933ab..266dec5c 100644
--- a/modules/q.cpp
+++ b/modules/q.cpp
@@ -70,12 +70,12 @@ class CQModule : public CModule {
// Also don't notify the user in case he already had mode +x set.
if (GetNV("UseCloakedHost").empty()) {
if (!m_bCloaked)
- PutModule(
+ PutModule(t_s(
"Notice: Your host will be cloaked the next time you "
"reconnect to IRC. "
"If you want to cloak your host now, /msg *q Cloak. "
"You can set your preference "
- "with /msg *q Set UseCloakedHost true/false.");
+ "with /msg *q Set UseCloakedHost true/false."))k;
m_bUseCloakedHost = true;
SetUseCloakedHost(m_bUseCloakedHost);
m_bJoinAfterCloaked = true;
@@ -108,154 +108,158 @@ class CQModule : public CModule {
CString sCommand = sLine.Token(0).AsLower();
if (sCommand == "help") {
- PutModule("The following commands are available:");
+ PutModule(t_s("The following commands are available:"));
CTable Table;
- Table.AddColumn("Command");
- Table.AddColumn("Description");
+ Table.AddColumn(t_s("Command"));
+ Table.AddColumn(t_s("Description"));
Table.AddRow();
- Table.SetCell("Command", "Auth [
]");
- Table.SetCell("Description",
- "Tries to authenticate you with Q. Both parameters "
- "are optional.");
+ Table.SetCell(t_s("Command"), t_s("Auth [ ]"));
+ Table.SetCell(t_s("Description"),
+ t_s("Tries to authenticate you with Q. Both "
+ "parameters are optional."));
Table.AddRow();
- Table.SetCell("Command", "Cloak");
+ Table.SetCell(t_s("Command"), "Cloak");
Table.SetCell(
- "Description",
- "Tries to set usermode +x to hide your real hostname.");
+ t_s("Description"),
+ t_s("Tries to set usermode +x to hide your real hostname."));
Table.AddRow();
- Table.SetCell("Command", "Status");
- Table.SetCell("Description",
- "Prints the current status of the module.");
+ Table.SetCell(t_s("Command"), "Status");
+ Table.SetCell(t_s("Description"),
+ t_s("Prints the current status of the module."));
Table.AddRow();
- Table.SetCell("Command", "Update");
- Table.SetCell("Description",
- "Re-requests the current user information from Q.");
+ Table.SetCell(t_s("Command"), "Update");
+ Table.SetCell(
+ t_s("Description"),
+ t_s("Re-requests the current user information from Q."));
Table.AddRow();
- Table.SetCell("Command", "Set ");
- Table.SetCell("Description",
- "Changes the value of the given setting. See the "
- "list of settings below.");
+ Table.SetCell(t_s("Command"), t_s("Set "));
+ Table.SetCell(t_s("Description"),
+ t_s("Changes the value of the given setting. See the "
+ "list of settings below."));
Table.AddRow();
- Table.SetCell("Command", "Get");
- Table.SetCell("Description",
- "Prints out the current configuration. See the list "
- "of settings below.");
+ Table.SetCell(t_s("Command"), "Get");
+ Table.SetCell(t_s("Description"),
+ t_s("Prints out the current configuration. See the "
+ "list of settings below."));
PutModule(Table);
- PutModule("The following settings are available:");
+ PutModule(t_s("The following settings are available:"));
CTable Table2;
- Table2.AddColumn("Setting");
- Table2.AddColumn("Type");
- Table2.AddColumn("Description");
+ Table2.AddColumn(t_s("Setting"));
+ Table2.AddColumn(t_s("Type"));
+ Table2.AddColumn(t_s("Description"));
Table2.AddRow();
- Table2.SetCell("Setting", "Username");
- Table2.SetCell("Type", "String");
- Table2.SetCell("Description", "Your Q username.");
+ Table2.SetCell(t_s("Setting"),"Username");
+ Table2.SetCell(t_s("Type"), t_s("String"));
+ Table2.SetCell(t_s("Description"), t_s("Your Q username."));
Table2.AddRow();
- Table2.SetCell("Setting", "Password");
- Table2.SetCell("Type", "String");
- Table2.SetCell("Description", "Your Q password.");
+ Table2.SetCell(t_s("Setting"), "Password");
+ Table2.SetCell(t_s("Type"), t_s("String"));
+ Table2.SetCell(t_s("Description"), t_s("Your Q password."));
Table2.AddRow();
- Table2.SetCell("Setting", "UseCloakedHost");
- Table2.SetCell("Type", "Boolean");
- Table2.SetCell("Description",
- "Whether to cloak your hostname (+x) automatically "
- "on connect.");
+ Table2.SetCell(t_s("Setting"), "UseCloakedHost");
+ Table2.SetCell(t_s("Type"), t_s("Boolean"));
+ Table2.SetCell(t_s("Description"),
+ t_s("Whether to cloak your hostname (+x) "
+ "automatically on connect."));
Table2.AddRow();
- Table2.SetCell("Setting", "UseChallenge");
- Table2.SetCell("Type", "Boolean");
- Table2.SetCell("Description",
- "Whether to use the CHALLENGEAUTH mechanism to "
- "avoid sending passwords in cleartext.");
+ Table2.SetCell(t_s("Setting"), "UseChallenge");
+ Table2.SetCell(t_s("Type"), t_s("Boolean"));
+ Table2.SetCell(t_s("Description"),
+ t_s("Whether to use the CHALLENGEAUTH mechanism to "
+ "avoid sending passwords in cleartext."));
Table2.AddRow();
- Table2.SetCell("Setting", "RequestPerms");
- Table2.SetCell("Type", "Boolean");
+ Table2.SetCell(t_s("Setting"), "RequestPerms");
+ Table2.SetCell(t_s("Type"), t_s("Boolean"));
+ Table2.SetCell(t_s("Description"),
+ t_s("Whether to request voice/op from Q on "
+ "join/devoice/deop."));
+ Table2.AddRow();
+ Table2.SetCell(t_s("Setting"), "JoinOnInvite");
+ Table2.SetCell(t_s("Type"), t_s("Boolean"));
+ Table2.SetCell(t_s("Description"),
+ t_s("Whether to join channels when Q invites you."));
+ Table2.AddRow();
+ Table2.SetCell(t_s("Setting"), "JoinAfterCloaked");
+ Table2.SetCell(t_s("Type"), t_s("Boolean"));
Table2.SetCell(
- "Description",
- "Whether to request voice/op from Q on join/devoice/deop.");
- Table2.AddRow();
- Table2.SetCell("Setting", "JoinOnInvite");
- Table2.SetCell("Type", "Boolean");
- Table2.SetCell("Description",
- "Whether to join channels when Q invites you.");
- Table2.AddRow();
- Table2.SetCell("Setting", "JoinAfterCloaked");
- Table2.SetCell("Type", "Boolean");
- Table2.SetCell("Description",
- "Whether to delay joining channels until after you "
- "are cloaked.");
+ t_s("Description"),
+ t_s("Whether to delay joining channels until after you "
+ "are cloaked."));
PutModule(Table2);
PutModule(
- "This module takes 2 optional parameters: "
- "");
- PutModule("Module settings are stored between restarts.");
+ t_s("This module takes 2 optional parameters: "
+ ""));
+ PutModule(t_s("Module settings are stored between restarts."));
} else if (sCommand == "set") {
CString sSetting = sLine.Token(1).AsLower();
CString sValue = sLine.Token(2);
if (sSetting.empty() || sValue.empty()) {
- PutModule("Syntax: Set ");
+ PutModule(t_s("Syntax: Set "));
} else if (sSetting == "username") {
SetUsername(sValue);
- PutModule("Username set");
+ PutModule(t_s("Username set"));
} else if (sSetting == "password") {
SetPassword(sValue);
- PutModule("Password set");
+ PutModule(t_s("Password set"));
} else if (sSetting == "usecloakedhost") {
SetUseCloakedHost(sValue.ToBool());
- PutModule("UseCloakedHost set");
+ PutModule(t_s("UseCloakedHost set"));
} else if (sSetting == "usechallenge") {
SetUseChallenge(sValue.ToBool());
- PutModule("UseChallenge set");
+ PutModule(t_s("UseChallenge set"));
} else if (sSetting == "requestperms") {
SetRequestPerms(sValue.ToBool());
- PutModule("RequestPerms set");
+ PutModule(t_s("RequestPerms set"));
} else if (sSetting == "joinoninvite") {
SetJoinOnInvite(sValue.ToBool());
- PutModule("JoinOnInvite set");
+ PutModule(t_s("JoinOnInvite set"));
} else if (sSetting == "joinaftercloaked") {
SetJoinAfterCloaked(sValue.ToBool());
- PutModule("JoinAfterCloaked set");
+ PutModule(t_s("JoinAfterCloaked set"));
} else
- PutModule("Unknown setting: " + sSetting);
+ PutModule(t_f("Unknown setting: {1}")(sSetting));
} else if (sCommand == "get" || sCommand == "list") {
CTable Table;
- Table.AddColumn("Setting");
- Table.AddColumn("Value");
+ Table.AddColumn(t_s("Setting"));
+ Table.AddColumn(t_s("Value"));
Table.AddRow();
- Table.SetCell("Setting", "Username");
- Table.SetCell("Value", m_sUsername);
+ Table.SetCell(t_s("Setting"), "Username");
+ Table.SetCell(t_s("Value"), m_sUsername);
Table.AddRow();
- Table.SetCell("Setting", "Password");
- Table.SetCell("Value", "*****"); // m_sPassword
+ Table.SetCell(t_s("Setting"), "Password");
+ Table.SetCell(t_s("Value"), "*****"); // m_sPassword
Table.AddRow();
- Table.SetCell("Setting", "UseCloakedHost");
- Table.SetCell("Value", CString(m_bUseCloakedHost));
+ Table.SetCell(t_s("Setting"), "UseCloakedHost");
+ Table.SetCell(t_s("Value"), CString(m_bUseCloakedHost));
Table.AddRow();
- Table.SetCell("Setting", "UseChallenge");
- Table.SetCell("Value", CString(m_bUseChallenge));
+ Table.SetCell(t_s("Setting"), "UseChallenge");
+ Table.SetCell(t_s("Value"), CString(m_bUseChallenge));
Table.AddRow();
- Table.SetCell("Setting", "RequestPerms");
- Table.SetCell("Value", CString(m_bRequestPerms));
+ Table.SetCell(t_s("Setting"), "RequestPerms");
+ Table.SetCell(t_s("Value"), CString(m_bRequestPerms));
Table.AddRow();
- Table.SetCell("Setting", "JoinOnInvite");
- Table.SetCell("Value", CString(m_bJoinOnInvite));
+ Table.SetCell(t_s("Setting"), "JoinOnInvite");
+ Table.SetCell(t_s("Value"), CString(m_bJoinOnInvite));
Table.AddRow();
- Table.SetCell("Setting", "JoinAfterCloaked");
- Table.SetCell("Value", CString(m_bJoinAfterCloaked));
+ Table.SetCell(t_s("Setting"), "JoinAfterCloaked");
+ Table.SetCell(t_s("Value"), CString(m_bJoinAfterCloaked));
PutModule(Table);
} else if (sCommand == "status") {
- PutModule("Connected: " + CString(IsIRCConnected() ? "yes" : "no"));
- PutModule("Cloaked: " + CString(m_bCloaked ? "yes" : "no"));
- PutModule("Authed: " + CString(m_bAuthed ? "yes" : "no"));
+ PutModule(IsIRCConnected() ? t_s("Connected: yes")
+ : t_s("Connected: no"));
+ PutModule(m_bCloaked ? t_s("Cloacked: yes") : t_s("Cloacked: no"));
+ PutModule(m_bAuthed ? t_s("Authenticated: yes")
+ : t_s("Authenticated: no"));
} else {
// The following commands require an IRC connection.
if (!IsIRCConnected()) {
- PutModule("Error: You are not connected to IRC.");
+ PutModule(t_s("Error: You are not connected to IRC."));
return;
}
@@ -263,20 +267,20 @@ class CQModule : public CModule {
if (!m_bCloaked)
Cloak();
else
- PutModule("Error: You are already cloaked!");
+ PutModule(t_s("Error: You are already cloaked!"));
} else if (sCommand == "auth") {
if (!m_bAuthed)
Auth(sLine.Token(1), sLine.Token(2));
else
- PutModule("Error: You are already authed!");
+ PutModule(t_s("Error: You are already authed!"));
} else if (sCommand == "update") {
WhoAmI();
- PutModule("Update requested.");
+ PutModule(t_s("Update requested."));
} else {
- PutModule("Unknown command. Try 'help'.");
+ PutModule(t_s("Unknown command. Try 'help'."));
}
}
}
@@ -286,7 +290,7 @@ class CQModule : public CModule {
if (sLine.Token(1) == "396" &&
sLine.Token(3).find("users.quakenet.org") != CString::npos) {
m_bCloaked = true;
- PutModule("Cloak successful: Your hostname is now cloaked.");
+ PutModule(t_s("Cloak successful: Your hostname is now cloaked."));
// Join channels immediately after our spoof is set, but only if
// both UseCloakedHost and JoinAfterCloaked is enabled. See #602.
@@ -366,40 +370,42 @@ class CQModule : public CModule {
o1["Name"] = "usecloakedhost";
o1["DisplayName"] = "UseCloakedHost";
o1["Tooltip"] =
- "Whether to cloak your hostname (+x) automatically on connect.";
+ t_s("Whether to cloak your hostname (+x) automatically on "
+ "connect.");
o1["Checked"] = CString(m_bUseCloakedHost);
CTemplate& o2 = Tmpl.AddRow("OptionLoop");
o2["Name"] = "usechallenge";
o2["DisplayName"] = "UseChallenge";
o2["Tooltip"] =
- "Whether to use the CHALLENGEAUTH mechanism to avoid sending "
- "passwords in cleartext.";
+ t_s("Whether to use the CHALLENGEAUTH mechanism to avoid "
+ "sending passwords in cleartext.");
o2["Checked"] = CString(m_bUseChallenge);
CTemplate& o3 = Tmpl.AddRow("OptionLoop");
o3["Name"] = "requestperms";
o3["DisplayName"] = "RequestPerms";
o3["Tooltip"] =
- "Whether to request voice/op from Q on join/devoice/deop.";
+ t_s("Whether to request voice/op from Q on join/devoice/deop.");
o3["Checked"] = CString(m_bRequestPerms);
CTemplate& o4 = Tmpl.AddRow("OptionLoop");
o4["Name"] = "joinoninvite";
o4["DisplayName"] = "JoinOnInvite";
- o4["Tooltip"] = "Whether to join channels when Q invites you.";
+ o4["Tooltip"] = t_s("Whether to join channels when Q invites you.");
o4["Checked"] = CString(m_bJoinOnInvite);
CTemplate& o5 = Tmpl.AddRow("OptionLoop");
o5["Name"] = "joinaftercloaked";
o5["DisplayName"] = "JoinAfterCloaked";
o5["Tooltip"] =
- "Whether to delay joining channels until after you are "
- "cloaked.";
+ t_s("Whether to delay joining channels until after you are "
+ "cloaked.");
o5["Checked"] = CString(m_bJoinAfterCloaked);
if (bSubmitted) {
- WebSock.GetSession()->AddSuccess("Changes have been saved!");
+ WebSock.GetSession()->AddSuccess(
+ t_s("Changes have been saved!"));
}
return true;
@@ -426,7 +432,7 @@ class CQModule : public CModule {
void Cloak() {
if (m_bCloaked) return;
- PutModule("Cloak: Trying to cloak your hostname, setting +x...");
+ PutModule(t_s("Cloak: Trying to cloak your hostname, setting +x..."));
PutIRC("MODE " + GetNetwork()->GetIRCSock()->GetNick() + " +x");
}
@@ -443,17 +449,17 @@ class CQModule : public CModule {
if (m_sUsername.empty() || m_sPassword.empty()) {
PutModule(
- "You have to set a username and password to use this module! "
- "See 'help' for details.");
+ t_s("You have to set a username and password to use this "
+ "module! See 'help' for details."));
return;
}
if (m_bUseChallenge) {
- PutModule("Auth: Requesting CHALLENGE...");
+ PutModule(t_s("Auth: Requesting CHALLENGE..."));
m_bRequestedChallenge = true;
PutQ("CHALLENGE");
} else {
- PutModule("Auth: Sending AUTH request...");
+ PutModule(t_s("Auth: Sending AUTH request..."));
PutQ("AUTH " + m_sUsername + " " + m_sPassword);
}
}
@@ -469,7 +475,8 @@ class CQModule : public CModule {
CString sKey = CString(sUsername + ":" + sPasswordHash).SHA256();
CString sResponse = HMAC_SHA256(sKey, sChallenge);
- PutModule("Auth: Received challenge, sending CHALLENGEAUTH request...");
+ PutModule(
+ t_s("Auth: Received challenge, sending CHALLENGEAUTH request..."));
PutQ("CHALLENGEAUTH " + m_sUsername + " " + sResponse +
" HMAC-SHA-256");
}
@@ -511,11 +518,11 @@ class CQModule : public CModule {
// AUTH
else if (sMessage.Equals("Username or password incorrect.")) {
m_bAuthed = false;
- PutModule("Auth failed: " + sMessage);
+ PutModule(t_f("Authentication failed: {1}")(sMessage));
return HALT;
} else if (sMessage.WildCmp("You are now logged in as *.")) {
m_bAuthed = true;
- PutModule("Auth successful: " + sMessage);
+ PutModule(t_f("Authentication successful: {1}")(sMessage));
WhoAmI();
return HALT;
} else if (m_bRequestedChallenge &&
@@ -529,8 +536,8 @@ class CQModule : public CModule {
ChallengeAuth(sMessage.Token(1));
} else {
PutModule(
- "Auth failed: Q does not support HMAC-SHA-256 for "
- "CHALLENGEAUTH, falling back to standard AUTH.");
+ t_s("Auth failed: Q does not support HMAC-SHA-256 for "
+ "CHALLENGEAUTH, falling back to standard AUTH."));
SetUseChallenge(false);
Auth();
}
@@ -556,8 +563,8 @@ class CQModule : public CModule {
bool bAutoOp = (sModes.find("a") != CString::npos);
if (bMaster || bOp) {
if (!bAutoOp) {
- PutModule("RequestPerms: Requesting op on " +
- Channel.GetName());
+ PutModule(t_f("RequestPerms: Requesting op on {1}")(
+ Channel.GetName()));
PutQ("OP " + Channel.GetName());
}
return;
@@ -569,8 +576,8 @@ class CQModule : public CModule {
bool bAutoVoice = (sModes.find("g") != CString::npos);
if (bMaster || bVoice) {
if (!bAutoVoice) {
- PutModule("RequestPerms: Requesting voice on " +
- Channel.GetName());
+ PutModule(t_f("RequestPerms: Requesting voice on {1}")(
+ Channel.GetName()));
PutQ("VOICE " + Channel.GetName());
}
return;
@@ -675,7 +682,8 @@ template <>
void TModInfo(CModInfo& Info) {
Info.SetWikiPage("Q");
Info.SetHasArgs(true);
- Info.SetArgsHelpText("Please provide your username and password for Q.");
+ Info.SetArgsHelpText(
+ Info.t_s("Please provide your username and password for Q."));
}
-NETWORKMODULEDEFS(CQModule, "Auths you with QuakeNet's Q bot.")
+NETWORKMODULEDEFS(CQModule, t_s("Auths you with QuakeNet's Q bot."))
diff --git a/modules/raw.cpp b/modules/raw.cpp
index f0b49de3..7624af7c 100644
--- a/modules/raw.cpp
+++ b/modules/raw.cpp
@@ -40,4 +40,4 @@ void TModInfo(CModInfo& Info) {
Info.AddType(CModInfo::UserModule);
}
-NETWORKMODULEDEFS(CRawMod, "View all of the raw traffic")
+NETWORKMODULEDEFS(CRawMod, t_s("View all of the raw traffic"))
diff --git a/modules/route_replies.cpp b/modules/route_replies.cpp
index 8d7f6f05..a419e681 100644
--- a/modules/route_replies.cpp
+++ b/modules/route_replies.cpp
@@ -206,10 +206,9 @@ class CRouteRepliesMod : public CModule {
m_pReplies = nullptr;
AddHelpCommand();
- AddCommand("Silent", static_cast(
- &CRouteRepliesMod::SilentCommand),
- "[yes|no]",
- "Decides whether to show the timeout messages or not");
+ AddCommand("Silent", t_d("[yes|no]"),
+ t_d("Decides whether to show the timeout messages or not"),
+ [=](const CString& sLine) { SilentCommand(sLine); });
}
~CRouteRepliesMod() override {
@@ -348,19 +347,20 @@ class CRouteRepliesMod : public CModule {
if (!GetNV("silent_timeouts").ToBool()) {
PutModule(
- "This module hit a timeout which is probably a connectivity "
- "issue.");
+ t_s("This module hit a timeout which is probably a "
+ "connectivity issue."));
PutModule(
- "However, if you can provide steps to reproduce this issue, "
- "please do report a bug.");
- PutModule("To disable this message, do \"/msg " + GetModNick() +
- " silent yes\"");
- PutModule("Last request: " + m_sLastRequest);
- PutModule("Expected replies: ");
+ t_s("However, if you can provide steps to reproduce this "
+ "issue, please do report a bug."));
+ PutModule(
+ t_f("To disable this message, do \"/msg {1} silent yes\"")(
+ GetModNick()));
+ PutModule(t_f("Last request: {1}")(m_sLastRequest));
+ PutModule(t_s("Expected replies:"));
for (size_t i = 0; m_pReplies[i].szReply != nullptr; i++) {
if (m_pReplies[i].bLastResponse)
- PutModule(m_pReplies[i].szReply + CString(" (last)"));
+ PutModule(t_f("{1} (last)")(m_pReplies[i].szReply));
else
PutModule(m_pReplies[i].szReply);
}
@@ -431,8 +431,9 @@ class CRouteRepliesMod : public CModule {
SetNV("silent_timeouts", sValue);
}
- CString sPrefix = GetNV("silent_timeouts").ToBool() ? "dis" : "en";
- PutModule("Timeout messages are " + sPrefix + "abled.");
+ PutModule(GetNV("silent_timeouts").ToBool()
+ ? t_s("Timeout messages are disabled.")
+ : t_s("Timeout messages are enabled."));
}
CClient* m_pDoing;
@@ -453,4 +454,4 @@ void TModInfo(CModInfo& Info) {
}
NETWORKMODULEDEFS(CRouteRepliesMod,
- "Send replies (e.g. to /who) to the right client only")
+ t_s("Send replies (e.g. to /who) to the right client only"))