summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/actionmanager.cpp2
-rw-r--r--src/actorspritemanager.cpp1
-rw-r--r--src/being.cpp2
-rw-r--r--src/client.cpp56
-rw-r--r--src/commandhandler.cpp5
-rw-r--r--src/commands.cpp95
-rw-r--r--src/game.cpp6
-rw-r--r--src/inputmanager.cpp16
-rw-r--r--src/inventory.cpp9
-rw-r--r--src/keyboardconfig.cpp1
-rw-r--r--src/localplayer.cpp116
-rw-r--r--src/main.cpp24
-rw-r--r--src/notifications.h68
-rw-r--r--src/playerrelations.cpp5
-rw-r--r--src/resources/beinginfo.cpp1
-rw-r--r--src/resources/itemdb.cpp6
-rw-r--r--src/resources/monsterdb.cpp1
17 files changed, 388 insertions, 26 deletions
diff --git a/src/actionmanager.cpp b/src/actionmanager.cpp
index 5fb91d174..28d605a88 100644
--- a/src/actionmanager.cpp
+++ b/src/actionmanager.cpp
@@ -835,6 +835,7 @@ impHandler0(changeTrade)
{
if (localChatTab)
{
+ // TRANSLATORS: disable trades message
localChatTab->chatLog(_("Ignoring incoming trade requests"),
BY_SERVER);
}
@@ -844,6 +845,7 @@ impHandler0(changeTrade)
{
if (localChatTab)
{
+ // TRANSLATORS: enable trades message
localChatTab->chatLog(_("Accepting incoming trade requests"),
BY_SERVER);
}
diff --git a/src/actorspritemanager.cpp b/src/actorspritemanager.cpp
index 44fb7e2a4..ed76f34e2 100644
--- a/src/actorspritemanager.cpp
+++ b/src/actorspritemanager.cpp
@@ -1243,6 +1243,7 @@ bool ActorSpriteManager::isBlocked(const uint32_t id) const
void ActorSpriteManager::printAllToChat() const
{
+ // TRANSLATORS: visible beings on map
printBeingsToChat(getAll(), _("Visible on map"));
}
diff --git a/src/being.cpp b/src/being.cpp
index f06de55c7..de5ecc56e 100644
--- a/src/being.cpp
+++ b/src/being.cpp
@@ -268,6 +268,7 @@ void Being::setSubtype(const uint16_t subtype)
if (!ItemDB::exists(id))
{
id = -100;
+ // TRANSLATORS: default race name
setRaceName(_("Human"));
}
else
@@ -467,6 +468,7 @@ void Being::takeDamage(Being *const attacker, const int amount,
return;
gcn::Font *font = nullptr;
+ // TRANSLATORS: hit or miss message in attacks
const std::string damage = amount ? toString(amount) : type == FLEE ?
_("dodge") : _("miss");
const gcn::Color *color;
diff --git a/src/client.cpp b/src/client.cpp
index 45fb3a5ad..df8fa3c85 100644
--- a/src/client.cpp
+++ b/src/client.cpp
@@ -1132,16 +1132,21 @@ int Client::gameExec()
top->add(mDesktop);
int x = top->getWidth() - mButtonPadding;
ADDBUTTON(mSetupButton, new Button(mDesktop,
+ // TRANSLATORS: setup tab quick button
_("Setup"), "Setup", this))
#ifndef WIN32
ADDBUTTON(mPerfomanceButton, new Button(mDesktop,
+ // TRANSLATORS: perfoamance tab quick button
_("Perfomance"), "Perfomance", this))
ADDBUTTON(mVideoButton, new Button(mDesktop,
+ // TRANSLATORS: video tab quick button
_("Video"), "Video", this))
ADDBUTTON(mThemesButton, new Button(mDesktop,
- _("Themes"), "Themes", this))
+ // TRANSLATORS: theme tab quick button
+ _("Theme"), "Themes", this))
#ifdef ANDROID
ADDBUTTON(mCloseButton, new Button(mDesktop,
+ // TRANSLATORS: close quick button
_("Close"), "close", this))
#endif
#endif
@@ -1229,7 +1234,8 @@ int Client::gameExec()
logger->log1("State: CONNECT SERVER");
loginData.updateHosts.clear();
mCurrentDialog = new ConnectionDialog(
- _("Connecting to server"), STATE_SWITCH_SERVER);
+ // TRANSLATORS: connection dialog header
+ _("Connecting to server"), STATE_SWITCH_SERVER);
TranslationManager::loadCurrentLang();
BLOCK_END("Client::gameExec STATE_CONNECT_SERVER")
break;
@@ -1271,7 +1277,8 @@ int Client::gameExec()
logger->log1("State: LOGIN ATTEMPT");
accountLogin(&loginData);
mCurrentDialog = new ConnectionDialog(
- _("Logging in"), STATE_SWITCH_SERVER);
+ // TRANSLATORS: connection dialog header
+ _("Logging in"), STATE_SWITCH_SERVER);
BLOCK_END("Client::gameExec STATE_LOGIN_ATTEMPT")
break;
@@ -1309,7 +1316,8 @@ int Client::gameExec()
BLOCK_START("Client::gameExec STATE_WORLD_SELECT_ATTEMPT")
logger->log1("State: WORLD SELECT ATTEMPT");
mCurrentDialog = new ConnectionDialog(
- _("Entering game world"), STATE_WORLD_SELECT);
+ // TRANSLATORS: connection dialog header
+ _("Entering game world"), STATE_WORLD_SELECT);
BLOCK_END("Client::gameExec STATE_WORLD_SELECT_ATTEMPT")
break;
@@ -1419,8 +1427,9 @@ int Client::gameExec()
logger->log1("State: GET CHARACTERS");
Net::getCharServerHandler()->requestCharacters();
mCurrentDialog = new ConnectionDialog(
- _("Requesting characters"),
- STATE_SWITCH_SERVER);
+ // TRANSLATORS: connection dialog header
+ _("Requesting characters"),
+ STATE_SWITCH_SERVER);
BLOCK_END("Client::gameExec STATE_GET_CHARACTERS")
break;
@@ -1457,9 +1466,10 @@ int Client::gameExec()
Net::getGameHandler()->connect();
mCurrentDialog = new ConnectionDialog(
- _("Connecting to the game server"),
- Net::getNetworkType() != ServerInfo::MANASERV ?
- STATE_CHOOSE_SERVER : STATE_SWITCH_CHARACTER);
+ // TRANSLATORS: connection dialog header
+ _("Connecting to the game server"),
+ Net::getNetworkType() != ServerInfo::MANASERV ?
+ STATE_CHOOSE_SERVER : STATE_SWITCH_CHARACTER);
BLOCK_END("Client::gameExec STATE_CONNECT_GAME")
break;
@@ -1469,8 +1479,9 @@ int Client::gameExec()
Net::getGameHandler()->connect();
mCurrentDialog = new ConnectionDialog(
- _("Changing game servers"),
- STATE_SWITCH_CHARACTER);
+ // TRANSLATORS: connection dialog header
+ _("Changing game servers"),
+ STATE_SWITCH_CHARACTER);
BLOCK_END("Client::gameExec STATE_CHANGE_MAP")
break;
@@ -1525,6 +1536,7 @@ int Client::gameExec()
case STATE_LOGIN_ERROR:
BLOCK_START("Client::gameExec STATE_LOGIN_ERROR")
logger->log1("State: LOGIN ERROR");
+ // TRANSLATORS: error dialog header
mCurrentDialog = new OkDialog(_("Error"),
errorMessage, DIALOG_ERROR);
mCurrentDialog->addActionListener(&loginListener);
@@ -1535,6 +1547,7 @@ int Client::gameExec()
case STATE_ACCOUNTCHANGE_ERROR:
BLOCK_START("Client::gameExec STATE_ACCOUNTCHANGE_ERROR")
logger->log1("State: ACCOUNT CHANGE ERROR");
+ // TRANSLATORS: error dialog header
mCurrentDialog = new OkDialog(_("Error"),
errorMessage, DIALOG_ERROR);
mCurrentDialog->addActionListener(&accountListener);
@@ -1547,7 +1560,8 @@ int Client::gameExec()
logger->log1("State: REGISTER_PREP");
Net::getLoginHandler()->getRegistrationDetails();
mCurrentDialog = new ConnectionDialog(
- _("Requesting registration details"), STATE_LOGIN);
+ // TRANSLATORS: connection dialog header
+ _("Requesting registration details"), STATE_LOGIN);
BLOCK_END("Client::gameExec STATE_REGISTER_PREP")
break;
@@ -1583,7 +1597,9 @@ int Client::gameExec()
BLOCK_START("Client::gameExec "
"STATE_CHANGEPASSWORD_SUCCESS")
logger->log1("State: CHANGE PASSWORD SUCCESS");
+ // TRANSLATORS: password change message header
mCurrentDialog = new OkDialog(_("Password Change"),
+ // TRANSLATORS: password change message text
_("Password changed successfully!"), DIALOG_ERROR);
mCurrentDialog->addActionListener(&accountListener);
mCurrentDialog = nullptr; // OkDialog deletes itself
@@ -1604,7 +1620,9 @@ int Client::gameExec()
case STATE_CHANGEEMAIL_SUCCESS:
logger->log1("State: CHANGE EMAIL SUCCESS");
+ // TRANSLATORS: email change message header
mCurrentDialog = new OkDialog(_("Email Change"),
+ // TRANSLATORS: email change message text
_("Email changed successfully!"), DIALOG_ERROR);
mCurrentDialog->addActionListener(&accountListener);
mCurrentDialog = nullptr; // OkDialog deletes itself
@@ -1625,7 +1643,9 @@ int Client::gameExec()
logger->log1("State: UNREGISTER SUCCESS");
Net::getLoginHandler()->disconnect();
+ // TRANSLATORS: unregister message header
mCurrentDialog = new OkDialog(_("Unregister Successful"),
+ // TRANSLATORS: unregister message text
_("Farewell, come back any time..."), DIALOG_ERROR);
loginData.clear();
// The errorlistener sets the state to STATE_CHOOSE_SERVER
@@ -1697,6 +1717,7 @@ int Client::gameExec()
serverConfig.write();
logger->log1("State: ERROR");
logger->log("Error: %s\n", errorMessage.c_str());
+ // TRANSLATORS: error message header
mCurrentDialog = new OkDialog(_("Error"),
errorMessage, DIALOG_ERROR);
mCurrentDialog->addActionListener(&errorListener);
@@ -1877,6 +1898,7 @@ void Client::initLocalDataDir()
if (mkdir_r(mLocalDataDir.c_str()))
{
+ // TRANSLATORS: directory creation error
logger->error(strprintf(_("%s doesn't exist and can't be created! "
"Exiting."), mLocalDataDir.c_str()));
}
@@ -1891,6 +1913,7 @@ void Client::initTempDir()
if (mkdir_r(mTempDir.c_str()))
{
+ // TRANSLATORS: directory creation error
logger->error(strprintf(_("%s doesn't exist and can't be created! "
"Exiting."), mTempDir.c_str()));
}
@@ -1933,6 +1956,7 @@ void Client::initConfigDir()
if (mkdir_r(mConfigDir.c_str()))
{
+ // TRANSLATORS: directory creation error
logger->error(strprintf(_("%s doesn't exist and can't be created! "
"Exiting."), mConfigDir.c_str()));
}
@@ -1948,6 +1972,7 @@ void Client::initServerConfig(std::string serverName)
if (mkdir_r(mServerConfigDir.c_str()))
{
+ // TRANSLATORS: directory creation error
logger->error(strprintf(_("%s doesn't exist and can't be created! "
"Exiting."), mServerConfigDir.c_str()));
}
@@ -2084,6 +2109,7 @@ void Client::initUpdatesDir()
else
{
logger->log("Error: Invalid update host: %s", mUpdateHost.c_str());
+ // TRANSLATORS: update server initialisation error
errorMessage = strprintf(_("Invalid update host: %s"),
mUpdateHost.c_str());
mState = STATE_ERROR;
@@ -2124,12 +2150,14 @@ void Client::initUpdatesDir()
{
logger->log("Error: %s can't be made, but doesn't exist!",
newDir.c_str());
+ // TRANSLATORS: update server initialisation error
errorMessage = _("Error creating updates directory!");
mState = STATE_ERROR;
}
#else
logger->log("Error: %s/%s can't be made, but doesn't exist!",
mLocalDataDir.c_str(), mUpdatesDir.c_str());
+ // TRANSLATORS: update server initialisation error
errorMessage = _("Error creating updates directory!");
mState = STATE_ERROR;
#endif
@@ -2150,6 +2178,7 @@ void Client::initScreenshotDir()
mScreenshotDir = mOptions.screenshotDir;
if (mkdir_r(mScreenshotDir.c_str()))
{
+ // TRANSLATORS: directory creation error
logger->log(strprintf(
_("Error: %s doesn't exist and can't be created! "
"Exiting."), mScreenshotDir.c_str()));
@@ -2162,6 +2191,7 @@ void Client::initScreenshotDir()
if (mkdir_r(mScreenshotDir.c_str()))
{
+ // TRANSLATORS: directory creation error
logger->log(strprintf(
_("Error: %s doesn't exist and can't be created! "
"Exiting."), mScreenshotDir.c_str()));
@@ -2383,6 +2413,7 @@ void Client::initUsersDir()
mUsersDir = Client::getServerConfigDirectory() + "/users/";
if (mkdir_r(mUsersDir.c_str()))
{
+ // TRANSLATORS: directory creation error
logger->error(strprintf(_("%s doesn't exist and can't be created! "
"Exiting."), mUsersDir.c_str()));
}
@@ -2390,6 +2421,7 @@ void Client::initUsersDir()
mNpcsDir = Client::getServerConfigDirectory() + "/npcs/";
if (mkdir_r(mNpcsDir.c_str()))
{
+ // TRANSLATORS: directory creation error
logger->error(strprintf(_("%s doesn't exist and can't be created! "
"Exiting."), mNpcsDir.c_str()));
}
diff --git a/src/commandhandler.cpp b/src/commandhandler.cpp
index 967f6d65d..4675ddd22 100644
--- a/src/commandhandler.cpp
+++ b/src/commandhandler.cpp
@@ -55,7 +55,12 @@ void CommandHandler::handleCommand(const std::string &command,
args = trim(args);
const CommandsMapIter it = mCommands.find(type);
if (it != mCommands.end())
+ {
((*it).second)(args, tab);
+ }
else if (!tab->handleCommand(type, args))
+ {
+ // TRANSLATORS: chat commands handling message
tab->chatLog(_("Unknown command."));
+ }
}
diff --git a/src/commands.cpp b/src/commands.cpp
index 3ef4dbd40..e2e93fe3e 100644
--- a/src/commands.cpp
+++ b/src/commands.cpp
@@ -132,12 +132,16 @@ static void changeRelation(const std::string &args,
if (args.empty())
{
if (tab)
+ {
+ // TRANSLATORS: change relation
tab->chatLog(_("Please specify a name."), BY_SERVER);
+ }
return;
}
if (player_relations.getRelation(args) == relation)
{
+ // TRANSLATORS: change relation
tab->chatLog(strprintf(_("Player already %s!"),
relationText.c_str()), BY_SERVER);
return;
@@ -149,11 +153,13 @@ static void changeRelation(const std::string &args,
if (player_relations.getRelation(args) == relation)
{
+ // TRANSLATORS: change relation
tab->chatLog(strprintf(_("Player successfully %s!"),
relationText.c_str()), BY_SERVER);
}
else
{
+ // TRANSLATORS: change relation
tab->chatLog(strprintf(_("Player could not be %s!"),
relationText.c_str()), BY_SERVER);
}
@@ -319,7 +325,10 @@ impHandler(msg)
chatWindow->addWhisper(recvnick, msg, BY_PLAYER);
}
else
+ {
+ // TRANSLATORS: whisper send
tab->chatLog(_("Cannot send empty whispers!"), BY_SERVER);
+ }
}
impHandler(query)
@@ -335,6 +344,7 @@ impHandler(query)
if (tab)
{
+ // TRANSLATORS: new whisper query
tab->chatLog(strprintf(_("Cannot create a whisper tab for nick "
"\"%s\"! It either already exists, or is you."),
args.c_str()), BY_SERVER);
@@ -355,7 +365,10 @@ impHandler0(cleanGraphics)
continue;
if (debugChatTab)
+ {
+ // TRANSLATORS: clear graphics command message
debugChatTab->chatLog(_("Cache cleaned"));
+ }
}
impHandler0(cleanFonts)
@@ -363,7 +376,10 @@ impHandler0(cleanFonts)
if (gui)
gui->clearFonts();
if (debugChatTab)
+ {
+ // TRANSLATORS: clear fonts cache message
debugChatTab->chatLog(_("Cache cleaned"));
+ }
}
impHandler(createParty)
@@ -372,9 +388,14 @@ impHandler(createParty)
return;
if (args.empty())
+ {
+ // TRANSLATORS: create party message
tab->chatLog(_("Party name is missing."), BY_SERVER);
+ }
else
+ {
Net::getPartyHandler()->create(args);
+ }
}
impHandler(createGuild)
@@ -383,9 +404,14 @@ impHandler(createGuild)
return;
if (args.empty())
+ {
+ // TRANSLATORS: create guild message
tab->chatLog(_("Guild name is missing."), BY_SERVER);
+ }
else
+ {
Net::getGuildHandler()->create(args);
+ }
}
impHandler(party)
@@ -393,10 +419,15 @@ impHandler(party)
if (!tab)
return;
- if (args != "")
+ if (!args.empty())
+ {
Net::getPartyHandler()->invite(args);
+ }
else
+ {
+ // TRANSLATORS: party invite message
tab->chatLog(_("Please specify a name."), BY_SERVER);
+ }
}
impHandler(me)
@@ -410,6 +441,7 @@ impHandler(toggle)
{
if (chatWindow && tab)
{
+ // TRANSLATORS: message from toggle chat command
tab->chatLog(chatWindow->getReturnTogglesChat() ?
_("Return toggles chat.") : _("Message closes chat."));
}
@@ -420,13 +452,19 @@ impHandler(toggle)
{
case 1:
if (tab)
+ {
+ // TRANSLATORS: message from toggle chat command
tab->chatLog(_("Return now toggles chat."));
+ }
if (chatWindow)
chatWindow->setReturnTogglesChat(true);
return;
case 0:
if (tab)
+ {
+ // TRANSLATORS: message from toggle chat command
tab->chatLog(_("Message now closes chat."));
+ }
if (chatWindow)
chatWindow->setReturnTogglesChat(false);
return;
@@ -452,16 +490,19 @@ impHandler1(ignore)
impHandler(beFriend)
{
+ // TRANSLATORS: adding friend command
changeRelation(args, PlayerRelation::FRIEND, _("friend"), tab);
}
impHandler(disregard)
{
+ // TRANSLATORS: disregard command
changeRelation(args, PlayerRelation::DISREGARDED, _("disregarded"), tab);
}
impHandler(neutral)
{
+ // TRANSLATORS: neutral command
changeRelation(args, PlayerRelation::NEUTRAL, _("neutral"), tab);
}
@@ -470,7 +511,10 @@ impHandler(unignore)
if (args.empty())
{
if (tab)
+ {
+ // TRANSLATORS: unignore command
tab->chatLog(_("Please specify a name."), BY_SERVER);
+ }
return;
}
@@ -482,26 +526,37 @@ impHandler(unignore)
else
{
if (tab)
+ {
+ // TRANSLATORS: unignore command
tab->chatLog(_("Player wasn't ignored!"), BY_SERVER);
+ }
return;
}
if (tab)
{
if (player_relations.getRelation(args) == PlayerRelation::NEUTRAL)
+ {
+ // TRANSLATORS: unignore command
tab->chatLog(_("Player no longer ignored!"), BY_SERVER);
+ }
else
+ {
+ // TRANSLATORS: unignore command
tab->chatLog(_("Player could not be unignored!"), BY_SERVER);
+ }
}
}
impHandler(blackList)
{
+ // TRANSLATORS: blacklist command
changeRelation(args, PlayerRelation::BLACKLISTED, _("blacklisted"), tab);
}
impHandler(enemy)
{
+ // TRANSLATORS: enemy command
changeRelation(args, PlayerRelation::ENEMY2, _("enemy"), tab);
}
@@ -510,14 +565,20 @@ impHandler(erase)
if (args.empty())
{
if (tab)
+ {
+ // TRANSLATORS: erase command
tab->chatLog(_("Please specify a name."), BY_SERVER);
+ }
return;
}
if (player_relations.getRelation(args) == PlayerRelation::ERASED)
{
if (tab)
+ {
+ // TRANSLATORS: erase command
tab->chatLog(_("Player already erased!"), BY_SERVER);
+ }
return;
}
else
@@ -528,9 +589,15 @@ impHandler(erase)
if (tab)
{
if (player_relations.getRelation(args) == PlayerRelation::ERASED)
+ {
+ // TRANSLATORS: erase command
tab->chatLog(_("Player successfully erased!"), BY_SERVER);
+ }
else
+ {
+ // TRANSLATORS: erase command
tab->chatLog(_("Player could not be erased!"), BY_SERVER);
+ }
}
}
@@ -810,6 +877,7 @@ impHandler0(uptime)
if (cur_time < start_time)
{
+ // TRANSLATORS: uptime command
debugChatTab->chatLog(strprintf(_("Client uptime: %s"), "unknown"));
}
else
@@ -820,7 +888,9 @@ impHandler0(uptime)
const int weeks = timeDiff / 60 / 60 / 24 / 7;
if (weeks > 0)
{
- str = strprintf(ngettext("%d week", "%d weeks", weeks), weeks);
+ // TRANSLATORS: uptime command
+ str = strprintf(ngettext(N_("%d week"), N_("%d weeks"),
+ weeks), weeks);
timeDiff -= weeks * 60 * 60 * 24 * 7;
}
@@ -829,7 +899,9 @@ impHandler0(uptime)
{
if (!str.empty())
str.append(", ");
- str.append(strprintf(ngettext("%d day", "%d days", days), days));
+ // TRANSLATORS: uptime command
+ str.append(strprintf(ngettext(N_("%d day"), N_("%d days"),
+ days), days));
timeDiff -= days * 60 * 60 * 24;
}
const int hours = timeDiff / 60 / 60;
@@ -837,7 +909,8 @@ impHandler0(uptime)
{
if (!str.empty())
str.append(", ");
- str.append(strprintf(ngettext("%d hour", "%d hours",
+ // TRANSLATORS: uptime command
+ str.append(strprintf(ngettext(N_("%d hour"), N_("%d hours"),
hours), hours));
timeDiff -= hours * 60 * 60;
}
@@ -846,7 +919,8 @@ impHandler0(uptime)
{
if (!str.empty())
str.append(", ");
- str.append(strprintf(ngettext("%d minute", "%d minutes",
+ // TRANSLATORS: uptime command
+ str.append(strprintf(ngettext(N_("%d minute"), N_("%d minutes"),
min), min));
timeDiff -= min * 60;
}
@@ -855,9 +929,11 @@ impHandler0(uptime)
{
if (!str.empty())
str.append(", ");
- str.append(strprintf(ngettext("%d second", "%d seconds",
+ // TRANSLATORS: uptime command
+ str.append(strprintf(ngettext(N_("%d second"), N_("%d seconds"),
timeDiff), timeDiff));
}
+ // TRANSLATORS: uptime command
debugChatTab->chatLog(strprintf(_("Client uptime: %s"), str.c_str()));
}
}
@@ -1010,7 +1086,10 @@ impHandler0(dumpEnvironment)
logger->log1(*env);
logger->log1("End environment variables");
if (debugChatTab)
+ {
+ // TRANSLATORS: dump environment command
debugChatTab->chatLog(_("Environment variables dumped"));
+ }
}
impHandler2(dumpTests)
@@ -1164,15 +1243,19 @@ impHandler1(dump)
if (!args.empty())
{
ResourceManager::Resources *res = resman->getResources();
+ // TRANSLATORS: dump command
showRes(_("Resource images:"), res);
res = resman->getOrphanedResources();
+ // TRANSLATORS: dump command
showRes(_("Resource orphaned images:"), res);
}
else
{
ResourceManager::Resources *res = resman->getResources();
+ // TRANSLATORS: dump command
debugChatTab->chatLog(_("Resource images:") + toString(res->size()));
res = resman->getOrphanedResources();
+ // TRANSLATORS: dump command
debugChatTab->chatLog(_("Resource orphaned images:")
+ toString(res->size()));
}
diff --git a/src/game.cpp b/src/game.cpp
index 016e4dded..f90814ccd 100644
--- a/src/game.cpp
+++ b/src/game.cpp
@@ -252,6 +252,7 @@ static void createGuiWindows()
if (serverVersion >= 6)
questsWindow = new QuestsWindow;
+ // TRANSLATORS: chat tab header
localChatTab = new ChatTab(chatWindow, _("General"), GENERAL_CHANNEL);
localChatTab->setAllowHighlight(false);
if (config.getBoolValue("showChatHistory"))
@@ -267,6 +268,7 @@ static void createGuiWindows()
}
}
+ // TRANSLATORS: chat tab header
debugChatTab = new ChatTab(chatWindow, _("Debug"), "");
debugChatTab->setAllowHighlight(false);
@@ -532,6 +534,7 @@ bool Game::saveScreenshot(SDL_Surface *const screenshot)
if (success)
{
std::stringstream chatlogentry;
+ // TRANSLATORS: save file message
chatlogentry << strprintf(_("Screenshot saved as %s"),
filenameSuffix.str().c_str());
if (localChatTab)
@@ -541,6 +544,7 @@ bool Game::saveScreenshot(SDL_Surface *const screenshot)
{
if (localChatTab)
{
+ // TRANSLATORS: save file message
localChatTab->chatLog(_("Saving screenshot failed!"),
BY_SERVER);
}
@@ -612,7 +616,9 @@ void Game::slowLogic()
{
if (!disconnectedDialog)
{
+ // TRANSLATORS: error message text
errorMessage = _("The connection to the server was lost.");
+ // TRANSLATORS: error message header
disconnectedDialog = new OkDialog(_("Network Error"),
errorMessage, DIALOG_ERROR, false);
disconnectedDialog->addActionListener(&errorListener);
diff --git a/src/inputmanager.cpp b/src/inputmanager.cpp
index 55b13e82c..4b5988a57 100644
--- a/src/inputmanager.cpp
+++ b/src/inputmanager.cpp
@@ -317,13 +317,18 @@ std::string InputManager::getKeyStringLong(const int index) const
if (key.type == INPUT_KEYBOARD)
{
if (key.value >= 0)
+ {
str = keyboard.getKeyName(key.value);
+ }
else if (key.value < -1)
+ {
+ // TRANSLATORS: long key name. must be short.
str = strprintf(_("key_%d"), -key.value);
+ }
}
else if (key.type == INPUT_JOYSTICK)
{
- // TRANSLATORS: this is long joystick button name
+ // TRANSLATORS: long joystick button name. must be short.
str = strprintf(_("JButton%d"), key.value + 1);
}
if (!str.empty())
@@ -336,7 +341,10 @@ std::string InputManager::getKeyStringLong(const int index) const
}
if (keyStr.empty())
+ {
+ // TRANSLATORS: unknown long key type
return _("unknown key");
+ }
return keyStr;
}
@@ -358,12 +366,13 @@ std::string InputManager::getKeyValueString(const int index) const
}
else if (key.value < -1)
{
+ // TRANSLATORS: short key name. must be very short.
str = strprintf(_("key_%d"), -key.value);
}
}
else if (key.type == INPUT_JOYSTICK)
{
- // TRANSLATORS: this is short joystick button name
+ // TRANSLATORS: short joystick button name. muse be very short
str = strprintf(_("JB%d"), key.value + 1);
}
if (!str.empty())
@@ -376,7 +385,10 @@ std::string InputManager::getKeyValueString(const int index) const
}
if (keyStr.empty())
+ {
+ // TRANSLATORS: unknown short key type. must be short
return _("u key");
+ }
return keyStr;
}
diff --git a/src/inventory.cpp b/src/inventory.cpp
index abdc92723..b4477f6d3 100644
--- a/src/inventory.cpp
+++ b/src/inventory.cpp
@@ -251,10 +251,19 @@ std::string Inventory::getName() const
{
case INVENTORY:
default:
+ {
+ // TRANSLATORS: inventory type name
return N_("Inventory");
+ }
case STORAGE:
+ {
+ // TRANSLATORS: inventory type name
return N_("Storage");
+ }
case CART:
+ {
+ // TRANSLATORS: inventory type name
return N_("Cart");
+ }
}
}
diff --git a/src/keyboardconfig.cpp b/src/keyboardconfig.cpp
index eec43364d..9c54926d4 100644
--- a/src/keyboardconfig.cpp
+++ b/src/keyboardconfig.cpp
@@ -86,6 +86,7 @@ std::string KeyboardConfig::getKeyName(const int key)
if (key >= 0)
return SDL_GetKeyName(static_cast<SDLKey>(key));
+ // TRANSLATORS: long key name, should be short
return strprintf(_("key_%d"), key);
}
diff --git a/src/localplayer.cpp b/src/localplayer.cpp
index 785885ac7..8e066ca8f 100644
--- a/src/localplayer.cpp
+++ b/src/localplayer.cpp
@@ -367,6 +367,7 @@ void LocalPlayer::setAction(const Action &action, const int attackType)
{
if (!mLastHitFrom.empty())
{
+ // TRANSLATORS: chat message after death
debugMsg(strprintf(_("You were killed by %s"),
mLastHitFrom.c_str()));
mLastHitFrom.clear();
@@ -1359,24 +1360,31 @@ void LocalPlayer::pickedUp(const ItemInfo &itemInfo, const int amount,
switch (fail)
{
case PICKUP_BAD_ITEM:
+ // TRANSLATORS: pickup error message
msg = N_("Tried to pick up nonexistent item.");
break;
case PICKUP_TOO_HEAVY:
+ // TRANSLATORS: pickup error message
msg = N_("Item is too heavy.");
break;
case PICKUP_TOO_FAR:
+ // TRANSLATORS: pickup error message
msg = N_("Item is too far away.");
break;
case PICKUP_INV_FULL:
+ // TRANSLATORS: pickup error message
msg = N_("Inventory is full.");
break;
case PICKUP_STACK_FULL:
+ // TRANSLATORS: pickup error message
msg = N_("Stack is too big.");
break;
case PICKUP_DROP_STEAL:
+ // TRANSLATORS: pickup error message
msg = N_("Item belongs to someone else.");
break;
default:
+ // TRANSLATORS: pickup error message
msg = N_("Unknown problem picking up item.");
break;
}
@@ -1386,7 +1394,7 @@ void LocalPlayer::pickedUp(const ItemInfo &itemInfo, const int amount,
if (mMap && config.getBoolValue("showpickupparticle"))
{
// Show pickup notification
- addMessageToQueue(_(msg), UserPalette::PICKUP_INFO);
+ addMessageToQueue(gettext(msg), UserPalette::PICKUP_INFO);
}
}
else
@@ -1604,7 +1612,10 @@ void LocalPlayer::processEvent(Channels channel,
- event.getInt("oldValue");
if (change != 0)
+ {
+ // TRANSLATORS: get xp message
addMessageToQueue(strprintf("%d %s", change, _("xp")));
+ }
break;
}
case PlayerInfo::LEVEL:
@@ -1840,11 +1851,17 @@ void LocalPlayer::invertDirection()
static const char *const invertDirectionStrings[] =
{
+ // TRANSLATORS: move type in status bar
N_("(D) default moves"),
+ // TRANSLATORS: move type in status bar
N_("(I) invert moves"),
+ // TRANSLATORS: move type in status bar
N_("(c) moves with some crazy moves"),
+ // TRANSLATORS: move type in status bar
N_("(C) moves with crazy moves"),
+ // TRANSLATORS: move type in status bar
N_("(d) double normal + crazy"),
+ // TRANSLATORS: move type in status bar
N_("(?) unknown move")
};
@@ -1867,15 +1884,18 @@ std::string LocalPlayer::getCrazyMoveTypeString()
{
if (mCrazyMoveType < crazyMoveTypeSize - 1)
{
+ // TRANSLATORS: crazy move type in status bar
return strprintf(_("(%u) crazy move number %u"),
mCrazyMoveType, mCrazyMoveType);
}
else if (mCrazyMoveType == crazyMoveTypeSize - 1)
{
+ // TRANSLATORS: crazy move type in status bar
return _("(a) custom crazy move");
}
else
{
+ // TRANSLATORS: crazy move type in status bar
return _("(?) crazy move");
}
}
@@ -1890,15 +1910,25 @@ void LocalPlayer::changeMoveToTargetType()
static const char *const moveToTargetTypeStrings[] =
{
+ // TRANSLATORS: move to target type in status bar
N_("(0) default moves to target"),
+ // TRANSLATORS: move to target type in status bar
N_("(1) moves to target in distance 1"),
+ // TRANSLATORS: move to target type in status bar
N_("(2) moves to target in distance 2"),
+ // TRANSLATORS: move to target type in status bar
N_("(3) moves to target in distance 3"),
+ // TRANSLATORS: move to target type in status bar
N_("(5) moves to target in distance 5"),
+ // TRANSLATORS: move to target type in status bar
N_("(7) moves to target in distance 7"),
+ // TRANSLATORS: move to target type in status bar
N_("(A) moves to target in attack range"),
+ // TRANSLATORS: move to target type in status bar
N_("(a) archer attack range"),
+ // TRANSLATORS: move to target type in status bar
N_("(B) moves to target in attack range - 1"),
+ // TRANSLATORS: move to target type in status bar
N_("(?) move to target")
};
@@ -1918,10 +1948,15 @@ void LocalPlayer::changeFollowMode()
static const char *const followModeStrings[] =
{
+ // TRANSLATORS: folow mode in status bar
N_("(D) default follow"),
+ // TRANSLATORS: folow mode in status bar
N_("(R) relative follow"),
+ // TRANSLATORS: folow mode in status bar
N_("(M) mirror follow"),
+ // TRANSLATORS: folow mode in status bar
N_("(P) pet follow"),
+ // TRANSLATORS: folow mode in status bar
N_("(?) unknown follow")
};
@@ -1941,10 +1976,15 @@ void LocalPlayer::changeAttackWeaponType()
static const char *attackWeaponTypeStrings[] =
{
+ // TRANSLATORS: switch attack type in status bar
N_("(?) attack"),
+ // TRANSLATORS: switch attack type in status bar
N_("(D) default attack"),
+ // TRANSLATORS: switch attack type in status bar
N_("(s) switch attack without shield"),
+ // TRANSLATORS: switch attack type in status bar
N_("(S) switch attack with shield"),
+ // TRANSLATORS: switch attack type in status bar
N_("(?) attack")
};
@@ -1964,10 +2004,15 @@ void LocalPlayer::changeAttackType()
static const char *const attackTypeStrings[] =
{
+ // TRANSLATORS: attack type in status bar
N_("(D) default attack"),
+ // TRANSLATORS: attack type in status bar
N_("(G) go and attack"),
+ // TRANSLATORS: attack type in status bar
N_("(A) go, attack, pickup"),
+ // TRANSLATORS: attack type in status bar
N_("(d) without auto attack"),
+ // TRANSLATORS: attack type in status bar
N_("(?) attack")
};
@@ -2019,13 +2064,21 @@ void LocalPlayer::changePickUpType()
static const char *const pickUpTypeStrings[] =
{
+ // TRANSLATORS: pickup size in status bar
N_("(S) small pick up 1x1 cells"),
+ // TRANSLATORS: pickup size in status bar
N_("(D) default pick up 2x1 cells"),
+ // TRANSLATORS: pickup size in status bar
N_("(F) forward pick up 2x3 cells"),
+ // TRANSLATORS: pickup size in status bar
N_("(3) pick up 3x3 cells"),
+ // TRANSLATORS: pickup size in status bar
N_("(g) go and pick up in distance 4"),
+ // TRANSLATORS: pickup size in status bar
N_("(G) go and pick up in distance 8"),
+ // TRANSLATORS: pickup size in status bar
N_("(A) go and pick up in max distance"),
+ // TRANSLATORS: pickup size in status bar
N_("(?) pick up")
};
@@ -2039,11 +2092,17 @@ const unsigned debugPathSize = 5;
static const char *const debugPathStrings[] =
{
+ // TRANSLATORS: map view type in status bar
N_("(N) normal map view"),
+ // TRANSLATORS: map view type in status bar
N_("(D) debug map view"),
+ // TRANSLATORS: map view type in status bar
N_("(u) ultra map view"),
+ // TRANSLATORS: map view type in status bar
N_("(U) ultra map view 2"),
+ // TRANSLATORS: map view type in status bar
N_("(e) empty map view"),
+ // TRANSLATORS: map view type in status bar
N_("(b) black & white map view")
};
@@ -2063,11 +2122,17 @@ void LocalPlayer::switchMagicAttack()
static const char *const magicAttackStrings[] =
{
+ // TRANSLATORS: magic attack in status bar
N_("(f) use #flar for magic attack"),
+ // TRANSLATORS: magic attack in status bar
N_("(c) use #chiza for magic attack"),
+ // TRANSLATORS: magic attack in status bar
N_("(I) use #ingrav for magic attack"),
+ // TRANSLATORS: magic attack in status bar
N_("(F) use #frillyar for magic attack"),
+ // TRANSLATORS: magic attack in status bar
N_("(U) use #upmarmu for magic attack"),
+ // TRANSLATORS: magic attack in status bar
N_("(?) magic attack")
};
@@ -2087,10 +2152,15 @@ void LocalPlayer::switchPvpAttack()
static const char *const pvpAttackStrings[] =
{
+ // TRANSLATORS: player attack type in status bar
N_("(a) attack all players"),
+ // TRANSLATORS: player attack type in status bar
N_("(f) attack all except friends"),
+ // TRANSLATORS: player attack type in status bar
N_("(b) attack bad relations"),
+ // TRANSLATORS: player attack type in status bar
N_("(d) don't attack players"),
+ // TRANSLATORS: player attack type in status bar
N_("(?) pvp attack")
};
@@ -2110,8 +2180,11 @@ void LocalPlayer::changeImitationMode()
static const char *const imitationModeStrings[] =
{
+ // TRANSLATORS: imitation type in status bar
N_("(D) default imitation"),
+ // TRANSLATORS: imitation type in status bar
N_("(O) outfits imitation"),
+ // TRANSLATORS: imitation type in status bar
N_("(?) imitation")
};
@@ -2140,6 +2213,7 @@ void LocalPlayer::changeAwayMode()
navigateClean();
if (outfitWindow)
outfitWindow->wearAwayOutfit();
+ // TRANSLATORS: away message box header
mAwayDialog = new OkDialog(_("Away"),
config.getStringValue("afkMessage"),
DIALOG_SILENCE, true, false);
@@ -2162,8 +2236,11 @@ void LocalPlayer::changeAwayMode()
static const char *awayModeStrings[] =
{
+ // TRANSLATORS: away type in status bar
N_("(O) on keyboard"),
+ // TRANSLATORS: away type in status bar
N_("(A) away"),
+ // TRANSLATORS: away type in status bar
N_("(?) away")
};
@@ -2177,8 +2254,11 @@ const unsigned cameraModeSize = 2;
static const char *cameraModeStrings[] =
{
+ // TRANSLATORS: camera mode in status bar
N_("(G) game camera mode"),
+ // TRANSLATORS: camera mode in status bar
N_("(F) free camera mode"),
+ // TRANSLATORS: camera mode in status bar
N_("(?) away")
};
@@ -2203,9 +2283,12 @@ void LocalPlayer::switchGameModifiers()
static const char *const gameModifiersStrings[] =
{
- _("Game modifiers are enabled"),
- _("Game modifiers are disabled"),
- _("Game modifiers are unknown")
+ // TRANSLATORS: game modifiers state in status bar
+ N_("Game modifiers are enabled"),
+ // TRANSLATORS: game modifiers state in status bar
+ N_("Game modifiers are disabled"),
+ // TRANSLATORS: game modifiers state in status bar
+ N_("Game modifiers are unknown")
};
std::string LocalPlayer::getGameModifiersString()
@@ -3745,26 +3828,46 @@ void LocalPlayer::setFollow(const std::string &player)
{
mPlayerFollowed = player;
if (!mPlayerFollowed.empty())
- debugMsg(_("Follow: ") + player);
+ {
+ // TRANSLATORS: follow command message
+ std::string msg = strprintf(_("Follow: %s"), player.c_str());
+ debugMsg(msg);
+ }
else
+ {
+ // TRANSLATORS: follow command message
debugMsg(_("Follow canceled"));
+ }
}
void LocalPlayer::setImitate(const std::string &player)
{
mPlayerImitated = player;
if (!mPlayerImitated.empty())
- debugMsg(_("Imitation: ") + player);
+ {
+ // TRANSLATORS: imitate command message
+ std::string msg = strprintf(_("Imitation: %s"), player.c_str());
+ debugMsg(msg);
+ }
else
+ {
+ // TRANSLATORS: imitate command message
debugMsg(_("Imitation canceled"));
+ }
}
void LocalPlayer::cancelFollow()
{
if (!mPlayerFollowed.empty())
+ {
+ // TRANSLATORS: cancel follow message
debugMsg(_("Follow canceled"));
+ }
if (!mPlayerImitated.empty())
+ {
+ // TRANSLATORS: cancel follow message
debugMsg(_("Imitation canceled"));
+ }
mPlayerFollowed.clear();
mPlayerImitated.clear();
}
@@ -4105,6 +4208,7 @@ void LocalPlayer::checkNewName(Being *const being)
if (!mWaitFor.empty() && mWaitFor == nick)
{
+ // TRANSLATORS: wait player/monster message
debugMsg(strprintf(_("You see %s"), mWaitFor.c_str()));
soundManager.playGuiSound(SOUND_INFO);
mWaitFor.clear();
diff --git a/src/main.cpp b/src/main.cpp
index efb4c4135..55af95f4f 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -53,38 +53,62 @@ char *selfName = nullptr;
static void printHelp()
{
std::cout
+ // TRANSLATORS: command line help
<< _("manaplus [options] [manaplus-file]") << std::endl << std::endl
+ // TRANSLATORS: command line help
<< _("[manaplus-file] : The manaplus file is an XML file (.manaplus)")
<< std::endl
+ // TRANSLATORS: command line help
<< _(" used to set custom parameters") << std::endl
+ // TRANSLATORS: command line help
<< _(" to the manaplus client.")
<< std::endl << std::endl
+ // TRANSLATORS: command line help
<< _("Options:") << std::endl
+ // TRANSLATORS: command line help
<< _(" -l --log-file : Log file to use") << std::endl
+ // TRANSLATORS: command line help
<< _(" -a --chat-log-dir : Chat log dir to use") << std::endl
+ // TRANSLATORS: command line help
<< _(" -v --version : Display the version") << std::endl
+ // TRANSLATORS: command line help
<< _(" -h --help : Display this help") << std::endl
+ // TRANSLATORS: command line help
<< _(" -C --config-dir : Configuration directory to use")
<< std::endl
+ // TRANSLATORS: command line help
<< _(" -U --username : Login with this username") << std::endl
+ // TRANSLATORS: command line help
<< _(" -P --password : Login with this password") << std::endl
+ // TRANSLATORS: command line help
<< _(" -c --character : Login with this character") << std::endl
+ // TRANSLATORS: command line help
<< _(" -s --server : Login server name or IP") << std::endl
+ // TRANSLATORS: command line help
<< _(" -p --port : Login server port") << std::endl
+ // TRANSLATORS: command line help
<< _(" -H --update-host : Use this update host") << std::endl
+ // TRANSLATORS: command line help
<< _(" -D --default : Choose default character server and "
"character") << std::endl
+ // TRANSLATORS: command line help
<< _(" -u --skip-update : Skip the update downloads") << std::endl
+ // TRANSLATORS: command line help
<< _(" -d --data : Directory to load game "
"data from") << std::endl
+ // TRANSLATORS: command line help
<< _(" -L --localdata-dir : Directory to use as local data"
" directory") << std::endl
+ // TRANSLATORS: command line help
<< _(" --screenshot-dir : Directory to store screenshots")
<< std::endl
+ // TRANSLATORS: command line help
<< _(" --safemode : Start game in safe mode") << std::endl
+ // TRANSLATORS: command line help
<< _(" -T --tests : Start testing drivers and "
"auto configuring") << std::endl
#ifdef USE_OPENGL
+ // TRANSLATORS: command line help
<< _(" -O --no-opengl : Disable OpenGL for this session")
<< std::endl
#endif
diff --git a/src/notifications.h b/src/notifications.h
index ced505d1b..34be27010 100644
--- a/src/notifications.h
+++ b/src/notifications.h
@@ -127,145 +127,213 @@ namespace NotifyManager
{"",
"", EMPTY},
{"buy done",
+ // TRANSLATORS: notification message
N_("Thanks for buying."), EMPTY},
{"buy fail",
+ // TRANSLATORS: notification message
N_("Unable to buy."), EMPTY},
{"sell empty",
+ // TRANSLATORS: notification message
N_("Nothing to sell."), EMPTY},
{"sell done",
+ // TRANSLATORS: notification message
N_("Thanks for selling."), EMPTY},
{"sell fail",
+ // TRANSLATORS: notification message
N_("Unable to sell."), EMPTY},
{"sell trade fail",
+ // TRANSLATORS: notification message
N_("Unable to sell while trading."), EMPTY},
{"sell unsellable fail",
+ // TRANSLATORS: notification message
N_("Unable to sell unsellable item."), EMPTY},
{"online users",
+ // TRANSLATORS: notification message
N_("Online users: %d"), INT},
{"guild created",
+ // TRANSLATORS: notification message
N_("Guild created."), EMPTY},
{"guild already",
+ // TRANSLATORS: notification message
N_("You are already in guild."), EMPTY},
{"guild create fail",
+ // TRANSLATORS: notification message
N_("Emperium check failed."), EMPTY},
{"guild error",
+ // TRANSLATORS: notification message
N_("Unknown server response."), EMPTY},
{"guild left",
+ // TRANSLATORS: notification message
N_("You have left the guild."), EMPTY},
{"guild invite fail",
+ // TRANSLATORS: notification message
N_("Could not invite user to guild."), GUILD},
{"guild invite rejected",
+ // TRANSLATORS: notification message
N_("User rejected guild invite."), GUILD},
{"guild invite joined",
+ // TRANSLATORS: notification message
N_("User is now part of your guild."), GUILD},
{"guild invite full",
+ // TRANSLATORS: notification message
N_("Your guild is full."), GUILD},
{"guild invite error",
+ // TRANSLATORS: notification message
N_("Unknown guild invite response."), GUILD},
{"guild user left",
+ // TRANSLATORS: notification message
N_("%s has left your guild."), GUILD_STRING},
{"guild kicked",
+ // TRANSLATORS: notification message
N_("You were kicked from guild."), EMPTY},
{"guild user kicked",
+ // TRANSLATORS: notification message
N_("%s has kicked from your guild."), GUILD_STRING},
{"use failed",
+ // TRANSLATORS: notification message
N_("Failed to use item."), EMPTY},
{"equip failed",
+ // TRANSLATORS: notification message
N_("Unable to equip."), EMPTY},
{"party create failed",
+ // TRANSLATORS: notification message
N_("Could not create party."), EMPTY},
{"party created",
+ // TRANSLATORS: notification message
N_("Party successfully created."), EMPTY},
{"party left",
+ // TRANSLATORS: notification message
N_("You have left the party."), EMPTY},
{"party user joined",
+ // TRANSLATORS: notification message
N_("%s has joined your party."), PARTY_STRING},
{"party invite already member",
+ // TRANSLATORS: notification message
N_("%s is already a member of a party."), PARTY_STRING},
{"party invite refused",
+ // TRANSLATORS: notification message
N_("%s refused your invitation."), PARTY_STRING},
{"party invite done",
+ // TRANSLATORS: notification message
N_("%s is now a member of your party."), PARTY_STRING},
{"party invite full",
+ // TRANSLATORS: notification message
N_("%s can't join your party because party is full."),
PARTY_STRING},
{"party invite error",
+ // TRANSLATORS: notification message
N_("QQQ Unknown invite response for %s."), PARTY_STRING},
{"party exp sharing on",
+ // TRANSLATORS: notification message
N_("Experience sharing enabled."), PARTY},
{"party exp sharing off",
+ // TRANSLATORS: notification message
N_("Experience sharing disabled."), PARTY},
{"party exp sharing error",
+ // TRANSLATORS: notification message
N_("Experience sharing not possible."), PARTY},
{"party item sharing on",
+ // TRANSLATORS: notification message
N_("Item sharing enabled."), PARTY},
{"party item sharing off",
+ // TRANSLATORS: notification message
N_("Item sharing disabled."), PARTY},
{"party item sharing error",
+ // TRANSLATORS: notification message
N_("Item sharing not possible."), PARTY},
{"party user left",
+ // TRANSLATORS: notification message
N_("%s has left your party."), PARTY_STRING},
{"party unknown user msg",
+ // TRANSLATORS: notification message
N_("An unknown member tried to say: %s"), PARTY_STRING},
{"party user not in party",
+ // TRANSLATORS: notification message
N_("%s is not in your party!"), PARTY_STRING},
{"money get",
+ // TRANSLATORS: notification message
N_("You picked up %s."), STRING},
{"money spend",
+ // TRANSLATORS: notification message
N_("You spent %s."), STRING},
{"skill raise error",
+ // TRANSLATORS: notification message
N_("Cannot raise skill!"), EMPTY},
{"arrow equip needed",
+ // TRANSLATORS: notification message
N_("Equip arrows first."), EMPTY},
{"trade fail far away",
+ // TRANSLATORS: notification message
N_("Trading with %s isn't possible. Trade partner is "
"too far away."), STRING},
{"trade fail chat not exists",
+ // TRANSLATORS: notification message
N_("Trading with %s isn't possible. Character doesn't exist."),
STRING},
{"trade cancelled error",
+ // TRANSLATORS: notification message
N_("Trade cancelled due to an unknown reason."), EMPTY},
{"trade cancelled user",
+ // TRANSLATORS: notification message
N_("Trade with %s cancelled."), STRING},
{"trade error unknown",
+ // TRANSLATORS: notification message
N_("Unhandled trade cancel packet with %s"), STRING},
{"trade add partner over weighted",
+ // TRANSLATORS: notification message
N_("Failed adding item. Trade partner is over weighted."), EMPTY},
{"trade add partned has no free slots",
+ // TRANSLATORS: notification message
N_("Failed adding item. Trade partner has no free slot."), EMPTY},
{"trade add untradable item",
+ // TRANSLATORS: notification message
N_("Failed adding item. You can't trade this item."), EMPTY},
{"trade add error",
+ // TRANSLATORS: notification message
N_("Failed adding item for unknown reason."), EMPTY},
{"trade cancelled",
+ // TRANSLATORS: notification message
N_("Trade canceled."), EMPTY},
{"trade complete",
+ // TRANSLATORS: notification message
N_("Trade completed."), EMPTY},
{"kick fail",
+ // TRANSLATORS: notification message
N_("Kick failed!"), EMPTY},
{"kick succeed",
+ // TRANSLATORS: notification message
N_("Kick succeeded!"), EMPTY},
{"mvp player",
+ // TRANSLATORS: notification message
N_("MVP player: %s"), STRING},
{"whispers ignored",
+ // TRANSLATORS: notification message
N_("All whispers ignored."), EMPTY},
{"whispers ignore failed",
+ // TRANSLATORS: notification message
N_("All whispers ignore failed."), EMPTY},
{"whispers unignored",
+ // TRANSLATORS: notification message
N_("All whispers unignored."), EMPTY},
{"whispers unignore failed",
+ // TRANSLATORS: notification message
N_("All whispers unignore failed."), EMPTY},
{"skill fail message",
"%s", STRING},
{"pvp off gvg off",
+ // TRANSLATORS: notification message
N_("pvp off, gvg off"), SPEECH},
{"pvp on",
+ // TRANSLATORS: notification message
N_("pvp on"), SPEECH},
{"gvg on",
+ // TRANSLATORS: notification message
N_("gvg on"), SPEECH},
{"pvp on gvg on",
+ // TRANSLATORS: notification message
N_("pvp on, gvg on"), SPEECH},
{"unknown pvp",
+ // TRANSLATORS: notification message
N_("unknown pvp"), SPEECH},
};
} // namespace NotifyManager
diff --git a/src/playerrelations.cpp b/src/playerrelations.cpp
index 7a24a4b95..6cb8b6c63 100644
--- a/src/playerrelations.cpp
+++ b/src/playerrelations.cpp
@@ -461,6 +461,7 @@ public:
PIS_nothing() :
PlayerIgnoreStrategy()
{
+ // TRANSLATORS: ignore/unignore action
mDescription = _("Completely ignore");
mShortName = PLAYER_IGNORE_STRATEGY_NOP;
}
@@ -477,6 +478,7 @@ public:
PIS_dotdotdot() :
PlayerIgnoreStrategy()
{
+ // TRANSLATORS: ignore/unignore action
mDescription = _("Print '...'");
mShortName = "dotdotdot";
}
@@ -499,6 +501,7 @@ public:
PIS_blinkname() :
PlayerIgnoreStrategy()
{
+ // TRANSLATORS: ignore/unignore action
mDescription = _("Blink name");
mShortName = "blinkname";
}
@@ -544,9 +547,11 @@ PlayerRelationsManager::getPlayerIgnoreStrategies()
{
// not initialised yet?
mIgnoreStrategies.push_back(new PIS_emote(FIRST_IGNORE_EMOTE,
+ // TRANSLATORS: ignore strategi
_("Floating '...' bubble"),
PLAYER_IGNORE_STRATEGY_EMOTE0));
mIgnoreStrategies.push_back(new PIS_emote(FIRST_IGNORE_EMOTE + 1,
+ // TRANSLATORS: ignore strategi
_("Floating bubble"),
"emote1"));
mIgnoreStrategies.push_back(new PIS_nothing);
diff --git a/src/resources/beinginfo.cpp b/src/resources/beinginfo.cpp
index 760d2667b..914a00d1a 100644
--- a/src/resources/beinginfo.cpp
+++ b/src/resources/beinginfo.cpp
@@ -36,6 +36,7 @@ Attack *BeingInfo::empty = new Attack(SpriteAction::ATTACK,
BeingInfo::BeingInfo() :
mDisplay(),
+ // TRANSLATORS: being info default name
mName(_("unnamed")),
mTargetCursorSize(ActorSprite::TC_MEDIUM),
mHoverCursor(Cursor::CURSOR_POINTER),
diff --git a/src/resources/itemdb.cpp b/src/resources/itemdb.cpp
index f5d6e54ce..346ddb9de 100644
--- a/src/resources/itemdb.cpp
+++ b/src/resources/itemdb.cpp
@@ -58,9 +58,13 @@ static int parseDirectionName(const std::string &name);
static const char *const fields[][2] =
{
+ // TRANSLATORS: item info label
{ "attack", N_("Attack %+d") },
+ // TRANSLATORS: item info label
{ "defense", N_("Defense %+d") },
+ // TRANSLATORS: item info label
{ "hp", N_("HP %+d") },
+ // TRANSLATORS: item info label
{ "mp", N_("MP %+d") }
};
@@ -164,6 +168,7 @@ void ItemDB::load()
mTags["Equipment"] = tagNum ++;
mUnknown = new ItemInfo;
+ // TRANSLATORS: item name
mUnknown->setName(_("Unknown item"));
mUnknown->setDisplay(SpriteDisplay());
std::string errFile = paths.getStringValue("spriteErrorFile");
@@ -258,6 +263,7 @@ void ItemDB::load()
ItemInfo *const itemInfo = new ItemInfo;
itemInfo->setId(id);
+ // TRANSLATORS: item info name
itemInfo->setName(name.empty() ? _("unnamed") : name);
itemInfo->setDescription(description);
itemInfo->setType(itemTypeFromString(typeStr));
diff --git a/src/resources/monsterdb.cpp b/src/resources/monsterdb.cpp
index 269cd59cd..9fcd2be0c 100644
--- a/src/resources/monsterdb.cpp
+++ b/src/resources/monsterdb.cpp
@@ -82,6 +82,7 @@ void MonsterDB::load()
currentInfo->setBlockType(Map::BLOCKTYPE_MONSTER);
currentInfo->setName(XML::langProperty(
+ // TRANSLATORS: unknown info name
monsterNode, "name", _("unnamed")));
currentInfo->setTargetCursorSize(XML::getProperty(monsterNode,