Merge remote-tracking branch 'origin/master'
This commit is contained in:
@@ -179,16 +179,4 @@ enum NetTimeoutReason {
|
|||||||
NETWORK_TIMEOUT_KICK_AFTER_AUTOFOLD
|
NETWORK_TIMEOUT_KICK_AFTER_AUTOFOLD
|
||||||
};
|
};
|
||||||
|
|
||||||
struct ServerStats {
|
|
||||||
ServerStats()
|
|
||||||
: numberOfPlayersOnServer(0), numberOfGamesOpen(0), totalPlayersEverLoggedIn(0),
|
|
||||||
totalGamesEverCreated(0), maxGamesOpen(0), maxPlayersLoggedIn(0) {}
|
|
||||||
unsigned numberOfPlayersOnServer;
|
|
||||||
unsigned numberOfGamesOpen;
|
|
||||||
unsigned totalPlayersEverLoggedIn;
|
|
||||||
unsigned totalGamesEverCreated;
|
|
||||||
unsigned maxGamesOpen;
|
|
||||||
unsigned maxPlayersLoggedIn;
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -156,6 +156,10 @@ void ServerGuiWrapper::SignalNetClientStatsUpdate(const ServerStats &stats)
|
|||||||
{
|
{
|
||||||
if (myClientcb) myClientcb->SignalNetClientStatsUpdate(stats);
|
if (myClientcb) myClientcb->SignalNetClientStatsUpdate(stats);
|
||||||
}
|
}
|
||||||
|
void ServerGuiWrapper::SignalNetClientPingUpdate(unsigned minPing, unsigned avgPing, unsigned maxPing)
|
||||||
|
{
|
||||||
|
if (myClientcb) myClientcb->SignalNetClientPingUpdate(minPing, avgPing, maxPing);
|
||||||
|
}
|
||||||
void ServerGuiWrapper::SignalNetClientShowTimeoutDialog(NetTimeoutReason reason, unsigned remainingSec)
|
void ServerGuiWrapper::SignalNetClientShowTimeoutDialog(NetTimeoutReason reason, unsigned remainingSec)
|
||||||
{
|
{
|
||||||
if (myClientcb) myClientcb->SignalNetClientShowTimeoutDialog(reason, remainingSec);
|
if (myClientcb) myClientcb->SignalNetClientShowTimeoutDialog(reason, remainingSec);
|
||||||
|
|||||||
@@ -126,6 +126,7 @@ public:
|
|||||||
void SignalNetClientError(int errorID, int osErrorID);
|
void SignalNetClientError(int errorID, int osErrorID);
|
||||||
void SignalNetClientNotification(int notificationId);
|
void SignalNetClientNotification(int notificationId);
|
||||||
void SignalNetClientStatsUpdate(const ServerStats &stats);
|
void SignalNetClientStatsUpdate(const ServerStats &stats);
|
||||||
|
void SignalNetClientPingUpdate(unsigned minPing, unsigned avgPing, unsigned maxPing);
|
||||||
void SignalNetClientShowTimeoutDialog(NetTimeoutReason reason, unsigned remainingSec);
|
void SignalNetClientShowTimeoutDialog(NetTimeoutReason reason, unsigned remainingSec);
|
||||||
void SignalNetClientRemovedFromGame(int notificationId);
|
void SignalNetClientRemovedFromGame(int notificationId);
|
||||||
void SignalNetClientSelfJoined(unsigned playerId, const std::string &playerName, bool isGameAdmin);
|
void SignalNetClientSelfJoined(unsigned playerId, const std::string &playerName, bool isGameAdmin);
|
||||||
|
|||||||
@@ -341,6 +341,10 @@ void GuiWrapper::SignalNetClientStatsUpdate(const ServerStats &stats)
|
|||||||
{
|
{
|
||||||
myStartWindow->signalNetClientStatsUpdate(stats);
|
myStartWindow->signalNetClientStatsUpdate(stats);
|
||||||
}
|
}
|
||||||
|
void GuiWrapper::SignalNetClientPingUpdate(unsigned minPing, unsigned avgPing, unsigned maxPing)
|
||||||
|
{
|
||||||
|
// TODO
|
||||||
|
}
|
||||||
void GuiWrapper::SignalNetClientShowTimeoutDialog(NetTimeoutReason reason, unsigned remainingSec)
|
void GuiWrapper::SignalNetClientShowTimeoutDialog(NetTimeoutReason reason, unsigned remainingSec)
|
||||||
{
|
{
|
||||||
myStartWindow->signalNetClientShowTimeoutDialog(reason, remainingSec);
|
myStartWindow->signalNetClientShowTimeoutDialog(reason, remainingSec);
|
||||||
|
|||||||
@@ -138,6 +138,7 @@ public:
|
|||||||
void SignalNetClientError(int errorID, int osErrorID);
|
void SignalNetClientError(int errorID, int osErrorID);
|
||||||
void SignalNetClientNotification(int notificationId);
|
void SignalNetClientNotification(int notificationId);
|
||||||
void SignalNetClientStatsUpdate(const ServerStats &stats);
|
void SignalNetClientStatsUpdate(const ServerStats &stats);
|
||||||
|
void SignalNetClientPingUpdate(unsigned minPing, unsigned avgPing, unsigned maxPing);
|
||||||
void SignalNetClientShowTimeoutDialog(NetTimeoutReason reason, unsigned remainingSec);
|
void SignalNetClientShowTimeoutDialog(NetTimeoutReason reason, unsigned remainingSec);
|
||||||
void SignalNetClientRemovedFromGame(int notificationId);
|
void SignalNetClientRemovedFromGame(int notificationId);
|
||||||
void SignalNetClientSelfJoined(unsigned playerId, const std::string &playerName, bool isGameAdmin);
|
void SignalNetClientSelfJoined(unsigned playerId, const std::string &playerName, bool isGameAdmin);
|
||||||
|
|||||||
@@ -40,7 +40,8 @@
|
|||||||
#include "ui_startwindow.h"
|
#include "ui_startwindow.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include "game_defs.h"
|
#include <game_defs.h>
|
||||||
|
#include <serverdata.h>
|
||||||
#include <QMessageBox>
|
#include <QMessageBox>
|
||||||
#include "mymessagebox.h"
|
#include "mymessagebox.h"
|
||||||
|
|
||||||
|
|||||||
@@ -38,6 +38,7 @@
|
|||||||
|
|
||||||
#include <game_defs.h>
|
#include <game_defs.h>
|
||||||
#include <gamedata.h>
|
#include <gamedata.h>
|
||||||
|
#include <serverdata.h>
|
||||||
|
|
||||||
class Game;
|
class Game;
|
||||||
|
|
||||||
@@ -51,6 +52,7 @@ public:
|
|||||||
virtual void SignalNetClientError(int errorID, int osErrorID) = 0;
|
virtual void SignalNetClientError(int errorID, int osErrorID) = 0;
|
||||||
virtual void SignalNetClientNotification(int notificationId) = 0;
|
virtual void SignalNetClientNotification(int notificationId) = 0;
|
||||||
virtual void SignalNetClientStatsUpdate(const ServerStats &stats) = 0;
|
virtual void SignalNetClientStatsUpdate(const ServerStats &stats) = 0;
|
||||||
|
virtual void SignalNetClientPingUpdate(unsigned minPing, unsigned avgPing, unsigned maxPing) = 0;
|
||||||
virtual void SignalNetClientShowTimeoutDialog(NetTimeoutReason reason, unsigned remainingSec) = 0;
|
virtual void SignalNetClientShowTimeoutDialog(NetTimeoutReason reason, unsigned remainingSec) = 0;
|
||||||
virtual void SignalNetClientRemovedFromGame(int notificationId) = 0;
|
virtual void SignalNetClientRemovedFromGame(int notificationId) = 0;
|
||||||
|
|
||||||
|
|||||||
@@ -37,6 +37,8 @@
|
|||||||
#include <boost/asio.hpp>
|
#include <boost/asio.hpp>
|
||||||
#include <boost/enable_shared_from_this.hpp>
|
#include <boost/enable_shared_from_this.hpp>
|
||||||
#include <string>
|
#include <string>
|
||||||
|
#include <algorithm>
|
||||||
|
#include <numeric>
|
||||||
|
|
||||||
#include <core/thread.h>
|
#include <core/thread.h>
|
||||||
#include <net/sessiondatacallback.h>
|
#include <net/sessiondatacallback.h>
|
||||||
@@ -56,6 +58,33 @@ class Log;
|
|||||||
class QtToolsInterface;
|
class QtToolsInterface;
|
||||||
struct Gsasl;
|
struct Gsasl;
|
||||||
|
|
||||||
|
#define SIZE_PING_BACKLOG 20
|
||||||
|
|
||||||
|
class PingData
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
PingData() : pingTimer(boost::posix_time::time_duration(0, 0, 0), boost::timers::portable::microsec_timer::manual_start) {}
|
||||||
|
|
||||||
|
unsigned MinPing() {return *std::min_element(pingValues.begin(), pingValues.end());}
|
||||||
|
unsigned MaxPing() {return *std::max_element(pingValues.begin(), pingValues.end());}
|
||||||
|
unsigned AveragePing() {return std::accumulate(pingValues.begin(), pingValues.end(), 0) / (unsigned)pingValues.size();}
|
||||||
|
void StartPing() {pingTimer.start();}
|
||||||
|
void EndPing()
|
||||||
|
{
|
||||||
|
if (pingTimer.is_running()) {
|
||||||
|
pingValues.push_back((unsigned)pingTimer.elapsed().total_milliseconds());
|
||||||
|
if (pingValues.size() > SIZE_PING_BACKLOG) {
|
||||||
|
pingValues.pop_front();
|
||||||
|
}
|
||||||
|
pingTimer.reset();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
std::list<unsigned> pingValues;
|
||||||
|
boost::timers::portable::microsec_timer pingTimer;
|
||||||
|
};
|
||||||
|
|
||||||
class ClientThread : public Thread, public boost::enable_shared_from_this<ClientThread>, public SessionDataCallback
|
class ClientThread : public Thread, public boost::enable_shared_from_this<ClientThread>, public SessionDataCallback
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
@@ -228,6 +257,7 @@ protected:
|
|||||||
void EndPetition(unsigned petitionId);
|
void EndPetition(unsigned petitionId);
|
||||||
|
|
||||||
void UpdateStatData(const ServerStats &stats);
|
void UpdateStatData(const ServerStats &stats);
|
||||||
|
void EndPing();
|
||||||
|
|
||||||
bool IsSessionEstablished() const;
|
bool IsSessionEstablished() const;
|
||||||
void SetSessionEstablished(bool flag);
|
void SetSessionEstablished(bool flag);
|
||||||
@@ -298,6 +328,9 @@ private:
|
|||||||
mutable boost::mutex m_curStatsMutex;
|
mutable boost::mutex m_curStatsMutex;
|
||||||
ServerStats m_curStats;
|
ServerStats m_curStats;
|
||||||
|
|
||||||
|
mutable boost::mutex m_pingDataMutex;
|
||||||
|
PingData m_pingData;
|
||||||
|
|
||||||
boost::asio::deadline_timer m_stateTimer;
|
boost::asio::deadline_timer m_stateTimer;
|
||||||
boost::asio::deadline_timer m_avatarTimer;
|
boost::asio::deadline_timer m_avatarTimer;
|
||||||
|
|
||||||
|
|||||||
@@ -1771,6 +1771,10 @@ ClientStateRunHand::InternalHandlePacket(boost::shared_ptr<ClientThread> client,
|
|||||||
client->GetClientLog()->transformPlayerActionLog(PlayerAction(netActionDone.playeraction())),
|
client->GetClientLog()->transformPlayerActionLog(PlayerAction(netActionDone.playeraction())),
|
||||||
netActionDone.totalplayerbet() - tmpPlayer->getMySet()
|
netActionDone.totalplayerbet() - tmpPlayer->getMySet()
|
||||||
);
|
);
|
||||||
|
if (tmpPlayer->getMyID() == 0)
|
||||||
|
{
|
||||||
|
client->EndPing();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
// Update last players turn only after the blinds.
|
// Update last players turn only after the blinds.
|
||||||
curGame->getCurrentHand()->setPreviousPlayerID(tmpPlayer->getMyID());
|
curGame->getCurrentHand()->setPreviousPlayerID(tmpPlayer->getMyID());
|
||||||
|
|||||||
@@ -158,6 +158,10 @@ ClientThread::SendPlayerAction()
|
|||||||
{
|
{
|
||||||
// Warning: This function is called in the context of the GUI thread.
|
// Warning: This function is called in the context of the GUI thread.
|
||||||
// Create a network packet containing the current player action.
|
// Create a network packet containing the current player action.
|
||||||
|
{
|
||||||
|
boost::mutex::scoped_lock lock(m_pingDataMutex);
|
||||||
|
m_pingData.StartPing();
|
||||||
|
}
|
||||||
boost::shared_ptr<NetPacket> packet(new NetPacket);
|
boost::shared_ptr<NetPacket> packet(new NetPacket);
|
||||||
packet->GetMsg()->set_messagetype(PokerTHMessage::Type_MyActionRequestMessage);
|
packet->GetMsg()->set_messagetype(PokerTHMessage::Type_MyActionRequestMessage);
|
||||||
MyActionRequestMessage *netMyAction = packet->GetMsg()->mutable_myactionrequestmessage();
|
MyActionRequestMessage *netMyAction = packet->GetMsg()->mutable_myactionrequestmessage();
|
||||||
@@ -1558,6 +1562,14 @@ ClientThread::UpdateStatData(const ServerStats &stats)
|
|||||||
GetCallback().SignalNetClientStatsUpdate(m_curStats);
|
GetCallback().SignalNetClientStatsUpdate(m_curStats);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
ClientThread::EndPing()
|
||||||
|
{
|
||||||
|
boost::mutex::scoped_lock lock(m_pingDataMutex);
|
||||||
|
m_pingData.EndPing();
|
||||||
|
GetCallback().SignalNetClientPingUpdate(m_pingData.MinPing(), m_pingData.AveragePing(), m_pingData.MaxPing());
|
||||||
|
}
|
||||||
|
|
||||||
ServerStats
|
ServerStats
|
||||||
ClientThread::GetStatData() const
|
ClientThread::GetStatData() const
|
||||||
{
|
{
|
||||||
|
|||||||
+13
-1
@@ -35,7 +35,6 @@
|
|||||||
|
|
||||||
#include <string>
|
#include <string>
|
||||||
|
|
||||||
|
|
||||||
struct ServerInfo {
|
struct ServerInfo {
|
||||||
ServerInfo() : id(0), supportsSctp(false), port(0) {}
|
ServerInfo() : id(0), supportsSctp(false), port(0) {}
|
||||||
unsigned id;
|
unsigned id;
|
||||||
@@ -49,5 +48,18 @@ struct ServerInfo {
|
|||||||
std::string avatarServerAddr;
|
std::string avatarServerAddr;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
struct ServerStats {
|
||||||
|
ServerStats()
|
||||||
|
: numberOfPlayersOnServer(0), numberOfGamesOpen(0), totalPlayersEverLoggedIn(0),
|
||||||
|
totalGamesEverCreated(0), maxGamesOpen(0), maxPlayersLoggedIn(0) {}
|
||||||
|
unsigned numberOfPlayersOnServer;
|
||||||
|
unsigned numberOfGamesOpen;
|
||||||
|
unsigned totalPlayersEverLoggedIn;
|
||||||
|
unsigned totalGamesEverCreated;
|
||||||
|
unsigned maxGamesOpen;
|
||||||
|
unsigned maxPlayersLoggedIn;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|||||||
+38
-25
@@ -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="gl" sourcelanguage="en_US">
|
<TS version="2.0" language="gl" sourcelanguage="en_US">
|
||||||
<context>
|
<context>
|
||||||
<name>CardDeckStyleReader</name>
|
<name>CardDeckStyleReader</name>
|
||||||
<message>
|
<message>
|
||||||
@@ -481,7 +481,7 @@ p, li { white-space: pre-wrap; }
|
|||||||
<tr>
|
<tr>
|
||||||
<td style="border: none;">
|
<td style="border: none;">
|
||||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">translator name - mail address</span></p></td></tr></table></body></html></source>
|
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">translator name - mail address</span></p></td></tr></table></body></html></source>
|
||||||
<translation type="vanished"><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
|
<translation><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
|
||||||
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
|
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
|
||||||
p, li { white-space: pre-wrap; }
|
p, li { white-space: pre-wrap; }
|
||||||
</style></head><body style=" font-family:'Nimbus Sans L'; font-size:9pt; font-weight:400; font-style:normal;">
|
</style></head><body style=" font-family:'Nimbus Sans L'; font-size:9pt; font-weight:400; font-style:normal;">
|
||||||
@@ -496,7 +496,7 @@ p, li { white-space: pre-wrap; }
|
|||||||
p, li { white-space: pre-wrap; }
|
p, li { white-space: pre-wrap; }
|
||||||
</style></head><body style=" font-family:'Nimbus Sans L'; font-size:9pt; font-weight:400; font-style:normal;">
|
</style></head><body style=" font-family:'Nimbus Sans L'; font-size:9pt; font-weight:400; font-style:normal;">
|
||||||
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p></body></html></source>
|
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p></body></html></source>
|
||||||
<translation type="vanished"><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
|
<translation><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
|
||||||
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
|
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
|
||||||
p, li { white-space: pre-wrap; }
|
p, li { white-space: pre-wrap; }
|
||||||
</style></head><body style=" font-family:'Nimbus Sans L'; font-size:9pt; font-weight:400; font-style:normal;">
|
</style></head><body style=" font-family:'Nimbus Sans L'; font-size:9pt; font-weight:400; font-style:normal;">
|
||||||
@@ -510,7 +510,11 @@ p, li { white-space: pre-wrap; }
|
|||||||
p, li { white-space: pre-wrap; }
|
p, li { white-space: pre-wrap; }
|
||||||
</style></head><body style=" font-family:'Liberation Sans'; font-size:9pt; font-weight:400; font-style:normal;">
|
</style></head><body style=" font-family:'Liberation Sans'; font-size:9pt; font-weight:400; font-style:normal;">
|
||||||
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Nimbus Sans L';"><br /></p></body></html></source>
|
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Nimbus Sans L';"><br /></p></body></html></source>
|
||||||
<translation type="unfinished"></translation>
|
<translation><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
|
||||||
|
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
|
||||||
|
p, li { white-space: pre-wrap; }
|
||||||
|
</style></head><body style=" font-family:'Liberation Sans'; font-size:9pt; font-weight:400; font-style:normal;">
|
||||||
|
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Nimbus Sans L';"><br /></p></body></html></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui/qt/aboutpokerth.ui" line="150"/>
|
<location filename="../src/gui/qt/aboutpokerth.ui" line="150"/>
|
||||||
@@ -528,7 +532,14 @@ p, li { white-space: pre-wrap; }
|
|||||||
<tr>
|
<tr>
|
||||||
<td style="border: none;">
|
<td style="border: none;">
|
||||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Nimbus Sans L'; font-size:8pt;">translator name - mail address</span></p></td></tr></table></body></html></source>
|
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Nimbus Sans L'; font-size:8pt;">translator name - mail address</span></p></td></tr></table></body></html></source>
|
||||||
<translation type="unfinished"></translation>
|
<translation><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
|
||||||
|
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
|
||||||
|
p, li { white-space: pre-wrap; }
|
||||||
|
</style></head><body style=" font-family:'Liberation Sans'; font-size:9pt; font-weight:400; font-style:normal;">
|
||||||
|
<table border="0" style="-qt-table-type: root; margin-top:4px; margin-bottom:4px; margin-left:4px; margin-right:4px;">
|
||||||
|
<tr>
|
||||||
|
<td style="border: none;">
|
||||||
|
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Nimbus Sans L'; font-size:8pt;">Adrián Chaves Fernández - adriyetichaves@gmail.com</span></p></td></tr></table></body></html></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui/qt/aboutpokerth.ui" line="189"/>
|
<location filename="../src/gui/qt/aboutpokerth.ui" line="189"/>
|
||||||
@@ -546,7 +557,7 @@ p, li { white-space: pre-wrap; }
|
|||||||
<location filename="../src/gui/qt/aboutpokerth.ui" line="263"/>
|
<location filename="../src/gui/qt/aboutpokerth.ui" line="263"/>
|
||||||
<location filename="../src/gui/qt/gui_800x480/aboutpokerth_800x480.ui" line="294"/>
|
<location filename="../src/gui/qt/gui_800x480/aboutpokerth_800x480.ui" line="294"/>
|
||||||
<source>Third party libs</source>
|
<source>Third party libs</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Bibliotecas de terceiros</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui/qt/aboutpokerth.ui" line="306"/>
|
<location filename="../src/gui/qt/aboutpokerth.ui" line="306"/>
|
||||||
@@ -1071,7 +1082,7 @@ Please choose another one!</source>
|
|||||||
<location filename="../src/gui/qt/createinternetgamedialog.ui" line="296"/>
|
<location filename="../src/gui/qt/createinternetgamedialog.ui" line="296"/>
|
||||||
<location filename="../src/gui/qt/gui_800x480/createinternetgamedialog_800x480.ui" line="451"/>
|
<location filename="../src/gui/qt/gui_800x480/createinternetgamedialog_800x480.ui" line="451"/>
|
||||||
<source>Allow spectators to watch the game</source>
|
<source>Allow spectators to watch the game</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Permitier espectadores na partida.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui/qt/createinternetgamedialog.ui" line="336"/>
|
<location filename="../src/gui/qt/createinternetgamedialog.ui" line="336"/>
|
||||||
@@ -1226,13 +1237,13 @@ Please choose another one!</source>
|
|||||||
<location filename="../src/gui/qt/gamelobbydialog.ui" line="423"/>
|
<location filename="../src/gui/qt/gamelobbydialog.ui" line="423"/>
|
||||||
<location filename="../src/gui/qt/gui_800x480/gamelobbydialog_800x480.ui" line="489"/>
|
<location filename="../src/gui/qt/gui_800x480/gamelobbydialog_800x480.ui" line="489"/>
|
||||||
<source>Players</source>
|
<source>Players</source>
|
||||||
<translation type="unfinished">Xogadores</translation>
|
<translation>Xogadores</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui/qt/gamelobbydialog.ui" line="478"/>
|
<location filename="../src/gui/qt/gamelobbydialog.ui" line="478"/>
|
||||||
<location filename="../src/gui/qt/gui_800x480/gamelobbydialog_800x480.ui" line="550"/>
|
<location filename="../src/gui/qt/gui_800x480/gamelobbydialog_800x480.ui" line="550"/>
|
||||||
<source>Spectators</source>
|
<source>Spectators</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Espectadores</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui/qt/gamelobbydialog.ui" line="603"/>
|
<location filename="../src/gui/qt/gamelobbydialog.ui" line="603"/>
|
||||||
@@ -1326,7 +1337,7 @@ p, li { white-space: pre-wrap; }
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Join &any game</source>
|
<source>Join &any game</source>
|
||||||
<translation type="vanished">Unirse a unha partida cal&quera</translation>
|
<translation>Unirse a unha partida cal&quera</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui/qt/gamelobbydialog.ui" line="251"/>
|
<location filename="../src/gui/qt/gamelobbydialog.ui" line="251"/>
|
||||||
@@ -1416,7 +1427,7 @@ p, li { white-space: pre-wrap; }
|
|||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui/qt/gamelobbydialog/gamelobbydialogimpl.cpp" line="89"/>
|
<location filename="../src/gui/qt/gamelobbydialog/gamelobbydialogimpl.cpp" line="89"/>
|
||||||
<source>Spectate</source>
|
<source>Spectate</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Espectar</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui/qt/gamelobbydialog/gamelobbydialogimpl.cpp" line="137"/>
|
<location filename="../src/gui/qt/gamelobbydialog/gamelobbydialogimpl.cpp" line="137"/>
|
||||||
@@ -1504,7 +1515,7 @@ p, li { white-space: pre-wrap; }
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Connected players - max. %1</source>
|
<source>Connected players - max. %1</source>
|
||||||
<translation type="vanished">Xogadores conectados (límite: %1)</translation>
|
<translation>Xogadores conectados (límite: %1)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui/qt/gamelobbydialog/gamelobbydialogimpl.cpp" line="137"/>
|
<location filename="../src/gui/qt/gamelobbydialog/gamelobbydialogimpl.cpp" line="137"/>
|
||||||
@@ -1530,7 +1541,7 @@ p, li { white-space: pre-wrap; }
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Connected players - Max. %1</source>
|
<source>Connected players - Max. %1</source>
|
||||||
<translation type="vanished">Xogadores conectados (límite: %1)</translation>
|
<translation>Xogadores conectados (límite: %1)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui/qt/gamelobbydialog/gamelobbydialogimpl.cpp" line="612"/>
|
<location filename="../src/gui/qt/gamelobbydialog/gamelobbydialogimpl.cpp" line="612"/>
|
||||||
@@ -1553,14 +1564,14 @@ p, li { white-space: pre-wrap; }
|
|||||||
<location filename="../src/gui/qt/gamelobbydialog/gamelobbydialogimpl.cpp" line="933"/>
|
<location filename="../src/gui/qt/gamelobbydialog/gamelobbydialogimpl.cpp" line="933"/>
|
||||||
<location filename="../src/gui/qt/gamelobbydialog/gamelobbydialogimpl.cpp" line="1450"/>
|
<location filename="../src/gui/qt/gamelobbydialog/gamelobbydialogimpl.cpp" line="1450"/>
|
||||||
<source>Players (%1)</source>
|
<source>Players (%1)</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Xogadores (%1)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui/qt/gamelobbydialog/gamelobbydialogimpl.cpp" line="1055"/>
|
<location filename="../src/gui/qt/gamelobbydialog/gamelobbydialogimpl.cpp" line="1055"/>
|
||||||
<location filename="../src/gui/qt/gamelobbydialog/gamelobbydialogimpl.cpp" line="1129"/>
|
<location filename="../src/gui/qt/gamelobbydialog/gamelobbydialogimpl.cpp" line="1129"/>
|
||||||
<location filename="../src/gui/qt/gamelobbydialog/gamelobbydialogimpl.cpp" line="1451"/>
|
<location filename="../src/gui/qt/gamelobbydialog/gamelobbydialogimpl.cpp" line="1451"/>
|
||||||
<source>Spectators (%1)</source>
|
<source>Spectators (%1)</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Espectadores (%1)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui/qt/gamelobbydialog/gamelobbydialogimpl.cpp" line="1653"/>
|
<location filename="../src/gui/qt/gamelobbydialog/gamelobbydialogimpl.cpp" line="1653"/>
|
||||||
@@ -1657,7 +1668,7 @@ Para convidar a outros xogadores, prema co botón secundario a súa entrada na l
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Connected players</source>
|
<source>Connected players</source>
|
||||||
<translation type="vanished">Xogadores conectados</translation>
|
<translation>Xogadores conectados</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui/qt/gamelobbydialog/gamelobbydialogimpl.cpp" line="1296"/>
|
<location filename="../src/gui/qt/gamelobbydialog/gamelobbydialogimpl.cpp" line="1296"/>
|
||||||
@@ -3342,7 +3353,7 @@ and go back to the lobby?</source>
|
|||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui/qt/gametable/gametableimpl.cpp" line="4483"/>
|
<location filename="../src/gui/qt/gametable/gametableimpl.cpp" line="4483"/>
|
||||||
<source>Spectators</source>
|
<source>Spectators</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Espectadores</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui/qt/gametable/gametableimpl.cpp" line="719"/>
|
<location filename="../src/gui/qt/gametable/gametableimpl.cpp" line="719"/>
|
||||||
@@ -3597,7 +3608,7 @@ p, li { white-space: pre-wrap; }
|
|||||||
<message>
|
<message>
|
||||||
<source>Could not load server-profiles-file:
|
<source>Could not load server-profiles-file:
|
||||||
</source>
|
</source>
|
||||||
<translation type="vanished">Non foi posíbel cargar o ficheiro do perfil de servidor:
|
<translation>Non foi posíbel cargar o ficheiro do perfil de servidor:
|
||||||
</translation>
|
</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
@@ -3607,7 +3618,8 @@ p, li { white-space: pre-wrap; }
|
|||||||
<location filename="../src/gui/qt/joinnetworkgamedialog/joinnetworkgamedialogimpl.cpp" line="282"/>
|
<location filename="../src/gui/qt/joinnetworkgamedialog/joinnetworkgamedialogimpl.cpp" line="282"/>
|
||||||
<source>Could not load server-profiles-file:
|
<source>Could not load server-profiles-file:
|
||||||
%1</source>
|
%1</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Non foi posíbel cargar o ficheiro de perfís de servidores:
|
||||||
|
%1</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui/qt/joinnetworkgamedialog/joinnetworkgamedialogimpl.cpp" line="224"/>
|
<location filename="../src/gui/qt/joinnetworkgamedialog/joinnetworkgamedialogimpl.cpp" line="224"/>
|
||||||
@@ -3641,12 +3653,13 @@ Would you like to overwrite ?</source>
|
|||||||
<location filename="../src/gui/qt/joinnetworkgamedialog/joinnetworkgamedialogimpl.cpp" line="295"/>
|
<location filename="../src/gui/qt/joinnetworkgamedialog/joinnetworkgamedialogimpl.cpp" line="295"/>
|
||||||
<source>Could not save server-profiles-file:
|
<source>Could not save server-profiles-file:
|
||||||
%1</source>
|
%1</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Non foi posíbel cargar o ficheiro de perfís de servidores:
|
||||||
|
%1</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Could not save server-profiles-file:
|
<source>Could not save server-profiles-file:
|
||||||
</source>
|
</source>
|
||||||
<translation type="vanished">Non foi posíbel gardar o ficheiro do perfil de servidor:
|
<translation>Non foi posíbel gardar o ficheiro do perfil de servidor:
|
||||||
</translation>
|
</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
@@ -3953,7 +3966,7 @@ Please enter an valid picture!</source>
|
|||||||
<location filename="../src/gui/qt/gui_800x480/settingsdialog_800x480.ui" line="178"/>
|
<location filename="../src/gui/qt/gui_800x480/settingsdialog_800x480.ui" line="178"/>
|
||||||
<location filename="../src/gui/qt/settingsdialog.ui" line="165"/>
|
<location filename="../src/gui/qt/settingsdialog.ui" line="165"/>
|
||||||
<source>Common</source>
|
<source>Common</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Común</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui/qt/gui_800x480/settingsdialog_800x480.ui" line="261"/>
|
<location filename="../src/gui/qt/gui_800x480/settingsdialog_800x480.ui" line="261"/>
|
||||||
@@ -3977,13 +3990,13 @@ Please enter an valid picture!</source>
|
|||||||
<location filename="../src/gui/qt/gui_800x480/settingsdialog_800x480.ui" line="318"/>
|
<location filename="../src/gui/qt/gui_800x480/settingsdialog_800x480.ui" line="318"/>
|
||||||
<location filename="../src/gui/qt/settingsdialog.ui" line="336"/>
|
<location filename="../src/gui/qt/settingsdialog.ui" line="336"/>
|
||||||
<source>Do not hide avatars of players which are on the ignore list</source>
|
<source>Do not hide avatars of players which are on the ignore list</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Non ocultar os avatares dos xogadores da lista de ignorados.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui/qt/gui_800x480/settingsdialog_800x480.ui" line="325"/>
|
<location filename="../src/gui/qt/gui_800x480/settingsdialog_800x480.ui" line="325"/>
|
||||||
<location filename="../src/gui/qt/settingsdialog.ui" line="343"/>
|
<location filename="../src/gui/qt/settingsdialog.ui" line="343"/>
|
||||||
<source>Disable emoticons in the chat</source>
|
<source>Disable emoticons in the chat</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Desactivar as emoticonas nas conversas.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui/qt/gui_800x480/settingsdialog_800x480.ui" line="375"/>
|
<location filename="../src/gui/qt/gui_800x480/settingsdialog_800x480.ui" line="375"/>
|
||||||
@@ -4090,7 +4103,7 @@ Please enter an valid picture!</source>
|
|||||||
<location filename="../src/gui/qt/gui_800x480/settingsdialog_800x480.ui" line="2180"/>
|
<location filename="../src/gui/qt/gui_800x480/settingsdialog_800x480.ui" line="2180"/>
|
||||||
<location filename="../src/gui/qt/settingsdialog.ui" line="1911"/>
|
<location filename="../src/gui/qt/settingsdialog.ui" line="1911"/>
|
||||||
<source>Allow spectators to watch the game</source>
|
<source>Allow spectators to watch the game</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Permitirlle observar a partida aos espectadores.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui/qt/gui_800x480/settingsdialog_800x480.ui" line="4087"/>
|
<location filename="../src/gui/qt/gui_800x480/settingsdialog_800x480.ui" line="4087"/>
|
||||||
|
|||||||
Reference in New Issue
Block a user