fix: conflicts && add: new translation
|
@ -21,7 +21,7 @@ Dependencies:
|
||||||
- [protobuf](http://code.google.com/p/protobuf/)
|
- [protobuf](http://code.google.com/p/protobuf/)
|
||||||
- [CMake](http://www.cmake.org/)
|
- [CMake](http://www.cmake.org/)
|
||||||
|
|
||||||
The server requires an additional dependency:
|
The server requires an additional dependency when compiled under Qt4:
|
||||||
|
|
||||||
- [libgcrypt](http://www.gnu.org/software/libgcrypt/)
|
- [libgcrypt](http://www.gnu.org/software/libgcrypt/)
|
||||||
|
|
||||||
|
|
|
@ -51,21 +51,24 @@ Section "Application" SecApplication
|
||||||
SectionEnd
|
SectionEnd
|
||||||
|
|
||||||
Section "Update configuration" SecUpdateConfig
|
Section "Update configuration" SecUpdateConfig
|
||||||
WriteRegStr HKCU "Software\Cockatrice\Cockatrice\paths" "carddatabase" "$APPDATA\Cockatrice\cards.xml"
|
SetShellVarContext current
|
||||||
WriteRegStr HKCU "Software\Cockatrice\Cockatrice\paths" "decks" "$APPDATA\Cockatrice\decks"
|
WriteRegStr HKCU "Software\Cockatrice\Cockatrice\paths" "carddatabase" "$LOCALAPPDATA\Cockatrice\cards.xml"
|
||||||
WriteRegStr HKCU "Software\Cockatrice\Cockatrice\paths" "pics" "$APPDATA\Cockatrice\pics"
|
WriteRegStr HKCU "Software\Cockatrice\Cockatrice\paths" "decks" "$LOCALAPPDATA\Cockatrice\decks"
|
||||||
WriteRegStr HKCU "Software\Cockatrice\Cockatrice\sound" "path" "$APPDATA\Cockatrice\sounds"
|
WriteRegStr HKCU "Software\Cockatrice\Cockatrice\paths" "pics" "$LOCALAPPDATA\Cockatrice\pics"
|
||||||
|
WriteRegStr HKCU "Software\Cockatrice\Cockatrice\sound" "path" "$LOCALAPPDATA\Cockatrice\sounds"
|
||||||
SectionEnd
|
SectionEnd
|
||||||
|
|
||||||
Section "Start menu item" SecStartMenu
|
Section "Start menu item" SecStartMenu
|
||||||
|
SetShellVarContext all
|
||||||
createDirectory "$SMPROGRAMS\Cockatrice"
|
createDirectory "$SMPROGRAMS\Cockatrice"
|
||||||
createShortCut "$SMPROGRAMS\Cockatrice\Cockatrice.lnk" "$INSTDIR\cockatrice.exe" '--debug-output'
|
createShortCut "$SMPROGRAMS\Cockatrice\Cockatrice.lnk" "$INSTDIR\cockatrice.exe" '--debug-output'
|
||||||
createShortCut "$SMPROGRAMS\Cockatrice\Oracle.lnk" "$INSTDIR\oracle.exe"
|
createShortCut "$SMPROGRAMS\Cockatrice\Oracle.lnk" "$INSTDIR\oracle.exe"
|
||||||
|
createShortCut "$SMPROGRAMS\Cockatrice\Servatrice.lnk" "$INSTDIR\servatrice.exe"
|
||||||
createShortCut "$SMPROGRAMS\Cockatrice\Usermanual.lnk" "$INSTDIR\Usermanual.pdf"
|
createShortCut "$SMPROGRAMS\Cockatrice\Usermanual.lnk" "$INSTDIR\Usermanual.pdf"
|
||||||
SectionEnd
|
SectionEnd
|
||||||
|
|
||||||
Section Uninstall
|
Section Uninstall
|
||||||
SetShellVarContext all
|
SetShellVarContext all
|
||||||
RMDir /r "$INSTDIR\zonebg"
|
RMDir /r "$INSTDIR\zonebg"
|
||||||
RMDir /r "$INSTDIR\plugins"
|
RMDir /r "$INSTDIR\plugins"
|
||||||
RMDir /r "$INSTDIR\sounds"
|
RMDir /r "$INSTDIR\sounds"
|
||||||
|
@ -73,18 +76,23 @@ SetShellVarContext all
|
||||||
Delete "$INSTDIR\uninstall.exe"
|
Delete "$INSTDIR\uninstall.exe"
|
||||||
Delete "$INSTDIR\cockatrice.exe"
|
Delete "$INSTDIR\cockatrice.exe"
|
||||||
Delete "$INSTDIR\oracle.exe"
|
Delete "$INSTDIR\oracle.exe"
|
||||||
|
Delete "$INSTDIR\servatrice.exe"
|
||||||
Delete "$INSTDIR\Usermanual.pdf"
|
Delete "$INSTDIR\Usermanual.pdf"
|
||||||
Delete "$INSTDIR\libprotobuf.lib"
|
Delete "$INSTDIR\libprotobuf.lib"
|
||||||
Delete "$INSTDIR\Qt*.dll"
|
Delete "$INSTDIR\Qt*.dll"
|
||||||
Delete "$INSTDIR\icu*.dll"
|
Delete "$INSTDIR\icu*.dll"
|
||||||
Delete "$INSTDIR\qt.conf"
|
Delete "$INSTDIR\qt.conf"
|
||||||
Delete "$INSTDIR\qdebug.txt"
|
Delete "$INSTDIR\qdebug.txt"
|
||||||
|
Delete "$INSTDIR\servatrice.sql"
|
||||||
|
Delete "$INSTDIR\servatrice.ini.example"
|
||||||
RMDir "$INSTDIR"
|
RMDir "$INSTDIR"
|
||||||
|
|
||||||
RMDir "$SMPROGRAMS\Cockatrice"
|
RMDir "$SMPROGRAMS\Cockatrice"
|
||||||
|
|
||||||
DeleteRegKey HKCU "Software\Cockatrice"
|
|
||||||
DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Cockatrice"
|
DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Cockatrice"
|
||||||
|
|
||||||
|
SetShellVarContext current
|
||||||
|
DeleteRegKey HKCU "Software\Cockatrice"
|
||||||
SectionEnd
|
SectionEnd
|
||||||
|
|
||||||
LangString DESC_SecApplication ${LANG_ENGLISH} "Cockatrice program files"
|
LangString DESC_SecApplication ${LANG_ENGLISH} "Cockatrice program files"
|
||||||
|
|
Before Width: | Height: | Size: 34 KiB After Width: | Height: | Size: 25 KiB |
Before Width: | Height: | Size: 201 KiB After Width: | Height: | Size: 151 KiB |
Before Width: | Height: | Size: 345 KiB After Width: | Height: | Size: 15 KiB |
Before Width: | Height: | Size: 27 KiB After Width: | Height: | Size: 48 KiB |
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 6.1 KiB |
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 43 KiB |
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 192 KiB |
|
@ -76,8 +76,8 @@ void SetList::sortByKey()
|
||||||
qSort(begin(), end(), CompareFunctor());
|
qSort(begin(), end(), CompareFunctor());
|
||||||
}
|
}
|
||||||
|
|
||||||
PictureToLoad::PictureToLoad(CardInfo *_card, bool _stripped, bool _hq)
|
PictureToLoad::PictureToLoad(CardInfo *_card, bool _hq)
|
||||||
: card(_card), stripped(_stripped), setIndex(0), hq(_hq)
|
: card(_card), setIndex(0), hq(_hq)
|
||||||
{
|
{
|
||||||
if (card) {
|
if (card) {
|
||||||
sortedSets = card->getSets();
|
sortedSets = card->getSets();
|
||||||
|
@ -135,14 +135,14 @@ void PictureLoader::processLoadQueue()
|
||||||
mutex.unlock();
|
mutex.unlock();
|
||||||
|
|
||||||
//The list of paths to the folders in which to search for images
|
//The list of paths to the folders in which to search for images
|
||||||
QList<QString> picsPaths = QList<QString>() << _picsPath + "/CUSTOM/" + ptl.getCard()->getCorrectedName() + ".full";
|
QList<QString> picsPaths = QList<QString>() << _picsPath + "/CUSTOM/" + ptl.getCard()->getCorrectedName();
|
||||||
|
|
||||||
|
|
||||||
QString setName=ptl.getSetName();
|
QString setName=ptl.getSetName();
|
||||||
if(!setName.isEmpty())
|
if(!setName.isEmpty())
|
||||||
{
|
{
|
||||||
picsPaths << _picsPath + "/" + setName + "/" + ptl.getCard()->getCorrectedName() + ".full"
|
picsPaths << _picsPath + "/" + setName + "/" + ptl.getCard()->getCorrectedName()
|
||||||
<< _picsPath + "/downloadedPics/" + setName + "/" + ptl.getCard()->getCorrectedName() + ".full";
|
<< _picsPath + "/downloadedPics/" + setName + "/" + ptl.getCard()->getCorrectedName();
|
||||||
}
|
}
|
||||||
|
|
||||||
QImage image;
|
QImage image;
|
||||||
|
@ -153,6 +153,12 @@ void PictureLoader::processLoadQueue()
|
||||||
//Iterates through the list of paths, searching for images with the desired name with any QImageReader-supported extension
|
//Iterates through the list of paths, searching for images with the desired name with any QImageReader-supported extension
|
||||||
for (int i = 0; i < picsPaths.length() && !found; i ++) {
|
for (int i = 0; i < picsPaths.length() && !found; i ++) {
|
||||||
imgReader.setFileName(picsPaths.at(i));
|
imgReader.setFileName(picsPaths.at(i));
|
||||||
|
if (imgReader.read(&image)) {
|
||||||
|
emit imageLoaded(ptl.getCard(), image);
|
||||||
|
found = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
imgReader.setFileName(picsPaths.at(i) + ".full");
|
||||||
if (imgReader.read(&image)) {
|
if (imgReader.read(&image)) {
|
||||||
emit imageLoaded(ptl.getCard(), image);
|
emit imageLoaded(ptl.getCard(), image);
|
||||||
found = true;
|
found = true;
|
||||||
|
@ -257,14 +263,14 @@ void PictureLoader::picDownloadFinished(QNetworkReply *reply)
|
||||||
|
|
||||||
const QByteArray &picData = reply->peek(reply->size()); //peek is used to keep the data in the buffer for use by QImageReader
|
const QByteArray &picData = reply->peek(reply->size()); //peek is used to keep the data in the buffer for use by QImageReader
|
||||||
QImage testImage;
|
QImage testImage;
|
||||||
|
|
||||||
QImageReader imgReader;
|
QImageReader imgReader;
|
||||||
imgReader.setDecideFormatFromContent(true);
|
imgReader.setDecideFormatFromContent(true);
|
||||||
imgReader.setDevice(reply);
|
imgReader.setDevice(reply);
|
||||||
QString extension = "." + imgReader.format(); //the format is determined prior to reading the QImageReader data into a QImage object, as that wipes the QImageReader buffer
|
QString extension = "." + imgReader.format(); //the format is determined prior to reading the QImageReader data into a QImage object, as that wipes the QImageReader buffer
|
||||||
if (extension == ".jpeg")
|
if (extension == ".jpeg")
|
||||||
extension = ".jpg";
|
extension = ".jpg";
|
||||||
|
|
||||||
if (imgReader.read(&testImage)) {
|
if (imgReader.read(&testImage)) {
|
||||||
QString setName = cardBeingDownloaded.getSetName();
|
QString setName = cardBeingDownloaded.getSetName();
|
||||||
if(!setName.isEmpty())
|
if(!setName.isEmpty())
|
||||||
|
@ -274,11 +280,7 @@ void PictureLoader::picDownloadFinished(QNetworkReply *reply)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
QString suffix;
|
QFile newPic(picsPath + "/downloadedPics/" + setName + "/" + cardBeingDownloaded.getCard()->getCorrectedName() + extension);
|
||||||
if (!cardBeingDownloaded.getStripped())
|
|
||||||
suffix = ".full";
|
|
||||||
|
|
||||||
QFile newPic(picsPath + "/downloadedPics/" + setName + "/" + cardBeingDownloaded.getCard()->getCorrectedName() + suffix + extension);
|
|
||||||
if (!newPic.open(QIODevice::WriteOnly))
|
if (!newPic.open(QIODevice::WriteOnly))
|
||||||
return;
|
return;
|
||||||
newPic.write(picData);
|
newPic.write(picData);
|
||||||
|
@ -306,11 +308,11 @@ void PictureLoader::picDownloadFinished(QNetworkReply *reply)
|
||||||
startNextPicDownload();
|
startNextPicDownload();
|
||||||
}
|
}
|
||||||
|
|
||||||
void PictureLoader::loadImage(CardInfo *card, bool stripped)
|
void PictureLoader::loadImage(CardInfo *card)
|
||||||
{
|
{
|
||||||
QMutexLocker locker(&mutex);
|
QMutexLocker locker(&mutex);
|
||||||
|
|
||||||
loadQueue.append(PictureToLoad(card, stripped));
|
loadQueue.append(PictureToLoad(card));
|
||||||
emit startLoadQueue();
|
emit startLoadQueue();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -491,7 +493,7 @@ void CardInfo::updatePixmapCache()
|
||||||
qDebug() << "Updating pixmap cache for" << name;
|
qDebug() << "Updating pixmap cache for" << name;
|
||||||
clearPixmapCache();
|
clearPixmapCache();
|
||||||
loadPixmap();
|
loadPixmap();
|
||||||
|
|
||||||
emit pixmapUpdated();
|
emit pixmapUpdated();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -603,7 +605,7 @@ CardDatabase::~CardDatabase()
|
||||||
{
|
{
|
||||||
clear();
|
clear();
|
||||||
delete noCard;
|
delete noCard;
|
||||||
|
|
||||||
pictureLoader->deleteLater();
|
pictureLoader->deleteLater();
|
||||||
pictureLoaderThread->wait();
|
pictureLoaderThread->wait();
|
||||||
delete pictureLoaderThread;
|
delete pictureLoaderThread;
|
||||||
|
@ -617,7 +619,7 @@ void CardDatabase::clear()
|
||||||
delete setIt.value();
|
delete setIt.value();
|
||||||
}
|
}
|
||||||
sets.clear();
|
sets.clear();
|
||||||
|
|
||||||
QHashIterator<QString, CardInfo *> i(cards);
|
QHashIterator<QString, CardInfo *> i(cards);
|
||||||
while (i.hasNext()) {
|
while (i.hasNext()) {
|
||||||
i.next();
|
i.next();
|
||||||
|
@ -708,7 +710,7 @@ void CardDatabase::loadSetsFromXml(QXmlStreamReader &xml)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void CardDatabase::loadCardsFromXml(QXmlStreamReader &xml)
|
void CardDatabase::loadCardsFromXml(QXmlStreamReader &xml, bool tokens)
|
||||||
{
|
{
|
||||||
while (!xml.atEnd()) {
|
while (!xml.atEnd()) {
|
||||||
if (xml.readNext() == QXmlStreamReader::EndElement)
|
if (xml.readNext() == QXmlStreamReader::EndElement)
|
||||||
|
@ -760,16 +762,38 @@ void CardDatabase::loadCardsFromXml(QXmlStreamReader &xml)
|
||||||
else if (xml.name() == "token")
|
else if (xml.name() == "token")
|
||||||
isToken = xml.readElementText().toInt();
|
isToken = xml.readElementText().toInt();
|
||||||
}
|
}
|
||||||
addCard(new CardInfo(this, name, isToken, manacost, type, pt, text, colors, loyalty, cipt, tableRow, sets, customPicURLs, customPicURLsHq, muids));
|
|
||||||
|
if (isToken == tokens) {
|
||||||
|
addCard(new CardInfo(this, name, isToken, manacost, type, pt, text, colors, loyalty, cipt, tableRow, sets, customPicURLs, customPicURLsHq, muids));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
CardInfo *CardNameMap::findByPrefix(const std::string &prefix) {
|
||||||
|
int count = 0;
|
||||||
|
CardInfo *found;
|
||||||
|
|
||||||
|
for (CardNameMap::iterator it = this->begin(); it != this->end(); ++it) {
|
||||||
|
if (std::mismatch(prefix.begin(), prefix.end(),
|
||||||
|
it.key().toStdString().begin()).first == prefix.end()) {
|
||||||
|
count++;
|
||||||
|
found = it.value();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return (count == 1 ? found : NULL);
|
||||||
|
}
|
||||||
|
|
||||||
CardInfo *CardDatabase::getCardFromMap(CardNameMap &cardMap, const QString &cardName, bool createIfNotFound) {
|
CardInfo *CardDatabase::getCardFromMap(CardNameMap &cardMap, const QString &cardName, bool createIfNotFound) {
|
||||||
|
CardInfo *foundCard;
|
||||||
|
|
||||||
if (cardName.isEmpty())
|
if (cardName.isEmpty())
|
||||||
return noCard;
|
return noCard;
|
||||||
else if (cardMap.contains(cardName))
|
else if (cardMap.contains(cardName))
|
||||||
return cardMap.value(cardName);
|
return cardMap.value(cardName);
|
||||||
|
else if ((foundCard = cardMap.findByPrefix(cardName.toStdString())))
|
||||||
|
return foundCard;
|
||||||
else if (createIfNotFound) {
|
else if (createIfNotFound) {
|
||||||
CardInfo *newCard = new CardInfo(this, cardName, true);
|
CardInfo *newCard = new CardInfo(this, cardName, true);
|
||||||
newCard->addToSet(getSet("TK"));
|
newCard->addToSet(getSet("TK"));
|
||||||
|
@ -779,7 +803,7 @@ CardInfo *CardDatabase::getCardFromMap(CardNameMap &cardMap, const QString &card
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
LoadStatus CardDatabase::loadFromFile(const QString &fileName)
|
LoadStatus CardDatabase::loadFromFile(const QString &fileName, bool tokens)
|
||||||
{
|
{
|
||||||
QFile file(fileName);
|
QFile file(fileName);
|
||||||
file.open(QIODevice::ReadOnly);
|
file.open(QIODevice::ReadOnly);
|
||||||
|
@ -802,7 +826,7 @@ LoadStatus CardDatabase::loadFromFile(const QString &fileName)
|
||||||
if (xml.name() == "sets")
|
if (xml.name() == "sets")
|
||||||
loadSetsFromXml(xml);
|
loadSetsFromXml(xml);
|
||||||
else if (xml.name() == "cards")
|
else if (xml.name() == "cards")
|
||||||
loadCardsFromXml(xml);
|
loadCardsFromXml(xml, tokens);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -837,7 +861,9 @@ bool CardDatabase::saveToFile(const QString &fileName, bool tokens)
|
||||||
QHashIterator<QString, CardInfo *> cardIterator(cards);
|
QHashIterator<QString, CardInfo *> cardIterator(cards);
|
||||||
while (cardIterator.hasNext()) {
|
while (cardIterator.hasNext()) {
|
||||||
CardInfo *card = cardIterator.next().value();
|
CardInfo *card = cardIterator.next().value();
|
||||||
xml << card;
|
if (tokens == card->getIsToken()) {
|
||||||
|
xml << card;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
xml.writeEndElement(); // cards
|
xml.writeEndElement(); // cards
|
||||||
|
|
||||||
|
@ -871,7 +897,7 @@ LoadStatus CardDatabase::loadCardDatabase(const QString &path, bool tokens)
|
||||||
{
|
{
|
||||||
LoadStatus tempLoadStatus = NotLoaded;
|
LoadStatus tempLoadStatus = NotLoaded;
|
||||||
if (!path.isEmpty())
|
if (!path.isEmpty())
|
||||||
tempLoadStatus = loadFromFile(path);
|
tempLoadStatus = loadFromFile(path, tokens);
|
||||||
|
|
||||||
if (tempLoadStatus == Ok) {
|
if (tempLoadStatus == Ok) {
|
||||||
SetList allSets;
|
SetList allSets;
|
||||||
|
@ -936,7 +962,7 @@ void CardDatabase::cacheCardPixmaps(const QStringList &cardNames)
|
||||||
|
|
||||||
void CardDatabase::loadImage(CardInfo *card)
|
void CardDatabase::loadImage(CardInfo *card)
|
||||||
{
|
{
|
||||||
pictureLoader->loadImage(card, false);
|
pictureLoader->loadImage(card);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CardDatabase::imageLoaded(CardInfo *card, QImage image)
|
void CardDatabase::imageLoaded(CardInfo *card, QImage image)
|
||||||
|
|
|
@ -47,14 +47,12 @@ public:
|
||||||
class PictureToLoad {
|
class PictureToLoad {
|
||||||
private:
|
private:
|
||||||
CardInfo *card;
|
CardInfo *card;
|
||||||
bool stripped;
|
|
||||||
SetList sortedSets;
|
SetList sortedSets;
|
||||||
int setIndex;
|
int setIndex;
|
||||||
bool hq;
|
bool hq;
|
||||||
public:
|
public:
|
||||||
PictureToLoad(CardInfo *_card = 0, bool _stripped = false, bool _hq = true);
|
PictureToLoad(CardInfo *_card = 0, bool _hq = true);
|
||||||
CardInfo *getCard() const { return card; }
|
CardInfo *getCard() const { return card; }
|
||||||
bool getStripped() const { return stripped; }
|
|
||||||
QString getSetName() const;
|
QString getSetName() const;
|
||||||
bool nextSet();
|
bool nextSet();
|
||||||
bool getHq() const { return hq; }
|
bool getHq() const { return hq; }
|
||||||
|
@ -79,7 +77,7 @@ public:
|
||||||
void setPicsPath(const QString &path);
|
void setPicsPath(const QString &path);
|
||||||
void setPicDownload(bool _picDownload);
|
void setPicDownload(bool _picDownload);
|
||||||
void setPicDownloadHq(bool _picDownloadHq);
|
void setPicDownloadHq(bool _picDownloadHq);
|
||||||
void loadImage(CardInfo *card, bool stripped);
|
void loadImage(CardInfo *card);
|
||||||
private slots:
|
private slots:
|
||||||
void picDownloadFinished(QNetworkReply *reply);
|
void picDownloadFinished(QNetworkReply *reply);
|
||||||
public slots:
|
public slots:
|
||||||
|
@ -182,7 +180,13 @@ signals:
|
||||||
|
|
||||||
enum LoadStatus { Ok, VersionTooOld, Invalid, NotLoaded, FileError, NoCards };
|
enum LoadStatus { Ok, VersionTooOld, Invalid, NotLoaded, FileError, NoCards };
|
||||||
|
|
||||||
typedef QHash<QString, CardInfo *> CardNameMap;
|
|
||||||
|
class CardNameMap: public QHash<QString, CardInfo *>
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
CardInfo *findByPrefix(const std::string &prefix);
|
||||||
|
};
|
||||||
|
|
||||||
typedef QHash<QString, CardSet *> SetNameMap;
|
typedef QHash<QString, CardSet *> SetNameMap;
|
||||||
|
|
||||||
class CardDatabase : public QObject {
|
class CardDatabase : public QObject {
|
||||||
|
@ -210,7 +214,7 @@ protected:
|
||||||
LoadStatus loadStatus;
|
LoadStatus loadStatus;
|
||||||
private:
|
private:
|
||||||
static const int versionNeeded;
|
static const int versionNeeded;
|
||||||
void loadCardsFromXml(QXmlStreamReader &xml);
|
void loadCardsFromXml(QXmlStreamReader &xml, bool tokens);
|
||||||
void loadSetsFromXml(QXmlStreamReader &xml);
|
void loadSetsFromXml(QXmlStreamReader &xml);
|
||||||
|
|
||||||
CardInfo *getCardFromMap(CardNameMap &cardMap, const QString &cardName, bool createIfNotFound);
|
CardInfo *getCardFromMap(CardNameMap &cardMap, const QString &cardName, bool createIfNotFound);
|
||||||
|
@ -231,7 +235,7 @@ public:
|
||||||
CardSet *getSet(const QString &setName);
|
CardSet *getSet(const QString &setName);
|
||||||
QList<CardInfo *> getCardList() const { return cards.values(); }
|
QList<CardInfo *> getCardList() const { return cards.values(); }
|
||||||
SetList getSetList() const;
|
SetList getSetList() const;
|
||||||
LoadStatus loadFromFile(const QString &fileName);
|
LoadStatus loadFromFile(const QString &fileName, bool tokens = false);
|
||||||
bool saveToFile(const QString &fileName, bool tokens = false);
|
bool saveToFile(const QString &fileName, bool tokens = false);
|
||||||
QStringList getAllColors() const;
|
QStringList getAllColors() const;
|
||||||
QStringList getAllMainCardTypes() const;
|
QStringList getAllMainCardTypes() const;
|
||||||
|
|
|
@ -84,7 +84,9 @@ void CardDragItem::mouseReleaseEvent(QGraphicsSceneMouseEvent *event)
|
||||||
sc->removeItem(c);
|
sc->removeItem(c);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
currentZone->handleDropEvent(dragItemList, startZone, (sp - currentZone->scenePos()).toPoint());
|
|
||||||
|
if(currentZone)
|
||||||
|
currentZone->handleDropEvent(dragItemList, startZone, (sp - currentZone->scenePos()).toPoint());
|
||||||
|
|
||||||
event->accept();
|
event->accept();
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,6 +4,8 @@
|
||||||
#include <QGridLayout>
|
#include <QGridLayout>
|
||||||
#include <QHBoxLayout>
|
#include <QHBoxLayout>
|
||||||
#include <QDialogButtonBox>
|
#include <QDialogButtonBox>
|
||||||
|
#include <QDebug>
|
||||||
|
#include <iostream>
|
||||||
#include "dlg_connect.h"
|
#include "dlg_connect.h"
|
||||||
|
|
||||||
DlgConnect::DlgConnect(QWidget *parent)
|
DlgConnect::DlgConnect(QWidget *parent)
|
||||||
|
@ -32,6 +34,19 @@ DlgConnect::DlgConnect(QWidget *parent)
|
||||||
savePasswordCheckBox = new QCheckBox(tr("&Save password"));
|
savePasswordCheckBox = new QCheckBox(tr("&Save password"));
|
||||||
savePasswordCheckBox->setChecked(settings.value("save_password", 1).toInt());
|
savePasswordCheckBox->setChecked(settings.value("save_password", 1).toInt());
|
||||||
|
|
||||||
|
autoConnectCheckBox = new QCheckBox(tr("A&uto connect at start"));
|
||||||
|
if(savePasswordCheckBox->isChecked())
|
||||||
|
{
|
||||||
|
autoConnectCheckBox->setChecked(settings.value("auto_connect", 0).toInt());
|
||||||
|
autoConnectCheckBox->setEnabled(true);
|
||||||
|
} else {
|
||||||
|
settings.setValue("auto_connect", 0);
|
||||||
|
autoConnectCheckBox->setChecked(0);
|
||||||
|
autoConnectCheckBox->setEnabled(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
connect(savePasswordCheckBox, SIGNAL(stateChanged(int)), this, SLOT(passwordSaved(int)));
|
||||||
|
|
||||||
QGridLayout *grid = new QGridLayout;
|
QGridLayout *grid = new QGridLayout;
|
||||||
grid->addWidget(hostLabel, 0, 0);
|
grid->addWidget(hostLabel, 0, 0);
|
||||||
grid->addWidget(hostEdit, 0, 1);
|
grid->addWidget(hostEdit, 0, 1);
|
||||||
|
@ -42,10 +57,11 @@ DlgConnect::DlgConnect(QWidget *parent)
|
||||||
grid->addWidget(passwordLabel, 3, 0);
|
grid->addWidget(passwordLabel, 3, 0);
|
||||||
grid->addWidget(passwordEdit, 3, 1);
|
grid->addWidget(passwordEdit, 3, 1);
|
||||||
grid->addWidget(savePasswordCheckBox, 4, 0, 1, 2);
|
grid->addWidget(savePasswordCheckBox, 4, 0, 1, 2);
|
||||||
|
grid->addWidget(autoConnectCheckBox, 5, 0, 1, 2);
|
||||||
|
|
||||||
QDialogButtonBox *buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel);
|
QDialogButtonBox *buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel);
|
||||||
connect(buttonBox, SIGNAL(accepted()), this, SLOT(actOk()));
|
connect(buttonBox, SIGNAL(accepted()), this, SLOT(actOk()));
|
||||||
connect(buttonBox, SIGNAL(rejected()), this, SLOT(reject()));
|
connect(buttonBox, SIGNAL(rejected()), this, SLOT(actCancel()));
|
||||||
|
|
||||||
QVBoxLayout *mainLayout = new QVBoxLayout;
|
QVBoxLayout *mainLayout = new QVBoxLayout;
|
||||||
mainLayout->addLayout(grid);
|
mainLayout->addLayout(grid);
|
||||||
|
@ -57,6 +73,16 @@ DlgConnect::DlgConnect(QWidget *parent)
|
||||||
setMinimumWidth(300);
|
setMinimumWidth(300);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void DlgConnect::passwordSaved(int state)
|
||||||
|
{
|
||||||
|
if(savePasswordCheckBox->isChecked()) {
|
||||||
|
autoConnectCheckBox->setEnabled(true);
|
||||||
|
} else {
|
||||||
|
autoConnectCheckBox->setChecked(0);
|
||||||
|
autoConnectCheckBox->setEnabled(false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void DlgConnect::actOk()
|
void DlgConnect::actOk()
|
||||||
{
|
{
|
||||||
QSettings settings;
|
QSettings settings;
|
||||||
|
@ -66,7 +92,19 @@ void DlgConnect::actOk()
|
||||||
settings.setValue("playername", playernameEdit->text());
|
settings.setValue("playername", playernameEdit->text());
|
||||||
settings.setValue("password", savePasswordCheckBox->isChecked() ? passwordEdit->text() : QString());
|
settings.setValue("password", savePasswordCheckBox->isChecked() ? passwordEdit->text() : QString());
|
||||||
settings.setValue("save_password", savePasswordCheckBox->isChecked() ? 1 : 0);
|
settings.setValue("save_password", savePasswordCheckBox->isChecked() ? 1 : 0);
|
||||||
|
settings.setValue("auto_connect", autoConnectCheckBox->isChecked() ? 1 : 0);
|
||||||
settings.endGroup();
|
settings.endGroup();
|
||||||
|
|
||||||
accept();
|
accept();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void DlgConnect::actCancel()
|
||||||
|
{
|
||||||
|
QSettings settings;
|
||||||
|
settings.beginGroup("server");
|
||||||
|
settings.setValue("save_password", savePasswordCheckBox->isChecked() ? 1 : 0);
|
||||||
|
settings.setValue("auto_connect", autoConnectCheckBox->isChecked() ? 1 : 0);
|
||||||
|
settings.endGroup();
|
||||||
|
|
||||||
|
reject();
|
||||||
|
}
|
||||||
|
|
|
@ -18,10 +18,12 @@ public:
|
||||||
QString getPassword() const { return passwordEdit->text(); }
|
QString getPassword() const { return passwordEdit->text(); }
|
||||||
private slots:
|
private slots:
|
||||||
void actOk();
|
void actOk();
|
||||||
|
void actCancel();
|
||||||
|
void passwordSaved(int state);
|
||||||
private:
|
private:
|
||||||
QLabel *hostLabel, *portLabel, *playernameLabel, *passwordLabel;
|
QLabel *hostLabel, *portLabel, *playernameLabel, *passwordLabel;
|
||||||
QLineEdit *hostEdit, *portEdit, *playernameEdit, *passwordEdit;
|
QLineEdit *hostEdit, *portEdit, *playernameEdit, *passwordEdit;
|
||||||
QCheckBox *savePasswordCheckBox;
|
QCheckBox *savePasswordCheckBox, *autoConnectCheckBox;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -56,6 +56,10 @@ bool KeySignals::eventFilter(QObject * /*object*/, QEvent *event) {
|
||||||
&& kevent->modifiers().testFlag(Qt::ControlModifier) )
|
&& kevent->modifiers().testFlag(Qt::ControlModifier) )
|
||||||
emit onCtrlAltRBracket();
|
emit onCtrlAltRBracket();
|
||||||
|
|
||||||
|
break;
|
||||||
|
case Qt::Key_S:
|
||||||
|
emit onS();
|
||||||
|
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
return false;
|
return false;
|
||||||
|
|
|
@ -18,6 +18,7 @@ signals:
|
||||||
void onCtrlAltEqual();
|
void onCtrlAltEqual();
|
||||||
void onCtrlAltLBracket();
|
void onCtrlAltLBracket();
|
||||||
void onCtrlAltRBracket();
|
void onCtrlAltRBracket();
|
||||||
|
void onS();
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual bool eventFilter(QObject *, QEvent *event);
|
virtual bool eventFilter(QObject *, QEvent *event);
|
||||||
|
|
|
@ -100,7 +100,7 @@ Player::Player(const ServerInfo_User &info, int _id, bool _local, TabGame *_pare
|
||||||
: QObject(_parent),
|
: QObject(_parent),
|
||||||
game(_parent),
|
game(_parent),
|
||||||
shortcutsActive(false),
|
shortcutsActive(false),
|
||||||
defaultNumberTopCards(3),
|
defaultNumberTopCards(1),
|
||||||
lastTokenDestroy(true),
|
lastTokenDestroy(true),
|
||||||
id(_id),
|
id(_id),
|
||||||
active(false),
|
active(false),
|
||||||
|
@ -1092,8 +1092,12 @@ void Player::eventCreateToken(const Event_CreateToken &event)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
CardItem *card = new CardItem(this, QString::fromStdString(event.card_name()), event.card_id());
|
CardItem *card = new CardItem(this, QString::fromStdString(event.card_name()), event.card_id());
|
||||||
|
// use db PT if not provided in event
|
||||||
|
if (!QString::fromStdString(event.pt()).isEmpty())
|
||||||
|
card->setPT(QString::fromStdString(event.pt()));
|
||||||
|
else
|
||||||
|
card->setPT(db->getCard(QString::fromStdString(event.card_name()))->getPowTough());
|
||||||
card->setColor(QString::fromStdString(event.color()));
|
card->setColor(QString::fromStdString(event.color()));
|
||||||
card->setPT(QString::fromStdString(event.pt()));
|
|
||||||
card->setAnnotation(QString::fromStdString(event.annotation()));
|
card->setAnnotation(QString::fromStdString(event.annotation()));
|
||||||
card->setDestroyOnZoneChange(event.destroy_on_zone_change());
|
card->setDestroyOnZoneChange(event.destroy_on_zone_change());
|
||||||
|
|
||||||
|
|
|
@ -48,6 +48,8 @@ SettingsCache::SettingsCache()
|
||||||
priceTagSource = settings->value("deckeditor/pricetagsource", 0).toInt();
|
priceTagSource = settings->value("deckeditor/pricetagsource", 0).toInt();
|
||||||
|
|
||||||
ignoreUnregisteredUsers = settings->value("chat/ignore_unregistered", false).toBool();
|
ignoreUnregisteredUsers = settings->value("chat/ignore_unregistered", false).toBool();
|
||||||
|
|
||||||
|
attemptAutoConnect = settings->value("server/auto_connect", 0).toBool();
|
||||||
}
|
}
|
||||||
|
|
||||||
void SettingsCache::setLang(const QString &_lang)
|
void SettingsCache::setLang(const QString &_lang)
|
||||||
|
@ -267,6 +269,12 @@ void SettingsCache::setMainWindowGeometry(const QByteArray &_mainWindowGeometry)
|
||||||
settings->setValue("interface/main_window_geometry", mainWindowGeometry);
|
settings->setValue("interface/main_window_geometry", mainWindowGeometry);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void SettingsCache::setAutoConnect(const bool &_autoConnect)
|
||||||
|
{
|
||||||
|
attemptAutoConnect = _autoConnect;
|
||||||
|
settings->setValue("server/auto_connect", attemptAutoConnect ? 1 : 0);
|
||||||
|
}
|
||||||
|
|
||||||
void SettingsCache::copyPath(const QString &src, const QString &dst)
|
void SettingsCache::copyPath(const QString &src, const QString &dst)
|
||||||
{
|
{
|
||||||
// test source && return if inexistent
|
// test source && return if inexistent
|
||||||
|
|
|
@ -57,6 +57,7 @@ private:
|
||||||
bool ignoreUnregisteredUsers;
|
bool ignoreUnregisteredUsers;
|
||||||
QString picUrl;
|
QString picUrl;
|
||||||
QString picUrlHq;
|
QString picUrlHq;
|
||||||
|
bool attemptAutoConnect;
|
||||||
public:
|
public:
|
||||||
SettingsCache();
|
SettingsCache();
|
||||||
const QByteArray &getMainWindowGeometry() const { return mainWindowGeometry; }
|
const QByteArray &getMainWindowGeometry() const { return mainWindowGeometry; }
|
||||||
|
@ -93,6 +94,7 @@ public:
|
||||||
QString getPicUrl() const { return picUrl; }
|
QString getPicUrl() const { return picUrl; }
|
||||||
QString getPicUrlHq() const { return picUrlHq; }
|
QString getPicUrlHq() const { return picUrlHq; }
|
||||||
void copyPath(const QString &src, const QString &dst);
|
void copyPath(const QString &src, const QString &dst);
|
||||||
|
bool getAutoConnect() const { return attemptAutoConnect; }
|
||||||
public slots:
|
public slots:
|
||||||
void setMainWindowGeometry(const QByteArray &_mainWindowGeometry);
|
void setMainWindowGeometry(const QByteArray &_mainWindowGeometry);
|
||||||
void setLang(const QString &_lang);
|
void setLang(const QString &_lang);
|
||||||
|
@ -127,6 +129,7 @@ public slots:
|
||||||
void setIgnoreUnregisteredUsers(bool _ignoreUnregisteredUsers);
|
void setIgnoreUnregisteredUsers(bool _ignoreUnregisteredUsers);
|
||||||
void setPicUrl(const QString &_picUrl);
|
void setPicUrl(const QString &_picUrl);
|
||||||
void setPicUrlHq(const QString &_picUrlHq);
|
void setPicUrlHq(const QString &_picUrlHq);
|
||||||
|
void setAutoConnect(const bool &_autoConnect);
|
||||||
};
|
};
|
||||||
|
|
||||||
extern SettingsCache *settingsCache;
|
extern SettingsCache *settingsCache;
|
||||||
|
|
|
@ -141,6 +141,8 @@ TabDeckEditor::TabDeckEditor(TabSupervisor *_tabSupervisor, QWidget *parent)
|
||||||
#endif
|
#endif
|
||||||
deckView->installEventFilter(&deckViewKeySignals);
|
deckView->installEventFilter(&deckViewKeySignals);
|
||||||
connect(deckView->selectionModel(), SIGNAL(currentRowChanged(const QModelIndex &, const QModelIndex &)), this, SLOT(updateCardInfoRight(const QModelIndex &, const QModelIndex &)));
|
connect(deckView->selectionModel(), SIGNAL(currentRowChanged(const QModelIndex &, const QModelIndex &)), this, SLOT(updateCardInfoRight(const QModelIndex &, const QModelIndex &)));
|
||||||
|
connect(deckView, SIGNAL(doubleClicked(const QModelIndex &)), this, SLOT(actSwapCard()));
|
||||||
|
connect(&deckViewKeySignals, SIGNAL(onS()), this, SLOT(actSwapCard()));
|
||||||
connect(&deckViewKeySignals, SIGNAL(onEnter()), this, SLOT(actIncrement()));
|
connect(&deckViewKeySignals, SIGNAL(onEnter()), this, SLOT(actIncrement()));
|
||||||
connect(&deckViewKeySignals, SIGNAL(onCtrlAltEqual()), this, SLOT(actIncrement()));
|
connect(&deckViewKeySignals, SIGNAL(onCtrlAltEqual()), this, SLOT(actIncrement()));
|
||||||
connect(&deckViewKeySignals, SIGNAL(onCtrlAltMinus()), this, SLOT(actDecrement()));
|
connect(&deckViewKeySignals, SIGNAL(onCtrlAltMinus()), this, SLOT(actDecrement()));
|
||||||
|
@ -571,6 +573,27 @@ void TabDeckEditor::addCardHelper(QString zoneName)
|
||||||
setModified(true);
|
setModified(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void TabDeckEditor::actSwapCard()
|
||||||
|
{
|
||||||
|
const QModelIndex currentIndex = deckView->selectionModel()->currentIndex();
|
||||||
|
if (!currentIndex.isValid())
|
||||||
|
return;
|
||||||
|
const QString cardName = currentIndex.sibling(currentIndex.row(), 1).data().toString();
|
||||||
|
const QModelIndex gparent = currentIndex.parent().parent();
|
||||||
|
if (!gparent.isValid())
|
||||||
|
return;
|
||||||
|
|
||||||
|
const QString zoneName = gparent.sibling(gparent.row(), 1).data().toString();
|
||||||
|
actDecrement();
|
||||||
|
|
||||||
|
const QString otherZoneName = zoneName == "Maindeck" ? "side" : "main";
|
||||||
|
|
||||||
|
QModelIndex newCardIndex = deckModel->addCard(cardName, otherZoneName);
|
||||||
|
recursiveExpand(newCardIndex);
|
||||||
|
deckView->setCurrentIndex(newCardIndex);
|
||||||
|
setModified(true);
|
||||||
|
}
|
||||||
|
|
||||||
void TabDeckEditor::actAddCard()
|
void TabDeckEditor::actAddCard()
|
||||||
{
|
{
|
||||||
addCardHelper("main");
|
addCardHelper("main");
|
||||||
|
|
|
@ -53,6 +53,7 @@ private slots:
|
||||||
|
|
||||||
void actClearSearch();
|
void actClearSearch();
|
||||||
|
|
||||||
|
void actSwapCard();
|
||||||
void actAddCard();
|
void actAddCard();
|
||||||
void actAddCardToSideboard();
|
void actAddCardToSideboard();
|
||||||
void actRemoveCard();
|
void actRemoveCard();
|
||||||
|
|
|
@ -359,7 +359,7 @@ void MainWindow::createMenus()
|
||||||
}
|
}
|
||||||
|
|
||||||
MainWindow::MainWindow(QWidget *parent)
|
MainWindow::MainWindow(QWidget *parent)
|
||||||
: QMainWindow(parent), localServer(0)
|
: QMainWindow(parent), localServer(0), bHasActivated(false)
|
||||||
{
|
{
|
||||||
QPixmapCache::setCacheLimit(200000);
|
QPixmapCache::setCacheLimit(200000);
|
||||||
|
|
||||||
|
@ -417,5 +417,16 @@ void MainWindow::changeEvent(QEvent *event)
|
||||||
{
|
{
|
||||||
if (event->type() == QEvent::LanguageChange)
|
if (event->type() == QEvent::LanguageChange)
|
||||||
retranslateUi();
|
retranslateUi();
|
||||||
|
else if(event->type() == QEvent::ActivationChange) {
|
||||||
|
if(isActiveWindow() && !bHasActivated){
|
||||||
|
bHasActivated = true;
|
||||||
|
if(settingsCache->getAutoConnect()) {
|
||||||
|
qDebug() << "Attempting auto-connect...";
|
||||||
|
DlgConnect dlg(this);
|
||||||
|
client->connectToServer(dlg.getHost(), dlg.getPort(), dlg.getPlayerName(), dlg.getPassword());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
QMainWindow::changeEvent(event);
|
QMainWindow::changeEvent(event);
|
||||||
}
|
}
|
||||||
|
|
|
@ -71,6 +71,7 @@ private:
|
||||||
QThread *clientThread;
|
QThread *clientThread;
|
||||||
|
|
||||||
LocalServer *localServer;
|
LocalServer *localServer;
|
||||||
|
bool bHasActivated;
|
||||||
public:
|
public:
|
||||||
MainWindow(QWidget *parent = 0);
|
MainWindow(QWidget *parent = 0);
|
||||||
~MainWindow();
|
~MainWindow();
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<!DOCTYPE TS>
|
<!DOCTYPE TS>
|
||||||
<TS version="2.1" language="cs_CZ">
|
<TS version="2.0" language="cs_CZ">
|
||||||
<context>
|
<context>
|
||||||
<name>AbstractCounter</name>
|
<name>AbstractCounter</name>
|
||||||
<message>
|
<message>
|
||||||
|
@ -43,23 +43,23 @@
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Path to hand background:</source>
|
<source>Path to hand background:</source>
|
||||||
<translation type="vanished">Cesta k pozadí ruky:</translation>
|
<translation type="obsolete">Cesta k pozadí ruky:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Path to stack background:</source>
|
<source>Path to stack background:</source>
|
||||||
<translation type="vanished">Cesta k pozadí stacku:</translation>
|
<translation type="obsolete">Cesta k pozadí stacku:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Path to table background:</source>
|
<source>Path to table background:</source>
|
||||||
<translation type="vanished">Cesta k pozadí stolu:</translation>
|
<translation type="obsolete">Cesta k pozadí stolu:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Path to player info background:</source>
|
<source>Path to player info background:</source>
|
||||||
<translation type="vanished">Cesta k pozadí informací o uživateli:</translation>
|
<translation type="obsolete">Cesta k pozadí informací o uživateli:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Path to picture of card back:</source>
|
<source>Path to picture of card back:</source>
|
||||||
<translation type="vanished">Cesta k rubu karet:</translation>
|
<translation type="obsolete">Cesta k rubu karet:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dlg_settings.cpp" line="366"/>
|
<location filename="../src/dlg_settings.cpp" line="366"/>
|
||||||
|
@ -1063,7 +1063,7 @@ This is only saved for moderators and cannot be seen by the banned person.</sour
|
||||||
<name>DeckEditorSettingsPage</name>
|
<name>DeckEditorSettingsPage</name>
|
||||||
<message>
|
<message>
|
||||||
<source>Enable &price tag feature (using data from blacklotusproject.com)</source>
|
<source>Enable &price tag feature (using data from blacklotusproject.com)</source>
|
||||||
<translation type="vanished">&Povolit zobrazovaní cen (použijí se data z blacklotusproject.com)</translation>
|
<translation type="obsolete">&Povolit zobrazovaní cen (použijí se data z blacklotusproject.com)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dlg_settings.cpp" line="600"/>
|
<location filename="../src/dlg_settings.cpp" line="600"/>
|
||||||
|
@ -1202,30 +1202,35 @@ This is only saved for moderators and cannot be seen by the banned person.</sour
|
||||||
<context>
|
<context>
|
||||||
<name>DlgConnect</name>
|
<name>DlgConnect</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dlg_connect.cpp" line="15"/>
|
<location filename="../src/dlg_connect.cpp" line="17"/>
|
||||||
<source>&Host:</source>
|
<source>&Host:</source>
|
||||||
<translation>&Hostitel:</translation>
|
<translation>&Hostitel:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dlg_connect.cpp" line="19"/>
|
<location filename="../src/dlg_connect.cpp" line="21"/>
|
||||||
<source>&Port:</source>
|
<source>&Port:</source>
|
||||||
<translation>&Port:</translation>
|
<translation>&Port:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dlg_connect.cpp" line="23"/>
|
<location filename="../src/dlg_connect.cpp" line="25"/>
|
||||||
<source>Player &name:</source>
|
<source>Player &name:</source>
|
||||||
<translation>Jméno &hráče:</translation>
|
<translation>Jméno &hráče:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dlg_connect.cpp" line="27"/>
|
<location filename="../src/dlg_connect.cpp" line="29"/>
|
||||||
<source>P&assword:</source>
|
<source>P&assword:</source>
|
||||||
<translation>H&eslo:</translation>
|
<translation>H&eslo:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dlg_connect.cpp" line="32"/>
|
<location filename="../src/dlg_connect.cpp" line="34"/>
|
||||||
<source>&Save password</source>
|
<source>&Save password</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/dlg_connect.cpp" line="37"/>
|
||||||
|
<source>A&uto connect at start</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>&OK</source>
|
<source>&OK</source>
|
||||||
<translation type="obsolete">&OK</translation>
|
<translation type="obsolete">&OK</translation>
|
||||||
|
@ -1235,7 +1240,7 @@ This is only saved for moderators and cannot be seen by the banned person.</sour
|
||||||
<translation type="obsolete">&Zrušit</translation>
|
<translation type="obsolete">&Zrušit</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dlg_connect.cpp" line="55"/>
|
<location filename="../src/dlg_connect.cpp" line="71"/>
|
||||||
<source>Connect to server</source>
|
<source>Connect to server</source>
|
||||||
<translation>Připojit k serveru</translation>
|
<translation>Připojit k serveru</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -1636,7 +1641,7 @@ This is only saved for moderators and cannot be seen by the banned person.</sour
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Your card database is invalid. Would you like to go back and set the correct path?</source>
|
<source>Your card database is invalid. Would you like to go back and set the correct path?</source>
|
||||||
<translation type="vanished">Cesta k databázi je neplatná. Chcete se vrátit a nastavit správnou?</translation>
|
<translation type="obsolete">Cesta k databázi je neplatná. Chcete se vrátit a nastavit správnou?</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dlg_settings.cpp" line="776"/>
|
<location filename="../src/dlg_settings.cpp" line="776"/>
|
||||||
|
@ -2022,7 +2027,7 @@ Would you like to change your database location setting?</source>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Path to card database:</source>
|
<source>Path to card database:</source>
|
||||||
<translation type="vanished">Karetní databáze:</translation>
|
<translation type="obsolete">Karetní databáze:</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
@ -2141,7 +2146,7 @@ Reason for shutdown: %1</source>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Czech:</source>
|
<source>Czech:</source>
|
||||||
<translation type="vanished">Čeština:</translation>
|
<translation type="obsolete">Čeština:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Slovak:</source>
|
<source>Slovak:</source>
|
||||||
|
@ -2204,7 +2209,7 @@ Reason for shutdown: %1</source>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Invalid login data.</source>
|
<source>Invalid login data.</source>
|
||||||
<translation type="vanished">Nesprávné údaje uživatele.</translation>
|
<translation type="obsolete">Nesprávné údaje uživatele.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/window_main.cpp" line="242"/>
|
<location filename="../src/window_main.cpp" line="242"/>
|
||||||
|
@ -2518,12 +2523,12 @@ Lokální verze je %1, verze serveru je %2.</translation>
|
||||||
<message>
|
<message>
|
||||||
<source>%1 has loaded a deck (%2).</source>
|
<source>%1 has loaded a deck (%2).</source>
|
||||||
<comment>female</comment>
|
<comment>female</comment>
|
||||||
<translation type="vanished">%1 nahrál balíček %2.</translation>
|
<translation type="obsolete">%1 nahrál balíček %2.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>%1 has loaded a deck (%2).</source>
|
<source>%1 has loaded a deck (%2).</source>
|
||||||
<comment>male</comment>
|
<comment>male</comment>
|
||||||
<translation type="vanished">%1 nahrál balíček %2.</translation>
|
<translation type="obsolete">%1 nahrál balíček %2.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/messagelogwidget.cpp" line="93"/>
|
<location filename="../src/messagelogwidget.cpp" line="93"/>
|
||||||
|
@ -4624,7 +4629,7 @@ Lokální verze je %1, verze serveru je %2.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Administration</source>
|
<source>Administration</source>
|
||||||
<translation type="vanished">Administrace</translation>
|
<translation type="obsolete">Administrace</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
@ -4933,7 +4938,7 @@ Prosím vložte jméno:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Deck storage</source>
|
<source>Deck storage</source>
|
||||||
<translation type="vanished">Uložiště balíčků</translation>
|
<translation type="obsolete">Uložiště balíčků</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
@ -5218,14 +5223,14 @@ Prosím vložte jméno:</translation>
|
||||||
<name>TabServer</name>
|
<name>TabServer</name>
|
||||||
<message>
|
<message>
|
||||||
<source>Server</source>
|
<source>Server</source>
|
||||||
<translation type="vanished">Server</translation>
|
<translation type="obsolete">Server</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>TabUserLists</name>
|
<name>TabUserLists</name>
|
||||||
<message>
|
<message>
|
||||||
<source>User lists</source>
|
<source>User lists</source>
|
||||||
<translation type="vanished">Seznam uživatelů</translation>
|
<translation type="obsolete">Seznam uživatelů</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/tab_userlists.cpp" line="48"/>
|
<location filename="../src/tab_userlists.cpp" line="48"/>
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<!DOCTYPE TS>
|
<!DOCTYPE TS>
|
||||||
<TS version="2.1" language="de_DE">
|
<TS version="2.0" language="de_DE">
|
||||||
<context>
|
<context>
|
||||||
<name></name>
|
<name></name>
|
||||||
<message>
|
<message>
|
||||||
|
@ -66,23 +66,23 @@
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Path to hand background:</source>
|
<source>Path to hand background:</source>
|
||||||
<translation type="vanished">Hintergrundbild für die Hand:</translation>
|
<translation type="obsolete">Hintergrundbild für die Hand:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Path to stack background:</source>
|
<source>Path to stack background:</source>
|
||||||
<translation type="vanished">Hintergrundbild für den Stapel:</translation>
|
<translation type="obsolete">Hintergrundbild für den Stapel:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Path to table background:</source>
|
<source>Path to table background:</source>
|
||||||
<translation type="vanished">Hintergrundbild für das Spielfeld:</translation>
|
<translation type="obsolete">Hintergrundbild für das Spielfeld:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Path to player info background:</source>
|
<source>Path to player info background:</source>
|
||||||
<translation type="vanished">Hintergrundbild für den Spielerbereich:</translation>
|
<translation type="obsolete">Hintergrundbild für den Spielerbereich:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Path to picture of card back:</source>
|
<source>Path to picture of card back:</source>
|
||||||
<translation type="vanished">Pfad zum Bild der Kartenrückseite:</translation>
|
<translation type="obsolete">Pfad zum Bild der Kartenrückseite:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dlg_settings.cpp" line="366"/>
|
<location filename="../src/dlg_settings.cpp" line="366"/>
|
||||||
|
@ -1384,7 +1384,7 @@ Dies wird nur für Moderatoren gespeichert und kann von der gebannten Person nic
|
||||||
<name>DeckEditorSettingsPage</name>
|
<name>DeckEditorSettingsPage</name>
|
||||||
<message>
|
<message>
|
||||||
<source>Enable &price tag feature (using data from blacklotusproject.com)</source>
|
<source>Enable &price tag feature (using data from blacklotusproject.com)</source>
|
||||||
<translation type="vanished">Karten&preisfunktionen anschalten (benutzt Daten von blacklotusproject.com)</translation>
|
<translation type="obsolete">Karten&preisfunktionen anschalten (benutzt Daten von blacklotusproject.com)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dlg_settings.cpp" line="600"/>
|
<location filename="../src/dlg_settings.cpp" line="600"/>
|
||||||
|
@ -1545,30 +1545,35 @@ Dies wird nur für Moderatoren gespeichert und kann von der gebannten Person nic
|
||||||
<context>
|
<context>
|
||||||
<name>DlgConnect</name>
|
<name>DlgConnect</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dlg_connect.cpp" line="15"/>
|
<location filename="../src/dlg_connect.cpp" line="17"/>
|
||||||
<source>&Host:</source>
|
<source>&Host:</source>
|
||||||
<translation>&Server:</translation>
|
<translation>&Server:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dlg_connect.cpp" line="19"/>
|
<location filename="../src/dlg_connect.cpp" line="21"/>
|
||||||
<source>&Port:</source>
|
<source>&Port:</source>
|
||||||
<translation>&Port:</translation>
|
<translation>&Port:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dlg_connect.cpp" line="23"/>
|
<location filename="../src/dlg_connect.cpp" line="25"/>
|
||||||
<source>Player &name:</source>
|
<source>Player &name:</source>
|
||||||
<translation>Spieler&name:</translation>
|
<translation>Spieler&name:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dlg_connect.cpp" line="27"/>
|
<location filename="../src/dlg_connect.cpp" line="29"/>
|
||||||
<source>P&assword:</source>
|
<source>P&assword:</source>
|
||||||
<translation>P&asswort:</translation>
|
<translation>P&asswort:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dlg_connect.cpp" line="32"/>
|
<location filename="../src/dlg_connect.cpp" line="34"/>
|
||||||
<source>&Save password</source>
|
<source>&Save password</source>
|
||||||
<translation>Passwort &speichern</translation>
|
<translation>Passwort &speichern</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/dlg_connect.cpp" line="37"/>
|
||||||
|
<source>A&uto connect at start</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>&OK</source>
|
<source>&OK</source>
|
||||||
<translation type="obsolete">&OK</translation>
|
<translation type="obsolete">&OK</translation>
|
||||||
|
@ -1578,7 +1583,7 @@ Dies wird nur für Moderatoren gespeichert und kann von der gebannten Person nic
|
||||||
<translation type="obsolete">&Abbruch</translation>
|
<translation type="obsolete">&Abbruch</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dlg_connect.cpp" line="55"/>
|
<location filename="../src/dlg_connect.cpp" line="71"/>
|
||||||
<source>Connect to server</source>
|
<source>Connect to server</source>
|
||||||
<translation>Verbinde zum Server</translation>
|
<translation>Verbinde zum Server</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -2030,7 +2035,7 @@ Dies wird nur für Moderatoren gespeichert und kann von der gebannten Person nic
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Your card database is invalid. Would you like to go back and set the correct path?</source>
|
<source>Your card database is invalid. Would you like to go back and set the correct path?</source>
|
||||||
<translation type="vanished">Ihre Kartendatenbank ist ungültig. Möchten Sie zurückgehen und den korrekten Pfad einstellen?</translation>
|
<translation type="obsolete">Ihre Kartendatenbank ist ungültig. Möchten Sie zurückgehen und den korrekten Pfad einstellen?</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dlg_settings.cpp" line="776"/>
|
<location filename="../src/dlg_settings.cpp" line="776"/>
|
||||||
|
@ -2684,11 +2689,11 @@ Would you like to change your database location setting?</source>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Path to card database:</source>
|
<source>Path to card database:</source>
|
||||||
<translation type="vanished">Pfad zur Kartendatenbank:</translation>
|
<translation type="obsolete">Pfad zur Kartendatenbank:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Path to token database:</source>
|
<source>Path to token database:</source>
|
||||||
<translation type="vanished">Pfad zur Spielsteindatenbank:</translation>
|
<translation type="obsolete">Pfad zur Spielsteindatenbank:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dlg_settings.cpp" line="39"/>
|
<location filename="../src/dlg_settings.cpp" line="39"/>
|
||||||
|
@ -2842,7 +2847,7 @@ Grund für die Abschaltung: %1</numerusform>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Czech:</source>
|
<source>Czech:</source>
|
||||||
<translation type="vanished">Tschechisch:</translation>
|
<translation type="obsolete">Tschechisch:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/window_main.cpp" line="228"/>
|
<location filename="../src/window_main.cpp" line="228"/>
|
||||||
|
@ -2904,7 +2909,7 @@ Grund für die Abschaltung: %1</numerusform>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Invalid login data.</source>
|
<source>Invalid login data.</source>
|
||||||
<translation type="vanished">Ungültige Anmeldedaten.</translation>
|
<translation type="obsolete">Ungültige Anmeldedaten.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/window_main.cpp" line="245"/>
|
<location filename="../src/window_main.cpp" line="245"/>
|
||||||
|
@ -3709,12 +3714,12 @@ Lokale Version ist %1, Serverversion ist %2.</translation>
|
||||||
<message>
|
<message>
|
||||||
<source>%1 has loaded a deck (%2).</source>
|
<source>%1 has loaded a deck (%2).</source>
|
||||||
<comment>female</comment>
|
<comment>female</comment>
|
||||||
<translation type="vanished">%1 hat ein Deck geladen (%2).</translation>
|
<translation type="obsolete">%1 hat ein Deck geladen (%2).</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>%1 has loaded a deck (%2).</source>
|
<source>%1 has loaded a deck (%2).</source>
|
||||||
<comment>male</comment>
|
<comment>male</comment>
|
||||||
<translation type="vanished">%1 hat ein Deck geladen (%2).</translation>
|
<translation type="obsolete">%1 hat ein Deck geladen (%2).</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/messagelogwidget.cpp" line="93"/>
|
<location filename="../src/messagelogwidget.cpp" line="93"/>
|
||||||
|
@ -4985,7 +4990,7 @@ Lokale Version ist %1, Serverversion ist %2.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Ctrl+H</source>
|
<source>Ctrl+H</source>
|
||||||
<translation type="vanished">Ctrl+H</translation>
|
<translation type="obsolete">Ctrl+H</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/player.cpp" line="648"/>
|
<location filename="../src/player.cpp" line="648"/>
|
||||||
|
@ -5652,11 +5657,11 @@ Lokale Version ist %1, Serverversion ist %2.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Cockatrice decks (*.cod)</source>
|
<source>Cockatrice decks (*.cod)</source>
|
||||||
<translation type="vanished">Cockatrice Decks (*.cod)</translation>
|
<translation type="obsolete">Cockatrice Decks (*.cod)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Plain text decks (*.dec *.mwDeck)</source>
|
<source>Plain text decks (*.dec *.mwDeck)</source>
|
||||||
<translation type="vanished">Text Decks (*.dec *.mwDeck)</translation>
|
<translation type="obsolete">Text Decks (*.dec *.mwDeck)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/deck_loader.cpp" line="8"/>
|
<location filename="../src/deck_loader.cpp" line="8"/>
|
||||||
|
@ -5792,11 +5797,11 @@ Lokale Version ist %1, Serverversion ist %2.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>&OK</source>
|
<source>&OK</source>
|
||||||
<translation type="vanished">&OK</translation>
|
<translation type="obsolete">&OK</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>&Cancel</source>
|
<source>&Cancel</source>
|
||||||
<translation type="vanished">&Abbrechen</translation>
|
<translation type="obsolete">&Abbrechen</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/tab_admin.cpp" line="40"/>
|
<location filename="../src/tab_admin.cpp" line="40"/>
|
||||||
|
@ -5847,7 +5852,7 @@ Lokale Version ist %1, Serverversion ist %2.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Administration</source>
|
<source>Administration</source>
|
||||||
<translation type="vanished">Wartung</translation>
|
<translation type="obsolete">Wartung</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
@ -5897,7 +5902,7 @@ Lokale Version ist %1, Serverversion ist %2.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>&Search...</source>
|
<source>&Search...</source>
|
||||||
<translation type="vanished">&Suchen...</translation>
|
<translation type="obsolete">&Suchen...</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/tab_deck_editor.cpp" line="293"/>
|
<location filename="../src/tab_deck_editor.cpp" line="293"/>
|
||||||
|
@ -5976,11 +5981,11 @@ Lokale Version ist %1, Serverversion ist %2.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Return</source>
|
<source>Return</source>
|
||||||
<translation type="vanished">Return</translation>
|
<translation type="obsolete">Return</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Enter</source>
|
<source>Enter</source>
|
||||||
<translation type="vanished">Enter</translation>
|
<translation type="obsolete">Enter</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/tab_deck_editor.cpp" line="315"/>
|
<location filename="../src/tab_deck_editor.cpp" line="315"/>
|
||||||
|
@ -5989,11 +5994,11 @@ Lokale Version ist %1, Serverversion ist %2.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Ctrl+Return</source>
|
<source>Ctrl+Return</source>
|
||||||
<translation type="vanished">Ctrl+Return</translation>
|
<translation type="obsolete">Ctrl+Return</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Ctrl+Enter</source>
|
<source>Ctrl+Enter</source>
|
||||||
<translation type="vanished">Ctrl+Enter</translation>
|
<translation type="obsolete">Ctrl+Enter</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/tab_deck_editor.cpp" line="292"/>
|
<location filename="../src/tab_deck_editor.cpp" line="292"/>
|
||||||
|
@ -6179,7 +6184,7 @@ Bitte geben Sie einen Namen ein:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Deck storage</source>
|
<source>Deck storage</source>
|
||||||
<translation type="vanished">Deckspeicherplatz</translation>
|
<translation type="obsolete">Deckspeicherplatz</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
@ -6456,7 +6461,7 @@ Bitte geben Sie einen Namen ein:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Game replays</source>
|
<source>Game replays</source>
|
||||||
<translation type="vanished">Replays</translation>
|
<translation type="obsolete">Replays</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
@ -6504,7 +6509,7 @@ Bitte geben Sie einen Namen ein:</translation>
|
||||||
<name>TabServer</name>
|
<name>TabServer</name>
|
||||||
<message>
|
<message>
|
||||||
<source>Server</source>
|
<source>Server</source>
|
||||||
<translation type="vanished">Server</translation>
|
<translation type="obsolete">Server</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
@ -6526,7 +6531,7 @@ Bitte geben Sie einen Namen ein:</translation>
|
||||||
<name>TabUserLists</name>
|
<name>TabUserLists</name>
|
||||||
<message>
|
<message>
|
||||||
<source>User lists</source>
|
<source>User lists</source>
|
||||||
<translation type="vanished">Benutzerlisten</translation>
|
<translation type="obsolete">Benutzerlisten</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/tab_userlists.cpp" line="48"/>
|
<location filename="../src/tab_userlists.cpp" line="48"/>
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<!DOCTYPE TS>
|
<!DOCTYPE TS>
|
||||||
<TS version="2.1" language="en_US">
|
<TS version="2.0" language="en_US">
|
||||||
<context>
|
<context>
|
||||||
<name>AbstractCounter</name>
|
<name>AbstractCounter</name>
|
||||||
<message>
|
<message>
|
||||||
|
@ -725,32 +725,37 @@ This is only saved for moderators and cannot be seen by the banned person.</sour
|
||||||
<context>
|
<context>
|
||||||
<name>DlgConnect</name>
|
<name>DlgConnect</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dlg_connect.cpp" line="15"/>
|
<location filename="../src/dlg_connect.cpp" line="17"/>
|
||||||
<source>&Host:</source>
|
<source>&Host:</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dlg_connect.cpp" line="19"/>
|
<location filename="../src/dlg_connect.cpp" line="21"/>
|
||||||
<source>&Port:</source>
|
<source>&Port:</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dlg_connect.cpp" line="23"/>
|
<location filename="../src/dlg_connect.cpp" line="25"/>
|
||||||
<source>Player &name:</source>
|
<source>Player &name:</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dlg_connect.cpp" line="27"/>
|
<location filename="../src/dlg_connect.cpp" line="29"/>
|
||||||
<source>P&assword:</source>
|
<source>P&assword:</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dlg_connect.cpp" line="32"/>
|
<location filename="../src/dlg_connect.cpp" line="34"/>
|
||||||
<source>&Save password</source>
|
<source>&Save password</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dlg_connect.cpp" line="55"/>
|
<location filename="../src/dlg_connect.cpp" line="37"/>
|
||||||
|
<source>A&uto connect at start</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/dlg_connect.cpp" line="71"/>
|
||||||
<source>Connect to server</source>
|
<source>Connect to server</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<!DOCTYPE TS>
|
<!DOCTYPE TS>
|
||||||
<TS version="2.1" language="es_ES">
|
<TS version="2.0" language="es_ES">
|
||||||
<context>
|
<context>
|
||||||
<name>AbstractCounter</name>
|
<name>AbstractCounter</name>
|
||||||
<message>
|
<message>
|
||||||
|
@ -43,23 +43,23 @@
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Path to hand background:</source>
|
<source>Path to hand background:</source>
|
||||||
<translation type="vanished">Ruta a la imagen de fondo de la mano:</translation>
|
<translation type="obsolete">Ruta a la imagen de fondo de la mano:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Path to stack background:</source>
|
<source>Path to stack background:</source>
|
||||||
<translation type="vanished">Ruta a la imagen de fondo de la pila:</translation>
|
<translation type="obsolete">Ruta a la imagen de fondo de la pila:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Path to table background:</source>
|
<source>Path to table background:</source>
|
||||||
<translation type="vanished">Ruta a la imagen de fondo de la mesa:</translation>
|
<translation type="obsolete">Ruta a la imagen de fondo de la mesa:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Path to player info background:</source>
|
<source>Path to player info background:</source>
|
||||||
<translation type="vanished">Ruta a la imagen de fondo de la información del jugador:</translation>
|
<translation type="obsolete">Ruta a la imagen de fondo de la información del jugador:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Path to picture of card back:</source>
|
<source>Path to picture of card back:</source>
|
||||||
<translation type="vanished">Ruta al reverso de las cartas:</translation>
|
<translation type="obsolete">Ruta al reverso de las cartas:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dlg_settings.cpp" line="366"/>
|
<location filename="../src/dlg_settings.cpp" line="366"/>
|
||||||
|
@ -1315,7 +1315,7 @@ Se almacenará unicamente para moderadores y no podrá ser visto por la persona
|
||||||
<name>DeckEditorSettingsPage</name>
|
<name>DeckEditorSettingsPage</name>
|
||||||
<message>
|
<message>
|
||||||
<source>Enable &price tag feature (using data from blacklotusproject.com)</source>
|
<source>Enable &price tag feature (using data from blacklotusproject.com)</source>
|
||||||
<translation type="vanished">Activar tag de &precios (usando datos de blacklotusproject.com)</translation>
|
<translation type="obsolete">Activar tag de &precios (usando datos de blacklotusproject.com)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dlg_settings.cpp" line="600"/>
|
<location filename="../src/dlg_settings.cpp" line="600"/>
|
||||||
|
@ -1461,30 +1461,35 @@ Se almacenará unicamente para moderadores y no podrá ser visto por la persona
|
||||||
<context>
|
<context>
|
||||||
<name>DlgConnect</name>
|
<name>DlgConnect</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dlg_connect.cpp" line="15"/>
|
<location filename="../src/dlg_connect.cpp" line="17"/>
|
||||||
<source>&Host:</source>
|
<source>&Host:</source>
|
||||||
<translation>&Dirección:</translation>
|
<translation>&Dirección:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dlg_connect.cpp" line="19"/>
|
<location filename="../src/dlg_connect.cpp" line="21"/>
|
||||||
<source>&Port:</source>
|
<source>&Port:</source>
|
||||||
<translation>&Puerto:</translation>
|
<translation>&Puerto:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dlg_connect.cpp" line="23"/>
|
<location filename="../src/dlg_connect.cpp" line="25"/>
|
||||||
<source>Player &name:</source>
|
<source>Player &name:</source>
|
||||||
<translation>&Nombre del jugador:</translation>
|
<translation>&Nombre del jugador:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dlg_connect.cpp" line="27"/>
|
<location filename="../src/dlg_connect.cpp" line="29"/>
|
||||||
<source>P&assword:</source>
|
<source>P&assword:</source>
|
||||||
<translation>&Contraseña:</translation>
|
<translation>&Contraseña:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dlg_connect.cpp" line="32"/>
|
<location filename="../src/dlg_connect.cpp" line="34"/>
|
||||||
<source>&Save password</source>
|
<source>&Save password</source>
|
||||||
<translation>&Guardar contraseña</translation>
|
<translation>&Guardar contraseña</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/dlg_connect.cpp" line="37"/>
|
||||||
|
<source>A&uto connect at start</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>&OK</source>
|
<source>&OK</source>
|
||||||
<translation type="obsolete">&Aceptar</translation>
|
<translation type="obsolete">&Aceptar</translation>
|
||||||
|
@ -1494,7 +1499,7 @@ Se almacenará unicamente para moderadores y no podrá ser visto por la persona
|
||||||
<translation type="obsolete">&Cancelar</translation>
|
<translation type="obsolete">&Cancelar</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dlg_connect.cpp" line="55"/>
|
<location filename="../src/dlg_connect.cpp" line="71"/>
|
||||||
<source>Connect to server</source>
|
<source>Connect to server</source>
|
||||||
<translation>Conectar con el servidor</translation>
|
<translation>Conectar con el servidor</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -1911,7 +1916,7 @@ Se almacenará unicamente para moderadores y no podrá ser visto por la persona
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Your card database is invalid. Would you like to go back and set the correct path?</source>
|
<source>Your card database is invalid. Would you like to go back and set the correct path?</source>
|
||||||
<translation type="vanished">Tu base de datos de cartas es invalida. ¿Deseas volver y seleccionar la ruta correcta?</translation>
|
<translation type="obsolete">Tu base de datos de cartas es invalida. ¿Deseas volver y seleccionar la ruta correcta?</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dlg_settings.cpp" line="776"/>
|
<location filename="../src/dlg_settings.cpp" line="776"/>
|
||||||
|
@ -2299,11 +2304,11 @@ Would you like to change your database location setting?</source>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Path to card database:</source>
|
<source>Path to card database:</source>
|
||||||
<translation type="vanished">Ruta a la base de datos de las cartas:</translation>
|
<translation type="obsolete">Ruta a la base de datos de las cartas:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Path to token database:</source>
|
<source>Path to token database:</source>
|
||||||
<translation type="vanished">Ruta a la base de datos de fichas:</translation>
|
<translation type="obsolete">Ruta a la base de datos de fichas:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dlg_settings.cpp" line="39"/>
|
<location filename="../src/dlg_settings.cpp" line="39"/>
|
||||||
|
@ -2457,7 +2462,7 @@ Motivo para la desconexión: %1</numerusform>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Czech:</source>
|
<source>Czech:</source>
|
||||||
<translation type="vanished">Checo:</translation>
|
<translation type="obsolete">Checo:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/window_main.cpp" line="228"/>
|
<location filename="../src/window_main.cpp" line="228"/>
|
||||||
|
@ -2519,7 +2524,7 @@ Motivo para la desconexión: %1</numerusform>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Invalid login data.</source>
|
<source>Invalid login data.</source>
|
||||||
<translation type="vanished">Datos de conexión invalidos.</translation>
|
<translation type="obsolete">Datos de conexión invalidos.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/window_main.cpp" line="245"/>
|
<location filename="../src/window_main.cpp" line="245"/>
|
||||||
|
@ -3107,12 +3112,12 @@ La versión local es %1, la versión remota es %2.</translation>
|
||||||
<message>
|
<message>
|
||||||
<source>%1 has loaded a deck (%2).</source>
|
<source>%1 has loaded a deck (%2).</source>
|
||||||
<comment>female</comment>
|
<comment>female</comment>
|
||||||
<translation type="vanished">%1 ha cargado el mazo %2.</translation>
|
<translation type="obsolete">%1 ha cargado el mazo %2.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>%1 has loaded a deck (%2).</source>
|
<source>%1 has loaded a deck (%2).</source>
|
||||||
<comment>male</comment>
|
<comment>male</comment>
|
||||||
<translation type="vanished">%1 ha cargado el mazo %2.</translation>
|
<translation type="obsolete">%1 ha cargado el mazo %2.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/messagelogwidget.cpp" line="93"/>
|
<location filename="../src/messagelogwidget.cpp" line="93"/>
|
||||||
|
@ -4482,7 +4487,7 @@ La versión local es %1, la versión remota es %2.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Ctrl+H</source>
|
<source>Ctrl+H</source>
|
||||||
<translation type="vanished">Ctrl+H</translation>
|
<translation type="obsolete">Ctrl+H</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/player.cpp" line="648"/>
|
<location filename="../src/player.cpp" line="648"/>
|
||||||
|
@ -4782,11 +4787,11 @@ La versión local es %1, la versión remota es %2.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Cockatrice decks (*.cod)</source>
|
<source>Cockatrice decks (*.cod)</source>
|
||||||
<translation type="vanished">Mazos de Cockatrice (*.cod)</translation>
|
<translation type="obsolete">Mazos de Cockatrice (*.cod)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Plain text decks (*.dec *.mwDeck)</source>
|
<source>Plain text decks (*.dec *.mwDeck)</source>
|
||||||
<translation type="vanished">Archivos de texto plano (*.dec *.mwDeck)</translation>
|
<translation type="obsolete">Archivos de texto plano (*.dec *.mwDeck)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/deck_loader.cpp" line="8"/>
|
<location filename="../src/deck_loader.cpp" line="8"/>
|
||||||
|
@ -4922,11 +4927,11 @@ La versión local es %1, la versión remota es %2.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>&OK</source>
|
<source>&OK</source>
|
||||||
<translation type="vanished">&Aceptar</translation>
|
<translation type="obsolete">&Aceptar</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>&Cancel</source>
|
<source>&Cancel</source>
|
||||||
<translation type="vanished">&Cancelar</translation>
|
<translation type="obsolete">&Cancelar</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/tab_admin.cpp" line="40"/>
|
<location filename="../src/tab_admin.cpp" line="40"/>
|
||||||
|
@ -4973,7 +4978,7 @@ La versión local es %1, la versión remota es %2.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Administration</source>
|
<source>Administration</source>
|
||||||
<translation type="vanished">Administración</translation>
|
<translation type="obsolete">Administración</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
@ -4999,7 +5004,7 @@ La versión local es %1, la versión remota es %2.</translation>
|
||||||
<name>TabDeckEditor</name>
|
<name>TabDeckEditor</name>
|
||||||
<message>
|
<message>
|
||||||
<source>&Search...</source>
|
<source>&Search...</source>
|
||||||
<translation type="vanished">&Buscar...</translation>
|
<translation type="obsolete">&Buscar...</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/tab_deck_editor.cpp" line="292"/>
|
<location filename="../src/tab_deck_editor.cpp" line="292"/>
|
||||||
|
@ -5098,11 +5103,11 @@ La versión local es %1, la versión remota es %2.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Return</source>
|
<source>Return</source>
|
||||||
<translation type="vanished">Return</translation>
|
<translation type="obsolete">Return</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Enter</source>
|
<source>Enter</source>
|
||||||
<translation type="vanished">Enter</translation>
|
<translation type="obsolete">Enter</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/tab_deck_editor.cpp" line="315"/>
|
<location filename="../src/tab_deck_editor.cpp" line="315"/>
|
||||||
|
@ -5111,11 +5116,11 @@ La versión local es %1, la versión remota es %2.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Ctrl+Return</source>
|
<source>Ctrl+Return</source>
|
||||||
<translation type="vanished">Ctrl+Return</translation>
|
<translation type="obsolete">Ctrl+Return</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Ctrl+Enter</source>
|
<source>Ctrl+Enter</source>
|
||||||
<translation type="vanished">Ctrl+Enter</translation>
|
<translation type="obsolete">Ctrl+Enter</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/tab_deck_editor.cpp" line="317"/>
|
<location filename="../src/tab_deck_editor.cpp" line="317"/>
|
||||||
|
@ -5301,7 +5306,7 @@ Por favor, introduzca un nombre:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Deck storage</source>
|
<source>Deck storage</source>
|
||||||
<translation type="vanished">Almacen de mazos</translation>
|
<translation type="obsolete">Almacen de mazos</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
@ -5550,7 +5555,7 @@ Por favor, introduzca un nombre:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Game replays</source>
|
<source>Game replays</source>
|
||||||
<translation type="vanished">Replays de partidas</translation>
|
<translation type="obsolete">Replays de partidas</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
@ -5598,14 +5603,14 @@ Por favor, introduzca un nombre:</translation>
|
||||||
<name>TabServer</name>
|
<name>TabServer</name>
|
||||||
<message>
|
<message>
|
||||||
<source>Server</source>
|
<source>Server</source>
|
||||||
<translation type="vanished">Servidor</translation>
|
<translation type="obsolete">Servidor</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>TabUserLists</name>
|
<name>TabUserLists</name>
|
||||||
<message>
|
<message>
|
||||||
<source>User lists</source>
|
<source>User lists</source>
|
||||||
<translation type="vanished">Lista de usuarios</translation>
|
<translation type="obsolete">Lista de usuarios</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/tab_userlists.cpp" line="48"/>
|
<location filename="../src/tab_userlists.cpp" line="48"/>
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<!DOCTYPE TS>
|
<!DOCTYPE TS>
|
||||||
<TS version="2.1" language="fr_FR">
|
<TS version="2.0" language="fr_FR">
|
||||||
<context>
|
<context>
|
||||||
<name>AbstractCounter</name>
|
<name>AbstractCounter</name>
|
||||||
<message>
|
<message>
|
||||||
|
@ -55,11 +55,35 @@
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Path to player info background:</source>
|
<source>Path to player info background:</source>
|
||||||
<translation>Chemin vers l'image de fond d'affichage d'informations:</translation>
|
<translation>Chemin vers l'image de fond d'informations joueur:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Path to picture of card back:</source>
|
<source>Path to picture of card back:</source>
|
||||||
<translation>Chemin vers l'image de dos des cartes:</translation>
|
<translation>Chemin vers l'image de dos des cartes:</translation>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/dlg_settings.cpp" line="366"/>
|
||||||
|
<source>Hand background:</source>
|
||||||
|
<translation>Image de fond de la zone de main:</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/dlg_settings.cpp" line="367"/>
|
||||||
|
<source>Stack background:</source>
|
||||||
|
<translation>Image de fond de la pile:</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/dlg_settings.cpp" line="368"/>
|
||||||
|
<source>Table background:</source>
|
||||||
|
<translation>Image de fond de la zone de jeu:</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/dlg_settings.cpp" line="369"/>
|
||||||
|
<source>Player info background:</source>
|
||||||
|
<translation>Image de fond de la zone d'informations joueur:</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/dlg_settings.cpp" line="370"/>
|
||||||
|
<source>Card back:</source>
|
||||||
|
<translation>Dos de carte:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dlg_settings.cpp" line="372"/>
|
<location filename="../src/dlg_settings.cpp" line="372"/>
|
||||||
|
@ -1154,7 +1178,7 @@ Cette information sera consultable uniquement par les modérateurs.</translation
|
||||||
<name>DeckEditorSettingsPage</name>
|
<name>DeckEditorSettingsPage</name>
|
||||||
<message>
|
<message>
|
||||||
<source>Enable &price tag feature (using data from blacklotusproject.com)</source>
|
<source>Enable &price tag feature (using data from blacklotusproject.com)</source>
|
||||||
<translation type="vanished">Activer le guide de &prix des cartes (source : blacklotusproject.com)</translation>
|
<translation type="obsolete">Activer le guide de &prix des cartes (source : blacklotusproject.com)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dlg_settings.cpp" line="600"/>
|
<location filename="../src/dlg_settings.cpp" line="600"/>
|
||||||
|
@ -1300,30 +1324,35 @@ Cette information sera consultable uniquement par les modérateurs.</translation
|
||||||
<context>
|
<context>
|
||||||
<name>DlgConnect</name>
|
<name>DlgConnect</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dlg_connect.cpp" line="15"/>
|
<location filename="../src/dlg_connect.cpp" line="17"/>
|
||||||
<source>&Host:</source>
|
<source>&Host:</source>
|
||||||
<translation>&Hôte:</translation>
|
<translation>&Hôte:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dlg_connect.cpp" line="19"/>
|
<location filename="../src/dlg_connect.cpp" line="21"/>
|
||||||
<source>&Port:</source>
|
<source>&Port:</source>
|
||||||
<translation>&Port:</translation>
|
<translation>&Port:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dlg_connect.cpp" line="23"/>
|
<location filename="../src/dlg_connect.cpp" line="25"/>
|
||||||
<source>Player &name:</source>
|
<source>Player &name:</source>
|
||||||
<translation>&Nom du joueur:</translation>
|
<translation>&Nom du joueur:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dlg_connect.cpp" line="27"/>
|
<location filename="../src/dlg_connect.cpp" line="29"/>
|
||||||
<source>P&assword:</source>
|
<source>P&assword:</source>
|
||||||
<translation>Mot de p&asse:</translation>
|
<translation>Mot de p&asse:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dlg_connect.cpp" line="32"/>
|
<location filename="../src/dlg_connect.cpp" line="34"/>
|
||||||
<source>&Save password</source>
|
<source>&Save password</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/dlg_connect.cpp" line="37"/>
|
||||||
|
<source>A&uto connect at start</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>&OK</source>
|
<source>&OK</source>
|
||||||
<translation type="obsolete">&OK</translation>
|
<translation type="obsolete">&OK</translation>
|
||||||
|
@ -1333,7 +1362,7 @@ Cette information sera consultable uniquement par les modérateurs.</translation
|
||||||
<translation type="obsolete">&Annuler</translation>
|
<translation type="obsolete">&Annuler</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dlg_connect.cpp" line="55"/>
|
<location filename="../src/dlg_connect.cpp" line="71"/>
|
||||||
<source>Connect to server</source>
|
<source>Connect to server</source>
|
||||||
<translation>Connexion au serveur</translation>
|
<translation>Connexion au serveur</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -1738,7 +1767,7 @@ Cette information sera consultable uniquement par les modérateurs.</translation
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Your card database is invalid. Would you like to go back and set the correct path?</source>
|
<source>Your card database is invalid. Would you like to go back and set the correct path?</source>
|
||||||
<translation type="vanished">Votre base de carte est invalide. Souhaitez-vous redéfinir le chemin d'accès?</translation>
|
<translation type="obsolete">Votre base de carte est invalide. Souhaitez-vous redéfinir le chemin d'accès?</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dlg_settings.cpp" line="776"/>
|
<location filename="../src/dlg_settings.cpp" line="776"/>
|
||||||
|
@ -2133,7 +2162,7 @@ Would you like to change your database location setting?</source>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Path to card database:</source>
|
<source>Path to card database:</source>
|
||||||
<translation type="vanished">Chemin vers la base de cartes:</translation>
|
<translation type="obsolete">Chemin vers la base de cartes:</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
@ -2229,7 +2258,7 @@ Would you like to change your database location setting?</source>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Invalid login data.</source>
|
<source>Invalid login data.</source>
|
||||||
<translation type="vanished">Information de connexion érronée.</translation>
|
<translation type="obsolete">Information de connexion érronée.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/window_main.cpp" line="250"/>
|
<location filename="../src/window_main.cpp" line="250"/>
|
||||||
|
@ -2312,7 +2341,7 @@ Raison de la fermeture : %1</numerusform>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Czech:</source>
|
<source>Czech:</source>
|
||||||
<translation type="vanished">Tchèque :</translation>
|
<translation type="obsolete">Tchèque :</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Slovak:</source>
|
<source>Slovak:</source>
|
||||||
|
@ -2961,12 +2990,12 @@ La version la plus récente est %1, l'ancienne version est %2.</translation
|
||||||
<message>
|
<message>
|
||||||
<source>%1 has loaded a deck (%2).</source>
|
<source>%1 has loaded a deck (%2).</source>
|
||||||
<comment>female</comment>
|
<comment>female</comment>
|
||||||
<translation type="vanished">%1 a chargé le deck %2.</translation>
|
<translation type="obsolete">%1 a chargé le deck %2.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>%1 has loaded a deck (%2).</source>
|
<source>%1 has loaded a deck (%2).</source>
|
||||||
<comment>male</comment>
|
<comment>male</comment>
|
||||||
<translation type="vanished">%1 a chargé le deck %2.</translation>
|
<translation type="obsolete">%1 a chargé le deck %2.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/messagelogwidget.cpp" line="93"/>
|
<location filename="../src/messagelogwidget.cpp" line="93"/>
|
||||||
|
@ -4750,11 +4779,11 @@ La version la plus récente est %1, l'ancienne version est %2.</translation
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>&OK</source>
|
<source>&OK</source>
|
||||||
<translation type="vanished">&OK</translation>
|
<translation type="obsolete">&OK</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>&Cancel</source>
|
<source>&Cancel</source>
|
||||||
<translation type="vanished">&Annuler</translation>
|
<translation type="obsolete">&Annuler</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/tab_admin.cpp" line="40"/>
|
<location filename="../src/tab_admin.cpp" line="40"/>
|
||||||
|
@ -4801,7 +4830,7 @@ La version la plus récente est %1, l'ancienne version est %2.</translation
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Administration</source>
|
<source>Administration</source>
|
||||||
<translation type="vanished">Administration</translation>
|
<translation type="obsolete">Administration</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
@ -5129,7 +5158,7 @@ Entrez un nom s'il vous plaît:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Deck storage</source>
|
<source>Deck storage</source>
|
||||||
<translation type="vanished">Stockage de deck</translation>
|
<translation type="obsolete">Stockage de deck</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
@ -5423,14 +5452,14 @@ Entrez un nom s'il vous plaît:</translation>
|
||||||
<name>TabServer</name>
|
<name>TabServer</name>
|
||||||
<message>
|
<message>
|
||||||
<source>Server</source>
|
<source>Server</source>
|
||||||
<translation type="vanished">Serveur</translation>
|
<translation type="obsolete">Serveur</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>TabUserLists</name>
|
<name>TabUserLists</name>
|
||||||
<message>
|
<message>
|
||||||
<source>User lists</source>
|
<source>User lists</source>
|
||||||
<translation type="vanished">Listes de l'utilisateur</translation>
|
<translation type="obsolete">Listes de l'utilisateur</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/tab_userlists.cpp" line="48"/>
|
<location filename="../src/tab_userlists.cpp" line="48"/>
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<!DOCTYPE TS>
|
<!DOCTYPE TS>
|
||||||
<TS version="2.1" language="en" sourcelanguage="en">
|
<TS version="2.0" language="en" sourcelanguage="en">
|
||||||
<context>
|
<context>
|
||||||
<name>AbstractCounter</name>
|
<name>AbstractCounter</name>
|
||||||
<message>
|
<message>
|
||||||
|
@ -755,30 +755,35 @@ This is only saved for moderators and cannot be seen by the banned person.</sour
|
||||||
<context>
|
<context>
|
||||||
<name>DlgConnect</name>
|
<name>DlgConnect</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dlg_connect.cpp" line="15"/>
|
<location filename="../src/dlg_connect.cpp" line="17"/>
|
||||||
<source>&Host:</source>
|
<source>&Host:</source>
|
||||||
<translation>Ò&stair:</translation>
|
<translation>Ò&stair:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dlg_connect.cpp" line="19"/>
|
<location filename="../src/dlg_connect.cpp" line="21"/>
|
||||||
<source>&Port:</source>
|
<source>&Port:</source>
|
||||||
<translation>&Port:</translation>
|
<translation>&Port:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dlg_connect.cpp" line="23"/>
|
<location filename="../src/dlg_connect.cpp" line="25"/>
|
||||||
<source>Player &name:</source>
|
<source>Player &name:</source>
|
||||||
<translation>&Ainm a' chluicheadair:</translation>
|
<translation>&Ainm a' chluicheadair:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dlg_connect.cpp" line="27"/>
|
<location filename="../src/dlg_connect.cpp" line="29"/>
|
||||||
<source>P&assword:</source>
|
<source>P&assword:</source>
|
||||||
<translation>&Facal-faire:</translation>
|
<translation>&Facal-faire:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dlg_connect.cpp" line="32"/>
|
<location filename="../src/dlg_connect.cpp" line="34"/>
|
||||||
<source>&Save password</source>
|
<source>&Save password</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/dlg_connect.cpp" line="37"/>
|
||||||
|
<source>A&uto connect at start</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>&OK</source>
|
<source>&OK</source>
|
||||||
<translation type="obsolete">&Ceart ma-thà</translation>
|
<translation type="obsolete">&Ceart ma-thà</translation>
|
||||||
|
@ -788,7 +793,7 @@ This is only saved for moderators and cannot be seen by the banned person.</sour
|
||||||
<translation type="obsolete">&Sguir dheth</translation>
|
<translation type="obsolete">&Sguir dheth</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dlg_connect.cpp" line="55"/>
|
<location filename="../src/dlg_connect.cpp" line="71"/>
|
||||||
<source>Connect to server</source>
|
<source>Connect to server</source>
|
||||||
<translation>Dèan ceangal ris an fhrithealaiche</translation>
|
<translation>Dèan ceangal ris an fhrithealaiche</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -3786,11 +3791,11 @@ Local version is %1, remote version is %2.</source>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>&OK</source>
|
<source>&OK</source>
|
||||||
<translation type="vanished">&Ceart ma-thà</translation>
|
<translation type="obsolete">&Ceart ma-thà</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>&Cancel</source>
|
<source>&Cancel</source>
|
||||||
<translation type="vanished">&Sguir dheth</translation>
|
<translation type="obsolete">&Sguir dheth</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/tab_admin.cpp" line="40"/>
|
<location filename="../src/tab_admin.cpp" line="40"/>
|
||||||
|
@ -4404,7 +4409,7 @@ Please enter a name:</source>
|
||||||
<name>TabServer</name>
|
<name>TabServer</name>
|
||||||
<message>
|
<message>
|
||||||
<source>Server</source>
|
<source>Server</source>
|
||||||
<translation type="vanished">Fhrithealaiche</translation>
|
<translation type="obsolete">Fhrithealaiche</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<!DOCTYPE TS>
|
<!DOCTYPE TS>
|
||||||
<TS version="2.1" language="it_IT">
|
<TS version="2.0" language="it_IT">
|
||||||
<context>
|
<context>
|
||||||
<name>AbstractCounter</name>
|
<name>AbstractCounter</name>
|
||||||
<message>
|
<message>
|
||||||
|
@ -43,23 +43,23 @@
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Path to hand background:</source>
|
<source>Path to hand background:</source>
|
||||||
<translation type="vanished">Percorso sfondo della mano:</translation>
|
<translation type="obsolete">Percorso sfondo della mano:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Path to stack background:</source>
|
<source>Path to stack background:</source>
|
||||||
<translation type="vanished">Percorso sfondo della pila:</translation>
|
<translation type="obsolete">Percorso sfondo della pila:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Path to table background:</source>
|
<source>Path to table background:</source>
|
||||||
<translation type="vanished">Percorso sfondo del tavolo:</translation>
|
<translation type="obsolete">Percorso sfondo del tavolo:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Path to player info background:</source>
|
<source>Path to player info background:</source>
|
||||||
<translation type="vanished">Percorso sfondo info giocatore:</translation>
|
<translation type="obsolete">Percorso sfondo info giocatore:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Path to picture of card back:</source>
|
<source>Path to picture of card back:</source>
|
||||||
<translation type="vanished">Percorso sfondo retro delle carte:</translation>
|
<translation type="obsolete">Percorso sfondo retro delle carte:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dlg_settings.cpp" line="366"/>
|
<location filename="../src/dlg_settings.cpp" line="366"/>
|
||||||
|
@ -959,7 +959,7 @@ Questo è solo visibile ai moderatori e non alla persona bannata.</translation>
|
||||||
<name>DeckEditorSettingsPage</name>
|
<name>DeckEditorSettingsPage</name>
|
||||||
<message>
|
<message>
|
||||||
<source>Enable &price tag feature (using data from blacklotusproject.com)</source>
|
<source>Enable &price tag feature (using data from blacklotusproject.com)</source>
|
||||||
<translation type="vanished">Abilita la &ricerca del costo (utilizzando i dati di blacklotusproject.com)</translation>
|
<translation type="obsolete">Abilita la &ricerca del costo (utilizzando i dati di blacklotusproject.com)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dlg_settings.cpp" line="600"/>
|
<location filename="../src/dlg_settings.cpp" line="600"/>
|
||||||
|
@ -1098,30 +1098,35 @@ Questo è solo visibile ai moderatori e non alla persona bannata.</translation>
|
||||||
<context>
|
<context>
|
||||||
<name>DlgConnect</name>
|
<name>DlgConnect</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dlg_connect.cpp" line="15"/>
|
<location filename="../src/dlg_connect.cpp" line="17"/>
|
||||||
<source>&Host:</source>
|
<source>&Host:</source>
|
||||||
<translation>&Host:</translation>
|
<translation>&Host:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dlg_connect.cpp" line="19"/>
|
<location filename="../src/dlg_connect.cpp" line="21"/>
|
||||||
<source>&Port:</source>
|
<source>&Port:</source>
|
||||||
<translation>&Porta:</translation>
|
<translation>&Porta:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dlg_connect.cpp" line="23"/>
|
<location filename="../src/dlg_connect.cpp" line="25"/>
|
||||||
<source>Player &name:</source>
|
<source>Player &name:</source>
|
||||||
<translation>Nome &Giocatore:</translation>
|
<translation>Nome &Giocatore:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dlg_connect.cpp" line="27"/>
|
<location filename="../src/dlg_connect.cpp" line="29"/>
|
||||||
<source>P&assword:</source>
|
<source>P&assword:</source>
|
||||||
<translation>P&assword:</translation>
|
<translation>P&assword:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dlg_connect.cpp" line="32"/>
|
<location filename="../src/dlg_connect.cpp" line="34"/>
|
||||||
<source>&Save password</source>
|
<source>&Save password</source>
|
||||||
<translation>&Salva password</translation>
|
<translation>&Salva password</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/dlg_connect.cpp" line="37"/>
|
||||||
|
<source>A&uto connect at start</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>&OK</source>
|
<source>&OK</source>
|
||||||
<translation type="obsolete">&OK</translation>
|
<translation type="obsolete">&OK</translation>
|
||||||
|
@ -1131,7 +1136,7 @@ Questo è solo visibile ai moderatori e non alla persona bannata.</translation>
|
||||||
<translation type="obsolete">&Annulla</translation>
|
<translation type="obsolete">&Annulla</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dlg_connect.cpp" line="55"/>
|
<location filename="../src/dlg_connect.cpp" line="71"/>
|
||||||
<source>Connect to server</source>
|
<source>Connect to server</source>
|
||||||
<translation>Connetti al server</translation>
|
<translation>Connetti al server</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -1532,7 +1537,7 @@ Questo è solo visibile ai moderatori e non alla persona bannata.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Your card database is invalid. Would you like to go back and set the correct path?</source>
|
<source>Your card database is invalid. Would you like to go back and set the correct path?</source>
|
||||||
<translation type="vanished">Il tuo database è invalido. Vuoi tornare indietro e impostare il percorso corretto?</translation>
|
<translation type="obsolete">Il tuo database è invalido. Vuoi tornare indietro e impostare il percorso corretto?</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dlg_settings.cpp" line="776"/>
|
<location filename="../src/dlg_settings.cpp" line="776"/>
|
||||||
|
@ -1922,11 +1927,11 @@ Would you like to change your database location setting?</source>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Path to card database:</source>
|
<source>Path to card database:</source>
|
||||||
<translation type="vanished">Percorso database delle carte:</translation>
|
<translation type="obsolete">Percorso database delle carte:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Path to token database:</source>
|
<source>Path to token database:</source>
|
||||||
<translation type="vanished">Percorso database pedine:</translation>
|
<translation type="obsolete">Percorso database pedine:</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
@ -2048,7 +2053,7 @@ Ragione dello spegnimento: %1</numerusform>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Czech:</source>
|
<source>Czech:</source>
|
||||||
<translation type="vanished">Ceco:</translation>
|
<translation type="obsolete">Ceco:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Slovak:</source>
|
<source>Slovak:</source>
|
||||||
|
@ -2111,7 +2116,7 @@ Ragione dello spegnimento: %1</numerusform>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Invalid login data.</source>
|
<source>Invalid login data.</source>
|
||||||
<translation type="vanished">Dati login non validi.</translation>
|
<translation type="obsolete">Dati login non validi.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/window_main.cpp" line="242"/>
|
<location filename="../src/window_main.cpp" line="242"/>
|
||||||
|
@ -2348,12 +2353,12 @@ La tua versione è la %1, la versione online è la %2.</translation>
|
||||||
<message>
|
<message>
|
||||||
<source>%1 has loaded a deck (%2).</source>
|
<source>%1 has loaded a deck (%2).</source>
|
||||||
<comment>female</comment>
|
<comment>female</comment>
|
||||||
<translation type="vanished">%1 ha aperto un mazzo %2.</translation>
|
<translation type="obsolete">%1 ha aperto un mazzo %2.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>%1 has loaded a deck (%2).</source>
|
<source>%1 has loaded a deck (%2).</source>
|
||||||
<comment>male</comment>
|
<comment>male</comment>
|
||||||
<translation type="vanished">%1 ha aperto un mazzo %2.</translation>
|
<translation type="obsolete">%1 ha aperto un mazzo %2.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/messagelogwidget.cpp" line="93"/>
|
<location filename="../src/messagelogwidget.cpp" line="93"/>
|
||||||
|
@ -3792,7 +3797,7 @@ La tua versione è la %1, la versione online è la %2.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Ctrl+H</source>
|
<source>Ctrl+H</source>
|
||||||
<translation type="vanished">Ctrl+H</translation>
|
<translation type="obsolete">Ctrl+H</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/player.cpp" line="647"/>
|
<location filename="../src/player.cpp" line="647"/>
|
||||||
|
@ -4134,11 +4139,11 @@ La tua versione è la %1, la versione online è la %2.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Cockatrice decks (*.cod)</source>
|
<source>Cockatrice decks (*.cod)</source>
|
||||||
<translation type="vanished">Mazzi Cockatrice (*.cod)</translation>
|
<translation type="obsolete">Mazzi Cockatrice (*.cod)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Plain text decks (*.dec *.mwDeck)</source>
|
<source>Plain text decks (*.dec *.mwDeck)</source>
|
||||||
<translation type="vanished">Mazzi in formato testo (*.dec *.mwDeck)</translation>
|
<translation type="obsolete">Mazzi in formato testo (*.dec *.mwDeck)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/deck_loader.cpp" line="8"/>
|
<location filename="../src/deck_loader.cpp" line="8"/>
|
||||||
|
@ -4267,11 +4272,11 @@ La tua versione è la %1, la versione online è la %2.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>&OK</source>
|
<source>&OK</source>
|
||||||
<translation type="vanished">&OK</translation>
|
<translation type="obsolete">&OK</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>&Cancel</source>
|
<source>&Cancel</source>
|
||||||
<translation type="vanished">&Annulla</translation>
|
<translation type="obsolete">&Annulla</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/tab_admin.cpp" line="40"/>
|
<location filename="../src/tab_admin.cpp" line="40"/>
|
||||||
|
@ -4318,14 +4323,14 @@ La tua versione è la %1, la versione online è la %2.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Administration</source>
|
<source>Administration</source>
|
||||||
<translation type="vanished">Amministrazione</translation>
|
<translation type="obsolete">Amministrazione</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>TabDeckEditor</name>
|
<name>TabDeckEditor</name>
|
||||||
<message>
|
<message>
|
||||||
<source>&Search...</source>
|
<source>&Search...</source>
|
||||||
<translation type="vanished">&Cerca...</translation>
|
<translation type="obsolete">&Cerca...</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/tab_deck_editor.cpp" line="292"/>
|
<location filename="../src/tab_deck_editor.cpp" line="292"/>
|
||||||
|
@ -4424,11 +4429,11 @@ La tua versione è la %1, la versione online è la %2.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Return</source>
|
<source>Return</source>
|
||||||
<translation type="vanished">Return</translation>
|
<translation type="obsolete">Return</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Enter</source>
|
<source>Enter</source>
|
||||||
<translation type="vanished">Invio</translation>
|
<translation type="obsolete">Invio</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/tab_deck_editor.cpp" line="315"/>
|
<location filename="../src/tab_deck_editor.cpp" line="315"/>
|
||||||
|
@ -4437,11 +4442,11 @@ La tua versione è la %1, la versione online è la %2.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Ctrl+Return</source>
|
<source>Ctrl+Return</source>
|
||||||
<translation type="vanished">Ctrl+Return</translation>
|
<translation type="obsolete">Ctrl+Return</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Ctrl+Enter</source>
|
<source>Ctrl+Enter</source>
|
||||||
<translation type="vanished">Ctrl+Invio</translation>
|
<translation type="obsolete">Ctrl+Invio</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/tab_deck_editor.cpp" line="317"/>
|
<location filename="../src/tab_deck_editor.cpp" line="317"/>
|
||||||
|
@ -4626,7 +4631,7 @@ Please enter a name:</source>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Deck storage</source>
|
<source>Deck storage</source>
|
||||||
<translation type="vanished">Cartella mazzi</translation>
|
<translation type="obsolete">Cartella mazzi</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
@ -4875,7 +4880,7 @@ Please enter a name:</source>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Game replays</source>
|
<source>Game replays</source>
|
||||||
<translation type="vanished">Replay partite</translation>
|
<translation type="obsolete">Replay partite</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
@ -4915,14 +4920,14 @@ Please enter a name:</source>
|
||||||
<name>TabServer</name>
|
<name>TabServer</name>
|
||||||
<message>
|
<message>
|
||||||
<source>Server</source>
|
<source>Server</source>
|
||||||
<translation type="vanished">Server</translation>
|
<translation type="obsolete">Server</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>TabUserLists</name>
|
<name>TabUserLists</name>
|
||||||
<message>
|
<message>
|
||||||
<source>User lists</source>
|
<source>User lists</source>
|
||||||
<translation type="vanished">Lista utenti</translation>
|
<translation type="obsolete">Lista utenti</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/tab_userlists.cpp" line="48"/>
|
<location filename="../src/tab_userlists.cpp" line="48"/>
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<!DOCTYPE TS>
|
<!DOCTYPE TS>
|
||||||
<TS version="2.1" language="ja_JP">
|
<TS version="2.0" language="ja_JP">
|
||||||
<context>
|
<context>
|
||||||
<name>AbstractCounter</name>
|
<name>AbstractCounter</name>
|
||||||
<message>
|
<message>
|
||||||
|
@ -43,23 +43,23 @@
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Path to hand background:</source>
|
<source>Path to hand background:</source>
|
||||||
<translation type="vanished">手札の背景画像へのパス:</translation>
|
<translation type="obsolete">手札の背景画像へのパス:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Path to stack background:</source>
|
<source>Path to stack background:</source>
|
||||||
<translation type="vanished">スタックゾーンの背景画像へのパス:</translation>
|
<translation type="obsolete">スタックゾーンの背景画像へのパス:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Path to table background:</source>
|
<source>Path to table background:</source>
|
||||||
<translation type="vanished">テーブルの背景画像へのパス:</translation>
|
<translation type="obsolete">テーブルの背景画像へのパス:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Path to player info background:</source>
|
<source>Path to player info background:</source>
|
||||||
<translation type="vanished">プレイヤー画像へのパス:</translation>
|
<translation type="obsolete">プレイヤー画像へのパス:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Path to picture of card back:</source>
|
<source>Path to picture of card back:</source>
|
||||||
<translation type="vanished">カード背面画像へのパス:</translation>
|
<translation type="obsolete">カード背面画像へのパス:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dlg_settings.cpp" line="372"/>
|
<location filename="../src/dlg_settings.cpp" line="372"/>
|
||||||
|
@ -780,7 +780,7 @@ This is only saved for moderators and cannot be seen by the banned person.</sour
|
||||||
<name>DeckEditorSettingsPage</name>
|
<name>DeckEditorSettingsPage</name>
|
||||||
<message>
|
<message>
|
||||||
<source>Enable &price tag feature (using data from blacklotusproject.com)</source>
|
<source>Enable &price tag feature (using data from blacklotusproject.com)</source>
|
||||||
<translation type="vanished">価格タグを表示可能に(blacklotusproject.comからのデータを使用)</translation>
|
<translation type="obsolete">価格タグを表示可能に(blacklotusproject.comからのデータを使用)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dlg_settings.cpp" line="600"/>
|
<location filename="../src/dlg_settings.cpp" line="600"/>
|
||||||
|
@ -919,32 +919,37 @@ This is only saved for moderators and cannot be seen by the banned person.</sour
|
||||||
<context>
|
<context>
|
||||||
<name>DlgConnect</name>
|
<name>DlgConnect</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dlg_connect.cpp" line="15"/>
|
<location filename="../src/dlg_connect.cpp" line="17"/>
|
||||||
<source>&Host:</source>
|
<source>&Host:</source>
|
||||||
<translation>ホストIP:</translation>
|
<translation>ホストIP:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dlg_connect.cpp" line="19"/>
|
<location filename="../src/dlg_connect.cpp" line="21"/>
|
||||||
<source>&Port:</source>
|
<source>&Port:</source>
|
||||||
<translation>ポート:</translation>
|
<translation>ポート:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dlg_connect.cpp" line="23"/>
|
<location filename="../src/dlg_connect.cpp" line="25"/>
|
||||||
<source>Player &name:</source>
|
<source>Player &name:</source>
|
||||||
<translation>プレイヤーネーム:</translation>
|
<translation>プレイヤーネーム:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dlg_connect.cpp" line="27"/>
|
<location filename="../src/dlg_connect.cpp" line="29"/>
|
||||||
<source>P&assword:</source>
|
<source>P&assword:</source>
|
||||||
<translation>パスワード:</translation>
|
<translation>パスワード:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dlg_connect.cpp" line="32"/>
|
<location filename="../src/dlg_connect.cpp" line="34"/>
|
||||||
<source>&Save password</source>
|
<source>&Save password</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dlg_connect.cpp" line="55"/>
|
<location filename="../src/dlg_connect.cpp" line="37"/>
|
||||||
|
<source>A&uto connect at start</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/dlg_connect.cpp" line="71"/>
|
||||||
<source>Connect to server</source>
|
<source>Connect to server</source>
|
||||||
<translation>サーバーに接続</translation>
|
<translation>サーバーに接続</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -1309,7 +1314,7 @@ This is only saved for moderators and cannot be seen by the banned person.</sour
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Your card database is invalid. Would you like to go back and set the correct path?</source>
|
<source>Your card database is invalid. Would you like to go back and set the correct path?</source>
|
||||||
<translation type="vanished">あなたのカードデータベースは無効です.前に戻って正しいパスを設定してください.</translation>
|
<translation type="obsolete">あなたのカードデータベースは無効です.前に戻って正しいパスを設定してください.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dlg_settings.cpp" line="776"/>
|
<location filename="../src/dlg_settings.cpp" line="776"/>
|
||||||
|
@ -1697,7 +1702,7 @@ Would you like to change your database location setting?</source>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Path to card database:</source>
|
<source>Path to card database:</source>
|
||||||
<translation type="vanished">カードデータベースのパス:</translation>
|
<translation type="obsolete">カードデータベースのパス:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dlg_settings.cpp" line="39"/>
|
<location filename="../src/dlg_settings.cpp" line="39"/>
|
||||||
|
@ -1823,7 +1828,7 @@ Reason for shutdown: %1</source>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Czech:</source>
|
<source>Czech:</source>
|
||||||
<translation type="vanished">チェコ語:</translation>
|
<translation type="obsolete">チェコ語:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Slovak:</source>
|
<source>Slovak:</source>
|
||||||
|
@ -1886,7 +1891,7 @@ Reason for shutdown: %1</source>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Invalid login data.</source>
|
<source>Invalid login data.</source>
|
||||||
<translation type="vanished">無効なログインデータです.</translation>
|
<translation type="obsolete">無効なログインデータです.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/window_main.cpp" line="242"/>
|
<location filename="../src/window_main.cpp" line="242"/>
|
||||||
|
@ -3148,12 +3153,12 @@ Local version is %1, remote version is %2.</source>
|
||||||
<message>
|
<message>
|
||||||
<source>%1 has loaded a deck (%2).</source>
|
<source>%1 has loaded a deck (%2).</source>
|
||||||
<comment>female</comment>
|
<comment>female</comment>
|
||||||
<translation type="vanished">%1はデッキ%2をロードしました.</translation>
|
<translation type="obsolete">%1はデッキ%2をロードしました.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>%1 has loaded a deck (%2).</source>
|
<source>%1 has loaded a deck (%2).</source>
|
||||||
<comment>male</comment>
|
<comment>male</comment>
|
||||||
<translation type="vanished">%1はデッキ%2をロードしました.</translation>
|
<translation type="obsolete">%1はデッキ%2をロードしました.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/messagelogwidget.cpp" line="381"/>
|
<location filename="../src/messagelogwidget.cpp" line="381"/>
|
||||||
|
@ -4039,11 +4044,11 @@ Local version is %1, remote version is %2.</source>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>&OK</source>
|
<source>&OK</source>
|
||||||
<translation type="vanished">OK</translation>
|
<translation type="obsolete">OK</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>&Cancel</source>
|
<source>&Cancel</source>
|
||||||
<translation type="vanished">Cancel</translation>
|
<translation type="obsolete">Cancel</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/tab_admin.cpp" line="40"/>
|
<location filename="../src/tab_admin.cpp" line="40"/>
|
||||||
|
@ -4090,7 +4095,7 @@ Local version is %1, remote version is %2.</source>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Administration</source>
|
<source>Administration</source>
|
||||||
<translation type="vanished">管理者</translation>
|
<translation type="obsolete">管理者</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
@ -4399,7 +4404,7 @@ Please enter a name:</source>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Deck storage</source>
|
<source>Deck storage</source>
|
||||||
<translation type="vanished">デッキストレージ</translation>
|
<translation type="obsolete">デッキストレージ</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
@ -4692,14 +4697,14 @@ Please enter a name:</source>
|
||||||
<name>TabServer</name>
|
<name>TabServer</name>
|
||||||
<message>
|
<message>
|
||||||
<source>Server</source>
|
<source>Server</source>
|
||||||
<translation type="vanished">サーバー</translation>
|
<translation type="obsolete">サーバー</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>TabUserLists</name>
|
<name>TabUserLists</name>
|
||||||
<message>
|
<message>
|
||||||
<source>User lists</source>
|
<source>User lists</source>
|
||||||
<translation type="vanished">ユーザーリスト</translation>
|
<translation type="obsolete">ユーザーリスト</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/tab_userlists.cpp" line="48"/>
|
<location filename="../src/tab_userlists.cpp" line="48"/>
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<!DOCTYPE TS>
|
<!DOCTYPE TS>
|
||||||
<TS version="2.1" language="pl_PL">
|
<TS version="2.0" language="pl_PL">
|
||||||
<context>
|
<context>
|
||||||
<name>AbstractCounter</name>
|
<name>AbstractCounter</name>
|
||||||
<message>
|
<message>
|
||||||
|
@ -670,7 +670,7 @@ This is only saved for moderators and cannot be seen by the banned person.</sour
|
||||||
<name>DeckEditorSettingsPage</name>
|
<name>DeckEditorSettingsPage</name>
|
||||||
<message>
|
<message>
|
||||||
<source>Enable &price tag feature (using data from blacklotusproject.com)</source>
|
<source>Enable &price tag feature (using data from blacklotusproject.com)</source>
|
||||||
<translation type="vanished">Włącz oznaczenia &ceny (korzystając z danych z blacklotusproject.com)</translation>
|
<translation type="obsolete">Włącz oznaczenia &ceny (korzystając z danych z blacklotusproject.com)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dlg_settings.cpp" line="600"/>
|
<location filename="../src/dlg_settings.cpp" line="600"/>
|
||||||
|
@ -809,32 +809,37 @@ This is only saved for moderators and cannot be seen by the banned person.</sour
|
||||||
<context>
|
<context>
|
||||||
<name>DlgConnect</name>
|
<name>DlgConnect</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dlg_connect.cpp" line="15"/>
|
<location filename="../src/dlg_connect.cpp" line="17"/>
|
||||||
<source>&Host:</source>
|
<source>&Host:</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dlg_connect.cpp" line="19"/>
|
<location filename="../src/dlg_connect.cpp" line="21"/>
|
||||||
<source>&Port:</source>
|
<source>&Port:</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dlg_connect.cpp" line="23"/>
|
<location filename="../src/dlg_connect.cpp" line="25"/>
|
||||||
<source>Player &name:</source>
|
<source>Player &name:</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dlg_connect.cpp" line="27"/>
|
<location filename="../src/dlg_connect.cpp" line="29"/>
|
||||||
<source>P&assword:</source>
|
<source>P&assword:</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dlg_connect.cpp" line="32"/>
|
<location filename="../src/dlg_connect.cpp" line="34"/>
|
||||||
<source>&Save password</source>
|
<source>&Save password</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dlg_connect.cpp" line="55"/>
|
<location filename="../src/dlg_connect.cpp" line="37"/>
|
||||||
|
<source>A&uto connect at start</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/dlg_connect.cpp" line="71"/>
|
||||||
<source>Connect to server</source>
|
<source>Connect to server</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -1605,7 +1610,7 @@ Would you like to change your database location setting?</source>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Path to card database:</source>
|
<source>Path to card database:</source>
|
||||||
<translation type="vanished">Ścieżka do bazy kart:</translation>
|
<translation type="obsolete">Ścieżka do bazy kart:</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
@ -4454,14 +4459,14 @@ Please enter a name:</source>
|
||||||
<name>TabServer</name>
|
<name>TabServer</name>
|
||||||
<message>
|
<message>
|
||||||
<source>Server</source>
|
<source>Server</source>
|
||||||
<translation type="vanished">Serwer</translation>
|
<translation type="obsolete">Serwer</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>TabUserLists</name>
|
<name>TabUserLists</name>
|
||||||
<message>
|
<message>
|
||||||
<source>User lists</source>
|
<source>User lists</source>
|
||||||
<translation type="vanished">Lista użytkowników</translation>
|
<translation type="obsolete">Lista użytkowników</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/tab_userlists.cpp" line="48"/>
|
<location filename="../src/tab_userlists.cpp" line="48"/>
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<!DOCTYPE TS>
|
<!DOCTYPE TS>
|
||||||
<TS version="2.1" language="pt_BR" sourcelanguage="en_US">
|
<TS version="2.0" language="pt_BR" sourcelanguage="en_US">
|
||||||
<context>
|
<context>
|
||||||
<name>AbstractCounter</name>
|
<name>AbstractCounter</name>
|
||||||
<message>
|
<message>
|
||||||
|
@ -43,23 +43,23 @@
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Path to hand background:</source>
|
<source>Path to hand background:</source>
|
||||||
<translation type="vanished">Caminho para o fundo da mão:</translation>
|
<translation type="obsolete">Caminho para o fundo da mão:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Path to stack background:</source>
|
<source>Path to stack background:</source>
|
||||||
<translation type="vanished">Caminho para o fundo da pilha:</translation>
|
<translation type="obsolete">Caminho para o fundo da pilha:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Path to table background:</source>
|
<source>Path to table background:</source>
|
||||||
<translation type="vanished">Caminho para o fundo da mesa:</translation>
|
<translation type="obsolete">Caminho para o fundo da mesa:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Path to player info background:</source>
|
<source>Path to player info background:</source>
|
||||||
<translation type="vanished">Caminho para o fundo das informações do jogador:</translation>
|
<translation type="obsolete">Caminho para o fundo das informações do jogador:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Path to picture of card back:</source>
|
<source>Path to picture of card back:</source>
|
||||||
<translation type="vanished">Caminho para a imagem do verso dos cards:</translation>
|
<translation type="obsolete">Caminho para a imagem do verso dos cards:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dlg_settings.cpp" line="372"/>
|
<location filename="../src/dlg_settings.cpp" line="372"/>
|
||||||
|
@ -1264,30 +1264,35 @@ This is only saved for moderators and cannot be seen by the banned person.</sour
|
||||||
<context>
|
<context>
|
||||||
<name>DlgConnect</name>
|
<name>DlgConnect</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dlg_connect.cpp" line="15"/>
|
<location filename="../src/dlg_connect.cpp" line="17"/>
|
||||||
<source>&Host:</source>
|
<source>&Host:</source>
|
||||||
<translation>&Servidor:</translation>
|
<translation>&Servidor:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dlg_connect.cpp" line="19"/>
|
<location filename="../src/dlg_connect.cpp" line="21"/>
|
||||||
<source>&Port:</source>
|
<source>&Port:</source>
|
||||||
<translation>&Porta:</translation>
|
<translation>&Porta:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dlg_connect.cpp" line="23"/>
|
<location filename="../src/dlg_connect.cpp" line="25"/>
|
||||||
<source>Player &name:</source>
|
<source>Player &name:</source>
|
||||||
<translation>Nome do &jogador:</translation>
|
<translation>Nome do &jogador:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dlg_connect.cpp" line="27"/>
|
<location filename="../src/dlg_connect.cpp" line="29"/>
|
||||||
<source>P&assword:</source>
|
<source>P&assword:</source>
|
||||||
<translation>S&enha:</translation>
|
<translation>S&enha:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dlg_connect.cpp" line="32"/>
|
<location filename="../src/dlg_connect.cpp" line="34"/>
|
||||||
<source>&Save password</source>
|
<source>&Save password</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/dlg_connect.cpp" line="37"/>
|
||||||
|
<source>A&uto connect at start</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>&OK</source>
|
<source>&OK</source>
|
||||||
<translation type="obsolete">&OK</translation>
|
<translation type="obsolete">&OK</translation>
|
||||||
|
@ -1297,7 +1302,7 @@ This is only saved for moderators and cannot be seen by the banned person.</sour
|
||||||
<translation type="obsolete">&Cancelar</translation>
|
<translation type="obsolete">&Cancelar</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dlg_connect.cpp" line="55"/>
|
<location filename="../src/dlg_connect.cpp" line="71"/>
|
||||||
<source>Connect to server</source>
|
<source>Connect to server</source>
|
||||||
<translation>Conectar ao servidor</translation>
|
<translation>Conectar ao servidor</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -1702,7 +1707,7 @@ This is only saved for moderators and cannot be seen by the banned person.</sour
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Your card database is invalid. Would you like to go back and set the correct path?</source>
|
<source>Your card database is invalid. Would you like to go back and set the correct path?</source>
|
||||||
<translation type="vanished">O seu banco de dados de cards é inválido. Você gostaria de voltar e corrigir o caminho?</translation>
|
<translation type="obsolete">O seu banco de dados de cards é inválido. Você gostaria de voltar e corrigir o caminho?</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dlg_settings.cpp" line="776"/>
|
<location filename="../src/dlg_settings.cpp" line="776"/>
|
||||||
|
@ -2086,7 +2091,7 @@ Would you like to change your database location setting?</source>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Path to card database:</source>
|
<source>Path to card database:</source>
|
||||||
<translation type="vanished">Caminho para o banco de dados dos cards:</translation>
|
<translation type="obsolete">Caminho para o banco de dados dos cards:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dlg_settings.cpp" line="39"/>
|
<location filename="../src/dlg_settings.cpp" line="39"/>
|
||||||
|
@ -2193,7 +2198,7 @@ Would you like to change your database location setting?</source>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Invalid login data.</source>
|
<source>Invalid login data.</source>
|
||||||
<translation type="vanished">Informações de login inválidas.</translation>
|
<translation type="obsolete">Informações de login inválidas.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/window_main.cpp" line="250"/>
|
<location filename="../src/window_main.cpp" line="250"/>
|
||||||
|
@ -2882,7 +2887,7 @@ A versão local é %1 e a versão remota é %2.</translation>
|
||||||
<message>
|
<message>
|
||||||
<source>%1 has loaded a deck (%2).</source>
|
<source>%1 has loaded a deck (%2).</source>
|
||||||
<comment>female</comment>
|
<comment>female</comment>
|
||||||
<translation type="vanished">%1 carregou o deck %2.</translation>
|
<translation type="obsolete">%1 carregou o deck %2.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>%1 has loaded a deck (%2).</source>
|
<source>%1 has loaded a deck (%2).</source>
|
||||||
|
@ -4732,7 +4737,7 @@ A versão local é %1 e a versão remota é %2.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Administration</source>
|
<source>Administration</source>
|
||||||
<translation type="vanished">Administração</translation>
|
<translation type="obsolete">Administração</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
@ -5060,7 +5065,7 @@ Por favor, entre um nome:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Deck storage</source>
|
<source>Deck storage</source>
|
||||||
<translation type="vanished">Armazenamento de decks</translation>
|
<translation type="obsolete">Armazenamento de decks</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
@ -5353,14 +5358,14 @@ Por favor, entre um nome:</translation>
|
||||||
<name>TabServer</name>
|
<name>TabServer</name>
|
||||||
<message>
|
<message>
|
||||||
<source>Server</source>
|
<source>Server</source>
|
||||||
<translation type="vanished">Servidor</translation>
|
<translation type="obsolete">Servidor</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>TabUserLists</name>
|
<name>TabUserLists</name>
|
||||||
<message>
|
<message>
|
||||||
<source>User lists</source>
|
<source>User lists</source>
|
||||||
<translation type="vanished">Listas de usuários</translation>
|
<translation type="obsolete">Listas de usuários</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/tab_userlists.cpp" line="48"/>
|
<location filename="../src/tab_userlists.cpp" line="48"/>
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<!DOCTYPE TS>
|
<!DOCTYPE TS>
|
||||||
<TS version="2.1" language="pt_PT">
|
<TS version="2.0" language="pt_PT">
|
||||||
<context>
|
<context>
|
||||||
<name>AbstractCounter</name>
|
<name>AbstractCounter</name>
|
||||||
<message>
|
<message>
|
||||||
|
@ -43,23 +43,23 @@
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Path to hand background:</source>
|
<source>Path to hand background:</source>
|
||||||
<translation type="vanished">Directório da imagem de fundo da mão:</translation>
|
<translation type="obsolete">Directório da imagem de fundo da mão:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Path to stack background:</source>
|
<source>Path to stack background:</source>
|
||||||
<translation type="vanished">Directório da imagem de fundo da pilha:</translation>
|
<translation type="obsolete">Directório da imagem de fundo da pilha:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Path to table background:</source>
|
<source>Path to table background:</source>
|
||||||
<translation type="vanished">Directório da imagem de fundo do campo de batalha:</translation>
|
<translation type="obsolete">Directório da imagem de fundo do campo de batalha:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Path to player info background:</source>
|
<source>Path to player info background:</source>
|
||||||
<translation type="vanished">Directório da imagem de fundo da informação de jogador:</translation>
|
<translation type="obsolete">Directório da imagem de fundo da informação de jogador:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Path to picture of card back:</source>
|
<source>Path to picture of card back:</source>
|
||||||
<translation type="vanished">Directório da imagem do verso da carta:</translation>
|
<translation type="obsolete">Directório da imagem do verso da carta:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dlg_settings.cpp" line="372"/>
|
<location filename="../src/dlg_settings.cpp" line="372"/>
|
||||||
|
@ -1181,7 +1181,7 @@ Isto apenas é guardado para os moderadores e não é visível para a pessoa ban
|
||||||
<name>DeckEditorSettingsPage</name>
|
<name>DeckEditorSettingsPage</name>
|
||||||
<message>
|
<message>
|
||||||
<source>Enable &price tag feature (using data from blacklotusproject.com)</source>
|
<source>Enable &price tag feature (using data from blacklotusproject.com)</source>
|
||||||
<translation type="vanished">&Permitir função de tag de preços (utilizando informação de blacklotusproject.com)</translation>
|
<translation type="obsolete">&Permitir função de tag de preços (utilizando informação de blacklotusproject.com)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dlg_settings.cpp" line="600"/>
|
<location filename="../src/dlg_settings.cpp" line="600"/>
|
||||||
|
@ -1327,30 +1327,35 @@ Isto apenas é guardado para os moderadores e não é visível para a pessoa ban
|
||||||
<context>
|
<context>
|
||||||
<name>DlgConnect</name>
|
<name>DlgConnect</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dlg_connect.cpp" line="15"/>
|
<location filename="../src/dlg_connect.cpp" line="17"/>
|
||||||
<source>&Host:</source>
|
<source>&Host:</source>
|
||||||
<translation>&Servidor:</translation>
|
<translation>&Servidor:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dlg_connect.cpp" line="19"/>
|
<location filename="../src/dlg_connect.cpp" line="21"/>
|
||||||
<source>&Port:</source>
|
<source>&Port:</source>
|
||||||
<translation>&Porta:</translation>
|
<translation>&Porta:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dlg_connect.cpp" line="23"/>
|
<location filename="../src/dlg_connect.cpp" line="25"/>
|
||||||
<source>Player &name:</source>
|
<source>Player &name:</source>
|
||||||
<translation>&Nome do jogador:</translation>
|
<translation>&Nome do jogador:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dlg_connect.cpp" line="27"/>
|
<location filename="../src/dlg_connect.cpp" line="29"/>
|
||||||
<source>P&assword:</source>
|
<source>P&assword:</source>
|
||||||
<translation>P&assword:</translation>
|
<translation>P&assword:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dlg_connect.cpp" line="32"/>
|
<location filename="../src/dlg_connect.cpp" line="34"/>
|
||||||
<source>&Save password</source>
|
<source>&Save password</source>
|
||||||
<translation>&Guardar password</translation>
|
<translation>&Guardar password</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/dlg_connect.cpp" line="37"/>
|
||||||
|
<source>A&uto connect at start</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>&OK</source>
|
<source>&OK</source>
|
||||||
<translation type="obsolete">&OK</translation>
|
<translation type="obsolete">&OK</translation>
|
||||||
|
@ -1360,7 +1365,7 @@ Isto apenas é guardado para os moderadores e não é visível para a pessoa ban
|
||||||
<translation type="obsolete">&Cancelar</translation>
|
<translation type="obsolete">&Cancelar</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dlg_connect.cpp" line="55"/>
|
<location filename="../src/dlg_connect.cpp" line="71"/>
|
||||||
<source>Connect to server</source>
|
<source>Connect to server</source>
|
||||||
<translation>Ligar ao servidor</translation>
|
<translation>Ligar ao servidor</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -1761,7 +1766,7 @@ Isto apenas é guardado para os moderadores e não é visível para a pessoa ban
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Your card database is invalid. Would you like to go back and set the correct path?</source>
|
<source>Your card database is invalid. Would you like to go back and set the correct path?</source>
|
||||||
<translation type="vanished">A sua base de dados é inválida. Gostaria de voltar atrás e corrigir o directório?</translation>
|
<translation type="obsolete">A sua base de dados é inválida. Gostaria de voltar atrás e corrigir o directório?</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dlg_settings.cpp" line="776"/>
|
<location filename="../src/dlg_settings.cpp" line="776"/>
|
||||||
|
@ -2155,11 +2160,11 @@ Would you like to change your database location setting?</source>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Path to card database:</source>
|
<source>Path to card database:</source>
|
||||||
<translation type="vanished">Directório da base de dados de cartas:</translation>
|
<translation type="obsolete">Directório da base de dados de cartas:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Path to token database:</source>
|
<source>Path to token database:</source>
|
||||||
<translation type="vanished">Directório da base de dados de fichas:</translation>
|
<translation type="obsolete">Directório da base de dados de fichas:</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
@ -2264,7 +2269,7 @@ Would you like to change your database location setting?</source>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Invalid login data.</source>
|
<source>Invalid login data.</source>
|
||||||
<translation type="vanished">Informação de login incorrecta.</translation>
|
<translation type="obsolete">Informação de login incorrecta.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/window_main.cpp" line="250"/>
|
<location filename="../src/window_main.cpp" line="250"/>
|
||||||
|
@ -2339,7 +2344,7 @@ Motivo para o encerramento: %1</numerusform>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Czech:</source>
|
<source>Czech:</source>
|
||||||
<translation type="vanished">Checo:</translation>
|
<translation type="obsolete">Checo:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Slovak:</source>
|
<source>Slovak:</source>
|
||||||
|
@ -3662,12 +3667,12 @@ Versão local é %1, versão remota é %2.</translation>
|
||||||
<message>
|
<message>
|
||||||
<source>%1 has loaded a deck (%2).</source>
|
<source>%1 has loaded a deck (%2).</source>
|
||||||
<comment>female</comment>
|
<comment>female</comment>
|
||||||
<translation type="vanished">%1 carregou o deck %2.</translation>
|
<translation type="obsolete">%1 carregou o deck %2.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>%1 has loaded a deck (%2).</source>
|
<source>%1 has loaded a deck (%2).</source>
|
||||||
<comment>male</comment>
|
<comment>male</comment>
|
||||||
<translation type="vanished">%1 carregou o deck %2.</translation>
|
<translation type="obsolete">%1 carregou o deck %2.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/messagelogwidget.cpp" line="350"/>
|
<location filename="../src/messagelogwidget.cpp" line="350"/>
|
||||||
|
@ -4260,7 +4265,7 @@ Versão local é %1, versão remota é %2.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Ctrl+H</source>
|
<source>Ctrl+H</source>
|
||||||
<translation type="vanished">Ctrl+H</translation>
|
<translation type="obsolete">Ctrl+H</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/player.cpp" line="647"/>
|
<location filename="../src/player.cpp" line="647"/>
|
||||||
|
@ -4622,11 +4627,11 @@ Versão local é %1, versão remota é %2.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Cockatrice decks (*.cod)</source>
|
<source>Cockatrice decks (*.cod)</source>
|
||||||
<translation type="vanished">Decks do Cockatrice (*.cod)</translation>
|
<translation type="obsolete">Decks do Cockatrice (*.cod)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Plain text decks (*.dec *.mwDeck)</source>
|
<source>Plain text decks (*.dec *.mwDeck)</source>
|
||||||
<translation type="vanished">Decks baseados em texto simples (*.dec *.mwDeck)</translation>
|
<translation type="obsolete">Decks baseados em texto simples (*.dec *.mwDeck)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/deck_loader.cpp" line="8"/>
|
<location filename="../src/deck_loader.cpp" line="8"/>
|
||||||
|
@ -4762,11 +4767,11 @@ Versão local é %1, versão remota é %2.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>&OK</source>
|
<source>&OK</source>
|
||||||
<translation type="vanished">&OK</translation>
|
<translation type="obsolete">&OK</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>&Cancel</source>
|
<source>&Cancel</source>
|
||||||
<translation type="vanished">&Cancelar</translation>
|
<translation type="obsolete">&Cancelar</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/tab_admin.cpp" line="40"/>
|
<location filename="../src/tab_admin.cpp" line="40"/>
|
||||||
|
@ -4813,7 +4818,7 @@ Versão local é %1, versão remota é %2.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Administration</source>
|
<source>Administration</source>
|
||||||
<translation type="vanished">Administração</translation>
|
<translation type="obsolete">Administração</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
@ -4839,7 +4844,7 @@ Versão local é %1, versão remota é %2.</translation>
|
||||||
<name>TabDeckEditor</name>
|
<name>TabDeckEditor</name>
|
||||||
<message>
|
<message>
|
||||||
<source>&Search...</source>
|
<source>&Search...</source>
|
||||||
<translation type="vanished">&Procurar...</translation>
|
<translation type="obsolete">&Procurar...</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/tab_deck_editor.cpp" line="292"/>
|
<location filename="../src/tab_deck_editor.cpp" line="292"/>
|
||||||
|
@ -4938,11 +4943,11 @@ Versão local é %1, versão remota é %2.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Return</source>
|
<source>Return</source>
|
||||||
<translation type="vanished">Return</translation>
|
<translation type="obsolete">Return</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Enter</source>
|
<source>Enter</source>
|
||||||
<translation type="vanished">Enter</translation>
|
<translation type="obsolete">Enter</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/tab_deck_editor.cpp" line="315"/>
|
<location filename="../src/tab_deck_editor.cpp" line="315"/>
|
||||||
|
@ -4951,11 +4956,11 @@ Versão local é %1, versão remota é %2.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Ctrl+Return</source>
|
<source>Ctrl+Return</source>
|
||||||
<translation type="vanished">Ctrl+Return</translation>
|
<translation type="obsolete">Ctrl+Return</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Ctrl+Enter</source>
|
<source>Ctrl+Enter</source>
|
||||||
<translation type="vanished">Ctrl+Enter</translation>
|
<translation type="obsolete">Ctrl+Enter</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/tab_deck_editor.cpp" line="317"/>
|
<location filename="../src/tab_deck_editor.cpp" line="317"/>
|
||||||
|
@ -5141,7 +5146,7 @@ Por favor introduza um nome:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Deck storage</source>
|
<source>Deck storage</source>
|
||||||
<translation type="vanished">Armazenamento de decks</translation>
|
<translation type="obsolete">Armazenamento de decks</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
@ -5390,7 +5395,7 @@ Por favor introduza um nome:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Game replays</source>
|
<source>Game replays</source>
|
||||||
<translation type="vanished">Replays de jogos</translation>
|
<translation type="obsolete">Replays de jogos</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
@ -5438,14 +5443,14 @@ Por favor introduza um nome:</translation>
|
||||||
<name>TabServer</name>
|
<name>TabServer</name>
|
||||||
<message>
|
<message>
|
||||||
<source>Server</source>
|
<source>Server</source>
|
||||||
<translation type="vanished">Servidor</translation>
|
<translation type="obsolete">Servidor</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>TabUserLists</name>
|
<name>TabUserLists</name>
|
||||||
<message>
|
<message>
|
||||||
<source>User lists</source>
|
<source>User lists</source>
|
||||||
<translation type="vanished">Lista de utilizadores</translation>
|
<translation type="obsolete">Lista de utilizadores</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/tab_userlists.cpp" line="48"/>
|
<location filename="../src/tab_userlists.cpp" line="48"/>
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<!DOCTYPE TS>
|
<!DOCTYPE TS>
|
||||||
<TS version="2.1" language="ru_RU">
|
<TS version="2.0" language="ru_RU">
|
||||||
<context>
|
<context>
|
||||||
<name>AbstractCounter</name>
|
<name>AbstractCounter</name>
|
||||||
<message>
|
<message>
|
||||||
|
@ -43,23 +43,23 @@
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Path to hand background:</source>
|
<source>Path to hand background:</source>
|
||||||
<translation type="vanished">Рука:</translation>
|
<translation type="obsolete">Рука:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Path to stack background:</source>
|
<source>Path to stack background:</source>
|
||||||
<translation type="vanished">Стек:</translation>
|
<translation type="obsolete">Стек:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Path to table background:</source>
|
<source>Path to table background:</source>
|
||||||
<translation type="vanished">Поле битвы:</translation>
|
<translation type="obsolete">Поле битвы:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Path to player info background:</source>
|
<source>Path to player info background:</source>
|
||||||
<translation type="vanished">Панель игрока:</translation>
|
<translation type="obsolete">Панель игрока:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Path to picture of card back:</source>
|
<source>Path to picture of card back:</source>
|
||||||
<translation type="vanished">Рубашки карт:</translation>
|
<translation type="obsolete">Рубашки карт:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dlg_settings.cpp" line="366"/>
|
<location filename="../src/dlg_settings.cpp" line="366"/>
|
||||||
|
@ -1091,7 +1091,7 @@ This is only saved for moderators and cannot be seen by the banned person.</sour
|
||||||
<name>DeckEditorSettingsPage</name>
|
<name>DeckEditorSettingsPage</name>
|
||||||
<message>
|
<message>
|
||||||
<source>Enable &price tag feature (using data from blacklotusproject.com)</source>
|
<source>Enable &price tag feature (using data from blacklotusproject.com)</source>
|
||||||
<translation type="vanished">Подписывать &цены (по данным blacklotusproject.com)</translation>
|
<translation type="obsolete">Подписывать &цены (по данным blacklotusproject.com)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dlg_settings.cpp" line="600"/>
|
<location filename="../src/dlg_settings.cpp" line="600"/>
|
||||||
|
@ -1230,30 +1230,35 @@ This is only saved for moderators and cannot be seen by the banned person.</sour
|
||||||
<context>
|
<context>
|
||||||
<name>DlgConnect</name>
|
<name>DlgConnect</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dlg_connect.cpp" line="15"/>
|
<location filename="../src/dlg_connect.cpp" line="17"/>
|
||||||
<source>&Host:</source>
|
<source>&Host:</source>
|
||||||
<translation>&Хост:</translation>
|
<translation>&Хост:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dlg_connect.cpp" line="19"/>
|
<location filename="../src/dlg_connect.cpp" line="21"/>
|
||||||
<source>&Port:</source>
|
<source>&Port:</source>
|
||||||
<translation>&Порт:</translation>
|
<translation>&Порт:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dlg_connect.cpp" line="23"/>
|
<location filename="../src/dlg_connect.cpp" line="25"/>
|
||||||
<source>Player &name:</source>
|
<source>Player &name:</source>
|
||||||
<translation>&Ник:</translation>
|
<translation>&Ник:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dlg_connect.cpp" line="27"/>
|
<location filename="../src/dlg_connect.cpp" line="29"/>
|
||||||
<source>P&assword:</source>
|
<source>P&assword:</source>
|
||||||
<translation>П&ароль:</translation>
|
<translation>П&ароль:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dlg_connect.cpp" line="32"/>
|
<location filename="../src/dlg_connect.cpp" line="34"/>
|
||||||
<source>&Save password</source>
|
<source>&Save password</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/dlg_connect.cpp" line="37"/>
|
||||||
|
<source>A&uto connect at start</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>&OK</source>
|
<source>&OK</source>
|
||||||
<translation type="obsolete">&Ок</translation>
|
<translation type="obsolete">&Ок</translation>
|
||||||
|
@ -1263,7 +1268,7 @@ This is only saved for moderators and cannot be seen by the banned person.</sour
|
||||||
<translation type="obsolete">&Отмена</translation>
|
<translation type="obsolete">&Отмена</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dlg_connect.cpp" line="55"/>
|
<location filename="../src/dlg_connect.cpp" line="71"/>
|
||||||
<source>Connect to server</source>
|
<source>Connect to server</source>
|
||||||
<translation>Соединение</translation>
|
<translation>Соединение</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -1668,7 +1673,7 @@ This is only saved for moderators and cannot be seen by the banned person.</sour
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Your card database is invalid. Would you like to go back and set the correct path?</source>
|
<source>Your card database is invalid. Would you like to go back and set the correct path?</source>
|
||||||
<translation type="vanished">База карт не найдена. Вернуться и задать правильный путь?</translation>
|
<translation type="obsolete">База карт не найдена. Вернуться и задать правильный путь?</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dlg_settings.cpp" line="776"/>
|
<location filename="../src/dlg_settings.cpp" line="776"/>
|
||||||
|
@ -2058,7 +2063,7 @@ Would you like to change your database location setting?</source>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Path to card database:</source>
|
<source>Path to card database:</source>
|
||||||
<translation type="vanished">Путь к базе карт:</translation>
|
<translation type="obsolete">Путь к базе карт:</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
@ -2179,7 +2184,7 @@ Reason for shutdown: %1</source>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Czech:</source>
|
<source>Czech:</source>
|
||||||
<translation type="vanished">Чешский:</translation>
|
<translation type="obsolete">Чешский:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Slovak:</source>
|
<source>Slovak:</source>
|
||||||
|
@ -2242,7 +2247,7 @@ Reason for shutdown: %1</source>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Invalid login data.</source>
|
<source>Invalid login data.</source>
|
||||||
<translation type="vanished">Неверный логин/пароль.</translation>
|
<translation type="obsolete">Неверный логин/пароль.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/window_main.cpp" line="242"/>
|
<location filename="../src/window_main.cpp" line="242"/>
|
||||||
|
@ -2852,12 +2857,12 @@ Local version is %1, remote version is %2.</source>
|
||||||
<message>
|
<message>
|
||||||
<source>%1 has loaded a deck (%2).</source>
|
<source>%1 has loaded a deck (%2).</source>
|
||||||
<comment>female</comment>
|
<comment>female</comment>
|
||||||
<translation type="vanished">%1 загрузила колоду %2.</translation>
|
<translation type="obsolete">%1 загрузила колоду %2.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>%1 has loaded a deck (%2).</source>
|
<source>%1 has loaded a deck (%2).</source>
|
||||||
<comment>male</comment>
|
<comment>male</comment>
|
||||||
<translation type="vanished">%1 загрузил колоду %2.</translation>
|
<translation type="obsolete">%1 загрузил колоду %2.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/messagelogwidget.cpp" line="93"/>
|
<location filename="../src/messagelogwidget.cpp" line="93"/>
|
||||||
|
@ -4653,11 +4658,11 @@ Local version is %1, remote version is %2.</source>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>&OK</source>
|
<source>&OK</source>
|
||||||
<translation type="vanished">&Ок</translation>
|
<translation type="obsolete">&Ок</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>&Cancel</source>
|
<source>&Cancel</source>
|
||||||
<translation type="vanished">&Отмена</translation>
|
<translation type="obsolete">&Отмена</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/tab_admin.cpp" line="40"/>
|
<location filename="../src/tab_admin.cpp" line="40"/>
|
||||||
|
@ -4704,7 +4709,7 @@ Local version is %1, remote version is %2.</source>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Administration</source>
|
<source>Administration</source>
|
||||||
<translation type="vanished">Администрирование</translation>
|
<translation type="obsolete">Администрирование</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
@ -4997,7 +5002,7 @@ Please enter a name:</source>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Deck storage</source>
|
<source>Deck storage</source>
|
||||||
<translation type="vanished">Хранилище колод</translation>
|
<translation type="obsolete">Хранилище колод</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
@ -5282,14 +5287,14 @@ Please enter a name:</source>
|
||||||
<name>TabServer</name>
|
<name>TabServer</name>
|
||||||
<message>
|
<message>
|
||||||
<source>Server</source>
|
<source>Server</source>
|
||||||
<translation type="vanished">Сервер</translation>
|
<translation type="obsolete">Сервер</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>TabUserLists</name>
|
<name>TabUserLists</name>
|
||||||
<message>
|
<message>
|
||||||
<source>User lists</source>
|
<source>User lists</source>
|
||||||
<translation type="vanished">Панели пользователей</translation>
|
<translation type="obsolete">Панели пользователей</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/tab_userlists.cpp" line="48"/>
|
<location filename="../src/tab_userlists.cpp" line="48"/>
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<!DOCTYPE TS>
|
<!DOCTYPE TS>
|
||||||
<TS version="2.1" language="sk_SK">
|
<TS version="2.0" language="sk_SK">
|
||||||
<context>
|
<context>
|
||||||
<name>AbstractCounter</name>
|
<name>AbstractCounter</name>
|
||||||
<message>
|
<message>
|
||||||
|
@ -725,32 +725,37 @@ This is only saved for moderators and cannot be seen by the banned person.</sour
|
||||||
<context>
|
<context>
|
||||||
<name>DlgConnect</name>
|
<name>DlgConnect</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dlg_connect.cpp" line="15"/>
|
<location filename="../src/dlg_connect.cpp" line="17"/>
|
||||||
<source>&Host:</source>
|
<source>&Host:</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dlg_connect.cpp" line="19"/>
|
<location filename="../src/dlg_connect.cpp" line="21"/>
|
||||||
<source>&Port:</source>
|
<source>&Port:</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dlg_connect.cpp" line="23"/>
|
<location filename="../src/dlg_connect.cpp" line="25"/>
|
||||||
<source>Player &name:</source>
|
<source>Player &name:</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dlg_connect.cpp" line="27"/>
|
<location filename="../src/dlg_connect.cpp" line="29"/>
|
||||||
<source>P&assword:</source>
|
<source>P&assword:</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dlg_connect.cpp" line="32"/>
|
<location filename="../src/dlg_connect.cpp" line="34"/>
|
||||||
<source>&Save password</source>
|
<source>&Save password</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dlg_connect.cpp" line="55"/>
|
<location filename="../src/dlg_connect.cpp" line="37"/>
|
||||||
|
<source>A&uto connect at start</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/dlg_connect.cpp" line="71"/>
|
||||||
<source>Connect to server</source>
|
<source>Connect to server</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<!DOCTYPE TS>
|
<!DOCTYPE TS>
|
||||||
<TS version="2.1" language="sv_SE">
|
<TS version="2.0" language="sv_SE">
|
||||||
<context>
|
<context>
|
||||||
<name>AbstractCounter</name>
|
<name>AbstractCounter</name>
|
||||||
<message>
|
<message>
|
||||||
|
@ -43,23 +43,23 @@
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Path to hand background:</source>
|
<source>Path to hand background:</source>
|
||||||
<translation type="vanished">Sökväg till handbakgrund:</translation>
|
<translation type="obsolete">Sökväg till handbakgrund:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Path to stack background:</source>
|
<source>Path to stack background:</source>
|
||||||
<translation type="vanished">Sökväg till stapelbakgrund:</translation>
|
<translation type="obsolete">Sökväg till stapelbakgrund:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Path to table background:</source>
|
<source>Path to table background:</source>
|
||||||
<translation type="vanished">Sökväg till bordbakgrund:</translation>
|
<translation type="obsolete">Sökväg till bordbakgrund:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Path to player info background:</source>
|
<source>Path to player info background:</source>
|
||||||
<translation type="vanished">Sökväg till spelarinfobakgrund:</translation>
|
<translation type="obsolete">Sökväg till spelarinfobakgrund:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Path to picture of card back:</source>
|
<source>Path to picture of card back:</source>
|
||||||
<translation type="vanished">Sökväg till kortbaksidans bild:</translation>
|
<translation type="obsolete">Sökväg till kortbaksidans bild:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dlg_settings.cpp" line="366"/>
|
<location filename="../src/dlg_settings.cpp" line="366"/>
|
||||||
|
@ -923,7 +923,7 @@ Detta sparas endast för moderatorer och kan inte ses av den bannlysta personen.
|
||||||
<name>DeckEditorSettingsPage</name>
|
<name>DeckEditorSettingsPage</name>
|
||||||
<message>
|
<message>
|
||||||
<source>Enable &price tag feature (using data from blacklotusproject.com)</source>
|
<source>Enable &price tag feature (using data from blacklotusproject.com)</source>
|
||||||
<translation type="vanished">Aktivera &prislappsfunktionen (använder data från blacklotusproject.com)</translation>
|
<translation type="obsolete">Aktivera &prislappsfunktionen (använder data från blacklotusproject.com)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dlg_settings.cpp" line="600"/>
|
<location filename="../src/dlg_settings.cpp" line="600"/>
|
||||||
|
@ -1062,30 +1062,35 @@ Detta sparas endast för moderatorer och kan inte ses av den bannlysta personen.
|
||||||
<context>
|
<context>
|
||||||
<name>DlgConnect</name>
|
<name>DlgConnect</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dlg_connect.cpp" line="15"/>
|
<location filename="../src/dlg_connect.cpp" line="17"/>
|
||||||
<source>&Host:</source>
|
<source>&Host:</source>
|
||||||
<translation>&Värd:</translation>
|
<translation>&Värd:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dlg_connect.cpp" line="19"/>
|
<location filename="../src/dlg_connect.cpp" line="21"/>
|
||||||
<source>&Port:</source>
|
<source>&Port:</source>
|
||||||
<translation>&Port:</translation>
|
<translation>&Port:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dlg_connect.cpp" line="23"/>
|
<location filename="../src/dlg_connect.cpp" line="25"/>
|
||||||
<source>Player &name:</source>
|
<source>Player &name:</source>
|
||||||
<translation>Spelar&namn:</translation>
|
<translation>Spelar&namn:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dlg_connect.cpp" line="27"/>
|
<location filename="../src/dlg_connect.cpp" line="29"/>
|
||||||
<source>P&assword:</source>
|
<source>P&assword:</source>
|
||||||
<translation>&Lösenord:</translation>
|
<translation>&Lösenord:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dlg_connect.cpp" line="32"/>
|
<location filename="../src/dlg_connect.cpp" line="34"/>
|
||||||
<source>&Save password</source>
|
<source>&Save password</source>
|
||||||
<translation>&Spara lösenord</translation>
|
<translation>&Spara lösenord</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/dlg_connect.cpp" line="37"/>
|
||||||
|
<source>A&uto connect at start</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>&OK</source>
|
<source>&OK</source>
|
||||||
<translation type="obsolete">&OK</translation>
|
<translation type="obsolete">&OK</translation>
|
||||||
|
@ -1095,7 +1100,7 @@ Detta sparas endast för moderatorer och kan inte ses av den bannlysta personen.
|
||||||
<translation type="obsolete">&Avbryt</translation>
|
<translation type="obsolete">&Avbryt</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dlg_connect.cpp" line="55"/>
|
<location filename="../src/dlg_connect.cpp" line="71"/>
|
||||||
<source>Connect to server</source>
|
<source>Connect to server</source>
|
||||||
<translation>Anslut till server</translation>
|
<translation>Anslut till server</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -1492,7 +1497,7 @@ Detta sparas endast för moderatorer och kan inte ses av den bannlysta personen.
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Your card database is invalid. Would you like to go back and set the correct path?</source>
|
<source>Your card database is invalid. Would you like to go back and set the correct path?</source>
|
||||||
<translation type="vanished">Din kortdatabas är ogiltig. Vill du gå tillbaka och ange den korrekta sökvägen?</translation>
|
<translation type="obsolete">Din kortdatabas är ogiltig. Vill du gå tillbaka och ange den korrekta sökvägen?</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dlg_settings.cpp" line="776"/>
|
<location filename="../src/dlg_settings.cpp" line="776"/>
|
||||||
|
@ -1878,11 +1883,11 @@ Would you like to change your database location setting?</source>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Path to card database:</source>
|
<source>Path to card database:</source>
|
||||||
<translation type="vanished">Sökväg till kortdatabas:</translation>
|
<translation type="obsolete">Sökväg till kortdatabas:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Path to token database:</source>
|
<source>Path to token database:</source>
|
||||||
<translation type="vanished">Sökväg till jetongdatabas:</translation>
|
<translation type="obsolete">Sökväg till jetongdatabas:</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
@ -2030,7 +2035,7 @@ Anledning till nedstängning: %1</numerusform>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Czech:</source>
|
<source>Czech:</source>
|
||||||
<translation type="vanished">Tjeckiska:</translation>
|
<translation type="obsolete">Tjeckiska:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/window_main.cpp" line="228"/>
|
<location filename="../src/window_main.cpp" line="228"/>
|
||||||
|
@ -2063,7 +2068,7 @@ Anledning till nedstängning: %1</numerusform>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Invalid login data.</source>
|
<source>Invalid login data.</source>
|
||||||
<translation type="vanished">Ogiltig inloggningsdata.</translation>
|
<translation type="obsolete">Ogiltig inloggningsdata.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/window_main.cpp" line="242"/>
|
<location filename="../src/window_main.cpp" line="242"/>
|
||||||
|
@ -2280,12 +2285,12 @@ Lokal version är %1, avlägsen version är %2.</translation>
|
||||||
<message>
|
<message>
|
||||||
<source>%1 has loaded a deck (%2).</source>
|
<source>%1 has loaded a deck (%2).</source>
|
||||||
<comment>female</comment>
|
<comment>female</comment>
|
||||||
<translation type="vanished">%1 har laddat en lek (%2).</translation>
|
<translation type="obsolete">%1 har laddat en lek (%2).</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>%1 has loaded a deck (%2).</source>
|
<source>%1 has loaded a deck (%2).</source>
|
||||||
<comment>male</comment>
|
<comment>male</comment>
|
||||||
<translation type="vanished">%1 har laddat en lek (%2).</translation>
|
<translation type="obsolete">%1 har laddat en lek (%2).</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/messagelogwidget.cpp" line="93"/>
|
<location filename="../src/messagelogwidget.cpp" line="93"/>
|
||||||
|
@ -4054,11 +4059,11 @@ Lokal version är %1, avlägsen version är %2.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Cockatrice decks (*.cod)</source>
|
<source>Cockatrice decks (*.cod)</source>
|
||||||
<translation type="vanished">Cockatricelekar (*.cod)</translation>
|
<translation type="obsolete">Cockatricelekar (*.cod)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Plain text decks (*.dec *.mwDeck)</source>
|
<source>Plain text decks (*.dec *.mwDeck)</source>
|
||||||
<translation type="vanished">Klartextlekar (*.dec *.mwDeck)</translation>
|
<translation type="obsolete">Klartextlekar (*.dec *.mwDeck)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/deck_loader.cpp" line="8"/>
|
<location filename="../src/deck_loader.cpp" line="8"/>
|
||||||
|
@ -4187,11 +4192,11 @@ Lokal version är %1, avlägsen version är %2.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>&OK</source>
|
<source>&OK</source>
|
||||||
<translation type="vanished">&OK</translation>
|
<translation type="obsolete">&OK</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>&Cancel</source>
|
<source>&Cancel</source>
|
||||||
<translation type="vanished">&Avbryt</translation>
|
<translation type="obsolete">&Avbryt</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/tab_admin.cpp" line="40"/>
|
<location filename="../src/tab_admin.cpp" line="40"/>
|
||||||
|
@ -4238,14 +4243,14 @@ Lokal version är %1, avlägsen version är %2.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Administration</source>
|
<source>Administration</source>
|
||||||
<translation type="vanished">Administration</translation>
|
<translation type="obsolete">Administration</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>TabDeckEditor</name>
|
<name>TabDeckEditor</name>
|
||||||
<message>
|
<message>
|
||||||
<source>&Search...</source>
|
<source>&Search...</source>
|
||||||
<translation type="vanished">&Sök...</translation>
|
<translation type="obsolete">&Sök...</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/tab_deck_editor.cpp" line="292"/>
|
<location filename="../src/tab_deck_editor.cpp" line="292"/>
|
||||||
|
@ -4529,7 +4534,7 @@ Please enter a name:</source>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Deck storage</source>
|
<source>Deck storage</source>
|
||||||
<translation type="vanished">Leklagring</translation>
|
<translation type="obsolete">Leklagring</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
@ -4778,7 +4783,7 @@ Please enter a name:</source>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Game replays</source>
|
<source>Game replays</source>
|
||||||
<translation type="vanished">Spelrepriser</translation>
|
<translation type="obsolete">Spelrepriser</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
@ -4818,14 +4823,14 @@ Please enter a name:</source>
|
||||||
<name>TabServer</name>
|
<name>TabServer</name>
|
||||||
<message>
|
<message>
|
||||||
<source>Server</source>
|
<source>Server</source>
|
||||||
<translation type="vanished">Server</translation>
|
<translation type="obsolete">Server</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>TabUserLists</name>
|
<name>TabUserLists</name>
|
||||||
<message>
|
<message>
|
||||||
<source>User lists</source>
|
<source>User lists</source>
|
||||||
<translation type="vanished">Användarlistor</translation>
|
<translation type="obsolete">Användarlistor</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/tab_userlists.cpp" line="48"/>
|
<location filename="../src/tab_userlists.cpp" line="48"/>
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<!DOCTYPE TS>
|
<!DOCTYPE TS>
|
||||||
<TS version="2.1" language="zh_CN">
|
<TS version="2.0" language="zh_CN">
|
||||||
<context>
|
<context>
|
||||||
<name>AbstractCounter</name>
|
<name>AbstractCounter</name>
|
||||||
<message>
|
<message>
|
||||||
|
@ -725,32 +725,37 @@ This is only saved for moderators and cannot be seen by the banned person.</sour
|
||||||
<context>
|
<context>
|
||||||
<name>DlgConnect</name>
|
<name>DlgConnect</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dlg_connect.cpp" line="15"/>
|
<location filename="../src/dlg_connect.cpp" line="17"/>
|
||||||
<source>&Host:</source>
|
<source>&Host:</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dlg_connect.cpp" line="19"/>
|
<location filename="../src/dlg_connect.cpp" line="21"/>
|
||||||
<source>&Port:</source>
|
<source>&Port:</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dlg_connect.cpp" line="23"/>
|
<location filename="../src/dlg_connect.cpp" line="25"/>
|
||||||
<source>Player &name:</source>
|
<source>Player &name:</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dlg_connect.cpp" line="27"/>
|
<location filename="../src/dlg_connect.cpp" line="29"/>
|
||||||
<source>P&assword:</source>
|
<source>P&assword:</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dlg_connect.cpp" line="32"/>
|
<location filename="../src/dlg_connect.cpp" line="34"/>
|
||||||
<source>&Save password</source>
|
<source>&Save password</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dlg_connect.cpp" line="55"/>
|
<location filename="../src/dlg_connect.cpp" line="37"/>
|
||||||
|
<source>A&uto connect at start</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/dlg_connect.cpp" line="71"/>
|
||||||
<source>Connect to server</source>
|
<source>Connect to server</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
|
|
@ -34,7 +34,6 @@
|
||||||
#include <QCoreApplication>
|
#include <QCoreApplication>
|
||||||
#include <QThread>
|
#include <QThread>
|
||||||
#include <QDebug>
|
#include <QDebug>
|
||||||
#include <QSettings>
|
|
||||||
|
|
||||||
Server::Server(bool _threaded, QObject *parent)
|
Server::Server(bool _threaded, QObject *parent)
|
||||||
: QObject(parent), threaded(_threaded), nextLocalGameId(0)
|
: QObject(parent), threaded(_threaded), nextLocalGameId(0)
|
||||||
|
@ -132,8 +131,7 @@ AuthenticationResult Server::loginUser(Server_ProtocolHandler *session, QString
|
||||||
} else if (authState == UnknownUser) {
|
} else if (authState == UnknownUser) {
|
||||||
// Change user name so that no two users have the same names,
|
// Change user name so that no two users have the same names,
|
||||||
// don't interfere with registered user names though.
|
// don't interfere with registered user names though.
|
||||||
QSettings settings("servatrice.ini", QSettings::IniFormat);
|
bool requireReg = databaseInterface->getRequireRegistration();
|
||||||
bool requireReg = settings.value("authentication/regonly", 0).toBool();
|
|
||||||
if (requireReg) {
|
if (requireReg) {
|
||||||
qDebug("Login denied: registration required");
|
qDebug("Login denied: registration required");
|
||||||
databaseInterface->unlockSessionTables();
|
databaseInterface->unlockSessionTables();
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
#define SERVER_DATABASE_INTERFACE_H
|
#define SERVER_DATABASE_INTERFACE_H
|
||||||
|
|
||||||
#include <QObject>
|
#include <QObject>
|
||||||
|
#include <QSettings>
|
||||||
|
|
||||||
#include "server.h"
|
#include "server.h"
|
||||||
|
|
||||||
|
@ -32,6 +33,8 @@ public:
|
||||||
virtual void lockSessionTables() { }
|
virtual void lockSessionTables() { }
|
||||||
virtual void unlockSessionTables() { }
|
virtual void unlockSessionTables() { }
|
||||||
virtual bool userSessionExists(const QString & /* userName */) { return false; }
|
virtual bool userSessionExists(const QString & /* userName */) { return false; }
|
||||||
|
|
||||||
|
virtual bool getRequireRegistration() { return false; }
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -210,11 +210,13 @@ int OracleImporter::importTextSpoiler(CardSet *set, const QVariant &data)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
CardInfo *card = addCard(set->getShortName(), cardName, cardIsToken, cardId, cardCost, cardType, cardPT, cardLoyalty, cardText.split("\n"));
|
if (!cardIsToken) {
|
||||||
|
CardInfo *card = addCard(set->getShortName(), cardName, cardIsToken, cardId, cardCost, cardType, cardPT, cardLoyalty, cardText.split("\n"));
|
||||||
|
|
||||||
if (!set->contains(card)) {
|
if (!set->contains(card)) {
|
||||||
card->addToSet(set);
|
card->addToSet(set);
|
||||||
cards++;
|
cards++;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -7,6 +7,7 @@
|
||||||
#endif
|
#endif
|
||||||
#include <QAbstractButton>
|
#include <QAbstractButton>
|
||||||
#include <QCheckBox>
|
#include <QCheckBox>
|
||||||
|
#include <QDir>
|
||||||
#include <QFileDialog>
|
#include <QFileDialog>
|
||||||
#include <QGridLayout>
|
#include <QGridLayout>
|
||||||
#include <QLabel>
|
#include <QLabel>
|
||||||
|
@ -403,15 +404,13 @@ bool SaveSetsPage::validatePage()
|
||||||
QStandardPaths::standardLocations(QStandardPaths::DataLocation).first();
|
QStandardPaths::standardLocations(QStandardPaths::DataLocation).first();
|
||||||
#endif
|
#endif
|
||||||
QSettings* settings = new QSettings(this);
|
QSettings* settings = new QSettings(this);
|
||||||
QString savePath = settings->value("paths/carddatabase").toString();
|
QString defaultPath = settings->value("paths/carddatabase").toString();
|
||||||
if (savePath.isEmpty()) {
|
|
||||||
QDir().mkpath(dataDir);
|
|
||||||
}
|
|
||||||
QString windowName = tr("Save card database");
|
QString windowName = tr("Save card database");
|
||||||
QString fileType = tr("XML; card database (*.xml)");
|
QString fileType = tr("XML; card database (*.xml)");
|
||||||
|
|
||||||
do {
|
do {
|
||||||
QString fileName;
|
QString fileName;
|
||||||
if (savePath.isEmpty()) {
|
if (defaultPath.isEmpty()) {
|
||||||
if (defaultPathCheckBox->isChecked())
|
if (defaultPathCheckBox->isChecked())
|
||||||
fileName = dataDir + "/cards.xml";
|
fileName = dataDir + "/cards.xml";
|
||||||
else
|
else
|
||||||
|
@ -420,19 +419,25 @@ bool SaveSetsPage::validatePage()
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if (defaultPathCheckBox->isChecked())
|
if (defaultPathCheckBox->isChecked())
|
||||||
fileName = savePath;
|
fileName = defaultPath;
|
||||||
else
|
else
|
||||||
fileName = QFileDialog::getSaveFileName(this, windowName, savePath, fileType);
|
fileName = QFileDialog::getSaveFileName(this, windowName, defaultPath, fileType);
|
||||||
}
|
}
|
||||||
if (fileName.isEmpty()) {
|
if (fileName.isEmpty()) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QFileInfo fi(fileName);
|
||||||
|
QDir fileDir(fi.path());
|
||||||
|
if (!fileDir.exists() && !fileDir.mkpath(fileDir.absolutePath())) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
if (wizard()->importer->saveToFile(fileName))
|
if (wizard()->importer->saveToFile(fileName))
|
||||||
{
|
{
|
||||||
ok = true;
|
ok = true;
|
||||||
QMessageBox::information(this, tr("Success"), tr("The card database has been saved successfully."));
|
QMessageBox::information(this, tr("Success"), tr("The card database has been saved successfully."));
|
||||||
} else {
|
} else {
|
||||||
QMessageBox::critical(this, tr("Error"), tr("The file could not be saved to the desired location."));
|
QMessageBox::critical(this, tr("Error"), tr("The file could not be saved to %1").arg(fileName));;
|
||||||
if (defaultPathCheckBox->isChecked())
|
if (defaultPathCheckBox->isChecked())
|
||||||
defaultPathCheckBox->setChecked(false);
|
defaultPathCheckBox->setChecked(false);
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,8 +4,6 @@
|
||||||
|
|
||||||
PROJECT(servatrice)
|
PROJECT(servatrice)
|
||||||
|
|
||||||
FIND_PACKAGE(Libgcrypt REQUIRED)
|
|
||||||
|
|
||||||
SET(servatrice_SOURCES
|
SET(servatrice_SOURCES
|
||||||
src/main.cpp
|
src/main.cpp
|
||||||
src/passwordhasher.cpp
|
src/passwordhasher.cpp
|
||||||
|
@ -14,10 +12,24 @@ SET(servatrice_SOURCES
|
||||||
src/servatrice_database_interface.cpp
|
src/servatrice_database_interface.cpp
|
||||||
src/server_logger.cpp
|
src/server_logger.cpp
|
||||||
src/serversocketinterface.cpp
|
src/serversocketinterface.cpp
|
||||||
|
src/settingscache.cpp
|
||||||
src/isl_interface.cpp
|
src/isl_interface.cpp
|
||||||
${VERSION_STRING_CPP}
|
${VERSION_STRING_CPP}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
set(servatrice_RESOURCES servatrice.qrc)
|
||||||
|
|
||||||
|
if(WIN32)
|
||||||
|
set(servatrice_SOURCES ${servatrice_SOURCES} servatrice.rc)
|
||||||
|
endif(WIN32)
|
||||||
|
|
||||||
|
|
||||||
|
if(APPLE)
|
||||||
|
set(MACOSX_BUNDLE_ICON_FILE appicon.icns)
|
||||||
|
set_source_files_properties(${CMAKE_CURRENT_SOURCE_DIR}/resources/appicon.icns PROPERTIES MACOSX_PACKAGE_LOCATION Resources)
|
||||||
|
set(servatrice_SOURCES ${servatrice_SOURCES} ${CMAKE_CURRENT_SOURCE_DIR}/resources/appicon.icns)
|
||||||
|
ENDIF(APPLE)
|
||||||
|
|
||||||
set(SERVATRICE_LIBS)
|
set(SERVATRICE_LIBS)
|
||||||
|
|
||||||
# Qt4 stuff
|
# Qt4 stuff
|
||||||
|
@ -29,6 +41,11 @@ if(Qt4_FOUND)
|
||||||
INCLUDE(${QT_USE_FILE})
|
INCLUDE(${QT_USE_FILE})
|
||||||
include_directories(${QT_INCLUDES})
|
include_directories(${QT_INCLUDES})
|
||||||
LIST(APPEND SERVATRICE_LIBS ${QT_LIBRARIES})
|
LIST(APPEND SERVATRICE_LIBS ${QT_LIBRARIES})
|
||||||
|
|
||||||
|
# Libgcrypt is required only with Qt4 to support SHA512 hashing
|
||||||
|
FIND_PACKAGE(Libgcrypt REQUIRED)
|
||||||
|
INCLUDE_DIRECTORIES(${LIBGCRYPT_INCLUDE_DIR})
|
||||||
|
QT4_ADD_RESOURCES(servatrice_RESOURCES_RCC ${servatrice_RESOURCES})
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# qt5 stuff
|
# qt5 stuff
|
||||||
|
@ -50,6 +67,8 @@ if(Qt5Widgets_FOUND)
|
||||||
list(APPEND SERVATRICE_LIBS Sql)
|
list(APPEND SERVATRICE_LIBS Sql)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
QT5_ADD_RESOURCES(servatrice_RESOURCES_RCC ${servatrice_RESOURCES})
|
||||||
|
|
||||||
# guess plugins and libraries directory
|
# guess plugins and libraries directory
|
||||||
set(QT_PLUGINS_DIR "${Qt5Widgets_DIR}/../../../plugins")
|
set(QT_PLUGINS_DIR "${Qt5Widgets_DIR}/../../../plugins")
|
||||||
get_target_property(QT_LIBRARY_DIR Qt5::Core LOCATION)
|
get_target_property(QT_LIBRARY_DIR Qt5::Core LOCATION)
|
||||||
|
@ -60,13 +79,12 @@ SET(QT_DONT_USE_QTGUI TRUE)
|
||||||
|
|
||||||
# Include directories
|
# Include directories
|
||||||
INCLUDE_DIRECTORIES(../common)
|
INCLUDE_DIRECTORIES(../common)
|
||||||
INCLUDE_DIRECTORIES(${LIBGCRYPT_INCLUDE_DIR})
|
|
||||||
INCLUDE_DIRECTORIES(${PROTOBUF_INCLUDE_DIR})
|
INCLUDE_DIRECTORIES(${PROTOBUF_INCLUDE_DIR})
|
||||||
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR}/../common)
|
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR}/../common)
|
||||||
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR})
|
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR})
|
||||||
|
|
||||||
# Build servatrice binary and link it
|
# Build servatrice binary and link it
|
||||||
ADD_EXECUTABLE(servatrice MACOSX_BUNDLE ${servatrice_SOURCES} ${servatrice_MOC_SRCS})
|
ADD_EXECUTABLE(servatrice MACOSX_BUNDLE ${servatrice_SOURCES} ${servatrice_RESOURCES_RCC} ${servatrice_MOC_SRCS})
|
||||||
|
|
||||||
if(Qt4_FOUND)
|
if(Qt4_FOUND)
|
||||||
if(MSVC)
|
if(MSVC)
|
||||||
|
@ -87,12 +105,18 @@ endif()
|
||||||
if(UNIX)
|
if(UNIX)
|
||||||
if(APPLE)
|
if(APPLE)
|
||||||
INSTALL(TARGETS servatrice BUNDLE DESTINATION ./)
|
INSTALL(TARGETS servatrice BUNDLE DESTINATION ./)
|
||||||
|
INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/servatrice.ini.example DESTINATION ./servatrice.app/Contents/Resources/)
|
||||||
|
INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/servatrice.sql DESTINATION ./servatrice.app/Contents/Resources/)
|
||||||
else()
|
else()
|
||||||
# Assume linux
|
# Assume linux
|
||||||
INSTALL(TARGETS servatrice RUNTIME DESTINATION bin/)
|
INSTALL(TARGETS servatrice RUNTIME DESTINATION bin/)
|
||||||
|
INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/servatrice.ini.example DESTINATION share/servatice/)
|
||||||
|
INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/servatrice.sql DESTINATION share/servatice/)
|
||||||
endif()
|
endif()
|
||||||
elseif(WIN32)
|
elseif(WIN32)
|
||||||
INSTALL(TARGETS servatrice RUNTIME DESTINATION ./)
|
INSTALL(TARGETS servatrice RUNTIME DESTINATION ./)
|
||||||
|
INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/servatrice.ini.example DESTINATION ./)
|
||||||
|
INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/servatrice.sql DESTINATION ./)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(APPLE)
|
if(APPLE)
|
||||||
|
|
BIN
servatrice/resources/appicon.icns
Normal file
BIN
servatrice/resources/appicon.ico
Normal file
After Width: | Height: | Size: 361 KiB |
BIN
servatrice/resources/servatrice.png
Normal file
After Width: | Height: | Size: 18 KiB |
323
servatrice/resources/servatrice.svg
Normal file
After Width: | Height: | Size: 20 KiB |
8
servatrice/servatrice.desktop
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
#!/usr/bin/env xdg-open
|
||||||
|
[Desktop Entry]
|
||||||
|
Version=1.0
|
||||||
|
Type=Application
|
||||||
|
Name=Servatrice
|
||||||
|
Exec=servatrice
|
||||||
|
Icon=servatrice
|
||||||
|
Categories=Game;CardGame;
|
|
@ -1,50 +1,160 @@
|
||||||
|
; Servatrice configuration file
|
||||||
|
;
|
||||||
|
; This is the main configuration file for Servatrice; while using a configuration is not mandatory,
|
||||||
|
; you may want to customize some aspects of your servatrice instance, like its name, port or the way
|
||||||
|
; users can authenticate to the server.
|
||||||
|
|
||||||
|
|
||||||
[server]
|
[server]
|
||||||
port=4747
|
|
||||||
statusupdate=15000
|
; This is the name that servatrice exposes to the users; the default value is pretty boring
|
||||||
logfile=server.log
|
|
||||||
name="My Cockatrice server"
|
name="My Cockatrice server"
|
||||||
|
|
||||||
|
; Multiple servatrice servers can run on the same host using the same database; each server instance
|
||||||
|
; must have a different id; the default id is 1
|
||||||
id=1
|
id=1
|
||||||
|
|
||||||
|
; The TCP port number servatrice will listen on for clients; default is 4747
|
||||||
|
port=4747
|
||||||
|
|
||||||
|
; Servatrice can scale up to serve big number of users using more than one parallel thread of execution;
|
||||||
|
; If your server is hosting a lot of players and they frequently report of being unable to login or
|
||||||
|
; long delays (lag), you may want to try increasing this value; default is 1.
|
||||||
number_pools=1
|
number_pools=1
|
||||||
|
|
||||||
|
; When database is enabled, servatrice writes the server status in the "update" database table; this
|
||||||
|
; setting defines every how many milliseconds servatrice will update its status; default is 15000 (15 secs)
|
||||||
|
statusupdate=15000
|
||||||
|
|
||||||
|
; Do you want servatrice to write important events and errors to a logfile? Default is 1 (yes).
|
||||||
writelog=1
|
writelog=1
|
||||||
|
|
||||||
|
; Choose a name for the log file, if enabled; you can specify an absolute path or a path relative to
|
||||||
|
; the servatrice executable; the default file name is server.log (in the same path as servatrice)
|
||||||
|
logfile=server.log
|
||||||
|
|
||||||
|
; You may want to silence some commonly recurring messages in the logfile. This setting can contain a
|
||||||
|
; comma-separed list of words; if any message that is about to be logged contains at least one of these words,
|
||||||
|
; it won't be logged. Default is empty; example: "kittens,ponies,faires"
|
||||||
logfilters=""
|
logfilters=""
|
||||||
|
|
||||||
[servernetwork]
|
|
||||||
active=0
|
|
||||||
port=14747
|
|
||||||
ssl_cert=ssl_cert.pem
|
|
||||||
ssl_key=ssl_key.pem
|
|
||||||
|
|
||||||
[authentication]
|
[authentication]
|
||||||
|
|
||||||
|
; Servatrice can authenticate users connecting. It currently supports 3 different authentication methods:
|
||||||
|
; * none: no authentication, accept every user;
|
||||||
|
; * password: require users to specify a common password to log in;
|
||||||
|
; * sql: authenticate users against the "users" table of the database;
|
||||||
|
; Please note that only the "sql" method permits to have registered users and store their data on the server.
|
||||||
method=none
|
method=none
|
||||||
|
|
||||||
|
; if the chosen authentication method is password, here you can define the password your users will use to log in
|
||||||
|
password=123456
|
||||||
|
|
||||||
|
; Accept only registered users? default is 0 (accept unregistered users)
|
||||||
regonly=0
|
regonly=0
|
||||||
|
|
||||||
|
|
||||||
[database]
|
[database]
|
||||||
|
|
||||||
|
; Database type. Valid values are:
|
||||||
|
; * none: no database;
|
||||||
|
; * mysql: mysql or compatible database;
|
||||||
type=none
|
type=none
|
||||||
|
|
||||||
|
; Prefix used in he database for table names; default is cockatrice
|
||||||
prefix=cockatrice
|
prefix=cockatrice
|
||||||
|
|
||||||
|
; Database connection parameter: server hostname or IP
|
||||||
hostname=localhost
|
hostname=localhost
|
||||||
|
|
||||||
|
; Database connection parameter: database name
|
||||||
database=servatrice
|
database=servatrice
|
||||||
|
|
||||||
|
; Database connection parameter: database user
|
||||||
user=servatrice
|
user=servatrice
|
||||||
|
|
||||||
|
; Database connection parameter: database user's password
|
||||||
password=foobar
|
password=foobar
|
||||||
|
|
||||||
[rooms]
|
[rooms]
|
||||||
|
|
||||||
|
; A servtrice server can expose to the users different "rooms" to chat and create games. Rooms can be defined
|
||||||
|
; with two different methods:
|
||||||
|
; config: rooms are defined in this configuration (see the following example)
|
||||||
|
; sql: rooms are defined in the "rooms" table of the database
|
||||||
method=config
|
method=config
|
||||||
|
|
||||||
|
; Example configuration for a server with rooms configured in the configuration file. Number of rooms defined
|
||||||
roomlist\size=1
|
roomlist\size=1
|
||||||
|
|
||||||
|
; Room name for the room number 1
|
||||||
roomlist\1\name="General room"
|
roomlist\1\name="General room"
|
||||||
|
|
||||||
|
; Room description for the room number 1
|
||||||
roomlist\1\description="Play anything here."
|
roomlist\1\description="Play anything here."
|
||||||
|
|
||||||
|
; Wether to make users autojoin this room when connected to the server
|
||||||
roomlist\1\autojoin=true
|
roomlist\1\autojoin=true
|
||||||
|
|
||||||
|
; Message displayed to each user when he joins room number 1
|
||||||
roomlist\1\joinmessage="This message is only here to show that rooms can have a join message."
|
roomlist\1\joinmessage="This message is only here to show that rooms can have a join message."
|
||||||
|
|
||||||
|
; Number of game types allowed (defined) in the room number 1
|
||||||
roomlist\1\game_types\size=3
|
roomlist\1\game_types\size=3
|
||||||
|
|
||||||
|
; Name of the three game types for the room number 1
|
||||||
roomlist\1\game_types\1\name="GameType1"
|
roomlist\1\game_types\1\name="GameType1"
|
||||||
roomlist\1\game_types\2\name="GameType2"
|
roomlist\1\game_types\2\name="GameType2"
|
||||||
roomlist\1\game_types\3\name="GameType3"
|
roomlist\1\game_types\3\name="GameType3"
|
||||||
|
|
||||||
|
|
||||||
[game]
|
[game]
|
||||||
max_game_inactivity_time=120
|
|
||||||
|
; Maximum time in seconds a player can stay inactive, with his client hot even responding to pings, before is
|
||||||
|
; considered disconnected; default is 15
|
||||||
max_player_inactivity_time=15
|
max_player_inactivity_time=15
|
||||||
|
|
||||||
|
; Maximum time in seconds all players in a game can stay inactive before the game is automatically closed;
|
||||||
|
; default is 120
|
||||||
|
max_game_inactivity_time=120
|
||||||
|
|
||||||
|
|
||||||
[security]
|
[security]
|
||||||
|
|
||||||
|
; Maximum number of users that can connect from the same IP address; useful to avoid bots, default is 4
|
||||||
max_users_per_address=4
|
max_users_per_address=4
|
||||||
|
|
||||||
|
; Servatrice can avoid users from flooding rooms with large number messages in an interval of time.
|
||||||
|
; This setting defines the length in seconds of the considered interval; default is 10
|
||||||
message_counting_interval=10
|
message_counting_interval=10
|
||||||
|
|
||||||
|
; Maximum size in characters of all messages in an interval before new messages gets dropped; default is 1000
|
||||||
max_message_size_per_interval=1000
|
max_message_size_per_interval=1000
|
||||||
|
|
||||||
|
; Maximum number of messages in an interval before new messages gets dropped; default is 10
|
||||||
max_message_count_per_interval=10
|
max_message_count_per_interval=10
|
||||||
|
|
||||||
|
; Maximum number of games a single user can create; default is 5
|
||||||
max_games_per_user=5
|
max_games_per_user=5
|
||||||
|
|
||||||
|
|
||||||
|
; EXPERIMENTAL - NOT WORKING YET
|
||||||
|
; The following settings are relative to the server network functionality, that is not yet complete.
|
||||||
|
; Avoid enabling it unless you are willing to test it and help its development.
|
||||||
|
|
||||||
|
[servernetwork]
|
||||||
|
|
||||||
|
; Servatrice servers can connect themselves and build a network. This settins enable the ability of servatrice
|
||||||
|
; of waiting for other server's connections and connect to other servers. Other servers can be defined in the
|
||||||
|
; "servers" table of the database. Default is 0 (disabled)
|
||||||
|
active=0
|
||||||
|
|
||||||
|
; The TCP port number servatrice will listen on for other servers; default is 14747
|
||||||
|
port=14747
|
||||||
|
|
||||||
|
; Server-to-server communication needs a valid certificate in PEM format. Enter its filename in this setting
|
||||||
|
ssl_cert=ssl_cert.pem
|
||||||
|
|
||||||
|
; Filename of the private key for the server-to-server certificate
|
||||||
|
ssl_key=ssl_key.pem
|
||||||
|
|
5
servatrice/servatrice.qrc
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
<RCC>
|
||||||
|
<qresource prefix="/" >
|
||||||
|
<file alias="resources/appicon.svg">resources/servatrice.svg</file>
|
||||||
|
</qresource>
|
||||||
|
</RCC>
|
1
servatrice/servatrice.rc
Normal file
|
@ -0,0 +1 @@
|
||||||
|
ID1_ICON1 ICON DISCARDABLE "resources/appicon.ico"
|
|
@ -1,4 +1,4 @@
|
||||||
-- phpMyAdmin SQL Dump
|
-- phpMyAdmin SQL Dump
|
||||||
-- version 2.11.8.1deb1ubuntu0.2
|
-- version 2.11.8.1deb1ubuntu0.2
|
||||||
-- http://www.phpmyadmin.net
|
-- http://www.phpmyadmin.net
|
||||||
--
|
--
|
||||||
|
@ -208,3 +208,18 @@ CREATE TABLE `cockatrice_replays_access` (
|
||||||
KEY `id_game` (`id_game`)
|
KEY `id_game` (`id_game`)
|
||||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS `cockatrice_rooms` (
|
||||||
|
`id` int(7) unsigned NOT NULL auto_increment,
|
||||||
|
`name` varchar(50) NOT NULL,
|
||||||
|
`descr` varchar(255) NOT NULL,
|
||||||
|
`auto_join` tinyint(1) default 0,
|
||||||
|
`join_message` varchar(255) NOT NULL,
|
||||||
|
PRIMARY KEY (`id`)
|
||||||
|
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS `cockatrice_rooms_gametypes` (
|
||||||
|
`id_room` int(7) unsigned NOT NULL,
|
||||||
|
`name` varchar(50) NOT NULL,
|
||||||
|
PRIMARY KEY (`id_room`)
|
||||||
|
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||||
|
|
||||||
|
|
|
@ -20,13 +20,14 @@
|
||||||
|
|
||||||
#include <QCoreApplication>
|
#include <QCoreApplication>
|
||||||
#include <QTextCodec>
|
#include <QTextCodec>
|
||||||
|
#include <QtGlobal>
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <QMetaType>
|
#include <QMetaType>
|
||||||
#include <QSettings>
|
|
||||||
#include <QDateTime>
|
#include <QDateTime>
|
||||||
#include "passwordhasher.h"
|
#include "passwordhasher.h"
|
||||||
#include "servatrice.h"
|
#include "servatrice.h"
|
||||||
#include "server_logger.h"
|
#include "server_logger.h"
|
||||||
|
#include "settingscache.h"
|
||||||
#include "rng_sfmt.h"
|
#include "rng_sfmt.h"
|
||||||
#include "version_string.h"
|
#include "version_string.h"
|
||||||
#include <google/protobuf/stubs/common.h>
|
#include <google/protobuf/stubs/common.h>
|
||||||
|
@ -37,6 +38,7 @@
|
||||||
RNG_Abstract *rng;
|
RNG_Abstract *rng;
|
||||||
ServerLogger *logger;
|
ServerLogger *logger;
|
||||||
QThread *loggerThread;
|
QThread *loggerThread;
|
||||||
|
SettingsCache *settingsCache;
|
||||||
|
|
||||||
/* Prototypes */
|
/* Prototypes */
|
||||||
|
|
||||||
|
@ -150,6 +152,10 @@ int main(int argc, char *argv[])
|
||||||
bool testRandom = args.contains("--test-random");
|
bool testRandom = args.contains("--test-random");
|
||||||
bool testHashFunction = args.contains("--test-hash");
|
bool testHashFunction = args.contains("--test-hash");
|
||||||
bool logToConsole = args.contains("--log-to-console");
|
bool logToConsole = args.contains("--log-to-console");
|
||||||
|
QString configPath;
|
||||||
|
int hasConfigPath=args.indexOf("--config");
|
||||||
|
if(hasConfigPath > -1 && args.count() > hasConfigPath + 1)
|
||||||
|
configPath = args.at(hasConfigPath + 1);
|
||||||
|
|
||||||
qRegisterMetaType<QList<int> >("QList<int>");
|
qRegisterMetaType<QList<int> >("QList<int>");
|
||||||
|
|
||||||
|
@ -158,7 +164,9 @@ int main(int argc, char *argv[])
|
||||||
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));
|
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
QSettings *settings = new QSettings("servatrice.ini", QSettings::IniFormat);
|
configPath = SettingsCache::guessConfigurationPath(configPath);
|
||||||
|
qWarning() << "Using configuration file: " << configPath;
|
||||||
|
settingsCache = new SettingsCache(configPath);
|
||||||
|
|
||||||
loggerThread = new QThread;
|
loggerThread = new QThread;
|
||||||
loggerThread->setObjectName("logger");
|
loggerThread->setObjectName("logger");
|
||||||
|
@ -166,7 +174,7 @@ int main(int argc, char *argv[])
|
||||||
logger->moveToThread(loggerThread);
|
logger->moveToThread(loggerThread);
|
||||||
|
|
||||||
loggerThread->start();
|
loggerThread->start();
|
||||||
QMetaObject::invokeMethod(logger, "startLog", Qt::BlockingQueuedConnection, Q_ARG(QString, settings->value("server/logfile").toString()));
|
QMetaObject::invokeMethod(logger, "startLog", Qt::BlockingQueuedConnection, Q_ARG(QString, settingsCache->value("server/logfile", QString("server.log")).toString()));
|
||||||
|
|
||||||
#if QT_VERSION < 0x050000
|
#if QT_VERSION < 0x050000
|
||||||
if (logToConsole)
|
if (logToConsole)
|
||||||
|
@ -209,7 +217,7 @@ int main(int argc, char *argv[])
|
||||||
if (testHashFunction)
|
if (testHashFunction)
|
||||||
testHash();
|
testHash();
|
||||||
|
|
||||||
Servatrice *server = new Servatrice(settings);
|
Servatrice *server = new Servatrice();
|
||||||
QObject::connect(server, SIGNAL(destroyed()), &app, SLOT(quit()), Qt::QueuedConnection);
|
QObject::connect(server, SIGNAL(destroyed()), &app, SLOT(quit()), Qt::QueuedConnection);
|
||||||
int retval = 0;
|
int retval = 0;
|
||||||
if (server->initServer()) {
|
if (server->initServer()) {
|
||||||
|
@ -228,7 +236,7 @@ int main(int argc, char *argv[])
|
||||||
}
|
}
|
||||||
|
|
||||||
delete rng;
|
delete rng;
|
||||||
delete settings;
|
delete settingsCache;
|
||||||
|
|
||||||
logger->deleteLater();
|
logger->deleteLater();
|
||||||
loggerThread->wait();
|
loggerThread->wait();
|
||||||
|
|
|
@ -1,32 +1,53 @@
|
||||||
#include "passwordhasher.h"
|
#include "passwordhasher.h"
|
||||||
#include <stdio.h>
|
|
||||||
#include <string.h>
|
#if QT_VERSION < 0x050000
|
||||||
#include <gcrypt.h>
|
#include <stdio.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include <gcrypt.h>
|
||||||
|
#else
|
||||||
|
#include <QCryptographicHash>
|
||||||
|
#endif
|
||||||
|
|
||||||
void PasswordHasher::initialize()
|
void PasswordHasher::initialize()
|
||||||
{
|
{
|
||||||
// These calls are required by libgcrypt before we use any of its functions.
|
#if QT_VERSION < 0x050000
|
||||||
gcry_check_version(0);
|
// These calls are required by libgcrypt before we use any of its functions.
|
||||||
gcry_control(GCRYCTL_DISABLE_SECMEM, 0);
|
gcry_check_version(0);
|
||||||
gcry_control(GCRYCTL_INITIALIZATION_FINISHED, 0);
|
gcry_control(GCRYCTL_DISABLE_SECMEM, 0);
|
||||||
|
gcry_control(GCRYCTL_INITIALIZATION_FINISHED, 0);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if QT_VERSION < 0x050000
|
||||||
QString PasswordHasher::computeHash(const QString &password, const QString &salt)
|
QString PasswordHasher::computeHash(const QString &password, const QString &salt)
|
||||||
{
|
{
|
||||||
const int algo = GCRY_MD_SHA512;
|
const int algo = GCRY_MD_SHA512;
|
||||||
const int rounds = 1000;
|
const int rounds = 1000;
|
||||||
|
|
||||||
QByteArray passwordBuffer = (salt + password).toUtf8();
|
QByteArray passwordBuffer = (salt + password).toUtf8();
|
||||||
int hashLen = gcry_md_get_algo_dlen(algo);
|
int hashLen = gcry_md_get_algo_dlen(algo);
|
||||||
char *hash = new char[hashLen], *tmp = new char[hashLen];
|
char *hash = new char[hashLen], *tmp = new char[hashLen];
|
||||||
gcry_md_hash_buffer(algo, hash, passwordBuffer.data(), passwordBuffer.size());
|
gcry_md_hash_buffer(algo, hash, passwordBuffer.data(), passwordBuffer.size());
|
||||||
for (int i = 1; i < rounds; ++i) {
|
for (int i = 1; i < rounds; ++i) {
|
||||||
memcpy(tmp, hash, hashLen);
|
memcpy(tmp, hash, hashLen);
|
||||||
gcry_md_hash_buffer(algo, hash, tmp, hashLen);
|
gcry_md_hash_buffer(algo, hash, tmp, hashLen);
|
||||||
}
|
}
|
||||||
QString hashedPass = salt + QString(QByteArray(hash, hashLen).toBase64());
|
QString hashedPass = salt + QString(QByteArray(hash, hashLen).toBase64());
|
||||||
delete[] tmp;
|
delete[] tmp;
|
||||||
delete[] hash;
|
delete[] hash;
|
||||||
return hashedPass;
|
return hashedPass;
|
||||||
}
|
}
|
||||||
|
#else
|
||||||
|
QString PasswordHasher::computeHash(const QString &password, const QString &salt)
|
||||||
|
{
|
||||||
|
QCryptographicHash::Algorithm algo = QCryptographicHash::Sha512;
|
||||||
|
const int rounds = 1000;
|
||||||
|
|
||||||
|
QByteArray hash = (salt + password).toUtf8();
|
||||||
|
for (int i = 0; i < rounds; ++i) {
|
||||||
|
hash = QCryptographicHash::hash(hash, algo);
|
||||||
|
}
|
||||||
|
QString hashedPass = salt + QString(hash.toBase64());
|
||||||
|
return hashedPass;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
|
@ -18,7 +18,6 @@
|
||||||
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
|
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
#include <QSqlQuery>
|
#include <QSqlQuery>
|
||||||
#include <QSettings>
|
|
||||||
#include <QFile>
|
#include <QFile>
|
||||||
#include <QTimer>
|
#include <QTimer>
|
||||||
#include <QDateTime>
|
#include <QDateTime>
|
||||||
|
@ -28,6 +27,7 @@
|
||||||
#include "servatrice_database_interface.h"
|
#include "servatrice_database_interface.h"
|
||||||
#include "servatrice_connection_pool.h"
|
#include "servatrice_connection_pool.h"
|
||||||
#include "server_room.h"
|
#include "server_room.h"
|
||||||
|
#include "settingscache.h"
|
||||||
#include "serversocketinterface.h"
|
#include "serversocketinterface.h"
|
||||||
#include "isl_interface.h"
|
#include "isl_interface.h"
|
||||||
#include "server_logger.h"
|
#include "server_logger.h"
|
||||||
|
@ -120,8 +120,8 @@ void Servatrice_IslServer::incomingConnection(int socketDescriptor)
|
||||||
QMetaObject::invokeMethod(interface, "initServer", Qt::QueuedConnection);
|
QMetaObject::invokeMethod(interface, "initServer", Qt::QueuedConnection);
|
||||||
}
|
}
|
||||||
|
|
||||||
Servatrice::Servatrice(QSettings *_settings, QObject *parent)
|
Servatrice::Servatrice(QObject *parent)
|
||||||
: Server(true, parent), settings(_settings), uptime(0), shutdownTimer(0)
|
: Server(true, parent), uptime(0), shutdownTimer(0)
|
||||||
{
|
{
|
||||||
qRegisterMetaType<QSqlDatabase>("QSqlDatabase");
|
qRegisterMetaType<QSqlDatabase>("QSqlDatabase");
|
||||||
}
|
}
|
||||||
|
@ -134,22 +134,28 @@ Servatrice::~Servatrice()
|
||||||
|
|
||||||
bool Servatrice::initServer()
|
bool Servatrice::initServer()
|
||||||
{
|
{
|
||||||
serverName = settings->value("server/name").toString();
|
serverName = settingsCache->value("server/name", "My Cockatrice server").toString();
|
||||||
serverId = settings->value("server/id", 0).toInt();
|
serverId = settingsCache->value("server/id", 0).toInt();
|
||||||
bool regServerOnly = settings->value("server/regonly", 0).toBool();
|
bool regServerOnly = settingsCache->value("authentication/regonly", 0).toBool();
|
||||||
|
|
||||||
const QString authenticationMethodStr = settings->value("authentication/method").toString();
|
const QString authenticationMethodStr = settingsCache->value("authentication/method").toString();
|
||||||
if (authenticationMethodStr == "sql") {
|
if (authenticationMethodStr == "sql") {
|
||||||
|
qDebug() << "Authenticating method: sql";
|
||||||
authenticationMethod = AuthenticationSql;
|
authenticationMethod = AuthenticationSql;
|
||||||
|
} else if(authenticationMethodStr == "password") {
|
||||||
|
qDebug() << "Authenticating method: password";
|
||||||
|
authenticationMethod = AuthenticationPassword;
|
||||||
} else {
|
} else {
|
||||||
if (regServerOnly) {
|
if (regServerOnly) {
|
||||||
qDebug() << "Registration only server enabled but no DB Connection : Error.";
|
qDebug() << "Registration only server enabled but no authentication method defined: Error.";
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
qDebug() << "Authenticating method: none";
|
||||||
authenticationMethod = AuthenticationNone;
|
authenticationMethod = AuthenticationNone;
|
||||||
}
|
}
|
||||||
|
|
||||||
QString dbTypeStr = settings->value("database/type").toString();
|
QString dbTypeStr = settingsCache->value("database/type").toString();
|
||||||
if (dbTypeStr == "mysql")
|
if (dbTypeStr == "mysql")
|
||||||
databaseType = DatabaseMySql;
|
databaseType = DatabaseMySql;
|
||||||
else
|
else
|
||||||
|
@ -159,14 +165,14 @@ bool Servatrice::initServer()
|
||||||
setDatabaseInterface(servatriceDatabaseInterface);
|
setDatabaseInterface(servatriceDatabaseInterface);
|
||||||
|
|
||||||
if (databaseType != DatabaseNone) {
|
if (databaseType != DatabaseNone) {
|
||||||
settings->beginGroup("database");
|
settingsCache->beginGroup("database");
|
||||||
dbPrefix = settings->value("prefix").toString();
|
dbPrefix = settingsCache->value("prefix").toString();
|
||||||
servatriceDatabaseInterface->initDatabase("QMYSQL",
|
servatriceDatabaseInterface->initDatabase("QMYSQL",
|
||||||
settings->value("hostname").toString(),
|
settingsCache->value("hostname").toString(),
|
||||||
settings->value("database").toString(),
|
settingsCache->value("database").toString(),
|
||||||
settings->value("user").toString(),
|
settingsCache->value("user").toString(),
|
||||||
settings->value("password").toString());
|
settingsCache->value("password").toString());
|
||||||
settings->endGroup();
|
settingsCache->endGroup();
|
||||||
|
|
||||||
updateServerList();
|
updateServerList();
|
||||||
|
|
||||||
|
@ -174,7 +180,7 @@ bool Servatrice::initServer()
|
||||||
servatriceDatabaseInterface->clearSessionTables();
|
servatriceDatabaseInterface->clearSessionTables();
|
||||||
}
|
}
|
||||||
|
|
||||||
const QString roomMethod = settings->value("rooms/method").toString();
|
const QString roomMethod = settingsCache->value("rooms/method").toString();
|
||||||
if (roomMethod == "sql") {
|
if (roomMethod == "sql") {
|
||||||
QSqlQuery query(servatriceDatabaseInterface->getDatabase());
|
QSqlQuery query(servatriceDatabaseInterface->getDatabase());
|
||||||
query.prepare("select id, name, descr, auto_join, join_message from " + dbPrefix + "_rooms order by id asc");
|
query.prepare("select id, name, descr, auto_join, join_message from " + dbPrefix + "_rooms order by id asc");
|
||||||
|
@ -198,47 +204,63 @@ bool Servatrice::initServer()
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
int size = settings->beginReadArray("rooms/roomlist");
|
int size = settingsCache->beginReadArray("rooms/roomlist");
|
||||||
for (int i = 0; i < size; ++i) {
|
for (int i = 0; i < size; ++i) {
|
||||||
settings->setArrayIndex(i);
|
settingsCache->setArrayIndex(i);
|
||||||
|
|
||||||
QStringList gameTypes;
|
QStringList gameTypes;
|
||||||
int size2 = settings->beginReadArray("game_types");
|
int size2 = settingsCache->beginReadArray("game_types");
|
||||||
for (int j = 0; j < size2; ++j) {
|
for (int j = 0; j < size2; ++j) {
|
||||||
settings->setArrayIndex(j);
|
settingsCache->setArrayIndex(j);
|
||||||
gameTypes.append(settings->value("name").toString());
|
gameTypes.append(settingsCache->value("name").toString());
|
||||||
}
|
}
|
||||||
settings->endArray();
|
settingsCache->endArray();
|
||||||
|
|
||||||
Server_Room *newRoom = new Server_Room(
|
Server_Room *newRoom = new Server_Room(
|
||||||
i,
|
i,
|
||||||
settings->value("name").toString(),
|
settingsCache->value("name").toString(),
|
||||||
settings->value("description").toString(),
|
settingsCache->value("description").toString(),
|
||||||
settings->value("autojoin").toBool(),
|
settingsCache->value("autojoin").toBool(),
|
||||||
settings->value("joinmessage").toString(),
|
settingsCache->value("joinmessage").toString(),
|
||||||
gameTypes,
|
gameTypes,
|
||||||
this
|
this
|
||||||
);
|
);
|
||||||
addRoom(newRoom);
|
addRoom(newRoom);
|
||||||
}
|
}
|
||||||
settings->endArray();
|
|
||||||
|
if(size==0)
|
||||||
|
{
|
||||||
|
// no room defined in config, add a dummy one
|
||||||
|
Server_Room *newRoom = new Server_Room(
|
||||||
|
0,
|
||||||
|
"General room",
|
||||||
|
"Play anything here.",
|
||||||
|
true,
|
||||||
|
"",
|
||||||
|
QStringList("Standard"),
|
||||||
|
this
|
||||||
|
);
|
||||||
|
addRoom(newRoom);
|
||||||
|
}
|
||||||
|
|
||||||
|
settingsCache->endArray();
|
||||||
}
|
}
|
||||||
|
|
||||||
updateLoginMessage();
|
updateLoginMessage();
|
||||||
|
|
||||||
maxGameInactivityTime = settings->value("game/max_game_inactivity_time").toInt();
|
maxGameInactivityTime = settingsCache->value("game/max_game_inactivity_time", 120).toInt();
|
||||||
maxPlayerInactivityTime = settings->value("game/max_player_inactivity_time").toInt();
|
maxPlayerInactivityTime = settingsCache->value("game/max_player_inactivity_time", 15).toInt();
|
||||||
|
|
||||||
maxUsersPerAddress = settings->value("security/max_users_per_address").toInt();
|
maxUsersPerAddress = settingsCache->value("security/max_users_per_address", 4).toInt();
|
||||||
messageCountingInterval = settings->value("security/message_counting_interval").toInt();
|
messageCountingInterval = settingsCache->value("security/message_counting_interval", 10).toInt();
|
||||||
maxMessageCountPerInterval = settings->value("security/max_message_count_per_interval").toInt();
|
maxMessageCountPerInterval = settingsCache->value("security/max_message_count_per_interval", 10).toInt();
|
||||||
maxMessageSizePerInterval = settings->value("security/max_message_size_per_interval").toInt();
|
maxMessageSizePerInterval = settingsCache->value("security/max_message_size_per_interval", 1000).toInt();
|
||||||
maxGamesPerUser = settings->value("security/max_games_per_user").toInt();
|
maxGamesPerUser = settingsCache->value("security/max_games_per_user", 5).toInt();
|
||||||
|
|
||||||
try { if (settings->value("servernetwork/active", 0).toInt()) {
|
try { if (settingsCache->value("servernetwork/active", 0).toInt()) {
|
||||||
qDebug() << "Connecting to ISL network.";
|
qDebug() << "Connecting to ISL network.";
|
||||||
const QString certFileName = settings->value("servernetwork/ssl_cert").toString();
|
const QString certFileName = settingsCache->value("servernetwork/ssl_cert").toString();
|
||||||
const QString keyFileName = settings->value("servernetwork/ssl_key").toString();
|
const QString keyFileName = settingsCache->value("servernetwork/ssl_key").toString();
|
||||||
qDebug() << "Loading certificate...";
|
qDebug() << "Loading certificate...";
|
||||||
QFile certFile(certFileName);
|
QFile certFile(certFileName);
|
||||||
if (!certFile.open(QIODevice::ReadOnly))
|
if (!certFile.open(QIODevice::ReadOnly))
|
||||||
|
@ -282,7 +304,7 @@ bool Servatrice::initServer()
|
||||||
QMetaObject::invokeMethod(interface, "initClient", Qt::BlockingQueuedConnection);
|
QMetaObject::invokeMethod(interface, "initClient", Qt::BlockingQueuedConnection);
|
||||||
}
|
}
|
||||||
|
|
||||||
const int networkPort = settings->value("servernetwork/port", 14747).toInt();
|
const int networkPort = settingsCache->value("servernetwork/port", 14747).toInt();
|
||||||
qDebug() << "Starting ISL server on port" << networkPort;
|
qDebug() << "Starting ISL server on port" << networkPort;
|
||||||
|
|
||||||
islServer = new Servatrice_IslServer(this, cert, key, this);
|
islServer = new Servatrice_IslServer(this, cert, key, this);
|
||||||
|
@ -299,7 +321,7 @@ bool Servatrice::initServer()
|
||||||
connect(pingClock, SIGNAL(timeout()), this, SIGNAL(pingClockTimeout()));
|
connect(pingClock, SIGNAL(timeout()), this, SIGNAL(pingClockTimeout()));
|
||||||
pingClock->start(1000);
|
pingClock->start(1000);
|
||||||
|
|
||||||
int statusUpdateTime = settings->value("server/statusupdate").toInt();
|
int statusUpdateTime = settingsCache->value("server/statusupdate", 15000).toInt();
|
||||||
statusUpdateClock = new QTimer(this);
|
statusUpdateClock = new QTimer(this);
|
||||||
connect(statusUpdateClock, SIGNAL(timeout()), this, SLOT(statusUpdate()));
|
connect(statusUpdateClock, SIGNAL(timeout()), this, SLOT(statusUpdate()));
|
||||||
if (statusUpdateTime != 0) {
|
if (statusUpdateTime != 0) {
|
||||||
|
@ -307,10 +329,10 @@ bool Servatrice::initServer()
|
||||||
statusUpdateClock->start(statusUpdateTime);
|
statusUpdateClock->start(statusUpdateTime);
|
||||||
}
|
}
|
||||||
|
|
||||||
const int numberPools = settings->value("server/number_pools", 1).toInt();
|
const int numberPools = settingsCache->value("server/number_pools", 1).toInt();
|
||||||
gameServer = new Servatrice_GameServer(this, numberPools, servatriceDatabaseInterface->getDatabase(), this);
|
gameServer = new Servatrice_GameServer(this, numberPools, servatriceDatabaseInterface->getDatabase(), this);
|
||||||
gameServer->setMaxPendingConnections(1000);
|
gameServer->setMaxPendingConnections(1000);
|
||||||
const int gamePort = settings->value("server/port", 4747).toInt();
|
const int gamePort = settingsCache->value("server/port", 4747).toInt();
|
||||||
qDebug() << "Starting server on port" << gamePort;
|
qDebug() << "Starting server on port" << gamePort;
|
||||||
if (gameServer->listen(QHostAddress::Any, gamePort))
|
if (gameServer->listen(QHostAddress::Any, gamePort))
|
||||||
qDebug() << "Server listening.";
|
qDebug() << "Server listening.";
|
||||||
|
|
|
@ -32,7 +32,6 @@
|
||||||
|
|
||||||
Q_DECLARE_METATYPE(QSqlDatabase)
|
Q_DECLARE_METATYPE(QSqlDatabase)
|
||||||
|
|
||||||
class QSettings;
|
|
||||||
class QSqlQuery;
|
class QSqlQuery;
|
||||||
class QTimer;
|
class QTimer;
|
||||||
|
|
||||||
|
@ -89,7 +88,7 @@ class Servatrice : public Server
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
enum AuthenticationMethod { AuthenticationNone, AuthenticationSql };
|
enum AuthenticationMethod { AuthenticationNone, AuthenticationSql, AuthenticationPassword };
|
||||||
private slots:
|
private slots:
|
||||||
void statusUpdate();
|
void statusUpdate();
|
||||||
void shutdownTimeout();
|
void shutdownTimeout();
|
||||||
|
@ -106,7 +105,6 @@ private:
|
||||||
mutable QMutex loginMessageMutex;
|
mutable QMutex loginMessageMutex;
|
||||||
QString loginMessage;
|
QString loginMessage;
|
||||||
QString dbPrefix;
|
QString dbPrefix;
|
||||||
QSettings *settings;
|
|
||||||
Servatrice_DatabaseInterface *servatriceDatabaseInterface;
|
Servatrice_DatabaseInterface *servatriceDatabaseInterface;
|
||||||
int serverId;
|
int serverId;
|
||||||
int uptime;
|
int uptime;
|
||||||
|
@ -128,7 +126,7 @@ public slots:
|
||||||
void scheduleShutdown(const QString &reason, int minutes);
|
void scheduleShutdown(const QString &reason, int minutes);
|
||||||
void updateLoginMessage();
|
void updateLoginMessage();
|
||||||
public:
|
public:
|
||||||
Servatrice(QSettings *_settings, QObject *parent = 0);
|
Servatrice(QObject *parent = 0);
|
||||||
~Servatrice();
|
~Servatrice();
|
||||||
bool initServer();
|
bool initServer();
|
||||||
QString getServerName() const { return serverName; }
|
QString getServerName() const { return serverName; }
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
#include "servatrice_database_interface.h"
|
#include "servatrice_database_interface.h"
|
||||||
#include "passwordhasher.h"
|
#include "passwordhasher.h"
|
||||||
#include "serversocketinterface.h"
|
#include "serversocketinterface.h"
|
||||||
|
#include "settingscache.h"
|
||||||
#include "decklist.h"
|
#include "decklist.h"
|
||||||
#include "pb/game_replay.pb.h"
|
#include "pb/game_replay.pb.h"
|
||||||
#include <QDebug>
|
#include <QDebug>
|
||||||
|
@ -88,10 +89,22 @@ bool Servatrice_DatabaseInterface::usernameIsValid(const QString &user)
|
||||||
return (result.size() > 0);
|
return (result.size() > 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool Servatrice_DatabaseInterface::getRequireRegistration()
|
||||||
|
{
|
||||||
|
return settingsCache->value("authentication/regonly", 0).toBool();
|
||||||
|
}
|
||||||
|
|
||||||
AuthenticationResult Servatrice_DatabaseInterface::checkUserPassword(Server_ProtocolHandler *handler, const QString &user, const QString &password, QString &reasonStr, int &banSecondsLeft)
|
AuthenticationResult Servatrice_DatabaseInterface::checkUserPassword(Server_ProtocolHandler *handler, const QString &user, const QString &password, QString &reasonStr, int &banSecondsLeft)
|
||||||
{
|
{
|
||||||
switch (server->getAuthenticationMethod()) {
|
switch (server->getAuthenticationMethod()) {
|
||||||
case Servatrice::AuthenticationNone: return UnknownUser;
|
case Servatrice::AuthenticationNone: return UnknownUser;
|
||||||
|
case Servatrice::AuthenticationPassword: {
|
||||||
|
QString configPassword = settingsCache->value("authentication/password").toString();
|
||||||
|
if (configPassword == password)
|
||||||
|
return PasswordRight;
|
||||||
|
|
||||||
|
return NotLoggedIn;
|
||||||
|
}
|
||||||
case Servatrice::AuthenticationSql: {
|
case Servatrice::AuthenticationSql: {
|
||||||
if (!checkSql())
|
if (!checkSql())
|
||||||
return UnknownUser;
|
return UnknownUser;
|
||||||
|
|
|
@ -50,7 +50,8 @@ public:
|
||||||
void lockSessionTables();
|
void lockSessionTables();
|
||||||
void unlockSessionTables();
|
void unlockSessionTables();
|
||||||
bool userSessionExists(const QString &userName);
|
bool userSessionExists(const QString &userName);
|
||||||
|
|
||||||
|
bool getRequireRegistration();
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
#include "server_logger.h"
|
#include "server_logger.h"
|
||||||
|
#include "settingscache.h"
|
||||||
#include <QSocketNotifier>
|
#include <QSocketNotifier>
|
||||||
#include <QFile>
|
#include <QFile>
|
||||||
#include <QTextStream>
|
#include <QTextStream>
|
||||||
#include <QDateTime>
|
#include <QDateTime>
|
||||||
#include <QSettings>
|
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
#ifdef Q_OS_UNIX
|
#ifdef Q_OS_UNIX
|
||||||
# include <sys/types.h>
|
# include <sys/types.h>
|
||||||
|
@ -26,7 +26,7 @@ ServerLogger::~ServerLogger()
|
||||||
void ServerLogger::startLog(const QString &logFileName)
|
void ServerLogger::startLog(const QString &logFileName)
|
||||||
{
|
{
|
||||||
if (!logFileName.isEmpty()) {
|
if (!logFileName.isEmpty()) {
|
||||||
logFile = new QFile("server.log", this);
|
logFile = new QFile(logFileName, this);
|
||||||
logFile->open(QIODevice::Append);
|
logFile->open(QIODevice::Append);
|
||||||
#ifdef Q_OS_UNIX
|
#ifdef Q_OS_UNIX
|
||||||
::socketpair(AF_UNIX, SOCK_STREAM, 0, sigHupFD);
|
::socketpair(AF_UNIX, SOCK_STREAM, 0, sigHupFD);
|
||||||
|
@ -50,9 +50,8 @@ void ServerLogger::logMessage(QString message, void *caller)
|
||||||
callerString = QString::number((qulonglong) caller, 16) + " ";
|
callerString = QString::number((qulonglong) caller, 16) + " ";
|
||||||
|
|
||||||
//filter out all log entries based on values in configuration file
|
//filter out all log entries based on values in configuration file
|
||||||
QSettings settings("servatrice.ini", QSettings::IniFormat);
|
bool shouldWeWriteLog = settingsCache->value("server/writelog").toBool();
|
||||||
bool shouldWeWriteLog = settings.value("server/writelog").toBool();
|
QString logFilters = settingsCache->value("server/logfilters").toString();
|
||||||
QString logFilters = settings.value("server/logfilters").toString();
|
|
||||||
QStringList listlogFilters = logFilters.split(",", QString::SkipEmptyParts);
|
QStringList listlogFilters = logFilters.split(",", QString::SkipEmptyParts);
|
||||||
bool shouldWeSkipLine = false;
|
bool shouldWeSkipLine = false;
|
||||||
|
|
||||||
|
|
43
servatrice/src/settingscache.cpp
Normal file
|
@ -0,0 +1,43 @@
|
||||||
|
#include "settingscache.h"
|
||||||
|
#include <QCoreApplication>
|
||||||
|
#include <QFile>
|
||||||
|
#if QT_VERSION >= 0x050000
|
||||||
|
#include <QStandardPaths>
|
||||||
|
#else
|
||||||
|
#include <QDesktopServices>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
SettingsCache::SettingsCache(const QString & fileName, QSettings::Format format, QObject * parent)
|
||||||
|
:QSettings(fileName, format, parent)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
QString SettingsCache::guessConfigurationPath(QString & specificPath)
|
||||||
|
{
|
||||||
|
const QString fileName="servatrice.ini";
|
||||||
|
QString guessFileName;
|
||||||
|
|
||||||
|
// specific path
|
||||||
|
if(!specificPath.isEmpty() && QFile::exists(specificPath))
|
||||||
|
return specificPath;
|
||||||
|
|
||||||
|
// application directory path
|
||||||
|
guessFileName = QCoreApplication::applicationDirPath() + "/" + fileName;
|
||||||
|
if(QFile::exists(guessFileName))
|
||||||
|
return guessFileName;
|
||||||
|
|
||||||
|
#ifdef Q_OS_UNIX
|
||||||
|
// /etc
|
||||||
|
guessFileName = "/etc/servatrice/" + fileName;
|
||||||
|
if(QFile::exists(guessFileName))
|
||||||
|
return guessFileName;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if QT_VERSION >= 0x050000
|
||||||
|
guessFileName = QStandardPaths::writableLocation(QStandardPaths::DataLocation) + "/" + fileName;
|
||||||
|
#else
|
||||||
|
guessFileName = QDesktopServices::storageLocation(QDesktopServices::DataLocation) + "/" + fileName;
|
||||||
|
#endif
|
||||||
|
return guessFileName;
|
||||||
|
}
|
18
servatrice/src/settingscache.h
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
#ifndef SERVATRICE_SETTINGSCACHE_H
|
||||||
|
#define SERVATRICE_SETTINGSCACHE_H
|
||||||
|
|
||||||
|
#include <QSettings>
|
||||||
|
#include <QString>
|
||||||
|
|
||||||
|
class SettingsCache : public QSettings {
|
||||||
|
Q_OBJECT
|
||||||
|
private:
|
||||||
|
QSettings *settings;
|
||||||
|
public:
|
||||||
|
SettingsCache(const QString & fileName="servatrice.ini", QSettings::Format format=QSettings::IniFormat, QObject * parent = 0);
|
||||||
|
static QString guessConfigurationPath(QString & specificPath);
|
||||||
|
};
|
||||||
|
|
||||||
|
extern SettingsCache *settingsCache;
|
||||||
|
|
||||||
|
#endif
|