From a7c723b681ddefdcaa84cb9b16681c65818d7110 Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Fri, 3 May 2013 12:35:22 +0300 Subject: add comments for translators --- src/gui/beingpopup.cpp | 4 + src/gui/botcheckerwindow.cpp | 7 + src/gui/buydialog.cpp | 18 +- src/gui/buyselldialog.cpp | 10 +- src/gui/changeemaildialog.cpp | 9 + src/gui/changepassworddialog.cpp | 11 ++ src/gui/charcreatedialog.cpp | 28 +++- src/gui/charselectdialog.cpp | 20 +++ src/gui/chatwindow.cpp | 20 ++- src/gui/confirmdialog.cpp | 5 + src/gui/connectiondialog.cpp | 1 + src/gui/debugwindow.cpp | 76 ++++++++- src/gui/didyouknowwindow.cpp | 7 +- src/gui/editdialog.cpp | 1 + src/gui/editserverdialog.cpp | 12 ++ src/gui/equipmentwindow.cpp | 2 + src/gui/helpwindow.cpp | 4 +- src/gui/inventorywindow.cpp | 34 +++- src/gui/itemamountwindow.cpp | 18 +- src/gui/itempopup.cpp | 12 +- src/gui/killstats.cpp | 50 +++++- src/gui/logindialog.cpp | 22 ++- src/gui/minimap.cpp | 6 +- src/gui/ministatuswindow.cpp | 33 ++-- src/gui/npcdialog.cpp | 10 ++ src/gui/npcpostdialog.cpp | 5 + src/gui/okdialog.cpp | 1 + src/gui/outfitwindow.cpp | 10 ++ src/gui/popupmenu.cpp | 268 +++++++++++++++++++++++++++++- src/gui/questswindow.cpp | 3 + src/gui/quitdialog.cpp | 7 + src/gui/registerdialog.cpp | 19 ++- src/gui/selldialog.cpp | 9 + src/gui/serverdialog.cpp | 21 +++ src/gui/setup.cpp | 7 +- src/gui/setup_audio.cpp | 30 +++- src/gui/setup_chat.cpp | 34 ++++ src/gui/setup_colors.cpp | 23 ++- src/gui/setup_input.cpp | 8 + src/gui/setup_joystick.cpp | 10 ++ src/gui/setup_other.cpp | 77 +++++++++ src/gui/setup_perfomance.cpp | 23 +++ src/gui/setup_players.cpp | 15 ++ src/gui/setup_relations.cpp | 19 ++- src/gui/setup_theme.cpp | 45 ++++- src/gui/setup_touch.cpp | 19 +++ src/gui/setup_video.cpp | 39 ++++- src/gui/setup_visual.cpp | 36 ++++ src/gui/setupactiondata.h | 295 +++++++++++++++++++++++++++++++++ src/gui/shopwindow.cpp | 14 ++ src/gui/skilldialog.cpp | 14 ++ src/gui/socialwindow.cpp | 78 +++++++-- src/gui/statuswindow.cpp | 29 +++- src/gui/textcommandeditor.cpp | 33 +++- src/gui/textdialog.cpp | 2 + src/gui/tradewindow.cpp | 12 ++ src/gui/unregisterdialog.cpp | 13 +- src/gui/updaterwindow.cpp | 8 +- src/gui/userpalette.cpp | 72 ++++++-- src/gui/whoisonline.cpp | 8 +- src/gui/widgets/battletab.cpp | 1 + src/gui/widgets/chattab.cpp | 10 ++ src/gui/widgets/extendednamesmodel.cpp | 3 +- src/gui/widgets/gmtab.cpp | 1 + src/gui/widgets/guildchattab.cpp | 12 ++ src/gui/widgets/itemlinkhandler.cpp | 1 + src/gui/widgets/langtab.cpp | 1 + src/gui/widgets/namesmodel.cpp | 3 +- src/gui/widgets/setupitem.cpp | 2 + src/gui/widgets/tradetab.cpp | 1 + src/gui/widgets/whispertab.cpp | 15 +- src/gui/windowmenu.cpp | 11 ++ src/gui/worldselectdialog.cpp | 3 + 73 files changed, 1680 insertions(+), 110 deletions(-) (limited to 'src') diff --git a/src/gui/beingpopup.cpp b/src/gui/beingpopup.cpp index 7cd797cb2..63e3e1bef 100644 --- a/src/gui/beingpopup.cpp +++ b/src/gui/beingpopup.cpp @@ -124,6 +124,7 @@ void BeingPopup::show(const int x, const int y, Being *const b) if (!(b->getPartyName().empty())) { + // TRANSLATORS: being popup label label1->setCaption(strprintf(_("Party: %s"), b->getPartyName().c_str())); label1->adjustSize(); @@ -138,6 +139,7 @@ void BeingPopup::show(const int x, const int y, Being *const b) if (!(b->getGuildName().empty())) { + // TRANSLATORS: being popup label label2->setCaption(strprintf(_("Guild: %s"), b->getGuildName().c_str())); label2->adjustSize(); @@ -151,6 +153,7 @@ void BeingPopup::show(const int x, const int y, Being *const b) if (b->getPvpRank() > 0) { + // TRANSLATORS: being popup label label3->setCaption(strprintf(_("Pvp rank: %u"), b->getPvpRank())); label3->adjustSize(); } @@ -162,6 +165,7 @@ void BeingPopup::show(const int x, const int y, Being *const b) if (!b->getComment().empty()) { + // TRANSLATORS: being popup label label4->setCaption(strprintf(_("Comment: %s"), b->getComment().c_str())); label4->adjustSize(); diff --git a/src/gui/botcheckerwindow.cpp b/src/gui/botcheckerwindow.cpp index 3cc4b065b..910c9cb06 100644 --- a/src/gui/botcheckerwindow.cpp +++ b/src/gui/botcheckerwindow.cpp @@ -265,6 +265,7 @@ protected: BotCheckerWindow::BotCheckerWindow(): + // TRANSLATORS: bot checker window header Window(_("Bot Checker"), false, nullptr, "botchecker.xml"), gcn::ActionListener(), mTableModel(new UsersTableModel(this)), @@ -273,6 +274,7 @@ BotCheckerWindow::BotCheckerWindow(): "bochecker_background.xml")), mPlayerTableTitleModel(new StaticTableModel(1, COLUMNS_NR)), mPlayerTitleTable(new GuiTable(this, mPlayerTableTitleModel)), + // TRANSLATORS: bot checker window button mIncButton(new Button(this, _("Reset"), "reset", this)), mLastUpdateTime(0), mNeedUpdate(false), @@ -299,10 +301,15 @@ BotCheckerWindow::BotCheckerWindow(): mPlayerTitleTable->setHeight(1); + // TRANSLATORS: bot checker window table header mPlayerTableTitleModel->set(0, 0, new Label(this, _("Name"))); + // TRANSLATORS: bot checker window table header mPlayerTableTitleModel->set(0, 1, new Label(this, _("Attack"))); + // TRANSLATORS: bot checker window table header mPlayerTableTitleModel->set(0, 2, new Label(this, _("Talk"))); + // TRANSLATORS: bot checker window table header mPlayerTableTitleModel->set(0, 3, new Label(this, _("Move"))); + // TRANSLATORS: bot checker window table header mPlayerTableTitleModel->set(0, 4, new Label(this, _("Result"))); mPlayerTitleTable->setLinewiseSelection(true); diff --git a/src/gui/buydialog.cpp b/src/gui/buydialog.cpp index 3930ae715..e19a0a8f1 100644 --- a/src/gui/buydialog.cpp +++ b/src/gui/buydialog.cpp @@ -51,12 +51,19 @@ static const char *SORT_NAME_BUY[7] = { + // TRANSLATORS: buy dialog sort type. N_("unsorted"), + // TRANSLATORS: buy dialog sort type. N_("by price"), + // TRANSLATORS: buy dialog sort type. N_("by name"), + // TRANSLATORS: buy dialog sort type. N_("by id"), + // TRANSLATORS: buy dialog sort type. N_("by weight"), + // TRANSLATORS: buy dialog sort type. N_("by amount"), + // TRANSLATORS: buy dialog sort type. N_("by type") }; @@ -72,8 +79,7 @@ public: virtual std::string getElementAt(int i) { if (i >= getNumberOfElements() || i < 0) - return _("???"); - + return "???"; return gettext(SORT_NAME_BUY[i]); } }; @@ -183,6 +189,7 @@ class SortItemTypeFunctor final BuyDialog::DialogList BuyDialog::instances; BuyDialog::BuyDialog(const int npcId) : + // TRANSLATORS: buy dialog name Window(_("Buy"), false, nullptr, "buy.xml"), gcn::ActionListener(), gcn::SelectionListener(), @@ -194,6 +201,7 @@ BuyDialog::BuyDialog(const int npcId) : } BuyDialog::BuyDialog(std::string nick) : + // TRANSLATORS: buy dialog name Window(_("Buy"), false, nullptr, "buy.xml"), gcn::ActionListener(), gcn::SelectionListener(), @@ -226,6 +234,7 @@ void BuyDialog::init() mQuantityLabel = new Label(this, strprintf( "%d / %d", mAmountItems, mMaxItems)); mQuantityLabel->setAlignment(gcn::Graphics::CENTER); + // TRANSLATORS: buy dialog label mMoneyLabel = new Label(this, strprintf( _("Price: %s / Total: %s"), "", "")); @@ -235,6 +244,7 @@ void BuyDialog::init() mAmountField->setSendAlwaysEvents(true); mAmountField->setEnabled(false); + // TRANSLATORS: buy dialog label mAmountLabel = new Label(this, _("Amount:")); mAmountLabel->adjustSize(); @@ -244,8 +254,11 @@ void BuyDialog::init() // TRANSLATORS: This is a narrow symbol used to denote 'decreasing'. // You may change this symbol if your language uses another. mDecreaseButton = new Button(this, _("-"), "dec", this); + // TRANSLATORS: buy dialog button mBuyButton = new Button(this, _("Buy"), "buy", this); + // TRANSLATORS: buy dialog button mQuitButton = new Button(this, _("Quit"), "quit", this); + // TRANSLATORS: buy dialog button mAddMaxButton = new Button(this, _("Max"), "max", this); mDecreaseButton->adjustSize(); @@ -499,6 +512,7 @@ void BuyDialog::updateButtonsAndLabels() // Update quantity and money labels mQuantityLabel->setCaption(strprintf("%d / %d", mAmountItems, mMaxItems)); + // TRANSLATORS: buy dialog label mMoneyLabel->setCaption(strprintf(_("Price: %s / Total: %s"), Units::formatCurrency(price).c_str(), Units::formatCurrency(mMoney - price).c_str())); diff --git a/src/gui/buyselldialog.cpp b/src/gui/buyselldialog.cpp index ae031fffe..32e762c1d 100644 --- a/src/gui/buyselldialog.cpp +++ b/src/gui/buyselldialog.cpp @@ -35,6 +35,7 @@ BuySellDialog::DialogList BuySellDialog::dialogInstances; BuySellDialog::BuySellDialog(const int npcId) : + // TRANSLATORS: shop window name Window(_("Shop"), false, nullptr, "buysell.xml"), gcn::ActionListener(), mNpcId(npcId), @@ -45,6 +46,7 @@ BuySellDialog::BuySellDialog(const int npcId) : } BuySellDialog::BuySellDialog(std::string nick) : + // TRANSLATORS: shop window name Window(_("Shop"), false, nullptr, "buysell.xml"), gcn::ActionListener(), mNpcId(-1), @@ -61,7 +63,13 @@ void BuySellDialog::init() static const char *buttonNames[] = { - N_("Buy"), N_("Sell"), N_("Cancel"), nullptr + // TRANSLATORS: shop window button + N_("Buy"), + // TRANSLATORS: shop window button + N_("Sell"), + // TRANSLATORS: shop window button + N_("Cancel"), + nullptr }; const int buttonPadding = getOption("buttonpadding", 10); int x = buttonPadding; diff --git a/src/gui/changeemaildialog.cpp b/src/gui/changeemaildialog.cpp index 7e23b7918..3840dece3 100644 --- a/src/gui/changeemaildialog.cpp +++ b/src/gui/changeemaildialog.cpp @@ -43,19 +43,24 @@ #include "debug.h" ChangeEmailDialog::ChangeEmailDialog(LoginData *const data): + // TRANSLATORS: change email dialog header Window(_("Change Email Address"), true, nullptr, "changeemail.xml"), gcn::ActionListener(), mFirstEmailField(new TextField(this)), mSecondEmailField(new TextField(this)), + // TRANSLATORS: button in change email dialog mChangeEmailButton(new Button(this, _("Change Email Address"), "change_email", this)), + // TRANSLATORS: button in change email dialog mCancelButton(new Button(this, _("Cancel"), "cancel", this)), mWrongDataNoticeListener(new WrongDataNoticeListener), mLoginData(data) { + // TRANSLATORS: label in change email dialog Label *const accountLabel = new Label(this, strprintf(_("Account: %s"), mLoginData->username.c_str())); Label *const newEmailLabel = new Label(this, + // TRANSLATORS: label in change email dialog _("Type new email address twice:")); const int width = 200; @@ -131,6 +136,7 @@ void ChangeEmailDialog::action(const gcn::ActionEvent &event) if (newFirstEmail.length() < min) { // First email address too short + // TRANSLATORS: change email error errorMsg << strprintf(_("The new email address needs to be at " "least %u characters long."), min); error = 1; @@ -138,6 +144,7 @@ void ChangeEmailDialog::action(const gcn::ActionEvent &event) else if (newFirstEmail.length() > max - 1 ) { // First email address too long + // TRANSLATORS: change email error errorMsg << strprintf(_("The new email address needs to be " "less than %u characters long."), max); error = 1; @@ -145,6 +152,7 @@ void ChangeEmailDialog::action(const gcn::ActionEvent &event) else if (newFirstEmail != newSecondEmail) { // Second Pass mismatch + // TRANSLATORS: change email error errorMsg << _("The email address entries mismatch."); error = 2; } @@ -156,6 +164,7 @@ void ChangeEmailDialog::action(const gcn::ActionEvent &event) else if (error == 2) mWrongDataNoticeListener->setTarget(this->mSecondEmailField); + // TRANSLATORS: change email error header OkDialog *const dlg = new OkDialog(_("Error"), errorMsg.str(), DIALOG_ERROR); dlg->addActionListener(mWrongDataNoticeListener); diff --git a/src/gui/changepassworddialog.cpp b/src/gui/changepassworddialog.cpp index bf1ebc984..84b21da8b 100644 --- a/src/gui/changepassworddialog.cpp +++ b/src/gui/changepassworddialog.cpp @@ -44,23 +44,29 @@ #include "debug.h" ChangePasswordDialog::ChangePasswordDialog(LoginData *const data): + // TRANSLATORS: change password window name Window(_("Change Password"), true, nullptr, "changepassword.xml"), gcn::ActionListener(), mOldPassField(new PasswordField(this)), mFirstPassField(new PasswordField(this)), mSecondPassField(new PasswordField(this)), + // TRANSLATORS: change password dialog button mChangePassButton(new Button(this, _("Change Password"), "change_password", this)), + // TRANSLATORS: change password dialog button mCancelButton(new Button(this, _("Cancel"), "cancel", this)), mWrongDataNoticeListener(new WrongDataNoticeListener), mLoginData(data) { Label *const accountLabel = new Label(this, + // TRANSLATORS: change password dialog label strprintf(_("Account: %s"), mLoginData->username.c_str())); place(0, 0, accountLabel, 3); + // TRANSLATORS: change password dialog label place(0, 1, new Label(this, _("Password:")), 3); place(0, 2, mOldPassField, 3).setPadding(1); + // TRANSLATORS: change password dialog label place(0, 3, new Label(this, _("Type new password twice:")), 3); place(0, 4, mFirstPassField, 3).setPadding(1); place(0, 5, mSecondPassField, 3).setPadding(1); @@ -111,12 +117,14 @@ void ChangePasswordDialog::action(const gcn::ActionEvent &event) if (oldPassword.empty()) { // No old password + // TRANSLATORS: change password error errorMsg << _("Enter the old password first."); error = 1; } else if (newFirstPass.length() < min) { // First password too short + // TRANSLATORS: change password error errorMsg << strprintf(_("The new password needs to be at least" " %u characters long."), min); error = 2; @@ -124,6 +132,7 @@ void ChangePasswordDialog::action(const gcn::ActionEvent &event) else if (newFirstPass.length() > max - 1 ) { // First password too long + // TRANSLATORS: change password error errorMsg << strprintf(_("The new password needs to be less " "than %u characters long."), max); error = 2; @@ -131,6 +140,7 @@ void ChangePasswordDialog::action(const gcn::ActionEvent &event) else if (newFirstPass != newSecondPass) { // Second Pass mismatch + // TRANSLATORS: change password error errorMsg << _("The new password entries mismatch."); error = 3; } @@ -144,6 +154,7 @@ void ChangePasswordDialog::action(const gcn::ActionEvent &event) else if (error == 3) mWrongDataNoticeListener->setTarget(this->mSecondPassField); + // TRANSLATORS: change password error header OkDialog *const dlg = new OkDialog(_("Error"), errorMsg.str(), DIALOG_ERROR); dlg->addActionListener(mWrongDataNoticeListener); diff --git a/src/gui/charcreatedialog.cpp b/src/gui/charcreatedialog.cpp index b8134313e..bbfd08939 100644 --- a/src/gui/charcreatedialog.cpp +++ b/src/gui/charcreatedialog.cpp @@ -66,41 +66,57 @@ static const uint8_t directions[] = CharCreateDialog::CharCreateDialog(CharSelectDialog *const parent, const int slot) : + // TRANSLATORS: char create dialog name Window(_("New Character"), true, parent, "charcreate.xml"), gcn::ActionListener(), gcn::KeyListener(), mCharSelectDialog(parent), mNameField(new TextField(this, "")), + // TRANSLATORS: char create dialog label mNameLabel(new Label(this, _("Name:"))), // TRANSLATORS: This is a narrow symbol used to denote 'next'. // You may change this symbol if your language uses another. + // TRANSLATORS: char create dialog button mNextHairColorButton(new Button(this, _(">"), "nextcolor", this)), // TRANSLATORS: This is a narrow symbol used to denote 'previous'. // You may change this symbol if your language uses another. + // TRANSLATORS: char create dialog button mPrevHairColorButton(new Button(this, _("<"), "prevcolor", this)), + // TRANSLATORS: char create dialog label mHairColorLabel(new Label(this, _("Hair color:"))), mHairColorNameLabel(new Label(this, "")), + // TRANSLATORS: char create dialog button mNextHairStyleButton(new Button(this, _(">"), "nextstyle", this)), + // TRANSLATORS: char create dialog button mPrevHairStyleButton(new Button(this, _("<"), "prevstyle", this)), + // TRANSLATORS: char create dialog label mHairStyleLabel(new Label(this, _("Hair style:"))), mHairStyleNameLabel(new Label(this, "")), mNextRaceButton(nullptr), mPrevRaceButton(nullptr), mRaceLabel(nullptr), mRaceNameLabel(nullptr), + // TRANSLATORS: char create dialog button mActionButton(new Button(this, _("^"), "action", this)), + // TRANSLATORS: char create dialog button mRotateButton(new Button(this, _(">"), "rotate", this)), + // TRANSLATORS: char create dialog button mMale(new RadioButton(this, _("Male"), "gender")), + // TRANSLATORS: char create dialog button mFemale(new RadioButton(this, _("Female"), "gender")), + // TRANSLATORS: char create dialog button mOther(new RadioButton(this, _("Other"), "gender")), mAttributeSlider(), mAttributeLabel(), mAttributeValue(), mAttributesLeft(new Label(this, + // TRANSLATORS: char create dialog label strprintf(_("Please distribute %d points"), 99))), mMaxPoints(0), mUsedPoints(0), + // TRANSLATORS: char create dialog button mCreateButton(new Button(this, _("Create"), "create", this)), + // TRANSLATORS: char create dialog button mCancelButton(new Button(this, _("Cancel"), "cancel", this)), mRace(0), mPlayer(new Being(0, ActorSprite::PLAYER, static_cast(mRace), @@ -143,8 +159,11 @@ CharCreateDialog::CharCreateDialog(CharSelectDialog *const parent, if (serverVersion >= 2) { + // TRANSLATORS: char create dialog button mNextRaceButton = new Button(this, _(">"), "nextrace", this); + // TRANSLATORS: char create dialog button mPrevRaceButton = new Button(this, _("<"), "prevrace", this); + // TRANSLATORS: char create dialog label mRaceLabel = new Label(this, _("Race:")); mRaceNameLabel = new Label(this, ""); } @@ -293,7 +312,9 @@ void CharCreateDialog::action(const gcn::ActionEvent &event) } else { + // TRANSLATORS: char creation error new OkDialog(_("Error"), + // TRANSLATORS: char creation error _("Your name needs to be at least 4 characters."), DIALOG_ERROR, true, this); } @@ -380,6 +401,7 @@ void CharCreateDialog::updateSliders() const int pointsLeft = mMaxPoints - getDistributedPoints(); if (pointsLeft == 0) { + // TRANSLATORS: char create dialog label mAttributesLeft->setCaption(_("Character stats OK")); mCreateButton->setEnabled(true); } @@ -389,12 +411,14 @@ void CharCreateDialog::updateSliders() if (pointsLeft > 0) { mAttributesLeft->setCaption( - strprintf(_("Please distribute %d points"), pointsLeft)); + // TRANSLATORS: char create dialog label + strprintf(_("Please distribute %d points"), pointsLeft)); } else { mAttributesLeft->setCaption( - strprintf(_("Please remove %d points"), -pointsLeft)); + // TRANSLATORS: char create dialog label + strprintf(_("Please remove %d points"), -pointsLeft)); } } diff --git a/src/gui/charselectdialog.cpp b/src/gui/charselectdialog.cpp index 4afe7ae38..63f1524c8 100644 --- a/src/gui/charselectdialog.cpp +++ b/src/gui/charselectdialog.cpp @@ -56,7 +56,9 @@ class CharDeleteConfirm final : public ConfirmDialog { public: CharDeleteConfirm(CharSelectDialog *const m, const int index) : + // TRANSLATORS: char deletion message ConfirmDialog(_("Confirm Character Delete"), + // TRANSLATORS: char deletion message _("Are you sure you want to delete this character?"), false, false, m), mMaster(m), @@ -80,6 +82,7 @@ class CharDeleteConfirm final : public ConfirmDialog }; CharSelectDialog::CharSelectDialog(LoginData *const data): + // TRANSLATORS: char select dialog name Window(strprintf(_("Account %s (last login time %s)"), data->username.c_str(), data->lastLogin.c_str()), false, nullptr, "char.xml"), @@ -87,13 +90,18 @@ CharSelectDialog::CharSelectDialog(LoginData *const data): gcn::KeyListener(), mLocked(false), mLoginData(data), + // TRANSLATORS: char select dialog. button. mSwitchLoginButton(new Button(this, _("Switch Login"), "switch", this)), + // TRANSLATORS: char select dialog. button. mChangePasswordButton(new Button(this, _("Change Password"), "change_password", this)), mUnregisterButton(nullptr), mChangeEmailButton(nullptr), + // TRANSLATORS: char select dialog. button. mPlayButton(new Button(this, _("Play"), "use", this)), + // TRANSLATORS: char select dialog. button. mInfoButton(new Button(this, _("Info"), "info", this)), + // TRANSLATORS: char select dialog. button. mDeleteButton(new Button(this, _("Delete"), "delete", this)), mCharacterView(nullptr), mCharacterEntries(0), @@ -117,6 +125,7 @@ CharSelectDialog::CharSelectDialog(LoginData *const data): int n = 1; if (optionalActions & Net::LoginHandler::Unregister) { + // TRANSLATORS: char select dialog. button. mUnregisterButton = new Button(this, _("Unregister"), "unregister", this); placer(n, 0, mUnregisterButton); @@ -128,6 +137,7 @@ CharSelectDialog::CharSelectDialog(LoginData *const data): if (optionalActions & Net::LoginHandler::ChangeEmail) { + // TRANSLATORS: char select dialog. button. mChangeEmailButton = new Button(this, _("Change Email"), "change_email", this); placer(n, 0, mChangeEmailButton); @@ -158,6 +168,7 @@ CharSelectDialog::CharSelectDialog(LoginData *const data): } else { + // TRANSLATORS: char select dialog name setCaption(strprintf(_("Account %s"), mLoginData->username.c_str())); mCharacterView = new CharacterViewSmall( this, &mCharacterEntries, mPadding); @@ -231,6 +242,7 @@ void CharSelectDialog::action(const gcn::ActionEvent &event) return; const std::string msg = strprintf( + // TRANSLATORS: char select dialog. player info message. _("Hp: %u/%u\nMp: %u/%u\nLevel: %u\n" "Experience: %u\nMoney: %s"), character->data.mAttributes[PlayerInfo::HP], @@ -272,6 +284,7 @@ void CharSelectDialog::action(const gcn::ActionEvent &event) } else { + // TRANSLATORS: error message new OkDialog(_("Error"), _("Incorrect password"), DIALOG_ERROR); } mDeleteIndex = -1; @@ -400,6 +413,7 @@ void CharSelectDialog::askPasswordForDeletion(const int index) { mDeleteIndex = index; mDeleteDialog = new TextDialog( + // TRANSLATORS: char deletion question. _("Enter password for deleting character"), _("Enter password:"), this, true); mDeleteDialog->setActionEventId("try delete character"); @@ -546,7 +560,13 @@ void CharSelectDialog::updateState() mPlayButton->setEnabled(true); if (mCharacterEntries[idx]->getCharacter()) + { + // TRANSLATORS: char select dialog. button. mPlayButton->setCaption(_("Play")); + } else + { + // TRANSLATORS: char select dialog. button. mPlayButton->setCaption(_("Create")); + } } diff --git a/src/gui/chatwindow.cpp b/src/gui/chatwindow.cpp index cde943c68..1213eb030 100644 --- a/src/gui/chatwindow.cpp +++ b/src/gui/chatwindow.cpp @@ -136,19 +136,33 @@ class ChatInput final : public TextField, public gcn::FocusListener const char *COLOR_NAME[14] = { + // TRANSLATORS: chat color N_("default"), + // TRANSLATORS: chat color N_("black"), + // TRANSLATORS: chat color N_("red"), + // TRANSLATORS: chat color N_("green"), + // TRANSLATORS: chat color N_("blue"), + // TRANSLATORS: chat color N_("gold"), + // TRANSLATORS: chat color N_("yellow"), + // TRANSLATORS: chat color N_("pink"), + // TRANSLATORS: chat color N_("purple"), + // TRANSLATORS: chat color N_("grey"), + // TRANSLATORS: chat color N_("brown"), + // TRANSLATORS: chat color N_("rainbow 1"), + // TRANSLATORS: chat color N_("rainbow 2"), + // TRANSLATORS: chat color N_("rainbow 3"), }; @@ -167,8 +181,7 @@ public: virtual std::string getElementAt(int i) { if (i >= getNumberOfElements() || i < 0) - return _("???"); - + return "???"; return gettext(COLOR_NAME[i]); } }; @@ -176,6 +189,7 @@ public: static const char *const ACTION_COLOR_PICKER = "color picker"; ChatWindow::ChatWindow(): + // TRANSLATORS: chat window name Window(_("Chat"), false, nullptr, "chat.xml"), gcn::ActionListener(), gcn::KeyListener(), @@ -717,6 +731,7 @@ void ChatWindow::doPresent() const } } + // TRANSLATORS: chat message std::string log = strprintf(_("Present: %s; %d players are present."), response.c_str(), playercount); @@ -1146,6 +1161,7 @@ void ChatWindow::addWhisper(const std::string &nick, { Net::getChatHandler()->privateMessage(nick, mes); + // TRANSLATORS: chat message localChatTab->chatLog(strprintf(_("Whispering to %s: %s"), nick.c_str(), mes.c_str()), BY_PLAYER); } diff --git a/src/gui/confirmdialog.cpp b/src/gui/confirmdialog.cpp index 66d7d1375..1351cd89c 100644 --- a/src/gui/confirmdialog.cpp +++ b/src/gui/confirmdialog.cpp @@ -46,12 +46,17 @@ ConfirmDialog::ConfirmDialog(const std::string &title, const std::string &msg, mTextBox->setOpaque(false); mTextBox->setTextWrapped(msg, 260); + // TRANSLATORS: confirm dialog button Button *const yesButton = new Button(this, _("Yes"), "yes", this); + // TRANSLATORS: confirm dialog button Button *const noButton = new Button(this, _("No"), "no", this); Button *ignoreButton = nullptr; if (ignore) + { + // TRANSLATORS: confirm dialog button ignoreButton = new Button(this, _("Ignore"), "ignore", this); + } const int numRows = mTextBox->getNumberOfRows(); int inWidth = yesButton->getWidth() + noButton->getWidth() + diff --git a/src/gui/connectiondialog.cpp b/src/gui/connectiondialog.cpp index 94a055de5..e5406441b 100644 --- a/src/gui/connectiondialog.cpp +++ b/src/gui/connectiondialog.cpp @@ -44,6 +44,7 @@ ConnectionDialog::ConnectionDialog(const std::string &text, ProgressIndicator *const progressIndicator = new ProgressIndicator; Label *const label = new Label(this, text); Button *const cancelButton = new Button( + // TRANSLATORS: connection dialog button this, _("Cancel"), "cancelButton", this); place(0, 0, progressIndicator); diff --git a/src/gui/debugwindow.cpp b/src/gui/debugwindow.cpp index 2c9c40758..a2f970476 100644 --- a/src/gui/debugwindow.cpp +++ b/src/gui/debugwindow.cpp @@ -47,6 +47,7 @@ #include "debug.h" DebugWindow::DebugWindow(): + // TRANSLATORS: debug window name Window(_("Debug"), false, nullptr, "debug.xml"), mTabs(new TabbedArea(this)), mMapWidget(new MapDebugTab(this)), @@ -64,8 +65,11 @@ DebugWindow::DebugWindow(): setDefaultSize(400, 300, ImageRect::CENTER); + // TRANSLATORS: debug window tab mTabs->addTab(std::string(_("Map")), mMapWidget); + // TRANSLATORS: debug window tab mTabs->addTab(std::string(_("Target")), mTargetWidget); + // TRANSLATORS: debug window tab mTabs->addTab(std::string(_("Net")), mNetWidget); mTabs->setDimension(gcn::Rectangle(0, 0, 600, 300)); @@ -143,23 +147,33 @@ void DebugWindow::widgetResized(const gcn::Event &event) MapDebugTab::MapDebugTab(const Widget2 *const widget) : DebugTab(widget), + // TRANSLATORS: debug window label mMusicFileLabel(new Label(this, strprintf(_("Music:")))), + // TRANSLATORS: debug window label mMapLabel(new Label(this, strprintf(_("Map:")))), + // TRANSLATORS: debug window label mMinimapLabel(new Label(this, strprintf(_("Minimap:")))), mTileMouseLabel(new Label(this, strprintf("%s (%d, %d)", + // TRANSLATORS: debug window label _("Cursor:"), 0, 0))), mParticleCountLabel(new Label(this, strprintf("%s %d", + // TRANSLATORS: debug window label _("Particle count:"), 88888))), mMapActorCountLabel(new Label(this, strprintf("%s %d", + // TRANSLATORS: debug window label _("Map actors count:"), 88888))), + // TRANSLATORS: debug window label mXYLabel(new Label(this, strprintf("%s (?,?)", _("Player Position:")))), mTexturesLabel(nullptr), mUpdateTime(0), #ifdef DEBUG_DRAW_CALLS mDrawCallsLabel(new Label(this, strprintf("%s %s", + // TRANSLATORS: debug window label _("Draw calls:"), "?"))), #endif + // TRANSLATORS: debug window label mFPSLabel(new Label(this, strprintf(_("%d FPS"), 0))), + // TRANSLATORS: debug window label mLPSLabel(new Label(this, strprintf(_("%d LPS"), 0))), mFPSText() { @@ -170,20 +184,25 @@ MapDebugTab::MapDebugTab(const Widget2 *const widget) : switch (imageHelper->useOpenGL()) { case 0: + // TRANSLATORS: debug window label mFPSText = _("%d FPS (Software)"); break; case 1: default: + // TRANSLATORS: debug window label mFPSText = _("%d FPS (fast OpenGL)"); break; case 2: + // TRANSLATORS: debug window label mFPSText = _("%d FPS (old OpenGL)"); break; case 3: + // TRANSLATORS: debug window label mFPSText = _("%d FPS (mobile OpenGL)"); break; }; #else + // TRANSLATORS: debug window label mFPSText = _("%d FPS (Software)"); #endif @@ -202,6 +221,7 @@ MapDebugTab::MapDebugTab(const Widget2 *const widget) : #endif #ifdef DEBUG_OPENGL_LEAKS mTexturesLabel = new Label(this, strprintf("%s %s", + // TRANSLATORS: debug window label _("Textures count:"), "?")); place(0, n, mTexturesLabel, 2); n ++; @@ -219,11 +239,13 @@ void MapDebugTab::logic() { if (player_node) { + // TRANSLATORS: debug window label mXYLabel->setCaption(strprintf("%s (%d, %d)", _("Player Position:"), player_node->getTileX(), player_node->getTileY())); } else { + // TRANSLATORS: debug window label mXYLabel->setCaption(strprintf("%s (?, ?)", _("Player Position:"))); } @@ -236,12 +258,16 @@ void MapDebugTab::logic() const int mouseTileY = (viewport->getMouseY() + viewport->getCameraY()) / map->getTileHeight(); mTileMouseLabel->setCaption(strprintf("%s (%d, %d)", + // TRANSLATORS: debug window label _("Cursor:"), mouseTileX, mouseTileY)); + // TRANSLATORS: debug window label mMusicFileLabel->setCaption(strprintf("%s %s", _("Music:"), map->getProperty("music").c_str())); + // TRANSLATORS: debug window label mMinimapLabel->setCaption(strprintf("%s %s", _("Minimap:"), map->getProperty("minimap").c_str())); + // TRANSLATORS: debug window label mMapLabel->setCaption(strprintf("%s %s", _("Map:"), map->getProperty("_realfilename").c_str())); @@ -249,21 +275,25 @@ void MapDebugTab::logic() if (mUpdateTime != cur_time) { mUpdateTime = cur_time; + // TRANSLATORS: debug window label mParticleCountLabel->setCaption(strprintf(_("Particle count: %d"), - Particle::particleCount)); + Particle::particleCount)); mMapActorCountLabel->setCaption( + // TRANSLATORS: debug window label strprintf("%s %d", _("Map actors count:"), map->getActorsCount())); #ifdef USE_OPENGL #ifdef DEBUG_OPENGL_LEAKS mTexturesLabel->setCaption(strprintf("%s %d", + // TRANSLATORS: debug window label _("Textures count:"), textures_count)); #endif #ifdef DEBUG_DRAW_CALLS if (mainGraphics) { mDrawCallsLabel->setCaption(strprintf("%s %d", + // TRANSLATORS: debug window label _("Draw calls:"), mainGraphics->getDrawCalls())); } #endif @@ -272,13 +302,17 @@ void MapDebugTab::logic() } else { + // TRANSLATORS: debug window label mTileMouseLabel->setCaption(strprintf("%s (?, ?)", _("Cursor:"))); - + // TRANSLATORS: debug window label mMusicFileLabel->setCaption(strprintf("%s ?", _("Music:"))); + // TRANSLATORS: debug window label mMinimapLabel->setCaption(strprintf("%s ?", _("Minimap:"))); + // TRANSLATORS: debug window label mMapLabel->setCaption(strprintf("%s ?", _("Map:"))); mMapActorCountLabel->setCaption( + // TRANSLATORS: debug window label strprintf("%s ?", _("Map actors count:"))); } @@ -286,22 +320,34 @@ void MapDebugTab::logic() mParticleCountLabel->adjustSize(); mFPSLabel->setCaption(strprintf(mFPSText.c_str(), fps)); + // TRANSLATORS: debug window label mLPSLabel->setCaption(strprintf(_("%d LPS"), lps)); } TargetDebugTab::TargetDebugTab(const Widget2 *const widget) : DebugTab(widget), + // TRANSLATORS: debug window label mTargetLabel(new Label(this, strprintf("%s ?", _("Target:")))), + // TRANSLATORS: debug window label mTargetIdLabel(new Label(this, strprintf("%s ? ", _("Target Id:")))), mTargetTypeLabel(new Label(this, strprintf( + // TRANSLATORS: debug window label "%s ? ", _("Target type:")))), + // TRANSLATORS: debug window label mTargetLevelLabel(new Label(this, strprintf("%s ?", _("Target level:")))), + // TRANSLATORS: debug window label mTargetRaceLabel(new Label(this, strprintf("%s ?", _("Target race:")))), + // TRANSLATORS: debug window label mTargetPartyLabel(new Label(this, strprintf("%s ?", _("Target party:")))), + // TRANSLATORS: debug window label mTargetGuildLabel(new Label(this, strprintf("%s ?", _("Target guild:")))), + // TRANSLATORS: debug window label mAttackDelayLabel(new Label(this, strprintf("%s ?", _("Attack delay:")))), + // TRANSLATORS: debug window label mMinHitLabel(new Label(this, strprintf("%s ?", _("Minimal hit:")))), + // TRANSLATORS: debug window label mMaxHitLabel(new Label(this, strprintf("%s ?", _("Maximum hit:")))), + // TRANSLATORS: debug window label mCriticalHitLabel(new Label(this, strprintf("%s ?", _("Critical hit:")))) { LayoutHelper h(this); @@ -330,64 +376,87 @@ void TargetDebugTab::logic() { const Being *const target = player_node->getTarget(); + // TRANSLATORS: debug window label mTargetLabel->setCaption(strprintf("%s %s (%d, %d)", _("Target:"), target->getName().c_str(), target->getTileX(), target->getTileY())); mTargetIdLabel->setCaption(strprintf("%s %d", + // TRANSLATORS: debug window label _("Target Id:"), target->getId())); mTargetTypeLabel->setCaption(strprintf("%s %d", + // TRANSLATORS: debug window label _("Target type:"), target->getSubType())); if (target->getLevel()) { mTargetLevelLabel->setCaption(strprintf("%s %d", + // TRANSLATORS: debug window label _("Target Level:"), target->getLevel())); } else { mTargetLevelLabel->setCaption(strprintf("%s ?", + // TRANSLATORS: debug window label _("Target Level:"))); } mTargetRaceLabel->setCaption(strprintf("%s %s", + // TRANSLATORS: debug window label _("Target race:"), target->getRaceName().c_str())); + // TRANSLATORS: debug window label mTargetPartyLabel->setCaption(strprintf("%s %s", _("Target Party:"), target->getPartyName().c_str())); + // TRANSLATORS: debug window label mTargetGuildLabel->setCaption(strprintf("%s %s", _("Target Guild:"), target->getGuildName().c_str())); mMinHitLabel->setCaption(strprintf("%s %d", + // TRANSLATORS: debug window label _("Minimal hit:"), target->getMinHit())); mMaxHitLabel->setCaption(strprintf("%s %d", + // TRANSLATORS: debug window label _("Maximum hit:"), target->getMaxHit())); mCriticalHitLabel->setCaption(strprintf("%s %d", + // TRANSLATORS: debug window label _("Critical hit:"), target->getCriticalHit())); const int delay = target->getAttackDelay(); if (delay) { mAttackDelayLabel->setCaption(strprintf("%s %d", + // TRANSLATORS: debug window label _("Attack delay:"), delay)); } else { mAttackDelayLabel->setCaption(strprintf( + // TRANSLATORS: debug window label "%s ?", _("Attack delay:"))); } } else { + // TRANSLATORS: debug window label mTargetLabel->setCaption(strprintf("%s ?", _("Target:"))); + // TRANSLATORS: debug window label mTargetIdLabel->setCaption(strprintf("%s ?", _("Target Id:"))); + // TRANSLATORS: debug window label mTargetTypeLabel->setCaption(strprintf("%s ?", _("Target type:"))); + // TRANSLATORS: debug window label mTargetLevelLabel->setCaption(strprintf("%s ?", _("Target Level:"))); + // TRANSLATORS: debug window label mTargetPartyLabel->setCaption(strprintf("%s ?", _("Target Party:"))); + // TRANSLATORS: debug window label mTargetGuildLabel->setCaption(strprintf("%s ?", _("Target Guild:"))); + // TRANSLATORS: debug window label mAttackDelayLabel->setCaption(strprintf("%s ?", _("Attack delay:"))); + // TRANSLATORS: debug window label mMinHitLabel->setCaption(strprintf("%s ?", _("Minimal hit:"))); + // TRANSLATORS: debug window label mMaxHitLabel->setCaption(strprintf("%s ?", _("Maximum hit:"))); + // TRANSLATORS: debug window label mCriticalHitLabel->setCaption(strprintf("%s ?", _("Critical hit:"))); } @@ -420,10 +489,13 @@ NetDebugTab::NetDebugTab(const Widget2 *const widget) : void NetDebugTab::logic() { + // TRANSLATORS: debug window label mPingLabel->setCaption(strprintf(_("Ping: %s ms"), player_node->getPingTime().c_str())); + // TRANSLATORS: debug window label mInPackets1Label->setCaption(strprintf(_("In: %d bytes/s"), PacketCounters::getInBytes())); + // TRANSLATORS: debug window label mOutPackets1Label->setCaption(strprintf(_("Out: %d bytes/s"), PacketCounters::getOutBytes())); } diff --git a/src/gui/didyouknowwindow.cpp b/src/gui/didyouknowwindow.cpp index 6227afd7f..56aeb6129 100644 --- a/src/gui/didyouknowwindow.cpp +++ b/src/gui/didyouknowwindow.cpp @@ -47,14 +47,18 @@ static const int minTip = 1; static const int maxTip = 18; -DidYouKnowWindow::DidYouKnowWindow(): +DidYouKnowWindow::DidYouKnowWindow() : + // TRANSLATORS: did you know window name Window(_("Did You Know?"), false, nullptr, "didyouknow.xml"), gcn::ActionListener(), mBrowserBox(new BrowserBox(this)), mScrollArea(new ScrollArea(mBrowserBox, true, "didyouknow_background.xml")), + // TRANSLATORS: did you know window button mButtonPrev(new Button(this, _("< Previous"), "prev", this)), + // TRANSLATORS: did you know window button mButtonNext(new Button(this, _("Next >"), "next", this)), + // TRANSLATORS: did you know window checkbox mOpenAgainCheckBox(new CheckBox(this, _("Auto open this window"), config.getBoolValue("showDidYouKnow"), this, "openagain")) { @@ -70,6 +74,7 @@ DidYouKnowWindow::DidYouKnowWindow(): setDefaultSize(500, 400, ImageRect::CENTER); mBrowserBox->setOpaque(false); + // TRANSLATORS: did you know window button Button *const okButton = new Button(this, _("Close"), "close", this); mBrowserBox->setLinkHandler(this); diff --git a/src/gui/editdialog.cpp b/src/gui/editdialog.cpp index 30e115f88..91d74214d 100644 --- a/src/gui/editdialog.cpp +++ b/src/gui/editdialog.cpp @@ -41,6 +41,7 @@ EditDialog::EditDialog(const std::string &title, const std::string &msg, mTextField(new TextField(this)) { mTextField->setText(msg); + // TRANSLATORS: edit dialog label Button *const okButton = new Button(this, _("OK"), mEventOk, this); const int numRows = 1; diff --git a/src/gui/editserverdialog.cpp b/src/gui/editserverdialog.cpp index 89ad5e967..34d15c76c 100644 --- a/src/gui/editserverdialog.cpp +++ b/src/gui/editserverdialog.cpp @@ -63,6 +63,7 @@ std::string TypeListModel::getElementAt(int elementIndex) EditServerDialog::EditServerDialog(ServerDialog *const parent, ServerInfo server, const int index) : + // TRANSLATORS: edit server dialog name Window(_("Edit Server"), true, parent), gcn::ActionListener(), gcn::KeyListener(), @@ -71,8 +72,11 @@ EditServerDialog::EditServerDialog(ServerDialog *const parent, mNameField(new TextField(this, std::string())), mDescriptionField(new TextField(this, std::string())), mOnlineListUrlField(new TextField(this, std::string())), + // TRANSLATORS: edit server dialog button mConnectButton(new Button(this, _("Connect"), "connect", this)), + // TRANSLATORS: edit server dialog button mOkButton(new Button(this, _("OK"), "addServer", this)), + // TRANSLATORS: edit server dialog button mCancelButton(new Button(this, _("Cancel"), "cancel", this)), mTypeListModel(new TypeListModel), mTypeField(new DropDown(this, mTypeListModel, false, true)), @@ -82,11 +86,17 @@ EditServerDialog::EditServerDialog(ServerDialog *const parent, { setWindowName("EditServerDialog"); + // TRANSLATORS: edit server dialog label Label *const nameLabel = new Label(this, _("Name:")); + // TRANSLATORS: edit server dialog label Label *const serverAdressLabel = new Label(this, _("Address:")); + // TRANSLATORS: edit server dialog label Label *const portLabel = new Label(this, _("Port:")); + // TRANSLATORS: edit server dialog label Label *const typeLabel = new Label(this, _("Server type:")); + // TRANSLATORS: edit server dialog label Label *const descriptionLabel = new Label(this, _("Description:")); + // TRANSLATORS: edit server dialog label Label *const onlineListUrlLabel = new Label(this, _("Online list url:")); mPortField->setNumeric(true); mPortField->setRange(1, 65535); @@ -206,7 +216,9 @@ void EditServerDialog::action(const gcn::ActionEvent &event) if (mServerAddressField->getText().empty() || mPortField->getText().empty()) { + // TRANSLATORS: edit server dialog error header OkDialog *const dlg = new OkDialog(_("Error"), + // TRANSLATORS: edit server dialog error message _("Please at least type both the address and the port " "of the server."), DIALOG_ERROR); dlg->addActionListener(this); diff --git a/src/gui/equipmentwindow.cpp b/src/gui/equipmentwindow.cpp index fe6ba0a3d..964181c10 100644 --- a/src/gui/equipmentwindow.cpp +++ b/src/gui/equipmentwindow.cpp @@ -52,12 +52,14 @@ static const int BOX_COUNT = 13; EquipmentWindow::EquipmentWindow(Equipment *const equipment, Being *const being, const bool foring): + // TRANSLATORS: equipment window name Window(_("Equipment"), false, nullptr, "equipment.xml"), gcn::ActionListener(), mEquipment(equipment), mItemPopup(new ItemPopup), mPlayerBox(new PlayerBox("equipment_playerbox.xml", "equipment_selectedplayerbox.xml")), + // TRANSLATORS: equipment window button mUnequip(new Button(this, _("Unequip"), "unequip", this)), mSelected(-1), mForing(foring), diff --git a/src/gui/helpwindow.cpp b/src/gui/helpwindow.cpp index 1341a7756..6ad12d6c7 100644 --- a/src/gui/helpwindow.cpp +++ b/src/gui/helpwindow.cpp @@ -45,9 +45,11 @@ #include "debug.h" -HelpWindow::HelpWindow(): +HelpWindow::HelpWindow() : + // TRANSLATORS: help window name Window(_("Help"), false, nullptr, "help.xml"), gcn::ActionListener(), + // TRANSLATORS: help window. button. mDYKButton(new Button(this, _("Did you know..."), "DYK", this)), mBrowserBox(new BrowserBox(this)), mScrollArea(new ScrollArea(mBrowserBox, true, "help_background.xml")), diff --git a/src/gui/inventorywindow.cpp b/src/gui/inventorywindow.cpp index fdd3e957a..6ff6506b3 100644 --- a/src/gui/inventorywindow.cpp +++ b/src/gui/inventorywindow.cpp @@ -60,11 +60,17 @@ static const char *SORT_NAME_INVENTORY[6] = { + // TRANSLATORS: inventory sort mode N_("default"), + // TRANSLATORS: inventory sort mode N_("by name"), + // TRANSLATORS: inventory sort mode N_("by id"), + // TRANSLATORS: inventory sort mode N_("by weight"), + // TRANSLATORS: inventory sort mode N_("by amount"), + // TRANSLATORS: inventory sort mode N_("by type") }; @@ -80,7 +86,7 @@ public: virtual std::string getElementAt(int i) { if (i >= getNumberOfElements() || i < 0) - return _("???"); + return "???"; return gettext(SORT_NAME_INVENTORY[i]); } @@ -127,6 +133,7 @@ InventoryWindow::InventoryWindow(Inventory *const inventory): } else { + // TRANSLATORS: inventory window name setCaption(_("Inventory")); setWindowName("Inventory"); } @@ -165,8 +172,11 @@ InventoryWindow::InventoryWindow(Inventory *const inventory): if (isMainInventory()) { + // TRANSLATORS: inventory button std::string equip = _("Equip"); + // TRANSLATORS: inventory button std::string use = _("Use"); + // TRANSLATORS: inventory button std::string unequip = _("Unequip"); std::string longestUseString = getFont()->getWidth(equip) > @@ -179,10 +189,15 @@ InventoryWindow::InventoryWindow(Inventory *const inventory): } mUseButton = new Button(this, longestUseString, "use", this); + // TRANSLATORS: inventory button mDropButton = new Button(this, _("Drop..."), "drop", this); + // TRANSLATORS: inventory button mSplitButton = new Button(this, _("Split"), "split", this); + // TRANSLATORS: inventory button mOutfitButton = new Button(this, _("Outfits"), "outfit", this); + // TRANSLATORS: inventory button mShopButton = new Button(this, _("Shop"), "shop", this); + // TRANSLATORS: inventory button mEquipmentButton = new Button(this, _("Equipment"), "equipment", this); mWeightBar = new ProgressBar(this, 0.0f, 100, 0, Theme::PROG_WEIGHT); @@ -205,8 +220,11 @@ InventoryWindow::InventoryWindow(Inventory *const inventory): } else { + // TRANSLATORS: storage button mStoreButton = new Button(this, _("Store"), "store", this); + // TRANSLATORS: storage button mRetrieveButton = new Button(this, _("Retrieve"), "retrieve", this); + // TRANSLATORS: storage button mInvCloseButton = new Button(this, _("Close"), "close", this); mSlotsBarCell = &place(0, 0, mSlotsBar, 6); @@ -596,12 +614,19 @@ void InventoryWindow::updateButtons(const Item *item) if (item && item->isEquipment()) { if (item->isEquipped()) + { + // TRANSLATORS: inventory button mUseButton->setCaption(_("Unequip")); + } else + { + // TRANSLATORS: inventory button mUseButton->setCaption(_("Equip")); + } } else { + // TRANSLATORS: inventory button mUseButton->setCaption(_("Use")); } } @@ -689,6 +714,7 @@ void InventoryWindow::updateDropButton() if (isStorageActive()) { + // TRANSLATORS: inventory button mDropButton->setCaption(_("Store")); } else @@ -696,9 +722,15 @@ void InventoryWindow::updateDropButton() const Item *const item = mItems->getSelectedItem(); if (item && item->getQuantity() > 1) + { + // TRANSLATORS: inventory button mDropButton->setCaption(_("Drop...")); + } else + { + // TRANSLATORS: inventory button mDropButton->setCaption(_("Drop")); + } } } diff --git a/src/gui/itemamountwindow.cpp b/src/gui/itemamountwindow.cpp index deeca6df5..7f880dcd0 100644 --- a/src/gui/itemamountwindow.cpp +++ b/src/gui/itemamountwindow.cpp @@ -89,8 +89,7 @@ public: virtual std::string getElementAt(int i) { if (i < 0 || i >= getNumberOfElements()) - return _("???"); - + return "???"; return mStrings.at(i); } private: @@ -203,10 +202,15 @@ ItemAmountWindow::ItemAmountWindow(const Usage usage, Window *const parent, // Buttons + // TRANSLATORS: item amount window button Button *const minusAmountButton = new Button(this, _("-"), "dec", this); + // TRANSLATORS: item amount window button Button *const plusAmountButton = new Button(this, _("+"), "inc", this); + // TRANSLATORS: item amount window button Button *const okButton = new Button(this, _("OK"), "ok", this); + // TRANSLATORS: item amount window button Button *const cancelButton = new Button(this, _("Cancel"), "cancel", this); + // TRANSLATORS: item amount window button Button *const addAllButton = new Button(this, _("All"), "all", this); minusAmountButton->adjustSize(); @@ -232,8 +236,10 @@ ItemAmountWindow::ItemAmountWindow(const Usage usage, Window *const parent, if (mUsage == ShopBuyAdd || mUsage == ShopSellAdd) { Button *const minusPriceButton = new Button( + // TRANSLATORS: item amount window button this, _("-"), "decPrice", this); Button *const plusPriceButton = new Button( + // TRANSLATORS: item amount window button this, _("+"), "incPrice", this); minusPriceButton->adjustSize(); minusPriceButton->setWidth(plusPriceButton->getWidth()); @@ -260,27 +266,35 @@ ItemAmountWindow::ItemAmountWindow(const Usage usage, Window *const parent, switch (usage) { case TradeAdd: + // TRANSLATORS: amount window message setCaption(_("Select amount of items to trade.")); break; case ItemDrop: + // TRANSLATORS: amount window message setCaption(_("Select amount of items to drop.")); break; case StoreAdd: + // TRANSLATORS: amount window message setCaption(_("Select amount of items to store.")); break; case StoreRemove: + // TRANSLATORS: amount window message setCaption(_("Select amount of items to retrieve.")); break; case ItemSplit: + // TRANSLATORS: amount window message setCaption(_("Select amount of items to split.")); break; case ShopBuyAdd: + // TRANSLATORS: amount window message setCaption(_("Add to buy shop.")); break; case ShopSellAdd: + // TRANSLATORS: amount window message setCaption(_("Add to sell shop.")); break; default: + // TRANSLATORS: amount window message setCaption(_("Unknown.")); break; } diff --git a/src/gui/itempopup.cpp b/src/gui/itempopup.cpp index 8be374bf9..0c88939e3 100644 --- a/src/gui/itempopup.cpp +++ b/src/gui/itempopup.cpp @@ -166,14 +166,14 @@ void ItemPopup::setItem(const ItemInfo &item, const unsigned char color, if (serverVersion > 0) { - mItemName->setCaption(std::string(item.getName(color)).append( - _(", ")).append(toString(id))); + mItemName->setCaption(strprintf("%s, %d", + item.getName(color).c_str(), id)); mItemDesc->setTextWrapped(item.getDescription(color), 196); } else { - mItemName->setCaption(std::string(item.getName()).append( - _(", ")).append(toString(id))); + mItemName->setCaption(strprintf("%s, %d", + item.getName().c_str(), id)); mItemDesc->setTextWrapped(item.getDescription(), 196); } @@ -182,9 +182,9 @@ void ItemPopup::setItem(const ItemInfo &item, const unsigned char color, mItemName->setPosition(space, 0); mItemEffect->setTextWrapped(item.getEffect(), 196); + // TRANSLATORS: popup label mItemWeight->setTextWrapped(strprintf(_("Weight: %s"), - Units::formatWeight(item.getWeight()).c_str()), - 196); + Units::formatWeight(item.getWeight()).c_str()), 196); int minWidth = mItemName->getWidth() + space; diff --git a/src/gui/killstats.cpp b/src/gui/killstats.cpp index aa34c6ab8..52a548a6a 100644 --- a/src/gui/killstats.cpp +++ b/src/gui/killstats.cpp @@ -38,7 +38,8 @@ #include "debug.h" -KillStats::KillStats(): +KillStats::KillStats() : + // TRANSLATORS: kill stats window name Window(_("Kill stats"), false, nullptr, "killstats.xml"), gcn::ActionListener(), mKillCounter(0), @@ -46,19 +47,26 @@ KillStats::KillStats(): mKillTCounter(0), mExpTCounter(0), mKillTimer(0), + // TRANSLATORS: kill stats window button mResetButton(new Button(this, _("Reset stats"), "reset", this)), + // TRANSLATORS: kill stats window button mTimerButton(new Button(this, _("Reset timer"), "timer", this)), mLine1(nullptr), mLine2(nullptr), mLine3(nullptr), + // TRANSLATORS: kill stats window label mLine4(new Label(this, strprintf(_("Kills: %s, total exp: %s"), "?", "?"))), + // TRANSLATORS: kill stats window label mLine5(new Label(this, strprintf(_("Avg Exp: %s"), "?"))), + // TRANSLATORS: kill stats window label mLine6(new Label(this, strprintf(_("No. of avg mob to next level: %s"), "?"))), + // TRANSLATORS: kill stats window label mLine7(new Label(this, strprintf(_("Kills/Min: %s, Exp/Min: %s"), "?", "?"))), mExpSpeed1Label(new Label(this, strprintf(ngettext( + // TRANSLATORS: kill stats window label "Exp speed per %d min: %s", "Exp speed per %d min: %s", 1), 1, "?"))), mExpTime1Label(new Label(this, strprintf(ngettext( "Time for next level per %d min: %s", @@ -74,8 +82,10 @@ KillStats::KillStats(): mExpTime15Label(new Label(this, strprintf(ngettext( "Time for next level per %d min: %s", "Time for next level per %d min: %s", 15), 15, "?"))), + // TRANSLATORS: kill stats window label mLastKillExpLabel(new Label(this, strprintf("%s ?", _("Last kill exp:")))), mTimeBeforeJackoLabel(new Label(this, strprintf( + // TRANSLATORS: kill stats window label "%s ?", _("Time before jacko spawn:")))), m1minExpTime(0), m1minExpNum(0), @@ -107,13 +117,16 @@ KillStats::KillStats(): if (!xpNextLevel) xpNextLevel = 1; + // TRANSLATORS: kill stats window label mLine1 = new Label(this, strprintf(_("Level: %d at %f%%"), player_node->getLevel(), static_cast(xp) / static_cast(xpNextLevel) * 100.0)); + // TRANSLATORS: kill stats window label mLine2 = new Label(this, strprintf(_("Exp: %d/%d Left: %d"), xp, xpNextLevel, xpNextLevel - xp)); + // TRANSLATORS: kill stats window label mLine3 = new Label(this, strprintf(_("1%% = %d exp, avg mob for 1%%: %s"), xpNextLevel / 100, "?")); @@ -154,9 +167,12 @@ void KillStats::action(const gcn::ActionEvent &event) mExpCounter = 0; mLine3->setCaption(strprintf("1%% = %d exp, avg mob for 1%%: %s", PlayerInfo::getAttribute(PlayerInfo::EXP_NEEDED) / 100, "?")); + // TRANSLATORS: kill stats window label mLine4->setCaption(strprintf(_("Kills: %s, total exp: %s"), "?", "?")); + // TRANSLATORS: kill stats window label mLine5->setCaption(strprintf(_("Avg Exp: %s"), "?")); mLine6->setCaption(strprintf( + // TRANSLATORS: kill stats window label _("No. of avg mob to next level: %s"), "?")); resetTimes(); @@ -167,6 +183,7 @@ void KillStats::action(const gcn::ActionEvent &event) mKillTCounter = 0; mExpTCounter = 0; mLine7->setCaption(strprintf( + // TRANSLATORS: kill stats window label _("Kills/Min: %s, Exp/Min: %s"), "?", "?")); resetTimes(); @@ -217,43 +234,54 @@ void KillStats::gainXp(int xp) timeDiff = 1; const int exp = PlayerInfo::getAttribute(PlayerInfo::EXP); + // TRANSLATORS: kill stats window label mLine1->setCaption(strprintf(_("Level: %d at %f%%"), player_node->getLevel(), static_cast(exp) / static_cast(xpNextLevel) * 100.0)); + // TRANSLATORS: kill stats window label mLine2->setCaption(strprintf(_("Exp: %d/%d Left: %d"), exp, xpNextLevel, xpNextLevel - exp)); if (AvgExp >= 0.001f && AvgExp <= 0.001f) { + // TRANSLATORS: kill stats window label mLine3->setCaption(strprintf(_("1%% = %d exp, avg mob for 1%%: %s"), xpNextLevel / 100, "?")); + // TRANSLATORS: kill stats window label mLine5->setCaption(strprintf(_("Avg Exp: %s"), toString(AvgExp).c_str())); mLine6->setCaption(strprintf( + // TRANSLATORS: kill stats window label _("No. of avg mob to next level: %s"), "?")); } else { + // TRANSLATORS: kill stats window label mLine3->setCaption(strprintf(_("1%% = %d exp, avg mob for 1%%: %s"), xpNextLevel / 100, toString((static_cast( xpNextLevel) / 100) / AvgExp).c_str())); + // TRANSLATORS: kill stats window label mLine5->setCaption(strprintf(_("Avg Exp: %s"), toString(AvgExp).c_str())); + // TRANSLATORS: kill stats window label mLine6->setCaption(strprintf(_("No. of avg mob to next level: %s"), toString(static_cast(xpNextLevel - exp) / AvgExp).c_str())); } + // TRANSLATORS: kill stats window label mLine4->setCaption(strprintf(_("Kills: %s, total exp: %s"), toString(mKillCounter).c_str(), toString(mExpCounter).c_str())); + // TRANSLATORS: kill stats window label mLine7->setCaption(strprintf(_("Kills/Min: %s, Exp/Min: %s"), toString(mKillTCounter / timeDiff).c_str(), toString(mExpTCounter / timeDiff).c_str())); + // TRANSLATORS: kill stats window label mLastKillExpLabel->setCaption(strprintf("%s %d", _("Last kill exp:"), xp)); recalcStats(); @@ -311,6 +339,7 @@ void KillStats::update() if (m1minSpeed != 0) { + // TRANSLATORS: kill stats window label mExpTime1Label->setCaption(strprintf(_(" Time for next level: %s"), toString(static_cast((PlayerInfo::getAttribute( PlayerInfo::EXP_NEEDED) - PlayerInfo::getAttribute( @@ -319,6 +348,7 @@ void KillStats::update() else { mExpTime1Label->setCaption(strprintf( + // TRANSLATORS: kill stats window label _(" Time for next level: %s"), "?")); } mExpTime1Label->adjustSize(); @@ -329,6 +359,7 @@ void KillStats::update() if (m5minSpeed != 0) { + // TRANSLATORS: kill stats window label mExpTime5Label->setCaption(strprintf(_(" Time for next level: %s"), toString(static_cast((PlayerInfo::getAttribute( PlayerInfo::EXP_NEEDED) - PlayerInfo::getAttribute( @@ -337,6 +368,7 @@ void KillStats::update() else { mExpTime5Label->setCaption(strprintf( + // TRANSLATORS: kill stats window label _(" Time for next level: %s"), "?")); } mExpTime5Label->adjustSize(); @@ -349,6 +381,7 @@ void KillStats::update() if (m15minSpeed != 0) { + // TRANSLATORS: kill stats window label mExpTime15Label->setCaption(strprintf(_(" Time for next level: %s"), toString(static_cast((PlayerInfo::getAttribute( PlayerInfo::EXP_NEEDED) - PlayerInfo::getAttribute( @@ -357,6 +390,7 @@ void KillStats::update() else { mExpTime15Label->setCaption(strprintf( + // TRANSLATORS: kill stats window label _(" Time for next level: %s"), "?")); } @@ -376,23 +410,27 @@ void KillStats::updateJackoLabel() if (mIsJackoAlive) { mTimeBeforeJackoLabel->setCaption(strprintf("%s jacko alive", + // TRANSLATORS: kill stats window label _("Time before jacko spawn:"))); } else if (mIsJackoSpawnTimeUnknown && mJackoSpawnTime != 0) { - // TRANSLATORS: Example: Time before jacko spawn: 10? + // TRANSLATORS: kill stats window label mTimeBeforeJackoLabel->setCaption(strprintf( + // TRANSLATORS: kill stats window label _("%s %d?"), _("Time before jacko spawn:"), mJackoSpawnTime - cur_time)); } else if (mIsJackoMustSpawn) { mTimeBeforeJackoLabel->setCaption(strprintf("%s %s", + // TRANSLATORS: kill stats window label _("Time before jacko spawn:"), _("jacko spawning"))); } else { mTimeBeforeJackoLabel->setCaption(strprintf("%s %d", + // TRANSLATORS: kill stats window label _("Time before jacko spawn:"), mJackoSpawnTime - cur_time)); } } @@ -473,12 +511,16 @@ void KillStats::processEvent(Channels channel A_UNUSED, mExpTCounter = 0; mLine3->setCaption(strprintf("1%% = %d exp, avg mob for 1%%: %s", PlayerInfo::getAttribute(PlayerInfo::EXP_NEEDED) / 100, "?")); - mLine4->setCaption(strprintf(_( - "Kills: %s, total exp: %s"), "?", "?")); + mLine4->setCaption(strprintf( + // TRANSLATORS: kill stats window label + _("Kills: %s, total exp: %s"), "?", "?")); + // TRANSLATORS: kill stats window label mLine5->setCaption(strprintf(_("Avg Exp: %s"), "?")); mLine6->setCaption(strprintf( + // TRANSLATORS: kill stats window label _("No. of avg mob to next level: %s"), "?")); mLine7->setCaption(strprintf( + // TRANSLATORS: kill stats window label _("Kills/Min: %s, Exp/Min: %s"), "?", "?")); resetTimes(); diff --git a/src/gui/logindialog.cpp b/src/gui/logindialog.cpp index baecf5f27..61a31af61 100644 --- a/src/gui/logindialog.cpp +++ b/src/gui/logindialog.cpp @@ -72,8 +72,11 @@ struct OpenUrlListener : public gcn::ActionListener const char *UPDATE_TYPE_TEXT[3] = { + // TRANSLATORS: update type N_("Normal"), + // TRANSLATORS: update type N_("Auto Close"), + // TRANSLATORS: update type N_("Skip"), }; @@ -96,8 +99,7 @@ class UpdateTypeModel final : public gcn::ListModel virtual std::string getElementAt(int i) { if (i >= getNumberOfElements() || i < 0) - return _("???"); - + return "???"; return gettext(UPDATE_TYPE_TEXT[i]); } }; @@ -126,31 +128,38 @@ class UpdateListModel final : public gcn::ListModel virtual std::string getElementAt(int i) { if (!mLoginData || i >= getNumberOfElements() || i < 0) - return _("???"); - + return "???"; return mLoginData->updateHosts[i]; } + protected: LoginData *mLoginData; }; LoginDialog::LoginDialog(LoginData *const data, std::string serverName, std::string *const updateHost): + // TRANSLATORS: login dialog name Window(_("Login"), false, nullptr, "login.xml"), gcn::ActionListener(), gcn::KeyListener(), mLoginData(data), mUserField(new TextField(this, mLoginData->username)), mPassField(new PasswordField(this, mLoginData->password)), + // TRANSLATORS: login dialog label mKeepCheck(new CheckBox(this, _("Remember username"), mLoginData->remember)), + // TRANSLATORS: login dialog label mUpdateTypeLabel(new Label(this, _("Update:"))), mUpdateHostLabel(nullptr), mUpdateTypeModel(new UpdateTypeModel), mUpdateTypeDropDown(new DropDown(this, mUpdateTypeModel)), + // TRANSLATORS: login dialog button mServerButton(new Button(this, _("Change Server"), "server", this)), + // TRANSLATORS: login dialog button mLoginButton(new Button(this, _("Login"), "login", this)), + // TRANSLATORS: login dialog button mRegisterButton(new Button(this, _("Register"), "register", this)), + // TRANSLATORS: login dialog checkbox mCustomUpdateHost(new CheckBox(this, _("Custom update host"), mLoginData->updateType & LoginData::Upd_Custom, this, "customhost")), mUpdateHostText(new TextField(this, serverConfig.getValue( @@ -164,13 +173,17 @@ LoginDialog::LoginDialog(LoginData *const data, std::string serverName, Net::getCharServerHandler()->clear(); + // TRANSLATORS: login dialog label Label *const serverLabel1 = new Label(this, _("Server:")); Label *const serverLabel2 = new Label(this, serverName); serverLabel2->adjustSize(); + // TRANSLATORS: login dialog label Label *const userLabel = new Label(this, _("Name:")); + // TRANSLATORS: login dialog label Label *const passLabel = new Label(this, _("Password:")); if (mLoginData && mLoginData->updateHosts.size() > 1) { + // TRANSLATORS: login dialog label mUpdateHostLabel = new Label(this, strprintf(_("Update host: %s"), mLoginData->updateHost.c_str())); mUpdateListModel = new UpdateListModel(mLoginData); @@ -280,6 +293,7 @@ void LoginDialog::action(const gcn::ActionEvent &event) { const std::string &url = mLoginData->registerUrl; urlListener.url = url; + // TRANSLATORS: question dialog ConfirmDialog *const confirmDlg = new ConfirmDialog( _("Open register url"), url, false, true); confirmDlg->addActionListener(&urlListener); diff --git a/src/gui/minimap.cpp b/src/gui/minimap.cpp index 6c7a32a71..80611f25b 100644 --- a/src/gui/minimap.cpp +++ b/src/gui/minimap.cpp @@ -44,7 +44,8 @@ bool Minimap::mShow = true; -Minimap::Minimap(): +Minimap::Minimap() : + // TRANSLATORS: mini map window name Window(_("Map"), false, nullptr, "map.xml"), mMapImage(nullptr), mWidthProportion(0.5), @@ -103,7 +104,10 @@ void Minimap::setMap(const Map *const map) caption = map->getName(); if (caption.empty()) + { + // TRANSLATORS: mini map window name caption = _("Map"); + } setCaption(caption); diff --git a/src/gui/ministatuswindow.cpp b/src/gui/ministatuswindow.cpp index ad5890056..9a06ac259 100644 --- a/src/gui/ministatuswindow.cpp +++ b/src/gui/ministatuswindow.cpp @@ -60,24 +60,32 @@ MiniStatusWindow::MiniStatusWindow() : mIconPadding(mSkin ? mSkin->getOption("iconPadding", 3) : 3), mIconSpacing(mSkin ? mSkin->getOption("iconSpacing", 2) : 2), mMaxX(0), + // TRANSLATORS: status bar name mHpBar(createBar(0, 100, 0, Theme::PROG_HP, "hp bar", _("health bar"))), mMpBar(Net::getGameHandler()->canUseMagicBar() - ? createBar(0, 100, 0, Net::getPlayerHandler()->canUseMagic() - ? Theme::PROG_MP : Theme::PROG_NO_MP, "mp bar", _("mana bar")) - : nullptr), + ? createBar(0, 100, 0, Net::getPlayerHandler()->canUseMagic() + // TRANSLATORS: status bar name + ? Theme::PROG_MP : Theme::PROG_NO_MP, "mp bar", _("mana bar")) + : nullptr), mXpBar(createBar(0, 100, 0, Theme::PROG_EXP, - "xp bar", _("experience bar"))), + // TRANSLATORS: status bar name + "xp bar", _("experience bar"))), mJobBar(nullptr), mWeightBar(createBar(0, 140, 0, Theme::PROG_WEIGHT, - "weight bar", _("weight bar"))), + // TRANSLATORS: status bar name + "weight bar", _("weight bar"))), mInvSlotsBar(createBar(0, 45, 0, Theme::PROG_INVY_SLOTS, - "inventory slots bar", _("inventory slots bar"))), + // TRANSLATORS: status bar name + "inventory slots bar", _("inventory slots bar"))), mMoneyBar(createBar(0, 130, 0, Theme::PROG_INVY_SLOTS, - "money bar", _("money bar"))), + // TRANSLATORS: status bar name + "money bar", _("money bar"))), mArrowsBar(createBar(0, 50, 0, Theme::PROG_INVY_SLOTS, - "arrows bar", _("arrows bar"))), + // TRANSLATORS: status bar name + "arrows bar", _("arrows bar"))), mStatusBar(createBar(100, 165, 0, Theme::PROG_EXP, - "status bar", _("status bar"))), + // TRANSLATORS: status bar name + "status bar", _("status bar"))), mTextPopup(new TextPopup), mStatusPopup(new StatusPopup) { @@ -96,7 +104,8 @@ MiniStatusWindow::MiniStatusWindow() : if (job) { mJobBar = createBar(0, 100, 0, Theme::PROG_JOB, "job bar", - _("job bar")); + // TRANSLATORS: status bar name + _("job bar")); StatusWindow::updateJobBar(mJobBar); } @@ -293,12 +302,14 @@ void MiniStatusWindow::mouseMoved(gcn::MouseEvent &event) std::string level; if (player_node && player_node->isGM()) { + // TRANSLATORS: status bar label level = strprintf(_("Level: %d (GM %d)"), PlayerInfo::getAttribute(PlayerInfo::LEVEL), player_node->getGMLevel()); } else { + // TRANSLATORS: status bar label level = strprintf(_("Level: %d"), PlayerInfo::getAttribute(PlayerInfo::LEVEL)); } @@ -315,6 +326,7 @@ void MiniStatusWindow::mouseMoved(gcn::MouseEvent &event) mTextPopup->show(x + getX(), y + getY(), level, strprintf("%d/%d", PlayerInfo::getAttribute(PlayerInfo::EXP), PlayerInfo::getAttribute(PlayerInfo::EXP_NEEDED)), + // TRANSLATORS: status bar label strprintf("%s: %d", _("Need"), PlayerInfo::getAttribute(PlayerInfo::EXP_NEEDED) - PlayerInfo::getAttribute(PlayerInfo::EXP))); @@ -351,6 +363,7 @@ void MiniStatusWindow::mouseMoved(gcn::MouseEvent &event) mTextPopup->show(x + getX(), y + getY(), event.getSource()->getId(), strprintf("%d/%d", exp.first, exp.second), + // TRANSLATORS: status bar label strprintf("%s: %d", _("Need"), exp.second - exp.first)); } mStatusPopup->hide(); diff --git a/src/gui/npcdialog.cpp b/src/gui/npcdialog.cpp index 4b9c27357..86755ad41 100644 --- a/src/gui/npcdialog.cpp +++ b/src/gui/npcdialog.cpp @@ -55,9 +55,13 @@ #include "debug.h" +// TRANSLATORS: npc dialog button #define CAPTION_WAITING _("Stop waiting") +// TRANSLATORS: npc dialog button #define CAPTION_NEXT _("Next") +// TRANSLATORS: npc dialog button #define CAPTION_CLOSE _("Close") +// TRANSLATORS: npc dialog button #define CAPTION_SUBMIT _("Submit") NpcDialog::DialogList NpcDialog::instances; @@ -65,6 +69,7 @@ NpcDialog::DialogList NpcDialog::instances; typedef std::vector::iterator ImageVectorIter; NpcDialog::NpcDialog(const int npcId) : + // TRANSLATORS: npc dialog name Window(_("NPC"), false, nullptr, "npc.xml"), gcn::ActionListener(), mNpcId(npcId), @@ -84,11 +89,16 @@ NpcDialog::NpcDialog(const int npcId) : mItemLinkHandler(new ItemLinkHandler), mTextField(new TextField(this, "")), mIntField(new IntTextField(this)), + // TRANSLATORS: npc dialog button mPlusButton(new Button(this, _("+"), "inc", this)), + // TRANSLATORS: npc dialog button mMinusButton(new Button(this, _("-"), "dec", this)), + // TRANSLATORS: npc dialog button mClearButton(new Button(this, _("Clear"), "clear", this)), mButton(new Button(this, "", "ok", this)), + // TRANSLATORS: npc dialog button mButton2(new Button(this, _("Close"), "close", this)), + // TRANSLATORS: npc dialog button mResetButton(new Button(this, _("Reset"), "reset", this)), mInputState(NPC_INPUT_NONE), mActionState(NPC_ACTION_WAIT), diff --git a/src/gui/npcpostdialog.cpp b/src/gui/npcpostdialog.cpp index bb5ab3528..c76869980 100644 --- a/src/gui/npcpostdialog.cpp +++ b/src/gui/npcpostdialog.cpp @@ -39,6 +39,7 @@ NpcPostDialog::DialogList NpcPostDialog::instances; NpcPostDialog::NpcPostDialog(const int npcId): + // TRANSLATORS: npc post dialog caption Window(_("NPC"), false, nullptr, "npcpost.xml"), gcn::ActionListener(), mNpcId(npcId), @@ -48,15 +49,18 @@ NpcPostDialog::NpcPostDialog(const int npcId): setContentSize(400, 180); // create text field for receiver + // TRANSLATORS: label in npc post dialog Label *const senderText = new Label(this, _("To:")); senderText->setPosition(5, 5); mSender->setPosition(senderText->getWidth() + 5, 5); mSender->setWidth(65); // create button for sending + // TRANSLATORS: button in npc post dialog Button *const sendButton = new Button(this, _("Send"), "send", this); sendButton->setPosition(400 - sendButton->getWidth(), 170 - sendButton->getHeight()); + // TRANSLATORS: button in npc post dialog Button *const cancelButton = new Button(this, _("Cancel"), "cancel", this); cancelButton->setPosition(sendButton->getX() - (cancelButton->getWidth() + 2), sendButton->getY()); @@ -99,6 +103,7 @@ void NpcPostDialog::action(const gcn::ActionEvent &event) { if (localChatTab) { + // TRANSLATORS: npc post message error localChatTab->chatLog(_("Failed to send as sender or letter " "invalid.")); } diff --git a/src/gui/okdialog.cpp b/src/gui/okdialog.cpp index 243805538..6c0856f3b 100644 --- a/src/gui/okdialog.cpp +++ b/src/gui/okdialog.cpp @@ -47,6 +47,7 @@ OkDialog::OkDialog(const std::string &title, const std::string &msg, mTextBox->setOpaque(false); mTextBox->setTextWrapped(msg, minWidth); + // TRANSLATORS: ok dialog button Button *const okButton = new Button(this, _("OK"), "ok", this); int width = getFont()->getWidth(title); diff --git a/src/gui/outfitwindow.cpp b/src/gui/outfitwindow.cpp index f43f1ba54..281355a58 100644 --- a/src/gui/outfitwindow.cpp +++ b/src/gui/outfitwindow.cpp @@ -55,17 +55,25 @@ float OutfitWindow::mAlpha = 1.0; OutfitWindow::OutfitWindow(): + // TRANSLATORS: outfits window name Window(_("Outfits"), false, nullptr, "outfits.xml"), gcn::ActionListener(), + // TRANSLATORS: outfits window button mPreviousButton(new Button(this, _("<"), "previous", this)), + // TRANSLATORS: outfits window button mNextButton(new Button(this, _(">"), "next", this)), + // TRANSLATORS: outfits window button mEquipButtom(new Button(this, _("Equip"), "equip", this)), + // TRANSLATORS: outfits window label mCurrentLabel(new Label(this, strprintf(_("Outfit: %d"), 1))), + // TRANSLATORS: outfits window checkbox mUnequipCheck(new CheckBox(this, _("Unequip first"), serverConfig.getValueBool("OutfitUnequip0", true))), + // TRANSLATORS: outfits window checkbox mAwayOutfitCheck(new CheckBox(this, _("Away outfit"), serverConfig.getValue("OutfitAwayIndex", OUTFITS_COUNT - 1))), mCurrentOutfit(0), + // TRANSLATORS: outfits window label mKeyLabel(new Label(this, strprintf(_("Key: %s"), keyName(mCurrentOutfit).c_str()))), mBoxWidth(33), @@ -542,11 +550,13 @@ void OutfitWindow::previous() void OutfitWindow::showCurrentOutfit() { + // TRANSLATORS: outfits window label mCurrentLabel->setCaption(strprintf(_("Outfit: %d"), mCurrentOutfit + 1)); if (mCurrentOutfit < static_cast(OUTFITS_COUNT)) mUnequipCheck->setSelected(mItemsUnequip[mCurrentOutfit]); else mUnequipCheck->setSelected(false); + // TRANSLATORS: outfits window label mKeyLabel->setCaption(strprintf(_("Key: %s"), keyName(mCurrentOutfit).c_str())); mAwayOutfitCheck->setSelected(mAwayOutfit == mCurrentOutfit); diff --git a/src/gui/popupmenu.cpp b/src/gui/popupmenu.cpp index 0b56b300a..120c32eb1 100644 --- a/src/gui/popupmenu.cpp +++ b/src/gui/popupmenu.cpp @@ -139,12 +139,16 @@ void PopupMenu::showPopup(const int x, const int y, const Being *const being) { case ActorSprite::PLAYER: { + // TRANSLATORS: popup menu item mBrowserBox->addRow("trade", _("Trade")); + // TRANSLATORS: popup menu item mBrowserBox->addRow("attack", _("Attack")); + // TRANSLATORS: popup menu item mBrowserBox->addRow("whisper", _("Whisper")); mBrowserBox->addRow("##3---"); + // TRANSLATORS: popup menu item mBrowserBox->addRow("heal", _("Heal")); mBrowserBox->addRow("##3---"); @@ -164,11 +168,13 @@ void PopupMenu::showPopup(const int x, const int y, const Being *const being) if (guild1->getId() == guild2->getId()) { mBrowserBox->addRow("guild-kick", + // TRANSLATORS: popup menu item _("Kick from guild")); if (guild2->getServerGuild()) { mBrowserBox->addRow(strprintf( "@@guild-pos|%s >@@", + // TRANSLATORS: popup menu item _("Change pos in guild"))); } } @@ -176,11 +182,13 @@ void PopupMenu::showPopup(const int x, const int y, const Being *const being) else if (guild2->getMember(mNick)) { mBrowserBox->addRow("guild-kick", + // TRANSLATORS: popup menu item _("Kick from guild")); if (guild2->getServerGuild()) { mBrowserBox->addRow(strprintf( "@@guild-pos|%s >@@", + // TRANSLATORS: popup menu item _("Change pos in guild"))); } } @@ -189,6 +197,7 @@ void PopupMenu::showPopup(const int x, const int y, const Being *const being) if (guild2->getServerGuild() || (guildManager && guildManager->havePower())) { + // TRANSLATORS: popup menu item mBrowserBox->addRow("guild", _("Invite to guild")); } } @@ -197,9 +206,12 @@ void PopupMenu::showPopup(const int x, const int y, const Being *const being) if (player_node->isGM()) { mBrowserBox->addRow("##3---"); + // TRANSLATORS: popup menu item mBrowserBox->addRow("admin-kick", _("Kick player")); } + // TRANSLATORS: popup menu item mBrowserBox->addRow("nuke", _("Nuke")); + // TRANSLATORS: popup menu item mBrowserBox->addRow("move", _("Move")); addPlayerMisc(); addBuySell(being); @@ -209,22 +221,29 @@ void PopupMenu::showPopup(const int x, const int y, const Being *const being) case ActorSprite::NPC: // NPCs can be talked to (single option, candidate for removal // unless more options would be added) + // TRANSLATORS: popup menu item mBrowserBox->addRow("talk", _("Talk")); + // TRANSLATORS: popup menu item mBrowserBox->addRow("buy", _("Buy")); + // TRANSLATORS: popup menu item mBrowserBox->addRow("sell", _("Sell")); mBrowserBox->addRow("##3---"); + // TRANSLATORS: popup menu item mBrowserBox->addRow("move", _("Move")); + // TRANSLATORS: popup menu item mBrowserBox->addRow("addcomment", _("Add comment")); break; case ActorSprite::MONSTER: { // Monsters can be attacked + // TRANSLATORS: popup menu item mBrowserBox->addRow("attack", _("Attack")); if (player_node->isGM()) { mBrowserBox->addRow("##3---"); + // TRANSLATORS: popup menu item mBrowserBox->addRow("admin-kick", _("Kick")); } @@ -236,15 +255,19 @@ void PopupMenu::showPopup(const int x, const int y, const Being *const being) || actorSpriteManager->isInPriorityAttackList(name)) { mBrowserBox->addRow("remove attack", + // TRANSLATORS: popup menu item _("Remove from attack list")); } else { mBrowserBox->addRow("add attack priority", + // TRANSLATORS: popup menu item _("Add to priority attack list")); mBrowserBox->addRow("add attack", + // TRANSLATORS: popup menu item _("Add to attack list")); mBrowserBox->addRow("add attack ignore", + // TRANSLATORS: popup menu item _("Add to ignore list")); } } @@ -259,9 +282,11 @@ void PopupMenu::showPopup(const int x, const int y, const Being *const being) /* Other beings aren't interesting... */ return; } + // TRANSLATORS: popup menu item mBrowserBox->addRow("name", _("Add name to chat")); mBrowserBox->addRow("##3---"); + // TRANSLATORS: popup menu item mBrowserBox->addRow("cancel", _("Cancel")); showPopup(x, y); @@ -273,6 +298,7 @@ void PopupMenu::showPopup(const int x, const int y, mX = x; mY = y; mBrowserBox->clearRows(); + // TRANSLATORS: popup menu header mBrowserBox->addRow(_("Players")); FOR_EACH (std::vector::const_iterator, it, beings) { @@ -294,6 +320,7 @@ void PopupMenu::showPopup(const int x, const int y, } } mBrowserBox->addRow("##3---"); + // TRANSLATORS: popup menu item mBrowserBox->addRow("cancel", _("Cancel")); showPopup(x, y); } @@ -314,6 +341,7 @@ void PopupMenu::showPlayerPopup(const int x, const int y, std::string nick) mBrowserBox->addRow(name); + // TRANSLATORS: popup menu item mBrowserBox->addRow("whisper", _("Whisper")); mBrowserBox->addRow("##3---"); @@ -321,6 +349,7 @@ void PopupMenu::showPlayerPopup(const int x, const int y, std::string nick) mBrowserBox->addRow("##3---"); addFollow(); + // TRANSLATORS: popup menu item mBrowserBox->addRow("addcomment", _("Add comment")); if (player_node->isInParty()) @@ -331,12 +360,16 @@ void PopupMenu::showPlayerPopup(const int x, const int y, std::string nick) const PartyMember *const member = party->getMember(mNick); if (member) { + // TRANSLATORS: popup menu item mBrowserBox->addRow("kick party", _("Kick from party")); mBrowserBox->addRow("##3---"); const PartyMember *const o = party->getMember( player_node->getName()); if (o && member->getMap() == o->getMap()) + { + // TRANSLATORS: popup menu item mBrowserBox->addRow("move", _("Move")); + } } } } @@ -349,10 +382,12 @@ void PopupMenu::showPlayerPopup(const int x, const int y, std::string nick) if (guild2->getServerGuild() || (guildManager && guildManager->havePower())) { + // TRANSLATORS: popup menu item mBrowserBox->addRow("guild-kick", _("Kick from guild")); } if (guild2->getServerGuild()) { + // TRANSLATORS: popup menu item mBrowserBox->addRow(strprintf( "@@guild-pos|%s >@@", _("Change pos in guild"))); } @@ -362,14 +397,17 @@ void PopupMenu::showPlayerPopup(const int x, const int y, std::string nick) if (guild2->getServerGuild() || (guildManager && guildManager->havePower())) { + // TRANSLATORS: popup menu item mBrowserBox->addRow("guild", _("Invite to guild")); } } } addBuySellDefault(); + // TRANSLATORS: popup menu item mBrowserBox->addRow("name", _("Add name to chat")); mBrowserBox->addRow("##3---"); + // TRANSLATORS: popup menu item mBrowserBox->addRow("cancel", _("Cancel")); showPopup(x, y); @@ -397,6 +435,7 @@ void PopupMenu::showPopup(const int x, const int y, || (actorSpriteManager->isInPickupList("") && !actorSpriteManager->isInIgnorePickupList(name))) { + // TRANSLATORS: popup menu item mBrowserBox->addRow("pickup", _("Pick up")); mBrowserBox->addRow("##3---"); } @@ -404,11 +443,14 @@ void PopupMenu::showPopup(const int x, const int y, } else { + // TRANSLATORS: popup menu item mBrowserBox->addRow("pickup", _("Pick up")); } + // TRANSLATORS: popup menu item mBrowserBox->addRow("chat", _("Add to chat")); mBrowserBox->addRow("##3---"); + // TRANSLATORS: popup menu item mBrowserBox->addRow("cancel", _("Cancel")); showPopup(x, y); @@ -425,16 +467,21 @@ void PopupMenu::showPopup(const int x, const int y, MapItem *const mapItem) mBrowserBox->clearRows(); + // TRANSLATORS: popup menu header mBrowserBox->addRow(_("Map Item")); + // TRANSLATORS: popup menu item mBrowserBox->addRow("rename map", _("Rename")); + // TRANSLATORS: popup menu item mBrowserBox->addRow("remove map", _("Remove")); if (player_node && player_node->isGM()) { mBrowserBox->addRow("##3---"); + // TRANSLATORS: popup menu item mBrowserBox->addRow("warp map", _("Warp")); } mBrowserBox->addRow("##3---"); + // TRANSLATORS: popup menu item mBrowserBox->addRow("cancel", _("Cancel")); showPopup(x, y); @@ -448,13 +495,20 @@ void PopupMenu::showMapPopup(const int x, const int y, mBrowserBox->clearRows(); + // TRANSLATORS: popup menu header mBrowserBox->addRow(_("Map Item")); if (player_node && player_node->isGM()) + { + // TRANSLATORS: popup menu item mBrowserBox->addRow("warp map", _("Warp")); + } + // TRANSLATORS: popup menu item mBrowserBox->addRow("move", _("Move")); + // TRANSLATORS: popup menu item mBrowserBox->addRow("movecamera", _("Move camera")); mBrowserBox->addRow("##3---"); + // TRANSLATORS: popup menu item mBrowserBox->addRow("cancel", _("Cancel")); showPopup(x, y); @@ -467,10 +521,13 @@ void PopupMenu::showOutfitsPopup(const int x, const int y) mBrowserBox->clearRows(); + // TRANSLATORS: popup menu header mBrowserBox->addRow(_("Outfits")); + // TRANSLATORS: popup menu item mBrowserBox->addRow("clear outfit", _("Clear outfit")); mBrowserBox->addRow("##3---"); + // TRANSLATORS: popup menu item mBrowserBox->addRow("cancel", _("Cancel")); showPopup(x, y); @@ -488,10 +545,13 @@ void PopupMenu::showSpellPopup(const int x, const int y, mX = x; mY = y; + // TRANSLATORS: popup menu header mBrowserBox->addRow(_("Spells")); + // TRANSLATORS: popup menu item mBrowserBox->addRow("edit spell", _("Edit spell")); mBrowserBox->addRow("##3---"); + // TRANSLATORS: popup menu item mBrowserBox->addRow("cancel", _("Cancel")); showPopup(x, y); @@ -509,30 +569,54 @@ void PopupMenu::showChatPopup(const int x, const int y, ChatTab *const tab) mBrowserBox->clearRows(); if (tab->getType() == static_cast(ChatTab::TAB_WHISPER)) + { + // TRANSLATORS: popup menu item mBrowserBox->addRow("chat close", _("Close")); + } + // TRANSLATORS: popup menu item mBrowserBox->addRow("chat clear", _("Clear")); mBrowserBox->addRow("##3---"); if (tab->getAllowHighlight()) + { + // TRANSLATORS: popup menu item mBrowserBox->addRow("disable highlight", _("Disable highlight")); + } else + { + // TRANSLATORS: popup menu item mBrowserBox->addRow("enable highlight", _("Enable highlight")); + } if (tab->getRemoveNames()) + { + // TRANSLATORS: popup menu item mBrowserBox->addRow("dont remove name", _("Don't remove name")); + } else + { + // TRANSLATORS: popup menu item mBrowserBox->addRow("remove name", _("Remove name")); + } if (tab->getNoAway()) + { + // TRANSLATORS: popup menu item mBrowserBox->addRow("enable away", _("Enable away")); + } else + { + // TRANSLATORS: popup menu item mBrowserBox->addRow("disable away", _("Disable away")); + } mBrowserBox->addRow("##3---"); if (tab->getType() == static_cast(ChatTab::TAB_PARTY)) { + // TRANSLATORS: popup menu item mBrowserBox->addRow("leave party", _("Leave")); mBrowserBox->addRow("##3---"); } + // TRANSLATORS: popup menu item mBrowserBox->addRow("chat clipboard", _("Copy to clipboard")); mBrowserBox->addRow("##3---"); @@ -550,11 +634,14 @@ void PopupMenu::showChatPopup(const int x, const int y, ChatTab *const tab) mNick = being->getName(); mType = static_cast(being->getType()); + // TRANSLATORS: popup menu item mBrowserBox->addRow("trade", _("Trade")); + // TRANSLATORS: popup menu item mBrowserBox->addRow("attack", _("Attack")); mBrowserBox->addRow("##3---"); + // TRANSLATORS: popup menu item mBrowserBox->addRow("heal", _("Heal")); mBrowserBox->addRow("##3---"); @@ -562,6 +649,7 @@ void PopupMenu::showChatPopup(const int x, const int y, ChatTab *const tab) mBrowserBox->addRow("##3---"); addFollow(); + // TRANSLATORS: popup menu item mBrowserBox->addRow("move", _("Move")); addPlayerMisc(); addBuySell(being); @@ -573,10 +661,12 @@ void PopupMenu::showChatPopup(const int x, const int y, ChatTab *const tab) { if (!player_node->getParty()->isMember(wTab->getNick())) { + // TRANSLATORS: popup menu item mBrowserBox->addRow("party", _("Invite to party")); } else { + // TRANSLATORS: popup menu item mBrowserBox->addRow("kick party", _("Kick from party")); } @@ -594,11 +684,13 @@ void PopupMenu::showChatPopup(const int x, const int y, ChatTab *const tab) if (guild2->getServerGuild() || (guildManager && guildManager->havePower())) { + // TRANSLATORS: popup menu item mBrowserBox->addRow(strprintf( "@@guild-kick|%s@@", _("Kick from guild"))); } if (guild2->getServerGuild()) { + // TRANSLATORS: popup menu item mBrowserBox->addRow(strprintf("@@guild-pos|%s >@@", _("Change pos in guild"))); } @@ -609,6 +701,7 @@ void PopupMenu::showChatPopup(const int x, const int y, ChatTab *const tab) if (guild2->getServerGuild() || (guildManager && guildManager->havePower())) { + // TRANSLATORS: popup menu item mBrowserBox->addRow("guild", _("Invite to guild")); } } @@ -629,7 +722,10 @@ void PopupMenu::showChatPopup(const int x, const int y, ChatTab *const tab) { const PartyMember *const m = party->getMember(mNick); if (m) + { + // TRANSLATORS: popup menu item mBrowserBox->addRow("move", _("Move")); + } } } addPlayerMisc(); @@ -637,6 +733,7 @@ void PopupMenu::showChatPopup(const int x, const int y, ChatTab *const tab) mBrowserBox->addRow("##3---"); } } + // TRANSLATORS: popup menu item mBrowserBox->addRow("cancel", _("Cancel")); showPopup(x, y); @@ -645,6 +742,7 @@ void PopupMenu::showChatPopup(const int x, const int y, ChatTab *const tab) void PopupMenu::showChangePos(const int x, const int y) { mBrowserBox->clearRows(); + // TRANSLATORS: popup menu header mBrowserBox->addRow(_("Change guild position")); if (!player_node) @@ -658,9 +756,11 @@ void PopupMenu::showChangePos(const int x, const int y) PositionsMap map = guild->getPositions(); FOR_EACH (PositionsMap::const_iterator, itr, map) { + // TRANSLATORS: popup menu item mBrowserBox->addRow(strprintf("@@guild-pos-%u|%s@@", itr->first, itr->second.c_str())); } + // TRANSLATORS: popup menu item mBrowserBox->addRow("cancel", _("Cancel")); showPopup(x, y); @@ -1195,7 +1295,7 @@ void PopupMenu::handleLink(const std::string &link, // TRANSLATORS: number of chars in string should be near original TextDialog *const dialog = new TextDialog( _("Player comment "), - // TRANSLATORS: number of chars in string should be near original + // TRANSLATORS: number of chars in string should be near original _("Comment: ")); mPlayerListener.setDialog(dialog); mPlayerListener.setNick(mNick); @@ -1685,26 +1785,40 @@ void PopupMenu::showPopup(Window *const parent, const int x, const int y, { if (tradeWindow && tradeWindow->isWindowVisible()) { + // TRANSLATORS: popup menu item mBrowserBox->addRow("addtrade", _("Add to trade")); if (cnt > 1) { if (cnt > 10) + { + // TRANSLATORS: popup menu item mBrowserBox->addRow("addtrade 10", _("Add to trade 10")); + } + // TRANSLATORS: popup menu item mBrowserBox->addRow("addtrade half", _("Add to trade half")); + // TRANSLATORS: popup menu item mBrowserBox->addRow("addtrade all-1", _("Add to trade all-1")); + // TRANSLATORS: popup menu item mBrowserBox->addRow("addtrade all", _("Add to trade all")); } mBrowserBox->addRow("##3---"); } if (InventoryWindow::isStorageActive()) { + // TRANSLATORS: popup menu item mBrowserBox->addRow("store", _("Store")); if (cnt > 1) { if (cnt > 10) + { + // TRANSLATORS: popup menu item mBrowserBox->addRow("store 10", _("Store 10")); + } + // TRANSLATORS: popup menu item mBrowserBox->addRow("store half", _("Store half")); + // TRANSLATORS: popup menu item mBrowserBox->addRow("store all-1", _("Store all-1")); + // TRANSLATORS: popup menu item mBrowserBox->addRow("store all", _("Store all")); } mBrowserBox->addRow("##3---"); @@ -1713,38 +1827,58 @@ void PopupMenu::showPopup(Window *const parent, const int x, const int y, if (item->isEquipment()) { if (item->isEquipped()) + { + // TRANSLATORS: popup menu item mBrowserBox->addRow("use", _("Unequip")); + } else + { + // TRANSLATORS: popup menu item mBrowserBox->addRow("use", _("Equip")); + } } else { + // TRANSLATORS: popup menu item mBrowserBox->addRow("use", _("Use")); } if (cnt > 1) { + // TRANSLATORS: popup menu item mBrowserBox->addRow("drop", _("Drop...")); + // TRANSLATORS: popup menu item mBrowserBox->addRow("drop all", _("Drop all")); } else { + // TRANSLATORS: popup menu item mBrowserBox->addRow("drop", _("Drop")); } if (Net::getInventoryHandler()->canSplit(item)) + { + // TRANSLATORS: popup menu item mBrowserBox->addRow("split", _("Split")); + } } // Assume in storage for now else { + // TRANSLATORS: popup menu item mBrowserBox->addRow("retrieve", _("Retrieve")); if (cnt > 1) { if (cnt > 10) + { + // TRANSLATORS: popup menu item mBrowserBox->addRow("retrieve 10", _("Retrieve 10")); + } + // TRANSLATORS: popup menu item mBrowserBox->addRow("retrieve half", _("Retrieve half")); + // TRANSLATORS: popup menu item mBrowserBox->addRow("retrieve all-1", _("Retrieve all-1")); + // TRANSLATORS: popup menu item mBrowserBox->addRow("retrieve all", _("Retrieve all")); } } @@ -1754,8 +1888,10 @@ void PopupMenu::showPopup(Window *const parent, const int x, const int y, mBrowserBox->addRow("##3---"); addPickupFilter(mNick); } + // TRANSLATORS: popup menu item mBrowserBox->addRow("chat", _("Add to chat")); mBrowserBox->addRow("##3---"); + // TRANSLATORS: popup menu item mBrowserBox->addRow("cancel", _("Cancel")); showPopup(x, y); @@ -1782,8 +1918,10 @@ void PopupMenu::showItemPopup(const int x, const int y, const int itemId, mY = y; mBrowserBox->clearRows(); + // TRANSLATORS: popup menu item mBrowserBox->addRow("use", _("Use")); mBrowserBox->addRow("##3---"); + // TRANSLATORS: popup menu item mBrowserBox->addRow("cancel", _("Cancel")); showPopup(x, y); @@ -1813,30 +1951,47 @@ void PopupMenu::showItemPopup(const int x, const int y, Item *const item) if (item->isEquipment()) { if (item->isEquipped()) + { + // TRANSLATORS: popup menu item mBrowserBox->addRow("use", _("Unequip")); + } else + { + // TRANSLATORS: popup menu item mBrowserBox->addRow("use", _("Equip")); + } } else { + // TRANSLATORS: popup menu item mBrowserBox->addRow("use", _("Use")); } if (item->getQuantity() > 1) { + // TRANSLATORS: popup menu item mBrowserBox->addRow("drop", _("Drop...")); + // TRANSLATORS: popup menu item mBrowserBox->addRow("drop all", _("Drop all")); } else { + // TRANSLATORS: popup menu item mBrowserBox->addRow("drop", _("Drop")); } if (Net::getInventoryHandler()->canSplit(item)) + { + // TRANSLATORS: popup menu item mBrowserBox->addRow("split", _("Split")); + } if (InventoryWindow::isStorageActive()) + { + // TRANSLATORS: popup menu item mBrowserBox->addRow("store", _("Store")); + } + // TRANSLATORS: popup menu item mBrowserBox->addRow("chat", _("Add to chat")); if (config.getBoolValue("enablePickupFilter")) @@ -1848,6 +2003,7 @@ void PopupMenu::showItemPopup(const int x, const int y, Item *const item) } } mBrowserBox->addRow("##3---"); + // TRANSLATORS: popup menu item mBrowserBox->addRow("cancel", _("Cancel")); showPopup(x, y); @@ -1869,30 +2025,47 @@ void PopupMenu::showDropPopup(const int x, const int y, Item *const item) if (item->isEquipment()) { if (item->isEquipped()) + { + // TRANSLATORS: popup menu item mBrowserBox->addRow("use", _("Unequip")); + } else + { + // TRANSLATORS: popup menu item mBrowserBox->addRow("use", _("Equip")); + } } else { + // TRANSLATORS: popup menu item mBrowserBox->addRow("use", _("Use")); } if (item->getQuantity() > 1) { + // TRANSLATORS: popup menu item mBrowserBox->addRow("drop", _("Drop...")); + // TRANSLATORS: popup menu item mBrowserBox->addRow("drop all", _("Drop all")); } else { + // TRANSLATORS: popup menu item mBrowserBox->addRow("drop", _("Drop")); } if (Net::getInventoryHandler()->canSplit(item)) + { + // TRANSLATORS: popup menu item mBrowserBox->addRow("split", _("Split")); + } if (InventoryWindow::isStorageActive()) + { + // TRANSLATORS: popup menu item mBrowserBox->addRow("store", _("Store")); + } + // TRANSLATORS: popup menu item mBrowserBox->addRow("chat", _("Add to chat")); if (config.getBoolValue("enablePickupFilter")) { @@ -1902,8 +2075,10 @@ void PopupMenu::showDropPopup(const int x, const int y, Item *const item) } } mBrowserBox->addRow("##3---"); + // TRANSLATORS: popup menu item mBrowserBox->addRow("clear drops", _("Clear drop window")); mBrowserBox->addRow("##3---"); + // TRANSLATORS: popup menu item mBrowserBox->addRow("cancel", _("Cancel")); showPopup(x, y); @@ -1930,17 +2105,20 @@ void PopupMenu::showPopup(const int x, const int y, Button *const button) if (btn->isVisible()) { mBrowserBox->addRow(strprintf("@@hide button_%s|%s %s (%s)@@", + // TRANSLATORS: popup menu item btn->getActionEventId().c_str(), _("Hide"), btn->getDescription().c_str(), btn->getCaption().c_str())); } else { mBrowserBox->addRow(strprintf("@@show button_%s|%s %s (%s)@@", + // TRANSLATORS: popup menu item btn->getActionEventId().c_str(), _("Show"), btn->getDescription().c_str(), btn->getCaption().c_str())); } } mBrowserBox->addRow("##3---"); + // TRANSLATORS: popup menu item mBrowserBox->addRow("cancel", _("Cancel")); showPopup(x, y); @@ -1987,21 +2165,26 @@ void PopupMenu::showPopup(const int x, const int y, const ProgressBar *const b) if (bar->isVisible()) { mBrowserBox->addRow(strprintf("@@hide bar_%s|%s %s@@", + // TRANSLATORS: popup menu item bar->getActionEventId().c_str(), _("Hide"), bar->getId().c_str())); } else { mBrowserBox->addRow(strprintf("@@show bar_%s|%s %s@@", + // TRANSLATORS: popup menu item bar->getActionEventId().c_str(), _("Show"), bar->getId().c_str())); } } mBrowserBox->addRow("##3---"); + // TRANSLATORS: popup menu item mBrowserBox->addRow("reset yellow", _("Reset yellow bar")); mBrowserBox->addRow("##3---"); + // TRANSLATORS: popup menu item mBrowserBox->addRow("bar to chat", _("Copy to chat")); + // TRANSLATORS: popup menu item mBrowserBox->addRow("cancel", _("Cancel")); showPopup(x, y); @@ -2021,9 +2204,14 @@ void PopupMenu::showAttackMonsterPopup(const int x, const int y, mBrowserBox->clearRows(); if (name.empty()) + { + // TRANSLATORS: popup menu header mBrowserBox->addRow(_("(default)")); + } else + { mBrowserBox->addRow(name); + } switch (type) { case MapItem::ATTACK: @@ -2031,9 +2219,15 @@ void PopupMenu::showAttackMonsterPopup(const int x, const int y, const int idx = actorSpriteManager->getAttackMobIndex(name); const int size = actorSpriteManager->getAttackMobsSize(); if (idx > 0) + { + // TRANSLATORS: popup menu item mBrowserBox->addRow("attack moveup", _("Move up")); + } if (idx + 1 < size) + { + // TRANSLATORS: popup menu item mBrowserBox->addRow("attack movedown", _("Move down")); + } break; } case MapItem::PRIORITY: @@ -2042,9 +2236,15 @@ void PopupMenu::showAttackMonsterPopup(const int x, const int y, getPriorityAttackMobIndex(name); const int size = actorSpriteManager->getPriorityAttackMobsSize(); if (idx > 0) + { + // TRANSLATORS: popup menu item mBrowserBox->addRow("priority moveup", _("Move up")); + } if (idx + 1 < size) + { + // TRANSLATORS: popup menu item mBrowserBox->addRow("priority movedown", _("Move down")); + } break; } case MapItem::IGNORE_: @@ -2053,8 +2253,10 @@ void PopupMenu::showAttackMonsterPopup(const int x, const int y, break; } + // TRANSLATORS: popup menu item mBrowserBox->addRow("attack remove", _("Remove")); mBrowserBox->addRow("##3---"); + // TRANSLATORS: popup menu item mBrowserBox->addRow("cancel", _("Cancel")); showPopup(x, y); @@ -2073,12 +2275,19 @@ void PopupMenu::showPickupItemPopup(const int x, const int y, std::string name) mBrowserBox->clearRows(); if (name.empty()) + { + // TRANSLATORS: popup menu header mBrowserBox->addRow(_("(default)")); + } else + { mBrowserBox->addRow(name); + } + // TRANSLATORS: popup menu item mBrowserBox->addRow("pickup remove", _("Remove")); mBrowserBox->addRow("##3---"); + // TRANSLATORS: popup menu item mBrowserBox->addRow("cancel", _("Cancel")); showPopup(x, y); @@ -2099,9 +2308,11 @@ void PopupMenu::showUndressPopup(const int x, const int y, mBrowserBox->clearRows(); + // TRANSLATORS: popup menu item mBrowserBox->addRow("undress item", _("Undress")); mBrowserBox->addRow("##3---"); + // TRANSLATORS: popup menu item mBrowserBox->addRow("cancel", _("Cancel")); showPopup(x, y); @@ -2115,9 +2326,12 @@ void PopupMenu::showTextFieldPopup(int x, int y, TextField *input) mBrowserBox->clearRows(); + // TRANSLATORS: popup menu item mBrowserBox->addRow("clipboard copy", _("Copy")); + // TRANSLATORS: popup menu item mBrowserBox->addRow("clipboard paste", _("Paste")); mBrowserBox->addRow("##3---"); + // TRANSLATORS: popup menu item mBrowserBox->addRow("cancel", _("Cancel")); showPopup(x, y); @@ -2132,9 +2346,12 @@ void PopupMenu::showLinkPopup(const int x, const int y, mBrowserBox->clearRows(); + // TRANSLATORS: popup menu item mBrowserBox->addRow("open link", _("Open link")); + // TRANSLATORS: popup menu item mBrowserBox->addRow("clipboard link", _("Copy to clipboard")); mBrowserBox->addRow("##3---"); + // TRANSLATORS: popup menu item mBrowserBox->addRow("cancel", _("Cancel")); showPopup(x, y); @@ -2147,6 +2364,7 @@ void PopupMenu::showWindowsPopup(const int x, const int y) mBrowserBox->clearRows(); const std::vector &names = windowMenu->getButtonTexts(); + // TRANSLATORS: popup menu header mBrowserBox->addRow(_("Show window")); FOR_EACH (std::vector::const_iterator, it, names) @@ -2159,6 +2377,7 @@ void PopupMenu::showWindowsPopup(const int x, const int y) btn->text.c_str()); } mBrowserBox->addRow("##3---"); + // TRANSLATORS: popup menu item mBrowserBox->addRow("cancel", _("Cancel")); showPopup(x, y); @@ -2202,27 +2421,43 @@ void PopupMenu::addPlayerRelation(std::string name) switch (player_relations.getRelation(name)) { case PlayerRelation::NEUTRAL: + // TRANSLATORS: popup menu item mBrowserBox->addRow("friend", _("Be friend")); + // TRANSLATORS: popup menu item mBrowserBox->addRow("disregard", _("Disregard")); + // TRANSLATORS: popup menu item mBrowserBox->addRow("ignore", _("Ignore")); + // TRANSLATORS: popup menu item mBrowserBox->addRow("blacklist", _("Black list")); + // TRANSLATORS: popup menu item mBrowserBox->addRow("enemy", _("Set as enemy")); + // TRANSLATORS: popup menu item mBrowserBox->addRow("erase", _("Erase")); break; case PlayerRelation::FRIEND: + // TRANSLATORS: popup menu item mBrowserBox->addRow("disregard", _("Disregard")); + // TRANSLATORS: popup menu item mBrowserBox->addRow("ignore", _("Ignore")); + // TRANSLATORS: popup menu item mBrowserBox->addRow("blacklist", _("Black list")); + // TRANSLATORS: popup menu item mBrowserBox->addRow("enemy", _("Set as enemy")); + // TRANSLATORS: popup menu item mBrowserBox->addRow("erase", _("Erase")); break; case PlayerRelation::BLACKLISTED: + // TRANSLATORS: popup menu item mBrowserBox->addRow("unignore", _("Unignore")); + // TRANSLATORS: popup menu item mBrowserBox->addRow("disregard", _("Disregard")); + // TRANSLATORS: popup menu item mBrowserBox->addRow("ignore", _("Ignore")); + // TRANSLATORS: popup menu item mBrowserBox->addRow("enemy", _("Set as enemy")); + // TRANSLATORS: popup menu item mBrowserBox->addRow("erase", _("Erase")); break; @@ -2233,21 +2468,31 @@ void PopupMenu::addPlayerRelation(std::string name) break; case PlayerRelation::IGNORED: + // TRANSLATORS: popup menu item mBrowserBox->addRow("unignore", _("Unignore")); + // TRANSLATORS: popup menu item mBrowserBox->addRow("erase", _("Erase")); break; case PlayerRelation::ENEMY2: + // TRANSLATORS: popup menu item mBrowserBox->addRow("unignore", _("Unignore")); + // TRANSLATORS: popup menu item mBrowserBox->addRow("disregard", _("Disregard")); + // TRANSLATORS: popup menu item mBrowserBox->addRow("ignore", _("Ignore")); + // TRANSLATORS: popup menu item mBrowserBox->addRow("blacklist", _("Black list")); + // TRANSLATORS: popup menu item mBrowserBox->addRow("erase", _("Erase")); break; case PlayerRelation::ERASED: + // TRANSLATORS: popup menu item mBrowserBox->addRow("unignore", _("Unignore")); + // TRANSLATORS: popup menu item mBrowserBox->addRow("disregard", _("Disregard")); + // TRANSLATORS: popup menu item mBrowserBox->addRow("ignore", _("Completely ignore")); break; @@ -2258,7 +2503,9 @@ void PopupMenu::addPlayerRelation(std::string name) void PopupMenu::addFollow() { + // TRANSLATORS: popup menu item mBrowserBox->addRow("follow", _("Follow")); + // TRANSLATORS: popup menu item mBrowserBox->addRow("imitation", _("Imitation")); } @@ -2271,13 +2518,17 @@ void PopupMenu::addBuySell(const Being *const being) { if (being->isShopEnabled()) { + // TRANSLATORS: popup menu item mBrowserBox->addRow("buy", _("Buy")); + // TRANSLATORS: popup menu item mBrowserBox->addRow("sell", _("Sell")); } } else { + // TRANSLATORS: popup menu item mBrowserBox->addRow("buy", _("Buy (?)")); + // TRANSLATORS: popup menu item mBrowserBox->addRow("sell", _("Sell (?)")); } } @@ -2288,7 +2539,9 @@ void PopupMenu::addBuySellDefault() if (player_relations.getDefault() & PlayerRelation::TRADE) { mBrowserBox->addRow("##3---"); + // TRANSLATORS: popup menu item mBrowserBox->addRow("buy", _("Buy (?)")); + // TRANSLATORS: popup menu item mBrowserBox->addRow("sell", _("Sell (?)")); } } @@ -2300,9 +2553,15 @@ void PopupMenu::addParty(const std::string &partyName) if (player_node->getParty()) { if (player_node->getParty()->getName() != partyName) + { + // TRANSLATORS: popup menu item mBrowserBox->addRow("party", _("Invite to party")); + } else + { + // TRANSLATORS: popup menu item mBrowserBox->addRow("kick party", _("Kick from party")); + } mBrowserBox->addRow("##3---"); } } @@ -2310,8 +2569,11 @@ void PopupMenu::addParty(const std::string &partyName) void PopupMenu::addPlayerMisc() { + // TRANSLATORS: popup menu item mBrowserBox->addRow("items", _("Show Items")); + // TRANSLATORS: popup menu item mBrowserBox->addRow("undress", _("Undress")); + // TRANSLATORS: popup menu item mBrowserBox->addRow("addcomment", _("Add comment")); } @@ -2321,12 +2583,15 @@ void PopupMenu::addPickupFilter(const std::string &name) || actorSpriteManager->isInIgnorePickupList(name)) { mBrowserBox->addRow("remove pickup", + // TRANSLATORS: popup menu item _("Remove from pickup list")); } else { + // TRANSLATORS: popup menu item mBrowserBox->addRow("add pickup", _("Add to pickup list")); mBrowserBox->addRow("add pickup ignore", + // TRANSLATORS: popup menu item _("Add to ignore list")); } } @@ -2342,6 +2607,7 @@ void PopupMenu::showPopup(const int x, const int y, gcn::ListModel *model) mBrowserBox->addRow(strprintf("dropdown_%d", f), model->getElementAt(f).c_str()); } + // TRANSLATORS: popup menu item mBrowserBox->addRow("cancel", _("Cancel")); showPopup(x, y); } diff --git a/src/gui/questswindow.cpp b/src/gui/questswindow.cpp index b3e96fd4f..639d4c358 100644 --- a/src/gui/questswindow.cpp +++ b/src/gui/questswindow.cpp @@ -122,6 +122,7 @@ struct QuestEffect final }; QuestsWindow::QuestsWindow() : + // TRANSLATORS: quests window name Window(_("Quests"), false, nullptr, "quests.xml"), gcn::ActionListener(), mQuestsModel(new QuestsModel), @@ -133,6 +134,7 @@ QuestsWindow::QuestsWindow() : mText(new BrowserBox(this, BrowserBox::AUTO_WRAP)), mTextScrollArea(new ScrollArea(mText, getOptionBool("showtextbackground"), "quests_text_background.xml")), + // TRANSLATORS: quests window button mCloseButton(new Button(this, _("Close"), "close", this)), mVars(), mQuests(), @@ -246,6 +248,7 @@ void QuestsWindow::loadXml() void QuestsWindow::loadQuest(const int var, const XmlNodePtr node) { QuestItem *quest = new QuestItem(); + // TRANSLATORS: quests window quest name quest->name = XML::langProperty(node, "name", _("unknown")); quest->group = XML::getProperty(node, "group", ""); std::string incompleteStr = XML::getProperty(node, "incomplete", ""); diff --git a/src/gui/quitdialog.cpp b/src/gui/quitdialog.cpp index dc3851b01..973883466 100644 --- a/src/gui/quitdialog.cpp +++ b/src/gui/quitdialog.cpp @@ -50,18 +50,25 @@ #include "debug.h" QuitDialog::QuitDialog(QuitDialog **const pointerToMe): + // TRANSLATORS: quit dialog name Window(_("Quit"), true, nullptr, "quit.xml"), gcn::ActionListener(), gcn::KeyListener(), mOptions(), + // TRANSLATORS: quit dialog button mLogoutQuit(new RadioButton(this, _("Quit"), "quitdialog")), + // TRANSLATORS: quit dialog button mForceQuit(new RadioButton(this, _("Quit"), "quitdialog")), mSwitchAccountServer(new RadioButton(this, + // TRANSLATORS: quit dialog button _("Switch server"), "quitdialog")), mSwitchCharacter(new RadioButton(this, + // TRANSLATORS: quit dialog button _("Switch character"), "quitdialog")), mRate(nullptr), + // TRANSLATORS: quit dialog button mOkButton(new Button(this, _("OK"), "ok", this)), + // TRANSLATORS: quit dialog button mCancelButton(new Button(this, _("Cancel"), "cancel", this)), mMyPointer(pointerToMe), mNeedForceQuit(false) diff --git a/src/gui/registerdialog.cpp b/src/gui/registerdialog.cpp index 8628e4010..e9f381444 100644 --- a/src/gui/registerdialog.cpp +++ b/src/gui/registerdialog.cpp @@ -62,7 +62,8 @@ void WrongDataNoticeListener::action(const gcn::ActionEvent &event) mTarget->requestFocus(); } -RegisterDialog::RegisterDialog(LoginData *const data): +RegisterDialog::RegisterDialog(LoginData *const data) : + // TRANSLATORS: register dialog name Window(_("Register"), false, nullptr, "register.xml"), gcn::ActionListener(), gcn::KeyListener(), @@ -71,7 +72,9 @@ RegisterDialog::RegisterDialog(LoginData *const data): mPasswordField(new PasswordField(this, mLoginData->password)), mConfirmField(new PasswordField(this)), mEmailField(nullptr), + // TRANSLATORS: register dialog. button. mRegisterButton(new Button(this, _("Register"), "register", this)), + // TRANSLATORS: register dialog. button. mCancelButton(new Button(this, _("Cancel"), "cancel", this)), mMaleButton(nullptr), mFemaleButton(nullptr), @@ -83,8 +86,11 @@ RegisterDialog::RegisterDialog(LoginData *const data): const int optionalActions = Net::getLoginHandler()-> supportedOptionalActions(); + // TRANSLATORS: register dialog. label. Label *const userLabel = new Label(this, _("Name:")); + // TRANSLATORS: register dialog. label. Label *const passwordLabel = new Label(this, _("Password:")); + // TRANSLATORS: register dialog. label. Label *const confirmLabel = new Label(this, _("Confirm:")); ContainerPlacer placer; @@ -101,10 +107,13 @@ RegisterDialog::RegisterDialog(LoginData *const data): if (optionalActions & Net::LoginHandler::SetGenderOnRegister) { + // TRANSLATORS: register dialog. button. mMaleButton = new RadioButton(this, _("Male"), "sex", true); + // TRANSLATORS: register dialog. button. mFemaleButton = new RadioButton(this, _("Female"), "sex", false); if (serverVersion >= 5) { + // TRANSLATORS: register dialog. button. mOtherButton = new RadioButton(this, _("Other"), "sex", false); placer(0, row, mMaleButton); placer(1, row, mFemaleButton); @@ -121,11 +130,11 @@ RegisterDialog::RegisterDialog(LoginData *const data): if (optionalActions & Net::LoginHandler::SetEmailOnRegister) { + // TRANSLATORS: register dialog. label. Label *const emailLabel = new Label(this, _("Email:")); mEmailField = new TextField(this); placer(0, row, emailLabel); placer(1, row, mEmailField, 3).setPadding(2); - // row++; } @@ -194,6 +203,7 @@ void RegisterDialog::action(const gcn::ActionEvent &event) { // Name too short errorMsg = strprintf + // TRANSLATORS: error message (_("The username needs to be at least %u characters long."), minUser); error = 1; @@ -202,6 +212,7 @@ void RegisterDialog::action(const gcn::ActionEvent &event) { // Name too long errorMsg = strprintf + // TRANSLATORS: error message (_("The username needs to be less than %u characters long."), maxUser); error = 1; @@ -210,6 +221,7 @@ void RegisterDialog::action(const gcn::ActionEvent &event) { // Pass too short errorMsg = strprintf + // TRANSLATORS: error message (_("The password needs to be at least %u characters long."), minPass); error = 2; @@ -218,6 +230,7 @@ void RegisterDialog::action(const gcn::ActionEvent &event) { // Pass too long errorMsg = strprintf + // TRANSLATORS: error message (_("The password needs to be less than %u characters long."), maxPass); error = 2; @@ -225,6 +238,7 @@ void RegisterDialog::action(const gcn::ActionEvent &event) else if (mPasswordField->getText() != mConfirmField->getText()) { // Password does not match with the confirmation one + // TRANSLATORS: error message errorMsg = _("Passwords do not match."); error = 2; } @@ -245,6 +259,7 @@ void RegisterDialog::action(const gcn::ActionEvent &event) } OkDialog *const dlg = new OkDialog( + // TRANSLATORS: error message _("Error"), errorMsg, DIALOG_ERROR); dlg->addActionListener(mWrongDataNoticeListener); } diff --git a/src/gui/selldialog.cpp b/src/gui/selldialog.cpp index d0d9809ac..5963d8dff 100644 --- a/src/gui/selldialog.cpp +++ b/src/gui/selldialog.cpp @@ -48,6 +48,7 @@ SellDialog::DialogList SellDialog::instances; SellDialog::SellDialog(const int npcId) : + // TRANSLATORS: sell dialog name Window(_("Sell"), false, nullptr, "sell.xml"), gcn::ActionListener(), gcn::SelectionListener(), @@ -57,6 +58,7 @@ SellDialog::SellDialog(const int npcId) : } SellDialog::SellDialog(std::string nick): + // TRANSLATORS: sell dialog name Window(_("Sell"), false, nullptr, "sell.xml"), gcn::ActionListener(), gcn::SelectionListener(), @@ -88,13 +90,19 @@ void SellDialog::init() mQuantityLabel = new Label(this, strprintf( "%d / %d", mAmountItems, mMaxItems)); mQuantityLabel->setAlignment(gcn::Graphics::CENTER); + // TRANSLATORS: sell dialog label mMoneyLabel = new Label(this, strprintf(_("Price: %s / Total: %s"), "", "")); + // TRANSLATORS: sell dialog button mIncreaseButton = new Button(this, _("+"), "inc", this); + // TRANSLATORS: sell dialog button mDecreaseButton = new Button(this, _("-"), "dec", this); + // TRANSLATORS: sell dialog button mSellButton = new Button(this, _("Sell"), "sell", this); + // TRANSLATORS: sell dialog button mQuitButton = new Button(this, _("Quit"), "quit", this); + // TRANSLATORS: sell dialog button mAddMaxButton = new Button(this, _("Max"), "max", this); mDecreaseButton->adjustSize(); @@ -330,6 +338,7 @@ void SellDialog::updateButtonsAndLabels() // Update the quantity and money labels mQuantityLabel->setCaption(strprintf("%d / %d", mAmountItems, mMaxItems)); + // TRANSLATORS: sell dialog label mMoneyLabel->setCaption(strprintf(_("Price: %s / Total: %s"), Units::formatCurrency(income).c_str(), Units::formatCurrency(mPlayerMoney + income).c_str())); diff --git a/src/gui/serverdialog.cpp b/src/gui/serverdialog.cpp index 9e3a46bf4..8bc1ad804 100644 --- a/src/gui/serverdialog.cpp +++ b/src/gui/serverdialog.cpp @@ -244,17 +244,24 @@ private: ServerDialog::ServerDialog(ServerInfo *const serverInfo, const std::string &dir) : + // TRANSLATORS: servers dialog name Window(_("Choose Your Server"), false, nullptr, "server.xml"), gcn::ActionListener(), gcn::KeyListener(), gcn::SelectionListener(), mMutex(), mDescription(new Label(this, std::string())), + // TRANSLATORS: servers dialog button mQuitButton(new Button(this, _("Quit"), "quit", this)), + // TRANSLATORS: servers dialog button mConnectButton(new Button(this, _("Connect"), "connect", this)), + // TRANSLATORS: servers dialog button mAddEntryButton(new Button(this, _("Add"), "addEntry", this)), + // TRANSLATORS: servers dialog button mEditEntryButton(new Button(this, _("Edit"), "editEntry", this)), + // TRANSLATORS: servers dialog button mDeleteButton(new Button(this, _("Delete"), "remove", this)), + // TRANSLATORS: servers dialog button mLoadButton(new Button(this, _("Load"), "load", this)), mServers(ServerInfos()), mServersListModel(new ServersListModel(&mServers, this)), @@ -267,13 +274,17 @@ ServerDialog::ServerDialog(ServerInfo *const serverInfo, mPersistentIPCheckBox(nullptr) { if (isSafeMode) + { + // TRANSLATORS: servers dialog name setCaption(_("Choose Your Server *** SAFE MODE ***")); + } setWindowName("ServerDialog"); setCloseButton(true); mPersistentIPCheckBox = new CheckBox(this, + // TRANSLATORS: servers dialog checkbox _("Use same ip for game sub servers"), config.getBoolValue("usePersistentIP"), this, "persitent ip"); @@ -503,19 +514,23 @@ void ServerDialog::logic() } else if (mDownloadStatus == DOWNLOADING_IN_PROGRESS) { + // TRANSLATORS: servers dialog label mDescription->setCaption(strprintf(_("Downloading server list..." "%2.2f%%"), static_cast(mDownloadProgress * 100))); } else if (mDownloadStatus == DOWNLOADING_IDLE) { + // TRANSLATORS: servers dialog label mDescription->setCaption(_("Waiting for server...")); } else if (mDownloadStatus == DOWNLOADING_PREPARING) { + // TRANSLATORS: servers dialog label mDescription->setCaption(_("Preparing download")); } else if (mDownloadStatus == DOWNLOADING_ERROR) { + // TRANSLATORS: servers dialog label mDescription->setCaption(_("Error retreiving server list!")); } } @@ -606,9 +621,15 @@ void ServerDialog::loadServers(const bool addNew) if (meetsMinimumVersion) version.clear(); else if (version.empty()) + { + // TRANSLATORS: servers dialog label version = _("requires a newer version"); + } else + { + // TRANSLATORS: servers dialog label version = strprintf(_("requires v%s"), version.c_str()); + } gcn::Font *font = gui->getFont(); diff --git a/src/gui/setup.cpp b/src/gui/setup.cpp index 16aa2219a..344899723 100644 --- a/src/gui/setup.cpp +++ b/src/gui/setup.cpp @@ -51,7 +51,8 @@ extern Window *statusWindow; -Setup::Setup(): +Setup::Setup() : + // TRANSLATORS: setup window name Window(_("Setup"), false, nullptr, "setup.xml"), gcn::ActionListener(), mTabs(), @@ -77,9 +78,13 @@ Setup::Setup(): static const char *buttonNames[] = { + // TRANSLATORS: setup button N_("Apply"), + // TRANSLATORS: setup button N_("Cancel"), + // TRANSLATORS: setup button N_("Store"), + // TRANSLATORS: setup button N_("Reset Windows"), nullptr }; diff --git a/src/gui/setup_audio.cpp b/src/gui/setup_audio.cpp index 9209bc731..435c4ba4e 100644 --- a/src/gui/setup_audio.cpp +++ b/src/gui/setup_audio.cpp @@ -56,6 +56,7 @@ Setup_Audio::Setup_Audio(const Widget2 *const widget) : mSoundModel(new SoundsModel), mChannelsList(new SetupItemNames) { + // TRANSLATORS: audio tab in settings setName(_("Audio")); // Do the layout @@ -63,79 +64,106 @@ Setup_Audio::Setup_Audio(const Widget2 *const widget) : ContainerPlacer place = h.getPlacer(0, 0); place(0, 0, mScroll, 10, 10); + // TRANSLATORS: settings option new SetupItemLabel(_("Basic settings"), "", this); + // TRANSLATORS: settings option new SetupItemCheckBox(_("Enable Audio"), "", "sound", this, "soundEvent"); + // TRANSLATORS: settings option new SetupItemCheckBox(_("Enable music"), "", "playMusic", this, "playMusicEvent"); + // TRANSLATORS: settings option new SetupItemCheckBox(_("Enable game sfx"), "", "playBattleSound", this, "playBattleSoundEvent"); + // TRANSLATORS: settings option new SetupItemCheckBox(_("Enable gui sfx"), "", "playGuiSound", this, "playGuiSoundEvent"); + // TRANSLATORS: settings option new SetupItemSlider(_("Sfx volume"), "", "sfxVolume", this, "sfxVolumeEvent", 0, soundManager.getMaxVolume(), 150, true); + // TRANSLATORS: settings option new SetupItemSlider(_("Music volume"), "", "musicVolume", this, "musicVolumeEvent", 0, soundManager.getMaxVolume(), 150, true); + // TRANSLATORS: settings option new SetupItemCheckBox(_("Enable music fade out"), "", "fadeoutmusic", this, "fadeoutmusicEvent"); - + // TRANSLATORS: settings option new SetupItemIntTextField(_("Audio frequency"), "", "audioFrequency", this, "audioFrequencyEvent", 14000, 192000); + // TRANSLATORS: audio type mChannelsList->push_back(_("mono")); + // TRANSLATORS: audio type mChannelsList->push_back(_("stereo")); + // TRANSLATORS: audio type mChannelsList->push_back(_("surround")); + // TRANSLATORS: audio type mChannelsList->push_back(_("surround+center+lfe")); + // TRANSLATORS: settings option new SetupItemSlider2(_("Audio channels"), "", "audioChannels", this, "audioChannels", 1, 4, mChannelsList); + // TRANSLATORS: settings group new SetupItemLabel(_("Sound effects"), "", this); + // TRANSLATORS: settings option new SetupItemSound(_("Information dialog sound"), "", "soundinfo", this, "soundinfoEvent", mSoundModel); + // TRANSLATORS: settings option new SetupItemSound(_("Request dialog sound"), "", "soundrequest", this, "soundrequestEvent", mSoundModel); + // TRANSLATORS: settings option new SetupItemSound(_("Whisper message sound"), "", "soundwhisper", this, "soundwhisperEvent", mSoundModel); + // TRANSLATORS: settings option new SetupItemSound(_("Guild / Party message sound"), "", "soundguild", this, "soundguildEvent", mSoundModel); + // TRANSLATORS: settings option new SetupItemSound(_("Highlight message sound"), "", "soundhighlight", this, "soundhighlightEvent", mSoundModel); + // TRANSLATORS: settings option new SetupItemSound(_("Global message sound"), "", "soundglobal", this, "soundglobalEvent", mSoundModel); + // TRANSLATORS: settings option new SetupItemSound(_("Error message sound"), "", "sounderror", this, "sounderrorEvent", mSoundModel); + // TRANSLATORS: settings option new SetupItemSound(_("Trade request sound"), "", "soundtrade", this, "soundtradeEvent", mSoundModel); + // TRANSLATORS: settings option new SetupItemSound(_("Show window sound"), "", "soundshowwindow", this, "soundshowwindowEvent", mSoundModel); + // TRANSLATORS: settings option new SetupItemSound(_("Hide window sound"), "", "soundhidewindow", this, "soundhidewindowEvent", mSoundModel); + // TRANSLATORS: settings group new SetupItemLabel(_("Other"), "", this); #ifdef USE_MUMBLE + // TRANSLATORS: settings option new SetupItemCheckBox(_("Enable mumble voice chat"), "", "enableMumble", this, "enableMumbleEvent"); #endif + // TRANSLATORS: settings option new SetupItemCheckBox(_("Download music"), "", "download-music", this, "download-musicEvent"); diff --git a/src/gui/setup_chat.cpp b/src/gui/setup_chat.cpp index 207ac7464..a953ab4df 100644 --- a/src/gui/setup_chat.cpp +++ b/src/gui/setup_chat.cpp @@ -46,6 +46,7 @@ extern int serverVersion; Setup_Chat::Setup_Chat(const Widget2 *const widget) : SetupTabScroll(widget) { + // TRANSLATORS: settings tab name setName(_("Chat")); // Do the layout @@ -53,100 +54,133 @@ Setup_Chat::Setup_Chat(const Widget2 *const widget) : ContainerPlacer place = h.getPlacer(0, 0); place(0, 0, mScroll, 10, 10); + // TRANSLATORS: settings group new SetupItemLabel(_("Window"), "", this); + // TRANSLATORS: settings option new SetupItemCheckBox(_("Auto hide chat window."), "", "autohideChat", this, "autohideChatEvent"); + // TRANSLATORS: settings option new SetupItemCheckBox(_("Protect chat focus."), "", "protectChatFocus", this, "protectChatFocusEvent"); + // TRANSLATORS: settings group new SetupItemLabel(_("Colors"), "", this); + // TRANSLATORS: settings option new SetupItemCheckBox(_("Remove colors from received chat messages"), "", "removeColors", this, "removeColorsEvent"); + // TRANSLATORS: settings option new SetupItemCheckBox(_("Show chat colors list"), "", "showChatColorsList", this, "showChatColorsListEvent"); + // TRANSLATORS: settings option new SetupItemLabel(_("Commands"), "", this); + // TRANSLATORS: settings option new SetupItemCheckBox(_("Allow magic and GM commands in all chat tabs"), "", "allowCommandsInChatTabs", this, "allowCommandsInChatTabsEvent"); + // TRANSLATORS: settings group new SetupItemLabel(_("Limits"), "", this); + // TRANSLATORS: settings option new SetupItemIntTextField(_("Limit max chars in chat line"), "", "chatMaxCharLimit", this, "chatMaxCharLimitEvent", 0, 500); + // TRANSLATORS: settings option new SetupItemIntTextField(_("Limit max lines in chat"), "", "chatMaxLinesLimit", this, "chatMaxLinesLimitEvent", 0, 500); + // TRANSLATORS: settings group new SetupItemLabel(_("Logs"), "", this); + // TRANSLATORS: settings option new SetupItemCheckBox(_("Enable chat Log"), "", "enableChatLog", this, "enableChatLogEvent"); + // TRANSLATORS: settings option new SetupItemCheckBox(_("Show chat history"), "", "showChatHistory", this, "showChatHistoryEvent"); + // TRANSLATORS: settings option new SetupItemCheckBox(_("Show guild online messages"), "", "showGuildOnline", this, "showGuildOnlineEvent"); + // TRANSLATORS: settings group new SetupItemLabel(_("Messages"), "", this); + // TRANSLATORS: settings option new SetupItemCheckBox(_("Hide shop messages"), "", "hideShopMessages", this, "hideShopMessagesEvent"); + // TRANSLATORS: settings group new SetupItemLabel(_("Tabs"), "", this); + // TRANSLATORS: settings option new SetupItemCheckBox(_("Put all whispers in tabs"), "", "whispertab", this, "whispertabEvent"); + // TRANSLATORS: settings option new SetupItemCheckBox(_("Log magic messages in debug tab"), "", "showMagicInDebug", this, "showMagicInDebugEvent"); + // TRANSLATORS: settings option new SetupItemCheckBox(_("Show server messages in debug tab"), "", "serverMsgInDebug", this, "serverMsgInDebugEvent"); + // TRANSLATORS: settings option new SetupItemCheckBox(_("Enable trade tab"), "", "enableTradeTab", this, "enableTradeTabEvent"); + // TRANSLATORS: settings option new SetupItemCheckBox(_("Enable gm tab"), "", "enableGmTab", this, "enableGmTabEvent"); + // TRANSLATORS: settings option new SetupItemCheckBox(_("Enable language tab"), "", "enableLangTab", this, "enableLangTabEvent", false); + // TRANSLATORS: settings option new SetupItemCheckBox(_("Show all languages messages"), "", "showAllLang", this, "showAllLangEvent", false); + // TRANSLATORS: settings option new SetupItemCheckBox(_("Enable battle tab"), "", "enableBattleTab", this, "enableBattleTabEvent"); + // TRANSLATORS: settings option new SetupItemCheckBox(_("Show battle events"), "", "showBattleEvents", this, "showBattleEventsEvent"); + // TRANSLATORS: settings option new SetupItemCheckBox(_("Resize chat tabs if need"), "", "hideChatInput", this, "hideChatInputEvent"); + // TRANSLATORS: settings group new SetupItemLabel(_("Time"), "", this); + // TRANSLATORS: settings option new SetupItemCheckBox(_("Use local time"), "", "useLocalTime", this, "useLocalTimeEvent"); + // TRANSLATORS: settings group new SetupItemLabel(_("Other"), "", this); + // TRANSLATORS: settings option new SetupItemTextField(_("Highlight words (separated by comma)"), "", "highlightWords", this, "highlightWordsEvent"); + // TRANSLATORS: settings option new SetupItemCheckBox(_("Show MVP messages"), "", "showMVP", this, "showMVPEvent"); diff --git a/src/gui/setup_colors.cpp b/src/gui/setup_colors.cpp index a46e8d5bd..ec0a74cec 100644 --- a/src/gui/setup_colors.cpp +++ b/src/gui/setup_colors.cpp @@ -44,6 +44,7 @@ #include "debug.h" +// TRANSLATORS: color selection preview message const std::string Setup_Colors::rawmsg = _("This is what the color looks like"); @@ -57,25 +58,31 @@ Setup_Colors::Setup_Colors(const Widget2 *const widget) : mPreviewBox(new ScrollArea(mPreview, true, "setup_colors_preview_background.xml")), mSelected(-1), + // TRANSLATORS: colors tab. label. mGradTypeLabel(new Label(this, _("Type:"))), mGradTypeSlider(new Slider(0, 3)), mGradTypeText(new Label(this)), + // TRANSLATORS: colors tab. label. mGradDelayLabel(new Label(this, _("Delay:"))), mGradDelaySlider(new Slider(20, 100)), mGradDelayText(new TextField(this)), + // TRANSLATORS: colors tab. label. mRedLabel(new Label(this, _("Red:"))), mRedSlider(new Slider(0, 255)), mRedText(new TextField(this)), mRedValue(0), + // TRANSLATORS: colors tab. label. mGreenLabel(new Label(this, _("Green:"))), mGreenSlider(new Slider(0, 255)), mGreenText(new TextField(this)), mGreenValue(0), + // TRANSLATORS: colors tab. label. mBlueLabel(new Label(this, _("Blue:"))), mBlueSlider(new Slider(0, 255)), mBlueText(new TextField(this)), mBlueValue(0) { + // TRANSLATORS: settings colors tab name setName(_("Colors")); mColorBox->addSelectionListener(this); mScroll->setHorizontalScrollPolicy(gcn::ScrollArea::SHOW_NEVER); @@ -94,14 +101,24 @@ Setup_Colors::Setup_Colors(const Widget2 *const widget) : mGradTypeSlider->addActionListener(this); mGradTypeSlider->setEnabled(false); + // TRANSLATORS: color type std::string longText = _("Static"); if (getFont()->getWidth(_("Pulse")) > getFont()->getWidth(longText)) + { + // TRANSLATORS: color type longText = _("Pulse"); + } if (getFont()->getWidth(_("Rainbow")) > getFont()->getWidth(longText)) + { + // TRANSLATORS: color type longText = _("Rainbow"); + } if (getFont()->getWidth(_("Spectrum")) > getFont()->getWidth(longText)) + { + // TRANSLATORS: color type longText = _("Spectrum"); + } mGradTypeText->setCaption(longText); @@ -307,11 +324,13 @@ void Setup_Colors::valueChanged(const gcn::SelectionEvent &event A_UNUSED) case UserPalette::MONSTER_HP2: case UserPalette::PLAYER_HP: case UserPalette::PLAYER_HP2: + // TRANSLATORS: colors tab. label. mGradDelayLabel->setCaption(_("Alpha:")); mGradDelayText->setRange(0, 255); mGradDelaySlider->setScale(0, 255); break; default: + // TRANSLATORS: colors tab. label. mGradDelayLabel->setCaption(_("Delay:")); mGradDelayText->setRange(20, 100); mGradDelaySlider->setScale(20, 100); @@ -397,12 +416,14 @@ void Setup_Colors::updateGradType() const Palette::GradientType grad = userPalette->getGradientType(type); mGradTypeText->setCaption( + // TRANSLATORS: color type (grad == Palette::STATIC) ? _("Static") : + // TRANSLATORS: color type (grad == Palette::PULSE) ? _("Pulse") : + // TRANSLATORS: color type (grad == Palette::RAINBOW) ? _("Rainbow") : _("Spectrum")); const bool enable = (grad == Palette::STATIC || grad == Palette::PULSE); -// const bool delayEnable = (grad != Palette::STATIC); const bool delayEnable = true; mGradDelayText->setEnabled(delayEnable); diff --git a/src/gui/setup_input.cpp b/src/gui/setup_input.cpp index a0eea1d3c..6adbe5d9a 100644 --- a/src/gui/setup_input.cpp +++ b/src/gui/setup_input.cpp @@ -95,15 +95,20 @@ Setup_Input::Setup_Input(const Widget2 *const widget) : SetupTab(widget), mKeyListModel(new KeyListModel), mKeyList(new ListBox(this, mKeyListModel, "")), + // TRANSLATORS: button in input settings tab mAssignKeyButton(new Button(this, _("Assign"), "assign", this)), + // TRANSLATORS: button in input settings tab mUnassignKeyButton(new Button(this, _("Unassign"), "unassign", this)), + // TRANSLATORS: button in input settings tab mDefaultButton(new Button(this, _("Default"), "default", this)), + // TRANSLATORS: button in input settings tab mResetKeysButton(new Button(this, _("Reset all keys"), "resetkeys", this)), mTabs(new TabStrip(this, config.getIntValue("fontSize") + 10)), mKeySetting(false), mActionDataSize(new int [9]) { inputManager.setSetupInput(this); + // TRANSLATORS: setting tab name setName(_("Input")); selectedData = 0; @@ -192,7 +197,9 @@ void Setup_Input::apply() std::string str1 = keyToString(key1); std::string str2 = keyToString(key2); + // TRANSLATORS: input settings error header new OkDialog(_("Key Conflict(s) Detected."), + // TRANSLATORS: input settings error strprintf(_("Conflict \"%s\" and \"%s\" keys. " "Resolve them, or gameplay may result in strange behaviour."), gettext(str1.c_str()), gettext(str2.c_str())), DIALOG_ERROR); @@ -351,6 +358,7 @@ std::string Setup_Input::keyToString(const int index) const return key.name; } } + // TRANSLATORS: unknown key name return _("unknown"); } diff --git a/src/gui/setup_joystick.cpp b/src/gui/setup_joystick.cpp index 6732a3a49..1ac5dae8d 100644 --- a/src/gui/setup_joystick.cpp +++ b/src/gui/setup_joystick.cpp @@ -43,16 +43,22 @@ extern Joystick *joystick; Setup_Joystick::Setup_Joystick(const Widget2 *const widget) : SetupTab(widget), mCalibrateLabel(new Label(this, + // TRANSLATORS: joystick settings tab label _("Press the button to start calibration"))), + // TRANSLATORS: joystick settings tab button mCalibrateButton(new Button(this, _("Calibrate"), "calibrate", this)), + // TRANSLATORS: joystick settings tab button mDetectButton(new Button(this, _("Detect joysticks"), "detect", this)), mOriginalJoystickEnabled(config.getBoolValue("joystickEnabled")), + // TRANSLATORS: joystick settings tab checkbox mJoystickEnabled(new CheckBox(this, _("Enable joystick"))), mNamesModel(new NamesModel), mNamesDropDown(new DropDown(this, mNamesModel)), + // TRANSLATORS: joystick settings tab checkbox mUseInactiveCheckBox(new CheckBox(this, _("Use joystick if client " "window inactive"), config.getBoolValue("useInactiveJoystick"))) { + // TRANSLATORS: joystick settings tab name setName(_("Joystick")); Joystick::getNames(mNamesModel->getNames()); @@ -125,15 +131,19 @@ void Setup_Joystick::action(const gcn::ActionEvent &event) if (joystick->isCalibrating()) { + // TRANSLATORS: joystick settings tab button mCalibrateButton->setCaption(_("Calibrate")); mCalibrateLabel->setCaption + // TRANSLATORS: joystick settings tab label (_("Press the button to start calibration")); joystick->finishCalibration(); } else { + // TRANSLATORS: joystick settings tab button mCalibrateButton->setCaption(_("Stop")); mCalibrateLabel->setCaption( + // TRANSLATORS: joystick settings tab label _("Rotate the stick and don't press buttons")); joystick->startCalibration(); } diff --git a/src/gui/setup_other.cpp b/src/gui/setup_other.cpp index bc4bf8f24..39df3ca13 100644 --- a/src/gui/setup_other.cpp +++ b/src/gui/setup_other.cpp @@ -36,8 +36,11 @@ static const int shortcutsListSize = 3; static const char *const shortcutsList[] = { + // TRANSLATORS: show buttons at top right corner type N_("Always show"), + // TRANSLATORS: show buttons at top right corner type N_("Auto hide in small resolution"), + // TRANSLATORS: show buttons at top right corner type N_("Always auto hide") }; @@ -62,12 +65,19 @@ static const int densityListSize = 7; static const char *const densityList[] = { + // TRANSLATORS: screen density type N_("default"), + // TRANSLATORS: screen density type N_("low"), + // TRANSLATORS: screen density type N_("medium"), + // TRANSLATORS: screen density type N_("tv"), + // TRANSLATORS: screen density type N_("high"), + // TRANSLATORS: screen density type N_("xhigh"), + // TRANSLATORS: screen density type N_("xxhigh") }; @@ -77,117 +87,153 @@ Setup_Other::Setup_Other(const Widget2 *const widget) : mShortcutsList(new NamesModel), mDensityList(new NamesModel) { + // TRANSLATORS: misc tab in settings setName(_("Misc")); LayoutHelper h(this); ContainerPlacer place = h.getPlacer(0, 0); place(0, 0, mScroll, 10, 10); + // TRANSLATORS: settings option new SetupItemLabel(_("Monsters"), "", this); + // TRANSLATORS: settings option new SetupItemCheckBox(_("Show damage inflicted to monsters"), "", "showMonstersTakedDamage", this, "showMonstersTakedDamageEvent"); + // TRANSLATORS: settings option new SetupItemCheckBox(_("Auto target only reachable monsters"), "", "targetOnlyReachable", this, "targetOnlyReachableEvent"); + // TRANSLATORS: settings option new SetupItemCheckBox(_("Highlight monster attack range"), "", "highlightMonsterAttackRange", this, "highlightMonsterAttackRangeEvent"); + // TRANSLATORS: settings option new SetupItemCheckBox(_("Show monster hp bar"), "", "showMobHP", this, "showMobHPEvent"); + // TRANSLATORS: settings option new SetupItemCheckBox(_("Cycle monster targets"), "", "cycleMonsters", this, "cycleMonstersEvent"); + // TRANSLATORS: settings group new SetupItemLabel(_("Map"), "", this); + // TRANSLATORS: settings option new SetupItemCheckBox(_("Show warps particles"), "", "warpParticle", this, "warpParticleEvent"); + // TRANSLATORS: settings option new SetupItemCheckBox(_("Highlight map portals"), "", "highlightMapPortals", this, "highlightMapPortalsEvent"); + // TRANSLATORS: settings option new SetupItemCheckBox(_("Highlight floor items"), "", "floorItemsHighlight", this, "floorItemsHighlightEvent"); + // TRANSLATORS: settings option new SetupItemCheckBox(_("Highlight player attack range"), "", "highlightAttackRange", this, "highlightAttackRangeEvent"); + // TRANSLATORS: settings option new SetupItemCheckBox(_("Show extended minimaps"), "", "showExtMinimaps", this, "showExtMinimapsEvent"); + // TRANSLATORS: settings option new SetupItemCheckBox(_("Draw path"), "", "drawPath", this, "drawPathEvent"); + // TRANSLATORS: settings option new SetupItemCheckBox(_("Draw hotkeys on map"), "", "drawHotKeys", this, "drawHotKeysEvent"); + // TRANSLATORS: settings option new SetupItemCheckBox(_("Enable lazy scrolling"), "", "enableLazyScrolling", this, "enableLazyScrollingEvent"); + // TRANSLATORS: settings option new SetupItemIntTextField(_("Scroll laziness"), "", "ScrollLaziness", this, "ScrollLazinessEvent", 1, 160); + // TRANSLATORS: settings option new SetupItemIntTextField(_("Scroll radius"), "", "ScrollRadius", this, "ScrollRadiusEvent", 0, 32); + // TRANSLATORS: settings option new SetupItemCheckBox(_("Auto resize minimaps"), "", "autoresizeminimaps", this, "autoresizeminimapsEvent"); + // TRANSLATORS: settings group new SetupItemLabel(_("Moving"), "", this); + // TRANSLATORS: settings option new SetupItemCheckBox(_("Auto fix position"), "", "autofixPos", this, "autofixPosEvent"); + // TRANSLATORS: settings option new SetupItemCheckBox(_("Attack while moving"), "", "attackMoving", this, "attackMovingEvent"); + // TRANSLATORS: settings option new SetupItemCheckBox(_("Attack next target"), "", "attackNext", this, "attackNextEvent"); + // TRANSLATORS: settings option new SetupItemCheckBox(_("Sync player move"), "", "syncPlayerMove", this, "syncPlayerMoveEvent"); + // TRANSLATORS: settings option new SetupItemTextField(_("Crazy move A program"), "", "crazyMoveProgram", this, "crazyMoveProgramEvent"); + // TRANSLATORS: settings option new SetupItemCheckBox(_("Mouse relative moves " "(good for touch interfaces)"), "", "mouseDirectionMove", this, "mouseDirectionMoveEvent"); + // TRANSLATORS: settings group new SetupItemLabel(_("Player"), "", this); new SetupItemCheckBox(_("Show own hp bar"), "", "showOwnHP", this, "showOwnHPEvent"); + // TRANSLATORS: settings option new SetupItemCheckBox(_("Enable quick stats"), "", "quickStats", this, "quickStatsEvent"); + // TRANSLATORS: settings option new SetupItemCheckBox(_("Cycle player targets"), "", "cyclePlayers", this, "cyclePlayersEvent"); + // TRANSLATORS: settings option new SetupItemCheckBox(_("Show job exp messages"), "", "showJobExp", this, "showJobExpEvent"); + // TRANSLATORS: settings option new SetupItemCheckBox(_("Show players popups"), "", "showBeingPopup", this, "showBeingPopupEvent"); + // TRANSLATORS: settings option new SetupItemTextField(_("Afk message"), "", "afkMessage", this, "afkMessageEvent"); + // TRANSLATORS: settings option new SetupItemCheckBox(_("Show job"), "", "showJob", this, "showJobEvent", false); + // TRANSLATORS: settings option new SetupItemCheckBox(_("Enable attack filter"), "", "enableAttackFilter", this, "enableAttackFilterEvent"); + // TRANSLATORS: settings option new SetupItemCheckBox(_("Enable pickup filter"), "", "enablePickupFilter", this, "enablePickupFilterEvent"); + // TRANSLATORS: settings option new SetupItemCheckBox(_("Enable advert protocol"), "", "enableAdvert", this, "enableAdvertEvent"); @@ -195,101 +241,132 @@ Setup_Other::Setup_Other(const Widget2 *const widget) : "weightMsg", this, "weightMsgEvent"); + // TRANSLATORS: settings group new SetupItemLabel(_("Shop"), "", this); + // TRANSLATORS: settings option new SetupItemCheckBox(_("Accept sell/buy requests"), "", "autoShop", this, "autoShopEvent"); + // TRANSLATORS: settings option new SetupItemCheckBox(_("Enable shop mode"), "", "tradebot", this, "tradebotEvent"); + // TRANSLATORS: settings group new SetupItemLabel(_("NPC"), "", this); + // TRANSLATORS: settings option new SetupItemCheckBox(_("Cycle npc targets"), "", "cycleNPC", this, "cycleNPCEvent"); + // TRANSLATORS: settings option new SetupItemCheckBox(_("Log NPC dialogue"), "", "logNpcInGui", this, "logNpcInGuiEvent"); + // TRANSLATORS: settings group new SetupItemLabel(_("Bots support"), "", this); + // TRANSLATORS: settings option new SetupItemCheckBox(_("Enable auction bot support"), "", "enableAuctionBot", this, "enableAuctionBotEvent", false); + // TRANSLATORS: settings option new SetupItemCheckBox(_("Enable guild bot support and disable native " "guild support"), "", "enableGuildBot", this, "enableGuildBotEvent", false); + // TRANSLATORS: settings group new SetupItemLabel(_("Keyboard"), "", this); + // TRANSLATORS: settings option new SetupItemIntTextField(_("Repeat delay"), "", "repeateDelay", this, "repeateDelayEvent", 0, 10000); + // TRANSLATORS: settings option new SetupItemIntTextField(_("Repeat interval"), "", "repeateInterval", this, "repeateIntervalEvent", 0, 10000); + // TRANSLATORS: settings option new SetupItemIntTextField(_("Custom repeat interval"), "", "repeateInterval2", this, "repeateInterval2Event", 0, 10000); + // TRANSLATORS: settings group new SetupItemLabel(_("Windows"), "", this); mShortcutsList->fillFromArray(&shortcutsList[0], shortcutsListSize); + // TRANSLATORS: settings option new SetupItemDropDown(_("Shortcut buttons"), "", "autohideButtons", this, "autohideButtonsEvent", mShortcutsList, 200); + // TRANSLATORS: settings group new SetupItemLabel(_("Proxy server"), "", this); mProxyTypeList->fillFromArray(&proxyTypeList[0], proxyTypeListSize); + // TRANSLATORS: settings option new SetupItemDropDown(_("Proxy type"), "", "downloadProxyType", this, "downloadProxyTypeEvent", mProxyTypeList, 200); + // TRANSLATORS: settings option new SetupItemTextField(_("Proxy address:port"), "", "downloadProxy", this, "downloadProxyEvent"); + // TRANSLATORS: settings group new SetupItemLabel(_("Other"), "", this); + // TRANSLATORS: settings option new SetupItemCheckBox(_("Enable server side attack"), "", "serverAttack", this, "serverAttackEvent"); + // TRANSLATORS: settings option new SetupItemCheckBox(_("Enable bot checker"), "", "enableBotCheker", this, "enableBotChekerEvent"); + // TRANSLATORS: settings option new SetupItemCheckBox(_("Enable buggy servers protection " "(do not disable)"), "", "enableBuggyServers", this, "enableBuggyServersEvent", false); + // TRANSLATORS: settings option new SetupItemCheckBox(_("Enable debug log"), "", "debugLog", this, "debugLogEvent"); + // TRANSLATORS: settings option new SetupItemCheckBox(_("Enable OpenGL log"), "", "debugOpenGL", this, "debugOpenGLEvent"); + // TRANSLATORS: settings option new SetupItemCheckBox(_("Enable input log"), "", "logInput", this, "logInputEvent"); + // TRANSLATORS: settings option new SetupItemCheckBox(_("Low traffic mode"), "", "lowTraffic", this, "lowTrafficEvent"); + // TRANSLATORS: settings option new SetupItemCheckBox(_("Hide shield sprite"), "", "hideShield", this, "hideShieldEvent"); #ifndef ANDROID + // TRANSLATORS: settings option new SetupItemCheckBox(_("Use FBO for screenshots (only for opengl)"), "", "usefbo", this, "usefboEvent"); #endif + // TRANSLATORS: settings option new SetupItemIntTextField(_("Network delay between sub servers"), "", "networksleep", this, "networksleepEvent", 0, 10000); + // TRANSLATORS: settings option new SetupItemCheckBox(_("Show background"), "", "showBackground", this, "showBackgroundEvent"); mDensityList->fillFromArray(&densityList[0], densityListSize); + // TRANSLATORS: settings option new SetupItemDropDown(_("Screen density override"), "", "screenDensity", this, "screenDensityEvent", mDensityList, 100); diff --git a/src/gui/setup_perfomance.cpp b/src/gui/setup_perfomance.cpp index 0d924690b..303e14c88 100644 --- a/src/gui/setup_perfomance.cpp +++ b/src/gui/setup_perfomance.cpp @@ -46,6 +46,7 @@ static const int texturesListSize = 4; static const char *const texturesList[] = { + // TRANSLATORS: texture compression type N_("No"), "s3tc", "fxt1", @@ -56,6 +57,7 @@ Setup_Perfomance::Setup_Perfomance(const Widget2 *const widget) : SetupTabScroll(widget), mTexturesList(new NamesModel) { + // TRANSLATORS: settings tab name setName(_("Perfomance")); // Do the layout @@ -63,72 +65,93 @@ Setup_Perfomance::Setup_Perfomance(const Widget2 *const widget) : ContainerPlacer place = h.getPlacer(0, 0); place(0, 0, mScroll, 10, 10); + // TRANSLATORS: settings option new SetupItemLabel(_("Better perfomance (enable for better perfomance)"), "", this); + // TRANSLATORS: settings option new SetupItemCheckBox(_("Auto adjust perfomance"), "", "adjustPerfomance", this, "adjustPerfomanceEvent"); + // TRANSLATORS: settings option new SetupItemCheckBox(_("Hw acceleration"), "", "hwaccel", this, "hwaccelEvent"); + // TRANSLATORS: settings option new SetupItemCheckBox(_("Enable opacity cache (Software, can " "use many memory)"), "", "alphaCache", this, "alphaCacheEvent"); + // TRANSLATORS: settings option new SetupItemCheckBox(_("Enable map reduce (Software)"), "", "enableMapReduce", this, "enableMapReduceEvent"); + // TRANSLATORS: settings option new SetupItemCheckBox(_("Enable compound sprite delay (Software)"), "", "enableCompoundSpriteDelay", this, "enableCompoundSpriteDelayEvent"); + // TRANSLATORS: settings option new SetupItemCheckBox(_("Enable delayed images load (OpenGL)"), "", "enableDelayedAnimations", this, "enableDelayedAnimationsEvent"); + // TRANSLATORS: settings option new SetupItemCheckBox(_("Enable texture sampler (OpenGL)"), "", "useTextureSampler", this, "useTextureSamplerEvent"); + // TRANSLATORS: settings option new SetupItemLabel(_("Better quality (disable for better perfomance)"), "", this); + // TRANSLATORS: settings option new SetupItemCheckBox(_("Enable alpha channel fix (Software, can " "be very slow)"), "Can slow down drawing", "enableAlphaFix", this, "enableAlphaFixEvent"); + // TRANSLATORS: settings option new SetupItemCheckBox(_("Show beings transparency"), "", "beingopacity", this, "beingopacityEvent"); + // TRANSLATORS: settings option new SetupItemCheckBox(_("Enable reorder sprites."), "", "enableReorderSprites", this, "enableReorderSpritesEvent"); + // TRANSLATORS: settings option new SetupItemLabel(_("Small memory (enable for lower memory usage)"), "", this); + // TRANSLATORS: settings option new SetupItemCheckBox(_("Disable advanced beings caching (Software)"), "", "disableAdvBeingCaching", this, "disableAdvBeingCachingEvent"); + // TRANSLATORS: settings option new SetupItemCheckBox(_("Disable beings caching (Software)"), "", "disableBeingCaching", this, "disableBeingCachingEvent"); + // TRANSLATORS: settings group new SetupItemLabel(_("Different options (enable or disable can " "improve perfomance)"), "", this); mTexturesList->fillFromArray(&texturesList[0], texturesListSize); + // TRANSLATORS: settings option new SetupItemDropDown(_("Enable texture compression (fast OpenGL)"), "", "compresstextures", this, "compresstexturesEvent", mTexturesList, 100); + // TRANSLATORS: settings option new SetupItemCheckBox(_("Enable rectangular texture extension (OpenGL)"), "", "rectangulartextures", this, "rectangulartexturesEvent"); + // TRANSLATORS: settings option new SetupItemCheckBox(_("Use new texture internal format (OpenGL)"), "", "newtextures", this, "newtexturesEvent"); + // TRANSLATORS: settings option new SetupItemCheckBox(_("Enable texture atlases (OpenGL)"), "", "useAtlases", this, "useAtlasesEvent"); + // TRANSLATORS: settings option new SetupItemCheckBox(_("Cache all sprites per map (can use " "additinal memory)"), "", "uselonglivesprites", this, "uselonglivespritesEvent"); diff --git a/src/gui/setup_players.cpp b/src/gui/setup_players.cpp index 92e856897..3834703f5 100644 --- a/src/gui/setup_players.cpp +++ b/src/gui/setup_players.cpp @@ -44,51 +44,66 @@ Setup_Players::Setup_Players(const Widget2 *const widget) : SetupTabScroll(widget) { + // TRANSLATORS: settings tab name setName(_("Players")); LayoutHelper h(this); ContainerPlacer place = h.getPlacer(0, 0); place(0, 0, mScroll, 10, 10); + // TRANSLATORS: settings option new SetupItemCheckBox(_("Show gender"), "", "showgender", this, "showgenderEvent"); + // TRANSLATORS: settings option new SetupItemCheckBox(_("Show level"), "", "showlevel", this, "showlevelEvent"); + // TRANSLATORS: settings option new SetupItemCheckBox(_("Show own name"), "", "showownname", this, "showownnameEvent"); + // TRANSLATORS: settings option new SetupItemCheckBox(_("Enable extended mouse targeting"), "", "extMouseTargeting", this, "extMouseTargetingEvent"); + // TRANSLATORS: settings option new SetupItemCheckBox(_("Target dead players"), "", "targetDeadPlayers", this, "targetDeadPlayersEvent"); + // TRANSLATORS: settings option new SetupItemCheckBox(_("Visible names"), "", "visiblenames", this, "visiblenamesEvent"); + // TRANSLATORS: settings option new SetupItemCheckBox(_("Auto move names"), "", "moveNames", this, "moveNamesEvent"); + // TRANSLATORS: settings option new SetupItemCheckBox(_("Secure trades"), "", "securetrades", this, "securetradesEvent"); + // TRANSLATORS: settings option new SetupItemTextField(_("Unsecure chars in names"), "", "unsecureChars", this, "unsecureCharsEvent"); + // TRANSLATORS: settings option new SetupItemCheckBox(_("Show statuses"), "", "showPlayersStatus", this, "showPlayersStatusEvent"); + // TRANSLATORS: settings option new SetupItemCheckBox(_("Show ip addresses on screenshots"), "", "showip", this, "showipEvent"); + // TRANSLATORS: settings option new SetupItemCheckBox(_("Allow self heal with mouse click"), "", "selfMouseHeal", this, "selfMouseHealEvent"); + // TRANSLATORS: settings option new SetupItemCheckBox(_("Group friends in who is online window"), "", "groupFriends", this, "groupFriendsEvent"); + // TRANSLATORS: settings option new SetupItemCheckBox(_("Hide erased players nicks"), "", "hideErased", this, "hideErasedEvent"); diff --git a/src/gui/setup_relations.cpp b/src/gui/setup_relations.cpp index ccc6d8ce2..5a2f34f5d 100644 --- a/src/gui/setup_relations.cpp +++ b/src/gui/setup_relations.cpp @@ -57,18 +57,27 @@ static const unsigned int RELATION_CHOICE_COLUMN_WIDTH = 80; static const char *const table_titles[COLUMNS_NR] = { + // TRANSLATORS: relations table header N_("Name"), + // TRANSLATORS: relations table header N_("Relation") }; static const char *const RELATION_NAMES[PlayerRelation::RELATIONS_NR] = { + // TRANSLATORS: relation type N_("Neutral"), + // TRANSLATORS: relation type N_("Friend"), + // TRANSLATORS: relation type N_("Disregarded"), + // TRANSLATORS: relation type N_("Ignored"), + // TRANSLATORS: relation type N_("Erased"), + // TRANSLATORS: relation type N_("Blacklisted"), + // TRANSLATORS: relation type N_("Enemy") }; @@ -225,7 +234,7 @@ public: virtual std::string getElementAt(int i) { if (i >= getNumberOfElements() || i < 0) - return _("???"); + return "???"; return (*player_relations.getPlayerIgnoreStrategies()) [i]->mDescription; @@ -244,14 +253,17 @@ Setup_Relations::Setup_Relations(const Widget2 *const widget) : mPlayerTable(new GuiTable(mPlayerTableModel)), mPlayerTitleTable(new GuiTable(this, mPlayerTableTitleModel)), mPlayerScrollArea(new ScrollArea(mPlayerTable)), + // TRANSLATORS: relation dialog button mDefaultTrading(new CheckBox(this, _("Allow trading"), - player_relations.getDefault() & PlayerRelation::TRADE)), + player_relations.getDefault() & PlayerRelation::TRADE)), + // TRANSLATORS: relation dialog button mDefaultWhisper(new CheckBox(this, _("Allow whispers"), - player_relations.getDefault() & PlayerRelation::WHISPER)), + player_relations.getDefault() & PlayerRelation::WHISPER)), mDeleteButton(new Button(this, _("Delete"), ACTION_DELETE, this)), mIgnoreActionChoicesModel(new IgnoreChoicesListModel), mIgnoreActionChoicesBox(new DropDown(widget, mIgnoreActionChoicesModel)) { + // TRANSLATORS: relation dialog name setName(_("Relations")); mPlayerTable->setOpaque(false); @@ -275,6 +287,7 @@ Setup_Relations::Setup_Relations(const Widget2 *const widget) : mPlayerTable->setLinewiseSelection(true); mPlayerTable->addActionListener(this); + // TRANSLATORS: relation dialog label Label *const ignore_action_label = new Label(this, _("When ignoring:")); mIgnoreActionChoicesBox->setActionEventId(ACTION_STRATEGY); diff --git a/src/gui/setup_theme.cpp b/src/gui/setup_theme.cpp index f0cacf8af..b672085b2 100644 --- a/src/gui/setup_theme.cpp +++ b/src/gui/setup_theme.cpp @@ -82,16 +82,27 @@ const int maxFontSizes = 11; const char *SIZE_NAME[maxFontSizes] = { + // TRANSLATORS: font size N_("Very small (9)"), + // TRANSLATORS: font size N_("Tiny (10)"), + // TRANSLATORS: font size N_("Small (11)"), + // TRANSLATORS: font size N_("Medium (12)"), + // TRANSLATORS: font size N_("Normal (13)"), + // TRANSLATORS: font size N_("Large (14)"), + // TRANSLATORS: font size N_("Very large (15)"), + // TRANSLATORS: font size N_("Big (16)"), + // TRANSLATORS: font size N_("Very big (17)"), + // TRANSLATORS: font size N_("Huge (18)"), + // TRANSLATORS: font size N_("Very huge (19)"), }; @@ -107,7 +118,7 @@ public: virtual std::string getElementAt(int i) { if (i >= getNumberOfElements() || i < 0) - return _("???"); + return "???"; return gettext(SIZE_NAME[i]); } @@ -124,22 +135,39 @@ const int langs_count = 17; const Language LANG_NAME[langs_count] = { + // TRANSLATORS: language {N_("(default)"), "", ""}, + // TRANSLATORS: language {N_("Chinese (China)"), "zh_CN", "cn.png"}, + // TRANSLATORS: language {N_("Czech"), "cs_CZ", "cz.png"}, + // TRANSLATORS: language {N_("English"), "C", "en.png"}, + // TRANSLATORS: language {N_("Finnish"), "fi_FI", "fi.png"}, + // TRANSLATORS: language {N_("French"), "fr_FR", "fr.png"}, + // TRANSLATORS: language {N_("German"), "de_DE", "de.png"}, + // TRANSLATORS: language {N_("Indonesian"), "id_ID", "id.png"}, + // TRANSLATORS: language {N_("Italian"), "it_IT", "it.png"}, + // TRANSLATORS: language {N_("Polish"), "pl_PL", "pl.png"}, + // TRANSLATORS: language {N_("Japanese"), "ja_JP", "jp.png"}, + // TRANSLATORS: language {N_("Dutch (Belgium/Flemish)"), "nl_BE", "nl_BE.png"}, + // TRANSLATORS: language {N_("Portuguese"), "pt_PT", "pt.png"}, + // TRANSLATORS: language {N_("Portuguese (Brazilian)"), "pt_BR", "pt_BR.png"}, + // TRANSLATORS: language {N_("Russian"), "ru_RU", "ru.png"}, + // TRANSLATORS: language {N_("Spanish (Castilian)"), "es_ES", "es.png"}, + // TRANSLATORS: language {N_("Turkish"), "tr_TR", "tr.png"} }; @@ -174,7 +202,7 @@ public: std::string getElementAt(int i) override A_WARN_UNUSED { if (i >= getNumberOfElements() || i < 0) - return _("???"); + return "???"; return gettext(LANG_NAME[i].name.c_str()); } @@ -191,39 +219,49 @@ public: Setup_Theme::Setup_Theme(const Widget2 *const widget) : SetupTab(widget), + // TRANSLATORS: theme settings label mThemeLabel(new Label(this, _("Gui theme"))), mThemesModel(new ThemesModel), mThemeDropDown(new DropDown(this, mThemesModel)), mTheme(config.getStringValue("theme")), mInfo(Theme::loadInfo(mTheme)), mFontsModel(new FontsModel), + // TRANSLATORS: theme settings label mFontLabel(new Label(this, _("Main Font"))), mFontDropDown(new DropDown(this, mFontsModel)), mFont(config.getStringValue("font")), mLangListModel(new LangListModel), + // TRANSLATORS: theme settings label mLangLabel(new Label(this, _("Language"))), mLangDropDown(new DropDown(this, mLangListModel, true)), mLang(config.getStringValue("lang")), + // TRANSLATORS: theme settings label mBoldFontLabel(new Label(this, _("Bold font"))), mBoldFontDropDown(new DropDown(this, mFontsModel)), mBoldFont(config.getStringValue("boldFont")), + // TRANSLATORS: theme settings label mParticleFontLabel(new Label(this, _("Particle font"))), mParticleFontDropDown(new DropDown(this, mFontsModel)), mParticleFont(config.getStringValue("particleFont")), + // TRANSLATORS: theme settings label mHelpFontLabel(new Label(this, _("Help font"))), mHelpFontDropDown(new DropDown(this, mFontsModel)), mHelpFont(config.getStringValue("helpFont")), + // TRANSLATORS: theme settings label mSecureFontLabel(new Label(this, _("Secure font"))), mSecureFontDropDown(new DropDown(this, mFontsModel)), mSecureFont(config.getStringValue("secureFont")), + // TRANSLATORS: theme settings label mJapanFontLabel(new Label(this, _("Japanese font"))), mJapanFontDropDown(new DropDown(this, mFontsModel)), mJapanFont(config.getStringValue("japanFont")), mFontSizeListModel(new FontSizeChoiceListModel), + // TRANSLATORS: theme settings label mFontSizeLabel(new Label(this, _("Font size"))), mFontSize(config.getIntValue("fontSize")), mFontSizeDropDown(new DropDown(this, mFontSizeListModel)), mNpcFontSizeListModel(new FontSizeChoiceListModel), + // TRANSLATORS: theme settings label mNpcFontSizeLabel(new Label(this, _("Npc font size"))), mNpcFontSize(config.getIntValue("npcfontSize")), mNpcFontSizeDropDown(new DropDown(this, mNpcFontSizeListModel)), @@ -231,6 +269,7 @@ Setup_Theme::Setup_Theme(const Widget2 *const widget) : mInfoButton(new Button(this, _("i"), ACTION_INFO, this)), mThemeInfo() { + // TRANSLATORS: theme settings tab name setName(_("Theme")); mThemeDropDown->setActionEventId(ACTION_THEME); @@ -399,6 +438,7 @@ void Setup_Theme::action(const gcn::ActionEvent &event) } else if (eventId == ACTION_INFO) { + // TRANSLATORS: theme info dialog header new OkDialog(_("Theme info"), mThemeInfo, DIALOG_OK, false, true, nullptr, 600); } @@ -423,6 +463,7 @@ void Setup_Theme::apply() { if (config.getStringValue("theme") != mTheme) { + // TRANSLATORS: theme message dialog new OkDialog(_("Theme Changed"), _("Restart your client for " "the change to take effect.")); } diff --git a/src/gui/setup_touch.cpp b/src/gui/setup_touch.cpp index 8fa3c5a7f..011a27016 100644 --- a/src/gui/setup_touch.cpp +++ b/src/gui/setup_touch.cpp @@ -31,9 +31,13 @@ static const int sizeListSize = 4; static const char *const sizeList[] = { + // TRANSLATORS: onscreen button size N_("Small"), + // TRANSLATORS: onscreen button size N_("Normal"), + // TRANSLATORS: onscreen button size N_("Medium"), + // TRANSLATORS: onscreen button size N_("Large") }; @@ -51,6 +55,7 @@ Setup_Touch::Setup_Touch(const Widget2 *const widget) : mFormatList(new NamesModel), mActionsList(new TouchActionsModel) { + // TRANSLATORS: touch settings tab setName(_("Touch")); LayoutHelper h(this); @@ -59,48 +64,62 @@ Setup_Touch::Setup_Touch(const Widget2 *const widget) : mSizeList->fillFromArray(&sizeList[0], sizeListSize); mFormatList->fillFromArray(&formatList[0], formatListSize); + // TRANSLATORS: settings option new SetupItemLabel(_("Onscreen keyboard"), "", this); + // TRANSLATORS: settings option new SetupItemCheckBox(_("Show onscreen keyboard icon"), "", "showScreenKeyboard", this, "showScreenKeyboardEvent"); + // TRANSLATORS: settings option new SetupActionDropDown(_("Keyboard icon action"), "", "screenActionKeyboard", this, "screenActionKeyboardEvent", mActionsList, 250); + // TRANSLATORS: settings group new SetupItemLabel(_("Onscreen joystick"), "", this); + // TRANSLATORS: settings option new SetupItemCheckBox(_("Show onscreen joystick"), "", "showScreenJoystick", this, "showScreenJoystickEvent"); + // TRANSLATORS: settings option new SetupItemDropDown(_("Joystick size"), "", "screenJoystickSize", this, "screenJoystickEvent", mSizeList, 100); + // TRANSLATORS: settings group new SetupItemLabel(_("Onscreen buttons"), "", this); + // TRANSLATORS: settings option new SetupItemCheckBox(_("Show onscreen buttons"), "", "showScreenButtons", this, "showScreenButtonsEvent"); + // TRANSLATORS: settings option new SetupItemDropDown(_("Buttons format"), "", "screenButtonsFormat", this, "screenButtonsFormatEvent", mFormatList, 100); + // TRANSLATORS: settings option new SetupItemDropDown(_("Buttons size"), "", "screenButtonsSize", this, "screenButtonsSizeEvent", mSizeList, 100); + // TRANSLATORS: settings option new SetupActionDropDown(strprintf(_("Button %u action"), 1u), "", "screenActionButton0", this, "screenActionButton0Event", mActionsList, 250); + // TRANSLATORS: settings option new SetupActionDropDown(strprintf(_("Button %u action"), 2u), "", "screenActionButton1", this, "screenActionButton1Event", mActionsList, 250); + // TRANSLATORS: settings option new SetupActionDropDown(strprintf(_("Button %u action"), 3u), "", "screenActionButton2", this, "screenActionButton2Event", mActionsList, 250); + // TRANSLATORS: settings option new SetupActionDropDown(strprintf(_("Button %u action"), 4u), "", "screenActionButton3", this, "screenActionButton3Event", mActionsList, 250); diff --git a/src/gui/setup_video.cpp b/src/gui/setup_video.cpp index e0054b0e0..65e06d271 100644 --- a/src/gui/setup_video.cpp +++ b/src/gui/setup_video.cpp @@ -178,11 +178,15 @@ int ModeListModel::getIndexOf(const std::string &widthXHeightMode) const char *OPENGL_NAME[4] = { + // TRANSLATORS: draw backend N_("Software"), #ifndef ANDROID + // TRANSLATORS: draw backend N_("Fast OpenGL"), + // TRANSLATORS: draw backend N_("Safe OpenGL"), #endif + // TRANSLATORS: draw backend N_("Mobile OpenGL"), }; @@ -202,8 +206,7 @@ public: virtual std::string getElementAt(int i) { if (i >= getNumberOfElements() || i < 0) - return _("???"); - + return "???"; return gettext(OPENGL_NAME[i]); } }; @@ -221,28 +224,37 @@ Setup_Video::Setup_Video(const Widget2 *const widget) : mModeListModel(new ModeListModel), mOpenGLListModel(new OpenGLListModel), mModeList(new ListBox(widget, mModeListModel, "")), + // TRANSLATORS: video settings checkbox mFsCheckBox(new CheckBox(this, _("Full screen"), mFullScreenEnabled)), mOpenGLDropDown(new DropDown(widget, mOpenGLListModel)), mCustomCursorCheckBox(new CheckBox(this, #ifdef ANDROID - _("Show cursor"), + // TRANSLATORS: video settings checkbox + _("Show cursor"), #else - _("Custom cursor"), + // TRANSLATORS: video settings checkbox + _("Custom cursor"), #endif mCustomCursorEnabled)), + // TRANSLATORS: video settings checkbox mEnableResizeCheckBox(new CheckBox(this, _("Enable resize"), mEnableResize)), + // TRANSLATORS: video settings checkbox mNoFrameCheckBox(new CheckBox(this, _("No frame"), mNoFrame)), + // TRANSLATORS: video settings checkbox mFpsCheckBox(new CheckBox(this, _("FPS limit:"))), mFpsSlider(new Slider(2, 160)), mFpsLabel(new Label(this)), mAltFpsSlider(new Slider(2, 160)), + // TRANSLATORS: video settings label mAltFpsLabel(new Label(this, _("Alt FPS limit: "))), #if !defined(ANDROID) && !defined(__APPLE__) + // TRANSLATORS: video settings button mDetectButton(new Button(this, _("Detect best mode"), "detect", this)), #endif mDialog(nullptr) { + // TRANSLATORS: video settings tab name setName(_("Video")); ScrollArea *const scrollArea = new ScrollArea(mModeList, @@ -262,8 +274,10 @@ Setup_Video::Setup_Video(const Widget2 *const widget) : mModeList->setEnabled(true); + // TRANSLATORS: video settings label mFpsLabel->setCaption(mFps > 0 ? toString(mFps) : _("None")); mFpsLabel->setWidth(60); + // TRANSLATORS: video settings label mAltFpsLabel->setCaption(_("Alt FPS limit: ") + (mAltFps > 0 ? toString(mAltFps) : _("None"))); mAltFpsLabel->setWidth(150); @@ -371,12 +385,14 @@ void Setup_Video::apply() std::stringstream errorMsg; if (fullscreen) { + // TRANSLATORS: video error message errorMsg << _("Failed to switch to windowed mode " "and restoration of old mode also " "failed!") << std::endl; } else { + // TRANSLATORS: video error message errorMsg << _("Failed to switch to fullscreen mode" " and restoration of old mode also " "failed!") << std::endl; @@ -388,7 +404,9 @@ void Setup_Video::apply() } else { + // TRANSLATORS: video settings warning new OkDialog(_("Switching to Full Screen"), + // TRANSLATORS: video settings warning _("Restart needed for changes to take effect.")); } #endif @@ -407,7 +425,9 @@ void Setup_Video::apply() config.setValue("opengl", mode); // OpenGL can currently only be changed by restarting, notify user. + // TRANSLATORS: video settings warning new OkDialog(_("Changing to OpenGL"), + // TRANSLATORS: video settings warning _("Applying change to OpenGL requires restart.")); } @@ -444,7 +464,9 @@ void Setup_Video::cancel() mAltFpsSlider->setValue(mAltFps); mAltFpsSlider->setEnabled(mAltFps > 0); mFpsLabel->setCaption(mFpsCheckBox->isSelected() + // TRANSLATORS: video settings label ? toString(mFps) : _("None")); + // TRANSLATORS: video settings label mAltFpsLabel->setCaption(_("Alt FPS limit: ") + toString(mAltFps)); mEnableResizeCheckBox->setSelected(mEnableResize); mNoFrameCheckBox->setSelected(mNoFrame); @@ -483,7 +505,9 @@ void Setup_Video::action(const gcn::ActionEvent &event) else { mDialog = new TextDialog( + // TRANSLATORS: resolution question dialog _("Custom resolution (example: 1024x768)"), + // TRANSLATORS: resolution question dialog _("Enter new resolution: ")); mDialog->setActionEventId("videomode"); mDialog->addActionListener(this); @@ -507,14 +531,18 @@ void Setup_Video::action(const gcn::ActionEvent &event) if (width < mainGraphics->mWidth || height < mainGraphics->mHeight) { + // TRANSLATORS: video settings warning new OkDialog(_("Screen Resolution Changed"), + // TRANSLATORS: video settings warning _("Restart your client for the change to take effect.") + std::string("\n") + _("Some windows may be moved to " "fit the lowered resolution.")); } else { + // TRANSLATORS: video settings warning new OkDialog(_("Screen Resolution Changed"), + // TRANSLATORS: video settings warning _("Restart your client for the change" " to take effect.")); } @@ -546,6 +574,7 @@ void Setup_Video::action(const gcn::ActionEvent &event) else tempFps = tempFps > 0 ? tempFps : 60; mFps = mFpsCheckBox->isSelected() ? tempFps : 0; + // TRANSLATORS: video settings label const std::string text = mFps > 0 ? toString(mFps) : _("None"); mFpsLabel->setCaption(text); @@ -558,8 +587,10 @@ void Setup_Video::action(const gcn::ActionEvent &event) tempFps = tempFps > 0 ? tempFps : static_cast( mAltFpsSlider->getScaleStart()); mAltFps = tempFps; + // TRANSLATORS: video settings label const std::string text = mAltFps > 0 ? toString(mAltFps) : _("None"); + // TRANSLATORS: video settings label mAltFpsLabel->setCaption(_("Alt FPS limit: ") + text); mAltFpsSlider->setValue(mAltFps); mAltFpsSlider->setEnabled(mAltFps > 0); diff --git a/src/gui/setup_visual.cpp b/src/gui/setup_visual.cpp index 9cddd5682..cbbe9affa 100644 --- a/src/gui/setup_visual.cpp +++ b/src/gui/setup_visual.cpp @@ -35,9 +35,13 @@ static const int speachListSize = 4; static const char *const speachList[] = { + // TRANSLATORS: speach type N_("No text"), + // TRANSLATORS: speach type N_("Text"), + // TRANSLATORS: speach type N_("Bubbles, no names"), + // TRANSLATORS: speach type N_("Bubbles with names") }; @@ -45,8 +49,11 @@ static const int ambientFxListSize = 3; static const char *const ambientFxList[] = { + // TRANSLATORS: ambient effect type N_("off"), + // TRANSLATORS: ambient effect type N_("low"), + // TRANSLATORS: ambient effect type N_("high") }; @@ -54,8 +61,11 @@ static const int particleTypeListSize = 3; static const char *const particleTypeList[] = { + // TRANSLATORS: patricle effects type N_("best quality"), + // TRANSLATORS: patricle effects type N_("normal"), + // TRANSLATORS: patricle effects type N_("best perfomance") }; @@ -63,8 +73,11 @@ static const int vSyncListSize = 3; static const char *const vSyncList[] = { + // TRANSLATORS: vsync type N_("default"), + // TRANSLATORS: vsync type N_("off"), + // TRANSLATORS: vsync type N_("on") }; @@ -76,6 +89,7 @@ Setup_Visual::Setup_Visual(const Widget2 *const widget) : mParticleTypeList(new NamesModel), mVSyncList(new NamesModel) { + // TRANSLATORS: settings tab name setName(_("Visual")); // Do the layout LayoutHelper h(this); @@ -84,41 +98,55 @@ Setup_Visual::Setup_Visual(const Widget2 *const widget) : mPreferredFirstItemSize = 150; + // TRANSLATORS: settings option new SetupItemLabel(_("Notifications"), "", this); + // TRANSLATORS: settings option new SetupItemCheckBox(_("Show pickup notifications in chat"), "", "showpickupchat", this, "showpickupchatEvent"); + // TRANSLATORS: settings option new SetupItemCheckBox(_("Show pickup notifications as particle effects"), "", "showpickupparticle", this, "showpickupparticleEvent"); + // TRANSLATORS: settings option new SetupItemLabel(_("Effects"), "", this); #ifndef ANDROID + // TRANSLATORS: settings option new SetupItemCheckBox(_("Grab mouse and keyboard input"), "", "grabinput", this, "grabinputEvent"); #endif + // TRANSLATORS: settings option new SetupItemCheckBox(_("Blurring textures (OpenGL)"), "", "blur", this, "blurEvent"); + // TRANSLATORS: settings option new SetupItemSlider(_("Gui opacity"), "", "guialpha", this, "guialphaEvent", 0.1, 1.0, 150, true); mSpeachList->fillFromArray(&speachList[0], speachListSize); + // TRANSLATORS: settings option new SetupItemDropDown(_("Overhead text"), "", "speech", this, "speechEvent", mSpeachList, 200); mAmbientFxList->fillFromArray(&ambientFxList[0], ambientFxListSize); + // TRANSLATORS: settings option new SetupItemDropDown(_("Ambient FX"), "", "OverlayDetail", this, "OverlayDetailEvent", mAmbientFxList, 100); + // TRANSLATORS: settings option new SetupItemCheckBox(_("Particle effects"), "", "particleeffects", this, "particleeffectsEvent"); + // TRANSLATORS: particle details mParticleList->push_back(_("low")); + // TRANSLATORS: particle details mParticleList->push_back(_("medium")); + // TRANSLATORS: particle details mParticleList->push_back(_("high")); + // TRANSLATORS: particle details mParticleList->push_back(_("max")); (new SetupItemSlider2(_("Particle detail"), "", "particleEmitterSkip", this, "particleEmitterSkipEvent", 0, 3, @@ -126,30 +154,38 @@ Setup_Visual::Setup_Visual(const Widget2 *const widget) : mParticleTypeList->fillFromArray(&particleTypeList[0], particleTypeListSize); + // TRANSLATORS: settings option new SetupItemDropDown(_("Particle physics"), "", "particleFastPhysics", this, "particleFastPhysicsEvent", mParticleTypeList, 200); + // TRANSLATORS: settings group new SetupItemLabel(_("Gamma"), "", this); + // TRANSLATORS: settings option new SetupItemCheckBox(_("Enable gamma control"), "", "enableGamma", this, "enableGammaEvent"); + // TRANSLATORS: settings option new SetupItemSlider(_("Gamma"), "", "gamma", this, "gammeEvent", 1, 20, 350, true); + // TRANSLATORS: settings group new SetupItemLabel(_("Other"), "", this); mVSyncList->fillFromArray(&vSyncList[0], vSyncListSize); + // TRANSLATORS: settings option new SetupItemDropDown(_("Vsync"), "", "vsync", this, "vsyncEvent", mVSyncList, 100); #if defined(WIN32) || defined(__APPLE__) + // TRANSLATORS: settings option new SetupItemCheckBox(_("Center game window"), "", "centerwindow", this, "centerwindowEvent"); #endif + // TRANSLATORS: settings option new SetupItemCheckBox(_("Allow screensaver to run"), "", "allowscreensaver", this, "allowscreensaverEvent"); diff --git a/src/gui/setupactiondata.h b/src/gui/setupactiondata.h index b47abace7..fb1df44bb 100644 --- a/src/gui/setupactiondata.h +++ b/src/gui/setupactiondata.h @@ -41,126 +41,151 @@ struct SetupActionData final static SetupActionData setupActionData0[] = { { + // TRANSLATORS: input action name N_("Target and attack keys"), Input::KEY_NO_VALUE, "", }, { + // TRANSLATORS: input action name N_("Attack"), Input::KEY_ATTACK, "", }, { + // TRANSLATORS: input action name N_("Target & Attack"), Input::KEY_TARGET_ATTACK, "", }, { + // TRANSLATORS: input action name N_("Move to Target"), Input::KEY_MOVE_TO_TARGET, "", }, { + // TRANSLATORS: input action name N_("Change Move to Target type"), Input::KEY_CHANGE_MOVE_TO_TARGET, "", }, { + // TRANSLATORS: input action name N_("Move to Home location"), Input::KEY_MOVE_TO_HOME, "", }, { + // TRANSLATORS: input action name N_("Set home location"), Input::KEY_SET_HOME, "", }, { + // TRANSLATORS: input action name N_("Move to navigation point"), Input::KEY_MOVE_TO_POINT, "", }, { + // TRANSLATORS: input action name N_("Talk"), Input::KEY_TALK, "", }, { + // TRANSLATORS: input action name N_("Stop Attack"), Input::KEY_STOP_ATTACK, "", }, { + // TRANSLATORS: input action name N_("Untarget"), Input::KEY_UNTARGET, "", }, { + // TRANSLATORS: input action name N_("Target monster"), Input::KEY_TARGET_MONSTER, "", }, { + // TRANSLATORS: input action name N_("Target NPC"), Input::KEY_TARGET_NPC, "", }, { + // TRANSLATORS: input action name N_("Target Player"), Input::KEY_TARGET_PLAYER, "", }, { + // TRANSLATORS: input action name N_("Other Keys"), Input::KEY_NO_VALUE, "", }, { + // TRANSLATORS: input action name N_("Pickup"), Input::KEY_PICKUP, "", }, { + // TRANSLATORS: input action name N_("Change Pickup Type"), Input::KEY_CHANGE_PICKUP_TYPE, "", }, { + // TRANSLATORS: input action name N_("Sit"), Input::KEY_SIT, "", }, { + // TRANSLATORS: input action name N_("Screenshot"), Input::KEY_SCREENSHOT, "", }, { + // TRANSLATORS: input action name N_("Enable/Disable Trading"), Input::KEY_TRADE, "", }, { + // TRANSLATORS: input action name N_("Change Map View Mode"), Input::KEY_PATHFIND, "", }, { + // TRANSLATORS: input action name N_("Select OK"), Input::KEY_OK, "", }, { + // TRANSLATORS: input action name N_("Quit"), Input::KEY_QUIT, "", }, { + // TRANSLATORS: input action name N_("Stop or sit"), Input::KEY_STOP_SIT, "", }, { + // TRANSLATORS: input action name N_("Return to safe video mode"), Input::KEY_SAFE_VIDEO, "", @@ -175,116 +200,139 @@ static SetupActionData setupActionData0[] = static SetupActionData setupActionData1[] = { { + // TRANSLATORS: input action name N_("Shortcuts modifiers keys"), Input::KEY_NO_VALUE, "" }, { + // TRANSLATORS: input action name N_("Item Shortcuts Key"), Input::KEY_SHORTCUTS_KEY, "", }, { + // TRANSLATORS: input action name N_("Shortcuts keys"), Input::KEY_NO_VALUE, "" }, { + // TRANSLATORS: input action name strprintf(N_("Item Shortcut %d"), 1), Input::KEY_SHORTCUT_1, "", }, { + // TRANSLATORS: input action name strprintf(N_("Item Shortcut %d"), 2), Input::KEY_SHORTCUT_2, "", }, { + // TRANSLATORS: input action name strprintf(N_("Item Shortcut %d"), 3), Input::KEY_SHORTCUT_3, "", }, { + // TRANSLATORS: input action name strprintf(N_("Item Shortcut %d"), 4), Input::KEY_SHORTCUT_4, "", }, { + // TRANSLATORS: input action name strprintf(N_("Item Shortcut %d"), 5), Input::KEY_SHORTCUT_5, "", }, { + // TRANSLATORS: input action name strprintf(N_("Item Shortcut %d"), 6), Input::KEY_SHORTCUT_6, "", }, { + // TRANSLATORS: input action name strprintf(N_("Item Shortcut %d"), 7), Input::KEY_SHORTCUT_7, "", }, { + // TRANSLATORS: input action name strprintf(N_("Item Shortcut %d"), 8), Input::KEY_SHORTCUT_8, "", }, { + // TRANSLATORS: input action name strprintf(N_("Item Shortcut %d"), 9), Input::KEY_SHORTCUT_9, "", }, { + // TRANSLATORS: input action name strprintf(N_("Item Shortcut %d"), 10), Input::KEY_SHORTCUT_10, "", }, { + // TRANSLATORS: input action name strprintf(N_("Item Shortcut %d"), 11), Input::KEY_SHORTCUT_11, "", }, { + // TRANSLATORS: input action name strprintf(N_("Item Shortcut %d"), 12), Input::KEY_SHORTCUT_12, "", }, { + // TRANSLATORS: input action name strprintf(N_("Item Shortcut %d"), 13), Input::KEY_SHORTCUT_13, "", }, { + // TRANSLATORS: input action name strprintf(N_("Item Shortcut %d"), 14), Input::KEY_SHORTCUT_14, "", }, { + // TRANSLATORS: input action name strprintf(N_("Item Shortcut %d"), 15), Input::KEY_SHORTCUT_15, "", }, { + // TRANSLATORS: input action name strprintf(N_("Item Shortcut %d"), 16), Input::KEY_SHORTCUT_16, "", }, { + // TRANSLATORS: input action name strprintf(N_("Item Shortcut %d"), 17), Input::KEY_SHORTCUT_17, "", }, { + // TRANSLATORS: input action name strprintf(N_("Item Shortcut %d"), 18), Input::KEY_SHORTCUT_18, "", }, { + // TRANSLATORS: input action name strprintf(N_("Item Shortcut %d"), 19), Input::KEY_SHORTCUT_19, "", }, { + // TRANSLATORS: input action name strprintf(N_("Item Shortcut %d"), 20), Input::KEY_SHORTCUT_20, "", @@ -299,126 +347,151 @@ static SetupActionData setupActionData1[] = static SetupActionData setupActionData2[] = { { + // TRANSLATORS: input action name N_("Show Windows Menu"), Input::KEY_SHOW_WINDOWS, "", }, { + // TRANSLATORS: input action name N_("Hide Windows"), Input::KEY_HIDE_WINDOWS, "", }, { + // TRANSLATORS: input action name N_("Help Window"), Input::KEY_WINDOW_HELP, "", }, { + // TRANSLATORS: input action name N_("Status Window"), Input::KEY_WINDOW_STATUS, "", }, { + // TRANSLATORS: input action name N_("Inventory Window"), Input::KEY_WINDOW_INVENTORY, "", }, { + // TRANSLATORS: input action name N_("Equipment Window"), Input::KEY_WINDOW_EQUIPMENT, "", }, { + // TRANSLATORS: input action name N_("Skill Window"), Input::KEY_WINDOW_SKILL, "", }, { + // TRANSLATORS: input action name N_("Minimap Window"), Input::KEY_WINDOW_MINIMAP, "", }, { + // TRANSLATORS: input action name N_("Chat Window"), Input::KEY_WINDOW_CHAT, "", }, { + // TRANSLATORS: input action name N_("Item Shortcut Window"), Input::KEY_WINDOW_SHORTCUT, "", }, { + // TRANSLATORS: input action name N_("Setup Window"), Input::KEY_WINDOW_SETUP, "", }, { + // TRANSLATORS: input action name N_("Debug Window"), Input::KEY_WINDOW_DEBUG, "", }, { + // TRANSLATORS: input action name N_("Social Window"), Input::KEY_WINDOW_SOCIAL, "", }, { + // TRANSLATORS: input action name N_("Emote Shortcut Window"), Input::KEY_WINDOW_EMOTE_SHORTCUT, "", }, { + // TRANSLATORS: input action name N_("Outfits Window"), Input::KEY_WINDOW_OUTFIT, "", }, { + // TRANSLATORS: input action name N_("Shop Window"), Input::KEY_WINDOW_SHOP, "", }, { + // TRANSLATORS: input action name N_("Quick drop Window"), Input::KEY_WINDOW_DROP, "", }, { + // TRANSLATORS: input action name N_("Kill Stats Window"), Input::KEY_WINDOW_KILLS, "", }, { + // TRANSLATORS: input action name N_("Commands Window"), Input::KEY_WINDOW_SPELLS, "", }, { + // TRANSLATORS: input action name N_("Bot Checker Window"), Input::KEY_WINDOW_BOT_CHECKER, "", }, { + // TRANSLATORS: input action name N_("Who Is Online Window"), Input::KEY_WINDOW_ONLINE, "", }, { + // TRANSLATORS: input action name N_("Did you know Window"), Input::KEY_WINDOW_DIDYOUKNOW, "", }, { + // TRANSLATORS: input action name N_("Quests Window"), Input::KEY_WINDOW_QUESTS, "", }, { + // TRANSLATORS: input action name N_("Previous Social Tab"), Input::KEY_PREV_SOCIAL_TAB, "", }, { + // TRANSLATORS: input action name N_("Next Social Tab"), Input::KEY_NEXT_SOCIAL_TAB, "", @@ -433,256 +506,307 @@ static SetupActionData setupActionData2[] = static SetupActionData setupActionData3[] = { { + // TRANSLATORS: input action name N_("Emote modifiers keys"), Input::KEY_NO_VALUE, "" }, { + // TRANSLATORS: input action name N_("Emote modifier key"), Input::KEY_EMOTE, "", }, { + // TRANSLATORS: input action name N_("Emote shortcuts"), Input::KEY_NO_VALUE, "" }, { + // TRANSLATORS: input action name strprintf(N_("Emote Shortcut %d"), 1), Input::KEY_EMOTE_1, "", }, { + // TRANSLATORS: input action name strprintf(N_("Emote Shortcut %d"), 2), Input::KEY_EMOTE_2, "", }, { + // TRANSLATORS: input action name strprintf(N_("Emote Shortcut %d"), 3), Input::KEY_EMOTE_3, "", }, { + // TRANSLATORS: input action name strprintf(N_("Emote Shortcut %d"), 4), Input::KEY_EMOTE_4, "", }, { + // TRANSLATORS: input action name strprintf(N_("Emote Shortcut %d"), 5), Input::KEY_EMOTE_5, "", }, { + // TRANSLATORS: input action name strprintf(N_("Emote Shortcut %d"), 6), Input::KEY_EMOTE_6, "", }, { + // TRANSLATORS: input action name strprintf(N_("Emote Shortcut %d"), 7), Input::KEY_EMOTE_7, "", }, { + // TRANSLATORS: input action name strprintf(N_("Emote Shortcut %d"), 8), Input::KEY_EMOTE_8, "", }, { + // TRANSLATORS: input action name strprintf(N_("Emote Shortcut %d"), 9), Input::KEY_EMOTE_9, "", }, { + // TRANSLATORS: input action name strprintf(N_("Emote Shortcut %d"), 10), Input::KEY_EMOTE_10, "", }, { + // TRANSLATORS: input action name strprintf(N_("Emote Shortcut %d"), 11), Input::KEY_EMOTE_11, "", }, { + // TRANSLATORS: input action name strprintf(N_("Emote Shortcut %d"), 12), Input::KEY_EMOTE_12, "", }, { + // TRANSLATORS: input action name strprintf(N_("Emote Shortcut %d"), 13), Input::KEY_EMOTE_13, "", }, { + // TRANSLATORS: input action name strprintf(N_("Emote Shortcut %d"), 14), Input::KEY_EMOTE_14, "", }, { + // TRANSLATORS: input action name strprintf(N_("Emote Shortcut %d"), 15), Input::KEY_EMOTE_15, "", }, { + // TRANSLATORS: input action name strprintf(N_("Emote Shortcut %d"), 16), Input::KEY_EMOTE_16, "", }, { + // TRANSLATORS: input action name strprintf(N_("Emote Shortcut %d"), 17), Input::KEY_EMOTE_17, "", }, { + // TRANSLATORS: input action name strprintf(N_("Emote Shortcut %d"), 18), Input::KEY_EMOTE_18, "", }, { + // TRANSLATORS: input action name strprintf(N_("Emote Shortcut %d"), 19), Input::KEY_EMOTE_19, "", }, { + // TRANSLATORS: input action name strprintf(N_("Emote Shortcut %d"), 20), Input::KEY_EMOTE_20, "", }, { + // TRANSLATORS: input action name strprintf(N_("Emote Shortcut %d"), 21), Input::KEY_EMOTE_21, "", }, { + // TRANSLATORS: input action name strprintf(N_("Emote Shortcut %d"), 22), Input::KEY_EMOTE_22, "", }, { + // TRANSLATORS: input action name strprintf(N_("Emote Shortcut %d"), 23), Input::KEY_EMOTE_23, "", }, { + // TRANSLATORS: input action name strprintf(N_("Emote Shortcut %d"), 24), Input::KEY_EMOTE_24, "", }, { + // TRANSLATORS: input action name strprintf(N_("Emote Shortcut %d"), 25), Input::KEY_EMOTE_25, "", }, { + // TRANSLATORS: input action name strprintf(N_("Emote Shortcut %d"), 26), Input::KEY_EMOTE_26, "", }, { + // TRANSLATORS: input action name strprintf(N_("Emote Shortcut %d"), 27), Input::KEY_EMOTE_27, "", }, { + // TRANSLATORS: input action name strprintf(N_("Emote Shortcut %d"), 28), Input::KEY_EMOTE_28, "", }, { + // TRANSLATORS: input action name strprintf(N_("Emote Shortcut %d"), 29), Input::KEY_EMOTE_29, "", }, { + // TRANSLATORS: input action name strprintf(N_("Emote Shortcut %d"), 30), Input::KEY_EMOTE_30, "", }, { + // TRANSLATORS: input action name strprintf(N_("Emote Shortcut %d"), 31), Input::KEY_EMOTE_31, "", }, { + // TRANSLATORS: input action name strprintf(N_("Emote Shortcut %d"), 32), Input::KEY_EMOTE_32, "", }, { + // TRANSLATORS: input action name strprintf(N_("Emote Shortcut %d"), 33), Input::KEY_EMOTE_33, "", }, { + // TRANSLATORS: input action name strprintf(N_("Emote Shortcut %d"), 34), Input::KEY_EMOTE_34, "", }, { + // TRANSLATORS: input action name strprintf(N_("Emote Shortcut %d"), 35), Input::KEY_EMOTE_35, "", }, { + // TRANSLATORS: input action name strprintf(N_("Emote Shortcut %d"), 36), Input::KEY_EMOTE_36, "", }, { + // TRANSLATORS: input action name strprintf(N_("Emote Shortcut %d"), 37), Input::KEY_EMOTE_37, "", }, { + // TRANSLATORS: input action name strprintf(N_("Emote Shortcut %d"), 38), Input::KEY_EMOTE_38, "", }, { + // TRANSLATORS: input action name strprintf(N_("Emote Shortcut %d"), 39), Input::KEY_EMOTE_39, "", }, { + // TRANSLATORS: input action name strprintf(N_("Emote Shortcut %d"), 40), Input::KEY_EMOTE_40, "", }, { + // TRANSLATORS: input action name strprintf(N_("Emote Shortcut %d"), 41), Input::KEY_EMOTE_41, "", }, { + // TRANSLATORS: input action name strprintf(N_("Emote Shortcut %d"), 42), Input::KEY_EMOTE_42, "", }, { + // TRANSLATORS: input action name strprintf(N_("Emote Shortcut %d"), 43), Input::KEY_EMOTE_43, "", }, { + // TRANSLATORS: input action name strprintf(N_("Emote Shortcut %d"), 44), Input::KEY_EMOTE_44, "", }, { + // TRANSLATORS: input action name strprintf(N_("Emote Shortcut %d"), 45), Input::KEY_EMOTE_45, "", }, { + // TRANSLATORS: input action name strprintf(N_("Emote Shortcut %d"), 46), Input::KEY_EMOTE_46, "", }, { + // TRANSLATORS: input action name strprintf(N_("Emote Shortcut %d"), 47), Input::KEY_EMOTE_47, "", }, { + // TRANSLATORS: input action name strprintf(N_("Emote Shortcut %d"), 48), Input::KEY_EMOTE_48, "", @@ -697,266 +821,319 @@ static SetupActionData setupActionData3[] = static SetupActionData setupActionData4[] = { { + // TRANSLATORS: input action name N_("Outfits keys"), Input::KEY_NO_VALUE, "" }, { + // TRANSLATORS: input action name N_("Wear Outfit"), Input::KEY_WEAR_OUTFIT, "", }, { + // TRANSLATORS: input action name N_("Copy Outfit"), Input::KEY_COPY_OUTFIT, "", }, { + // TRANSLATORS: input action name N_("Copy equipped to Outfit"), Input::KEY_COPY_EQUIPED_OUTFIT, "", }, { + // TRANSLATORS: input action name N_("Outfits shortcuts"), Input::KEY_NO_VALUE, "" }, { + // TRANSLATORS: input action name strprintf(N_("Outfit Shortcut %d"), 1), Input::KEY_OUTFIT_1, "", }, { + // TRANSLATORS: input action name strprintf(N_("Outfit Shortcut %d"), 2), Input::KEY_OUTFIT_2, "", }, { + // TRANSLATORS: input action name strprintf(N_("Outfit Shortcut %d"), 3), Input::KEY_OUTFIT_3, "", }, { + // TRANSLATORS: input action name strprintf(N_("Outfit Shortcut %d"), 4), Input::KEY_OUTFIT_4, "", }, { + // TRANSLATORS: input action name strprintf(N_("Outfit Shortcut %d"), 5), Input::KEY_OUTFIT_5, "", }, { + // TRANSLATORS: input action name strprintf(N_("Outfit Shortcut %d"), 6), Input::KEY_OUTFIT_6, "", }, { + // TRANSLATORS: input action name strprintf(N_("Outfit Shortcut %d"), 7), Input::KEY_OUTFIT_7, "", }, { + // TRANSLATORS: input action name strprintf(N_("Outfit Shortcut %d"), 8), Input::KEY_OUTFIT_8, "", }, { + // TRANSLATORS: input action name strprintf(N_("Outfit Shortcut %d"), 9), Input::KEY_OUTFIT_9, "", }, { + // TRANSLATORS: input action name strprintf(N_("Outfit Shortcut %d"), 10), Input::KEY_OUTFIT_10, "", }, { + // TRANSLATORS: input action name strprintf(N_("Outfit Shortcut %d"), 11), Input::KEY_OUTFIT_11, "", }, { + // TRANSLATORS: input action name strprintf(N_("Outfit Shortcut %d"), 12), Input::KEY_OUTFIT_12, "", }, { + // TRANSLATORS: input action name strprintf(N_("Outfit Shortcut %d"), 13), Input::KEY_OUTFIT_13, "", }, { + // TRANSLATORS: input action name strprintf(N_("Outfit Shortcut %d"), 14), Input::KEY_OUTFIT_14, "", }, { + // TRANSLATORS: input action name strprintf(N_("Outfit Shortcut %d"), 15), Input::KEY_OUTFIT_15, "", }, { + // TRANSLATORS: input action name strprintf(N_("Outfit Shortcut %d"), 16), Input::KEY_OUTFIT_16, "", }, { + // TRANSLATORS: input action name strprintf(N_("Outfit Shortcut %d"), 17), Input::KEY_OUTFIT_17, "", }, { + // TRANSLATORS: input action name strprintf(N_("Outfit Shortcut %d"), 18), Input::KEY_OUTFIT_18, "", }, { + // TRANSLATORS: input action name strprintf(N_("Outfit Shortcut %d"), 19), Input::KEY_OUTFIT_19, "", }, { + // TRANSLATORS: input action name strprintf(N_("Outfit Shortcut %d"), 20), Input::KEY_OUTFIT_20, "", }, { + // TRANSLATORS: input action name strprintf(N_("Outfit Shortcut %d"), 21), Input::KEY_OUTFIT_21, "", }, { + // TRANSLATORS: input action name strprintf(N_("Outfit Shortcut %d"), 22), Input::KEY_OUTFIT_22, "", }, { + // TRANSLATORS: input action name strprintf(N_("Outfit Shortcut %d"), 23), Input::KEY_OUTFIT_23, "", }, { + // TRANSLATORS: input action name strprintf(N_("Outfit Shortcut %d"), 24), Input::KEY_OUTFIT_24, "", }, { + // TRANSLATORS: input action name strprintf(N_("Outfit Shortcut %d"), 25), Input::KEY_OUTFIT_25, "", }, { + // TRANSLATORS: input action name strprintf(N_("Outfit Shortcut %d"), 26), Input::KEY_OUTFIT_26, "", }, { + // TRANSLATORS: input action name strprintf(N_("Outfit Shortcut %d"), 27), Input::KEY_OUTFIT_27, "", }, { + // TRANSLATORS: input action name strprintf(N_("Outfit Shortcut %d"), 28), Input::KEY_OUTFIT_28, "", }, { + // TRANSLATORS: input action name strprintf(N_("Outfit Shortcut %d"), 29), Input::KEY_OUTFIT_29, "", }, { + // TRANSLATORS: input action name strprintf(N_("Outfit Shortcut %d"), 30), Input::KEY_OUTFIT_30, "", }, { + // TRANSLATORS: input action name strprintf(N_("Outfit Shortcut %d"), 31), Input::KEY_OUTFIT_31, "", }, { + // TRANSLATORS: input action name strprintf(N_("Outfit Shortcut %d"), 32), Input::KEY_OUTFIT_32, "", }, { + // TRANSLATORS: input action name strprintf(N_("Outfit Shortcut %d"), 33), Input::KEY_OUTFIT_33, "", }, { + // TRANSLATORS: input action name strprintf(N_("Outfit Shortcut %d"), 34), Input::KEY_OUTFIT_34, "", }, { + // TRANSLATORS: input action name strprintf(N_("Outfit Shortcut %d"), 35), Input::KEY_OUTFIT_35, "", }, { + // TRANSLATORS: input action name strprintf(N_("Outfit Shortcut %d"), 36), Input::KEY_OUTFIT_36, "", }, { + // TRANSLATORS: input action name strprintf(N_("Outfit Shortcut %d"), 37), Input::KEY_OUTFIT_37, "", }, { + // TRANSLATORS: input action name strprintf(N_("Outfit Shortcut %d"), 38), Input::KEY_OUTFIT_38, "", }, { + // TRANSLATORS: input action name strprintf(N_("Outfit Shortcut %d"), 39), Input::KEY_OUTFIT_39, "", }, { + // TRANSLATORS: input action name strprintf(N_("Outfit Shortcut %d"), 40), Input::KEY_OUTFIT_40, "", }, { + // TRANSLATORS: input action name strprintf(N_("Outfit Shortcut %d"), 41), Input::KEY_OUTFIT_41, "", }, { + // TRANSLATORS: input action name strprintf(N_("Outfit Shortcut %d"), 42), Input::KEY_OUTFIT_42, "", }, { + // TRANSLATORS: input action name strprintf(N_("Outfit Shortcut %d"), 43), Input::KEY_OUTFIT_43, "", }, { + // TRANSLATORS: input action name strprintf(N_("Outfit Shortcut %d"), 44), Input::KEY_OUTFIT_44, "", }, { + // TRANSLATORS: input action name strprintf(N_("Outfit Shortcut %d"), 45), Input::KEY_OUTFIT_45, "", }, { + // TRANSLATORS: input action name strprintf(N_("Outfit Shortcut %d"), 46), Input::KEY_OUTFIT_46, "", }, { + // TRANSLATORS: input action name strprintf(N_("Outfit Shortcut %d"), 47), Input::KEY_OUTFIT_47, "", }, { + // TRANSLATORS: input action name strprintf(N_("Outfit Shortcut %d"), 48), Input::KEY_OUTFIT_48, "", @@ -971,46 +1148,55 @@ static SetupActionData setupActionData4[] = static SetupActionData setupActionData5[] = { { + // TRANSLATORS: input action name N_("Toggle Chat"), Input::KEY_TOGGLE_CHAT, "", }, { + // TRANSLATORS: input action name N_("Scroll Chat Up"), Input::KEY_SCROLL_CHAT_UP, "", }, { + // TRANSLATORS: input action name N_("Scroll Chat Down"), Input::KEY_SCROLL_CHAT_DOWN, "", }, { + // TRANSLATORS: input action name N_("Previous Chat Tab"), Input::KEY_PREV_CHAT_TAB, "", }, { + // TRANSLATORS: input action name N_("Next Chat Tab"), Input::KEY_NEXT_CHAT_TAB, "", }, { + // TRANSLATORS: input action name N_("Close current Chat Tab"), Input::KEY_CLOSE_CHAT_TAB, "", }, { + // TRANSLATORS: input action name N_("Previous chat line"), Input::KEY_CHAT_PREV_HISTORY, "", }, { + // TRANSLATORS: input action name N_("Next chat line"), Input::KEY_CHAT_NEXT_HISTORY, "", }, { + // TRANSLATORS: input action name N_("Chat modifier key"), Input::KEY_CHAT_MOD, "", @@ -1025,141 +1211,169 @@ static SetupActionData setupActionData5[] = static SetupActionData setupActionData6[] = { { + // TRANSLATORS: input action name N_("Ignore input 1"), Input::KEY_IGNORE_INPUT_1, "", }, { + // TRANSLATORS: input action name N_("Ignore input 2"), Input::KEY_IGNORE_INPUT_2, "", }, { + // TRANSLATORS: input action name N_("Direct Up"), Input::KEY_DIRECT_UP, "", }, { + // TRANSLATORS: input action name N_("Direct Down"), Input::KEY_DIRECT_DOWN, "", }, { + // TRANSLATORS: input action name N_("Direct Left"), Input::KEY_DIRECT_LEFT, "", }, { + // TRANSLATORS: input action name N_("Direct Right"), Input::KEY_DIRECT_RIGHT, "", }, { + // TRANSLATORS: input action name N_("Crazy moves"), Input::KEY_CRAZY_MOVES, "", }, { + // TRANSLATORS: input action name N_("Change Crazy Move mode"), Input::KEY_CHANGE_CRAZY_MOVES_TYPE, "", }, { + // TRANSLATORS: input action name N_("Quick Drop N Items from 0 slot"), Input::KEY_QUICK_DROP, "", }, { + // TRANSLATORS: input action name N_("Quick Drop N Items"), Input::KEY_QUICK_DROPN, "", }, { + // TRANSLATORS: input action name N_("Switch Quick Drop Counter"), Input::KEY_SWITCH_QUICK_DROP, "", }, { + // TRANSLATORS: input action name N_("Quick heal target or self"), Input::KEY_MAGIC_INMA1, "", }, { + // TRANSLATORS: input action name N_("Use #itenplz spell"), Input::KEY_MAGIC_ITENPLZ, "", }, { + // TRANSLATORS: input action name N_("Use magic attack"), Input::KEY_MAGIC_ATTACK, "", }, { + // TRANSLATORS: input action name N_("Switch magic attack"), Input::KEY_SWITCH_MAGIC_ATTACK, "", }, { + // TRANSLATORS: input action name N_("Switch pvp attack"), Input::KEY_SWITCH_PVP_ATTACK, "", }, { + // TRANSLATORS: input action name N_("Change move type"), Input::KEY_INVERT_DIRECTION, "", }, { + // TRANSLATORS: input action name N_("Change Attack Weapon Type"), Input::KEY_CHANGE_ATTACK_WEAPON_TYPE, "", }, { + // TRANSLATORS: input action name N_("Change Attack Type"), Input::KEY_CHANGE_ATTACK_TYPE, "", }, { + // TRANSLATORS: input action name N_("Change Follow mode"), Input::KEY_CHANGE_FOLLOW_MODE, "", }, { + // TRANSLATORS: input action name N_("Change Imitation mode"), Input::KEY_CHANGE_IMITATION_MODE, "", }, { + // TRANSLATORS: input action name N_("Disable / Enable Game modifier keys"), Input::KEY_DISABLE_GAME_MODIFIERS, "", }, { + // TRANSLATORS: input action name N_("On / Off audio"), Input::KEY_CHANGE_AUDIO, "", }, { + // TRANSLATORS: input action name N_("Enable / Disable away mode"), Input::KEY_AWAY, "", }, { + // TRANSLATORS: input action name N_("Emulate right click from keyboard"), Input::KEY_RIGHT_CLICK, "", }, { + // TRANSLATORS: input action name N_("Toggle camera mode"), Input::KEY_CAMERA, "", }, { + // TRANSLATORS: input action name N_("Modifier key"), Input::KEY_MOD, "", }, { + // TRANSLATORS: input action name N_("Show onscreen keyboard"), Input::KEY_SHOW_KEYBOARD, "", @@ -1174,271 +1388,325 @@ static SetupActionData setupActionData6[] = static SetupActionData setupActionData7[] = { { + // TRANSLATORS: input action name N_("Move Keys"), Input::KEY_NO_VALUE, "", }, { + // TRANSLATORS: input action name N_("Move Up"), Input::KEY_MOVE_UP, "", }, { + // TRANSLATORS: input action name N_("Move Down"), Input::KEY_MOVE_DOWN, "", }, { + // TRANSLATORS: input action name N_("Move Left"), Input::KEY_MOVE_LEFT, "", }, { + // TRANSLATORS: input action name N_("Move Right"), Input::KEY_MOVE_RIGHT, "", }, { + // TRANSLATORS: input action name N_("Move to navigation point shortcuts"), Input::KEY_NO_VALUE, "" }, { + // TRANSLATORS: input action name strprintf(N_("Move to point Shortcut %d"), 1), Input::KEY_MOVE_TO_POINT_1, "", }, { + // TRANSLATORS: input action name strprintf(N_("Move to point Shortcut %d"), 2), Input::KEY_MOVE_TO_POINT_2, "", }, { + // TRANSLATORS: input action name strprintf(N_("Move to point Shortcut %d"), 3), Input::KEY_MOVE_TO_POINT_3, "", }, { + // TRANSLATORS: input action name strprintf(N_("Move to point Shortcut %d"), 4), Input::KEY_MOVE_TO_POINT_4, "", }, { + // TRANSLATORS: input action name strprintf(N_("Move to point Shortcut %d"), 5), Input::KEY_MOVE_TO_POINT_5, "", }, { + // TRANSLATORS: input action name strprintf(N_("Move to point Shortcut %d"), 6), Input::KEY_MOVE_TO_POINT_6, "", }, { + // TRANSLATORS: input action name strprintf(N_("Move to point Shortcut %d"), 7), Input::KEY_MOVE_TO_POINT_7, "", }, { + // TRANSLATORS: input action name strprintf(N_("Move to point Shortcut %d"), 8), Input::KEY_MOVE_TO_POINT_8, "", }, { + // TRANSLATORS: input action name strprintf(N_("Move to point Shortcut %d"), 9), Input::KEY_MOVE_TO_POINT_9, "", }, { + // TRANSLATORS: input action name strprintf(N_("Move to point Shortcut %d"), 10), Input::KEY_MOVE_TO_POINT_10, "", }, { + // TRANSLATORS: input action name strprintf(N_("Move to point Shortcut %d"), 11), Input::KEY_MOVE_TO_POINT_11, "", }, { + // TRANSLATORS: input action name strprintf(N_("Move to point Shortcut %d"), 12), Input::KEY_MOVE_TO_POINT_12, "", }, { + // TRANSLATORS: input action name strprintf(N_("Move to point Shortcut %d"), 13), Input::KEY_MOVE_TO_POINT_13, "", }, { + // TRANSLATORS: input action name strprintf(N_("Move to point Shortcut %d"), 14), Input::KEY_MOVE_TO_POINT_14, "", }, { + // TRANSLATORS: input action name strprintf(N_("Move to point Shortcut %d"), 15), Input::KEY_MOVE_TO_POINT_15, "", }, { + // TRANSLATORS: input action name strprintf(N_("Move to point Shortcut %d"), 16), Input::KEY_MOVE_TO_POINT_16, "", }, { + // TRANSLATORS: input action name strprintf(N_("Move to point Shortcut %d"), 17), Input::KEY_MOVE_TO_POINT_17, "", }, { + // TRANSLATORS: input action name strprintf(N_("Move to point Shortcut %d"), 18), Input::KEY_MOVE_TO_POINT_18, "", }, { + // TRANSLATORS: input action name strprintf(N_("Move to point Shortcut %d"), 19), Input::KEY_MOVE_TO_POINT_19, "", }, { + // TRANSLATORS: input action name strprintf(N_("Move to point Shortcut %d"), 20), Input::KEY_MOVE_TO_POINT_20, "", }, { + // TRANSLATORS: input action name strprintf(N_("Move to point Shortcut %d"), 21), Input::KEY_MOVE_TO_POINT_21, "", }, { + // TRANSLATORS: input action name strprintf(N_("Move to point Shortcut %d"), 22), Input::KEY_MOVE_TO_POINT_22, "", }, { + // TRANSLATORS: input action name strprintf(N_("Move to point Shortcut %d"), 23), Input::KEY_MOVE_TO_POINT_23, "", }, { + // TRANSLATORS: input action name strprintf(N_("Move to point Shortcut %d"), 24), Input::KEY_MOVE_TO_POINT_24, "", }, { + // TRANSLATORS: input action name strprintf(N_("Move to point Shortcut %d"), 25), Input::KEY_MOVE_TO_POINT_25, "", }, { + // TRANSLATORS: input action name strprintf(N_("Move to point Shortcut %d"), 26), Input::KEY_MOVE_TO_POINT_26, "", }, { + // TRANSLATORS: input action name strprintf(N_("Move to point Shortcut %d"), 27), Input::KEY_MOVE_TO_POINT_27, "", }, { + // TRANSLATORS: input action name strprintf(N_("Move to point Shortcut %d"), 28), Input::KEY_MOVE_TO_POINT_28, "", }, { + // TRANSLATORS: input action name strprintf(N_("Move to point Shortcut %d"), 29), Input::KEY_MOVE_TO_POINT_29, "", }, { + // TRANSLATORS: input action name strprintf(N_("Move to point Shortcut %d"), 30), Input::KEY_MOVE_TO_POINT_30, "", }, { + // TRANSLATORS: input action name strprintf(N_("Move to point Shortcut %d"), 31), Input::KEY_MOVE_TO_POINT_31, "", }, { + // TRANSLATORS: input action name strprintf(N_("Move to point Shortcut %d"), 32), Input::KEY_MOVE_TO_POINT_32, "", }, { + // TRANSLATORS: input action name strprintf(N_("Move to point Shortcut %d"), 33), Input::KEY_MOVE_TO_POINT_33, "", }, { + // TRANSLATORS: input action name strprintf(N_("Move to point Shortcut %d"), 34), Input::KEY_MOVE_TO_POINT_34, "", }, { + // TRANSLATORS: input action name strprintf(N_("Move to point Shortcut %d"), 35), Input::KEY_MOVE_TO_POINT_35, "", }, { + // TRANSLATORS: input action name strprintf(N_("Move to point Shortcut %d"), 36), Input::KEY_MOVE_TO_POINT_36, "", }, { + // TRANSLATORS: input action name strprintf(N_("Move to point Shortcut %d"), 37), Input::KEY_MOVE_TO_POINT_37, "", }, { + // TRANSLATORS: input action name strprintf(N_("Move to point Shortcut %d"), 38), Input::KEY_MOVE_TO_POINT_38, "", }, { + // TRANSLATORS: input action name strprintf(N_("Move to point Shortcut %d"), 39), Input::KEY_MOVE_TO_POINT_39, "", }, { + // TRANSLATORS: input action name strprintf(N_("Move to point Shortcut %d"), 40), Input::KEY_MOVE_TO_POINT_40, "", }, { + // TRANSLATORS: input action name strprintf(N_("Move to point Shortcut %d"), 41), Input::KEY_MOVE_TO_POINT_41, "", }, { + // TRANSLATORS: input action name strprintf(N_("Move to point Shortcut %d"), 42), Input::KEY_MOVE_TO_POINT_42, "", }, { + // TRANSLATORS: input action name strprintf(N_("Move to point Shortcut %d"), 43), Input::KEY_MOVE_TO_POINT_43, "", }, { + // TRANSLATORS: input action name strprintf(N_("Move to point Shortcut %d"), 44), Input::KEY_MOVE_TO_POINT_44, "", }, { + // TRANSLATORS: input action name strprintf(N_("Move to point Shortcut %d"), 45), Input::KEY_MOVE_TO_POINT_45, "", }, { + // TRANSLATORS: input action name strprintf(N_("Move to point Shortcut %d"), 46), Input::KEY_MOVE_TO_POINT_46, "", }, { + // TRANSLATORS: input action name strprintf(N_("Move to point Shortcut %d"), 47), Input::KEY_MOVE_TO_POINT_47, "", }, { + // TRANSLATORS: input action name strprintf(N_("Move to point Shortcut %d"), 48), Input::KEY_MOVE_TO_POINT_48, "", @@ -1453,91 +1721,109 @@ static SetupActionData setupActionData7[] = static SetupActionData setupActionData8[] = { { + // TRANSLATORS: input action name N_("Move & selection"), Input::KEY_NO_VALUE, "", }, { + // TRANSLATORS: input action name N_("Move Up"), Input::KEY_GUI_UP, "", }, { + // TRANSLATORS: input action name N_("Move Down"), Input::KEY_GUI_DOWN, "", }, { + // TRANSLATORS: input action name N_("Move Left"), Input::KEY_GUI_LEFT, "", }, { + // TRANSLATORS: input action name N_("Move Right"), Input::KEY_GUI_RIGHT, "", }, { + // TRANSLATORS: input action name N_("Move Home"), Input::KEY_GUI_HOME, "", }, { + // TRANSLATORS: input action name N_("Move End"), Input::KEY_GUI_END, "", }, { + // TRANSLATORS: input action name N_("Page up"), Input::KEY_GUI_PAGE_UP, "", }, { + // TRANSLATORS: input action name N_("Page down"), Input::KEY_GUI_PAGE_DOWN, "", }, { + // TRANSLATORS: input action name N_("Other"), Input::KEY_NO_VALUE, "", }, { + // TRANSLATORS: input action name N_("Select"), Input::KEY_GUI_SELECT, "", }, { + // TRANSLATORS: input action name N_("Select2"), Input::KEY_GUI_SELECT2, "", }, { + // TRANSLATORS: input action name N_("Cancel"), Input::KEY_GUI_CANCEL, "", }, { + // TRANSLATORS: input action name N_("Delete"), Input::KEY_GUI_DELETE, "", }, { + // TRANSLATORS: input action name N_("Backspace"), Input::KEY_GUI_BACKSPACE, "", }, { + // TRANSLATORS: input action name N_("Insert"), Input::KEY_GUI_INSERT, "", }, { + // TRANSLATORS: input action name N_("Tab"), Input::KEY_GUI_TAB, "", }, { + // TRANSLATORS: input action name N_("Mod"), Input::KEY_GUI_MOD, "", @@ -1564,14 +1850,23 @@ static SetupActionData *const setupActionData[] = static const char *const pages[] = { + // TRANSLATORS: input tab sub tab name N_("Basic"), + // TRANSLATORS: input tab sub tab name N_("Move"), + // TRANSLATORS: input tab sub tab name N_("Shortcuts"), + // TRANSLATORS: input tab sub tab name N_("Windows"), + // TRANSLATORS: input tab sub tab name N_("Emotes"), + // TRANSLATORS: input tab sub tab name N_("Outfits"), + // TRANSLATORS: input tab sub tab name N_("Chat"), + // TRANSLATORS: input tab sub tab name N_("Other"), + // TRANSLATORS: input tab sub tab name N_("Gui"), nullptr }; diff --git a/src/gui/shopwindow.cpp b/src/gui/shopwindow.cpp index ea037b93b..5b131fd55 100644 --- a/src/gui/shopwindow.cpp +++ b/src/gui/shopwindow.cpp @@ -72,9 +72,11 @@ extern std::string tradePartnerName; ShopWindow::DialogList ShopWindow::instances; ShopWindow::ShopWindow(): + // TRANSLATORS: shop window name Window(_("Personal Shop"), false, nullptr, "shop.xml"), gcn::ActionListener(), gcn::SelectionListener(), + // TRANSLATORS: shop window button mCloseButton(new Button(this, _("Close"), "close", this)), mBuyShopItems(new ShopItems), mSellShopItems(new ShopItems), @@ -84,17 +86,26 @@ ShopWindow::ShopWindow(): getOptionBool("showbuybackground"), "shop_buy_background.xml")), mSellScrollArea(new ScrollArea(mSellShopItemList, getOptionBool("showsellbackground"), "shop_sell_background.xml")), + // TRANSLATORS: shop window label mBuyLabel(new Label(this, _("Buy items"))), + // TRANSLATORS: shop window label mSellLabel(new Label(this, _("Sell items"))), + // TRANSLATORS: shop window label mBuyAddButton(new Button(this, _("Add"), "add buy", this)), + // TRANSLATORS: shop window label mBuyDeleteButton(new Button(this, _("Delete"), "delete buy", this)), + // TRANSLATORS: shop window label mBuyAnnounceButton(new Button(this, _("Announce"), "announce buy", this)), mBuyAuctionButton(nullptr), + // TRANSLATORS: shop window button mSellAddButton(new Button(this, _("Add"), "add sell", this)), + // TRANSLATORS: shop window button mSellDeleteButton(new Button(this, _("Delete"), "delete sell", this)), + // TRANSLATORS: shop window button mSellAnnounceButton(new Button(this, _("Announce"), "announce sell", this)), mSellAuctionButton(nullptr), + // TRANSLATORS: shop window checkbox mAnnounceLinks(new CheckBox(this, _("Show links in announce"), false, this, "link announce")), mSelectedItem(-1), @@ -148,8 +159,10 @@ ShopWindow::ShopWindow(): if (auctionManager && auctionManager->getEnableAuctionBot()) { mBuyAuctionButton = new Button(this, + // TRANSLATORS: shop window button _("Auction"), "auction buy", this); mSellAuctionButton = new Button(this, + // TRANSLATORS: shop window button _("Auction"), "auction sell", this); placer(4, 6, mBuyAuctionButton); placer(12, 6, mSellAuctionButton); @@ -760,6 +773,7 @@ void ShopWindow::processRequest(std::string nick, std::string data, else { ConfirmDialog *const confirmDlg = new ConfirmDialog + // TRANSLATORS: shop window dialog (_("Request for Trade"), strprintf(_("%s wants to %s %s do you " "accept?"), nick.c_str(), msg.c_str(), mTradeItem->getInfo().getName().c_str()), true); diff --git a/src/gui/skilldialog.cpp b/src/gui/skilldialog.cpp index a6c01cbb5..093db57bc 100644 --- a/src/gui/skilldialog.cpp +++ b/src/gui/skilldialog.cpp @@ -266,13 +266,16 @@ class SkillTab final : public Tab }; SkillDialog::SkillDialog() : + // TRANSLATORS: skills dialog name Window(_("Skills"), false, nullptr, "skills.xml"), gcn::ActionListener(), mSkills(), mTabs(new TabbedArea(this)), mDeleteTabs(), mPointsLabel(new Label(this, "0")), + // TRANSLATORS: skills dialog button mUseButton(new Button(this, _("Use"), "use", this)), + // TRANSLATORS: skills dialog button mIncreaseButton(new Button(this, _("Up"), "inc", this)), mDefaultModel(nullptr) { @@ -384,6 +387,7 @@ std::string SkillDialog::update(const int id) void SkillDialog::update() { + // TRANSLATORS: skills dialog label mPointsLabel->setCaption(strprintf(_("Skill points available: %d"), PlayerInfo::getAttribute(PlayerInfo::SKILL_POINTS))); mPointsLabel->adjustSize(); @@ -436,8 +440,10 @@ void SkillDialog::loadSkills() SkillInfo *const skill = new SkillInfo; skill->id = 1; + // TRANSLATORS: skills dialog default skills tab skill->data->name = _("basic"); skill->data->description.clear(); + // TRANSLATORS: skills dialog default skill name skill->data->dispName = _("basic, 1"); skill->data->shortName = "bas"; skill->data->setIcon(""); @@ -474,6 +480,7 @@ void SkillDialog::loadSkills() { setCount++; setName = XML::getProperty(set, "name", + // TRANSLATORS: skills dialog default skill tab strprintf(_("Skill Set %d"), setCount)); SkillModel *const model = new SkillModel(); @@ -507,6 +514,7 @@ void SkillDialog::loadSkills() } std::string name = XML::langProperty(node, "name", + // TRANSLATORS: skills dialog. skill id strprintf(_("Skill %d"), id)); std::string icon = XML::getProperty(node, "icon", ""); const int level = XML::getProperty(node, "level", 0); @@ -600,6 +608,7 @@ void SkillDialog::addSkill(const int id, const int level, const int range, skill->visible = false; skill->model = mDefaultModel; skill->level = level; + // TRANSLATORS: skills dialog. skill level skill->skillLevel = strprintf(_("Lvl: %d"), level); skill->range = range; skill->update(); @@ -744,9 +753,14 @@ void SkillInfo::update() visible = true; if (baseLevel == 0) + { skillLevel.clear(); + } else + { + // TRANSLATORS: skills dialog. skill level skillLevel = strprintf(_("Lvl: %d"), baseLevel); + } level = baseLevel; skillLevelWidth = -1; diff --git a/src/gui/socialwindow.cpp b/src/gui/socialwindow.cpp index b0a80eaa4..de0f6bd75 100644 --- a/src/gui/socialwindow.cpp +++ b/src/gui/socialwindow.cpp @@ -141,6 +141,7 @@ public: gcn::ActionListener(), mGuild(guild) { + // TRANSLATORS: tab in social window setCaption(_("Guild")); setTabColor(&getThemeColor(Theme::GUILD_SOCIAL_TAB), @@ -180,6 +181,7 @@ public: if (localChatTab) { localChatTab->chatLog(strprintf( + // TRANSLATORS: chat message _("Invited user %s to guild %s."), name.c_str(), mGuild->getName().c_str()), BY_SERVER); } @@ -194,8 +196,9 @@ public: Net::getGuildHandler()->leave(mGuild->getId()); if (localChatTab) { + // TRANSLATORS: chat message localChatTab->chatLog(strprintf(_("Guild %s quit requested."), - mGuild->getName().c_str()), BY_SERVER); + mGuild->getName().c_str()), BY_SERVER); } mConfirmDialog = nullptr; } @@ -219,20 +222,22 @@ public: void invite() { + // TRANSLATORS: guild invite message mInviteDialog = new TextDialog(_("Member Invite to Guild"), - strprintf(_("Who would you like to invite to guild %s?"), - mGuild->getName().c_str()), - socialWindow); + // TRANSLATORS: guild invite message + strprintf(_("Who would you like to invite to guild %s?"), + mGuild->getName().c_str()), socialWindow); mInviteDialog->setActionEventId("do invite"); mInviteDialog->addActionListener(this); } void leave() { + // TRANSLATORS: guild leave message mConfirmDialog = new ConfirmDialog(_("Leave Guild?"), - strprintf(_("Are you sure you want to leave guild %s?"), - mGuild->getName().c_str()), - socialWindow); + // TRANSLATORS: guild leave message + strprintf(_("Are you sure you want to leave guild %s?"), + mGuild->getName().c_str()), socialWindow); mConfirmDialog->addActionListener(this); } @@ -250,6 +255,7 @@ public: gcn::ActionListener(), mGuild(guild) { + // TRANSLATORS: tab in social window setCaption(_("Guild")); setTabColor(&getThemeColor(Theme::GUILD_SOCIAL_TAB), @@ -315,6 +321,7 @@ public: gcn::ActionListener(), mParty(party) { + // TRANSLATORS: tab in social window setCaption(_("Party")); setTabColor(&getThemeColor(Theme::PARTY_SOCIAL_TAB), @@ -353,8 +360,9 @@ public: if (localChatTab) { + // TRANSLATORS: chat message localChatTab->chatLog(strprintf(_("Invited user %s to party."), - name.c_str()), BY_SERVER); + name.c_str()), BY_SERVER); } mInviteDialog = nullptr; } @@ -367,8 +375,9 @@ public: Net::getPartyHandler()->leave(); if (localChatTab) { + // TRANSLATORS: tab in social window localChatTab->chatLog(strprintf(_("Party %s quit requested."), - mParty->getName().c_str()), BY_SERVER); + mParty->getName().c_str()), BY_SERVER); } mConfirmDialog = nullptr; } @@ -392,20 +401,22 @@ public: void invite() { + // TRANSLATORS: party invite message mInviteDialog = new TextDialog(_("Member Invite to Party"), - strprintf(_("Who would you like to invite to party %s?"), - mParty->getName().c_str()), - socialWindow); + // TRANSLATORS: party invite message + strprintf(_("Who would you like to invite to party %s?"), + mParty->getName().c_str()), socialWindow); mInviteDialog->setActionEventId("do invite"); mInviteDialog->addActionListener(this); } void leave() { + // TRANSLATORS: party leave message mConfirmDialog = new ConfirmDialog(_("Leave Party?"), - strprintf(_("Are you sure you want to leave party %s?"), - mParty->getName().c_str()), - socialWindow); + // TRANSLATORS: party leave message + strprintf(_("Are you sure you want to leave party %s?"), + mParty->getName().c_str()), socialWindow); mConfirmDialog->addActionListener(this); } @@ -996,8 +1007,11 @@ public: void updateList() { updateAtkListStart(); + // TRANSLATORS: mobs group name in social window addAvatars(PriorityAttackMob, _("Priority mobs"), PRIORITY); + // TRANSLATORS: mobs group name in social window addAvatars(AttackMob, _("Attack mobs"), ATTACK); + // TRANSLATORS: mobs group name in social window addAvatars(IgnoreAttackMob, _("Ignore mobs"), IGNORE_); } @@ -1055,7 +1069,9 @@ public: void updateList() { updateAtkListStart(); + // TRANSLATORS: items group name in social window addAvatars(PickupItem, _("Pickup items"), PICKUP); + // TRANSLATORS: items group name in social window addAvatars(IgnorePickupItem, _("Ignore items"), NOPICKUP); } @@ -1181,8 +1197,10 @@ public: mBrowserBox->setOpaque(false); mBrowserBox->setLinkHandler(this); + // TRANSLATORS: party popup item mBrowserBox->addRow(strprintf("@@party|%s@@", _("Create Party"))); mBrowserBox->addRow("##3---"); + // TRANSLATORS: party popup item mBrowserBox->addRow(strprintf("@@cancel|%s@@", _("Cancel"))); add(mBrowserBox); @@ -1225,6 +1243,7 @@ private: }; SocialWindow::SocialWindow() : + // TRANSLATORS: social window name Window(_("Social"), false, nullptr, "social.xml"), gcn::ActionListener(), mGuildInvited(0), @@ -1246,8 +1265,11 @@ SocialWindow::SocialWindow() : mFriends(new SocialFriendsTab(this, _("F"), getOptionBool("showtabbackground"))), mCreatePopup(new CreatePopup), + // TRANSLATORS: social window button mCreateButton(new Button(this, _("Create"), "create", this)), + // TRANSLATORS: social window button mInviteButton(new Button(this, _("Invite"), "invite", this)), + // TRANSLATORS: social window button mLeaveButton(new Button(this, _("Leave"), "leave", this)), mTabs(new TabbedArea(this)), mMap(nullptr), @@ -1433,6 +1455,7 @@ void SocialWindow::action(const gcn::ActionEvent &event) if (localChatTab) { localChatTab->chatLog( + // TRANSLATORS: chat message strprintf(_("Accepted party invite from %s."), mPartyInviter.c_str())); } @@ -1443,6 +1466,7 @@ void SocialWindow::action(const gcn::ActionEvent &event) if (localChatTab) { localChatTab->chatLog( + // TRANSLATORS: chat message strprintf(_("Rejected party invite from %s."), mPartyInviter.c_str())); } @@ -1460,6 +1484,7 @@ void SocialWindow::action(const gcn::ActionEvent &event) if (localChatTab) { localChatTab->chatLog( + // TRANSLATORS: chat message strprintf(_("Accepted guild invite from %s."), mPartyInviter.c_str())); } @@ -1473,6 +1498,7 @@ void SocialWindow::action(const gcn::ActionEvent &event) if (localChatTab) { localChatTab->chatLog( + // TRANSLATORS: chat message strprintf(_("Rejected guild invite from %s."), mPartyInviter.c_str())); } @@ -1509,8 +1535,9 @@ void SocialWindow::action(const gcn::ActionEvent &event) Net::getGuildHandler()->create(name); if (localChatTab) { + // TRANSLATORS: chat message localChatTab->chatLog(strprintf(_("Creating guild called %s."), - name.c_str()), BY_SERVER); + name.c_str()), BY_SERVER); } mGuildCreateDialog = nullptr; @@ -1529,8 +1556,9 @@ void SocialWindow::action(const gcn::ActionEvent &event) Net::getPartyHandler()->create(name); if (localChatTab) { + // TRANSLATORS: chat message localChatTab->chatLog(strprintf(_("Creating party called %s."), - name.c_str()), BY_SERVER); + name.c_str()), BY_SERVER); } mPartyCreateDialog = nullptr; @@ -1543,8 +1571,10 @@ void SocialWindow::action(const gcn::ActionEvent &event) void SocialWindow::showGuildCreate() { + // TRANSLATORS: guild creation message mGuildCreateDialog = new TextDialog(_("Guild Name"), - _("Choose your guild's name."), this); + // TRANSLATORS: guild creation message + _("Choose your guild's name."), this); mGuildCreateDialog->setActionEventId("create guild"); mGuildCreateDialog->addActionListener(this); } @@ -1558,18 +1588,21 @@ void SocialWindow::showGuildInvite(const std::string &guildName, { if (localChatTab) { + // TRANSLATORS: chat message localChatTab->chatLog(_("Received guild request, but one already " "exists."), BY_SERVER); } return; } + // TRANSLATORS: chat message std::string msg = strprintf(_("%s has invited you to join the guild %s."), inviterName.c_str(), guildName.c_str()); if (localChatTab) localChatTab->chatLog(msg, BY_SERVER); // show invite + // TRANSLATORS: guild invite message mGuildAcceptDialog = new ConfirmDialog(_("Accept Guild Invite"), msg, false, false, this); mGuildAcceptDialog->addActionListener(this); @@ -1585,6 +1618,7 @@ void SocialWindow::showPartyInvite(const std::string &partyName, { if (localChatTab) { + // TRANSLATORS: chat message localChatTab->chatLog(_("Received party request, but one already " "exists."), BY_SERVER); } @@ -1596,10 +1630,12 @@ void SocialWindow::showPartyInvite(const std::string &partyName, { if (partyName.empty()) { + // TRANSLATORS: party invite message msg = _("You have been invited you to join a party."); } else { + // TRANSLATORS: party invite message msg = strprintf(_("You have been invited to join the %s party."), partyName.c_str()); } @@ -1608,11 +1644,13 @@ void SocialWindow::showPartyInvite(const std::string &partyName, { if (partyName.empty()) { + // TRANSLATORS: party invite message msg = strprintf(_("%s has invited you to join their party."), inviter.c_str()); } else { + // TRANSLATORS: party invite message msg = strprintf(_("%s has invited you to join the %s party."), inviter.c_str(), partyName.c_str()); } @@ -1622,6 +1660,7 @@ void SocialWindow::showPartyInvite(const std::string &partyName, localChatTab->chatLog(msg, BY_SERVER); // show invite + // TRANSLATORS: party invite message mPartyAcceptDialog = new ConfirmDialog(_("Accept Party Invite"), msg, false, false, this); mPartyAcceptDialog->addActionListener(this); @@ -1636,13 +1675,16 @@ void SocialWindow::showPartyCreate() if (player_node->getParty()) { + // TRANSLATORS: party creation message new OkDialog(_("Create Party"), _("Cannot create party. You are already in a party"), DIALOG_ERROR, true, true, this); return; } + // TRANSLATORS: party creation message mPartyCreateDialog = new TextDialog(_("Party Name"), + // TRANSLATORS: party creation message _("Choose your party's name."), this); mPartyCreateDialog->setActionEventId("create party"); mPartyCreateDialog->addActionListener(this); diff --git a/src/gui/statuswindow.cpp b/src/gui/statuswindow.cpp index 6f8255089..cd7a6e6fd 100644 --- a/src/gui/statuswindow.cpp +++ b/src/gui/statuswindow.cpp @@ -137,10 +137,14 @@ StatusWindow::StatusWindow() : Window(player_node ? player_node->getName() : "?", false, nullptr, "status.xml"), gcn::ActionListener(), + // TRANSLATORS: status window label mLvlLabel(new Label(this, strprintf(_("Level: %d"), 0))), + // TRANSLATORS: status window label mMoneyLabel(new Label(this, strprintf(_("Money: %s"), ""))), + // TRANSLATORS: status window label mHpLabel(new Label(this, _("HP:"))), mMpLabel(nullptr), + // TRANSLATORS: status window label mXpLabel(new Label(this, _("Exp:"))), mHpBar(nullptr), mMpBar(nullptr), @@ -154,6 +158,7 @@ StatusWindow::StatusWindow() : mDAttrScroll(new ScrollArea(mDAttrCont, false)), mCharacterPointsLabel(new Label(this, "C")), mCorrectionPointsLabel(nullptr), + // TRANSLATORS: status window button mCopyButton(new Button(this, _("Copy to chat"), "copy", this)), mAttrs() { @@ -194,6 +199,7 @@ StatusWindow::StatusWindow() : if (magicBar) { max = PlayerInfo::getAttribute(PlayerInfo::MAX_MP); + // TRANSLATORS: status window label mMpLabel = new Label(this, _("MP:")); mMpBar = new ProgressBar(this, max ? static_cast( PlayerInfo::getAttribute(PlayerInfo::MAX_MP)) @@ -226,7 +232,9 @@ StatusWindow::StatusWindow() : if (job) { + // TRANSLATORS: status window label mJobLvlLabel = new Label(this, strprintf(_("Job: %d"), 0)); + // TRANSLATORS: status window label mJobLabel = new Label(this, _("Job:")); mJobBar = new ProgressBar(this, 0.0f, 80, 0, Theme::PROG_JOB); @@ -275,21 +283,25 @@ StatusWindow::StatusWindow() : updateMPBar(mMpBar, true); updateXPBar(mXpBar, false); + // TRANSLATORS: status window label mMoneyLabel->setCaption(strprintf(_("Money: %s"), Units::formatCurrency( PlayerInfo::getAttribute(PlayerInfo::MONEY)).c_str())); mMoneyLabel->adjustSize(); + // TRANSLATORS: status window label mCharacterPointsLabel->setCaption(strprintf(_("Character points: %d"), PlayerInfo::getAttribute(PlayerInfo::CHAR_POINTS))); mCharacterPointsLabel->adjustSize(); if (player_node && player_node->isGM()) { + // TRANSLATORS: status window label mLvlLabel->setCaption(strprintf(_("Level: %d (GM %d)"), PlayerInfo::getAttribute(PlayerInfo::LEVEL), player_node->getGMLevel())); } else { + // TRANSLATORS: status window label mLvlLabel->setCaption(strprintf(_("Level: %d"), PlayerInfo::getAttribute(PlayerInfo::LEVEL))); } @@ -323,6 +335,7 @@ void StatusWindow::processEvent(Channels channel A_UNUSED, break; case PlayerInfo::MONEY: + // TRANSLATORS: status window label mMoneyLabel->setCaption(strprintf(_("Money: %s"), Units::formatCurrency(event.getInt("newValue")).c_str())); mMoneyLabel->adjustSize(); @@ -330,6 +343,7 @@ void StatusWindow::processEvent(Channels channel A_UNUSED, case PlayerInfo::CHAR_POINTS: mCharacterPointsLabel->setCaption(strprintf( + // TRANSLATORS: status window label _("Character points: %d"), event.getInt("newValue"))); mCharacterPointsLabel->adjustSize(); @@ -344,6 +358,7 @@ void StatusWindow::processEvent(Channels channel A_UNUSED, case PlayerInfo::CORR_POINTS: mCorrectionPointsLabel->setCaption(strprintf( + // TRANSLATORS: status window label _("Correction points: %d"), event.getInt("newValue"))); mCorrectionPointsLabel->adjustSize(); // Update all attributes @@ -356,8 +371,9 @@ void StatusWindow::processEvent(Channels channel A_UNUSED, break; case PlayerInfo::LEVEL: + // TRANSLATORS: status window label mLvlLabel->setCaption(strprintf(_("Level: %d"), - event.getInt("newValue"))); + event.getInt("newValue"))); mLvlLabel->adjustSize(); break; @@ -405,6 +421,7 @@ void StatusWindow::processEvent(Channels channel A_UNUSED, blocked = false; } + // TRANSLATORS: status window label mJobLvlLabel->setCaption(strprintf(_("Job: %d"), lvl)); mJobLvlLabel->adjustSize(); @@ -537,6 +554,7 @@ void StatusWindow::updateProgressBar(ProgressBar *const bar, const int value, if (max == 0) { + // TRANSLATORS: status bar label bar->setText(_("Max")); bar->setProgress(1); bar->setText(toString(value)); @@ -593,6 +611,7 @@ void StatusWindow::updateWeightBar(ProgressBar *const bar) if (PlayerInfo::getAttribute(PlayerInfo::MAX_WEIGHT) == 0) { + // TRANSLATORS: status bar label bar->setText(_("Max")); bar->setProgress(1.0); } @@ -807,8 +826,10 @@ ChangeDisplay::ChangeDisplay(const Widget2 *const widget, AttrDisplay(widget, id, name, shortName), gcn::ActionListener(), mNeeded(1), + // TRANSLATORS: status window label mPoints(new Label(this, _("Max"))), mDec(nullptr), + // TRANSLATORS: status window label (plus sign) mInc(new Button(this, _("+"), "inc", this)) { // Do the layout @@ -821,6 +842,7 @@ ChangeDisplay::ChangeDisplay(const Widget2 *const widget, if (Net::getPlayerHandler()->canCorrectAttributes()) { + // TRANSLATORS: status window label (minus sign) mDec = new Button(this, _("-"), "dec", this); mDec->setWidth(mInc->getWidth()); @@ -833,9 +855,14 @@ ChangeDisplay::ChangeDisplay(const Widget2 *const widget, std::string ChangeDisplay::update() { if (mNeeded > 0) + { mPoints->setCaption(toString(mNeeded)); + } else + { + // TRANSLATORS: status bar label mPoints->setCaption(_("Max")); + } if (mDec) mDec->setEnabled(PlayerInfo::getAttribute(PlayerInfo::CORR_POINTS)); diff --git a/src/gui/textcommandeditor.cpp b/src/gui/textcommandeditor.cpp index 019d38133..7df02e704 100644 --- a/src/gui/textcommandeditor.cpp +++ b/src/gui/textcommandeditor.cpp @@ -94,8 +94,7 @@ public: virtual std::string getElementAt(int i) { if (i < 0 || i >= getNumberOfElements()) - return _("???"); - + return "???"; return mStrings.at(i); } private: @@ -105,18 +104,27 @@ private: const char *TARGET_TYPE_TEXT[3] = { + // TRANSLATORS: target type N_("No Target"), + // TRANSLATORS: target type N_("Allow Target"), + // TRANSLATORS: target type N_("Need Target"), }; const char *MAGIC_SCHOOL_TEXT[6] = { + // TRANSLATORS: magic school N_("General Magic"), + // TRANSLATORS: magic school N_("Life Magic"), + // TRANSLATORS: magic school N_("War Magic"), + // TRANSLATORS: magic school N_("Transmute Magic"), + // TRANSLATORS: magic school N_("Nature Magic"), + // TRANSLATORS: magic school N_("Astral Magic") }; @@ -134,8 +142,7 @@ public: virtual std::string getElementAt(int i) { if (i >= getNumberOfElements() || i < 0) - return _("???"); - + return "???"; return TARGET_TYPE_TEXT[i]; } }; @@ -154,44 +161,58 @@ public: virtual std::string getElementAt(int i) { if (i >= getNumberOfElements() || i < 0) - return _("???"); - + return "???"; return MAGIC_SCHOOL_TEXT[i]; } }; TextCommandEditor::TextCommandEditor(TextCommand *const command) : + // TRANSLATORS: command editor name Window(_("Command Editor"), false, nullptr, "commandeditor.xml"), gcn::ActionListener(), mIsMagicCommand(command->getCommandType() == TEXT_COMMAND_MAGIC), mCommand(command), mAdvanced(false), + // TRANSLATORS: command editor button mIsMagic(new RadioButton(this, _("magic"), "magic", mIsMagicCommand)), + // TRANSLATORS: command editor button mIsOther(new RadioButton(this, _("other"), "magic", !mIsMagicCommand)), + // TRANSLATORS: command editor label mSymbolLabel(new Label(this, _("Symbol:"))), mSymbolTextField(new TextField(this)), + // TRANSLATORS: command editor label mCommandLabel(new Label(this, _("Command:"))), mCommandTextField(new TextField(this)), + // TRANSLATORS: command editor label mCommentLabel(new Label(this, _("Comment:"))), mCommentTextField(new TextField(this)), mTargetTypeModel(new TargetTypeModel), + // TRANSLATORS: command editor label mTypeLabel(new Label(this, _("Target Type:"))), mTypeDropDown(new DropDown(this, mTargetTypeModel)), mIconsModal(new IconsModal), + // TRANSLATORS: command editor label mIconLabel(new Label(this, _("Icon:"))), mIconDropDown(new DropDown(this, mIconsModal)), + // TRANSLATORS: command editor label mManaLabel(new Label(this, _("Mana:"))), mManaField(new IntTextField(this, 0)), + // TRANSLATORS: command editor label mMagicLvlLabel(new Label(this, _("Magic level:"))), mMagicLvlField(new IntTextField(this, 0)), mMagicSchoolModel(new MagicSchoolModel), + // TRANSLATORS: command editor label mSchoolLabel(new Label(this, _("Magic School:"))), mSchoolDropDown(new DropDown(this, mMagicSchoolModel)), + // TRANSLATORS: command editor label mSchoolLvlLabel(new Label(this, _("School level:"))), mSchoolLvlField(new IntTextField(this, 0)), + // TRANSLATORS: command editor button mCancelButton(new Button(this, _("Cancel"), "cancel", this)), + // TRANSLATORS: command editor button mSaveButton(new Button(this, _("Save"), "save", this)), + // TRANSLATORS: command editor button mDeleteButton(new Button(this, _("Delete"), "delete", this)), mEnabledKeyboard(keyboard.isEnabled()) { diff --git a/src/gui/textdialog.cpp b/src/gui/textdialog.cpp index 146bcede5..4df04a2ed 100644 --- a/src/gui/textdialog.cpp +++ b/src/gui/textdialog.cpp @@ -42,12 +42,14 @@ TextDialog::TextDialog(const std::string &title, const std::string &msg, gcn::ActionListener(), mTextField(nullptr), mPasswordField(nullptr), + // TRANSLATORS: text dialog button mOkButton(new Button(this, _("OK"), "OK", this)), mEnabledKeyboard(keyboard.isEnabled()) { keyboard.setEnabled(false); Label *const textLabel = new Label(this, msg); + // TRANSLATORS: text dialog button Button *const cancelButton = new Button(this, _("Cancel"), "CANCEL", this); place(0, 0, textLabel, 4); diff --git a/src/gui/tradewindow.cpp b/src/gui/tradewindow.cpp index e77fd3482..948e5f964 100644 --- a/src/gui/tradewindow.cpp +++ b/src/gui/tradewindow.cpp @@ -53,12 +53,17 @@ #include "debug.h" +// TRANSLATORS: trade window button #define CAPTION_PROPOSE _("Propose trade") +// TRANSLATORS: trade window button #define CAPTION_CONFIRMED _("Confirmed. Waiting...") +// TRANSLATORS: trade window button #define CAPTION_ACCEPT _("Agree trade") +// TRANSLATORS: trade window button #define CAPTION_ACCEPTED _("Agreed. Waiting...") TradeWindow::TradeWindow(): + // TRANSLATORS: trade window caption Window(_("Trade: You"), false, nullptr, "trade.xml"), gcn::ActionListener(), gcn::SelectionListener(), @@ -66,9 +71,12 @@ TradeWindow::TradeWindow(): mPartnerInventory(new Inventory(Inventory::TRADE)), mMyItemContainer(new ItemContainer(this, mMyInventory.get())), mPartnerItemContainer(new ItemContainer(this, mPartnerInventory.get())), + // TRANSLATORS: trade window money label mMoneyLabel(new Label(this, strprintf(_("You get %s"), ""))), + // TRANSLATORS: trade window button mAddButton(new Button(this, _("Add"), "add", this)), mOkButton(new Button(this, "", "", this)), // Will be filled in later + // TRANSLATORS: trade window money change button mMoneyChangeButton(new Button(this, _("Change"), "money", this)), mMoneyField(new TextField(this)), mStatus(PROPOSING), @@ -114,6 +122,7 @@ TradeWindow::TradeWindow(): true, "trade_background.xml"); partnerScroll->setHorizontalScrollPolicy(ScrollArea::SHOW_NEVER); + // TRANSLATORS: trade window money label Label *const moneyLabel2 = new Label(this, _("You give:")); mMoneyField->setWidth(40); @@ -169,6 +178,7 @@ void TradeWindow::setMoney(const int amount) } mGotMoney = amount; + // TRANSLATORS: trade window money label mMoneyLabel->setCaption(strprintf(_("You get %s"), Units::formatCurrency(amount).c_str())); mMoneyLabel->adjustSize(); @@ -379,6 +389,7 @@ void TradeWindow::action(const gcn::ActionEvent &event) { if (localChatTab) { + // TRANSLATORS: trade error localChatTab->chatLog(_("You don't have enough money."), BY_SERVER); } @@ -460,6 +471,7 @@ bool TradeWindow::checkItem(const Item *const item) const { if (localChatTab) { + // TRANSLATORS: trade error localChatTab->chatLog(_("Failed adding item. You can not " "overlap one kind of item on the window."), BY_SERVER); } diff --git a/src/gui/unregisterdialog.cpp b/src/gui/unregisterdialog.cpp index 49db5175c..eabf13633 100644 --- a/src/gui/unregisterdialog.cpp +++ b/src/gui/unregisterdialog.cpp @@ -43,17 +43,22 @@ #include "debug.h" -UnRegisterDialog::UnRegisterDialog(LoginData *const data): +UnRegisterDialog::UnRegisterDialog(LoginData *const data) : + // TRANSLATORS: unregister dialog name Window(_("Unregister"), true, nullptr, "unregister.xml"), gcn::ActionListener(), mLoginData(data), mPasswordField(new PasswordField(this, mLoginData->password)), + // TRANSLATORS: unregister dialog. button. mUnRegisterButton(new Button(this, _("Unregister"), "unregister", this)), + // TRANSLATORS: unregister dialog. button. mCancelButton(new Button(this, _("Cancel"), "cancel", this)), mWrongDataNoticeListener(new WrongDataNoticeListener) { + // TRANSLATORS: unregister dialog. label. Label *const userLabel = new Label(this, strprintf(_("Name: %s"), mLoginData->username.c_str())); + // TRANSLATORS: unregister dialog. label. Label *const passwordLabel = new Label(this, _("Password:")); const int width = 210; @@ -115,17 +120,16 @@ void UnRegisterDialog::action(const gcn::ActionEvent &event) const unsigned int max = Net::getLoginHandler() ->getMaxPasswordLength(); - // Check password if (password.length() < min) { - // Pass too short + // TRANSLATORS: unregister dialog. error message. errorMsg << strprintf(_("The password needs to be at least %u " "characters long."), min); error = true; } else if (password.length() > max - 1) { - // Pass too long + // TRANSLATORS: unregister dialog. error message. errorMsg << strprintf(_("The password needs to be less than " "%u characters long."), max); error = true; @@ -135,6 +139,7 @@ void UnRegisterDialog::action(const gcn::ActionEvent &event) { mWrongDataNoticeListener->setTarget(this->mPasswordField); + // TRANSLATORS: unregister dialog. error message. OkDialog *const dlg = new OkDialog(_("Error"), errorMsg.str(), DIALOG_ERROR); dlg->addActionListener(mWrongDataNoticeListener); diff --git a/src/gui/updaterwindow.cpp b/src/gui/updaterwindow.cpp index 0542bf6eb..a614b7288 100644 --- a/src/gui/updaterwindow.cpp +++ b/src/gui/updaterwindow.cpp @@ -136,6 +136,7 @@ UpdaterWindow::UpdaterWindow(const std::string &updateHost, const std::string &updatesDir, const bool applyUpdates, const int updateType): + // TRANSLATORS: updater window name Window(_("Updating..."), false, nullptr, "update.xml"), gcn::ActionListener(), gcn::KeyListener(), @@ -160,8 +161,11 @@ UpdaterWindow::UpdaterWindow(const std::string &updateHost, mUpdateIndexOffset(0), mLoadUpdates(applyUpdates), mUpdateType(updateType), + // TRANSLATORS: updater window label mLabel(new Label(this, _("Connecting..."))), + // TRANSLATORS: updater window button mCancelButton(new Button(this, _("Cancel"), "cancel", this)), + // TRANSLATORS: updater window button mPlayButton(new Button(this, _("Play"), "play", this)), mProgressBar(new ProgressBar(this, 0.0, 310, 0)), mBrowserBox(new BrowserBox(this)), @@ -648,8 +652,9 @@ void UpdaterWindow::logic() { case UPDATE_ERROR: mBrowserBox->addRow(""); + // TRANSLATORS: update message mBrowserBox->addRow(_("##1 The update process is incomplete.")); - // TRANSLATORS: Continues "you try again later.". + // TRANSLATORS: Continues "The update process is incomplete.". mBrowserBox->addRow(_("##1 It is strongly recommended that")); // TRANSLATORS: Begins "It is strongly recommended that". mBrowserBox->addRow(_("##1 you try again later.")); @@ -830,6 +835,7 @@ void UpdaterWindow::logic() case UPDATE_COMPLETE: mUpdatesDir = mUpdatesDirReal; enable(); + // TRANSLATORS: updater window label setLabel(_("Completed")); break; case UPDATE_IDLE: diff --git a/src/gui/userpalette.cpp b/src/gui/userpalette.cpp index e378aef6c..4491b63d2 100644 --- a/src/gui/userpalette.cpp +++ b/src/gui/userpalette.cpp @@ -112,62 +112,104 @@ UserPalette::UserPalette(): mColors[NPC] = ColorElem(); mColors[MONSTER] = ColorElem(); + // TRANSLATORS: palette color addColor(BEING, 0xffffff, STATIC, _("Being")); + // TRANSLATORS: palette color addColor(FRIEND, 0xb0ffb0, STATIC, _("Friend Names")); + // TRANSLATORS: palette color addColor(DISREGARDED, 0xa00000, STATIC, _("Disregarded Names")); + // TRANSLATORS: palette color addColor(IGNORED, 0xff0000, STATIC, _("Ignored Names")); + // TRANSLATORS: palette color addColor(ERASED, 0xff0000, STATIC, _("Erased Names")); + // TRANSLATORS: palette color addColor(PC, 0xffffff, STATIC, _("Other Players' Names")); + // TRANSLATORS: palette color addColor(SELF, 0xff8040, STATIC, _("Own Name")); + // TRANSLATORS: palette color addColor(GM, 0x00ff00, STATIC, _("GM Names")); + // TRANSLATORS: palette color addColor(NPC, 0xc8c8ff, STATIC, _("NPCs")); + // TRANSLATORS: palette color addColor(MONSTER, 0xff4040, STATIC, _("Monsters")); + // TRANSLATORS: palette color addColor(MONSTER_HP, 0x00ff00, STATIC, _("Monster HP bar"), 50); addColor(MONSTER_HP2, 0xff0000, STATIC, + // TRANSLATORS: palette color _("Monster HP bar (second color)"), 50); + // TRANSLATORS: palette color addColor(PARTY, 0xff00d8, STATIC, _("Party Members")); + // TRANSLATORS: palette color addColor(GUILD, 0xff00d8, STATIC, _("Guild Members")); + // TRANSLATORS: palette color addColor(PARTICLE, 0xffffff, STATIC, _("Particle Effects")); + // TRANSLATORS: palette color addColor(PICKUP_INFO, 0x28dc28, STATIC, _("Pickup Notification")); + // TRANSLATORS: palette color addColor(EXP_INFO, 0xffff00, STATIC, _("Exp Notification")); + // TRANSLATORS: palette color addColor(PLAYER_HP, 0x00ff00, STATIC, _("Player HP bar"), 50); + // TRANSLATORS: palette color addColor(PLAYER_HP2, 0xff0000, STATIC, + // TRANSLATORS: palette color _("Player HP bar (second color)"), 50); + // TRANSLATORS: palette color addColor(HIT_PLAYER_MONSTER, 0x0064ff, STATIC, _("Player Hits Monster")); + // TRANSLATORS: palette color addColor(HIT_MONSTER_PLAYER, 0xff3232, STATIC, _("Monster Hits Player")); + // TRANSLATORS: palette color addColor(HIT_PLAYER_PLAYER, 0xff5050, STATIC, - _("Other Player Hits Local Player")); + // TRANSLATORS: palette color + _("Other Player Hits Local Player")); + // TRANSLATORS: palette color addColor(HIT_CRITICAL, 0xff0000, RAINBOW, _("Critical Hit")); + // TRANSLATORS: palette color addColor(HIT_LOCAL_PLAYER_MONSTER, 0x00ff00, STATIC, - _("Local Player Hits Monster")); + // TRANSLATORS: palette color + _("Local Player Hits Monster")); addColor(HIT_LOCAL_PLAYER_CRITICAL, 0xff0000, RAINBOW, - _("Local Player Critical Hit")); + // TRANSLATORS: palette color + _("Local Player Critical Hit")); addColor(HIT_LOCAL_PLAYER_MISS, 0x00ffa6, STATIC, - _("Local Player Miss")); + // TRANSLATORS: palette color + _("Local Player Miss")); + // TRANSLATORS: palette color addColor(MISS, 0xffff00, STATIC, _("Misses")); + // TRANSLATORS: palette color addColor(PORTAL_HIGHLIGHT, 0xC80000, STATIC, _("Portal Highlight")); addColor(COLLISION_HIGHLIGHT, 0x0000C8, STATIC, - _("Default collision Highlight"), 64); + // TRANSLATORS: palette color + _("Default collision Highlight"), 64); addColor(AIR_COLLISION_HIGHLIGHT, 0xe0e0ff, STATIC, - _("Air collision Highlight"), 64); + // TRANSLATORS: palette color + _("Air collision Highlight"), 64); addColor(WATER_COLLISION_HIGHLIGHT, 0x2050e0, STATIC, - _("Water collision Highlight"), 64); + // TRANSLATORS: palette color + _("Water collision Highlight"), 64); addColor(GROUNDTOP_COLLISION_HIGHLIGHT, 0xffff00, STATIC, - _("Special ground collision Highlight"), 20); + // TRANSLATORS: palette color + _("Special ground collision Highlight"), 20); addColor(WALKABLE_HIGHLIGHT, 0x00D000, STATIC, - _("Walkable Highlight"), 255); + // TRANSLATORS: palette color + _("Walkable Highlight"), 255); addColor(ATTACK_RANGE, 0xffffff, STATIC, - _("Local Player Attack Range"), 5); + // TRANSLATORS: palette color + _("Local Player Attack Range"), 5); addColor(ATTACK_RANGE_BORDER, 0x0, STATIC, - _("Local Player Attack Range Border"), 76); + // TRANSLATORS: palette color + _("Local Player Attack Range Border"), 76); addColor(MONSTER_ATTACK_RANGE, 0xff0000, STATIC, - _("Monster Attack Range"), 20); + // TRANSLATORS: palette color + _("Monster Attack Range"), 20); addColor(HOME_PLACE, 0xffffff, STATIC, - _("Home Place"), 20); + // TRANSLATORS: palette color + _("Home Place"), 20); addColor(HOME_PLACE_BORDER, 0xffff00, STATIC, - _("Home Place Border"), 200); + // TRANSLATORS: palette color + _("Home Place Border"), 200); addColor(ROAD_POINT, 0x000000, STATIC, - _("Road Point"), 100); + // TRANSLATORS: palette color + _("Road Point"), 100); commit(true); } diff --git a/src/gui/whoisonline.cpp b/src/gui/whoisonline.cpp index b38218662..81f6a15de 100644 --- a/src/gui/whoisonline.cpp +++ b/src/gui/whoisonline.cpp @@ -74,7 +74,8 @@ class NameFunctuator final } } nameCompare; -WhoIsOnline::WhoIsOnline(): +WhoIsOnline::WhoIsOnline() : + // TRANSLATORS: who is online window name Window(_("Who Is Online - Updating"), false, nullptr, "whoisonline.xml"), mThread(nullptr), mDownloadStatus(UPDATE_LIST), @@ -87,6 +88,7 @@ WhoIsOnline::WhoIsOnline(): mUpdateTimer(0), mOnlinePlayers(), mOnlineNicks(), + // TRANSLATORS: who is online. button. mUpdateButton(new Button(this, _("Update"), "update", this)), mAllowUpdate(true), mShowLevel(false), @@ -199,6 +201,7 @@ void WhoIsOnline::updateWindow(std::vector &friends, size_t numOnline) { // Set window caption + // TRANSLATORS: who is online window name setCaption(_("Who Is Online - ") + toString(numOnline)); // List the online people @@ -616,6 +619,7 @@ void WhoIsOnline::slowLogic() { if (mDownloadComplete == true) { + // TRANSLATORS: who is online window name setCaption(_("Who Is Online - Updating")); mUpdateTimer = 0; mDownloadStatus = UPDATE_LIST; @@ -630,6 +634,7 @@ void WhoIsOnline::slowLogic() mBrowserBox->addRow("##1Failed to fetch the online list!"); mBrowserBox->addRow(mCurlError); mDownloadStatus = UPDATE_COMPLETE; + // TRANSLATORS: who is online window name setCaption(_("Who Is Online - error")); mUpdateButton->setEnabled(true); mUpdateTimer = cur_time + 240; @@ -671,6 +676,7 @@ void WhoIsOnline::action(const gcn::ActionEvent &event) mUpdateTimer = cur_time - 20; if (mUpdateButton) mUpdateButton->setEnabled(false); + // TRANSLATORS: who is online window name setCaption(_("Who Is Online - Update")); if (mThread && SDL_GetThreadID(mThread)) { diff --git a/src/gui/widgets/battletab.cpp b/src/gui/widgets/battletab.cpp index 96e964b67..005cea05a 100644 --- a/src/gui/widgets/battletab.cpp +++ b/src/gui/widgets/battletab.cpp @@ -38,6 +38,7 @@ #include "debug.h" BattleTab::BattleTab(const Widget2 *const widget) : + // TRANSLATORS: battle chat tab name ChatTab(widget, _("Battle"), "") { if (config.getBoolValue("showChatHistory")) diff --git a/src/gui/widgets/chattab.cpp b/src/gui/widgets/chattab.cpp index 95f46385b..09b3bea6b 100644 --- a/src/gui/widgets/chattab.cpp +++ b/src/gui/widgets/chattab.cpp @@ -148,11 +148,13 @@ void ChatTab::chatLog(std::string line, Own own, case BY_GM: if (tmp.nick.empty()) { + // TRANSLATORS: chat message tmp.nick = std::string(_("Global announcement:")).append(" "); lineColor = "##G"; } else { + // TRANSLATORS: chat message tmp.nick = strprintf(_("Global announcement from %s:"), tmp.nick.c_str()).append(" "); lineColor = "##1"; // Equiv. to BrowserBox::RED @@ -168,6 +170,7 @@ void ChatTab::chatLog(std::string line, Own own, lineColor = "##C"; break; case BY_SERVER: + // TRANSLATORS: chat message tmp.nick = std::string(_("Server:")).append(" "); tmp.text = line; lineColor = "##S"; @@ -177,6 +180,7 @@ void ChatTab::chatLog(std::string line, Own own, lineColor = "##2"; // Equiv. to BrowserBox::GREEN break; case ACT_WHISPER: + // TRANSLATORS: chat message tmp.nick = strprintf(_("%s whispers: %s"), tmp.nick.c_str(), ""); lineColor = "##W"; break; @@ -520,7 +524,13 @@ void ChatTab::showOnline(const std::string &nick, return; if (isOnline) + { + // TRANSLATORS: chat message chatLog(strprintf(_("%s is now Online."), nick.c_str())); + } else + { + // TRANSLATORS: chat message chatLog(strprintf(_("%s is now Offline."), nick.c_str())); + } } diff --git a/src/gui/widgets/extendednamesmodel.cpp b/src/gui/widgets/extendednamesmodel.cpp index 4b9eabdae..9eca8ffa6 100644 --- a/src/gui/widgets/extendednamesmodel.cpp +++ b/src/gui/widgets/extendednamesmodel.cpp @@ -45,8 +45,7 @@ int ExtendedNamesModel::getNumberOfElements() std::string ExtendedNamesModel::getElementAt(int i) { if (i >= getNumberOfElements() || i < 0) - return _("???"); - + return "???"; return mNames[i]; } diff --git a/src/gui/widgets/gmtab.cpp b/src/gui/widgets/gmtab.cpp index 9a28622a9..7c356ec43 100644 --- a/src/gui/widgets/gmtab.cpp +++ b/src/gui/widgets/gmtab.cpp @@ -32,6 +32,7 @@ #include "debug.h" GmTab::GmTab(const Widget2 *const widget) : + // TRANSLATORS: gb tab name ChatTab(widget, _("GM"), "") { setTabColor(&getThemeColor(Theme::GM_CHAT_TAB), diff --git a/src/gui/widgets/guildchattab.cpp b/src/gui/widgets/guildchattab.cpp index bb85e1a5b..0ce3cda1c 100644 --- a/src/gui/widgets/guildchattab.cpp +++ b/src/gui/widgets/guildchattab.cpp @@ -37,6 +37,7 @@ #include "debug.h" GuildChatTab::GuildChatTab(const Widget2 *const widget) : + // TRANSLATORS: guild chat tab name ChatTab(widget, _("Guild"), "") { setTabColor(&getThemeColor(Theme::GUILD_CHAT_TAB), @@ -61,18 +62,25 @@ bool GuildChatTab::handleCommand(const std::string &type, { if (args == "invite") { + // TRANSLATORS: guild chat tab help chatLog(_("Command: /invite ")); + // TRANSLATORS: guild chat tab help chatLog(_("This command invites to the guild you're in.")); + // TRANSLATORS: guild chat tab help chatLog(_("If the has spaces in it, enclose it in " "double quotes (\").")); } else if (args == "leave") { + // TRANSLATORS: guild chat tab help chatLog(_("Command: /leave")); + // TRANSLATORS: guild chat tab help chatLog(_("This command causes the player to leave the guild.")); } else + { return false; + } } else if (type == "invite" && guildManager) { @@ -111,9 +119,13 @@ void GuildChatTab::handleInput(const std::string &msg) void GuildChatTab::showHelp() { + // TRANSLATORS: guild chat tab help chatLog(_("/help > Display this help.")); + // TRANSLATORS: guild chat tab help chatLog(_("/invite > Invite a player to your guild")); + // TRANSLATORS: guild chat tab help chatLog(_("/leave > Leave the guild you are in")); + // TRANSLATORS: guild chat tab help chatLog(_("/kick > Kick some one from the guild you are in")); } diff --git a/src/gui/widgets/itemlinkhandler.cpp b/src/gui/widgets/itemlinkhandler.cpp index 78652b4af..d1fbcb5e9 100644 --- a/src/gui/widgets/itemlinkhandler.cpp +++ b/src/gui/widgets/itemlinkhandler.cpp @@ -83,6 +83,7 @@ void ItemLinkHandler::handleLink(const std::string &link, if (button == gcn::MouseInput::LEFT) { ConfirmDialog *const confirmDlg = new ConfirmDialog( + // TRANSLATORS: dialog message _("Open url"), url, false, true); confirmDlg->addActionListener(&listener); } diff --git a/src/gui/widgets/langtab.cpp b/src/gui/widgets/langtab.cpp index f9ae12ebd..f61c7e348 100644 --- a/src/gui/widgets/langtab.cpp +++ b/src/gui/widgets/langtab.cpp @@ -27,6 +27,7 @@ #include "debug.h" LangTab::LangTab(const Widget2 *const widget, const std::string &lang) : + // TRANSLATORS: lang chat tab name ChatTab(widget, _("Lang"), lang + " ") { } diff --git a/src/gui/widgets/namesmodel.cpp b/src/gui/widgets/namesmodel.cpp index bac8ee0b7..0dc06b05c 100644 --- a/src/gui/widgets/namesmodel.cpp +++ b/src/gui/widgets/namesmodel.cpp @@ -46,8 +46,7 @@ int NamesModel::getNumberOfElements() std::string NamesModel::getElementAt(int i) { if (i >= getNumberOfElements() || i < 0) - return _("???"); - + return "???"; return mNames[i]; } diff --git a/src/gui/widgets/setupitem.cpp b/src/gui/widgets/setupitem.cpp index ed99061fc..7439e564a 100644 --- a/src/gui/widgets/setupitem.cpp +++ b/src/gui/widgets/setupitem.cpp @@ -295,6 +295,7 @@ void SetupItemTextField::createControls() mLabel = new Label(this, mText); mTextField = new TextField(this, mValue, true, mParent, mEventName); + // TRANSLATORS: setup item button mButton = new Button(this, _("Edit"), mEventName + "_EDIT", mParent); mWidget = mTextField; mTextField->setWidth(200); @@ -421,6 +422,7 @@ void SetupItemIntTextField::createControls() mTextField->setActionEventId(mEventName); mTextField->addActionListener(mParent); + // TRANSLATORS: setup item button mButton = new Button(this, _("Edit"), mEventName + "_EDIT", mParent); mWidget = mTextField; mTextField->setWidth(50); diff --git a/src/gui/widgets/tradetab.cpp b/src/gui/widgets/tradetab.cpp index 380b11f06..b3fc2dcbe 100644 --- a/src/gui/widgets/tradetab.cpp +++ b/src/gui/widgets/tradetab.cpp @@ -36,6 +36,7 @@ #include "debug.h" TradeTab::TradeTab(const Widget2 *const widget) : + // TRANSLATORS: trade chat tab name ChatTab(widget, _("Trade"), TRADE_CHANNEL) { } diff --git a/src/gui/widgets/whispertab.cpp b/src/gui/widgets/whispertab.cpp index 95c2fa505..6f3ddbcdb 100644 --- a/src/gui/widgets/whispertab.cpp +++ b/src/gui/widgets/whispertab.cpp @@ -48,12 +48,6 @@ WhisperTab::~WhisperTab() void WhisperTab::handleInput(const std::string &msg) { -// if (msg.empty()) -// { -// chatLog(_("Cannot send empty chat!"), BY_SERVER, false); -// return; -// } - if (chatWindow) { Net::getChatHandler()->privateMessage(mNick, @@ -100,8 +94,11 @@ void WhisperTab::handleCommand(const std::string &msg) void WhisperTab::showHelp() { + // TRANSLATORS: whisper tab help chatLog(_("/ignore > Ignore the other player")); + // TRANSLATORS: whisper tab help chatLog(_("/unignore > Stop ignoring the other player")); + // TRANSLATORS: whisper tab help chatLog(_("/close > Close the whisper tab")); } @@ -112,18 +109,24 @@ bool WhisperTab::handleCommand(const std::string &type, { if (args == "close") { + // TRANSLATORS: whisper tab help chatLog(_("Command: /close")); + // TRANSLATORS: whisper tab help chatLog(_("This command closes the current whisper tab.")); } else if (args == "ignore") { + // TRANSLATORS: whisper tab help chatLog(_("Command: /ignore")); + // TRANSLATORS: whisper tab help chatLog(_("This command ignores the other player regardless of " "current relations.")); } else if (args == "unignore") { + // TRANSLATORS: whisper tab help chatLog(_("Command: /unignore ")); + // TRANSLATORS: whisper tab help chatLog(_("This command stops ignoring the other player if they " "are being ignored.")); } diff --git a/src/gui/windowmenu.cpp b/src/gui/windowmenu.cpp index 9c03d20cc..45db47d58 100644 --- a/src/gui/windowmenu.cpp +++ b/src/gui/windowmenu.cpp @@ -123,27 +123,35 @@ WindowMenu::WindowMenu(const Widget2 *const widget) : // TRANSLATORS: short button name for social window. addButton(N_("SOC"), + // TRANSLATORS: full button name _("Social"), x, h, Input::KEY_WINDOW_SOCIAL); // TRANSLATORS: short button name for shortcuts window. addButton(N_("SH"), + // TRANSLATORS: full button name _("Shortcuts"), x, h, Input::KEY_WINDOW_SHORTCUT); // TRANSLATORS: short button name for spells window. addButton(N_("SP"), + // TRANSLATORS: full button name _("Spells"), x, h, Input::KEY_WINDOW_SPELLS); // TRANSLATORS: short button name for drops window. addButton(N_("DR"), + // TRANSLATORS: full button name _("Drop"), x, h, Input::KEY_WINDOW_DROP, false); // TRANSLATORS: short button name for did you know window. addButton(N_("YK"), + // TRANSLATORS: full button name _("Did you know"), x, h, Input::KEY_WINDOW_DIDYOUKNOW, false); // TRANSLATORS: short button name for shop window. addButton(N_("SHP"), + // TRANSLATORS: full button name _("Shop"), x, h, Input::KEY_WINDOW_SHOP, false); // TRANSLATORS: short button name for outfits window. addButton(N_("OU"), + // TRANSLATORS: full button name _("Outfits"), x, h, Input::KEY_WINDOW_OUTFIT, false); // TRANSLATORS: short button name for debug window. addButton(N_("DBG"), + // TRANSLATORS: full button name _("Debug"), x, h, Input::KEY_WINDOW_DEBUG, #ifdef ANDROID true); @@ -152,9 +160,11 @@ WindowMenu::WindowMenu(const Widget2 *const widget) : #endif // TRANSLATORS: short button name for windows list menu. addButton(N_("WIN"), + // TRANSLATORS: full button name _("Windows"), x, h, Input::KEY_SHOW_WINDOWS, false); // TRANSLATORS: short button name for setup window. addButton(N_("SET"), + // TRANSLATORS: full button name _("Setup"), x, h, Input::KEY_WINDOW_SETUP); x += mPadding - mSpacing; @@ -279,6 +289,7 @@ void WindowMenu::mouseMoved(gcn::MouseEvent &event) if (key != Input::KEY_NO_VALUE) { mTextPopup->show(x + getX(), y + getY(), btn->getDescription(), + // TRANSLATORS: short key name strprintf(_("Key: %s"), inputManager.getKeyValueString( key).c_str())); } diff --git a/src/gui/worldselectdialog.cpp b/src/gui/worldselectdialog.cpp index efdc7ba4b..8fe05e2e6 100644 --- a/src/gui/worldselectdialog.cpp +++ b/src/gui/worldselectdialog.cpp @@ -82,12 +82,15 @@ class WorldListModel final : public gcn::ListModel }; WorldSelectDialog::WorldSelectDialog(Worlds worlds): + // TRANSLATORS: world select dialog name Window(_("Select World"), false, nullptr, "world.xml"), gcn::ActionListener(), gcn::KeyListener(), mWorldListModel(new WorldListModel(worlds)), mWorldList(new ListBox(this, mWorldListModel, "")), + // TRANSLATORS: world dialog button mChangeLoginButton(new Button(this, _("Change Login"), "login", this)), + // TRANSLATORS: world dialog button mChooseWorld(new Button(this, _("Choose World"), "world", this)) { ScrollArea *const worldsScroll = new ScrollArea(mWorldList, -- cgit v1.2.3-70-g09d2