diff options
-rw-r--r-- | src/actionmanager.cpp | 2 | ||||
-rw-r--r-- | src/actorspritemanager.cpp | 1 | ||||
-rw-r--r-- | src/being.cpp | 2 | ||||
-rw-r--r-- | src/client.cpp | 56 | ||||
-rw-r--r-- | src/commandhandler.cpp | 5 | ||||
-rw-r--r-- | src/commands.cpp | 95 | ||||
-rw-r--r-- | src/game.cpp | 6 | ||||
-rw-r--r-- | src/inputmanager.cpp | 16 | ||||
-rw-r--r-- | src/inventory.cpp | 9 | ||||
-rw-r--r-- | src/keyboardconfig.cpp | 1 | ||||
-rw-r--r-- | src/localplayer.cpp | 116 | ||||
-rw-r--r-- | src/main.cpp | 24 | ||||
-rw-r--r-- | src/notifications.h | 68 | ||||
-rw-r--r-- | src/playerrelations.cpp | 5 | ||||
-rw-r--r-- | src/resources/beinginfo.cpp | 1 | ||||
-rw-r--r-- | src/resources/itemdb.cpp | 6 | ||||
-rw-r--r-- | src/resources/monsterdb.cpp | 1 |
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, |