Commit 31cf3b20 authored by unknown's avatar unknown
Browse files
parents 1bc05562 87addd12
......@@ -5,7 +5,7 @@ INCLUDEPATH += . src ../common
MOC_DIR = build
OBJECTS_DIR = build
RESOURCES = cockatrice.qrc
QT += network svg multimedia
QT += network script svg multimedia
HEADERS += src/abstractcounter.h \
src/counter_general.h \
......@@ -71,6 +71,7 @@ HEADERS += src/abstractcounter.h \
src/localserverinterface.h \
src/localclient.h \
src/translation.h \
src/priceupdater.h \
src/soundengine.h \
../common/color.h \
../common/serializable_item.h \
......@@ -154,6 +155,7 @@ SOURCES += src/abstractcounter.cpp \
src/localserver.cpp \
src/localserverinterface.cpp \
src/localclient.cpp \
src/priceupdater.cpp \
src/soundengine.cpp \
../common/serializable_item.cpp \
../common/decklist.cpp \
......@@ -179,7 +181,10 @@ TRANSLATIONS += \
translations/cockatrice_pt-br.ts \
translations/cockatrice_fr.ts \
translations/cockatrice_ja.ts \
translations/cockatrice_ru.ts
translations/cockatrice_ru.ts \
translations/cockatrice_cz.ts \
translations/cockatrice_pl.ts
win32 {
RC_FILE = cockatrice.rc
}
......
......@@ -23,6 +23,7 @@
<file>resources/pencil.svg</file>
<file>resources/icon_search.svg</file>
<file>resources/icon_clearsearch.svg</file>
<file>resources/icon_update.png</file>
<file>resources/hr.jpg</file>
<file>resources/appicon.svg</file>
<file>resources/add_to_sideboard.svg</file>
......@@ -45,6 +46,8 @@
<file>translations/cockatrice_fr.qm</file>
<file>translations/cockatrice_ja.qm</file>
<file>translations/cockatrice_ru.qm</file>
<file>translations/cockatrice_cz.qm</file>
<file>translations/cockatrice_pl.qm</file>
<file>resources/countries/at.svg</file>
<file>resources/countries/au.svg</file>
......
......@@ -11,8 +11,24 @@
#include "settingscache.h"
CardInfoWidget::CardInfoWidget(ResizeMode _mode, QWidget *parent, Qt::WindowFlags flags)
: QFrame(parent, flags), pixmapWidth(160), aspectRatio((qreal) CARD_HEIGHT / (qreal) CARD_WIDTH), minimized(false), mode(_mode), info(0)
: QFrame(parent, flags)
, pixmapWidth(160)
, aspectRatio((qreal) CARD_HEIGHT / (qreal) CARD_WIDTH)
, minimized(settingsCache->getCardInfoMinimized()) // Initialize the cardinfo view status from cache.
, mode(_mode)
, info(0)
{
if (mode == ModeGameTab) {
// Create indexed list of status views for card.
const QStringList cardInfoStatus = QStringList() << tr("Hide card info") << tr("Show card only") << tr("Show text only") << tr("Show full info");
// Create droplist for cardinfo view selection, and set right current index.
dropList = new QComboBox();
dropList->addItems(cardInfoStatus);
dropList->setCurrentIndex(minimized);
connect(dropList, SIGNAL(currentIndexChanged(int)), this, SLOT(minimizeClicked(int)));
}
cardPicture = new QLabel;
cardPicture->setAlignment(Qt::AlignCenter);
......@@ -33,6 +49,8 @@ CardInfoWidget::CardInfoWidget(ResizeMode _mode, QWidget *parent, Qt::WindowFlag
QGridLayout *grid = new QGridLayout(this);
int row = 0;
if (mode == ModeGameTab)
grid->addWidget(dropList, row++, 1, 1, 1, Qt::AlignRight);
grid->addWidget(cardPicture, row++, 0, 1, 2);
grid->addWidget(nameLabel1, row, 0);
grid->addWidget(nameLabel2, row++, 1);
......@@ -51,15 +69,51 @@ CardInfoWidget::CardInfoWidget(ResizeMode _mode, QWidget *parent, Qt::WindowFlag
retranslateUi();
setFrameStyle(QFrame::Panel | QFrame::Raised);
setMinimumHeight(350);
if (mode == ModeGameTab) {
textLabel->setFixedHeight(100);
setFixedWidth(sizeHint().width());
setMaximumHeight(580);
setMinimized(settingsCache->getCardInfoMinimized());
} else if (mode == ModePopUp)
setFixedWidth(350);
else
setFixedWidth(250);
if (mode != ModeDeckEditor)
setFixedHeight(sizeHint().height());
}
void CardInfoWidget::minimizeClicked(int newMinimized)
{
// Set new status, and store it in the settings cache.
setMinimized(newMinimized);
settingsCache->setCardInfoMinimized(newMinimized);
}
void CardInfoWidget::setMinimized(int _minimized)
{
minimized = _minimized;
// Set the picture to be shown only at "card only" (1) and "full info" (3)
if (minimized == 1 || minimized == 3) {
cardPicture->setVisible(true);
} else {
cardPicture->setVisible(false);
}
// Set the rest of the fields to be shown only at "full info" (3) and "oracle only" (2)
bool showAll = (minimized == 2 || minimized == 3) ? true : false;
// Toggle oracle fields as according to selected view.
nameLabel2->setVisible(showAll);
nameLabel1->setVisible(showAll);
manacostLabel1->setVisible(showAll);
manacostLabel2->setVisible(showAll);
cardtypeLabel1->setVisible(showAll);
cardtypeLabel2->setVisible(showAll);
powtoughLabel1->setVisible(showAll);
powtoughLabel2->setVisible(showAll);
textLabel->setVisible(showAll);
setFixedHeight(sizeHint().height());
}
void CardInfoWidget::setCard(CardInfo *card)
......@@ -112,7 +166,7 @@ void CardInfoWidget::retranslateUi()
void CardInfoWidget::resizeEvent(QResizeEvent * /*event*/)
{
if ((mode == ModeDeckEditor) || (mode == ModeGameTab)) {
if (mode == ModeDeckEditor) {
pixmapWidth = qMin(width() * 0.95, (height() - 200) / aspectRatio);
updatePixmap();
}
......
......@@ -2,6 +2,8 @@
#define CARDINFOWIDGET_H
#include <QFrame>
#include <QStringList>
#include <QComboBox>
class QLabel;
class QTextEdit;
......@@ -13,34 +15,44 @@ class QMouseEvent;
class CardInfoWidget : public QFrame {
Q_OBJECT
public:
enum ResizeMode { ModeDeckEditor, ModeGameTab, ModePopUp };
private:
int pixmapWidth;
qreal aspectRatio;
bool minimized;
int minimized; // 0 - minimized, 1 - card, 2 - oracle only, 3 - full
ResizeMode mode;
QComboBox *dropList;
QLabel *cardPicture;
QLabel *nameLabel1, *nameLabel2;
QLabel *manacostLabel1, *manacostLabel2;
QLabel *cardtypeLabel1, *cardtypeLabel2;
QLabel *powtoughLabel1, *powtoughLabel2;
QTextEdit *textLabel;
CardInfo *info;
void setMinimized(int _minimized);
public:
CardInfoWidget(ResizeMode _mode, QWidget *parent = 0, Qt::WindowFlags f = 0);
void retranslateUi();
public slots:
void setCard(CardInfo *card);
void setCard(const QString &cardName);
void setCard(AbstractCardItem *card);
private slots:
void clear();
void updatePixmap();
void minimizeClicked(int newMinimized);
signals:
void mouseReleased();
protected:
void resizeEvent(QResizeEvent *event);
void mouseReleaseEvent(QMouseEvent *event);
......
......@@ -32,7 +32,7 @@ void ChatView::appendMessage(QString sender, const QString &message)
senderFormat.setForeground(Qt::blue);
cursor.setCharFormat(senderFormat);
if (!sender.isEmpty())
sender.append(" ");
sender.append(": ");
cursor.insertText(sender);
QTextCharFormat messageFormat;
......
......@@ -10,6 +10,7 @@
#include "main.h"
#include "decklistmodel.h"
#include "carddatabase.h"
#include "settingscache.h"
DeckListModel::DeckListModel(QObject *parent)
: QAbstractItemModel(parent)
......@@ -65,12 +66,20 @@ int DeckListModel::rowCount(const QModelIndex &parent) const
return 0;
}
int DeckListModel::columnCount(const QModelIndex &/*parent*/) const
{
if (settingsCache->getPriceTagFeature())
return 3;
else
return 2;
}
QVariant DeckListModel::data(const QModelIndex &index, int role) const
{
// debugIndexInfo("data", index);
if (!index.isValid())
return QVariant();
if (index.column() >= 2)
if (index.column() >= columnCount())
return QVariant();
AbstractDecklistNode *temp = static_cast<AbstractDecklistNode *>(index.internalPointer());
......@@ -86,8 +95,9 @@ QVariant DeckListModel::data(const QModelIndex &index, int role) const
case Qt::DisplayRole:
case Qt::EditRole:
switch (index.column()) {
case 0: return node->recursiveCount(true);
case 1: return node->getVisibleName();
case 0: return node->recursiveCount(true);
case 1: return node->getVisibleName();
case 2: return QString().sprintf("$%.2f", node->recursivePrice(true));
default: return QVariant();
}
case Qt::BackgroundRole: {
......@@ -101,8 +111,9 @@ QVariant DeckListModel::data(const QModelIndex &index, int role) const
case Qt::DisplayRole:
case Qt::EditRole: {
switch (index.column()) {
case 0: return card->getNumber();
case 1: return card->getName();
case 0: return card->getNumber();
case 1: return card->getName();
case 2: return QString().sprintf("$%.2f", card->getTotalPrice());
default: return QVariant();
}
}
......@@ -119,9 +130,12 @@ QVariant DeckListModel::headerData(int section, Qt::Orientation orientation, int
{
if ((role != Qt::DisplayRole) || (orientation != Qt::Horizontal))
return QVariant();
if (section >= columnCount())
return QVariant();
switch (section) {
case 0: return tr("Number");
case 1: return tr("Card");
case 0: return tr("Number");
case 1: return tr("Card");
case 2: return tr("Price");
default: return QVariant();
}
}
......@@ -174,8 +188,9 @@ bool DeckListModel::setData(const QModelIndex &index, const QVariant &value, int
return false;
switch (index.column()) {
case 0: node->setNumber(value.toInt()); break;
case 1: node->setName(value.toString()); break;
case 0: node->setNumber(value.toInt()); break;
case 1: node->setName(value.toString()); break;
case 2: node->setPrice(value.toFloat()); break;
default: return false;
}
emitRecursiveUpdates(index);
......@@ -300,7 +315,7 @@ void DeckListModel::setDeckList(DeckList *_deck)
void DeckListModel::printDeckListNode(QTextCursor *cursor, InnerDecklistNode *node)
{
static const int totalColumns = 3;
const int totalColumns = settingsCache->getPriceTagFeature() ? 3 : 2;
if (node->height() == 1) {
QTextBlockFormat blockFormat;
......@@ -308,13 +323,16 @@ void DeckListModel::printDeckListNode(QTextCursor *cursor, InnerDecklistNode *no
charFormat.setFontPointSize(11);
charFormat.setFontWeight(QFont::Bold);
cursor->insertBlock(blockFormat, charFormat);
cursor->insertText(QString("%1: %2").arg(node->getVisibleName()).arg(node->recursiveCount(true)));
QString priceStr;
if (settingsCache->getPriceTagFeature())
priceStr = QString().sprintf(": $%.2f", node->recursivePrice(true));
cursor->insertText(QString("%1: %2").arg(node->getVisibleName()).arg(node->recursiveCount(true)).append(priceStr));
QTextTableFormat tableFormat;
tableFormat.setCellPadding(0);
tableFormat.setCellSpacing(0);
tableFormat.setBorder(0);
QTextTable *table = cursor->insertTable(node->size() + 1, 2, tableFormat);
QTextTable *table = cursor->insertTable(node->size() + 1, totalColumns, tableFormat);
for (int i = 0; i < node->size(); i++) {
AbstractDecklistCardNode *card = dynamic_cast<AbstractDecklistCardNode *>(node->at(i));
......@@ -330,6 +348,13 @@ void DeckListModel::printDeckListNode(QTextCursor *cursor, InnerDecklistNode *no
cell.setFormat(cellCharFormat);
cellCursor = cell.firstCursorPosition();
cellCursor.insertText(card->getName());
if (settingsCache->getPriceTagFeature()) {
cell = table->cellAt(i, 2);
cell.setFormat(cellCharFormat);
cellCursor = cell.firstCursorPosition();
cellCursor.insertText(QString().sprintf("$%.2f ", card->getTotalPrice()));
}
}
} else if (node->height() == 2) {
QTextBlockFormat blockFormat;
......@@ -338,7 +363,10 @@ void DeckListModel::printDeckListNode(QTextCursor *cursor, InnerDecklistNode *no
charFormat.setFontWeight(QFont::Bold);
cursor->insertBlock(blockFormat, charFormat);
cursor->insertText(QString("%1: %2").arg(node->getVisibleName()).arg(node->recursiveCount(true)));
QString priceStr;
if (settingsCache->getPriceTagFeature())
priceStr = QString().sprintf(": $%.2f", node->recursivePrice(true));
cursor->insertText(QString("%1: %2").arg(node->getVisibleName()).arg(node->recursiveCount(true)).append(priceStr));
QTextTableFormat tableFormat;
tableFormat.setCellPadding(10);
......@@ -391,3 +419,14 @@ void DeckListModel::printDeckList(QPrinter *printer)
doc.print(printer);
}
void DeckListModel::pricesUpdated(InnerDecklistNode *node)
{
if (!node)
node = root;
if (node->isEmpty())
return;
emit dataChanged(createIndex(0, 2, node->at(0)), createIndex(node->size() - 1, 2, node->last()));
}
......@@ -17,6 +17,8 @@ public:
DecklistModelCardNode(DecklistCardNode *_dataNode, InnerDecklistNode *_parent) : AbstractDecklistCardNode(_parent), dataNode(_dataNode) { }
int getNumber() const { return dataNode->getNumber(); }
void setNumber(int _number) { dataNode->setNumber(_number); }
float getPrice() const { return dataNode->getPrice(); }
void setPrice(float _price) { dataNode->setPrice(_price); }
QString getName() const { return dataNode->getName(); }
void setName(const QString &_name) { dataNode->setName(_name); }
DecklistCardNode *getDataNode() const { return dataNode; }
......@@ -32,7 +34,7 @@ public:
DeckListModel(QObject *parent = 0);
~DeckListModel();
int rowCount(const QModelIndex &parent = QModelIndex()) const;
int columnCount(const QModelIndex &/*parent*/ = QModelIndex()) const { return 2; }
int columnCount(const QModelIndex &/*parent*/ = QModelIndex()) const;
QVariant data(const QModelIndex &index, int role) const;
QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const;
QModelIndex index(int row, int column, const QModelIndex &parent = QModelIndex()) const;
......@@ -45,6 +47,7 @@ public:
void cleanList();
DeckList *getDeckList() const { return deckList; }
void setDeckList(DeckList *_deck);
void pricesUpdated(InnerDecklistNode *node = 0);
private:
DeckList *deckList;
InnerDecklistNode *root;
......
......@@ -455,6 +455,30 @@ void UserInterfaceSettingsPage::soundPathButtonClicked()
settingsCache->setSoundPath(path);
}
DeckEditorSettingsPage::DeckEditorSettingsPage()
{
priceTagsCheckBox = new QCheckBox;
priceTagsCheckBox->setChecked(settingsCache->getPriceTagFeature());
connect(priceTagsCheckBox, SIGNAL(stateChanged(int)), settingsCache, SLOT(setPriceTagFeature(int)));
QGridLayout *generalGrid = new QGridLayout;
generalGrid->addWidget(priceTagsCheckBox, 0, 0);
generalGroupBox = new QGroupBox;
generalGroupBox->setLayout(generalGrid);
QVBoxLayout *mainLayout = new QVBoxLayout;
mainLayout->addWidget(generalGroupBox);
setLayout(mainLayout);
}
void DeckEditorSettingsPage::retranslateUi()
{
priceTagsCheckBox->setText(tr("Enable &price tag feature (using data from blacklotusproject.com)"));
generalGroupBox->setTitle(tr("General"));
}
MessagesSettingsPage::MessagesSettingsPage()
{
aAdd = new QAction(this);
......@@ -533,6 +557,7 @@ DlgSettings::DlgSettings(QWidget *parent)
pagesWidget->addWidget(new GeneralSettingsPage);
pagesWidget->addWidget(new AppearanceSettingsPage);
pagesWidget->addWidget(new UserInterfaceSettingsPage);
pagesWidget->addWidget(new DeckEditorSettingsPage);
pagesWidget->addWidget(new MessagesSettingsPage);
closeButton = new QPushButton;
......@@ -577,6 +602,11 @@ void DlgSettings::createIcons()
userInterfaceButton->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
userInterfaceButton->setIcon(QIcon(":/resources/icon_config_interface.svg"));
deckEditorButton = new QListWidgetItem(contentsWidget);
deckEditorButton->setTextAlignment(Qt::AlignHCenter);
deckEditorButton->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
deckEditorButton->setIcon(QIcon(":/resources/icon_deckeditor.svg"));
messagesButton = new QListWidgetItem(contentsWidget);
messagesButton->setTextAlignment(Qt::AlignHCenter);
messagesButton->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
......@@ -633,6 +663,7 @@ void DlgSettings::retranslateUi()
generalButton->setText(tr("General"));
appearanceButton->setText(tr("Appearance"));
userInterfaceButton->setText(tr("User interface"));
deckEditorButton->setText(tr("Deck editor"));
messagesButton->setText(tr("Messages"));
closeButton->setText(tr("&Close"));
......
......@@ -93,6 +93,16 @@ public:
void retranslateUi();
};
class DeckEditorSettingsPage : public AbstractSettingsPage {
Q_OBJECT
public:
DeckEditorSettingsPage();
void retranslateUi();
private:
QCheckBox *priceTagsCheckBox;
QGroupBox *generalGroupBox;
};
class MessagesSettingsPage : public AbstractSettingsPage {
Q_OBJECT
public:
......@@ -118,7 +128,7 @@ private slots:
private:
QListWidget *contentsWidget;
QStackedWidget *pagesWidget;
QListWidgetItem *generalButton, *appearanceButton, *userInterfaceButton, *messagesButton;
QListWidgetItem *generalButton, *appearanceButton, *userInterfaceButton, *deckEditorButton, *messagesButton;
QPushButton *closeButton;
void createIcons();
void retranslateUi();
......
/**
* @author Marcio Ribeiro <mmr@b1n.org>
* @version 1.0
*/
#include <QNetworkAccessManager>
#include <QNetworkReply>
#include <QScriptEngine>
#include <QScriptValueIterator>
#include "priceupdater.h"
/**
* Constructor.
*
* @param _deck deck.
*/
PriceUpdater::PriceUpdater(const DeckList *_deck)
{
nam = new QNetworkAccessManager(this);
deck = _deck;
}
/**
* Update the prices of the cards in deckList.
*/
void PriceUpdater::updatePrices()
{
QString q = "http://blacklotusproject.com/json/?cards=";
QStringList cards = deck->getCardList();
for (int i = 0; i < cards.size(); ++i) {
q += cards[i] + "|";
}
QUrl url(q.replace(' ', '+'));
QNetworkReply *reply = nam->get(QNetworkRequest(url));
connect(reply, SIGNAL(finished()), this, SLOT(downloadFinished()));
}
/**
* Called when the download of the json file with the prices is finished.
*/
void PriceUpdater::downloadFinished()
{
QMap<QString, DecklistCardNode *> cmap;
InnerDecklistNode *listRoot = deck->getRoot();
for (int i = 0; i < listRoot->size(); i++) {
InnerDecklistNode *currentZone = dynamic_cast<InnerDecklistNode *>(listRoot->at(i));
for (int j = 0; j < currentZone->size(); j++) {
DecklistCardNode *currentCard = dynamic_cast<DecklistCardNode *>(currentZone->at(j));
if (!currentCard)
continue;
cmap.insert(currentCard->getName().toLower(), currentCard);
currentCard->setPrice(0);
}
}
QNetworkReply *reply = static_cast<QNetworkReply *>(sender());
QByteArray result = reply->readAll();
QScriptValue sc;
QScriptEngine engine;
sc = engine.evaluate("value = " + result);
if (sc.property("cards").isArray()) {
QScriptValueIterator it(sc.property("cards"));
while (it.hasNext()) {
it.next();
QString name = it.value().property("name").toString().toLower();
float price = it.value().property("average").toString().toFloat();
DecklistCardNode *c = cmap[name];
if (!c)
continue;
if (c->getPrice() == 0 || c->getPrice() > price) {
c->setPrice(price);
}
}
}
reply->deleteLater();
deleteLater();
emit finishedUpdate();
}
#ifndef PRICEUPDATER_H
#define PRICEUPDATER_H
#include <QNetworkReply>
#include "decklist.h"
class QNetworkAccessManager;
/**
* Price Updater.
*
* @author Marcio Ribeiro <mmr@b1n.org>
*/
class PriceUpdater : public QObject
{
Q_OBJECT
private:
const DeckList *deck;
QNetworkAccessManager *nam;
signals:
void finishedUpdate();
private slots:
void downloadFinished();
public:
PriceUpdater(const DeckList *deck);
void updatePrices();
};
#endif
......@@ -19,6 +19,7 @@ SettingsCache::SettingsCache()
picDownload = settings->value("personal/picturedownload", true).toBool();
doubleClickToPlay = settings->value("interface/doubleclicktoplay", true).toBool();
cardInfoMinimized = settings->value("interface/cardinfominimized", 0).toInt();
tabGameSplitterSizes = settings->value("interface/tabgame_splittersizes").toByteArray();
displayCardNames = settings->value("cards/displaycardnames", true).toBool();
horizontalHand = settings->value("hand/horizontal", true).toBool();
......@@ -30,6 +31,8 @@ SettingsCache::SettingsCache()
soundEnabled = settings->value("sound/enabled", false).toBool();
soundPath = settings->value("sound/path").toString();
priceTagFeature = settings->value("deckeditor/pricetags", false).toBool();
}
void SettingsCache::setLang(const QString &_lang)
......@@ -107,6 +110,12 @@ void SettingsCache::setDoubleClickToPlay(int _doubleClickToPlay)
settings->setValue("interface/doubleclicktoplay", doubleClickToPlay);
}
void SettingsCache::setCardInfoMinimized(int _cardInfoMinimized)
{
cardInfoMinimized = _cardInfoMinimized;
settings->setValue("interface/cardinfominimized", cardInfoMinimized);
}
void SettingsCache::setTabGameSplitterSizes(const QByteArray &_tabGameSplitterSizes)
{
tabGameSplitterSizes = _tabGameSplitterSizes;
......@@ -164,3 +173,9 @@ void SettingsCache::setSoundPath(const QString &_soundPath)
settings->setValue("sound/path", soundPath);
emit soundPathChanged();
}
void SettingsCache::setPriceTagFeature(int _priceTagFeature)
{
priceTagFeature = _priceTagFeature;
settings->setValue("deckeditor/pricetags", priceTagFeature);
}
......@@ -29,6 +29,7 @@ private:
QString handBgPath, stackBgPath, tableBgPath, playerBgPath, cardBackPicturePath;
bool picDownload;
bool doubleClickToPlay;
int cardInfoMinimized;
QByteArray tabGameSplitterSizes;
bool displayCardNames;
bool horizontalHand;
......@@ -37,6 +38,7 @@ private:
bool zoneViewSortByName, zoneViewSortByType;
bool soundEnabled;
QString soundPath;
bool priceTagFeature;
public:
SettingsCache();
QString getLang() const { return lang; }
......@@ -50,6 +52,7 @@ public:
QString getCardBackPicturePath() const { return cardBackPicturePath; }
bool getPicDownload() const { return picDownload; }
bool getDoubleClickToPlay() const { return doubleClickToPlay; }
int getCardInfoMinimized() const { return cardInfoMinimized; }
QByteArray getTabGameSplitterSizes() const { return tabGameSplitterSizes; }
bool getDisplayCardNames() const { return displayCardNames; }
bool getHorizontalHand() const { return horizontalHand; }
......@@ -59,6 +62,7 @@ public:
bool getZoneViewSortByType() const { return zoneViewSortByType; }
bool getSoundEnabled() const { return soundEnabled; }
QString getSoundPath() const { return soundPath; }
bool getPriceTagFeature() const { return priceTagFeature; }
public slots:
void setLang(const QString &_lang);
void setDeckPath(const QString &_deckPath);
......@@ -71,6 +75,7 @@ public slots:
void setCardBackPicturePath(const QString &_cardBackPicturePath);
void setPicDownload(int _picDownload);
void setDoubleClickToPlay(int _doubleClickToPlay);
void setCardInfoMinimized(int _cardInfoMinimized);
void setTabGameSplitterSizes(const QByteArray &_tabGameSplitterSizes);
void setDisplayCardNames(int _displayCardNames);
void setHorizontalHand(int _horizontalHand);
......@@ -80,6 +85,7 @@ public slots:
void setZoneViewSortByType(int _zoneViewSortByType);
void setSoundEnabled(int _soundEnabled);
void setSoundPath(const QString &_soundPath);
void setPriceTagFeature(int _priceTagFeature);
};
extern SettingsCache *settingsCache;
......
......@@ -9,6 +9,7 @@
#include <QCheckBox>
#include <QInputDialog>
#include <QLabel>
#include <QSplitter>
#include "dlg_creategame.h"
#include "tab_supervisor.h"
#include "tab_room.h"
......@@ -153,12 +154,12 @@ TabRoom::TabRoom(TabSupervisor *_tabSupervisor, AbstractClient *_client, const Q
chatGroupBox = new QGroupBox;
chatGroupBox->setLayout(chatVbox);
QVBoxLayout *vbox = new QVBoxLayout;
vbox->addWidget(gameSelector);
vbox->addWidget(chatGroupBox);
QSplitter *splitter = new QSplitter(Qt::Vertical);
splitter->addWidget(gameSelector);
splitter->addWidget(chatGroupBox);
QHBoxLayout *hbox = new QHBoxLayout;
hbox->addLayout(vbox, 3);
hbox->addWidget(splitter, 3);
hbox->addWidget(userList, 1);
aLeaveRoom = new QAction(this);
......
......@@ -26,6 +26,7 @@
#include "dlg_load_deck_from_clipboard.h"
#include "main.h"
#include "settingscache.h"
#include "priceupdater.h"
void SearchLineEdit::keyPressEvent(QKeyEvent *event)
{
......@@ -113,15 +114,37 @@ WndDeckEditor::WndDeckEditor(QWidget *parent)
commentsEdit->setMaximumHeight(70);
commentsLabel->setBuddy(commentsEdit);
connect(commentsEdit, SIGNAL(textChanged()), this, SLOT(updateComments()));
QGridLayout *grid = new QGridLayout;
grid->addWidget(nameLabel, 0, 0);
grid->addWidget(nameEdit, 0, 1);
grid->addWidget(commentsLabel, 1, 0);
grid->addWidget(commentsEdit, 1, 1);
// Update price
aUpdatePrices = new QAction(tr("&Update prices"), this);
aUpdatePrices->setShortcut(tr("Ctrl+U"));
aUpdatePrices->setIcon(QIcon(":/resources/icon_update.png"));
connect(aUpdatePrices, SIGNAL(triggered()), this, SLOT(actUpdatePrices()));
if (!settingsCache->getPriceTagFeature())
aUpdatePrices->setVisible(false);
QToolBar *deckToolBar = new QToolBar;
deckToolBar->setOrientation(Qt::Vertical);
deckToolBar->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
deckToolBar->setIconSize(QSize(24, 24));
deckToolBar->addAction(aUpdatePrices);
QHBoxLayout *deckToolbarLayout = new QHBoxLayout;
deckToolbarLayout->addStretch();
deckToolbarLayout->addWidget(deckToolBar);
deckToolbarLayout->addStretch();
QVBoxLayout *rightFrame = new QVBoxLayout;
rightFrame->addLayout(grid);
rightFrame->addWidget(deckView);
rightFrame->addLayout(deckToolbarLayout);
QHBoxLayout *mainLayout = new QHBoxLayout;
mainLayout->addLayout(leftFrame, 10);
......@@ -456,6 +479,21 @@ void WndDeckEditor::actDecrement()
setWindowModified(true);
}
void WndDeckEditor::actUpdatePrices()
{
aUpdatePrices->setDisabled(true);
PriceUpdater *up = new PriceUpdater(deckModel->getDeckList());
connect(up, SIGNAL(finishedUpdate()), this, SLOT(finishedUpdatingPrices()));
up->updatePrices();
}
void WndDeckEditor::finishedUpdatingPrices()
{
deckModel->pricesUpdated();
setWindowModified(true);
aUpdatePrices->setDisabled(false);
}
void WndDeckEditor::setDeck(DeckList *_deck, const QString &_lastFileName, DeckList::FileFormat _lastFileFormat)
{
deckModel->setDeckList(_deck);
......
......@@ -52,6 +52,9 @@ private slots:
void actRemoveCard();
void actIncrement();
void actDecrement();
void actUpdatePrices();
void finishedUpdatingPrices();
private:
void addCardHelper(const QString &zoneName);
void recursiveExpand(const QModelIndex &index);
......@@ -74,7 +77,7 @@ private:
QMenu *deckMenu, *dbMenu;
QAction *aNewDeck, *aLoadDeck, *aSaveDeck, *aSaveDeckAs, *aLoadDeckFromClipboard, *aSaveDeckToClipboard, *aPrintDeck, *aClose;
QAction *aEditSets, *aSearch, *aClearSearch;
QAction *aAddCard, *aAddCardToSideboard, *aRemoveCard, *aIncrement, *aDecrement;
QAction *aAddCard, *aAddCardToSideboard, *aRemoveCard, *aIncrement, *aDecrement, *aUpdatePrices;
public:
WndDeckEditor(QWidget *parent = 0);
~WndDeckEditor();
......
......@@ -178,6 +178,7 @@ void MainWindow::actAbout()
+ tr("French:") + " Yannick Hammer, Arnaud Faes<br>"
+ tr("Japanese:") + " Nagase Task<br>"
+ tr("Russian:") + " Alexander Davidov<br>"
+ tr("Czech:") + " Ondřej Trhoň<br>"
));
}
......
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.0">
<context>
<name>AbstractCounter</name>
<message>
<location filename="../src/abstractcounter.cpp" line="56"/>
<source>&amp;Set counter...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/abstractcounter.cpp" line="63"/>
<source>Ctrl+L</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/abstractcounter.cpp" line="64"/>
<source>F11</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/abstractcounter.cpp" line="65"/>
<source>F12</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/abstractcounter.cpp" line="122"/>
<source>Set counter</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/abstractcounter.cpp" line="122"/>
<source>New value for counter &apos;%1&apos;:</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>AppearanceSettingsPage</name>
<message>
<location filename="../src/dlg_settings.cpp" line="277"/>
<source>Zone background pictures</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dlg_settings.cpp" line="278"/>
<source>Path to hand background:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dlg_settings.cpp" line="279"/>
<source>Path to stack background:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dlg_settings.cpp" line="280"/>
<source>Path to table background:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dlg_settings.cpp" line="281"/>
<source>Path to player info background:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dlg_settings.cpp" line="282"/>
<source>Path to picture of card back:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dlg_settings.cpp" line="284"/>
<source>Card rendering</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dlg_settings.cpp" line="285"/>
<source>Display card names on cards having a picture</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dlg_settings.cpp" line="287"/>
<source>Hand layout</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dlg_settings.cpp" line="288"/>
<source>Display hand horizontally (wastes space)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dlg_settings.cpp" line="290"/>
<source>Table grid layout</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dlg_settings.cpp" line="291"/>
<source>Invert vertical coordinate</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dlg_settings.cpp" line="293"/>
<source>Zone view layout</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dlg_settings.cpp" line="294"/>
<source>Sort by name</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dlg_settings.cpp" line="295"/>
<source>Sort by type</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dlg_settings.cpp" line="306"/>
<location filename="../src/dlg_settings.cpp" line="322"/>
<location filename="../src/dlg_settings.cpp" line="338"/>
<location filename="../src/dlg_settings.cpp" line="354"/>
<location filename="../src/dlg_settings.cpp" line="370"/>
<source>Choose path</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>CardDatabaseModel</name>
<message>
<location filename="../src/carddatabasemodel.cpp" line="58"/>
<source>Name</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/carddatabasemodel.cpp" line="59"/>
<source>Sets</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/carddatabasemodel.cpp" line="60"/>
<source>Mana cost</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/carddatabasemodel.cpp" line="61"/>
<source>Card type</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/carddatabasemodel.cpp" line="62"/>
<source>P/T</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>CardInfoWidget</name>
<message>
<location filename="../src/cardinfowidget.cpp" line="23"/>
<source>Hide card info</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/cardinfowidget.cpp" line="23"/>
<source>Show card only</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/cardinfowidget.cpp" line="23"/>
<source>Show text only</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/cardinfowidget.cpp" line="23"/>
<source>Show full info</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/cardinfowidget.cpp" line="161"/>
<source>Name:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/cardinfowidget.cpp" line="162"/>
<source>Mana cost:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/cardinfowidget.cpp" line="163"/>
<source>Card type:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/cardinfowidget.cpp" line="164"/>
<source>P / T:</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>CardItem</name>
<message>
<location filename="../src/carditem.cpp" line="200"/>
<source>&amp;Play</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/carditem.cpp" line="201"/>
<source>&amp;Hide</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/carditem.cpp" line="203"/>
<source>&amp;Tap</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/carditem.cpp" line="204"/>
<source>&amp;Untap</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/carditem.cpp" line="205"/>
<source>Toggle &amp;normal untapping</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/carditem.cpp" line="206"/>
<source>&amp;Flip</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/carditem.cpp" line="207"/>
<source>&amp;Clone</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/carditem.cpp" line="208"/>
<source>Ctrl+H</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/carditem.cpp" line="209"/>
<source>&amp;Attach to card...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/carditem.cpp" line="210"/>
<source>Ctrl+A</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/carditem.cpp" line="211"/>
<source>Unattac&amp;h</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/carditem.cpp" line="212"/>
<source>&amp;Power / toughness</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/carditem.cpp" line="213"/>
<source>&amp;Increase power</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/carditem.cpp" line="214"/>
<source>Ctrl++</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/carditem.cpp" line="215"/>
<source>&amp;Decrease power</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/carditem.cpp" line="216"/>
<source>Ctrl+-</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/carditem.cpp" line="217"/>
<source>I&amp;ncrease toughness</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/carditem.cpp" line="218"/>
<source>Alt++</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/carditem.cpp" line="219"/>
<source>D&amp;ecrease toughness</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/carditem.cpp" line="220"/>
<source>Alt+-</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/carditem.cpp" line="221"/>
<source>In&amp;crease power and toughness</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/carditem.cpp" line="222"/>
<source>Ctrl+Alt++</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/carditem.cpp" line="223"/>
<source>Dec&amp;rease power and toughness</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/carditem.cpp" line="224"/>
<source>Ctrl+Alt+-</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/carditem.cpp" line="225"/>
<source>Set &amp;power and toughness...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/carditem.cpp" line="226"/>
<source>Ctrl+P</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/carditem.cpp" line="227"/>
<source>&amp;Set annotation...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/carditem.cpp" line="229"/>
<source>red</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/carditem.cpp" line="230"/>
<source>yellow</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/carditem.cpp" line="231"/>
<source>green</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/carditem.cpp" line="233"/>
<source>&amp;Add counter (%1)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/carditem.cpp" line="235"/>
<source>&amp;Remove counter (%1)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/carditem.cpp" line="237"/>
<source>&amp;Set counters (%1)...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/carditem.cpp" line="238"/>
<source>&amp;top of library</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/carditem.cpp" line="239"/>
<source>&amp;bottom of library</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/carditem.cpp" line="240"/>
<source>&amp;graveyard</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/carditem.cpp" line="241"/>
<source>Ctrl+Del</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/carditem.cpp" line="242"/>
<source>&amp;exile</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/carditem.cpp" line="244"/>
<source>&amp;Move to</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>CardZone</name>
<message>
<location filename="../src/cardzone.cpp" line="51"/>
<source>his hand</source>
<comment>nominative</comment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/cardzone.cpp" line="51"/>
<source>%1&apos;s hand</source>
<comment>nominative</comment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/cardzone.cpp" line="52"/>
<source>of his hand</source>
<comment>genitive</comment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/cardzone.cpp" line="52"/>
<source>of %1&apos;s hand</source>
<comment>genitive</comment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/cardzone.cpp" line="53"/>
<source>his hand</source>
<comment>accusative</comment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/cardzone.cpp" line="53"/>
<source>%1&apos;s hand</source>
<comment>accusative</comment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/cardzone.cpp" line="57"/>
<source>his library</source>
<comment>nominative</comment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/cardzone.cpp" line="57"/>
<source>%1&apos;s library</source>
<comment>nominative</comment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/cardzone.cpp" line="58"/>
<source>of his library</source>
<comment>genitive</comment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/cardzone.cpp" line="58"/>
<source>of %1&apos;s library</source>
<comment>genitive</comment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/cardzone.cpp" line="59"/>
<source>his library</source>
<comment>accusative</comment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/cardzone.cpp" line="59"/>
<source>%1&apos;s library</source>
<comment>accusative</comment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/cardzone.cpp" line="63"/>
<source>his graveyard</source>
<comment>nominative</comment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/cardzone.cpp" line="63"/>
<source>%1&apos;s graveyard</source>
<comment>nominative</comment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/cardzone.cpp" line="64"/>
<source>of his graveyard</source>
<comment>genitive</comment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/cardzone.cpp" line="64"/>
<source>of %1&apos;s graveyard</source>
<comment>genitive</comment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/cardzone.cpp" line="65"/>
<source>his graveyard</source>
<comment>accusative</comment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/cardzone.cpp" line="65"/>
<source>%1&apos;s graveyard</source>
<comment>accusative</comment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/cardzone.cpp" line="69"/>
<source>his exile</source>
<comment>nominative</comment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/cardzone.cpp" line="69"/>
<source>%1&apos;s exile</source>
<comment>nominative</comment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/cardzone.cpp" line="70"/>
<source>of his exile</source>
<comment>genitive</comment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/cardzone.cpp" line="70"/>
<source>of %1&apos;s exile</source>
<comment>genitive</comment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/cardzone.cpp" line="71"/>
<source>his exile</source>
<comment>accusative</comment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/cardzone.cpp" line="71"/>
<source>%1&apos;s exile</source>
<comment>accusative</comment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/cardzone.cpp" line="75"/>
<source>his sideboard</source>
<comment>nominative</comment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/cardzone.cpp" line="75"/>
<source>%1&apos;s sideboard</source>
<comment>nominative</comment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/cardzone.cpp" line="76"/>
<source>of his sideboard</source>
<comment>genitive</comment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/cardzone.cpp" line="76"/>
<source>of %1&apos;s sideboard</source>
<comment>genitive</comment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/cardzone.cpp" line="77"/>
<source>his sideboard</source>
<comment>accusative</comment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/cardzone.cpp" line="77"/>
<source>%1&apos;s sideboard</source>
<comment>accusative</comment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DeckEditorSettingsPage</name>
<message>
<location filename="../src/dlg_settings.cpp" line="478"/>
<source>Enable &amp;price tag feature (using data from blacklotusproject.com)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dlg_settings.cpp" line="479"/>
<source>General</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DeckListModel</name>
<message>
<location filename="../src/decklistmodel.cpp" line="136"/>
<source>Number</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/decklistmodel.cpp" line="137"/>
<source>Card</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/decklistmodel.cpp" line="138"/>
<source>Price</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DeckViewContainer</name>
<message>
<location filename="../src/tab_game.cpp" line="85"/>
<source>Load &amp;local deck</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tab_game.cpp" line="86"/>
<source>Load d&amp;eck from server</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tab_game.cpp" line="87"/>
<source>Ready to s&amp;tart</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tab_game.cpp" line="99"/>
<source>Load deck</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DlgCardSearch</name>
<message>
<location filename="../src/dlg_cardsearch.cpp" line="15"/>
<source>Card name:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dlg_cardsearch.cpp" line="18"/>
<source>Card text:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dlg_cardsearch.cpp" line="21"/>
<source>Card type (OR):</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dlg_cardsearch.cpp" line="31"/>
<source>Color (OR):</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dlg_cardsearch.cpp" line="41"/>
<source>O&amp;K</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dlg_cardsearch.cpp" line="44"/>
<source>&amp;Cancel</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dlg_cardsearch.cpp" line="66"/>
<source>Card search</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DlgConnect</name>
<message>
<location filename="../src/dlg_connect.cpp" line="14"/>
<source>&amp;Host:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dlg_connect.cpp" line="18"/>
<source>&amp;Port:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dlg_connect.cpp" line="22"/>
<source>Player &amp;name:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dlg_connect.cpp" line="26"/>
<source>P&amp;assword:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dlg_connect.cpp" line="31"/>
<source>&amp;OK</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dlg_connect.cpp" line="33"/>
<source>&amp;Cancel</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dlg_connect.cpp" line="55"/>
<source>Connect to server</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DlgCreateGame</name>
<message>
<location filename="../src/dlg_creategame.cpp" line="17"/>
<source>&amp;Description:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dlg_creategame.cpp" line="21"/>
<source>P&amp;layers:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dlg_creategame.cpp" line="42"/>
<source>Game type</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dlg_creategame.cpp" line="45"/>
<source>&amp;Password:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dlg_creategame.cpp" line="49"/>
<source>Only &amp;buddies can join</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dlg_creategame.cpp" line="50"/>
<source>Only &amp;registered users can join</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dlg_creategame.cpp" line="58"/>
<source>Joining restrictions</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dlg_creategame.cpp" line="61"/>
<source>&amp;Spectators allowed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dlg_creategame.cpp" line="64"/>
<source>Spectators &amp;need a password to join</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dlg_creategame.cpp" line="65"/>
<source>Spectators can &amp;chat</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dlg_creategame.cpp" line="66"/>
<source>Spectators see &amp;everything</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dlg_creategame.cpp" line="72"/>
<source>Spectators</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dlg_creategame.cpp" line="81"/>
<source>&amp;OK</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dlg_creategame.cpp" line="83"/>
<source>&amp;Cancel</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dlg_creategame.cpp" line="96"/>
<source>Create game</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dlg_creategame.cpp" line="141"/>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dlg_creategame.cpp" line="141"/>
<source>Server error.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DlgCreateToken</name>
<message>
<location filename="../src/dlg_create_token.cpp" line="14"/>
<source>&amp;Name:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dlg_create_token.cpp" line="15"/>
<source>Token</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dlg_create_token.cpp" line="19"/>
<source>C&amp;olor:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dlg_create_token.cpp" line="21"/>
<source>white</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dlg_create_token.cpp" line="22"/>
<source>blue</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dlg_create_token.cpp" line="23"/>
<source>black</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dlg_create_token.cpp" line="24"/>
<source>red</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dlg_create_token.cpp" line="25"/>
<source>green</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dlg_create_token.cpp" line="26"/>
<source>multicolor</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dlg_create_token.cpp" line="27"/>
<source>colorless</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dlg_create_token.cpp" line="30"/>
<source>&amp;P/T:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dlg_create_token.cpp" line="34"/>
<source>&amp;Annotation:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dlg_create_token.cpp" line="38"/>
<source>&amp;Destroy token when it leaves the table</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dlg_create_token.cpp" line="41"/>
<source>&amp;OK</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dlg_create_token.cpp" line="43"/>
<source>&amp;Cancel</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dlg_create_token.cpp" line="66"/>
<source>Create token</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DlgLoadDeckFromClipboard</name>
<message>
<location filename="../src/dlg_load_deck_from_clipboard.cpp" line="18"/>
<source>&amp;Refresh</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dlg_load_deck_from_clipboard.cpp" line="20"/>
<source>&amp;OK</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dlg_load_deck_from_clipboard.cpp" line="22"/>
<source>&amp;Cancel</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dlg_load_deck_from_clipboard.cpp" line="36"/>
<source>Load deck from clipboard</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dlg_load_deck_from_clipboard.cpp" line="61"/>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dlg_load_deck_from_clipboard.cpp" line="61"/>
<source>Invalid deck list.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DlgLoadRemoteDeck</name>
<message>
<location filename="../src/dlg_load_remote_deck.cpp" line="13"/>
<source>O&amp;K</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dlg_load_remote_deck.cpp" line="17"/>
<source>&amp;Cancel</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dlg_load_remote_deck.cpp" line="30"/>
<source>Load deck</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DlgSettings</name>
<message>
<location filename="../src/dlg_settings.cpp" line="642"/>
<location filename="../src/dlg_settings.cpp" line="647"/>
<location filename="../src/dlg_settings.cpp" line="652"/>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dlg_settings.cpp" line="642"/>
<source>Your card database is invalid. Would you like to go back and set the correct path?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dlg_settings.cpp" line="647"/>
<source>The path to your deck directory is invalid. Would you like to go back and set the correct path?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dlg_settings.cpp" line="652"/>
<source>The path to your card pictures directory is invalid. Would you like to go back and set the correct path?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dlg_settings.cpp" line="661"/>
<source>Settings</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dlg_settings.cpp" line="663"/>
<source>General</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dlg_settings.cpp" line="664"/>
<source>Appearance</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dlg_settings.cpp" line="665"/>
<source>User interface</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dlg_settings.cpp" line="666"/>
<source>Deck editor</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dlg_settings.cpp" line="667"/>
<source>Messages</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dlg_settings.cpp" line="669"/>
<source>&amp;Close</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>GameSelector</name>
<message>
<location filename="../src/tab_room.cpp" line="79"/>
<location filename="../src/tab_room.cpp" line="80"/>
<location filename="../src/tab_room.cpp" line="81"/>
<location filename="../src/tab_room.cpp" line="82"/>
<location filename="../src/tab_room.cpp" line="83"/>
<location filename="../src/tab_room.cpp" line="84"/>
<location filename="../src/tab_room.cpp" line="85"/>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tab_room.cpp" line="79"/>
<source>Wrong password.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tab_room.cpp" line="80"/>
<source>Spectators are not allowed in this game.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tab_room.cpp" line="81"/>
<source>The game is already full.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tab_room.cpp" line="82"/>
<source>The game does not exist any more.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tab_room.cpp" line="83"/>
<source>This game is only open to registered users.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tab_room.cpp" line="84"/>
<source>This game is only open to its creator&apos;s buddies.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tab_room.cpp" line="85"/>
<source>You are being ignored by the creator of this game.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tab_room.cpp" line="101"/>
<source>Join game</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tab_room.cpp" line="101"/>
<source>Password:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tab_room.cpp" line="117"/>
<source>Games</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tab_room.cpp" line="118"/>
<source>Show &amp;full games</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tab_room.cpp" line="119"/>
<source>C&amp;reate</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tab_room.cpp" line="120"/>
<source>&amp;Join</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tab_room.cpp" line="121"/>
<source>J&amp;oin as spectator</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>GameView</name>
<message>
<location filename="../src/gameview.cpp" line="22"/>
<source>Esc</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>GamesModel</name>
<message>
<location filename="../src/gamesmodel.cpp" line="42"/>
<source>yes</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gamesmodel.cpp" line="42"/>
<source>yes, free for spectators</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gamesmodel.cpp" line="42"/>
<source>no</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gamesmodel.cpp" line="46"/>
<source>buddies only</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gamesmodel.cpp" line="48"/>
<source>reg. users only</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gamesmodel.cpp" line="52"/>
<source>not allowed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gamesmodel.cpp" line="62"/>
<source>Description</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gamesmodel.cpp" line="63"/>
<source>Creator</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gamesmodel.cpp" line="64"/>
<source>Game type</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gamesmodel.cpp" line="65"/>
<source>Password</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gamesmodel.cpp" line="66"/>
<source>Restrictions</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gamesmodel.cpp" line="67"/>
<source>Players</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gamesmodel.cpp" line="68"/>
<source>Spectators</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>GeneralSettingsPage</name>
<message>
<location filename="../src/dlg_settings.cpp" line="34"/>
<location filename="../src/dlg_settings.cpp" line="103"/>
<source>English</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dlg_settings.cpp" line="108"/>
<location filename="../src/dlg_settings.cpp" line="118"/>
<location filename="../src/dlg_settings.cpp" line="128"/>
<source>Choose path</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dlg_settings.cpp" line="143"/>
<source>Personal settings</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dlg_settings.cpp" line="144"/>
<source>Language:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dlg_settings.cpp" line="145"/>
<source>Download card pictures on the fly</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dlg_settings.cpp" line="146"/>
<source>Paths</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dlg_settings.cpp" line="147"/>
<source>Decks directory:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dlg_settings.cpp" line="148"/>
<source>Pictures directory:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dlg_settings.cpp" line="149"/>
<source>Path to card database:</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>MainWindow</name>
<message>
<location filename="../src/window_main.cpp" line="56"/>
<source>There are too many concurrent connections from your address.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/window_main.cpp" line="58"/>
<source>Banned by moderator.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/window_main.cpp" line="60"/>
<source>Unknown reason.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/window_main.cpp" line="61"/>
<source>Connection closed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/window_main.cpp" line="61"/>
<source>The server has terminated your connection.
Reason: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/window_main.cpp" line="110"/>
<source>Number of players</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/window_main.cpp" line="110"/>
<source>Please enter the number of players.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/window_main.cpp" line="119"/>
<location filename="../src/window_main.cpp" line="125"/>
<source>Player %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/window_main.cpp" line="170"/>
<source>About Cockatrice</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/window_main.cpp" line="172"/>
<source>Version %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/window_main.cpp" line="173"/>
<source>Authors:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/window_main.cpp" line="174"/>
<source>Translators:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/window_main.cpp" line="175"/>
<source>Spanish:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/window_main.cpp" line="176"/>
<source>Portugese (Portugal):</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/window_main.cpp" line="177"/>
<source>Portugese (Brazil):</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/window_main.cpp" line="178"/>
<source>French:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/window_main.cpp" line="179"/>
<source>Japanese:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/window_main.cpp" line="180"/>
<source>Russian:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/window_main.cpp" line="181"/>
<source>Czech:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/window_main.cpp" line="187"/>
<location filename="../src/window_main.cpp" line="193"/>
<location filename="../src/window_main.cpp" line="194"/>
<location filename="../src/window_main.cpp" line="201"/>
<location filename="../src/window_main.cpp" line="207"/>
<location filename="../src/window_main.cpp" line="209"/>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/window_main.cpp" line="187"/>
<source>Server timeout</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/window_main.cpp" line="193"/>
<source>Invalid login data.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/window_main.cpp" line="194"/>
<source>There is already an active session using this user name.
Please close that session first and re-login.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/window_main.cpp" line="201"/>
<source>Socket error: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/window_main.cpp" line="207"/>
<source>You are trying to connect to an obsolete server. Please downgrade your Cockatrice version or connect to a suitable server.
Local version is %1, remote version is %2.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/window_main.cpp" line="209"/>
<source>Your Cockatrice client is obsolete. Please update your Cockatrice version.
Local version is %1, remote version is %2.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/window_main.cpp" line="215"/>
<source>Connecting to %1...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/window_main.cpp" line="216"/>
<source>Disconnected</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/window_main.cpp" line="217"/>
<source>Logged in at %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/window_main.cpp" line="226"/>
<source>&amp;Connect...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/window_main.cpp" line="227"/>
<source>&amp;Disconnect</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/window_main.cpp" line="228"/>
<source>Start &amp;local game...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/window_main.cpp" line="229"/>
<source>&amp;Deck editor</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/window_main.cpp" line="230"/>
<source>&amp;Full screen</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/window_main.cpp" line="231"/>
<source>Ctrl+F</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/window_main.cpp" line="232"/>
<source>&amp;Settings...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/window_main.cpp" line="233"/>
<source>&amp;Exit</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/window_main.cpp" line="235"/>
<source>&amp;Cockatrice</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/window_main.cpp" line="237"/>
<source>&amp;About Cockatrice</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/window_main.cpp" line="238"/>
<source>&amp;Help</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/window_main.cpp" line="316"/>
<source>Are you sure?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/window_main.cpp" line="316"/>
<source>There are still open games. Are you sure you want to quit?</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>MessageLogWidget</name>
<message>
<location filename="../src/messagelogwidget.cpp" line="21"/>
<source>Connecting to %1...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/messagelogwidget.cpp" line="26"/>
<source>Connected.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/messagelogwidget.cpp" line="31"/>
<source>Disconnected from server.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/messagelogwidget.cpp" line="42"/>
<source>Invalid password.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/messagelogwidget.cpp" line="49"/>
<source>Protocol version mismatch. Client: %1, Server: %2</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/messagelogwidget.cpp" line="54"/>
<source>Protocol error.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/messagelogwidget.cpp" line="59"/>
<source>You have joined game #%1.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/messagelogwidget.cpp" line="65"/>
<source>%1 has joined the game.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/messagelogwidget.cpp" line="70"/>
<source>%1 has left the game.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/messagelogwidget.cpp" line="75"/>
<source>The game has been closed.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/messagelogwidget.cpp" line="80"/>
<source>%1 is now watching the game.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/messagelogwidget.cpp" line="85"/>
<source>%1 is not watching the game any more.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/messagelogwidget.cpp" line="91"/>
<source>%1 has loaded a local deck.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/messagelogwidget.cpp" line="93"/>
<source>%1 has loaded deck #%2.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/messagelogwidget.cpp" line="98"/>
<source>%1 is ready to start the game.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/messagelogwidget.cpp" line="103"/>
<source>%1 is not ready to start the game any more.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/messagelogwidget.cpp" line="108"/>
<source>%1 has conceded the game.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/messagelogwidget.cpp" line="113"/>
<source>The game has started.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/messagelogwidget.cpp" line="130"/>
<source>%1 shuffles his library.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/messagelogwidget.cpp" line="135"/>
<source>%1 rolls a %2 with a %3-sided die.</source>
<translation type="unfinished"></translation>
</message>
<message numerus="yes">
<location filename="../src/messagelogwidget.cpp" line="144"/>
<source>%1 draws %n card(s).</source>
<translation type="unfinished">
<numerusform></numerusform>
</translation>
</message>
<message>
<location filename="../src/messagelogwidget.cpp" line="151"/>
<source>%1 undoes his last draw.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/messagelogwidget.cpp" line="153"/>
<source>%1 undoes his last draw (%2).</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/messagelogwidget.cpp" line="163"/>
<source> from table</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/messagelogwidget.cpp" line="165"/>
<source> from graveyard</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/messagelogwidget.cpp" line="167"/>
<source> from exile</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/messagelogwidget.cpp" line="169"/>
<source> from hand</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/messagelogwidget.cpp" line="173"/>
<source>the bottom card of his library</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/messagelogwidget.cpp" line="176"/>
<source> from the bottom of his library</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/messagelogwidget.cpp" line="179"/>
<source>the top card of his library</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/messagelogwidget.cpp" line="182"/>
<source> from the top of his library</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/messagelogwidget.cpp" line="184"/>
<source> from library</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/messagelogwidget.cpp" line="186"/>
<source> from sideboard</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/messagelogwidget.cpp" line="188"/>
<source> from the stack</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/messagelogwidget.cpp" line="213"/>
<location filename="../src/messagelogwidget.cpp" line="415"/>
<source>a card</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/messagelogwidget.cpp" line="218"/>
<source>%1 gives %2 control over %3.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/messagelogwidget.cpp" line="226"/>
<source>%1 puts %2 into play tapped%3.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/messagelogwidget.cpp" line="228"/>
<source>%1 puts %2 into play%3.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/messagelogwidget.cpp" line="230"/>
<source>%1 puts %2%3 into graveyard.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/messagelogwidget.cpp" line="232"/>
<source>%1 exiles %2%3.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/messagelogwidget.cpp" line="234"/>
<source>%1 moves %2%3 to hand.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/messagelogwidget.cpp" line="237"/>
<source>%1 puts %2%3 into his library.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/messagelogwidget.cpp" line="239"/>
<source>%1 puts %2%3 on bottom of his library.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/messagelogwidget.cpp" line="241"/>
<source>%1 puts %2%3 on top of his library.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/messagelogwidget.cpp" line="243"/>
<source>%1 puts %2%3 into his library at position %4.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/messagelogwidget.cpp" line="245"/>
<source>%1 moves %2%3 to sideboard.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/messagelogwidget.cpp" line="248"/>
<source>%1 plays %2%3.</source>
<translation type="unfinished"></translation>
</message>
<message numerus="yes">
<location filename="../src/messagelogwidget.cpp" line="268"/>
<source>%1 takes a mulligan to %n.</source>
<translation type="unfinished">
<numerusform></numerusform>
</translation>
</message>
<message>
<location filename="../src/messagelogwidget.cpp" line="270"/>
<source>%1 draws his initial hand.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/messagelogwidget.cpp" line="276"/>
<source>%1 flips %2 face-down.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/messagelogwidget.cpp" line="278"/>
<source>%1 flips %2 face-up.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/messagelogwidget.cpp" line="283"/>
<source>%1 destroys %2.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/messagelogwidget.cpp" line="288"/>
<source>%1 attaches %2 to %3&apos;s %4.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/messagelogwidget.cpp" line="293"/>
<source>%1 unattaches %2.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/messagelogwidget.cpp" line="298"/>
<source>%1 creates token: %2%3.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/messagelogwidget.cpp" line="304"/>
<source>%1 points from %2&apos;s %3 to %4.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/messagelogwidget.cpp" line="311"/>
<source>%1 points from %2&apos;s %3 to %4&apos;s %5.</source>
<translation type="unfinished"></translation>
</message>
<message numerus="yes">
<location filename="../src/messagelogwidget.cpp" line="326"/>
<source>%1 places %n %2 counter(s) on %3 (now %4).</source>
<translation type="unfinished">
<numerusform></numerusform>
</translation>
</message>
<message numerus="yes">
<location filename="../src/messagelogwidget.cpp" line="328"/>
<source>%1 removes %n %2 counter(s) from %3 (now %4).</source>
<translation type="unfinished">
<numerusform></numerusform>
</translation>
</message>
<message numerus="yes">
<location filename="../src/messagelogwidget.cpp" line="331"/>
<source>red</source>
<translation type="unfinished">
<numerusform></numerusform>
</translation>
</message>
<message numerus="yes">
<location filename="../src/messagelogwidget.cpp" line="332"/>
<source>yellow</source>
<translation type="unfinished">
<numerusform></numerusform>
</translation>
</message>
<message numerus="yes">
<location filename="../src/messagelogwidget.cpp" line="333"/>
<source>green</source>
<translation type="unfinished">
<numerusform></numerusform>
</translation>
</message>
<message>
<location filename="../src/messagelogwidget.cpp" line="352"/>
<source>his permanents</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/messagelogwidget.cpp" line="355"/>
<source>%1 %2 %3.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/messagelogwidget.cpp" line="355"/>
<source>taps</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/messagelogwidget.cpp" line="355"/>
<source>untaps</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/messagelogwidget.cpp" line="361"/>
<source>%1 sets counter %2 to %3 (%4%5).</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/messagelogwidget.cpp" line="368"/>
<source>%1 sets %2 to not untap normally.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/messagelogwidget.cpp" line="370"/>
<source>%1 sets %2 to untap normally.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/messagelogwidget.cpp" line="379"/>
<source>%1 sets PT of %2 to %3.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/messagelogwidget.cpp" line="384"/>
<source>%1 sets annotation of %2 to %3.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/messagelogwidget.cpp" line="390"/>
<source>%1 is looking at the top %2 cards %3.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/messagelogwidget.cpp" line="392"/>
<source>%1 is looking at %2.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/messagelogwidget.cpp" line="398"/>
<source>%1 stops looking at %2.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/messagelogwidget.cpp" line="421"/>
<source>%1 reveals %2 to %3.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/messagelogwidget.cpp" line="423"/>
<source>%1 reveals %2.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/messagelogwidget.cpp" line="426"/>
<source>%1 randomly reveals %2%3 to %4.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/messagelogwidget.cpp" line="428"/>
<source>%1 randomly reveals %2%3.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/messagelogwidget.cpp" line="431"/>
<source>%1 reveals %2%3 to %4.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/messagelogwidget.cpp" line="433"/>
<source>%1 reveals %2%3.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/messagelogwidget.cpp" line="441"/>
<source>It is now %1&apos;s turn.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/messagelogwidget.cpp" line="450"/>
<source>untap step</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/messagelogwidget.cpp" line="451"/>
<source>upkeep step</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/messagelogwidget.cpp" line="452"/>
<source>draw step</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/messagelogwidget.cpp" line="453"/>
<source>first main phase</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/messagelogwidget.cpp" line="454"/>
<source>beginning of combat step</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/messagelogwidget.cpp" line="455"/>
<source>declare attackers step</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/messagelogwidget.cpp" line="456"/>
<source>declare blockers step</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/messagelogwidget.cpp" line="457"/>
<source>combat damage step</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/messagelogwidget.cpp" line="458"/>
<source>end of combat step</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/messagelogwidget.cpp" line="459"/>
<source>second main phase</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/messagelogwidget.cpp" line="460"/>
<source>ending phase</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/messagelogwidget.cpp" line="462"/>
<source>It is now the %1.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>MessagesSettingsPage</name>
<message>
<location filename="../src/dlg_settings.cpp" line="522"/>
<source>Add message</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dlg_settings.cpp" line="522"/>
<source>Message:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dlg_settings.cpp" line="539"/>
<source>&amp;Add</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dlg_settings.cpp" line="540"/>
<source>&amp;Remove</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>PhasesToolbar</name>
<message>
<location filename="../src/phasestoolbar.cpp" line="150"/>
<source>Untap step</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/phasestoolbar.cpp" line="151"/>
<source>Upkeep step</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/phasestoolbar.cpp" line="152"/>
<source>Draw step</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/phasestoolbar.cpp" line="153"/>
<source>First main phase</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/phasestoolbar.cpp" line="154"/>
<source>Beginning of combat step</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/phasestoolbar.cpp" line="155"/>
<source>Declare attackers step</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/phasestoolbar.cpp" line="156"/>
<source>Declare blockers step</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/phasestoolbar.cpp" line="157"/>
<source>Combat damage step</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/phasestoolbar.cpp" line="158"/>
<source>End of combat step</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/phasestoolbar.cpp" line="159"/>
<source>Second main phase</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/phasestoolbar.cpp" line="160"/>
<source>End of turn step</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Player</name>
<message>
<location filename="../src/player.cpp" line="425"/>
<source>&amp;View graveyard</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/player.cpp" line="426"/>
<source>&amp;View exile</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/player.cpp" line="427"/>
<source>Player &quot;%1&quot;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/player.cpp" line="428"/>
<source>&amp;Graveyard</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/player.cpp" line="429"/>
<source>&amp;Exile</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/player.cpp" line="432"/>
<location filename="../src/player.cpp" line="436"/>
<location filename="../src/player.cpp" line="440"/>
<source>Move to &amp;top of library</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/player.cpp" line="433"/>
<location filename="../src/player.cpp" line="437"/>
<location filename="../src/player.cpp" line="441"/>
<source>Move to &amp;bottom of library</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/player.cpp" line="434"/>
<location filename="../src/player.cpp" line="443"/>
<source>Move to &amp;graveyard</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/player.cpp" line="435"/>
<location filename="../src/player.cpp" line="439"/>
<source>Move to &amp;exile</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/player.cpp" line="438"/>
<location filename="../src/player.cpp" line="442"/>
<source>Move to &amp;hand</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/player.cpp" line="444"/>
<source>&amp;View library</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/player.cpp" line="445"/>
<source>View &amp;top cards of library...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/player.cpp" line="446"/>
<source>Reveal &amp;library to</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/player.cpp" line="447"/>
<source>Reveal t&amp;op card to</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/player.cpp" line="448"/>
<source>&amp;View sideboard</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/player.cpp" line="449"/>
<source>&amp;Draw card</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/player.cpp" line="450"/>
<source>D&amp;raw cards...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/player.cpp" line="451"/>
<source>&amp;Undo last draw</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/player.cpp" line="452"/>
<source>Take &amp;mulligan</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/player.cpp" line="453"/>
<source>&amp;Shuffle</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/player.cpp" line="454"/>
<source>Move top cards to &amp;graveyard...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/player.cpp" line="455"/>
<source>Move top cards to &amp;exile...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/player.cpp" line="456"/>
<source>Put top card on &amp;bottom</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/player.cpp" line="458"/>
<source>&amp;Hand</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/player.cpp" line="459"/>
<source>&amp;Reveal to</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/player.cpp" line="460"/>
<source>Reveal r&amp;andom card to</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/player.cpp" line="461"/>
<source>&amp;Sideboard</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/player.cpp" line="462"/>
<source>&amp;Library</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/player.cpp" line="463"/>
<source>&amp;Counters</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/player.cpp" line="465"/>
<source>&amp;Untap all permanents</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/player.cpp" line="466"/>
<source>R&amp;oll die...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/player.cpp" line="467"/>
<source>&amp;Create token...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/player.cpp" line="468"/>
<source>C&amp;reate another token</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/player.cpp" line="469"/>
<source>S&amp;ay</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/player.cpp" line="475"/>
<source>C&amp;ard</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/player.cpp" line="478"/>
<source>&amp;All players</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/player.cpp" line="490"/>
<source>Ctrl+F3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/player.cpp" line="491"/>
<source>F3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/player.cpp" line="492"/>
<source>Ctrl+W</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/player.cpp" line="493"/>
<source>F4</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/player.cpp" line="494"/>
<source>Ctrl+D</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/player.cpp" line="495"/>
<source>Ctrl+E</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/player.cpp" line="496"/>
<source>Ctrl+Shift+D</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/player.cpp" line="497"/>
<source>Ctrl+M</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/player.cpp" line="498"/>
<source>Ctrl+S</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/player.cpp" line="499"/>
<source>Ctrl+U</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/player.cpp" line="500"/>
<source>Ctrl+I</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/player.cpp" line="501"/>
<source>Ctrl+T</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/player.cpp" line="502"/>
<source>Ctrl+G</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/player.cpp" line="556"/>
<source>View top cards of library</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/player.cpp" line="556"/>
<source>Number of cards:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/player.cpp" line="595"/>
<source>Draw cards</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/player.cpp" line="595"/>
<location filename="../src/player.cpp" line="607"/>
<location filename="../src/player.cpp" line="623"/>
<location filename="../src/player.cpp" line="1486"/>
<source>Number:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/player.cpp" line="607"/>
<source>Move top cards to grave</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/player.cpp" line="623"/>
<source>Move top cards to exile</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/player.cpp" line="650"/>
<source>Roll die</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/player.cpp" line="650"/>
<source>Number of sides:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/player.cpp" line="1406"/>
<source>Set power/toughness</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/player.cpp" line="1406"/>
<source>Please enter the new PT:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/player.cpp" line="1432"/>
<source>Set annotation</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/player.cpp" line="1432"/>
<source>Please enter the new annotation:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/player.cpp" line="1486"/>
<source>Set counters</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>PlayerListWidget</name>
<message>
<location filename="../src/playerlistwidget.cpp" line="87"/>
<source>local deck</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/playerlistwidget.cpp" line="88"/>
<source>deck #%1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/playerlistwidget.cpp" line="139"/>
<source>User &amp;details</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/playerlistwidget.cpp" line="140"/>
<source>Direct &amp;chat</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/playerlistwidget.cpp" line="141"/>
<source>Add to &amp;buddy list</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/playerlistwidget.cpp" line="142"/>
<source>Remove from &amp;buddy list</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/playerlistwidget.cpp" line="143"/>
<source>Add to &amp;ignore list</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/playerlistwidget.cpp" line="144"/>
<source>Remove from &amp;ignore list</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/playerlistwidget.cpp" line="145"/>
<source>Kick from &amp;game</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>QObject</name>
<message>
<location filename="../../common/decklist.cpp" line="78"/>
<source>Maindeck</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../common/decklist.cpp" line="80"/>
<source>Sideboard</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../common/decklist.cpp" line="242"/>
<source>Cockatrice decks (*.cod)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../common/decklist.cpp" line="243"/>
<source>Plain text decks (*.dec *.mwDeck)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../common/decklist.cpp" line="244"/>
<source>All files (*.*)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>RemoteDeckList_TreeModel</name>
<message>
<location filename="../src/remotedecklist_treewidget.cpp" line="157"/>
<source>Name</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/remotedecklist_treewidget.cpp" line="158"/>
<source>ID</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/remotedecklist_treewidget.cpp" line="159"/>
<source>Upload time</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>RoomSelector</name>
<message>
<location filename="../src/tab_server.cpp" line="50"/>
<source>Rooms</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tab_server.cpp" line="51"/>
<source>Joi&amp;n</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tab_server.cpp" line="54"/>
<source>Room</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tab_server.cpp" line="55"/>
<source>Description</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tab_server.cpp" line="56"/>
<source>Players</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tab_server.cpp" line="57"/>
<source>Games</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SetsModel</name>
<message>
<location filename="../src/setsmodel.cpp" line="39"/>
<source>Short name</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/setsmodel.cpp" line="40"/>
<source>Long name</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>TabAdmin</name>
<message>
<location filename="../src/tab_admin.cpp" line="40"/>
<source>Update server &amp;message</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tab_admin.cpp" line="41"/>
<source>Server administration functions</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tab_admin.cpp" line="43"/>
<source>&amp;Unlock functions</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tab_admin.cpp" line="44"/>
<source>&amp;Lock functions</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tab_admin.cpp" line="54"/>
<source>Unlock administration functions</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tab_admin.cpp" line="54"/>
<source>Do you really want to unlock the administration functions?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tab_admin.h" line="27"/>
<source>Administration</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>TabDeckStorage</name>
<message>
<location filename="../src/tab_deck_storage.cpp" line="105"/>
<source>Local file system</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tab_deck_storage.cpp" line="106"/>
<source>Server deck storage</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tab_deck_storage.cpp" line="108"/>
<location filename="../src/tab_deck_storage.cpp" line="110"/>
<source>Open in deck editor</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tab_deck_storage.cpp" line="109"/>
<source>Upload deck</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tab_deck_storage.cpp" line="111"/>
<source>Download deck</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tab_deck_storage.cpp" line="112"/>
<location filename="../src/tab_deck_storage.cpp" line="231"/>
<source>New folder</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tab_deck_storage.cpp" line="113"/>
<source>Delete</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tab_deck_storage.cpp" line="142"/>
<source>Enter deck name</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tab_deck_storage.cpp" line="142"/>
<source>This decklist does not have a name.
Please enter a name:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tab_deck_storage.cpp" line="142"/>
<location filename="../src/tab_deck_storage.cpp" line="146"/>
<source>Unnamed deck</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tab_deck_storage.cpp" line="231"/>
<source>Name of new folder:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tab_deck_storage.h" line="50"/>
<source>Deck storage</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>TabGame</name>
<message>
<location filename="../src/tab_game.cpp" line="237"/>
<source>F5</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tab_game.cpp" line="238"/>
<source>F6</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tab_game.cpp" line="239"/>
<source>F7</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tab_game.cpp" line="240"/>
<source>F8</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tab_game.cpp" line="241"/>
<source>F9</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tab_game.cpp" line="242"/>
<source>F10</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tab_game.cpp" line="287"/>
<source>&amp;Phases</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tab_game.cpp" line="289"/>
<source>&amp;Game</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tab_game.cpp" line="290"/>
<source>Next &amp;phase</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tab_game.cpp" line="291"/>
<source>Ctrl+Space</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tab_game.cpp" line="292"/>
<source>Next &amp;turn</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tab_game.cpp" line="293"/>
<source>Ctrl+Return</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tab_game.cpp" line="293"/>
<source>Ctrl+Enter</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tab_game.cpp" line="294"/>
<source>&amp;Remove all local arrows</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tab_game.cpp" line="295"/>
<source>Ctrl+R</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tab_game.cpp" line="296"/>
<source>&amp;Concede</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tab_game.cpp" line="297"/>
<source>F2</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tab_game.cpp" line="298"/>
<source>&amp;Leave game</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tab_game.cpp" line="299"/>
<source>Ctrl+Q</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tab_game.cpp" line="301"/>
<source>&amp;Say:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tab_game.cpp" line="321"/>
<source>Concede</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tab_game.cpp" line="321"/>
<source>Are you sure you want to concede this game?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tab_game.cpp" line="330"/>
<source>Leave game</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tab_game.cpp" line="330"/>
<source>Are you sure you want to leave this game?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tab_game.cpp" line="670"/>
<source>Kicked</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tab_game.cpp" line="670"/>
<source>You have been kicked out of the game.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tab_game.h" line="168"/>
<source>Game %1: %2</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>TabMessage</name>
<message>
<location filename="../src/tab_message.cpp" line="39"/>
<source>Personal &amp;talk</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tab_message.cpp" line="40"/>
<source>&amp;Leave</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tab_message.cpp" line="62"/>
<source>This user is ignoring you.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tab_message.cpp" line="78"/>
<source>%1 has left the server.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tab_message.cpp" line="84"/>
<source>%1 has joined the server.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tab_message.h" line="35"/>
<source>Talking to %1</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>TabRoom</name>
<message>
<location filename="../src/tab_room.cpp" line="191"/>
<source>&amp;Say:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tab_room.cpp" line="192"/>
<source>Chat</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tab_room.cpp" line="193"/>
<source>&amp;Room</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tab_room.cpp" line="194"/>
<source>&amp;Leave room</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tab_room.cpp" line="224"/>
<source>You are flooding the chat. Please wait a couple of seconds.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>TabServer</name>
<message>
<location filename="../src/tab_server.h" line="52"/>
<source>Server</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>TabUserLists</name>
<message>
<location filename="../src/tab_userlists.h" line="41"/>
<source>User lists</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UserInfoBox</name>
<message>
<location filename="../src/userinfobox.cpp" line="38"/>
<source>User information</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/userinfobox.cpp" line="45"/>
<source>Real name:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/userinfobox.cpp" line="46"/>
<source>Location:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/userinfobox.cpp" line="47"/>
<source>User level:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/userinfobox.cpp" line="65"/>
<source>Administrator</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/userinfobox.cpp" line="67"/>
<source>Judge</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/userinfobox.cpp" line="69"/>
<source>Registered user</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/userinfobox.cpp" line="71"/>
<source>Unregistered user</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UserInterfaceSettingsPage</name>
<message>
<location filename="../src/dlg_settings.cpp" line="434"/>
<source>General interface settings</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dlg_settings.cpp" line="435"/>
<source>&amp;Double-click cards to play them (instead of single-click)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dlg_settings.cpp" line="436"/>
<source>Animation settings</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dlg_settings.cpp" line="437"/>
<source>&amp;Tap/untap animation</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dlg_settings.cpp" line="438"/>
<source>Enable &amp;sounds</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dlg_settings.cpp" line="439"/>
<source>Path to sounds directory:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dlg_settings.cpp" line="450"/>
<source>Choose path</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UserList</name>
<message>
<location filename="../src/userlist.cpp" line="75"/>
<source>Users online: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/userlist.cpp" line="76"/>
<source>Users in this room: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/userlist.cpp" line="77"/>
<source>Buddies online: %1 / %2</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/userlist.cpp" line="78"/>
<source>Ignored users online: %1 / %2</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/userlist.cpp" line="173"/>
<source>User &amp;details</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/userlist.cpp" line="174"/>
<source>Direct &amp;chat</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/userlist.cpp" line="175"/>
<source>Add to &amp;buddy list</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/userlist.cpp" line="176"/>
<source>Remove from &amp;buddy list</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/userlist.cpp" line="177"/>
<source>Add to &amp;ignore list</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/userlist.cpp" line="178"/>
<source>Remove from &amp;ignore list</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/userlist.cpp" line="179"/>
<source>Ban from &amp;server</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/userlist.cpp" line="219"/>
<source>Duration</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/userlist.cpp" line="219"/>
<source>Please enter the duration of the ban (in minutes).
Enter 0 for an indefinite ban.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>WndDeckEditor</name>
<message>
<location filename="../src/window_deckeditor.cpp" line="41"/>
<source>&amp;Search...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/window_deckeditor.cpp" line="44"/>
<source>&amp;Clear search</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/window_deckeditor.cpp" line="48"/>
<source>&amp;Search for:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/window_deckeditor.cpp" line="108"/>
<source>Deck &amp;name:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/window_deckeditor.cpp" line="112"/>
<source>&amp;Comments:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/window_deckeditor.cpp" line="126"/>
<source>&amp;Update prices</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/window_deckeditor.cpp" line="127"/>
<source>Ctrl+U</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/window_deckeditor.cpp" line="158"/>
<source>Deck editor [*]</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/window_deckeditor.cpp" line="160"/>
<source>&amp;New deck</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/window_deckeditor.cpp" line="163"/>
<source>&amp;Load deck...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/window_deckeditor.cpp" line="166"/>
<source>&amp;Save deck</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/window_deckeditor.cpp" line="169"/>
<source>Save deck &amp;as...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/window_deckeditor.cpp" line="172"/>
<source>Load deck from cl&amp;ipboard...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/window_deckeditor.cpp" line="175"/>
<source>Save deck to clip&amp;board</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/window_deckeditor.cpp" line="178"/>
<source>&amp;Print deck...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/window_deckeditor.cpp" line="181"/>
<source>&amp;Close</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/window_deckeditor.cpp" line="182"/>
<source>Ctrl+Q</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/window_deckeditor.cpp" line="185"/>
<source>&amp;Edit sets...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/window_deckeditor.cpp" line="188"/>
<source>&amp;Deck</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/window_deckeditor.cpp" line="201"/>
<source>&amp;Card database</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/window_deckeditor.cpp" line="207"/>
<source>Add card to &amp;maindeck</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/window_deckeditor.cpp" line="208"/>
<source>Return</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/window_deckeditor.cpp" line="208"/>
<source>Enter</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/window_deckeditor.cpp" line="211"/>
<source>Add card to &amp;sideboard</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/window_deckeditor.cpp" line="213"/>
<source>Ctrl+Return</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/window_deckeditor.cpp" line="213"/>
<source>Ctrl+Enter</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/window_deckeditor.cpp" line="215"/>
<source>&amp;Remove row</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/window_deckeditor.cpp" line="216"/>
<source>Del</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/window_deckeditor.cpp" line="219"/>
<source>&amp;Increment number</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/window_deckeditor.cpp" line="220"/>
<source>+</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/window_deckeditor.cpp" line="223"/>
<source>&amp;Decrement number</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/window_deckeditor.cpp" line="225"/>
<source>-</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/window_deckeditor.cpp" line="276"/>
<source>Are you sure?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/window_deckeditor.cpp" line="277"/>
<source>The decklist has been modified.
Do you want to save the changes?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/window_deckeditor.cpp" line="312"/>
<source>Load deck</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/window_deckeditor.cpp" line="335"/>
<location filename="../src/window_deckeditor.cpp" line="359"/>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/window_deckeditor.cpp" line="335"/>
<location filename="../src/window_deckeditor.cpp" line="359"/>
<source>The deck could not be saved.
Please check that the directory is writable and try again.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/window_deckeditor.cpp" line="341"/>
<source>Save deck</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>WndSets</name>
<message>
<location filename="../src/window_sets.cpp" line="29"/>
<source>Edit sets</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ZoneViewWidget</name>
<message>
<location filename="../src/zoneviewwidget.cpp" line="72"/>
<source>sort by name</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/zoneviewwidget.cpp" line="74"/>
<source>sort by type</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/zoneviewwidget.cpp" line="76"/>
<source>shuffle when closing</source>
<translation type="unfinished"></translation>
</message>
</context>
</TS>
......@@ -187,22 +187,42 @@
<context>
<name>CardInfoWidget</name>
<message>
<location filename="../src/cardinfowidget.cpp" line="107"/>
<location filename="../src/cardinfowidget.cpp" line="23"/>
<source>Hide card info</source>
<translation>Nichts anzeigen</translation>
</message>
<message>
<location filename="../src/cardinfowidget.cpp" line="23"/>
<source>Show card only</source>
<translation>nur Kartenbild</translation>
</message>
<message>
<location filename="../src/cardinfowidget.cpp" line="23"/>
<source>Show text only</source>
<translation>nur Kartentext</translation>
</message>
<message>
<location filename="../src/cardinfowidget.cpp" line="23"/>
<source>Show full info</source>
<translation>Alles anzeigen</translation>
</message>
<message>
<location filename="../src/cardinfowidget.cpp" line="161"/>
<source>Name:</source>
<translation>Name:</translation>
</message>
<message>
<location filename="../src/cardinfowidget.cpp" line="108"/>
<location filename="../src/cardinfowidget.cpp" line="162"/>
<source>Mana cost:</source>
<translation>Manakosten:</translation>
</message>
<message>
<location filename="../src/cardinfowidget.cpp" line="109"/>
<location filename="../src/cardinfowidget.cpp" line="163"/>
<source>Card type:</source>
<translation>Kartentyp:</translation>
</message>
<message>
<location filename="../src/cardinfowidget.cpp" line="110"/>
<location filename="../src/cardinfowidget.cpp" line="164"/>
<source>P / T:</source>
<translation>S/W:</translation>
</message>
......@@ -810,6 +830,19 @@
<translation type="obsolete">Neuer Wert für den Zähler &apos;%1&apos;:</translation>
</message>
</context>
<context>
<name>DeckEditorSettingsPage</name>
<message>
<location filename="../src/dlg_settings.cpp" line="478"/>
<source>Enable &amp;price tag feature (using data from blacklotusproject.com)</source>
<translation>Karten&amp;preisfunktionen anschalten (benutzt Daten von blacklotusproject.com)</translation>
</message>
<message>
<location filename="../src/dlg_settings.cpp" line="479"/>
<source>General</source>
<translation>Allgemeines</translation>
</message>
</context>
<context>
<name>DeckList</name>
<message>
......@@ -828,15 +861,20 @@
<context>
<name>DeckListModel</name>
<message>
<location filename="../src/decklistmodel.cpp" line="123"/>
<location filename="../src/decklistmodel.cpp" line="136"/>
<source>Number</source>
<translation>Nummer</translation>
</message>
<message>
<location filename="../src/decklistmodel.cpp" line="124"/>
<location filename="../src/decklistmodel.cpp" line="137"/>
<source>Card</source>
<translation>Karte</translation>
</message>
<message>
<location filename="../src/decklistmodel.cpp" line="138"/>
<source>Price</source>
<translation>Preis</translation>
</message>
</context>
<context>
<name>DeckViewContainer</name>
......@@ -1208,9 +1246,9 @@
<context>
<name>DlgSettings</name>
<message>
<location filename="../src/dlg_settings.cpp" line="612"/>
<location filename="../src/dlg_settings.cpp" line="617"/>
<location filename="../src/dlg_settings.cpp" line="622"/>
<location filename="../src/dlg_settings.cpp" line="642"/>
<location filename="../src/dlg_settings.cpp" line="647"/>
<location filename="../src/dlg_settings.cpp" line="652"/>
<source>Error</source>
<translation>Fehler</translation>
</message>
......@@ -1227,47 +1265,52 @@
<translation type="obsolete">Der Pfad zum Kartenbilderverzeichnis ist ungültig.</translation>
</message>
<message>
<location filename="../src/dlg_settings.cpp" line="612"/>
<location filename="../src/dlg_settings.cpp" line="642"/>
<source>Your card database is invalid. Would you like to go back and set the correct path?</source>
<translation>Ihre Kartendatenbank ist ungültig. Möchten Sie zurückgehen und den korrekten Pfad einstellen?</translation>
</message>
<message>
<location filename="../src/dlg_settings.cpp" line="617"/>
<location filename="../src/dlg_settings.cpp" line="647"/>
<source>The path to your deck directory is invalid. Would you like to go back and set the correct path?</source>
<translation>Der Pfad zu Ihrem Deckordner ist ungültig. Möchten Sie zurückgehen und den korrekten Pfad einstellen?</translation>
</message>
<message>
<location filename="../src/dlg_settings.cpp" line="622"/>
<location filename="../src/dlg_settings.cpp" line="652"/>
<source>The path to your card pictures directory is invalid. Would you like to go back and set the correct path?</source>
<translation>Der Pfad zu Ihrem Kartenbilderordner ist ungültig. Möchten Sie zurückgehen und den korrekten Pfad einstellen?</translation>
</message>
<message>
<location filename="../src/dlg_settings.cpp" line="631"/>
<location filename="../src/dlg_settings.cpp" line="661"/>
<source>Settings</source>
<translation>Einstellungen</translation>
</message>
<message>
<location filename="../src/dlg_settings.cpp" line="633"/>
<location filename="../src/dlg_settings.cpp" line="663"/>
<source>General</source>
<translation>Allgemeines</translation>
</message>
<message>
<location filename="../src/dlg_settings.cpp" line="634"/>
<location filename="../src/dlg_settings.cpp" line="664"/>
<source>Appearance</source>
<translation>Erscheinungsbild</translation>
</message>
<message>
<location filename="../src/dlg_settings.cpp" line="635"/>
<location filename="../src/dlg_settings.cpp" line="665"/>
<source>User interface</source>
<translation>Bedienung</translation>
</message>
<message>
<location filename="../src/dlg_settings.cpp" line="636"/>
<location filename="../src/dlg_settings.cpp" line="666"/>
<source>Deck editor</source>
<translation>Deckeditor</translation>
</message>
<message>
<location filename="../src/dlg_settings.cpp" line="667"/>
<source>Messages</source>
<translation>Nachrichten</translation>
</message>
<message>
<location filename="../src/dlg_settings.cpp" line="638"/>
<location filename="../src/dlg_settings.cpp" line="669"/>
<source>&amp;Close</source>
<translation>S&amp;chließen</translation>
</message>
......@@ -1533,23 +1576,23 @@
<context>
<name>GameSelector</name>
<message>
<location filename="../src/tab_room.cpp" line="118"/>
<location filename="../src/tab_room.cpp" line="119"/>
<source>C&amp;reate</source>
<translation>Spiel e&amp;rstellen</translation>
</message>
<message>
<location filename="../src/tab_room.cpp" line="119"/>
<location filename="../src/tab_room.cpp" line="120"/>
<source>&amp;Join</source>
<translation>&amp;Teilnehmen</translation>
</message>
<message>
<location filename="../src/tab_room.cpp" line="78"/>
<location filename="../src/tab_room.cpp" line="79"/>
<location filename="../src/tab_room.cpp" line="80"/>
<location filename="../src/tab_room.cpp" line="81"/>
<location filename="../src/tab_room.cpp" line="82"/>
<location filename="../src/tab_room.cpp" line="83"/>
<location filename="../src/tab_room.cpp" line="84"/>
<location filename="../src/tab_room.cpp" line="85"/>
<source>Error</source>
<translation>Fehler</translation>
</message>
......@@ -1558,57 +1601,57 @@
<translation type="obsolete">XXX</translation>
</message>
<message>
<location filename="../src/tab_room.cpp" line="78"/>
<location filename="../src/tab_room.cpp" line="79"/>
<source>Wrong password.</source>
<translation>Falsches Passwort.</translation>
</message>
<message>
<location filename="../src/tab_room.cpp" line="79"/>
<location filename="../src/tab_room.cpp" line="80"/>
<source>Spectators are not allowed in this game.</source>
<translation>In diesem Spiel sind keine Zuschauer zugelassen.</translation>
</message>
<message>
<location filename="../src/tab_room.cpp" line="80"/>
<location filename="../src/tab_room.cpp" line="81"/>
<source>The game is already full.</source>
<translation>Das Spiel ist bereits voll.</translation>
</message>
<message>
<location filename="../src/tab_room.cpp" line="81"/>
<location filename="../src/tab_room.cpp" line="82"/>
<source>The game does not exist any more.</source>
<translation>Dieses Spiel gibt es nicht mehr.</translation>
</message>
<message>
<location filename="../src/tab_room.cpp" line="82"/>
<location filename="../src/tab_room.cpp" line="83"/>
<source>This game is only open to registered users.</source>
<translation>Dieses Spiel kann nur von registrierten Benutzern betreten werden.</translation>
</message>
<message>
<location filename="../src/tab_room.cpp" line="83"/>
<location filename="../src/tab_room.cpp" line="84"/>
<source>This game is only open to its creator&apos;s buddies.</source>
<translation>Dieses Spiel kann nur von Freunden des Erstellers betreten werden.</translation>
</message>
<message>
<location filename="../src/tab_room.cpp" line="84"/>
<location filename="../src/tab_room.cpp" line="85"/>
<source>You are being ignored by the creator of this game.</source>
<translation>Der Ersteller dieses Spiels ignoriert Sie.</translation>
</message>
<message>
<location filename="../src/tab_room.cpp" line="100"/>
<location filename="../src/tab_room.cpp" line="101"/>
<source>Join game</source>
<translation>Spiel beitreten</translation>
</message>
<message>
<location filename="../src/tab_room.cpp" line="100"/>
<location filename="../src/tab_room.cpp" line="101"/>
<source>Password:</source>
<translation>Passwort:</translation>
</message>
<message>
<location filename="../src/tab_room.cpp" line="116"/>
<location filename="../src/tab_room.cpp" line="117"/>
<source>Games</source>
<translation>Spiele</translation>
</message>
<message>
<location filename="../src/tab_room.cpp" line="117"/>
<location filename="../src/tab_room.cpp" line="118"/>
<source>Show &amp;full games</source>
<translation>&amp;Volle Spiele anzeigen</translation>
</message>
......@@ -1617,7 +1660,7 @@
<translation type="obsolete">&amp;Volle Spiele anzeigen</translation>
</message>
<message>
<location filename="../src/tab_room.cpp" line="120"/>
<location filename="../src/tab_room.cpp" line="121"/>
<source>J&amp;oin as spectator</source>
<translation>&amp;Zuschauen</translation>
</message>
......@@ -1849,46 +1892,51 @@ Grund: %1</translation>
<translation>Russisch:</translation>
</message>
<message>
<location filename="../src/window_main.cpp" line="186"/>
<location filename="../src/window_main.cpp" line="192"/>
<location filename="../src/window_main.cpp" line="181"/>
<source>Czech:</source>
<translation>Tschechisch:</translation>
</message>
<message>
<location filename="../src/window_main.cpp" line="187"/>
<location filename="../src/window_main.cpp" line="193"/>
<location filename="../src/window_main.cpp" line="200"/>
<location filename="../src/window_main.cpp" line="206"/>
<location filename="../src/window_main.cpp" line="208"/>
<location filename="../src/window_main.cpp" line="194"/>
<location filename="../src/window_main.cpp" line="201"/>
<location filename="../src/window_main.cpp" line="207"/>
<location filename="../src/window_main.cpp" line="209"/>
<source>Error</source>
<translation>Fehler</translation>
</message>
<message>
<location filename="../src/window_main.cpp" line="186"/>
<location filename="../src/window_main.cpp" line="187"/>
<source>Server timeout</source>
<translation>Server Zeitüberschreitung</translation>
</message>
<message>
<location filename="../src/window_main.cpp" line="192"/>
<location filename="../src/window_main.cpp" line="193"/>
<source>Invalid login data.</source>
<translation>Ungültige Anmeldedaten.</translation>
</message>
<message>
<location filename="../src/window_main.cpp" line="193"/>
<location filename="../src/window_main.cpp" line="194"/>
<source>There is already an active session using this user name.
Please close that session first and re-login.</source>
<translation>Es gibt bereits eine aktive Verbindung mit diesem Benutzernamen.
Bitte schließen Sie diese Verbindung zuerst und versuchen Sie es dann erneut.</translation>
</message>
<message>
<location filename="../src/window_main.cpp" line="200"/>
<location filename="../src/window_main.cpp" line="201"/>
<source>Socket error: %1</source>
<translation>Netzwerkfehler: %1</translation>
</message>
<message>
<location filename="../src/window_main.cpp" line="206"/>
<location filename="../src/window_main.cpp" line="207"/>
<source>You are trying to connect to an obsolete server. Please downgrade your Cockatrice version or connect to a suitable server.
Local version is %1, remote version is %2.</source>
<translation>Sie versuchen sich an einem veralteten Server anzumelden. Bitte verwenden Sie eine ältere Cockatrice-Version oder melden Sie sich an einem aktuellen Server an.
Lokale Version ist %1, Serverversion ist %2.</translation>
</message>
<message>
<location filename="../src/window_main.cpp" line="208"/>
<location filename="../src/window_main.cpp" line="209"/>
<source>Your Cockatrice client is obsolete. Please update your Cockatrice version.
Local version is %1, remote version is %2.</source>
<translation>Ihr Cockatrice-Client ist veraltet. Bitte laden Sie sich die neueste Version herunter.
......@@ -1899,52 +1947,52 @@ Lokale Version ist %1, Serverversion ist %2.</translation>
<translation type="obsolete">Protokollversionen stimmen nicht überein. Lokale Version: %1, Serverversion: %2.</translation>
</message>
<message>
<location filename="../src/window_main.cpp" line="214"/>
<location filename="../src/window_main.cpp" line="215"/>
<source>Connecting to %1...</source>
<translation>Verbinde zu %1...</translation>
</message>
<message>
<location filename="../src/window_main.cpp" line="215"/>
<location filename="../src/window_main.cpp" line="216"/>
<source>Disconnected</source>
<translation>nicht verbunden</translation>
</message>
<message>
<location filename="../src/window_main.cpp" line="216"/>
<location filename="../src/window_main.cpp" line="217"/>
<source>Logged in at %1</source>
<translation>Angemeldet bei %1</translation>
</message>
<message>
<location filename="../src/window_main.cpp" line="225"/>
<location filename="../src/window_main.cpp" line="226"/>
<source>&amp;Connect...</source>
<translation>&amp;Verbinden...</translation>
</message>
<message>
<location filename="../src/window_main.cpp" line="226"/>
<location filename="../src/window_main.cpp" line="227"/>
<source>&amp;Disconnect</source>
<translation>Verbindung &amp;trennen</translation>
</message>
<message>
<location filename="../src/window_main.cpp" line="227"/>
<location filename="../src/window_main.cpp" line="228"/>
<source>Start &amp;local game...</source>
<translation>&amp;Lokales Spiel starten...</translation>
</message>
<message>
<location filename="../src/window_main.cpp" line="236"/>
<location filename="../src/window_main.cpp" line="237"/>
<source>&amp;About Cockatrice</source>
<translation>&amp;Über Cockatrice</translation>
</message>
<message>
<location filename="../src/window_main.cpp" line="237"/>
<location filename="../src/window_main.cpp" line="238"/>
<source>&amp;Help</source>
<translation>&amp;Hilfe</translation>
</message>
<message>
<location filename="../src/window_main.cpp" line="315"/>
<location filename="../src/window_main.cpp" line="316"/>
<source>Are you sure?</source>
<translation>Sind Sie sicher?</translation>
</message>
<message>
<location filename="../src/window_main.cpp" line="315"/>
<location filename="../src/window_main.cpp" line="316"/>
<source>There are still open games. Are you sure you want to quit?</source>
<translation>Es gibt noch offene Spiele. Wollen Sie das Programm wirklich beenden?</translation>
</message>
......@@ -1961,27 +2009,27 @@ Lokale Version ist %1, Serverversion ist %2.</translation>
<translation type="obsolete">Spiel ver&amp;lassen</translation>
</message>
<message>
<location filename="../src/window_main.cpp" line="228"/>
<location filename="../src/window_main.cpp" line="229"/>
<source>&amp;Deck editor</source>
<translation>&amp;Deck-Editor</translation>
</message>
<message>
<location filename="../src/window_main.cpp" line="229"/>
<location filename="../src/window_main.cpp" line="230"/>
<source>&amp;Full screen</source>
<translation>&amp;Vollbild</translation>
</message>
<message>
<location filename="../src/window_main.cpp" line="230"/>
<location filename="../src/window_main.cpp" line="231"/>
<source>Ctrl+F</source>
<translation>Ctrl+F</translation>
</message>
<message>
<location filename="../src/window_main.cpp" line="231"/>
<location filename="../src/window_main.cpp" line="232"/>
<source>&amp;Settings...</source>
<translation>&amp;Einstellungen...</translation>
</message>
<message>
<location filename="../src/window_main.cpp" line="232"/>
<location filename="../src/window_main.cpp" line="233"/>
<source>&amp;Exit</source>
<translation>&amp;Beenden</translation>
</message>
......@@ -1994,7 +2042,7 @@ Lokale Version ist %1, Serverversion ist %2.</translation>
<translation type="obsolete">Esc</translation>
</message>
<message>
<location filename="../src/window_main.cpp" line="234"/>
<location filename="../src/window_main.cpp" line="235"/>
<source>&amp;Cockatrice</source>
<translation>&amp;Cockatrice</translation>
</message>
......@@ -2822,12 +2870,12 @@ Lokale Version ist %1, Serverversion ist %2.</translation>
<context>
<name>MessagesSettingsPage</name>
<message>
<location filename="../src/dlg_settings.cpp" line="515"/>
<location filename="../src/dlg_settings.cpp" line="539"/>
<source>&amp;Add</source>
<translation>&amp;Hinzufügen</translation>
</message>
<message>
<location filename="../src/dlg_settings.cpp" line="516"/>
<location filename="../src/dlg_settings.cpp" line="540"/>
<source>&amp;Remove</source>
<translation>&amp;Entfernen</translation>
</message>
......@@ -2840,12 +2888,12 @@ Lokale Version ist %1, Serverversion ist %2.</translation>
<translation type="obsolete">Entfernen</translation>
</message>
<message>
<location filename="../src/dlg_settings.cpp" line="498"/>
<location filename="../src/dlg_settings.cpp" line="522"/>
<source>Add message</source>
<translation>Nachricht hinzufügen</translation>
</message>
<message>
<location filename="../src/dlg_settings.cpp" line="498"/>
<location filename="../src/dlg_settings.cpp" line="522"/>
<source>Message:</source>
<translation>Nachricht:</translation>
</message>
......@@ -3488,17 +3536,17 @@ Lokale Version ist %1, Serverversion ist %2.</translation>
<translation>Sideboard</translation>
</message>
<message>
<location filename="../../common/decklist.cpp" line="227"/>
<location filename="../../common/decklist.cpp" line="242"/>
<source>Cockatrice decks (*.cod)</source>
<translation>Cockatrice Decks (*.cod)</translation>
</message>
<message>
<location filename="../../common/decklist.cpp" line="228"/>
<location filename="../../common/decklist.cpp" line="243"/>
<source>Plain text decks (*.dec *.mwDeck)</source>
<translation>Text Decks (*.dec *.mwDeck)</translation>
</message>
<message>
<location filename="../../common/decklist.cpp" line="229"/>
<location filename="../../common/decklist.cpp" line="244"/>
<source>All files (*.*)</source>
<translation>Alle Dateien (*.*)</translation>
</message>
......@@ -3901,27 +3949,27 @@ Bitte geben Sie einen Namen ein:</translation>
<context>
<name>TabRoom</name>
<message>
<location filename="../src/tab_room.cpp" line="190"/>
<location filename="../src/tab_room.cpp" line="191"/>
<source>&amp;Say:</source>
<translation>&amp;Sagen:</translation>
</message>
<message>
<location filename="../src/tab_room.cpp" line="191"/>
<location filename="../src/tab_room.cpp" line="192"/>
<source>Chat</source>
<translation>Unterhaltung</translation>
</message>
<message>
<location filename="../src/tab_room.cpp" line="192"/>
<location filename="../src/tab_room.cpp" line="193"/>
<source>&amp;Room</source>
<translation>&amp;Raum</translation>
</message>
<message>
<location filename="../src/tab_room.cpp" line="193"/>
<location filename="../src/tab_room.cpp" line="194"/>
<source>&amp;Leave room</source>
<translation>Raum ver&amp;lassen</translation>
</message>
<message>
<location filename="../src/tab_room.cpp" line="223"/>
<location filename="../src/tab_room.cpp" line="224"/>
<source>You are flooding the chat. Please wait a couple of seconds.</source>
<translation>Sie überfluten den Chatraum. Bitte warten Sie ein paar Sekunden.</translation>
</message>
......@@ -4119,37 +4167,37 @@ Geben Sie 0 ein für einen unbefristeten Bann.</translation>
<context>
<name>WndDeckEditor</name>
<message>
<location filename="../src/window_deckeditor.cpp" line="47"/>
<location filename="../src/window_deckeditor.cpp" line="48"/>
<source>&amp;Search for:</source>
<translation>&amp;Suchen nach:</translation>
</message>
<message>
<location filename="../src/window_deckeditor.cpp" line="107"/>
<location filename="../src/window_deckeditor.cpp" line="108"/>
<source>Deck &amp;name:</source>
<translation>Deck &amp;Name:</translation>
</message>
<message>
<location filename="../src/window_deckeditor.cpp" line="111"/>
<location filename="../src/window_deckeditor.cpp" line="112"/>
<source>&amp;Comments:</source>
<translation>&amp;Kommentare:</translation>
</message>
<message>
<location filename="../src/window_deckeditor.cpp" line="135"/>
<location filename="../src/window_deckeditor.cpp" line="158"/>
<source>Deck editor [*]</source>
<translation>Deck-Editor [*]</translation>
</message>
<message>
<location filename="../src/window_deckeditor.cpp" line="137"/>
<location filename="../src/window_deckeditor.cpp" line="160"/>
<source>&amp;New deck</source>
<translation>&amp;Neues Deck</translation>
</message>
<message>
<location filename="../src/window_deckeditor.cpp" line="140"/>
<location filename="../src/window_deckeditor.cpp" line="163"/>
<source>&amp;Load deck...</source>
<translation>Deck &amp;laden...</translation>
</message>
<message>
<location filename="../src/window_deckeditor.cpp" line="143"/>
<location filename="../src/window_deckeditor.cpp" line="166"/>
<source>&amp;Save deck</source>
<translation>Deck &amp;speichern</translation>
</message>
......@@ -4158,37 +4206,37 @@ Geben Sie 0 ein für einen unbefristeten Bann.</translation>
<translation type="obsolete">Deck &amp;speichern unter...</translation>
</message>
<message>
<location filename="../src/window_deckeditor.cpp" line="146"/>
<location filename="../src/window_deckeditor.cpp" line="169"/>
<source>Save deck &amp;as...</source>
<translation>Deck s&amp;peichern unter...</translation>
</message>
<message>
<location filename="../src/window_deckeditor.cpp" line="152"/>
<location filename="../src/window_deckeditor.cpp" line="175"/>
<source>Save deck to clip&amp;board</source>
<translation>Deck in Z&amp;wischenablage speichern</translation>
</message>
<message>
<location filename="../src/window_deckeditor.cpp" line="155"/>
<location filename="../src/window_deckeditor.cpp" line="178"/>
<source>&amp;Print deck...</source>
<translation>Deck &amp;drucken...</translation>
</message>
<message>
<location filename="../src/window_deckeditor.cpp" line="158"/>
<location filename="../src/window_deckeditor.cpp" line="181"/>
<source>&amp;Close</source>
<translation>S&amp;chließen</translation>
</message>
<message>
<location filename="../src/window_deckeditor.cpp" line="159"/>
<location filename="../src/window_deckeditor.cpp" line="182"/>
<source>Ctrl+Q</source>
<translation>Ctrl+Q</translation>
</message>
<message>
<location filename="../src/window_deckeditor.cpp" line="162"/>
<location filename="../src/window_deckeditor.cpp" line="185"/>
<source>&amp;Edit sets...</source>
<translation>&amp;Editionen bearbeiten...</translation>
</message>
<message>
<location filename="../src/window_deckeditor.cpp" line="165"/>
<location filename="../src/window_deckeditor.cpp" line="188"/>
<source>&amp;Deck</source>
<translation>&amp;Deck</translation>
</message>
......@@ -4197,27 +4245,27 @@ Geben Sie 0 ein für einen unbefristeten Bann.</translation>
<translation type="obsolete">&amp;Editionen</translation>
</message>
<message>
<location filename="../src/window_deckeditor.cpp" line="184"/>
<location filename="../src/window_deckeditor.cpp" line="207"/>
<source>Add card to &amp;maindeck</source>
<translation>Karte zu&amp;m Hauptdeck hinzufügen</translation>
</message>
<message>
<location filename="../src/window_deckeditor.cpp" line="185"/>
<location filename="../src/window_deckeditor.cpp" line="208"/>
<source>Return</source>
<translation>Return</translation>
</message>
<message>
<location filename="../src/window_deckeditor.cpp" line="185"/>
<location filename="../src/window_deckeditor.cpp" line="208"/>
<source>Enter</source>
<translation>Enter</translation>
</message>
<message>
<location filename="../src/window_deckeditor.cpp" line="190"/>
<location filename="../src/window_deckeditor.cpp" line="213"/>
<source>Ctrl+Return</source>
<translation>Ctrl+Return</translation>
</message>
<message>
<location filename="../src/window_deckeditor.cpp" line="190"/>
<location filename="../src/window_deckeditor.cpp" line="213"/>
<source>Ctrl+Enter</source>
<translation>Ctrl+Enter</translation>
</message>
......@@ -4226,7 +4274,7 @@ Geben Sie 0 ein für einen unbefristeten Bann.</translation>
<translation type="obsolete">Ctrl+M</translation>
</message>
<message>
<location filename="../src/window_deckeditor.cpp" line="188"/>
<location filename="../src/window_deckeditor.cpp" line="211"/>
<source>Add card to &amp;sideboard</source>
<translation>Karte zum &amp;Sideboard hinzufügen</translation>
</message>
......@@ -4235,88 +4283,98 @@ Geben Sie 0 ein für einen unbefristeten Bann.</translation>
<translation type="obsolete">Ctrl+N</translation>
</message>
<message>
<location filename="../src/window_deckeditor.cpp" line="40"/>
<location filename="../src/window_deckeditor.cpp" line="41"/>
<source>&amp;Search...</source>
<translation>&amp;Suchen...</translation>
</message>
<message>
<location filename="../src/window_deckeditor.cpp" line="43"/>
<location filename="../src/window_deckeditor.cpp" line="44"/>
<source>&amp;Clear search</source>
<translation>Suche a&amp;ufheben</translation>
</message>
<message>
<location filename="../src/window_deckeditor.cpp" line="149"/>
<location filename="../src/window_deckeditor.cpp" line="126"/>
<source>&amp;Update prices</source>
<translation>&amp;Preise aktualisieren</translation>
</message>
<message>
<location filename="../src/window_deckeditor.cpp" line="127"/>
<source>Ctrl+U</source>
<translation>Ctrl+U</translation>
</message>
<message>
<location filename="../src/window_deckeditor.cpp" line="172"/>
<source>Load deck from cl&amp;ipboard...</source>
<translation>Deck aus &amp;Zwischenablage laden...</translation>
</message>
<message>
<location filename="../src/window_deckeditor.cpp" line="178"/>
<location filename="../src/window_deckeditor.cpp" line="201"/>
<source>&amp;Card database</source>
<translation>&amp;Kartendatenbank</translation>
</message>
<message>
<location filename="../src/window_deckeditor.cpp" line="192"/>
<location filename="../src/window_deckeditor.cpp" line="215"/>
<source>&amp;Remove row</source>
<translation>Zeile entfe&amp;rnen</translation>
</message>
<message>
<location filename="../src/window_deckeditor.cpp" line="193"/>
<location filename="../src/window_deckeditor.cpp" line="216"/>
<source>Del</source>
<translation>Entf</translation>
</message>
<message>
<location filename="../src/window_deckeditor.cpp" line="196"/>
<location filename="../src/window_deckeditor.cpp" line="219"/>
<source>&amp;Increment number</source>
<translation>Anzahl er&amp;höhen</translation>
</message>
<message>
<location filename="../src/window_deckeditor.cpp" line="197"/>
<location filename="../src/window_deckeditor.cpp" line="220"/>
<source>+</source>
<translation>+</translation>
</message>
<message>
<location filename="../src/window_deckeditor.cpp" line="200"/>
<location filename="../src/window_deckeditor.cpp" line="223"/>
<source>&amp;Decrement number</source>
<translation>Anzahl v&amp;erringern</translation>
</message>
<message>
<location filename="../src/window_deckeditor.cpp" line="202"/>
<location filename="../src/window_deckeditor.cpp" line="225"/>
<source>-</source>
<translation>-</translation>
</message>
<message>
<location filename="../src/window_deckeditor.cpp" line="253"/>
<location filename="../src/window_deckeditor.cpp" line="276"/>
<source>Are you sure?</source>
<translation>Bist du sicher?</translation>
</message>
<message>
<location filename="../src/window_deckeditor.cpp" line="254"/>
<location filename="../src/window_deckeditor.cpp" line="277"/>
<source>The decklist has been modified.
Do you want to save the changes?</source>
<translation>Die Deckliste wurde verändert.
Willst du die Änderungen speichern?</translation>
</message>
<message>
<location filename="../src/window_deckeditor.cpp" line="289"/>
<location filename="../src/window_deckeditor.cpp" line="312"/>
<source>Load deck</source>
<translation>Deck laden</translation>
</message>
<message>
<location filename="../src/window_deckeditor.cpp" line="312"/>
<location filename="../src/window_deckeditor.cpp" line="336"/>
<location filename="../src/window_deckeditor.cpp" line="335"/>
<location filename="../src/window_deckeditor.cpp" line="359"/>
<source>Error</source>
<translation>Fehler</translation>
</message>
<message>
<location filename="../src/window_deckeditor.cpp" line="312"/>
<location filename="../src/window_deckeditor.cpp" line="336"/>
<location filename="../src/window_deckeditor.cpp" line="335"/>
<location filename="../src/window_deckeditor.cpp" line="359"/>
<source>The deck could not be saved.
Please check that the directory is writable and try again.</source>
<translation>Das Deck konnte nicht gespeichert werden.
Bitte überprüfen Sie, dass Sie Schreibrechte in dem Verzeichnis haben, und versuchen Sie es erneut.</translation>
</message>
<message>
<location filename="../src/window_deckeditor.cpp" line="318"/>
<location filename="../src/window_deckeditor.cpp" line="341"/>
<source>Save deck</source>
<translation>Deck speichern</translation>
</message>
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment