summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2016-01-04 15:44:31 +0300
committerAndrei Karas <akaras@inbox.ru>2016-01-04 16:24:42 +0300
commitbc2c095db69be01837d07af1151b0f0a3061713f (patch)
tree98009b4483d873f45f7b4f2897a4a7ba5118d39e
parent9b5b48739b62fca4bb30cd04be1031ac3f80095d (diff)
downloadplus-bc2c095db69be01837d07af1151b0f0a3061713f.tar.gz
plus-bc2c095db69be01837d07af1151b0f0a3061713f.tar.bz2
plus-bc2c095db69be01837d07af1151b0f0a3061713f.tar.xz
plus-bc2c095db69be01837d07af1151b0f0a3061713f.zip
Add missing TRANSLATORS comments to translation strings.
-rw-r--r--src/actions/actions.cpp7
-rw-r--r--src/actions/chat.cpp3
-rw-r--r--src/actions/pets.cpp1
-rw-r--r--src/actions/windows.cpp1
-rw-r--r--src/being/being.cpp6
-rw-r--r--src/being/localplayer.cpp5
-rw-r--r--src/client.cpp2
-rw-r--r--src/dirs.cpp4
-rw-r--r--src/dyetool/dyemain.cpp3
-rw-r--r--src/gui/dialogsmanager.cpp2
-rw-r--r--src/gui/popups/popupmenu.cpp82
-rw-r--r--src/gui/popups/skillpopup.cpp6
-rw-r--r--src/gui/userpalette.cpp4
-rw-r--r--src/gui/widgets/characterdisplay.cpp6
-rw-r--r--src/gui/widgets/skillinfo.cpp4
-rw-r--r--src/gui/widgets/tabs/chat/guildtab.cpp9
-rw-r--r--src/gui/widgets/tabs/setup_chat.cpp29
-rw-r--r--src/gui/widgets/tabs/setup_colors.cpp5
-rw-r--r--src/gui/widgets/tabs/setup_other.cpp2
-rw-r--r--src/gui/widgets/tabs/setup_relations.cpp1
-rw-r--r--src/gui/widgets/tabs/setup_theme.cpp3
-rw-r--r--src/gui/widgets/tabs/setup_video.cpp6
-rw-r--r--src/gui/widgets/tabs/setup_visual.cpp2
-rw-r--r--src/gui/widgets/tabs/socialguildtab.h2
-rw-r--r--src/gui/widgets/tabs/socialpartytab.h4
-rw-r--r--src/gui/windowmenu.cpp38
-rw-r--r--src/gui/windows/bankwindow.cpp3
-rw-r--r--src/gui/windows/buydialog.cpp2
-rw-r--r--src/gui/windows/charselectdialog.cpp9
-rw-r--r--src/gui/windows/chatwindow.cpp5
-rw-r--r--src/gui/windows/editserverdialog.cpp2
-rw-r--r--src/gui/windows/equipmentwindow.cpp1
-rw-r--r--src/gui/windows/inventorywindow.cpp2
-rw-r--r--src/gui/windows/mailviewwindow.cpp18
-rw-r--r--src/gui/windows/ministatuswindow.cpp4
-rw-r--r--src/gui/windows/quitdialog.cpp1
-rw-r--r--src/gui/windows/shopwindow.cpp53
-rw-r--r--src/gui/windows/skilldialog.cpp5
-rw-r--r--src/gui/windows/socialwindow.cpp3
-rw-r--r--src/gui/windows/updaterwindow.cpp1
-rw-r--r--src/net/eathena/chatrecv.cpp5
-rw-r--r--src/net/eathena/generalhandler.cpp30
-rw-r--r--src/net/eathena/generalrecv.cpp29
-rw-r--r--src/net/eathena/mailrecv.cpp1
-rw-r--r--src/net/eathena/petrecv.cpp5
-rw-r--r--src/net/eathena/skillrecv.cpp14
-rw-r--r--src/net/tmwa/generalhandler.cpp12
-rw-r--r--src/resources/db/npcdb.cpp3
-rw-r--r--src/resources/mapreader.cpp1
-rw-r--r--src/utils/stringutils.cpp1
-rw-r--r--src/utils/stringutils.h2
51 files changed, 334 insertions, 115 deletions
diff --git a/src/actions/actions.cpp b/src/actions/actions.cpp
index ba5bb9226..d8fa1c165 100644
--- a/src/actions/actions.cpp
+++ b/src/actions/actions.cpp
@@ -1111,6 +1111,7 @@ impHandler0(cacheInfo)
return;
unsigned int all = 0;
+ // TRANSLATORS: chat fonts message
debugChatTab->chatLog(_("font cache size"), ChatMsgType::BY_SERVER);
std::string str;
for (int f = 0; f < 256; f ++)
@@ -1123,14 +1124,17 @@ impHandler0(cacheInfo)
}
}
debugChatTab->chatLog(str, ChatMsgType::BY_SERVER);
+ // TRANSLATORS: chat fonts message
debugChatTab->chatLog(strprintf("%s %d", _("Cache size:"), all),
ChatMsgType::BY_SERVER);
#ifdef DEBUG_FONT_COUNTERS
debugChatTab->chatLog("", ChatMsgType::BY_SERVER);
debugChatTab->chatLog(strprintf("%s %d",
+ // TRANSLATORS: chat fonts message
_("Created:"), font->getCreateCounter()),
ChatMsgType::BY_SERVER);
debugChatTab->chatLog(strprintf("%s %d",
+ // TRANSLATORS: chat fonts message
_("Deleted:"), font->getDeleteCounter()),
ChatMsgType::BY_SERVER);
#endif
@@ -1467,6 +1471,7 @@ impHandler0(createItems)
impHandler(uploadConfig)
{
+ // TRANSLATORS: upload config chat message
uploadFile(_("Uploaded config into:"),
config.getFileName(),
"?xml",
@@ -1476,6 +1481,7 @@ impHandler(uploadConfig)
impHandler(uploadServerConfig)
{
+ // TRANSLATORS: upload config chat message
uploadFile(_("Uploaded server config into:"),
serverConfig.getFileName(),
"?xml",
@@ -1485,6 +1491,7 @@ impHandler(uploadServerConfig)
impHandler(uploadLog)
{
+ // TRANSLATORS: upload log chat message
uploadFile(_("Uploaded log into:"),
settings.logFileName,
"?txt",
diff --git a/src/actions/chat.cpp b/src/actions/chat.cpp
index e44b3a259..9d9be4279 100644
--- a/src/actions/chat.cpp
+++ b/src/actions/chat.cpp
@@ -423,8 +423,8 @@ impHandler(toggle)
{
if (chatWindow && event.tab)
{
- // TRANSLATORS: message from toggle chat command
event.tab->chatLog(chatWindow->getReturnTogglesChat() ?
+ // TRANSLATORS: message from toggle chat command
_("Return toggles chat.") : _("Message closes chat."),
ChatMsgType::BY_SERVER);
}
@@ -597,6 +597,7 @@ impHandler(hat)
const int sprite = localPlayer->getSpriteID(
charServerHandler->hatSprite());
const ItemInfo &info = ItemDB::get(sprite);
+ // TRANSLATORS: equipped hat chat message
const std::string str = strprintf(_("equipped hat %s."),
info.getName().c_str());
outString(event.tab, str, str);
diff --git a/src/actions/pets.cpp b/src/actions/pets.cpp
index bf06b3a75..d69618356 100644
--- a/src/actions/pets.cpp
+++ b/src/actions/pets.cpp
@@ -107,6 +107,7 @@ impHandler(setPetName)
const Being *const pet = getPet();
if (!pet)
return false;
+ // TRANSLATORS: dialog header
inputActionReplayListener.openDialog(_("Rename your pet"),
pet->getName(),
InputAction::PET_SET_NAME);
diff --git a/src/actions/windows.cpp b/src/actions/windows.cpp
index c4aff5b19..508f17105 100644
--- a/src/actions/windows.cpp
+++ b/src/actions/windows.cpp
@@ -319,6 +319,7 @@ impHandler0(quickWindowShow)
if (setupWindow->isWindowVisible())
setupWindow->doCancel();
setupWindow->setVisible(Visible_true);
+ // TRANSLATORS: settings tab name
setupWindow->activateTab(_("Quick"));
setupWindow->requestMoveToTop();
return true;
diff --git a/src/being/being.cpp b/src/being/being.cpp
index 785961e47..194bfb526 100644
--- a/src/being/being.cpp
+++ b/src/being/being.cpp
@@ -660,9 +660,9 @@ void Being::takeDamage(Being *restrict const attacker,
BLOCK_START("Being::takeDamage1")
Font *font = nullptr;
- // TRANSLATORS: hit or miss message in attacks
- const std::string damage = amount ? toString(amount)
- : type == AttackType::FLEE ? _("dodge") : _("miss");
+ const std::string damage = amount ? toString(amount) :
+ // TRANSLATORS: dodge or miss message in attacks
+ type == AttackType::FLEE ? _("dodge") : _("miss");
const Color *color;
if (gui)
diff --git a/src/being/localplayer.cpp b/src/being/localplayer.cpp
index 91a601711..1d0fd92aa 100644
--- a/src/being/localplayer.cpp
+++ b/src/being/localplayer.cpp
@@ -1085,8 +1085,9 @@ void LocalPlayer::addJobMessage(const int change)
{
MessagePair pair = mMessages.back();
// TRANSLATORS: this is normal experience
- if (pair.first.find(strprintf(" %s", _("xp")))
- == pair.first.size() - strlen(_("xp")) - 1)
+ if (pair.first.find(strprintf(" %s", _("xp"))) ==
+ // TRANSLATORS: this is normal experience
+ pair.first.size() - strlen(_("xp")) - 1)
{
mMessages.pop_back();
// TRANSLATORS: this is job experience
diff --git a/src/client.cpp b/src/client.cpp
index 6506c9241..c4d879355 100644
--- a/src/client.cpp
+++ b/src/client.cpp
@@ -1664,8 +1664,8 @@ int Client::gameExec()
serverConfig.write();
logger->log1("State: ERROR");
logger->log("Error: %s\n", errorMessage.c_str());
- // TRANSLATORS: error message header
mCurrentDialog = DialogsManager::openErrorDialog(
+ // TRANSLATORS: error message header
_("Error"),
errorMessage,
Modal_true);
diff --git a/src/dirs.cpp b/src/dirs.cpp
index d05500b97..190249737 100644
--- a/src/dirs.cpp
+++ b/src/dirs.cpp
@@ -527,8 +527,8 @@ void Dirs::initScreenshotDir()
settings.screenshotDir = settings.options.screenshotDir;
if (mkdir_r(settings.screenshotDir.c_str()))
{
- // TRANSLATORS: directory creation error
logger->log(strprintf(
+ // TRANSLATORS: directory creation error
_("Error: %s doesn't exist and can't be created! "
"Exiting."), settings.screenshotDir.c_str()));
}
@@ -548,8 +548,8 @@ void Dirs::initScreenshotDir()
if (mkdir_r(settings.screenshotDir.c_str()))
{
- // TRANSLATORS: directory creation error
logger->log(strprintf(
+ // TRANSLATORS: directory creation error
_("Error: %s doesn't exist and can't be created! "
"Exiting."), settings.screenshotDir.c_str()));
}
diff --git a/src/dyetool/dyemain.cpp b/src/dyetool/dyemain.cpp
index 74cf426a0..8741ff9e7 100644
--- a/src/dyetool/dyemain.cpp
+++ b/src/dyetool/dyemain.cpp
@@ -44,8 +44,11 @@
static void printHelp()
{
+ // TRANSLATORS: command line help
std::cout << _("dyecmd srcfile dyestring dstfile") << std::endl;
+ // TRANSLATORS: command line help
std::cout << _("or") << std::endl;
+ // TRANSLATORS: command line help
std::cout << _("dyecmd srcdyestring dstfile") << std::endl;
}
diff --git a/src/gui/dialogsmanager.cpp b/src/gui/dialogsmanager.cpp
index 80138c345..39db3a0e8 100644
--- a/src/gui/dialogsmanager.cpp
+++ b/src/gui/dialogsmanager.cpp
@@ -140,8 +140,8 @@ void DialogsManager::playerDeath()
#ifndef DYECMD
if (!deathNotice)
{
- // TRANSLATORS: message header
CREATEWIDGETV(deathNotice, OkDialog,
+ // TRANSLATORS: message header
_("Message"),
DeadDB::getRandomString(),
// TRANSLATORS: ok dialog button
diff --git a/src/gui/popups/popupmenu.cpp b/src/gui/popups/popupmenu.cpp
index 2c6b3c6a4..3bf1a6d9c 100644
--- a/src/gui/popups/popupmenu.cpp
+++ b/src/gui/popups/popupmenu.cpp
@@ -228,9 +228,9 @@ void PopupMenu::showPopup(const int x, const int y, const Being *const being)
|| (guildManager && guildManager->havePower()))
#endif
{
- // TRANSLATORS: popup menu item
- // TRANSLATORS: invite player to guild
mBrowserBox->addRow("/guild 'NAME'",
+ // TRANSLATORS: popup menu item
+ // TRANSLATORS: invite player to guild
_("Invite to guild"));
}
}
@@ -258,9 +258,9 @@ void PopupMenu::showPopup(const int x, const int y, const Being *const being)
mBrowserBox->addRow("/talk 'NAME'", _("Talk"));
if (serverFeatures->haveNpcWhispers())
{
- // TRANSLATORS: popup menu item
- // TRANSLATORS: whisper to npc
mBrowserBox->addRow("/whispertext NPC:'NAME'",
+ // TRANSLATORS: popup menu item
+ // TRANSLATORS: whisper to npc
_("Whisper"));
}
// TRANSLATORS: popup menu item
@@ -531,9 +531,9 @@ void PopupMenu::showPlayerPopup(const std::string &nick)
}
if (guild2->getServerGuild())
{
- // TRANSLATORS: popup menu item
- // TRANSLATORS: change player position in guild
mBrowserBox->addRow(strprintf(
+ // TRANSLATORS: popup menu item
+ // TRANSLATORS: change player position in guild
"@@guild-pos|%s >@@", _("Change pos in guild")));
}
}
@@ -865,9 +865,9 @@ void PopupMenu::showChatPopup(const int x, const int y, ChatTab *const tab)
}
if (guild2->getServerGuild())
{
- // TRANSLATORS: popup menu item
- // TRANSLATORS: change player position in guild
mBrowserBox->addRow(strprintf("@@guild-pos|%s >@@",
+ // TRANSLATORS: popup menu item
+ // TRANSLATORS: change player position in guild
_("Change pos in guild")));
}
}
@@ -879,9 +879,9 @@ void PopupMenu::showChatPopup(const int x, const int y, ChatTab *const tab)
&& guildManager->havePower()))
#endif
{
- // TRANSLATORS: popup menu item
- // TRANSLATORS: invite player to guild
mBrowserBox->addRow("/guild 'NAME'",
+ // TRANSLATORS: popup menu item
+ // TRANSLATORS: invite player to guild
_("Invite to guild"));
}
}
@@ -1056,10 +1056,12 @@ void PopupMenu::handleLink(const std::string &link,
else if (link == "rename map" && mMapItem)
{
mRenameListener.setMapItem(mMapItem);
- // TRANSLATORS: number of chars in string should be near original
CREATEWIDGETV(mDialog, TextDialog,
+ // TRANSLATORS: dialog caption
+ // TRANSLATORS: number of chars in string should be near original
_("Rename map sign "),
- // TRANSLATORS: number of chars in string should be near original
+ // TRANSLATORS: label
+ // TRANSLATORS: number of chars in string should be near original
_("Name: "));
mRenameListener.setDialog(mDialog);
mDialog->setText(mMapItem->getComment());
@@ -1076,9 +1078,11 @@ void PopupMenu::handleLink(const std::string &link,
}
else if (link == "addcomment" && !mNick.empty())
{
- // TRANSLATORS: number of chars in string should be near original
TextDialog *const dialog = CREATEWIDGETR(TextDialog,
+ // TRANSLATORS: dialog caption
+ // TRANSLATORS: number of chars in string should be near original
_("Player comment "),
+ // TRANSLATORS: label
// TRANSLATORS: number of chars in string should be near original
_("Comment: "));
mPlayerListener.setDialog(dialog);
@@ -1658,22 +1662,22 @@ void PopupMenu::showPopup(Window *const parent,
{
if (cnt > 10)
{
- // TRANSLATORS: popup menu item
- // TRANSLATORS: add 10 item amount to trade
mBrowserBox->addRow("/addtrade 'INVINDEX' 10",
+ // TRANSLATORS: popup menu item
+ // TRANSLATORS: add 10 item amount to trade
_("Add to trade 10"));
}
- // TRANSLATORS: popup menu item
- // TRANSLATORS: add half item amount to trade
mBrowserBox->addRow("/addtrade 'INVINDEX' /",
+ // TRANSLATORS: popup menu item
+ // TRANSLATORS: add half item amount to trade
_("Add to trade half"));
- // TRANSLATORS: popup menu item
- // TRANSLATORS: add all amount except one item to trade
mBrowserBox->addRow("/addtrade 'INVINDEX' -1",
+ // TRANSLATORS: popup menu item
+ // TRANSLATORS: add all amount except one item to trade
_("Add to trade all-1"));
- // TRANSLATORS: popup menu item
- // TRANSLATORS: add all amount item to trade
mBrowserBox->addRow("/addtrade 'INVINDEX' all",
+ // TRANSLATORS: popup menu item
+ // TRANSLATORS: add all amount item to trade
_("Add to trade all"));
}
mBrowserBox->addRow("##3---");
@@ -1687,22 +1691,22 @@ void PopupMenu::showPopup(Window *const parent,
{
if (cnt > 10)
{
- // TRANSLATORS: popup menu item
- // TRANSLATORS: add 10 item amount to storage
mBrowserBox->addRow("/invtostorage 'INVINDEX' 10",
+ // TRANSLATORS: popup menu item
+ // TRANSLATORS: add 10 item amount to storage
_("Store 10"));
}
- // TRANSLATORS: popup menu item
- // TRANSLATORS: add half item amount to storage
mBrowserBox->addRow("/invtostorage 'INVINDEX' /",
+ // TRANSLATORS: popup menu item
+ // TRANSLATORS: add half item amount to storage
_("Store half"));
- // TRANSLATORS: popup menu item
- // TRANSLATORS: add all except one item amount to storage
mBrowserBox->addRow("/invtostorage 'INVINDEX' -1",
+ // TRANSLATORS: popup menu item
+ // TRANSLATORS: add all except one item to storage
_("Store all-1"));
- // TRANSLATORS: popup menu item
- // TRANSLATORS: add all item amount to storage
mBrowserBox->addRow("/invtostorage 'INVINDEX' all",
+ // TRANSLATORS: popup menu item
+ // TRANSLATORS: add all item amount to storage
_("Store all"));
}
mBrowserBox->addRow("##3---");
@@ -1718,22 +1722,22 @@ void PopupMenu::showPopup(Window *const parent,
{
if (cnt > 10)
{
- // TRANSLATORS: popup menu item
- // TRANSLATORS: get 10 item amount from storage
mBrowserBox->addRow("/storagetoinv 'INVINDEX' 10",
+ // TRANSLATORS: popup menu item
+ // TRANSLATORS: get 10 item amount from storage
_("Retrieve 10"));
}
- // TRANSLATORS: popup menu item
- // TRANSLATORS: get half item amount from storage
mBrowserBox->addRow("/storagetoinv 'INVINDEX' /",
+ // TRANSLATORS: popup menu item
+ // TRANSLATORS: get half item amount from storage
_("Retrieve half"));
- // TRANSLATORS: popup menu item
- // TRANSLATORS: get all except one item amount from storage
mBrowserBox->addRow("/storagetoinv 'INVINDEX' -1",
+ // TRANSLATORS: popup menu item
+ // TRANSLATORS: get all except one item amount from storage
_("Retrieve all-1"));
- // TRANSLATORS: popup menu item
- // TRANSLATORS: get all item amount from storage
mBrowserBox->addRow("/storagetoinv 'INVINDEX' all",
+ // TRANSLATORS: popup menu item
+ // TRANSLATORS: get all item amount from storage
_("Retrieve all"));
}
break;
@@ -2518,9 +2522,9 @@ void PopupMenu::addChat(const Being *const being)
const ChatObject *const chat = being->getChat();
if (chat)
{
- // TRANSLATORS: popup menu item
- // TRANSLATORS: invite player to party
mBrowserBox->addRow("join chat",
+ // TRANSLATORS: popup menu item
+ // TRANSLATORS: invite player to party
strprintf(_("Join chat %s"), chat->title.c_str()).c_str());
mBrowserBox->addRow("##3---");
}
diff --git a/src/gui/popups/skillpopup.cpp b/src/gui/popups/skillpopup.cpp
index 846139863..68fb42454 100644
--- a/src/gui/popups/skillpopup.cpp
+++ b/src/gui/popups/skillpopup.cpp
@@ -113,8 +113,8 @@ void SkillPopup::show(const SkillInfo *const skill,
mSkillEffect->setTextWrapped(effect, 196);
if (level != 0)
{
- // TRANSLATORS: skill level
mSkillLevel->setTextWrapped(strprintf(
+ // TRANSLATORS: skill level
_("Level: %d / %d"), level, skill->level),
196);
}
@@ -122,15 +122,15 @@ void SkillPopup::show(const SkillInfo *const skill,
{
if (skill->level != 0)
{
- // TRANSLATORS: skill level
mSkillLevel->setTextWrapped(strprintf(
+ // TRANSLATORS: skill level
_("Level: %d"), skill->level),
196);
}
else
{
- // TRANSLATORS: skill level for tmw fake skills
mSkillLevel->setTextWrapped(
+ // TRANSLATORS: skill level for tmw fake skills
_("Level: Unknown"),
196);
}
diff --git a/src/gui/userpalette.cpp b/src/gui/userpalette.cpp
index f1f3b45e6..cf0e5da05 100644
--- a/src/gui/userpalette.cpp
+++ b/src/gui/userpalette.cpp
@@ -205,13 +205,13 @@ UserPalette::UserPalette() :
_("Skill unit"));
addColor(UserColorId::PARTY,
0xff00d8,
- // TRANSLATORS: palette color
GradientType::STATIC,
+ // TRANSLATORS: palette color
_("Party members"));
addColor(UserColorId::GUILD,
0xff00d8,
- // TRANSLATORS: palette color
GradientType::STATIC,
+ // TRANSLATORS: palette color
_("Guild members"));
addColor(UserColorId::TEAM1,
0x0000ff,
diff --git a/src/gui/widgets/characterdisplay.cpp b/src/gui/widgets/characterdisplay.cpp
index bb46f5d65..b74ec842f 100644
--- a/src/gui/widgets/characterdisplay.cpp
+++ b/src/gui/widgets/characterdisplay.cpp
@@ -130,9 +130,13 @@ void CharacterDisplay::mouseMoved(MouseEvent &event A_UNUSED)
const std::string &name = mName->getCaption();
if (!name.empty())
{
- textPopup->show(mouseX, mouseY, name, strprintf(_("Level: %u"),
+ textPopup->show(mouseX, mouseY,
+ name,
+ // TRANSLATORS: character level
+ strprintf(_("Level: %u"),
static_cast<uint32_t>(
mCharacter->data.mAttributes[Attributes::LEVEL])),
+ // TRANSLATORS: character money
strprintf(_("Money: %s"), Units::formatCurrency(
mCharacter->data.mAttributes[Attributes::MONEY]).c_str()));
}
diff --git a/src/gui/widgets/skillinfo.cpp b/src/gui/widgets/skillinfo.cpp
index 0a0f689a4..dd8863206 100644
--- a/src/gui/widgets/skillinfo.cpp
+++ b/src/gui/widgets/skillinfo.cpp
@@ -157,12 +157,16 @@ void SkillInfo::update()
}
if (sp)
+ {
+ // TRANSLATORS: skill mana
skillEffect.append(strprintf(_(" / Mana: -%d"), sp));
+ }
if (range > 0)
{
if (!skillEffect.empty())
skillEffect.append(" / ");
+ // TRANSLATORS: skill range
skillEffect.append(strprintf(_("Range: %d"), range));
}
diff --git a/src/gui/widgets/tabs/chat/guildtab.cpp b/src/gui/widgets/tabs/chat/guildtab.cpp
index 5f22346fc..4a29d1d31 100644
--- a/src/gui/widgets/tabs/chat/guildtab.cpp
+++ b/src/gui/widgets/tabs/chat/guildtab.cpp
@@ -58,15 +58,6 @@ GuildTab::~GuildTab()
bool GuildTab::handleCommand(const std::string &restrict type,
const std::string &restrict args)
{
-/*
- else if (type == "create" || type == "new")
- {
- if (args.empty())
- chatLog(_("Guild name is missing."), ChatMsgType::BY_SERVER);
- else
- guildHandler->create(args);
- }
-*/
if (type == "invite" && Ea::taGuild)
{
guildHandler->invite(args);
diff --git a/src/gui/widgets/tabs/setup_chat.cpp b/src/gui/widgets/tabs/setup_chat.cpp
index fb6214d50..a25613d27 100644
--- a/src/gui/widgets/tabs/setup_chat.cpp
+++ b/src/gui/widgets/tabs/setup_chat.cpp
@@ -49,12 +49,14 @@ Setup_Chat::Setup_Chat(const Widget2 *const widget) :
// TRANSLATORS: settings option
new SetupItemCheckBox(_("Auto hide chat window"),
+ // TRANSLATORS: settings description
_("Chat window will be automatically hidden when not in use.\n\n"
"Hit Enter or hover mouse to show chat again."),
"autohideChat", this, "autohideChatEvent");
// TRANSLATORS: settings option
new SetupItemCheckBox(_("Protect chat focus"),
+ // TRANSLATORS: settings description
_("Enables aggressive protection of input focus in chat window.\n\n"
"Note: no other text inputs will be allowed to receive text input "
"when you typing in chat window."),
@@ -66,12 +68,14 @@ Setup_Chat::Setup_Chat(const Widget2 *const widget) :
// TRANSLATORS: settings option
new SetupItemCheckBox(_("Remove colors from received chat messages"),
+ // TRANSLATORS: settings description
_("Enable this setting to strip colors from incoming chat messages. "
"All messages will use default chat text color if this enabled."),
"removeColors", this, "removeColorsEvent");
// TRANSLATORS: settings option
new SetupItemCheckBox(_("Show chat colors list"),
+ // TRANSLATORS: settings description
_("Enable this setting to show color selection drop-down in chat "
"window. Chat window will display color selection drop-down.\n\n"
"It allows one to select default color of outgoing chat messages "
@@ -84,6 +88,7 @@ Setup_Chat::Setup_Chat(const Widget2 *const widget) :
// TRANSLATORS: settings option
new SetupItemCheckBox(_("Allow magic and GM commands in all chat tabs"),
+ // TRANSLATORS: settings description
_("Enable this setting to be able to type spells and GM commands in "
"any tab."),
"allowCommandsInChatTabs", this, "allowCommandsInChatTabsEvent");
@@ -94,6 +99,7 @@ Setup_Chat::Setup_Chat(const Widget2 *const widget) :
// TRANSLATORS: settings option
new SetupItemIntTextField(_("Limit max chars in chat line"),
+ // TRANSLATORS: settings description
_("Limits how many characters will be shown in longest lines "
"of text displayed in chat.\n\n"
"Note: long lines can make client slower. Lines longer than this "
@@ -102,6 +108,7 @@ Setup_Chat::Setup_Chat(const Widget2 *const widget) :
// TRANSLATORS: settings option
new SetupItemIntTextField(_("Limit max lines in chat"),
+ // TRANSLATORS: settings description
_("Limits how many lines chat will keep in scrollback buffer. Chat "
"keeps specified number of last lines of text. Oldest lines exceeding "
"this limit are discarded from scrollback buffer.\n\n"
@@ -114,6 +121,7 @@ Setup_Chat::Setup_Chat(const Widget2 *const widget) :
// TRANSLATORS: settings option
new SetupItemCheckBox(_("Enable chat Log"),
+ // TRANSLATORS: settings description
_("If you enable this setting, chat logs will be written to disk.\n\n"
"Note: chat logs can take noticeable amount of disk space over time."),
"enableChatLog", this, "enableChatLogEvent");
@@ -121,17 +129,20 @@ Setup_Chat::Setup_Chat(const Widget2 *const widget) :
// TODO: ask 4144 if popup description is correct.
// TRANSLATORS: settings option
new SetupItemCheckBox(_("Enable debug chat Log"),
+ // TRANSLATORS: settings description
_("If you enable this, debug chat tab also will be logged to disk."),
"enableDebugLog", this, "enableDebugLogEvent");
// TRANSLATORS: settings option
new SetupItemCheckBox(_("Show chat history"),
+ // TRANSLATORS: settings description
_("If this setting enabled, client will load old chat tabs content "
"from logs on startup instead of starting with empty chat tabs."),
"showChatHistory", this, "showChatHistoryEvent");
// TRANSLATORS: settings option
new SetupItemCheckBox(_("Show party online messages"),
+ // TRANSLATORS: settings description
_("If this setting is enabled, online status changes of party members"
" will be shown in party tab of chat.\n\nThis adds some extra noise "
"to chat, but allows one to see when your buddies are coming online."),
@@ -139,6 +150,7 @@ Setup_Chat::Setup_Chat(const Widget2 *const widget) :
// TRANSLATORS: settings option
new SetupItemCheckBox(_("Show guild online messages"),
+ // TRANSLATORS: settings description
_("If this setting is enabled, online status changes of guild members"
" will be shown in guild tab of chat.\n\nThis adds some extra noise "
"to chat, but allows one to see when your buddies are coming online."),
@@ -150,6 +162,7 @@ Setup_Chat::Setup_Chat(const Widget2 *const widget) :
// TRANSLATORS: settings option
new SetupItemCheckBox(_("Hide shop messages"),
+ // TRANSLATORS: settings description
_("If this setting enabled, no messages related to built-in ManaPlus "
"shop will be displayed in chat. Disable this setting if you want "
"to see shop-related messages.\n\nNote: technically, ManaPlus shop "
@@ -160,6 +173,7 @@ Setup_Chat::Setup_Chat(const Widget2 *const widget) :
// TRANSLATORS: settings option
new SetupItemCheckBox(_("Show MVP messages"),
+ // TRANSLATORS: settings description
_("Enable this setting to see MVP messages from server.\n\n"
"Note: MVP messages are not used on TMW/Evol/etc servers, so this "
"feature usually makes little difference."),
@@ -171,6 +185,7 @@ Setup_Chat::Setup_Chat(const Widget2 *const widget) :
// TRANSLATORS: settings option
new SetupItemCheckBox(_("Put all whispers in tabs"),
+ // TRANSLATORS: settings description
_("If this setting enabled, all whispers (private messages) will "
"be placed in separate tabs, separate tab for each player. If this "
"setting disabled, all whispers will appear in General tab.\n\n"
@@ -180,6 +195,7 @@ Setup_Chat::Setup_Chat(const Widget2 *const widget) :
// TRANSLATORS: settings option
new SetupItemCheckBox(_("Log magic messages in debug tab"),
+ // TRANSLATORS: settings description
_("If this setting is enabled, spell invocation will be shown in "
"Debug tab. If disabled, it will be shown in General tab instead.\n\n"
"Note: it does not affects server replies related to spells."),
@@ -187,6 +203,7 @@ Setup_Chat::Setup_Chat(const Widget2 *const widget) :
// TRANSLATORS: settings option
new SetupItemCheckBox(_("Show server messages in debug tab"),
+ // TRANSLATORS: settings description
_("If this setting is enabled, server messages will be shown in "
"Debug tab of chat. If disabled, server messages will appear in "
"General chat instead.\n\nNote: according to 4144, disabling this "
@@ -196,6 +213,7 @@ Setup_Chat::Setup_Chat(const Widget2 *const widget) :
// TRANSLATORS: settings option
new SetupItemCheckBox(_("Enable trade tab"),
+ // TRANSLATORS: settings description
_("Enables trade tab. Trade tab is basically some filter. Messages "
"containing words typical for trades will go to Trade tab. This "
"will make General tab less noisy. If this setting is disabled, all "
@@ -204,6 +222,7 @@ Setup_Chat::Setup_Chat(const Widget2 *const widget) :
// TRANSLATORS: settings option
new SetupItemCheckBox(_("Enable gm tab"),
+ // TRANSLATORS: settings description
_("If enabled, GM tab will appear in chat. It displays text related "
"GM activity.\n\nNote: this setting only makes difference for "
"GMs (Game Masters) since this tab only appears for GMs."),
@@ -211,6 +230,7 @@ Setup_Chat::Setup_Chat(const Widget2 *const widget) :
// TRANSLATORS: settings option
new SetupItemCheckBox(_("Enable language tab"),
+ // TRANSLATORS: settings description
_("If this feature enabled, language tab will appear if server "
"supports this feature.\n\nNote: only supported by Evol server yet."),
"enableLangTab", this, "enableLangTabEvent",
@@ -218,6 +238,7 @@ Setup_Chat::Setup_Chat(const Widget2 *const widget) :
// TRANSLATORS: settings option
new SetupItemCheckBox(_("Show all languages messages"),
+ // TRANSLATORS: settings description
_("If this setting enabled and server supports different chats "
"for different languages, you will see messages for all languages, "
"regardless of your language preferences.\n\nNote: it only works "
@@ -227,6 +248,7 @@ Setup_Chat::Setup_Chat(const Widget2 *const widget) :
// TRANSLATORS: settings option
new SetupItemCheckBox(_("Enable battle tab"),
+ // TRANSLATORS: settings description
_("If this setting enabled, Battle tab will appear in chat. This "
"tab will contain messages related to battles, like damage and "
"experience gain, if battle messages are enabled.\n\n"
@@ -235,6 +257,7 @@ Setup_Chat::Setup_Chat(const Widget2 *const widget) :
// TRANSLATORS: settings option
new SetupItemCheckBox(_("Show battle events"),
+ // TRANSLATORS: settings description
_("If this setting enabled, messages related to battle like damage "
"or experience gain will be displayed in Debug or Battle tab. If "
"disabled, no battle messages will be displayed."),
@@ -242,6 +265,7 @@ Setup_Chat::Setup_Chat(const Widget2 *const widget) :
// TRANSLATORS: settings option
new SetupItemCheckBox(_("Resize chat tabs if need"),
+ // TRANSLATORS: settings description
_("If this feature enabled, text in chat will be automatically "
"adjusted to adapt to appearance of chat input field when you "
"typing message and when input field of chat disappears. If disabled, "
@@ -257,6 +281,7 @@ Setup_Chat::Setup_Chat(const Widget2 *const widget) :
// TRANSLATORS: settings option
new SetupItemCheckBox(_("Use local time"),
+ // TRANSLATORS: settings description
_("If this feature enabled, timestamps in chat will use local times. "
"If disabled, server time will be used (often it is GMT+0)."),
"useLocalTime", this, "useLocalTimeEvent");
@@ -266,6 +291,7 @@ Setup_Chat::Setup_Chat(const Widget2 *const widget) :
// TRANSLATORS: settings option
new SetupItemTextField(_("Highlight words (separated by comma)"),
+ // TRANSLATORS: settings description
_("Here you can specify some extra words which will also cause "
"highlighting. Use comma to separate words.\n\nNote: frequent "
"highlights are annoying - use it with caution."),
@@ -273,6 +299,7 @@ Setup_Chat::Setup_Chat(const Widget2 *const widget) :
// TRANSLATORS: settings option
new SetupItemTextField(_("Globals ignore names (separated by comma)"),
+ // TRANSLATORS: settings description
_("This setting allows you to ignore some global messages if "
"particular sender (NPC, GM) annoys you too much. Global will be "
"moved to Debug instead.\n\nNote: careless use of this feature can "
@@ -281,6 +308,7 @@ Setup_Chat::Setup_Chat(const Widget2 *const widget) :
// TRANSLATORS: settings option
new SetupItemCheckBox(_("Show emotes button in chat"),
+ // TRANSLATORS: settings description
_("If this setting enabled, button will appear near text input "
"field. This button allows one to invoke composing window, which "
"allows one to insert smiles and text formatting easily.\n\n"
@@ -290,6 +318,7 @@ Setup_Chat::Setup_Chat(const Widget2 *const widget) :
// TRANSLATORS: settings option
new SetupItemCheckBox(_("Show motd server message on start"),
+ // TRANSLATORS: settings description
_("If this setting enabled, client will display server MOTD (message"
" of the day) once you connect to server. Disable it to hide MOTD."),
"showmotd", this, "showmotdEvent");
diff --git a/src/gui/widgets/tabs/setup_colors.cpp b/src/gui/widgets/tabs/setup_colors.cpp
index 94a380b98..22a07f23d 100644
--- a/src/gui/widgets/tabs/setup_colors.cpp
+++ b/src/gui/widgets/tabs/setup_colors.cpp
@@ -45,8 +45,8 @@
#include "debug.h"
-// TRANSLATORS: color selection preview message
const char *const Setup_Colors::rawmsg =
+ // TRANSLATORS: color selection preview message
N_("This is what the color looks like");
Setup_Colors::Setup_Colors(const Widget2 *const widget) :
@@ -105,16 +105,19 @@ Setup_Colors::Setup_Colors(const Widget2 *const widget) :
std::string longText = _("Static");
const Font *const font = getFont();
+ // TRANSLATORS: color type
if (getFont()->getWidth(_("Pulse")) > font->getWidth(longText))
{
// TRANSLATORS: color type
longText = _("Pulse");
}
+ // TRANSLATORS: color type
if (getFont()->getWidth(_("Rainbow")) > font->getWidth(longText))
{
// TRANSLATORS: color type
longText = _("Rainbow");
}
+ // TRANSLATORS: color type
if (getFont()->getWidth(_("Spectrum")) > font->getWidth(longText))
{
// TRANSLATORS: color type
diff --git a/src/gui/widgets/tabs/setup_other.cpp b/src/gui/widgets/tabs/setup_other.cpp
index 95393d305..8d9ab24f4 100644
--- a/src/gui/widgets/tabs/setup_other.cpp
+++ b/src/gui/widgets/tabs/setup_other.cpp
@@ -220,6 +220,7 @@ Setup_Other::Setup_Other(const Widget2 *const widget) :
// TRANSLATORS: settings group
new SetupItemLabel(_("Player"), "", this);
+ // TRANSLATORS: settings option
new SetupItemCheckBox(_("Show own hp bar"), "",
"showOwnHP", this, "showOwnHPEvent");
@@ -265,6 +266,7 @@ Setup_Other::Setup_Other(const Widget2 *const widget) :
new SetupItemCheckBox(_("Enabled pets support"),
"", "usepets", this, "usepetsEvent");
+ // TRANSLATORS: settings option
new SetupItemCheckBox(_("Enable weight notifications"), "",
"weightMsg", this, "weightMsgEvent");
diff --git a/src/gui/widgets/tabs/setup_relations.cpp b/src/gui/widgets/tabs/setup_relations.cpp
index 98853737b..87a491116 100644
--- a/src/gui/widgets/tabs/setup_relations.cpp
+++ b/src/gui/widgets/tabs/setup_relations.cpp
@@ -74,6 +74,7 @@ Setup_Relations::Setup_Relations(const Widget2 *const widget) :
// TRANSLATORS: relation dialog button
mDefaultWhisper(new CheckBox(this, _("Allow whispers"),
player_relations.getDefault() & PlayerRelation::WHISPER)),
+ // TRANSLATORS: relation dialog button
mDeleteButton(new Button(this, _("Delete"), ACTION_DELETE, this)),
mIgnoreActionChoicesModel(new IgnoreChoicesListModel),
mIgnoreActionChoicesBox(new DropDown(widget, mIgnoreActionChoicesModel))
diff --git a/src/gui/widgets/tabs/setup_theme.cpp b/src/gui/widgets/tabs/setup_theme.cpp
index 3388feadf..55f68548d 100644
--- a/src/gui/widgets/tabs/setup_theme.cpp
+++ b/src/gui/widgets/tabs/setup_theme.cpp
@@ -239,8 +239,9 @@ void Setup_Theme::updateInfo()
mInfo = Theme::loadInfo(mTheme);
if (mInfo)
{
- // TRANSLATORS: theme info dialog
+ // TRANSLATORS: theme name
mThemeInfo = std::string(_("Name: ")).append(mInfo->name)
+ // TRANSLATORS: theme copyright
.append("\n").append(_("Copyright:")).append("\n")
.append(mInfo->copyright);
}
diff --git a/src/gui/widgets/tabs/setup_video.cpp b/src/gui/widgets/tabs/setup_video.cpp
index c9790043c..fad7f3ba2 100644
--- a/src/gui/widgets/tabs/setup_video.cpp
+++ b/src/gui/widgets/tabs/setup_video.cpp
@@ -118,8 +118,9 @@ Setup_Video::Setup_Video(const Widget2 *const widget) :
mFpsLabel->setCaption(mFps > 0 ? toString(mFps) : _("None"));
mFpsLabel->setWidth(60);
// TRANSLATORS: video settings label
- mAltFpsLabel->setCaption(_("Alt FPS limit: ") + (mAltFps > 0
- ? toString(mAltFps) : _("None")));
+ mAltFpsLabel->setCaption(_("Alt FPS limit: ") + (mAltFps > 0 ?
+ // TRANSLATORS: video settings label value
+ toString(mAltFps) : _("None")));
mAltFpsLabel->setWidth(150);
mFpsSlider->setEnabled(mFps > 0);
mFpsSlider->setValue(mFps);
@@ -392,6 +393,7 @@ void Setup_Video::action(const ActionEvent &event)
_("Screen Resolution Changed"),
// TRANSLATORS: video settings warning
_("Restart your client for the change to take effect.")
+ // TRANSLATORS: video settings warning
+ std::string("\n") + _("Some windows may be moved to "
"fit the lowered resolution."),
// TRANSLATORS: ok dialog button
diff --git a/src/gui/widgets/tabs/setup_visual.cpp b/src/gui/widgets/tabs/setup_visual.cpp
index e2f926f1f..6cb00ad17 100644
--- a/src/gui/widgets/tabs/setup_visual.cpp
+++ b/src/gui/widgets/tabs/setup_visual.cpp
@@ -171,6 +171,7 @@ Setup_Visual::Setup_Visual(const Widget2 *const widget) :
mParticleList->push_back(_("high"));
// TRANSLATORS: particle details
mParticleList->push_back(_("max"));
+ // TRANSLATORS: settings option
(new SetupItemSlider2(_("Particle detail"), "", "particleEmitterSkip",
this, "particleEmitterSkipEvent", 0, 3, 1, mParticleList,
OnTheFly_true,
@@ -220,6 +221,7 @@ Setup_Visual::Setup_Visual(const Widget2 *const widget) :
// TRANSLATORS: settings group
new SetupItemLabel(_("Screenshots"), "", this);
+ // TRANSLATORS: settings option
new SetupItemCheckBox(_("Add water mark into screenshots"),
"", "addwatermark", this, "addwatermarkEvent");
diff --git a/src/gui/widgets/tabs/socialguildtab.h b/src/gui/widgets/tabs/socialguildtab.h
index e0d4c3f6e..a76b3d58b 100644
--- a/src/gui/widgets/tabs/socialguildtab.h
+++ b/src/gui/widgets/tabs/socialguildtab.h
@@ -97,8 +97,8 @@ class SocialGuildTab final : public SocialTab,
guildHandler->leave(mGuild->getId());
if (localChatTab)
{
- // TRANSLATORS: chat message
localChatTab->chatLog(strprintf(
+ // TRANSLATORS: chat message
_("Guild %s quit requested."),
mGuild->getName().c_str()),
ChatMsgType::BY_SERVER);
diff --git a/src/gui/widgets/tabs/socialpartytab.h b/src/gui/widgets/tabs/socialpartytab.h
index 9bdd6d922..6202e537a 100644
--- a/src/gui/widgets/tabs/socialpartytab.h
+++ b/src/gui/widgets/tabs/socialpartytab.h
@@ -81,8 +81,8 @@ class SocialPartyTab final : public SocialTab,
if (localChatTab)
{
- // TRANSLATORS: chat message
localChatTab->chatLog(strprintf(
+ // TRANSLATORS: chat message
_("Invited user %s to party."),
name.c_str()),
ChatMsgType::BY_SERVER);
@@ -98,8 +98,8 @@ class SocialPartyTab final : public SocialTab,
partyHandler->leave();
if (localChatTab)
{
- // TRANSLATORS: tab in social window
localChatTab->chatLog(strprintf(
+ // TRANSLATORS: tab in social window
_("Party %s quit requested."),
mParty->getName().c_str()),
ChatMsgType::BY_SERVER);
diff --git a/src/gui/windowmenu.cpp b/src/gui/windowmenu.cpp
index aa8b4609e..9d9f9a213 100644
--- a/src/gui/windowmenu.cpp
+++ b/src/gui/windowmenu.cpp
@@ -66,20 +66,26 @@ WindowMenu::WindowMenu(const Widget2 *const widget) :
setFocusable(false);
// TRANSLATORS: short button name for who is online window.
addButton(N_("ONL"),
+ // TRANSLATORS: long button name for who is online window.
_("Who is online"), x, h, InputAction::WINDOW_ONLINE);
// TRANSLATORS: short button name for help window.
addButton(N_("HLP"),
+ // TRANSLATORS: long button name for help window.
_("Help"), x, h, InputAction::WINDOW_HELP);
// TRANSLATORS: short button name for quests window.
addButton(N_("QE"),
+ // TRANSLATORS: long button name for quests window.
_("Quests"), x, h, InputAction::WINDOW_QUESTS);
// TRANSLATORS: short button name for kill stats window.
addButton(N_("KS"),
+ // TRANSLATORS: long button name for kill stats window.
_("Kill stats"), x, h, InputAction::WINDOW_KILLS);
addButton(":-)",
+ // TRANSLATORS: long button name for emotes window.
_("Smilies"), x, h, InputAction::WINDOW_EMOTE_SHORTCUT);
// TRANSLATORS: short button name for chat window.
addButton(N_("CH"),
+ // TRANSLATORS: longt button name for chat window.
_("Chat"), x, h, InputAction::WINDOW_CHAT,
#ifdef ANDROID
Visible_true);
@@ -88,18 +94,23 @@ WindowMenu::WindowMenu(const Widget2 *const widget) :
#endif
// TRANSLATORS: short button name for status window.
addButton(N_("STA"),
+ // TRANSLATORS: long button name for status window.
_("Status"), x, h, InputAction::WINDOW_STATUS);
// TRANSLATORS: short button name for equipment window.
addButton(N_("EQU"),
+ // TRANSLATORS: long button name for equipment window.
_("Equipment"), x, h, InputAction::WINDOW_EQUIPMENT);
// TRANSLATORS: short button name for inventory window.
addButton(N_("INV"),
+ // TRANSLATORS: long button name for inventory window.
_("Inventory"), x, h, InputAction::WINDOW_INVENTORY);
// TRANSLATORS: short button name for cart window.
addButton(N_("CA"),
+ // TRANSLATORS: long button name for cart window.
_("Cart"), x, h, InputAction::WINDOW_CART);
// TRANSLATORS: short button name for map window.
addButton(N_("MAP"),
+ // TRANSLATORS: long button name for map window.
_("Map"), x, h, InputAction::WINDOW_MINIMAP,
Visible_false);
@@ -107,59 +118,60 @@ WindowMenu::WindowMenu(const Widget2 *const widget) :
{
// TRANSLATORS: short button name for skills window.
addButton(N_("SKI"),
+ // TRANSLATORS: long button name for skills window.
_("Skills"), x, h, InputAction::WINDOW_SKILL);
}
// TRANSLATORS: short button name for social window.
addButton(N_("SOC"),
- // TRANSLATORS: full button name
+ // TRANSLATORS: long button name for social window.
_("Social"), x, h, InputAction::WINDOW_SOCIAL);
// TRANSLATORS: short button name for shortcuts window.
addButton(N_("SH"),
- // TRANSLATORS: full button name
+ // TRANSLATORS: long button name for shortcuts window.
_("Shortcuts"), x, h, InputAction::WINDOW_SHORTCUT);
// TRANSLATORS: short button name for spells window.
addButton(N_("SP"),
- // TRANSLATORS: full button name
+ // TRANSLATORS: long button name for spells window.
_("Spells"), x, h, InputAction::WINDOW_SPELLS);
// TRANSLATORS: short button name for drops window.
addButton(N_("DR"),
- // TRANSLATORS: full button name
+ // TRANSLATORS: long button name for drops window.
_("Drop"), x, h, InputAction::WINDOW_DROP,
Visible_false);
// TRANSLATORS: short button name for did you know window.
addButton(N_("YK"),
- // TRANSLATORS: full button name
+ // TRANSLATORS: long button name for did you know window.
_("Did you know"), x, h, InputAction::WINDOW_DIDYOUKNOW,
Visible_false);
// TRANSLATORS: short button name for shop window.
addButton(N_("SHP"),
- // TRANSLATORS: full button name
+ // TRANSLATORS: long button name for shop window.
_("Shop"), x, h, InputAction::WINDOW_SHOP,
Visible_false);
// TRANSLATORS: short button name for outfits window.
addButton(N_("OU"),
- // TRANSLATORS: full button name
+ // TRANSLATORS: long button name for outfits window.
_("Outfits"), x, h, InputAction::WINDOW_OUTFIT,
Visible_false);
// TRANSLATORS: short button name for updates window.
addButton(N_("UP"),
- // TRANSLATORS: full button name
+ // TRANSLATORS: long button name for updates window.
_("Updates"), x, h, InputAction::WINDOW_UPDATER,
Visible_false);
// TRANSLATORS: short button name for bank window.
addButton(N_("BA"),
- // TRANSLATORS: full button name
+ // TRANSLATORS: long button name for bank window.
_("Bank"), x, h, InputAction::WINDOW_BANK,
Visible_true);
// TRANSLATORS: short button name for mail window.
addButton(N_("MA"),
- // TRANSLATORS: full button name
+ // TRANSLATORS: long button name for mail window.
_("Mail"), x, h, InputAction::WINDOW_MAIL,
Visible_true),
// TRANSLATORS: short button name for debug window.
addButton(N_("DBG"),
- // TRANSLATORS: full button name
+ // TRANSLATORS: long button name for debug window.
_("Debug"), x, h, InputAction::WINDOW_DEBUG,
#ifdef ANDROID
Visible_true);
@@ -168,12 +180,12 @@ WindowMenu::WindowMenu(const Widget2 *const widget) :
#endif
// TRANSLATORS: short button name for windows list menu.
addButton(N_("WIN"),
- // TRANSLATORS: full button name
+ // TRANSLATORS: long button name for windows list menu.
_("Windows"), x, h, InputAction::SHOW_WINDOWS,
Visible_false);
// TRANSLATORS: short button name for setup window.
addButton(N_("SET"),
- // TRANSLATORS: full button name
+ // TRANSLATORS: long button name for setup window.
_("Setup"), x, h, InputAction::WINDOW_SETUP);
x += mPadding - mSpacing;
diff --git a/src/gui/windows/bankwindow.cpp b/src/gui/windows/bankwindow.cpp
index e13fdc399..5f93dc2d8 100644
--- a/src/gui/windows/bankwindow.cpp
+++ b/src/gui/windows/bankwindow.cpp
@@ -43,8 +43,8 @@ BankWindow::BankWindow() :
Window(_("Bank"), Modal_false, nullptr, "bank.xml"),
ActionListener(),
BankListener(),
- // TRANSLATORS: bank window money label
mBankMoneyLabel(new Label(this, strprintf(
+ // TRANSLATORS: bank window money label
_("Money in bank: %s"), " "))),
mInputMoneyTextField(new IntTextField(this, 0, 0, 2147483647)),
// TRANSLATORS: bank window button
@@ -87,6 +87,7 @@ void BankWindow::widgetShown(const Event &event)
void BankWindow::bankMoneyChanged(const int money)
{
+ // TRANSLATORS: bank window money label
mBankMoneyLabel->setCaption(strprintf(_("Money in bank: %s"),
Units::formatCurrency(money).c_str()));
}
diff --git a/src/gui/windows/buydialog.cpp b/src/gui/windows/buydialog.cpp
index 2e143dbcc..644e8c5ce 100644
--- a/src/gui/windows/buydialog.cpp
+++ b/src/gui/windows/buydialog.cpp
@@ -260,8 +260,8 @@ void BuyDialog::init()
mQuantityLabel = new Label(this, strprintf(
"%d / %d", mAmountItems, mMaxItems));
mQuantityLabel->setAlignment(Graphics::CENTER);
- // TRANSLATORS: buy dialog label
mMoneyLabel = new Label(this, strprintf(
+ // TRANSLATORS: buy dialog label
_("Price: %s / Total: %s"), "", ""));
mAmountField = new IntTextField(this, 1, 1, 123);
diff --git a/src/gui/windows/charselectdialog.cpp b/src/gui/windows/charselectdialog.cpp
index 21c84cdb4..ac5f3b291 100644
--- a/src/gui/windows/charselectdialog.cpp
+++ b/src/gui/windows/charselectdialog.cpp
@@ -102,7 +102,11 @@ CharSelectDialog::CharSelectDialog(LoginData &data) :
n ++;
if (serverFeatures->haveCharRename())
{
- mRenameButton = new Button(this, _("Rename"), "rename", this);
+ mRenameButton = new Button(this,
+ // TRANSLATORS: character rename button
+ _("Rename"),
+ "rename",
+ this);
placer(n, 0, mRenameButton);
n ++;
}
@@ -296,8 +300,9 @@ void CharSelectDialog::action(const ActionEvent &event)
else
{
CREATEWIDGET(OkDialog,
- // TRANSLATORS: error message
+ // TRANSLATORS: error header
_("Error"),
+ // TRANSLATORS: error message
_("Incorrect password"),
// TRANSLATORS: ok dialog button
_("OK"),
diff --git a/src/gui/windows/chatwindow.cpp b/src/gui/windows/chatwindow.cpp
index bdd772ea1..1435a59e9 100644
--- a/src/gui/windows/chatwindow.cpp
+++ b/src/gui/windows/chatwindow.cpp
@@ -2193,9 +2193,14 @@ void ChatWindow::joinRoom(const bool isJoin)
{
std::string name;
if (isJoin)
+ {
name = PlayerInfo::getRoomName();
+ }
else
+ {
+ // TRANSLATORS: chat tab name
name = _("General");
+ }
tab->setCaption(name);
}
}
diff --git a/src/gui/windows/editserverdialog.cpp b/src/gui/windows/editserverdialog.cpp
index 0d18da6a5..e456533cb 100644
--- a/src/gui/windows/editserverdialog.cpp
+++ b/src/gui/windows/editserverdialog.cpp
@@ -206,8 +206,8 @@ void EditServerDialog::action(const ActionEvent &event)
if (mServerAddressField->getText().empty()
|| mPortField->getText().empty())
{
- // TRANSLATORS: edit server dialog error header
OkDialog *const dlg = CREATEWIDGETR(OkDialog,
+ // TRANSLATORS: edit server dialog error header
_("Error"),
// TRANSLATORS: edit server dialog error message
_("Please at least type both the address and the port "
diff --git a/src/gui/windows/equipmentwindow.cpp b/src/gui/windows/equipmentwindow.cpp
index 575315e01..a32f80c3e 100644
--- a/src/gui/windows/equipmentwindow.cpp
+++ b/src/gui/windows/equipmentwindow.cpp
@@ -666,6 +666,7 @@ void EquipmentWindow::addDefaultPage()
if (!mHaveDefaultPage)
{
mHaveDefaultPage = true;
+ // TRANSLATORS: equipment window tab
addPage(_("default"));
}
}
diff --git a/src/gui/windows/inventorywindow.cpp b/src/gui/windows/inventorywindow.cpp
index 8b5e69708..f1b76a2d1 100644
--- a/src/gui/windows/inventorywindow.cpp
+++ b/src/gui/windows/inventorywindow.cpp
@@ -693,6 +693,7 @@ void InventoryWindow::mouseMoved(MouseEvent &event)
const Rect &rect = mDimension;
if (src == mSlotsBar || src == mWeightBar)
{
+ // TRANSLATORS: money label
textPopup->show(rect.x + x, rect.y + y, strprintf(_("Money: %s"),
Units::formatCurrency(PlayerInfo::getAttribute(
Attributes::MONEY)).c_str()));
@@ -777,6 +778,7 @@ void InventoryWindow::updateButtons(const Item *item)
if (str.empty())
{
mUseButton->setEnabled(false);
+ // TRANSLATORS: default use button name
mUseButton->setCaption(_("Use"));
}
else
diff --git a/src/gui/windows/mailviewwindow.cpp b/src/gui/windows/mailviewwindow.cpp
index bb0031160..8ae2fb76f 100644
--- a/src/gui/windows/mailviewwindow.cpp
+++ b/src/gui/windows/mailviewwindow.cpp
@@ -117,19 +117,29 @@ MailViewWindow::MailViewWindow(const MailMessage *const message) :
mIcon = new Icon(this, image);
if (message->itemAmount != 1)
{
- mItemLabel = new Label(this, std::string(_("Item:")).append(
- " (").append(toString(message->itemAmount)).append(") "));
+ mItemLabel = new Label(this, std::string(
+ // TRANSLATORS: mail view item label
+ _("Item:")).append(
+ " (").append(
+ toString(message->itemAmount)).append(
+ ") "));
}
else
{
- mItemLabel = new Label(this, std::string(_("Item:")).append(" "));
+ mItemLabel = new Label(this,
+ // TRANSLATORS: mail view item label
+ std::string(_("Item:")).append(" "));
}
placer(0, n, mItemLabel);
placer(1, n++, mIcon);
}
if (message->money || message->itemId)
{
- mGetAttachButton = new Button(this, _("Get attach"), "attach", this);
+ mGetAttachButton = new Button(this,
+ // TRANSLATORS: mail view attach button
+ _("Get attach"),
+ "attach",
+ this);
placer(0, n++, mGetAttachButton);
}
ContainerPlacer placer2;
diff --git a/src/gui/windows/ministatuswindow.cpp b/src/gui/windows/ministatuswindow.cpp
index 4ed6203ab..98a45effc 100644
--- a/src/gui/windows/ministatuswindow.cpp
+++ b/src/gui/windows/ministatuswindow.cpp
@@ -65,9 +65,9 @@ MiniStatusWindow::MiniStatusWindow() :
mBars(),
mBarNames(),
mIcons(),
- // TRANSLATORS: status bar name
mHpBar(createBar(0, 100, 0, ThemeColorId::HP_BAR, ProgressColorId::PROG_HP,
"hpprogressbar.xml", "hpprogressbar_fill.xml",
+ // TRANSLATORS: status bar name
"hp bar", _("health bar"))),
mMpBar(createBar(0, 100, 0, playerHandler->canUseMagic()
? ThemeColorId::MP_BAR : ThemeColorId::NO_MP_BAR,
@@ -132,8 +132,8 @@ MiniStatusWindow::MiniStatusWindow() :
mJobBar = createBar(0, 100, 0,
ThemeColorId::JOB_BAR,
ProgressColorId::PROG_JOB,
- // TRANSLATORS: status bar name
"jobprogressbar.xml", "jobprogressbar_fill.xml",
+ // TRANSLATORS: status bar name
"job bar", _("job bar"));
StatusWindow::updateJobBar(mJobBar);
}
diff --git a/src/gui/windows/quitdialog.cpp b/src/gui/windows/quitdialog.cpp
index bc0bf2366..1ef878aae 100644
--- a/src/gui/windows/quitdialog.cpp
+++ b/src/gui/windows/quitdialog.cpp
@@ -100,6 +100,7 @@ QuitDialog::QuitDialog(QuitDialog **const pointerToMe) :
if (config.getBoolValue("rated") == false
&& config.getIntValue("gamecount") > 3)
{
+ // TRANSLATORS: rate button
mRate = new RadioButton(this, _("Rate in google play"), "quitdialog");
placeOption(placer, mRate);
mOptions[mOptions.size() - 1]->setSelected(true);
diff --git a/src/gui/windows/shopwindow.cpp b/src/gui/windows/shopwindow.cpp
index 570163f15..c6388c50e 100644
--- a/src/gui/windows/shopwindow.cpp
+++ b/src/gui/windows/shopwindow.cpp
@@ -430,9 +430,15 @@ void ShopWindow::updateButtonsAndLabels()
if (mPublishButton)
{
if (mEnableBuyingStore)
+ {
+ // TRANSLATORS: unpublish shop button
mPublishButton->setCaption(_("Unpublish"));
+ }
else
+ {
+ // TRANSLATORS: publish shop button
mPublishButton->setCaption(_("Publish"));
+ }
mPublishButton->adjustSize();
if (mBuyShopSize > 0)
mPublishButton->setEnabled(true);
@@ -449,9 +455,15 @@ void ShopWindow::updateButtonsAndLabels()
if (mPublishButton)
{
if (mEnableVending)
+ {
+ // TRANSLATORS: unpublish shop button
mPublishButton->setCaption(_("Unpublish"));
+ }
else
+ {
+ // TRANSLATORS: publish shop button
mPublishButton->setCaption(_("Publish"));
+ }
mPublishButton->adjustSize();
if (sellNotEmpty
&& mSellShopSize > 0
@@ -788,7 +800,8 @@ void ShopWindow::giveList(const std::string &nick, const int mode)
}
void ShopWindow::sendMessage(const std::string &nick,
- std::string data, const bool random)
+ std::string data,
+ const bool random)
{
if (!chatWindow)
return;
@@ -898,7 +911,10 @@ void ShopWindow::processRequest(const std::string &nick, std::string data,
if (!mTradeNick.empty())
{
- sendMessage(nick, "error: player busy ", true);
+ sendMessage(nick,
+ // TRANSLATORS: error buy/sell shop request
+ _("error: player busy") + std::string(" "),
+ true);
return;
}
@@ -908,7 +924,6 @@ void ShopWindow::processRequest(const std::string &nick, std::string data,
std::string part2;
std::string part3;
std::stringstream ss(data);
- std::string msg;
int id;
int price;
int amount;
@@ -938,20 +953,24 @@ void ShopWindow::processRequest(const std::string &nick, std::string data,
if (!item2 || item2->getQuantity() < amount
|| !findShopItem(mTradeItem, SELL))
{
- sendMessage(nick, "error: Can't sell this item ", true);
+ sendMessage(nick,
+ // TRANSLATORS: error buy/sell shop request
+ _("error: Can't sell this item") + std::string(" "),
+ true);
return;
}
- msg = "buy";
mTradeMoney = 0;
}
else
{
if (!findShopItem(mTradeItem, BUY))
{
- sendMessage(nick, "error: Can't buy this item ", true);
+ sendMessage(nick,
+ // TRANSLATORS: error buy/sell shop request
+ _("error: Can't buy this item") + std::string(" "),
+ true);
return;
}
- msg = "sell";
mTradeMoney = mTradeItem->getPrice() * mTradeItem->getQuantity();
}
@@ -964,12 +983,26 @@ void ShopWindow::processRequest(const std::string &nick, std::string data,
}
else
{
+ std::string msg;
+ if (mode == BUY)
+ {
+ // TRANSLATORS: buy shop request (nick, item)
+ msg = strprintf(_("%s wants to buy %s do you accept?"),
+ nick.c_str(),
+ mTradeItem->getInfo().getName().c_str());
+ }
+ else
+ {
+ // TRANSLATORS: sell shop request (nick, item)
+ msg = strprintf(_("%s wants to sell %s do you accept?"),
+ nick.c_str(),
+ mTradeItem->getInfo().getName().c_str());
+ }
+
ConfirmDialog *const confirmDlg = CREATEWIDGETR(ConfirmDialog,
// TRANSLATORS: shop window dialog
_("Request for Trade"),
- strprintf(_("%s wants to %s %s do you accept?"),
- nick.c_str(), msg.c_str(),
- mTradeItem->getInfo().getName().c_str()),
+ msg,
SOUND_REQUEST,
true);
confirmDlg->addActionListener(this);
diff --git a/src/gui/windows/skilldialog.cpp b/src/gui/windows/skilldialog.cpp
index e8d1836f8..b80f6d5fe 100644
--- a/src/gui/windows/skilldialog.cpp
+++ b/src/gui/windows/skilldialog.cpp
@@ -161,6 +161,7 @@ void SkillDialog::action(const ActionEvent &event)
{
mUseButton->setEnabled(false);
mIncreaseButton->setEnabled(false);
+ // TRANSLATORS: skills dialog button
mUseButton->setCaption(_("Use"));
}
}
@@ -333,6 +334,7 @@ void SkillDialog::loadXmlFile(const std::string &fileName)
skill->model = model;
skill->update();
skill->useButton = XML::getProperty(
+ // TRANSLATORS: skills dialog button
node, "useButton", _("Use"));
skill->owner = parseOwner(XML::getProperty(
node, "owner", "player"));
@@ -507,7 +509,9 @@ void SkillDialog::addSkill(const SkillOwner::Type owner,
skill->range = range;
skill->sp = sp;
skill->update();
+ // TRANSLATORS: skills dialog button
skill->useButton = _("Use");
+ // TRANSLATORS: skill error message
skill->errorText = strprintf(_("Failed skill: %s"), name.c_str());
mDefaultModel->addSkill(skill);
@@ -592,6 +596,7 @@ void SkillDialog::updateTabSelection()
else
{
mUseButton->setEnabled(false);
+ // TRANSLATORS: inventory button
mUseButton->setCaption(_("Use"));
}
}
diff --git a/src/gui/windows/socialwindow.cpp b/src/gui/windows/socialwindow.cpp
index ec5ca90fa..8498b6316 100644
--- a/src/gui/windows/socialwindow.cpp
+++ b/src/gui/windows/socialwindow.cpp
@@ -496,8 +496,8 @@ void SocialWindow::showPartyInvite(const std::string &restrict partyName,
localChatTab->chatLog(msg, ChatMsgType::BY_SERVER);
// show invite
- // TRANSLATORS: party invite message
CREATEWIDGETV(mPartyAcceptDialog, ConfirmDialog,
+ // TRANSLATORS: party invite message
_("Accept Party Invite"),
msg,
SOUND_REQUEST,
@@ -519,6 +519,7 @@ void SocialWindow::showPartyCreate()
CREATEWIDGET(OkDialog,
// TRANSLATORS: party creation message
_("Create Party"),
+ // TRANSLATORS: party creation error
_("Cannot create party. You are already in a party"),
// TRANSLATORS: ok dialog button
_("OK"),
diff --git a/src/gui/windows/updaterwindow.cpp b/src/gui/windows/updaterwindow.cpp
index b38bb2546..bf4814a03 100644
--- a/src/gui/windows/updaterwindow.cpp
+++ b/src/gui/windows/updaterwindow.cpp
@@ -407,6 +407,7 @@ void UpdaterWindow::loadNews()
if (cnt > maxNews)
{
mBrowserBox->addRow("");
+ // TRANSLATORS: updater window checkbox
mBrowserBox->addRow("news", _("Show all news (can be slow)"));
mBrowserBox->addRow("");
}
diff --git a/src/net/eathena/chatrecv.cpp b/src/net/eathena/chatrecv.cpp
index f1e30c9c6..5846d36c6 100644
--- a/src/net/eathena/chatrecv.cpp
+++ b/src/net/eathena/chatrecv.cpp
@@ -132,18 +132,23 @@ void ChatRecv::processFormatMessage(Net::MessageIn &msg)
switch (msgId)
{
case 1334:
+ // TRANSLATORS: error message
chatMsg = _("Can't cast skill in this area.");
break;
case 1335:
+ // TRANSLATORS: error message
chatMsg = _("Can't use item in this area.");
break;
case 1773:
+ // TRANSLATORS: error message
chatMsg = _("Can't equip. Wrong level.");
break;
case 1774:
+ // TRANSLATORS: error message
chatMsg = _("Can't use. Wrong level.");
break;
case 1923:
+ // TRANSLATORS: error message
chatMsg = _("Work in progress."); // busy with npc
break;
default:
diff --git a/src/net/eathena/generalhandler.cpp b/src/net/eathena/generalhandler.cpp
index ed5a7ce03..cdc2b2673 100644
--- a/src/net/eathena/generalhandler.cpp
+++ b/src/net/eathena/generalhandler.cpp
@@ -119,11 +119,17 @@ GeneralHandler::GeneralHandler() :
generalHandler = this;
std::vector<ItemDB::Stat> stats;
+ // TRANSLATORS: player stat
stats.push_back(ItemDB::Stat("str", _("Strength %s")));
+ // TRANSLATORS: player stat
stats.push_back(ItemDB::Stat("agi", _("Agility %s")));
+ // TRANSLATORS: player stat
stats.push_back(ItemDB::Stat("vit", _("Vitality %s")));
+ // TRANSLATORS: player stat
stats.push_back(ItemDB::Stat("int", _("Intelligence %s")));
+ // TRANSLATORS: player stat
stats.push_back(ItemDB::Stat("dex", _("Dexterity %s")));
+ // TRANSLATORS: player stat
stats.push_back(ItemDB::Stat("luck", _("Luck %s")));
ItemDB::setStatsList(stats);
@@ -182,9 +188,14 @@ void GeneralHandler::flushNetwork()
if (Network::mInstance->getState() == Network::NET_ERROR)
{
if (!Network::mInstance->getError().empty())
+ {
errorMessage = Network::mInstance->getError();
+ }
else
+ {
+ // TRANSLATORS: error message
errorMessage = _("Got disconnected from server!");
+ }
client->setState(State::ERROR);
}
@@ -208,33 +219,52 @@ void GeneralHandler::gameStarted() const
statusWindow->clearAttributes();
statusWindow->addAttribute(Attributes::STR,
+ // TRANSLATORS: player stat
_("Strength"), "str", Modifiable_true);
statusWindow->addAttribute(Attributes::AGI,
+ // TRANSLATORS: player stat
_("Agility"), "agi", Modifiable_true);
statusWindow->addAttribute(Attributes::VIT,
+ // TRANSLATORS: player stat
_("Vitality"), "vit", Modifiable_true);
statusWindow->addAttribute(Attributes::INT,
+ // TRANSLATORS: player stat
_("Intelligence"), "int", Modifiable_true);
statusWindow->addAttribute(Attributes::DEX,
+ // TRANSLATORS: player stat
_("Dexterity"), "dex", Modifiable_true);
statusWindow->addAttribute(Attributes::LUK,
+ // TRANSLATORS: player stat
_("Luck"), "luk", Modifiable_true);
+ // TRANSLATORS: player stat
statusWindow->addAttribute(Attributes::ATK, _("Attack"));
+ // TRANSLATORS: player stat
statusWindow->addAttribute(Attributes::DEF, _("Defense"));
+ // TRANSLATORS: player stat
statusWindow->addAttribute(Attributes::MATK, _("M.Attack"));
+ // TRANSLATORS: player stat
statusWindow->addAttribute(Attributes::MDEF, _("M.Defense"));
+ // TRANSLATORS: player stat
// xgettext:no-c-format
statusWindow->addAttribute(Attributes::HIT, _("% Accuracy"));
+ // TRANSLATORS: player stat
// xgettext:no-c-format
statusWindow->addAttribute(Attributes::FLEE, _("% Evade"));
+ // TRANSLATORS: player stat
// xgettext:no-c-format
statusWindow->addAttribute(Attributes::CRIT, _("% Critical"));
+ // TRANSLATORS: player stat
statusWindow->addAttribute(Attributes::ATTACK_DELAY, _("Attack Delay"));
+ // TRANSLATORS: player stat
statusWindow->addAttribute(Attributes::WALK_SPEED, _("Walk Delay"));
+ // TRANSLATORS: player stat
statusWindow->addAttribute(Attributes::ATTACK_RANGE, _("Attack Range"));
+ // TRANSLATORS: player stat
statusWindow->addAttribute(Attributes::ATTACK_SPEED, _("Damage per sec."));
+ // TRANSLATORS: player stat
statusWindow->addAttribute(Attributes::KARMA, _("Karma"));
+ // TRANSLATORS: player stat
statusWindow->addAttribute(Attributes::MANNER, _("Manner"));
}
diff --git a/src/net/eathena/generalrecv.cpp b/src/net/eathena/generalrecv.cpp
index 3b67b32e2..48e079d09 100644
--- a/src/net/eathena/generalrecv.cpp
+++ b/src/net/eathena/generalrecv.cpp
@@ -45,94 +45,122 @@ void GeneralRecv::processConnectionProblem(Net::MessageIn &msg)
switch (code)
{
case 0:
+ // TRANSLATORS: error message
errorMessage = _("Authentication failed.");
break;
case 1:
+ // TRANSLATORS: error message
errorMessage = _("No servers available.");
break;
case 2:
if (client->getState() == State::GAME)
{
+ // TRANSLATORS: error message
errorMessage = _("Someone else is trying to use "
"this account.");
}
else
{
+ // TRANSLATORS: error message
errorMessage = _("This account is already logged in.");
}
break;
case 3:
+ // TRANSLATORS: error message
errorMessage = _("Speed hack detected.");
break;
case 4:
+ // TRANSLATORS: error message
errorMessage = _("Server full.");
break;
case 5:
+ // TRANSLATORS: error message
errorMessage = _("Sorry, you are underaged.");
break;
case 8:
+ // TRANSLATORS: error message
errorMessage = _("Duplicated login.");
break;
case 9:
+ // TRANSLATORS: error message
errorMessage = _("To many connections from same ip.");
break;
case 10:
+ // TRANSLATORS: error message
errorMessage = _("Not paid for this time.");
break;
case 11:
+ // TRANSLATORS: error message
errorMessage = _("Pay suspended.");
break;
case 12:
+ // TRANSLATORS: error message
errorMessage = _("Pay changed.");
break;
case 13:
+ // TRANSLATORS: error message
errorMessage = _("Pay wrong ip.");
break;
case 14:
+ // TRANSLATORS: error message
errorMessage = _("Pay game room.");
break;
case 15:
+ // TRANSLATORS: error message
errorMessage = _("Disconnect forced by GM.");
break;
case 16:
case 17:
+ // TRANSLATORS: error message
errorMessage = _("Ban japan refuse.");
break;
case 18:
+ // TRANSLATORS: error message
errorMessage = _("Remained other account.");
break;
case 100:
+ // TRANSLATORS: error message
errorMessage = _("Ip unfair.");
break;
case 101:
+ // TRANSLATORS: error message
errorMessage = _("Ip count all.");
break;
case 102:
+ // TRANSLATORS: error message
errorMessage = _("Ip count.");
break;
case 103:
case 104:
+ // TRANSLATORS: error message
errorMessage = _("Memory.");
break;
case 105:
+ // TRANSLATORS: error message
errorMessage = _("Han valid.");
break;
case 106:
+ // TRANSLATORS: error message
errorMessage = _("Ip limited access.");
break;
case 107:
+ // TRANSLATORS: error message
errorMessage = _("Over characters list.");
break;
case 108:
+ // TRANSLATORS: error message
errorMessage = _("Ip blocked.");
break;
case 109:
+ // TRANSLATORS: error message
errorMessage = _("Invalid password count.");
break;
case 110:
+ // TRANSLATORS: error message
errorMessage = _("Not allowed race.");
break;
default:
+ // TRANSLATORS: error message
errorMessage = _("Unknown connection error.");
break;
}
@@ -143,6 +171,7 @@ void GeneralRecv::processMapNotFound(Net::MessageIn &msg)
{
const int sz = msg.readInt16("len") - 4;
msg.readString(sz, "map name?");
+ // TRANSLATORS: error message
errorMessage = _("Map not found");
client->setState(State::ERROR);
}
diff --git a/src/net/eathena/mailrecv.cpp b/src/net/eathena/mailrecv.cpp
index 77bd3e4a9..1198968ac 100644
--- a/src/net/eathena/mailrecv.cpp
+++ b/src/net/eathena/mailrecv.cpp
@@ -144,6 +144,7 @@ void MailRecv::processNewMail(Net::MessageIn &msg)
const std::string subj = msg.readString(40, "title");
const std::string sender = msg.readString(24, "sender name");
NotifyManager::notify(NotifyTypes::NEW_MAIL,
+ // TRANSLATORS: mail message notification
strprintf(_("You have new mail from %s with subject %s"),
sender.c_str(), subj.c_str()));
mailHandler->refresh();
diff --git a/src/net/eathena/petrecv.cpp b/src/net/eathena/petrecv.cpp
index 5f82e8a9d..284ada80b 100644
--- a/src/net/eathena/petrecv.cpp
+++ b/src/net/eathena/petrecv.cpp
@@ -64,9 +64,12 @@ void PetRecv::processPetMessage(Net::MessageIn &msg)
{
if (localChatTab && localPlayer)
{
+ // TRANSLATORS: user's pet
std::string nick = strprintf(_("%s's pet"),
localPlayer->getName().c_str());
- localChatTab->chatLog(nick, strprintf("hungry level %d", hungry));
+ localChatTab->chatLog(nick,
+ // TRANSLATORS: pet hungry level
+ strprintf(_("hungry level %d"), hungry));
}
PetInfo *const info = PlayerInfo::getPet();
if (!info || info->id != id)
diff --git a/src/net/eathena/skillrecv.cpp b/src/net/eathena/skillrecv.cpp
index 26ce946cc..214cd88d9 100644
--- a/src/net/eathena/skillrecv.cpp
+++ b/src/net/eathena/skillrecv.cpp
@@ -220,17 +220,27 @@ void SkillRecv::processSkillFailed(Net::MessageIn &msg)
SkillInfo *const info = skillDialog->getSkill(bskill);
if (info)
+ {
txt = info->errorText;
+ }
else
+ {
+ // TRANSLATORS: skill error message
txt = strprintf(_("Unknown skill error: %d"), bskill);
+ }
}
else
{
SkillInfo *const info = skillDialog->getSkill(skillId);
if (info)
+ {
txt = info->errorText + ".";
+ }
else
+ {
+ // TRANSLATORS: skill error message
txt = strprintf(_("Unknown skill error: %d."), skillId);
+ }
}
txt.append(" ");
@@ -292,11 +302,13 @@ void SkillRecv::processSkillFailed(Net::MessageIn &msg)
const ItemInfo &info = ItemDB::get(itemId);
if (amount == 1)
{
+ // TRANSLATORS: skill error message
txt.append(strprintf(_("Need equipment %s."),
info.getLink().c_str()));
}
else
{
+ // TRANSLATORS: skill error message
txt.append(strprintf(_("Need equipment %s and amount %d"),
info.getLink().c_str(),
amount));
@@ -310,11 +322,13 @@ void SkillRecv::processSkillFailed(Net::MessageIn &msg)
const ItemInfo &info = ItemDB::get(itemId);
if (amount == 1)
{
+ // TRANSLATORS: skill error message
txt.append(strprintf(_("Need item %s."),
info.getLink().c_str()));
}
else
{
+ // TRANSLATORS: skill error message
txt.append(strprintf(_("Need item %s and amount %d"),
info.getLink().c_str(),
amount));
diff --git a/src/net/tmwa/generalhandler.cpp b/src/net/tmwa/generalhandler.cpp
index 300110742..72b533b9f 100644
--- a/src/net/tmwa/generalhandler.cpp
+++ b/src/net/tmwa/generalhandler.cpp
@@ -229,23 +229,23 @@ void GeneralHandler::gameStarted() const
// protection against double addition attributes.
statusWindow->clearAttributes();
- // TRANSLATORS: player stat
statusWindow->addAttribute(Attributes::STR,
+ // TRANSLATORS: player stat
_("Strength"), "str", Modifiable_true);
- // TRANSLATORS: player stat
statusWindow->addAttribute(Attributes::AGI,
+ // TRANSLATORS: player stat
_("Agility"), "agi", Modifiable_true);
- // TRANSLATORS: player stat
statusWindow->addAttribute(Attributes::VIT,
+ // TRANSLATORS: player stat
_("Vitality"), "vit", Modifiable_true);
- // TRANSLATORS: player stat
statusWindow->addAttribute(Attributes::INT,
+ // TRANSLATORS: player stat
_("Intelligence"), "int", Modifiable_true);
- // TRANSLATORS: player stat
statusWindow->addAttribute(Attributes::DEX,
+ // TRANSLATORS: player stat
_("Dexterity"), "dex", Modifiable_true);
- // TRANSLATORS: player stat
statusWindow->addAttribute(Attributes::LUK,
+ // TRANSLATORS: player stat
_("Luck"), "luk", Modifiable_true);
// TRANSLATORS: player stat
statusWindow->addAttribute(Attributes::ATK, _("Attack"));
diff --git a/src/resources/db/npcdb.cpp b/src/resources/db/npcdb.cpp
index 80828ae37..3362c02c9 100644
--- a/src/resources/db/npcdb.cpp
+++ b/src/resources/db/npcdb.cpp
@@ -148,8 +148,11 @@ void NPCDB::loadXmlFile(const std::string &fileName)
currentInfo->setDisplay(display);
if (currentInfo->getMenu().empty())
{
+ // TRANSLATORS: npc context menu item
currentInfo->addMenu(_("Talk"), "talk 'NAME'");
+ // TRANSLATORS: npc context menu item
currentInfo->addMenu(_("Buy"), "buy 'NAME'");
+ // TRANSLATORS: npc context menu item
currentInfo->addMenu(_("Sell"), "sell 'NAME'");
}
mNPCInfos[id] = currentInfo;
diff --git a/src/resources/mapreader.cpp b/src/resources/mapreader.cpp
index c0855fe5c..1c9e5af9f 100644
--- a/src/resources/mapreader.cpp
+++ b/src/resources/mapreader.cpp
@@ -440,6 +440,7 @@ Map *MapReader::readMap(XmlNodePtrConst node, const std::string &path)
}
else if (objType == "SPAWN")
{
+ // TRANSLATORS: spawn name
// map->addPortal(_("Spawn: ") + objName,
// MapItemType::PORTAL,
// objX, objY, objW, objH);
diff --git a/src/utils/stringutils.cpp b/src/utils/stringutils.cpp
index 3e656330b..8b616d2f7 100644
--- a/src/utils/stringutils.cpp
+++ b/src/utils/stringutils.cpp
@@ -954,6 +954,7 @@ std::string timeDiffToString(int timeDiff)
}
if (str.empty())
{
+ // TRANSLATORS: uptime command
str.append(strprintf(ngettext(N_("%d second"), N_("%d seconds"),
0), 0));
}
diff --git a/src/utils/stringutils.h b/src/utils/stringutils.h
index 2f192c98c..310bbc957 100644
--- a/src/utils/stringutils.h
+++ b/src/utils/stringutils.h
@@ -101,8 +101,6 @@ const char *ipToString(const uint32_t address) A_WARN_UNUSED;
*/
std::string strprintf(const char *const format, ...) A_NONNULL(1) A_WARN_UNUSED
#ifdef __GNUC__
- /* This attribute is nice: it even works through gettext invokation. For
- example, gcc will complain that strprintf(_("%s"), 42) is ill-formed. */
#ifdef __OpenBSD__
__attribute__((__format__(printf, 1, 2)))
#else