Compare commits

..
1 Commits
Author SHA1 Message Date
Cameron Gutman b23a36908c Add EGLFS GBM and Wayland support to AppImage 2022-04-09 18:23:09 -05:00
119 changed files with 4346 additions and 10044 deletions
+1 -1
View File
@@ -56,7 +56,7 @@ Hosting for Moonlight's Raspberry Pi and L4T package repositories is graciously
* Qt 5.9 SDK or later
* GCC or Clang
* Install the required packages:
* Debian/Ubuntu: `libegl1-mesa-dev libgl1-mesa-dev libopus-dev libqt5svg5-dev libsdl2-dev libsdl2-ttf-dev libssl-dev libavcodec-dev libva-dev libvdpau-dev libxkbcommon-dev qtwayland5 qt5-qmake qtbase5-dev qtdeclarative5-dev qtquickcontrols2-5-dev wayland-protocols qml-module-qtquick-controls2 qml-module-qtquick-layouts qml-module-qtquick-window2 qml-module-qtquick2`
* Debian/Ubuntu: `libegl1-mesa-dev libgl1-mesa-dev libopus-dev libqt5svg5-dev libsdl2-dev libsdl2-ttf-dev libssl-dev libavcodec-dev libva-dev libvdpau-dev libxkbcommon-dev qt5-default qt5-qmake qtbase5-dev qtdeclarative5-dev qtquickcontrols2-5-dev wayland-protocols qml-module-qtquick-controls2 qml-module-qtquick-layouts qml-module-qtquick-window2 qml-module-qtquick2`
* RedHat/Fedora: `openssl-devel SDL2-devel SDL2_ttf-devel ffmpeg-devel qt5-qtsvg-devel qt5-qtquickcontrols2-devel libva-devel libvdpau-devel opus-devel pulseaudio-libs-devel alsa-lib-devel`
* FFmpeg 4.0+ is required to build. If your distro doesn't package FFmpeg 4.0 or later, you can build and install it from source on https://ffmpeg.org/
+2 -13
View File
@@ -54,11 +54,6 @@ macx {
INCLUDEPATH += $$PWD/../libs/mac/Frameworks/SDL2.framework/Versions/A/Headers
INCLUDEPATH += $$PWD/../libs/mac/Frameworks/SDL2_ttf.framework/Versions/A/Headers
LIBS += -L$$PWD/../libs/mac/lib -F$$PWD/../libs/mac/Frameworks
# QMake doesn't handle framework-style includes correctly on its own
QMAKE_CFLAGS += -F$$PWD/../libs/mac/Frameworks
QMAKE_CXXFLAGS += -F$$PWD/../libs/mac/Frameworks
QMAKE_OBJECTIVE_CFLAGS += -F$$PWD/../libs/mac/Frameworks
}
unix:!macx {
@@ -132,7 +127,6 @@ macx {
SOURCES += \
backend/nvaddress.cpp \
backend/nvapp.cpp \
cli/pair.cpp \
main.cpp \
backend/computerseeker.cpp \
backend/identitymanager.cpp \
@@ -143,7 +137,6 @@ SOURCES += \
backend/boxartmanager.cpp \
backend/richpresencemanager.cpp \
cli/commandlineparser.cpp \
cli/listapps.cpp \
cli/quitstream.cpp \
cli/startstream.cpp \
settings/compatfetcher.cpp \
@@ -172,7 +165,6 @@ SOURCES += \
HEADERS += \
backend/nvaddress.h \
backend/nvapp.h \
cli/pair.h \
settings/compatfetcher.h \
settings/mappingfetcher.h \
utils.h \
@@ -185,7 +177,6 @@ HEADERS += \
backend/boxartmanager.h \
backend/richpresencemanager.h \
cli/commandlineparser.h \
cli/listapps.h \
cli/quitstream.h \
cli/startstream.h \
settings/streamingpreferences.h \
@@ -271,7 +262,7 @@ libdrm {
linux {
message(Master hooks enabled)
SOURCES += masterhook.c masterhook_internal.c
SOURCES += masterhook.c
LIBS += -ldl
}
}
@@ -374,9 +365,7 @@ TRANSLATIONS += \
languages/qml_hi.ts \
languages/qml_it.ts \
languages/qml_pt.ts \
languages/qml_pt_BR.ts \
languages/qml_pl.ts \
languages/qml_cs.ts
languages/qml_pt_BR.ts
# Additional import path used to resolve QML modules in Qt Creator's code model
QML_IMPORT_PATH =
+24 -128
View File
@@ -10,8 +10,6 @@
#include <QThreadPool>
#include <QCoreApplication>
#include <random>
#define SER_HOSTS "hosts"
class PcMonitorThread : public QThread
@@ -147,8 +145,7 @@ ComputerManager::ComputerManager(QObject *parent)
: QObject(parent),
m_PollingRef(0),
m_MdnsBrowser(nullptr),
m_CompatFetcher(nullptr),
m_NeedsDelayedFlush(false)
m_CompatFetcher(nullptr)
{
QSettings settings;
@@ -164,10 +161,6 @@ ComputerManager::ComputerManager(QObject *parent)
// Fetch latest compatibility data asynchronously
m_CompatFetcher.start();
// Start the delayed flush thread to handle saveHosts() calls
m_DelayedFlushThread = new DelayedFlushThread(this);
m_DelayedFlushThread->start();
// To quit in a timely manner, we must block additional requests
// after we receive the aboutToQuit() signal. This is neccessary
// because NvHTTP uses aboutToQuit() to abort requests in progres
@@ -178,21 +171,6 @@ ComputerManager::ComputerManager(QObject *parent)
ComputerManager::~ComputerManager()
{
// Stop the delayed flush thread before acquiring the lock in write mode
// to avoid deadlocking with a flush that needs the lock in read mode.
{
// Wake the delayed flush thread
m_DelayedFlushThread->requestInterruption();
m_DelayedFlushCondition.wakeOne();
// Wait for it to terminate (and finish any pending flush)
m_DelayedFlushThread->wait();
delete m_DelayedFlushThread;
// Delayed flushes should have completed by now
Q_ASSERT(!m_NeedsDelayedFlush);
}
QWriteLocker lock(&m_Lock);
// Delete machines that haven't been resolved yet
@@ -222,53 +200,19 @@ ComputerManager::~ComputerManager()
}
}
void DelayedFlushThread::run() {
for (;;) {
// Wait for a delayed flush request or an interruption
{
QMutexLocker locker(&m_ComputerManager->m_DelayedFlushMutex);
while (!QThread::currentThread()->isInterruptionRequested() && !m_ComputerManager->m_NeedsDelayedFlush) {
m_ComputerManager->m_DelayedFlushCondition.wait(&m_ComputerManager->m_DelayedFlushMutex);
}
// Bail without flushing if we woke up for an interruption alone.
// If we have both an interruption and a flush request, do the flush.
if (!m_ComputerManager->m_NeedsDelayedFlush) {
Q_ASSERT(QThread::currentThread()->isInterruptionRequested());
break;
}
// Reset the delayed flush flag to ensure any racing saveHosts() call will set it again
m_ComputerManager->m_NeedsDelayedFlush = false;
}
// Perform the flush
{
QReadLocker lock(&m_ComputerManager->m_Lock);
QSettings settings;
settings.remove(SER_HOSTS);
settings.beginWriteArray(SER_HOSTS);
int i = 0;
for (const NvComputer* computer : m_ComputerManager->m_KnownHosts) {
settings.setArrayIndex(i++);
computer->serialize(settings);
}
settings.endArray();
}
}
}
void ComputerManager::saveHosts()
{
Q_ASSERT(m_DelayedFlushThread != nullptr && m_DelayedFlushThread->isRunning());
QSettings settings;
QReadLocker lock(&m_Lock);
// Punt to a worker thread because QSettings on macOS can take ages (> 500 ms)
// to persist our host list to disk (especially when a host has a bunch of apps).
QMutexLocker locker(&m_DelayedFlushMutex);
m_NeedsDelayedFlush = true;
m_DelayedFlushCondition.wakeOne();
settings.remove(SER_HOSTS);
settings.beginWriteArray(SER_HOSTS);
int i = 0;
for (const NvComputer* computer : m_KnownHosts) {
settings.setArrayIndex(i++);
computer->serialize(settings);
}
settings.endArray();
}
QHostAddress ComputerManager::getBestGlobalAddressV6(QVector<QHostAddress> &addresses)
@@ -496,7 +440,7 @@ void ComputerManager::clientSideAttributeUpdated(NvComputer* computer)
void ComputerManager::handleAboutToQuit()
{
QReadLocker lock(&m_Lock);
QWriteLocker lock(&m_Lock);
// Interrupt polling threads immediately, so they
// avoid making additional requests while quitting
@@ -511,8 +455,7 @@ class PendingPairingTask : public QObject, public QRunnable
public:
PendingPairingTask(ComputerManager* computerManager, NvComputer* computer, QString pin)
: m_ComputerManager(computerManager),
m_Computer(computer),
: m_Computer(computer),
m_Pin(pin)
{
connect(this, &PendingPairingTask::pairingCompleted,
@@ -532,34 +475,25 @@ private:
switch (result)
{
case NvPairingManager::PairState::PIN_WRONG:
emit pairingCompleted(m_Computer, tr("The PIN from the PC didn't match. Please try again."));
emit pairingCompleted(m_Computer, "The PIN from the PC didn't match. Please try again.");
break;
case NvPairingManager::PairState::FAILED:
if (m_Computer->currentGameId != 0) {
emit pairingCompleted(m_Computer, tr("You cannot pair while a previous session is still running on the host PC. Quit any running games or reboot the host PC, then try pairing again."));
}
else {
emit pairingCompleted(m_Computer, tr("Pairing failed. Please try again."));
}
emit pairingCompleted(m_Computer, "Pairing failed. Please try again.");
break;
case NvPairingManager::PairState::ALREADY_IN_PROGRESS:
emit pairingCompleted(m_Computer, tr("Another pairing attempt is already in progress."));
emit pairingCompleted(m_Computer, "Another pairing attempt is already in progress.");
break;
case NvPairingManager::PairState::PAIRED:
// Persist the newly pinned server certificate for this host
m_ComputerManager->saveHosts();
emit pairingCompleted(m_Computer, nullptr);
break;
}
} catch (const GfeHttpResponseException& e) {
emit pairingCompleted(m_Computer, tr("GeForce Experience returned error: %1").arg(e.toQString()));
emit pairingCompleted(m_Computer, "GeForce Experience returned error: " + e.toQString());
} catch (const QtNetworkReplyException& e) {
emit pairingCompleted(m_Computer, e.toQString());
}
}
ComputerManager* m_ComputerManager;
NvComputer* m_Computer;
QString m_Pin;
};
@@ -677,15 +611,12 @@ public:
: m_ComputerManager(computerManager),
m_Address(address),
m_MdnsIpv6Address(mdnsIpv6Address),
m_Mdns(mdns),
m_AboutToQuit(false)
m_Mdns(mdns)
{
connect(this, &PendingAddTask::computerAddCompleted,
computerManager, &ComputerManager::computerAddCompleted);
connect(this, &PendingAddTask::computerStateChanged,
computerManager, &ComputerManager::handleComputerStateChanged);
connect(QCoreApplication::instance(), &QCoreApplication::aboutToQuit,
this, &PendingAddTask::handleAboutToQuit);
}
signals:
@@ -694,20 +625,9 @@ signals:
void computerStateChanged(NvComputer* computer);
private:
void handleAboutToQuit()
{
m_AboutToQuit = true;
}
QString fetchServerInfo(NvHTTP& http)
{
QString serverInfo;
// Do nothing if we're quitting
if (m_AboutToQuit) {
return QString();
}
try {
// There's a race condition between GameStream servers reporting presence over
// mDNS and the HTTPS server being ready to respond to our queries. To work
@@ -829,31 +749,16 @@ private:
hostAddress.isInSubnet(QHostAddress("192.168.0.0"), 16);
{
// Check if this PC already exists using opportunistic read lock
m_ComputerManager->m_Lock.lockForRead();
// Check if this PC already exists
QWriteLocker lock(&m_ComputerManager->m_Lock);
NvComputer* existingComputer = m_ComputerManager->m_KnownHosts.value(newComputer->uuid);
// If it doesn't already exist, convert to a write lock in preparation for updating.
//
// NB: ComputerManager's lock protects the host map itself, not the elements inside.
// Those are protected by their individual locks. Since we only mutate the map itself
// when the PC doesn't exist, we need the lock in write-mode for that case only.
if (existingComputer == nullptr) {
m_ComputerManager->m_Lock.unlock();
m_ComputerManager->m_Lock.lockForWrite();
// Since we had to unlock to lock for write, someone could have raced and added
// this PC before us. We have to check again whether it already exists.
existingComputer = m_ComputerManager->m_KnownHosts.value(newComputer->uuid);
}
if (existingComputer != nullptr) {
// Fold it into the existing PC
bool changed = existingComputer->update(*newComputer);
delete newComputer;
// Drop the lock before notifying
m_ComputerManager->m_Lock.unlock();
lock.unlock();
// For non-mDNS clients, let them know it succeeded
if (!m_Mdns) {
@@ -874,7 +779,7 @@ private:
m_ComputerManager->startPollingComputer(newComputer);
// Drop the lock before notifying
m_ComputerManager->m_Lock.unlock();
lock.unlock();
// If this wasn't added via mDNS but it is a RFC 1918 IPv4 address and not a VPN,
// go ahead and do the STUN request now to populate an external address.
@@ -882,7 +787,9 @@ private:
quint32 addr;
int err = LiFindExternalAddressIP4("stun.moonlight-stream.org", 3478, &addr);
if (err == 0) {
lock.relock();
newComputer->setRemoteAddress(QHostAddress(qFromBigEndian(addr)));
lock.unlock();
}
else {
qWarning() << "STUN failed to get WAN address:" << err;
@@ -904,7 +811,6 @@ private:
NvAddress m_Address;
NvAddress m_MdnsIpv6Address;
bool m_Mdns;
bool m_AboutToQuit;
};
void ComputerManager::addNewHost(NvAddress address, bool mdns, NvAddress mdnsIpv6Address)
@@ -915,14 +821,4 @@ void ComputerManager::addNewHost(NvAddress address, bool mdns, NvAddress mdnsIpv
QThreadPool::globalInstance()->start(addTask);
}
// TODO: Use QRandomGenerator when we drop Qt 5.9 support
QString ComputerManager::generatePinString()
{
std::uniform_int_distribution<int> dist(0, 9999);
std::random_device rd;
std::mt19937 engine(rd());
return QString::asprintf("%04u", dist(engine));
}
#include "computermanager.moc"
-29
View File
@@ -15,27 +15,6 @@
#include <QSettings>
#include <QRunnable>
#include <QTimer>
#include <QMutex>
#include <QWaitCondition>
class ComputerManager;
class DelayedFlushThread : public QThread
{
Q_OBJECT
public:
DelayedFlushThread(ComputerManager* cm)
: m_ComputerManager(cm)
{
setObjectName("CM Delayed Flush Thread");
}
void run();
private:
ComputerManager* m_ComputerManager;
};
class MdnsPendingComputer : public QObject
{
@@ -187,8 +166,6 @@ class ComputerManager : public QObject
friend class DeferredHostDeletionTask;
friend class PendingAddTask;
friend class PendingPairingTask;
friend class DelayedFlushThread;
public:
explicit ComputerManager(QObject *parent = nullptr);
@@ -203,8 +180,6 @@ public:
void addNewHost(NvAddress address, bool mdns, NvAddress mdnsIpv6Address = NvAddress());
QString generatePinString();
void pairHost(NvComputer* computer, QString pin);
void quitRunningApp(NvComputer* computer);
@@ -250,8 +225,4 @@ private:
QMdnsEngine::Cache m_MdnsCache;
QVector<MdnsPendingComputer*> m_PendingResolution;
CompatFetcher m_CompatFetcher;
DelayedFlushThread* m_DelayedFlushThread;
QMutex m_DelayedFlushMutex;
QWaitCondition m_DelayedFlushCondition;
bool m_NeedsDelayedFlush;
};
+22 -48
View File
@@ -21,7 +21,6 @@
#define SER_APPLIST "apps"
#define SER_SRVCERT "srvcert"
#define SER_CUSTOMNAME "customname"
#define SER_NVIDIASOFTWARE "nvidiasw"
NvComputer::NvComputer(QSettings& settings)
{
@@ -38,7 +37,6 @@ NvComputer::NvComputer(QSettings& settings)
this->manualAddress = NvAddress(settings.value(SER_MANUALADDR).toString(),
settings.value(SER_MANUALPORT, QVariant(DEFAULT_HTTP_PORT)).toUInt());
this->serverCert = QSslCertificate(settings.value(SER_SRVCERT).toByteArray());
this->isNvidiaServerSoftware = settings.value(SER_NVIDIASOFTWARE).toBool();
int appCount = settings.beginReadArray(SER_APPLIST);
this->appList.reserve(appCount);
@@ -67,8 +65,6 @@ NvComputer::NvComputer(QSettings& settings)
void NvComputer::setRemoteAddress(QHostAddress address)
{
QWriteLocker lock(&this->lock);
Q_ASSERT(this->externalPort != 0);
this->remoteAddress = NvAddress(address, this->externalPort);
@@ -91,7 +87,6 @@ void NvComputer::serialize(QSettings& settings) const
settings.setValue(SER_MANUALADDR, manualAddress.address());
settings.setValue(SER_MANUALPORT, manualAddress.port());
settings.setValue(SER_SRVCERT, serverCert.toPem());
settings.setValue(SER_NVIDIASOFTWARE, isNvidiaServerSoftware);
// Avoid deleting an existing applist if we couldn't get one
if (!appList.isEmpty()) {
@@ -180,11 +175,6 @@ NvComputer::NvComputer(NvHTTP& http, QString serverInfo)
this->remoteAddress = NvAddress();
}
// Real Nvidia host software (GeForce Experience and RTX Experience) both use the 'Mjolnir'
// codename in the state field and no version of Sunshine does. We can use this to bypass
// some assumptions about Nvidia hardware that don't apply to Sunshine hosts.
this->isNvidiaServerSoftware = NvHTTP::getXmlString(serverInfo, "state").contains("MJOLNIR");
this->pairState = NvHTTP::getXmlString(serverInfo, "PairStatus") == "1" ?
PS_PAIRED : PS_NOT_PAIRED;
this->currentGameId = NvHTTP::getCurrentGame(serverInfo);
@@ -197,29 +187,16 @@ NvComputer::NvComputer(NvHTTP& http, QString serverInfo)
this->isSupportedServerVersion = CompatFetcher::isGfeVersionSupported(this->gfeVersion);
}
bool NvComputer::wake() const
bool NvComputer::wake()
{
QByteArray wolPayload;
if (state == NvComputer::CS_ONLINE) {
qWarning() << name << "is already online";
return true;
}
{
QReadLocker readLocker(&lock);
if (state == NvComputer::CS_ONLINE) {
qWarning() << name << "is already online";
return true;
}
if (macAddress.isEmpty()) {
qWarning() << name << "has no MAC address stored";
return false;
}
// Create the WoL payload
wolPayload.append(QByteArray::fromHex("FFFFFFFFFFFF"));
for (int i = 0; i < 16; i++) {
wolPayload.append(macAddress);
}
Q_ASSERT(wolPayload.count() == 102);
if (macAddress.isEmpty()) {
qWarning() << name << "has no MAC address stored";
return false;
}
const quint16 WOL_PORTS[] = {
@@ -228,6 +205,14 @@ bool NvComputer::wake() const
47009, // Port opened by Moonlight Internet Hosting Tool for WoL (non-privileged port)
};
// Create the WoL payload
QByteArray wolPayload;
wolPayload.append(QByteArray::fromHex("FFFFFFFFFFFF"));
for (int i = 0; i < 16; i++) {
wolPayload.append(macAddress);
}
Q_ASSERT(wolPayload.count() == 102);
// Add the addresses that we know this host to be
// and broadcast addresses for this link just in
// case the host has timed out in ARP entries.
@@ -293,25 +278,16 @@ bool NvComputer::wake() const
return success;
}
bool NvComputer::isReachableOverVpn() const
bool NvComputer::isReachableOverVpn()
{
NvAddress copyOfActiveAddress;
{
QReadLocker readLocker(&lock);
if (activeAddress.isNull()) {
return false;
}
// Grab a copy of the active address to avoid having to hold
// the computer lock while doing socket operations
copyOfActiveAddress = activeAddress;
if (activeAddress.isNull()) {
return false;
}
QTcpSocket s;
s.setProxy(QNetworkProxy::NoProxy);
s.connectToHost(copyOfActiveAddress.address(), copyOfActiveAddress.port());
s.connectToHost(activeAddress.address(), activeAddress.port());
if (s.waitForConnected(3000)) {
Q_ASSERT(!s.localAddress().isNull());
@@ -399,7 +375,6 @@ bool NvComputer::updateAppList(QVector<NvApp> newAppList) {
QVector<NvAddress> NvComputer::uniqueAddresses() const
{
QReadLocker readLocker(&lock);
QVector<NvAddress> uniqueAddressList;
// Start with addresses correctly ordered
@@ -431,7 +406,7 @@ QVector<NvAddress> NvComputer::uniqueAddresses() const
return uniqueAddressList;
}
bool NvComputer::update(const NvComputer& that)
bool NvComputer::update(NvComputer& that)
{
bool changed = false;
@@ -481,7 +456,6 @@ bool NvComputer::update(const NvComputer& that)
ASSIGN_IF_CHANGED(gfeVersion);
ASSIGN_IF_CHANGED(appVersion);
ASSIGN_IF_CHANGED(isSupportedServerVersion);
ASSIGN_IF_CHANGED(isNvidiaServerSoftware);
ASSIGN_IF_CHANGED(maxLumaPixelsHEVC);
ASSIGN_IF_CHANGED(gpuModel);
ASSIGN_IF_CHANGED_AND_NONNULL(serverCert);
+3 -4
View File
@@ -30,13 +30,13 @@ public:
setRemoteAddress(QHostAddress);
bool
update(const NvComputer& that);
update(NvComputer& that);
bool
wake() const;
wake();
bool
isReachableOverVpn() const;
isReachableOverVpn();
QVector<NvAddress>
uniqueAddresses() const;
@@ -83,7 +83,6 @@ public:
QString uuid;
QSslCertificate serverCert;
QVector<NvApp> appList;
bool isNvidiaServerSoftware;
// Synchronization
mutable QReadWriteLock lock;
+27 -1
View File
@@ -71,9 +71,16 @@ SystemProperties::SystemProperties()
querySdlVideoInfo();
Q_ASSERT(maximumStreamingFrameRate >= 60);
Q_ASSERT(!monitorDesktopResolutions.isEmpty());
Q_ASSERT(!monitorNativeResolutions.isEmpty());
}
QRect SystemProperties::getDesktopResolution(int displayIndex)
{
// Returns default constructed QRect if out of bounds
return monitorDesktopResolutions.value(displayIndex);
}
QRect SystemProperties::getNativeResolution(int displayIndex)
{
// Returns default constructed QRect if out of bounds
@@ -186,6 +193,7 @@ void SystemProperties::refreshDisplaysInternal()
return;
}
monitorDesktopResolutions.clear();
monitorNativeResolutions.clear();
// Never let the maximum drop below 60 FPS
@@ -194,8 +202,26 @@ void SystemProperties::refreshDisplaysInternal()
SDL_DisplayMode bestMode;
for (int displayIndex = 0; displayIndex < SDL_GetNumVideoDisplays(); displayIndex++) {
SDL_DisplayMode desktopMode;
int err;
if (StreamUtils::getNativeDesktopMode(displayIndex, &desktopMode)) {
err = SDL_GetDesktopDisplayMode(displayIndex, &desktopMode);
if (err == 0) {
if (desktopMode.w <= 8192 && desktopMode.h <= 8192) {
monitorDesktopResolutions.insert(displayIndex, QRect(0, 0, desktopMode.w, desktopMode.h));
}
else {
SDL_LogWarn(SDL_LOG_CATEGORY_APPLICATION,
"Skipping resolution over 8K: %dx%d",
desktopMode.w, desktopMode.h);
}
}
else {
SDL_LogError(SDL_LOG_CATEGORY_APPLICATION,
"SDL_GetDesktopDisplayMode() failed: %s",
SDL_GetError());
}
if (StreamUtils::getRealDesktopMode(displayIndex, &desktopMode)) {
if (desktopMode.w <= 8192 && desktopMode.h <= 8192) {
monitorNativeResolutions.insert(displayIndex, QRect(0, 0, desktopMode.w, desktopMode.h));
}
+2
View File
@@ -29,6 +29,7 @@ public:
Q_PROPERTY(bool supportsHdr MEMBER supportsHdr CONSTANT)
Q_INVOKABLE void refreshDisplays();
Q_INVOKABLE QRect getDesktopResolution(int displayIndex);
Q_INVOKABLE QRect getNativeResolution(int displayIndex);
signals:
@@ -51,6 +52,7 @@ private:
QString unmappedGamepads;
int maximumStreamingFrameRate;
QSize maximumResolution;
QList<QRect> monitorDesktopResolutions;
QList<QRect> monitorNativeResolutions;
QString versionString;
bool supportsHdr;
-117
View File
@@ -164,10 +164,8 @@ GlobalCommandLineParser::ParseResult GlobalCommandLineParser::parse(const QStrin
"Starts Moonlight normally if no arguments are given.\n"
"\n"
"Available actions:\n"
" list List the available apps on a host\n"
" quit Quit the currently running app\n"
" stream Start streaming an app\n"
" pair Pair a new host\n"
"\n"
"See 'moonlight <action> --help' for help of specific action."
);
@@ -195,10 +193,6 @@ GlobalCommandLineParser::ParseResult GlobalCommandLineParser::parse(const QStrin
return QuitRequested;
} else if (action == "stream") {
return StreamRequested;
} else if (action == "pair") {
return PairRequested;
} else if (action == "list") {
return ListRequested;
}
}
@@ -248,58 +242,6 @@ QString QuitCommandLineParser::getHost() const
return m_Host;
}
PairCommandLineParser::PairCommandLineParser()
{
}
PairCommandLineParser::~PairCommandLineParser()
{
}
void PairCommandLineParser::parse(const QStringList &args)
{
CommandLineParser parser;
parser.setupCommonOptions();
parser.setApplicationDescription(
"\n"
"Pair with the specified host."
);
parser.addPositionalArgument("pair", "pair host");
parser.addPositionalArgument("host", "Host computer name, UUID, or IP address", "<host>");
parser.addValueOption("pin", "4 digit pairing PIN");
if (!parser.parse(args)) {
parser.showError(parser.errorText());
}
parser.handleUnknownOptions();
// This method will not return and terminates the process if --version or
// --help is specified
parser.handleHelpAndVersionOptions();
// Verify that host has been provided
auto posArgs = parser.positionalArguments();
if (posArgs.length() < 2) {
parser.showError("Host not provided");
}
m_Host = parser.positionalArguments().at(1);
m_PredefinedPin = parser.value("pin");
if (!m_PredefinedPin.isEmpty() && m_PredefinedPin.length() != 4) {
parser.showError("PIN must be 4 digits");
}
}
QString PairCommandLineParser::getHost() const
{
return m_Host;
}
QString PairCommandLineParser::getPredefinedPin() const
{
return m_PredefinedPin;
}
StreamCommandLineParser::StreamCommandLineParser()
{
m_WindowModeMap = {
@@ -526,62 +468,3 @@ QString StreamCommandLineParser::getAppName() const
{
return m_AppName;
}
ListCommandLineParser::ListCommandLineParser()
{
}
ListCommandLineParser::~ListCommandLineParser()
{
}
void ListCommandLineParser::parse(const QStringList &args)
{
CommandLineParser parser;
parser.setupCommonOptions();
parser.setApplicationDescription(
"\n"
"List the available apps on the given host."
);
parser.addPositionalArgument("list", "list available apps");
parser.addPositionalArgument("host", "Host computer name, UUID, or IP address", "<host>");
parser.addFlagOption("csv", "Print as CSV with additional information");
parser.addFlagOption("verbose", "Displays additional information");
if (!parser.parse(args)) {
parser.showError(parser.errorText());
}
parser.handleUnknownOptions();
m_PrintCSV = parser.isSet("csv");
m_Verbose = parser.isSet("verbose");
// This method will not return and terminates the process if --version or
// --help is specified
parser.handleHelpAndVersionOptions();
// Verify that host has been provided
auto posArgs = parser.positionalArguments();
if (posArgs.length() < 2) {
parser.showError("Host not provided");
}
m_Host = parser.positionalArguments().at(1);
}
QString ListCommandLineParser::getHost() const
{
return m_Host;
}
bool ListCommandLineParser::isPrintCSV() const
{
return m_PrintCSV;
}
bool ListCommandLineParser::isVerbose() const
{
return m_Verbose;
}
-36
View File
@@ -12,8 +12,6 @@ public:
NormalStartRequested,
StreamRequested,
QuitRequested,
PairRequested,
ListRequested,
};
GlobalCommandLineParser();
@@ -37,22 +35,6 @@ private:
QString m_Host;
};
class PairCommandLineParser
{
public:
PairCommandLineParser();
virtual ~PairCommandLineParser();
void parse(const QStringList &args);
QString getHost() const;
QString getPredefinedPin() const;
private:
QString m_Host;
QString m_PredefinedPin;
};
class StreamCommandLineParser
{
public:
@@ -73,21 +55,3 @@ private:
QMap<QString, StreamingPreferences::VideoDecoderSelection> m_VideoDecoderMap;
QMap<QString, StreamingPreferences::CaptureSysKeysMode> m_CaptureSysKeysModeMap;
};
class ListCommandLineParser
{
public:
ListCommandLineParser();
virtual ~ListCommandLineParser();
void parse(const QStringList &args);
QString getHost() const;
bool isPrintCSV() const;
bool isVerbose() const;
private:
QString m_Host;
bool m_PrintCSV;
bool m_Verbose;
};
-208
View File
@@ -1,208 +0,0 @@
#include "listapps.h"
#include "backend/boxartmanager.h"
#include "backend/computermanager.h"
#include "backend/computerseeker.h"
#include <QCoreApplication>
#include <QTimer>
#define COMPUTER_SEEK_TIMEOUT 10000
#define APP_SEEK_TIMEOUT 10000
namespace CliListApps
{
enum State {
StateInit,
StateSeekComputer,
StateListApp,
StateSeekApp,
StateFailure,
};
class Event
{
public:
enum Type {
ComputerFound,
ComputerUpdated,
ComputerSeekTimedout,
Executed,
};
Event(Type type)
: type(type), computerManager(nullptr), computer(nullptr) {}
Type type;
ComputerManager *computerManager;
NvComputer *computer;
QString errorMessage;
};
class LauncherPrivate
{
Q_DECLARE_PUBLIC(Launcher)
public:
LauncherPrivate(Launcher *q) : q_ptr(q) {}
void handleEvent(Event event)
{
Q_Q(Launcher);
NvApp app;
switch (event.type) {
// Occurs when CLI main calls execute
case Event::Executed:
if (m_State == StateInit) {
m_State = StateSeekComputer;
m_ComputerManager = event.computerManager;
m_ComputerSeeker = new ComputerSeeker(m_ComputerManager, m_ComputerName, q);
q->connect(m_ComputerSeeker, &ComputerSeeker::computerFound,
q, &Launcher::onComputerFound);
q->connect(m_ComputerSeeker, &ComputerSeeker::errorTimeout,
q, &Launcher::onComputerSeekTimeout);
m_ComputerSeeker->start(COMPUTER_SEEK_TIMEOUT);
q->connect(m_ComputerManager, &ComputerManager::computerStateChanged,
q, &Launcher::onComputerUpdated);
m_BoxArtManager = new BoxArtManager(q);
if (m_Arguments.isVerbose()) {
fprintf(stdout, "Establishing connection to PC...\n");
}
}
break;
// Occurs when computer search timed out
case Event::ComputerSeekTimedout:
if (m_State == StateSeekComputer) {
fprintf(stderr, "%s\n", qPrintable(QString("Failed to connect to %1").arg(m_ComputerName)));
QCoreApplication::exit(-1);
}
break;
// Occurs when searched computer is found
case Event::ComputerFound:
if (m_State == StateSeekComputer) {
if (event.computer->pairState == NvComputer::PS_PAIRED) {
m_State = StateSeekApp;
m_Computer = event.computer;
m_TimeoutTimer->start(APP_SEEK_TIMEOUT);
if (m_Arguments.isVerbose()) {
fprintf(stdout, "Loading app list...\n");
}
} else {
m_State = StateFailure;
fprintf(stderr, "%s\n", qPrintable(QObject::tr("Computer %1 has not been paired. "
"Please open Moonlight to pair before retrieving games list.")
.arg(event.computer->name)));
QCoreApplication::exit(-1);
}
}
break;
// Occurs when a computer is updated
case Event::ComputerUpdated:
if (m_State == StateSeekApp) {
m_Arguments.isPrintCSV() ? printAppsCSV(m_Computer->appList) : printApps(m_Computer->appList);
QCoreApplication::exit(0);
}
break;
}
}
void printApps(QVector<NvApp> apps) {
for (int i = 0; i < apps.length(); i++) {
fprintf(stdout, "%s\n", qPrintable(apps[i].name));
}
}
void printAppsCSV(QVector<NvApp> apps) {
fprintf(stdout, "Name, ID, HDR Support, App Collection Game, Hidden, Direct Launch, Boxart URL\n");
for (int i = 0; i < apps.length(); i++) {
printAppCSV(apps[i]);
}
}
void printAppCSV(NvApp app) const
{
fprintf(stdout, "\"%s\",%d,%s,%s,%s,%s,\"%s\"\n", qPrintable(app.name),
app.id,
app.hdrSupported ? "true" : "false",
app.isAppCollectorGame ? "true" : "false",
app.hidden ? "true" : "false",
app.directLaunch ? "true" : "false",
qPrintable(m_BoxArtManager->loadBoxArt(m_Computer, app).toDisplayString()));
}
Launcher *q_ptr;
ComputerManager *m_ComputerManager;
QString m_ComputerName;
ComputerSeeker *m_ComputerSeeker;
BoxArtManager *m_BoxArtManager;
NvComputer *m_Computer;
State m_State;
QTimer *m_TimeoutTimer;
ListCommandLineParser m_Arguments;
};
Launcher::Launcher(QString computer, ListCommandLineParser arguments, QObject *parent)
: QObject(parent),
m_DPtr(new LauncherPrivate(this))
{
Q_D(Launcher);
d->m_ComputerName = computer;
d->m_State = StateInit;
d->m_TimeoutTimer = new QTimer(this);
d->m_TimeoutTimer->setSingleShot(true);
d->m_Arguments = arguments;
connect(d->m_TimeoutTimer, &QTimer::timeout,
this, &Launcher::onComputerSeekTimeout);
}
Launcher::~Launcher()
{
}
void Launcher::execute(ComputerManager *manager)
{
Q_D(Launcher);
Event event(Event::Executed);
event.computerManager = manager;
d->handleEvent(event);
}
bool Launcher::isExecuted() const
{
Q_D(const Launcher);
return d->m_State != StateInit;
}
void Launcher::onComputerFound(NvComputer *computer)
{
Q_D(Launcher);
Event event(Event::ComputerFound);
event.computer = computer;
d->handleEvent(event);
}
void Launcher::onComputerSeekTimeout()
{
Q_D(Launcher);
Event event(Event::ComputerSeekTimedout);
d->handleEvent(event);
}
void Launcher::onComputerUpdated(NvComputer *computer)
{
Q_D(Launcher);
Event event(Event::ComputerUpdated);
event.computer = computer;
d->handleEvent(event);
}
}
-38
View File
@@ -1,38 +0,0 @@
#pragma once
#include "commandlineparser.h"
#include <QObject>
#include <QVariant>
class ComputerManager;
class NvComputer;
namespace CliListApps
{
class LauncherPrivate;
class Launcher : public QObject
{
Q_OBJECT
Q_DECLARE_PRIVATE_D(m_DPtr, Launcher)
public:
explicit Launcher(QString computer, ListCommandLineParser arguments, QObject *parent = nullptr);
~Launcher();
Q_INVOKABLE void execute(ComputerManager *manager);
Q_INVOKABLE bool isExecuted() const;
private slots:
void onComputerFound(NvComputer *computer);
void onComputerUpdated(NvComputer *computer);
void onComputerSeekTimeout();
private:
QScopedPointer<LauncherPrivate> m_DPtr;
ListCommandLineParser m_Arguments;
};
}
-181
View File
@@ -1,181 +0,0 @@
#include "pair.h"
#include "backend/computermanager.h"
#include "backend/computerseeker.h"
#include <QCoreApplication>
#include <QTimer>
#define COMPUTER_SEEK_TIMEOUT 10000
namespace CliPair
{
enum State {
StateInit,
StateSeekComputer,
StatePairing,
StateFailure,
StateComplete,
};
class Event
{
public:
enum Type {
ComputerFound,
Executed,
PairingCompleted,
Timedout,
};
Event(Type type)
: type(type), computerManager(nullptr), computer(nullptr) {}
Type type;
ComputerManager *computerManager;
NvComputer *computer;
QString errorMessage;
};
class LauncherPrivate
{
Q_DECLARE_PUBLIC(Launcher)
public:
LauncherPrivate(Launcher *q) : q_ptr(q) {}
void handleEvent(Event event)
{
Q_Q(Launcher);
switch (event.type) {
// Occurs when CliPair becomes visible and the UI calls launcher's execute()
case Event::Executed:
if (m_State == StateInit) {
m_State = StateSeekComputer;
m_ComputerManager = event.computerManager;
q->connect(m_ComputerManager, &ComputerManager::pairingCompleted,
q, &Launcher::onPairingCompleted);
// If we weren't provided a predefined PIN, generate one now
if (m_PredefinedPin.isEmpty()) {
m_PredefinedPin = m_ComputerManager->generatePinString();
}
m_ComputerSeeker = new ComputerSeeker(m_ComputerManager, m_ComputerName, q);
q->connect(m_ComputerSeeker, &ComputerSeeker::computerFound,
q, &Launcher::onComputerFound);
q->connect(m_ComputerSeeker, &ComputerSeeker::errorTimeout,
q, &Launcher::onTimeout);
m_ComputerSeeker->start(COMPUTER_SEEK_TIMEOUT);
emit q->searchingComputer();
}
break;
// Occurs when searched computer is found
case Event::ComputerFound:
if (m_State == StateSeekComputer) {
if (event.computer->pairState == NvComputer::PS_PAIRED) {
m_State = StateFailure;
QString msg = QObject::tr("%1 is already paired").arg(event.computer->name);
emit q->failed(msg);
}
else {
Q_ASSERT(!m_PredefinedPin.isEmpty());
m_State = StatePairing;
m_ComputerManager->pairHost(event.computer, m_PredefinedPin);
emit q->pairing(event.computer->name, m_PredefinedPin);
}
}
break;
// Occurs when pairing operation completes
case Event::PairingCompleted:
if (m_State == StatePairing) {
if (event.errorMessage.isEmpty()) {
m_State = StateComplete;
emit q->success();
}
else {
m_State = StateFailure;
emit q->failed(event.errorMessage);
}
}
break;
// Occurs when computer search timed out
case Event::Timedout:
if (m_State == StateSeekComputer) {
m_State = StateFailure;
emit q->failed(QObject::tr("Failed to connect to %1").arg(m_ComputerName));
}
break;
}
}
Launcher *q_ptr;
QString m_ComputerName;
QString m_PredefinedPin;
ComputerManager *m_ComputerManager;
ComputerSeeker *m_ComputerSeeker;
NvComputer *m_Computer;
State m_State;
QTimer *m_TimeoutTimer;
};
Launcher::Launcher(QString computer, QString predefinedPin, QObject *parent)
: QObject(parent),
m_DPtr(new LauncherPrivate(this))
{
Q_D(Launcher);
d->m_ComputerName = computer;
d->m_PredefinedPin = predefinedPin;
d->m_State = StateInit;
d->m_TimeoutTimer = new QTimer(this);
d->m_TimeoutTimer->setSingleShot(true);
connect(d->m_TimeoutTimer, &QTimer::timeout,
this, &Launcher::onTimeout);
}
Launcher::~Launcher()
{
}
void Launcher::execute(ComputerManager *manager)
{
Q_D(Launcher);
Event event(Event::Executed);
event.computerManager = manager;
d->handleEvent(event);
}
bool Launcher::isExecuted() const
{
Q_D(const Launcher);
return d->m_State != StateInit;
}
void Launcher::onComputerFound(NvComputer *computer)
{
Q_D(Launcher);
Event event(Event::ComputerFound);
event.computer = computer;
d->handleEvent(event);
}
void Launcher::onTimeout()
{
Q_D(Launcher);
Event event(Event::Timedout);
d->handleEvent(event);
}
void Launcher::onPairingCompleted(NvComputer* computer, QString error)
{
Q_D(Launcher);
Event event(Event::PairingCompleted);
event.computer = computer;
event.errorMessage = error;
d->handleEvent(event);
}
}
-44
View File
@@ -1,44 +0,0 @@
#pragma once
#include <QObject>
#include <QVariant>
class ComputerManager;
class NvComputer;
class Session;
class StreamingPreferences;
namespace CliPair
{
class Event;
class LauncherPrivate;
class Launcher : public QObject
{
Q_OBJECT
Q_DECLARE_PRIVATE_D(m_DPtr, Launcher)
public:
explicit Launcher(QString computer, QString predefinedPin,
QObject *parent = nullptr);
~Launcher();
Q_INVOKABLE void execute(ComputerManager *manager);
Q_INVOKABLE bool isExecuted() const;
signals:
void searchingComputer();
void pairing(QString pcName, QString pin);
void failed(QString text);
void success();
private slots:
void onComputerFound(NvComputer *computer);
void onPairingCompleted(NvComputer *computer, QString error);
void onTimeout();
private:
QScopedPointer<LauncherPrivate> m_DPtr;
};
}
+1 -1
View File
@@ -162,7 +162,7 @@ public:
QString getCurrentAppName() const
{
for (const NvApp& app : m_Computer->appList) {
for (NvApp app : m_Computer->appList) {
if (m_Computer->currentGameId == app.id) {
return app.name;
}
@@ -36,80 +36,6 @@
</screenshots>
<releases>
<release version="4.3.0" date="2022-10-28">
<description>
<p>New features:</p>
<ul>
<li>Improved support for GeForce Experience 3.26</li>
<li>Improved image quality and performance when recovering from video packet loss using HEVC</li>
<li>Improved error concealment after audio packet loss</li>
<li>Improved UI performance when paired with many hosts or hosts with large numbers of apps</li>
<li>Pairing with Sunshine hosts is now supported even if the host is in a streaming session</li>
</ul>
<p>Bugfixes:</p>
<ul>
<li>Fixed streaming at resolutions below 720x480 with GeForce Experience 3.26</li>
<li>Fixed window position and size being lost when toggling between full-screen and windowed mode</li>
<li>Fixed initial window size not always respecting the stream aspect ratio</li>
<li>Fixed unexpected error when streaming at resolutions above 4096x4096 using Sunshine</li>
<li>Updated included gamepad mappings</li>
<li>Updated community-contributed translations from Weblate</li>
</ul>
</description>
</release>
<release version="4.2.1" date="2022-09-12">
<description>
<p>Bugfixes:</p>
<ul>
<li>Fixed streaming from hosts running Sunshine</li>
<li>Updated community-contributed translations from Weblate</li>
</ul>
</description>
</release>
<release version="4.2.0" date="2022-09-10">
<description>
<p>New features:</p>
<ul>
<li>Added support for pairing via the terminal</li>
<li>Added support for listing installed apps on a host via the terminal</li>
<li>Improved handling of V-Sync on Wayland systems to reduce latency</li>
<li>Improved performance using the legacy non-EGL VAAPI rendering code</li>
</ul>
<p>Bugfixes:</p>
<ul>
<li>Fixed native resolution detection on high DPI Wayland systems</li>
<li>Fixed audio crackling with SDL 2.24.0 on systems using PulseAudio</li>
<li>Updated included gamepad mappings</li>
<li>Updated community-contributed translations from Weblate</li>
</ul>
</description>
</release>
<release version="4.1.0" date="2022-05-23">
<description>
<p>New features:</p>
<ul>
<li>Overlays are now supported on the non-EGL X11 VAAPI renderer (requires RGBA subpicture support in the VAAPI driver)</li>
<li>Cursor lock can now be disabled when in full-screen mode</li>
</ul>
<p>Behavior Changes:</p>
<ul>
<li>Moonlight can now reduce the client display resolution in full-screen mode if the current display mode doesn't have a high enough refresh rate for the selected stream frame rate</li>
<li>When choosing a new client display resolution in full-screen mode, Moonlight will pick a display mode with the closest aspect ratio to the selected stream resolution</li>
<li>Moonlight now defaults to borderless windowed mode on Wayland systems</li>
</ul>
<p>Bugfixes:</p>
<ul>
<li>Fixed missing toolbar buttons in certain languages</li>
<li>Fixed some text on the settings page not updating when the language is changed</li>
<li>Fixed a frame pacing bug that could cause excessive frame drops</li>
<li>Fixed the "keep display awake" setting not being saved when Moonlight restarts</li>
<li>Fixed black screen after unmaximizing the Moonlight window on some Linux systems</li>
<li>Updated included gamepad mappings</li>
<li>Updated community-contributed translations from Weblate</li>
</ul>
</description>
</release>
<release version="4.0.0" date="2022-04-02">
<description>
<p>New features:</p>
-91
View File
@@ -1,91 +0,0 @@
import QtQuick 2.0
import QtQuick.Controls 2.2
import ComputerManager 1.0
import SdlGamepadKeyNavigation 1.0
Item {
function onSearchingComputer() {
stageLabel.text = qsTr("Establishing connection to PC...")
}
function onPairing(pcName, pin) {
stageLabel.text = qsTr("Pairing... Please enter '%1' on %2.").arg(pin).arg(pcName)
}
function onFailed(message) {
stageIndicator.visible = false
errorDialog.text = message
errorDialog.open()
}
function onSuccess(appName) {
stageIndicator.visible = false
pairCompleteDialog.open()
}
// Allow user to back out of pairing
Keys.onEscapePressed: {
Qt.quit()
}
Keys.onBackPressed: {
Qt.quit()
}
Keys.onCancelPressed: {
Qt.quit()
}
StackView.onActivated: {
if (!launcher.isExecuted()) {
toolBar.visible = false
// Normally this is enabled by PcView, but we will won't
// load PcView when streaming from the command-line.
SdlGamepadKeyNavigation.enable()
launcher.searchingComputer.connect(onSearchingComputer)
launcher.pairing.connect(onPairing)
launcher.failed.connect(onFailed)
launcher.success.connect(onSuccess)
launcher.execute(ComputerManager)
}
}
Row {
anchors.centerIn: parent
spacing: 5
id: stageIndicator
BusyIndicator {
id: stageSpinner
}
Label {
id: stageLabel
height: stageSpinner.height
font.pointSize: 20
verticalAlignment: Text.AlignVCenter
wrapMode: Text.Wrap
}
}
ErrorMessageDialog {
id: errorDialog
onClosed: {
Qt.quit();
}
}
NavigableMessageDialog {
id: pairCompleteDialog
closePolicy: Popup.CloseOnEscape
text:qsTr("Pairing completed successfully")
standardButtons: Dialog.Ok
onClosed: {
Qt.quit()
}
}
}
+14 -6
View File
@@ -232,14 +232,22 @@ CenteredGridView {
stackView.push(appView)
}
else {
var pin = computerModel.generatePinString()
if (!model.busy) {
var pin = computerModel.generatePinString()
// Kick off pairing in the background
computerModel.pairComputer(index, pin)
// Kick off pairing in the background
computerModel.pairComputer(index, pin)
// Display the pairing dialog
pairDialog.pin = pin
pairDialog.open()
// Display the pairing dialog
pairDialog.pin = pin
pairDialog.open()
}
else {
// cannot pair while something is streaming or attempting to pair
errorDialog.text = qsTr("You cannot pair while a previous session is still running on the host PC. Quit any running games or reboot the host PC, then try pairing again.")
errorDialog.helpText = ""
errorDialog.open()
}
}
} else if (!model.online) {
// Using open() here because it may be activated by keyboard
+69 -87
View File
@@ -11,8 +11,6 @@ Flickable {
id: settingsPage
objectName: qsTr("Settings")
signal languageChanged()
boundsBehavior: Flickable.OvershootBounds
contentWidth: settingsColumn1.width > settingsColumn2.width ? settingsColumn1.width : settingsColumn2.width
@@ -97,39 +95,50 @@ Flickable {
// Add native resolutions for all attached displays
var done = false
for (var displayIndex = 0; !done; displayIndex++) {
var screenRect = SystemProperties.getNativeResolution(displayIndex);
for (var displayResIndex = 0; displayResIndex < 2; displayResIndex++) {
var screenRect;
if (screenRect.width === 0) {
// Exceeded max count of displays
done = true
break
}
// Some platforms have different desktop resolutions
// and native resolutions (like macOS with Retina displays)
if (displayResIndex === 0) {
screenRect = SystemProperties.getDesktopResolution(displayIndex)
}
else {
screenRect = SystemProperties.getNativeResolution(displayIndex)
}
var indexToAdd = 0
for (var j = 0; j < resolutionComboBox.count; j++) {
var existing_width = parseInt(resolutionListModel.get(j).video_width);
var existing_height = parseInt(resolutionListModel.get(j).video_height);
if (screenRect.width === existing_width && screenRect.height === existing_height) {
// Duplicate entry, skip
indexToAdd = -1
if (screenRect.width === 0) {
// Exceeded max count of displays
done = true
break
}
else if (screenRect.width * screenRect.height > existing_width * existing_height) {
// Candidate entrypoint after this entry
indexToAdd = j + 1
}
}
// Insert this display's resolution if it's not a duplicate
if (indexToAdd >= 0) {
resolutionListModel.insert(indexToAdd,
{
"text": "Native ("+screenRect.width+"x"+screenRect.height+")",
"video_width": ""+screenRect.width,
"video_height": ""+screenRect.height,
"is_custom": false
})
var indexToAdd = 0
for (var j = 0; j < resolutionComboBox.count; j++) {
var existing_width = parseInt(resolutionListModel.get(j).video_width);
var existing_height = parseInt(resolutionListModel.get(j).video_height);
if (screenRect.width === existing_width && screenRect.height === existing_height) {
// Duplicate entry, skip
indexToAdd = -1
break
}
else if (screenRect.width * screenRect.height > existing_width * existing_height) {
// Candidate entrypoint after this entry
indexToAdd = j + 1
}
}
// Insert this display's resolution if it's not a duplicate
if (indexToAdd >= 0) {
resolutionListModel.insert(indexToAdd,
{
"text": "Native ("+screenRect.width+"x"+screenRect.height+")",
"video_width": ""+screenRect.width,
"video_height": ""+screenRect.height,
"is_custom": false
})
}
}
}
@@ -456,7 +465,6 @@ Flickable {
// ignore setting the index at first, and actually set it when the component is loaded
Component.onCompleted: {
reinitialize()
languageChanged.connect(reinitialize)
}
id: fpsComboBox
@@ -523,53 +531,28 @@ Flickable {
}
AutoResizingComboBox {
function createModel() {
var model = Qt.createQmlObject('import QtQuick 2.0; ListModel {}', parent, '')
model.append({
text: qsTr("Fullscreen"),
val: StreamingPreferences.WM_FULLSCREEN
})
model.append({
text: qsTr("Borderless windowed"),
val: StreamingPreferences.WM_FULLSCREEN_DESKTOP
})
model.append({
text: qsTr("Windowed"),
val: StreamingPreferences.WM_WINDOWED
})
// Set the recommended option based on the OS
for (var i = 0; i < model.count; i++) {
var thisWm = model.get(i).val;
if (thisWm === StreamingPreferences.recommendedFullScreenMode) {
model.get(i).text += qsTr(" (Recommended)")
model.move(i, 0, 1)
break
}
}
return model
}
// This is used on initialization and upon retranslation
function reinitialize() {
// ignore setting the index at first, and actually set it when the component is loaded
Component.onCompleted: {
if (!visible) {
// Do nothing if the control won't even be visible
return
}
model = createModel()
// Set the recommended option based on the OS
for (var i = 0; i < windowModeListModel.count; i++) {
var thisWm = windowModeListModel.get(i).val;
if (thisWm === StreamingPreferences.recommendedFullScreenMode) {
windowModeListModel.get(i).text += qsTr(" (Recommended)")
windowModeListModel.move(i, 0, 1);
break
}
}
currentIndex = 0
// Set the current value based on the saved preferences
var savedWm = StreamingPreferences.windowMode
for (var i = 0; i < model.count; i++) {
var thisWm = model.get(i).val;
for (var i = 0; i < windowModeListModel.count; i++) {
var thisWm = windowModeListModel.get(i).val;
if (savedWm === thisWm) {
currentIndex = i
break
@@ -579,18 +562,28 @@ Flickable {
activated(currentIndex)
}
Component.onCompleted: {
reinitialize()
languageChanged.connect(reinitialize)
}
id: windowModeComboBox
visible: SystemProperties.hasDesktopEnvironment
enabled: !SystemProperties.rendererAlwaysFullScreen
hoverEnabled: true
textRole: "text"
model: ListModel {
id: windowModeListModel
ListElement {
text: qsTr("Fullscreen")
val: StreamingPreferences.WM_FULLSCREEN
}
ListElement {
text: qsTr("Borderless windowed")
val: StreamingPreferences.WM_FULLSCREEN_DESKTOP
}
ListElement {
text: qsTr("Windowed")
val: StreamingPreferences.WM_WINDOWED
}
}
onActivated: {
StreamingPreferences.windowMode = model.get(currentIndex).val
StreamingPreferences.windowMode = windowModeListModel.get(currentIndex).val
}
ToolTip.delay: 1000
@@ -860,14 +853,6 @@ Flickable {
text: "हिन्दी, हिंदी" // Hindi
val: StreamingPreferences.LANG_HI
} */
ListElement {
text: "Język polski" // Polish
val: StreamingPreferences.LANG_PL
}
ListElement {
text: "Čeština" // Czech
val: StreamingPreferences.LANG_CS
}
}
// ::onActivated must be used, as it only listens for when the index is changed by a human
onActivated : {
@@ -882,9 +867,6 @@ Flickable {
// Force the back operation to pop any AppView pages that exist.
// The AppView stops working after retranslate() for some reason.
window.clearOnBack = true
// Signal other controls to adjust their text
languageChanged()
}
}
}
+8 -1
View File
@@ -2,6 +2,8 @@
#include <QThreadPool>
#include <random>
ComputerModel::ComputerModel(QObject* object)
: QAbstractListModel(object) {}
@@ -138,9 +140,14 @@ void ComputerModel::renameComputer(int computerIndex, QString name)
m_ComputerManager->renameHost(m_Computers[computerIndex], name);
}
// TODO: Use QRandomGenerator when we drop Qt 5.9 support
QString ComputerModel::generatePinString()
{
return m_ComputerManager->generatePinString();
std::uniform_int_distribution<int> dist(0, 9999);
std::random_device rd;
std::mt19937 engine(rd());
return QString::asprintf("%04u", dist(engine));
}
class DeferredTestConnectionTask : public QObject, public QRunnable
+7 -17
View File
@@ -181,20 +181,10 @@ ApplicationWindow {
}
}
// Workaround for lack of instanceof in Qt 5.9.
//
// Based on https://stackoverflow.com/questions/13923794/how-to-do-a-is-a-typeof-or-instanceof-in-qml
function qmltypeof(obj, className) { // QtObject, string -> bool
// className plus "(" is the class instance without modification
// className plus "_QML" is the class instance with user-defined properties
var str = obj.toString();
return str.startsWith(className + "(") || str.startsWith(className + "_QML");
}
function navigateTo(url, objectType)
function navigateTo(url, objectName)
{
var existingItem = stackView.find(function(item, index) {
return qmltypeof(item, objectType)
return item.objectName === objectName
})
if (existingItem !== null) {
@@ -261,7 +251,7 @@ ApplicationWindow {
Label {
id: versionLabel
visible: qmltypeof(stackView.currentItem, "SettingsView")
visible: stackView.currentItem.objectName === qsTr("Settings")
text: qsTr("Version %1").arg(SystemProperties.versionString)
font.pointSize: 12
horizontalAlignment: Qt.AlignRight
@@ -271,7 +261,7 @@ ApplicationWindow {
NavigableToolButton {
id: discordButton
visible: SystemProperties.hasBrowser &&
qmltypeof(stackView.currentItem, "SettingsView")
stackView.currentItem.objectName === qsTr("Settings")
iconSource: "qrc:/res/Discord-Logo-White.svg"
@@ -290,7 +280,7 @@ ApplicationWindow {
NavigableToolButton {
id: addPcButton
visible: qmltypeof(stackView.currentItem, "PcView")
visible: stackView.currentItem.objectName === qsTr("Computers")
iconSource: "qrc:/res/ic_add_to_queue_white_48px.svg"
@@ -388,7 +378,7 @@ ApplicationWindow {
iconSource: "qrc:/res/ic_videogame_asset_white_48px.svg"
onClicked: navigateTo("qrc:/gui/GamepadMapper.qml", "GamepadMapper")
onClicked: navigateTo("qrc:/gui/GamepadMapper.qml", qsTr("Gamepad Mapping"))
Keys.onDownPressed: {
stackView.currentItem.forceActiveFocus(Qt.TabFocus)
@@ -400,7 +390,7 @@ ApplicationWindow {
iconSource: "qrc:/res/settings.svg"
onClicked: navigateTo("qrc:/gui/SettingsView.qml", "SettingsView")
onClicked: navigateTo("qrc:/gui/SettingsView.qml", qsTr("Settings"))
Keys.onDownPressed: {
stackView.currentItem.forceActiveFocus(Qt.TabFocus)
Binary file not shown.
File diff suppressed because it is too large Load Diff
Binary file not shown.
+229 -299
View File
File diff suppressed because it is too large Load Diff
Binary file not shown.
+142 -212
View File
@@ -51,24 +51,6 @@
<translation>Είστε βέβαιοι ότι θέλετε να κλείσετε το %1; Τυχόν μη αποθηκευμένη πρόοδος θα χαθεί.</translation>
</message>
</context>
<context>
<name>CliPair</name>
<message>
<location filename="../gui/CliPair.qml" line="9"/>
<source>Establishing connection to PC...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/CliPair.qml" line="13"/>
<source>Pairing... Please enter &apos;%1&apos; on %2.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/CliPair.qml" line="85"/>
<source>Pairing completed successfully</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>CliQuitStreamSegue</name>
<message>
@@ -181,51 +163,52 @@
<translation>Η έκδοση του GeForce Experience στο %1 δεν υποστηρίζεται από αυτήν την έκδοση του Moonlight. Πρέπει να ενημερώσετε το Moonlight για ροή από το %1.</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="247"/>
<source>You cannot pair while a previous session is still running on the host PC. Quit any running games or reboot the host PC, then try pairing again.</source>
<translation type="vanished">Δεν μπορείτε να πραγματοποιήσετε ζεύξη ενώ μια προηγούμενη συνεδρία εξακολουθεί να εκτελείται στον κεντρικό υπολογιστή. Τερματίστε τυχόν παιχνίδια που εκτελούνται ή επανεκκινήστε τον κεντρικό υπολογιστή και, στη συνέχεια, δοκιμάστε ξανά τη ζεύξη.</translation>
<translation>Δεν μπορείτε να πραγματοποιήσετε ζεύξη ενώ μια προηγούμενη συνεδρία εξακολουθεί να εκτελείται στον κεντρικό υπολογιστή. Τερματίστε τυχόν παιχνίδια που εκτελούνται ή επανεκκινήστε τον κεντρικό υπολογιστή και, στη συνέχεια, δοκιμάστε ξανά τη ζεύξη.</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="294"/>
<location filename="../gui/PcView.qml" line="302"/>
<source>Please enter %1 on your GameStream PC. This dialog will close when pairing is completed.</source>
<translation>Εισάγετε το %1 στον υπολογιστή GameStream. Αυτό το παράθυρο διαλόγου θα κλείσει όταν ολοκληρωθεί η αντιστοίχιση.</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="305"/>
<location filename="../gui/PcView.qml" line="313"/>
<source>Are you sure you want to remove this PC?</source>
<translation>Είστε βέβαιοι ότι θέλετε να καταργήσετε αυτόν τον υπολογιστή;</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="322"/>
<location filename="../gui/PcView.qml" line="330"/>
<source>Moonlight is testing your network connection to determine if NVIDIA GameStream is blocked.</source>
<translation>Το Moonlight δοκιμάζει τη σύνδεση δικτύου σας για να καθορίσει εάν το NVIDIA GameStream είναι αποκλεισμένο.</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="322"/>
<location filename="../gui/PcView.qml" line="330"/>
<source>This may take a few seconds…</source>
<translation>Αυτό μπορεί να διαρκέσει μερικά δευτερόλεπτα…</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="333"/>
<location filename="../gui/PcView.qml" line="341"/>
<source>This network does not appear to be blocking Moonlight. If you still have trouble connecting, check your PC&apos;s firewall settings.</source>
<translation>Αυτό το δίκτυο δεν φαίνεται να εμποδίζει το Moonlight. Αν εξακολουθείτε να αντιμετωπίζετε προβλήματα σύνδεσης, ελέγξτε τις ρυθμίσεις τείχους προστασίας του υπολογιστή σας.</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="333"/>
<location filename="../gui/PcView.qml" line="341"/>
<source>If you are trying to stream over the Internet, install the Moonlight Internet Hosting Tool on your gaming PC and run the included Internet Streaming Tester to check your gaming PC&apos;s Internet connection.</source>
<translation>Αν προσπαθείτε να κάνετε streaming μέσω του Διαδικτύου, εγκαταστήστε το Moonlight Internet Hosting Tool στον υπολογιστή παιχνιδιών σας και εκτελέστε το συμπεριλαμβανόμενο Internet Streaming Tester για να ελέγξετε τη σύνδεση Internet του υπολογιστή παιχνιδιών σας.</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="337"/>
<location filename="../gui/PcView.qml" line="345"/>
<source>Your PC&apos;s current network connection seems to be blocking Moonlight. Streaming over the Internet may not work while connected to this network.</source>
<translation>Η τρέχουσα σύνδεση δικτύου του υπολογιστή σας φαίνεται να εμποδίζει το Moonlight. Η ροή μέσω του Internet ενδέχεται να μην λειτουργεί ενώ είστε συνδεδεμένοι σε αυτό το δίκτυο.</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="337"/>
<location filename="../gui/PcView.qml" line="345"/>
<source>The following network ports were blocked:</source>
<translation>Οι ακόλουθες θύρες δικτύου αποκλείστηκαν:</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="329"/>
<location filename="../gui/PcView.qml" line="337"/>
<source>The network test could not be performed because none of Moonlight&apos;s connection testing servers were reachable from this PC. Check your Internet connection or try again later.</source>
<translation>Η δοκιμή δικτύου δεν μπορούσε να πραγματοποιηθεί επειδή κανένας από τους διακομιστές δοκιμής σύνδεσης της Moonlight δεν ήταν προσβάσιμος από αυτόν τον υπολογιστή. Ελέγξτε τη σύνδεσή σας στο Internet ή δοκιμάστε ξανά αργότερα.</translation>
</message>
@@ -255,43 +238,15 @@
<translation>Προβολή όλων των εφαρμογών</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="349"/>
<location filename="../gui/PcView.qml" line="357"/>
<source>Enter the new name for this PC:</source>
<translation>Εισάγετε το νέο όνομα για αυτόν τον υπολογιστή:</translation>
</message>
</context>
<context>
<name>PendingPairingTask</name>
<message>
<location filename="../backend/computermanager.cpp" line="535"/>
<source>The PIN from the PC didn&apos;t match. Please try again.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../backend/computermanager.cpp" line="539"/>
<source>You cannot pair while a previous session is still running on the host PC. Quit any running games or reboot the host PC, then try pairing again.</source>
<translation type="unfinished">Δεν μπορείτε να πραγματοποιήσετε ζεύξη ενώ μια προηγούμενη συνεδρία εξακολουθεί να εκτελείται στον κεντρικό υπολογιστή. Τερματίστε τυχόν παιχνίδια που εκτελούνται ή επανεκκινήστε τον κεντρικό υπολογιστή και, στη συνέχεια, δοκιμάστε ξανά τη ζεύξη.</translation>
</message>
<message>
<location filename="../backend/computermanager.cpp" line="542"/>
<source>Pairing failed. Please try again.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../backend/computermanager.cpp" line="546"/>
<source>Another pairing attempt is already in progress.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../backend/computermanager.cpp" line="556"/>
<source>GeForce Experience returned error: %1</source>
<translation type="unfinished">Το GeForce Experience επέστρεψε σφάλμα: %1</translation>
</message>
</context>
<context>
<name>PendingQuitTask</name>
<message>
<location filename="../backend/computermanager.cpp" line="606"/>
<location filename="../backend/computermanager.cpp" line="540"/>
<source>The running game wasn&apos;t started by this PC. You must quit the game on the host PC manually or use the device that originally started the game.</source>
<translation>Το παιχνίδι που τρέχει δεν ξεκίνησε από αυτόν τον υπολογιστή. Πρέπει να κλείσετε το παιχνίδι στον κεντρικό υπολογιστή με μη αυτόματο τρόπο ή να χρησιμοποιήσετε τη συσκευή που ξεκίνησε αρχικά το παιχνίδι.</translation>
</message>
@@ -299,16 +254,6 @@
<context>
<name>QObject</name>
<message>
<location filename="../cli/pair.cpp" line="80"/>
<source>%1 is already paired</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>You cannot pair while a previous session is still running on the host PC. Quit any running games or reboot the host PC, then try pairing again.</source>
<translation type="obsolete">Δεν μπορείτε να πραγματοποιήσετε ζεύξη ενώ μια προηγούμενη συνεδρία εξακολουθεί να εκτελείται στον κεντρικό υπολογιστή. Τερματίστε τυχόν παιχνίδια που εκτελούνται ή επανεκκινήστε τον κεντρικό υπολογιστή και, στη συνέχεια, δοκιμάστε ξανά τη ζεύξη.</translation>
</message>
<message>
<location filename="../cli/pair.cpp" line="109"/>
<location filename="../cli/quitstream.cpp" line="76"/>
<location filename="../cli/startstream.cpp" line="133"/>
<source>Failed to connect to %1</source>
@@ -331,11 +276,6 @@
<source>Failed to find application %1</source>
<translation>Απέτυχε η εύρεση της εφαρμογής %1</translation>
</message>
<message>
<location filename="../cli/listapps.cpp" line="99"/>
<source>Computer %1 has not been paired. Please open Moonlight to pair before retrieving games list.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>QuitSegue</name>
@@ -367,32 +307,22 @@
<translation>Η σύνδεσή σας στο δίκτυο δεν αποδίδει καλά. Μειώστε το bitrate ή δοκιμάστε μια ταχύτερη σύνδεση.</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="103"/>
<location filename="../streaming/session.cpp" line="102"/>
<source>Something went wrong on your host PC when starting the stream.</source>
<translation>Κάτι πήγε στραβά στον κεντρικό υπολογιστή σας κατά την έναρξη της ροής.</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="104"/>
<location filename="../streaming/session.cpp" line="103"/>
<source>Make sure you don&apos;t have any DRM-protected content open on your host PC. You can also try restarting your host PC.</source>
<translation>Βεβαιωθείτε ότι δεν έχετε ανοιχτό περιεχόμενο με προστασία DRM στον κεντρικό υπολογιστή σας. Μπορείτε επίσης να δοκιμάσετε να επανεκκινήσετε τον κεντρικό υπολογιστή σας.</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="105"/>
<location filename="../streaming/session.cpp" line="104"/>
<source>If the issue persists, try reinstalling your GPU drivers and GeForce Experience.</source>
<translation>Αν το πρόβλημα παραμένει, δοκιμάστε να επανεγκαταστήσετε τα προγράμματα οδήγησης της κάρτας γραφικών και το GeForce Experience.</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="110"/>
<source>The host PC reported a fatal video encoding error.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="111"/>
<source>Try disabling HDR mode, changing the streaming resolution, or changing your host PC&apos;s display resolution.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="116"/>
<location filename="../streaming/session.cpp" line="109"/>
<source>Connection terminated</source>
<translation>Η σύνδεση τερματίστηκε</translation>
</message>
@@ -490,32 +420,32 @@
<translation>Ένα συνδεδεμένο gamepad δεν έχει χαρτογράφηση και δεν μπορεί να χρησιμοποιηθεί. Επισκεφτείτε τη βοήθεια του Moonlight για να το επιλύσετε.</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="810"/>
<location filename="../streaming/session.cpp" line="805"/>
<source>Your host PC&apos;s GPU doesn&apos;t support streaming video resolutions over 4K.</source>
<translation>Η κάρτα γραφικών του κεντρικού υπολογιστή σας δεν υποστηρίζει αναλύσεις βίντεο ροής πάνω από 4K.</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="814"/>
<location filename="../streaming/session.cpp" line="809"/>
<source>Video resolutions over 4K are only supported by the HEVC codec.</source>
<translation>Οι αναλύσεις βίντεο άνω των 4K υποστηρίζονται μόνο από τον κωδικοποιητή HEVC.</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="828"/>
<location filename="../streaming/session.cpp" line="823"/>
<source>Your selection to force hardware decoding cannot be satisfied due to missing hardware decoding support on this PC&apos;s GPU.</source>
<translation>Η επιλογή σας για επιβολή αποκωδικοποίησης υλικού δεν μπορεί να ικανοποιηθεί λόγω έλλειψης υποστήριξης αποκωδικοποίησης υλικού στη κάρτα γραφικών αυτού του υπολογιστή.</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="831"/>
<location filename="../streaming/session.cpp" line="826"/>
<source>Your codec selection and force hardware decoding setting are not compatible. This PC&apos;s GPU lacks support for decoding your chosen codec.</source>
<translation>Η επιλογή κωδικοποιητή και η αναγκαστική αποκωδικοποίηση υλικού δεν είναι συμβατές. Η κάρτα γραφικών αυτού του υπολογιστή δεν υποστηρίζει την αποκωδικοποίηση του κωδικοποιητή που έχετε επιλέξει.</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="1176"/>
<location filename="../streaming/session.cpp" line="1159"/>
<source>GeForce Experience returned error: %1</source>
<translation>Το GeForce Experience επέστρεψε σφάλμα: %1</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="1697"/>
<location filename="../streaming/session.cpp" line="1691"/>
<source>Unable to initialize video decoder. Please check your streaming settings and try again.</source>
<translation>Αδυναμία αρχικοποίησης του αποκωδικοποιητή βίντεο. Ελέγξτε τις ρυθμίσεις ροής και δοκιμάστε ξανά.</translation>
</message>
@@ -528,60 +458,60 @@
<translation>Ρυθμίσεις</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="72"/>
<location filename="../gui/SettingsView.qml" line="70"/>
<source>Resolution and FPS</source>
<translation>Ανάλυση και FPS</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="80"/>
<location filename="../gui/SettingsView.qml" line="78"/>
<source>Setting values too high for your PC or network connection may cause lag, stuttering, or errors.</source>
<translation>Η ρύθμιση τιμών πολύ υψηλών για τον υπολογιστή σας ή τη σύνδεση δικτύου μπορεί να προκαλέσει καθυστέρηση, stuttering ή σφάλματα.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="62"/>
<location filename="../gui/SettingsView.qml" line="60"/>
<source>Basic Settings</source>
<translation>Βασικές ρυθμίσεις</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="200"/>
<location filename="../gui/SettingsView.qml" line="209"/>
<source>720p</source>
<translation>720p</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="206"/>
<location filename="../gui/SettingsView.qml" line="215"/>
<source>1080p</source>
<translation>1080p</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="212"/>
<location filename="../gui/SettingsView.qml" line="221"/>
<source>1440p</source>
<translation>1440 p</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="218"/>
<location filename="../gui/SettingsView.qml" line="227"/>
<source>4K</source>
<translation>4K</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="322"/>
<location filename="../gui/SettingsView.qml" line="331"/>
<source>Custom resolutions are not officially supported by GeForce Experience, so it will not set your host display resolution. You will need to set it manually while in game.</source>
<translation>Οι προσαρμοσμένες αναλύσεις δεν υποστηρίζονται επίσημα από το GeForce Experience, επομένως δεν θα ορίσει την ανάλυση της οθόνης του κεντρικού υπολογιστή σας. Θα πρέπει να το ρυθμίσετε χειροκίνητα ενώ βρίσκεστε στο παιχνίδι.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="323"/>
<location filename="../gui/SettingsView.qml" line="332"/>
<source>Resolutions that are not supported by your client or host PC may cause streaming errors.</source>
<translation>Οι αναλύσεις που δεν υποστηρίζονται από τον υπολογιστή-πελάτη ή τον κεντρικό υπολογιστή σας ενδέχεται να προκαλέσουν σφάλματα ροής.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="329"/>
<location filename="../gui/SettingsView.qml" line="338"/>
<source>Enter a custom resolution:</source>
<translation>Εισάγετε μια προσαρμοσμένη ανάλυση:</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="397"/>
<location filename="../gui/SettingsView.qml" line="398"/>
<location filename="../gui/SettingsView.qml" line="418"/>
<location filename="../gui/SettingsView.qml" line="421"/>
<location filename="../gui/SettingsView.qml" line="406"/>
<location filename="../gui/SettingsView.qml" line="407"/>
<location filename="../gui/SettingsView.qml" line="427"/>
<location filename="../gui/SettingsView.qml" line="430"/>
<source>%1 FPS</source>
<translation>%1 FPS</translation>
</message>
@@ -590,189 +520,184 @@
<translation type="vanished">%1 FPS (nicht unterstützt)</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="485"/>
<location filename="../gui/SettingsView.qml" line="493"/>
<source>Video bitrate:</source>
<translation>Ρυθμός bit βίντεο:</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="493"/>
<location filename="../gui/SettingsView.qml" line="501"/>
<source>Lower the bitrate on slower connections. Raise the bitrate to increase image quality.</source>
<translation>Μειώστε το bitrate σε πιο αργές συνδέσεις. Αυξήστε το bitrate για να αυξήσετε την ποιότητα της εικόνας.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="511"/>
<location filename="../gui/SettingsView.qml" line="519"/>
<source>Video bitrate: %1 Mbps</source>
<translation>Ρυθμός bit βίντεο: %1 Mbps</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="519"/>
<location filename="../gui/SettingsView.qml" line="527"/>
<source>Display mode</source>
<translation>Λειτουργία προβολής</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="549"/>
<location filename="../gui/SettingsView.qml" line="545"/>
<source> (Recommended)</source>
<translatorcomment>Dont put the space in ransaltions</translatorcomment>
<translation type="unfinished"> (Συνιστάται)</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="530"/>
<location filename="../gui/SettingsView.qml" line="937"/>
<location filename="../gui/SettingsView.qml" line="573"/>
<location filename="../gui/SettingsView.qml" line="919"/>
<source>Fullscreen</source>
<translation>Πλήρης οθόνη</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="599"/>
<location filename="../gui/SettingsView.qml" line="592"/>
<source>Fullscreen generally provides the best performance, but borderless windowed may work better with features like macOS Spaces, Alt+Tab, screenshot tools, on-screen overlays, etc.</source>
<translation>Η πλήρης οθόνη παρέχει γενικά την καλύτερη απόδοση, αλλά τα παράθυρα χωρίς περίγραμμα μπορεί να λειτουργούν καλύτερα με λειτουργίες όπως macOS Spaces, Alt+Tab, εργαλεία στιγμιότυπου οθόνης, επικαλύψεις στην οθόνη κ.λπ.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="535"/>
<location filename="../gui/SettingsView.qml" line="577"/>
<source>Borderless windowed</source>
<translation>Παράθυρο χωρίς περίγραμμα</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="403"/>
<location filename="../gui/SettingsView.qml" line="406"/>
<location filename="../gui/SettingsView.qml" line="412"/>
<location filename="../gui/SettingsView.qml" line="415"/>
<location filename="../gui/SettingsView.qml" line="428"/>
<location filename="../gui/SettingsView.qml" line="431"/>
<location filename="../gui/SettingsView.qml" line="424"/>
<location filename="../gui/SettingsView.qml" line="437"/>
<location filename="../gui/SettingsView.qml" line="440"/>
<source>%1 FPS (Unsupported)</source>
<translation>%1 FPS (Δεν υποστηρίζεται)</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="540"/>
<location filename="../gui/SettingsView.qml" line="929"/>
<location filename="../gui/SettingsView.qml" line="581"/>
<location filename="../gui/SettingsView.qml" line="911"/>
<source>Windowed</source>
<translation>Σε Παράθυρο</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="606"/>
<location filename="../gui/SettingsView.qml" line="599"/>
<source>V-Sync</source>
<translation>V-Sync</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="616"/>
<location filename="../gui/SettingsView.qml" line="609"/>
<source>Disabling V-Sync allows sub-frame rendering latency, but it can display visible tearing</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="623"/>
<location filename="../gui/SettingsView.qml" line="616"/>
<source>Frame pacing</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="633"/>
<location filename="../gui/SettingsView.qml" line="626"/>
<source>Frame pacing reduces micro-stutter by delaying frames that come in too early</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="643"/>
<location filename="../gui/SettingsView.qml" line="636"/>
<source>Audio Settings</source>
<translation>Ρυθμίσεις ήχου</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="678"/>
<location filename="../gui/SettingsView.qml" line="671"/>
<source>Stereo</source>
<translation>Στέρεο</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="682"/>
<location filename="../gui/SettingsView.qml" line="675"/>
<source>5.1 surround sound</source>
<translation>Ήχος surround 5.1</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="686"/>
<location filename="../gui/SettingsView.qml" line="679"/>
<source>7.1 surround sound</source>
<translation>Ήχος surround 7.1</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="700"/>
<location filename="../gui/SettingsView.qml" line="693"/>
<source>Mute host PC speakers while streaming</source>
<translation>Σίγαση ηχείων κεντρικού υπολογιστή κατά τη ροή</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="710"/>
<location filename="../gui/SettingsView.qml" line="703"/>
<source>You must restart any game currently in progress for this setting to take effect</source>
<translation>Πρέπει να επανεκκινήσετε οποιοδήποτε παιχνίδι βρίσκεται σε εξέλιξη για να τεθεί σε ισχύ αυτή η ρύθμιση</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="716"/>
<location filename="../gui/SettingsView.qml" line="709"/>
<source>Mute audio stream when Moonlight is not the active window</source>
<translation>Σίγαση ροής ήχου όταν το Moonlight δεν είναι το ενεργό παράθυρο</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="727"/>
<location filename="../gui/SettingsView.qml" line="720"/>
<source>Mutes Moonlight&apos;s audio when you Alt+Tab out of the stream or click on a different window.</source>
<translation>Σιγεί τον ήχο του Moonlight όταν κάνετε Alt+Tab έξω από τη ροή ή κάνετε κλικ σε ένα διαφορετικό παράθυρο.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="736"/>
<location filename="../gui/SettingsView.qml" line="729"/>
<source>UI Settings</source>
<translation>Ρυθμίσεις διεπαφής χρήστη</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="746"/>
<location filename="../gui/SettingsView.qml" line="739"/>
<source>Language</source>
<translation>Γλώσσα</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="772"/>
<location filename="../gui/SettingsView.qml" line="765"/>
<source>Automatic</source>
<translation>Αυτόματο</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="879"/>
<location filename="../gui/SettingsView.qml" line="864"/>
<source>You must restart Moonlight for this change to take effect</source>
<translation>Πρέπει να επανεκκινήσετε το Moonlight για να τεθεί σε ισχύ αυτή η αλλαγή</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="896"/>
<location filename="../gui/SettingsView.qml" line="878"/>
<source>GUI display mode</source>
<translation>Λειτουργία εμφάνισης GUI</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="933"/>
<location filename="../gui/SettingsView.qml" line="915"/>
<source>Maximized</source>
<translation>Μεγιστοποιημένο</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1006"/>
<location filename="../gui/SettingsView.qml" line="988"/>
<source>Input Settings</source>
<translation>Ρυθμίσεις εισόδου</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1027"/>
<location filename="../gui/SettingsView.qml" line="1009"/>
<source>This enables seamless mouse control without capturing the client&apos;s mouse cursor. It is ideal for remote desktop usage but will not work in most games.</source>
<translation>Αυτό επιτρέπει τον απρόσκοπτο έλεγχο του ποντικιού χωρίς να συλλαμβάνεται ο δρομέας του ποντικιού του υπολογιστή-πελάτη. Είναι ιδανικό για χρήση απομακρυσμένης επιφάνειας εργασίας, αλλά δεν θα λειτουργήσει στα περισσότερα παιχνίδια.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1029"/>
<location filename="../gui/SettingsView.qml" line="1011"/>
<source>NOTE: Due to a bug in GeForce Experience, this option may not work properly if your host PC has multiple monitors.</source>
<translation>ΣΗΜΕΙΩΣΗ: Λόγω ενός σφάλματος στο GeForce Experience, αυτή η επιλογή ενδέχεται να μην λειτουργεί σωστά εάν ο κεντρικός υπολογιστής σας διαθέτει πολλαπλές οθόνες.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1345"/>
<source>Enabling HDR overrides manual decoder selections.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1414"/>
<location filename="../gui/SettingsView.qml" line="1378"/>
<source>Enabling HDR overrides manual codec selections.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1420"/>
<location filename="../gui/SettingsView.qml" line="1384"/>
<source>Enable HDR (Experimental)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1431"/>
<location filename="../gui/SettingsView.qml" line="1395"/>
<source>The stream will be HDR-capable, but some games may require an HDR monitor on your host PC to enable HDR mode.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1433"/>
<location filename="../gui/SettingsView.qml" line="1397"/>
<source>HDR streaming is not supported on this PC.</source>
<translation type="unfinished"></translation>
</message>
@@ -785,193 +710,193 @@
<translation type="vanished">Dies ermöglicht die Erfassung von systemweiten Tastenkombinationen wie Alt+Tab, die normalerweise vom Client beim Streamen im Vollbildmodus ausgeführt werden würden.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1048"/>
<location filename="../gui/SettingsView.qml" line="1030"/>
<source>NOTE: Certain keyboard shortcuts like Ctrl+Alt+Del on Windows cannot be intercepted by any application, including Moonlight.</source>
<translation>ΣΗΜΕΙΩΣΗ: Ορισμένες συντομεύσεις πληκτρολογίου, όπως Ctrl+Alt+Del στα Windows, δεν μπορούν να καταγραφούν από καμία εφαρμογή, συμπεριλαμβανομένου του Moonlight.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1111"/>
<location filename="../gui/SettingsView.qml" line="1093"/>
<source>Use touchscreen as a virtual trackpad</source>
<translation>Χρησιμοποιήστε την οθόνη αφής ως εικονικό trackpad</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1128"/>
<location filename="../gui/SettingsView.qml" line="1110"/>
<source>Swap left and right mouse buttons</source>
<translation>Εναλλαγή αριστερού και δεξιού κουμπιού ποντικιού</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1140"/>
<location filename="../gui/SettingsView.qml" line="1122"/>
<source>Reverse mouse scrolling direction</source>
<translation>Αντιστροφή κατεύθυνσης κύλισης του ποντικιού</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1154"/>
<location filename="../gui/SettingsView.qml" line="1136"/>
<source>Gamepad Settings</source>
<translation>Ρυθμίσεις Gamepad</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1164"/>
<location filename="../gui/SettingsView.qml" line="1146"/>
<source>Swap A/B and X/Y gamepad buttons</source>
<translation>Εναλλαγή κουμπιών A/B και X/Y του gamepad</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1182"/>
<location filename="../gui/SettingsView.qml" line="1164"/>
<source>This switches gamepads into a Nintendo-style button layout</source>
<translation>Αυτό μετατρέπει τα gamepads σε διάταξη κουμπιών τύπου Nintendo</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1188"/>
<location filename="../gui/SettingsView.qml" line="1170"/>
<source>Force gamepad #1 always connected</source>
<translation>Εξαναγκάστε το gamepad #1 να είναι πάντα συνδεδεμένο</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1198"/>
<location filename="../gui/SettingsView.qml" line="1180"/>
<source>Forces a single gamepad to always stay connected to the host, even if no gamepads are actually connected to this PC.</source>
<translation>Αναγκάζει ένα μόνο gamepad να παραμένει πάντα συνδεδεμένο στον κεντρικό υπολογιστή, ακόμη και αν δεν υπάρχουν πραγματικά συνδεδεμένα gamepads σε αυτόν τον υπολογιστή.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1028"/>
<location filename="../gui/SettingsView.qml" line="1010"/>
<source>You can toggle this while streaming using Ctrl+Alt+Shift+M.</source>
<translation>Μπορείτε να το αλλάξετε κατά τη ροή χρησιμοποιώντας Ctrl+Alt+Shift+M.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1206"/>
<location filename="../gui/SettingsView.qml" line="1188"/>
<source>Enable mouse control with gamepads by holding the &apos;Start&apos; button</source>
<translation>Ενεργοποιήστε τον έλεγχο του ποντικιού με gamepads κρατώντας πατημένο το κουμπί &apos;Start&apos;</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1217"/>
<location filename="../gui/SettingsView.qml" line="1199"/>
<source>Process gamepad input when Moonlight is in the background</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1228"/>
<location filename="../gui/SettingsView.qml" line="1210"/>
<source>Allows Moonlight to capture gamepad inputs even if it&apos;s not the current window in focus</source>
<translation>Επιτρέπει στο Moonlight να καταγράφει τις εισόδους του gamepad ακόμα κι αν δεν είναι το τρέχον εστιασμένο παράθυρο</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1237"/>
<location filename="../gui/SettingsView.qml" line="1219"/>
<source>Host Settings</source>
<translation>Ρυθμίσεις κεντρικού υπολογιστή</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1277"/>
<location filename="../gui/SettingsView.qml" line="1259"/>
<source>Advanced Settings</source>
<translation>Ρυθμίσεις για προχωρημένους</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="653"/>
<location filename="../gui/SettingsView.qml" line="646"/>
<source>Audio configuration</source>
<translation>Ρύθμιση παραμέτρων ήχου</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="950"/>
<location filename="../gui/SettingsView.qml" line="932"/>
<source>Show connection quality warnings</source>
<translation>Εμφάνιση προειδοποιήσεων ποιότητας σύνδεσης</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="962"/>
<location filename="../gui/SettingsView.qml" line="944"/>
<source>Discord Rich Presence integration</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="972"/>
<location filename="../gui/SettingsView.qml" line="954"/>
<source>Updates your Discord status to display the name of the game you&apos;re streaming.</source>
<translation>Ενημερώνει την κατάστασή σας στο Discord για να εμφανίζει το όνομα του παιχνιδιού που μεταδίδετε.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1199"/>
<location filename="../gui/SettingsView.qml" line="1181"/>
<source>Only enable this option when streaming a game that doesn&apos;t support gamepads being connected after startup.</source>
<translation>Ενεργοποιήστε αυτήν την επιλογή μόνο όταν κάνετε streaming σε ένα παιχνίδι που δεν υποστηρίζει τη σύνδεση των gamepads μετά την εκκίνηση.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1017"/>
<location filename="../gui/SettingsView.qml" line="999"/>
<source>Optimize mouse for remote desktop instead of games</source>
<translation>Βελτιστοποιήστε το ποντίκι για απομακρυσμένη επιφάνεια εργασίας αντί για παιχνίδια</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="978"/>
<location filename="../gui/SettingsView.qml" line="960"/>
<source>Keep the display awake while streaming</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="988"/>
<location filename="../gui/SettingsView.qml" line="970"/>
<source>Prevents the screensaver from starting or the display from going to sleep while streaming.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1039"/>
<location filename="../gui/SettingsView.qml" line="1021"/>
<source>Capture system keyboard shortcuts</source>
<translation>Καταγραφή συντομεύσεων πληκτρολογίου συστήματος</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1047"/>
<location filename="../gui/SettingsView.qml" line="1029"/>
<source>This enables the capture of system-wide keyboard shortcuts like Alt+Tab that would normally be handled by the client OS while streaming.</source>
<translation>Αυτό επιτρέπει τη λήψη συντομεύσεων πληκτρολογίου σε όλο το σύστημα, όπως Alt+Tab, που κανονικά θα χειριζόταν το λειτουργικό σύστημα-πελάτης κατά τη ροή.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1077"/>
<location filename="../gui/SettingsView.qml" line="1059"/>
<source>in fullscreen</source>
<translation>σε πλήρη οθόνη</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1081"/>
<location filename="../gui/SettingsView.qml" line="1063"/>
<source>always</source>
<translation>πάντα</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1121"/>
<location filename="../gui/SettingsView.qml" line="1103"/>
<source>When checked, the touchscreen acts like a trackpad. When unchecked, the touchscreen will directly control the mouse pointer.</source>
<translation>Όταν είναι ενεργοποιημένη, η οθόνη αφής λειτουργεί σαν trackpad. Όταν δεν είναι επιλεγμένη, η οθόνη αφής ελέγχει απευθείας το δείκτη του ποντικιού.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1247"/>
<location filename="../gui/SettingsView.qml" line="1229"/>
<source>Optimize game settings for streaming</source>
<translation>Βελτιστοποίηση ρυθμίσεων παιχνιδιού για ροή</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1258"/>
<location filename="../gui/SettingsView.qml" line="1240"/>
<source>Quit app on host PC after ending stream</source>
<translation>Τερματισμός εφαρμογής στον κεντρικό υπολογιστή μετά το τέλος της ροής</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1268"/>
<location filename="../gui/SettingsView.qml" line="1250"/>
<source>This will close the app or game you are streaming when you end your stream. You will lose any unsaved progress!</source>
<translation>Αυτό θα κλείσει την εφαρμογή ή το παιχνίδι που κάνετε ροή όταν τερματίσετε τη ροή σας. Θα χάσετε οποιαδήποτε μη αποθηκευμένη πρόοδο!</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1287"/>
<location filename="../gui/SettingsView.qml" line="1269"/>
<source>Video decoder</source>
<translation>Αποκωδικοποιητής βίντεο</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1313"/>
<location filename="../gui/SettingsView.qml" line="1382"/>
<location filename="../gui/SettingsView.qml" line="1294"/>
<location filename="../gui/SettingsView.qml" line="1346"/>
<source>Automatic (Recommended)</source>
<translation>Αυτόματο (Συνιστάται)</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1317"/>
<location filename="../gui/SettingsView.qml" line="1298"/>
<source>Force software decoding</source>
<translation>Επιβολή αποκωδικοποίησης λογισμικού</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1321"/>
<location filename="../gui/SettingsView.qml" line="1302"/>
<source>Force hardware decoding</source>
<translation>Επιβολή αποκωδικοποίησης υλικού</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1351"/>
<location filename="../gui/SettingsView.qml" line="1315"/>
<source>Video codec</source>
<translation>Κωδικοποιητής βίντεο</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1386"/>
<location filename="../gui/SettingsView.qml" line="1350"/>
<source>H.264</source>
<translation>H.264</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1390"/>
<location filename="../gui/SettingsView.qml" line="1354"/>
<source>HEVC (H.265)</source>
<translation>HEVC (H.265)</translation>
</message>
@@ -980,17 +905,17 @@
<translation type="vanished">HEVC HDR (πειραματικό)</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1439"/>
<location filename="../gui/SettingsView.qml" line="1403"/>
<source>Unlock unsupported FPS options</source>
<translation>Ξεκλείδωμα μη υποστηριζόμενων επιλογών FPS</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1458"/>
<location filename="../gui/SettingsView.qml" line="1422"/>
<source>Automatically find PCs on the local network (Recommended)</source>
<translation>Αυτόματη εύρεση υπολογιστών στο τοπικό δίκτυο (Συνιστάται)</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1483"/>
<location filename="../gui/SettingsView.qml" line="1447"/>
<source>Automatically detect blocked connections (Recommended)</source>
<translation>Αυτόματος εντοπισμός αποκλεισμένων συνδέσεων (Συνιστάται)</translation>
</message>
@@ -1047,94 +972,99 @@
<context>
<name>main</name>
<message>
<location filename="../gui/main.qml" line="418"/>
<location filename="../gui/main.qml" line="254"/>
<location filename="../gui/main.qml" line="264"/>
<location filename="../gui/main.qml" line="393"/>
<location filename="../gui/main.qml" line="408"/>
<source>Settings</source>
<translation>Ρυθμίσεις</translation>
</message>
<message>
<location filename="../gui/main.qml" line="265"/>
<location filename="../gui/main.qml" line="255"/>
<source>Version %1</source>
<translation>Έκδοση %1</translation>
</message>
<message>
<location filename="../gui/main.qml" line="281"/>
<location filename="../gui/main.qml" line="271"/>
<source>Join our community on Discord</source>
<translation>Γίνετε μέλος της κοινότητάς μας στο Discord</translation>
</message>
<message>
<location filename="../gui/main.qml" line="283"/>
<source>Computers</source>
<translation type="vanished">Υπολογιστές</translation>
<translation>Υπολογιστές</translation>
</message>
<message>
<location filename="../gui/main.qml" line="300"/>
<location filename="../gui/main.qml" line="290"/>
<source>Add PC manually</source>
<translation>Προσθήκη υπολογιστή με μη αυτόματο τρόπο</translation>
</message>
<message>
<location filename="../gui/main.qml" line="340"/>
<location filename="../gui/main.qml" line="330"/>
<source>Update available for Moonlight: Version %1</source>
<translation>Διαθέσιμη ενημέρωση για το Moonlight: Έκδοση %1</translation>
</message>
<message>
<location filename="../gui/main.qml" line="387"/>
<location filename="../gui/main.qml" line="377"/>
<source>Gamepad Mapper</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/main.qml" line="381"/>
<source>Gamepad Mapping</source>
<translation type="vanished">Χαρτογράφηση Gamepad</translation>
<translation>Χαρτογράφηση Gamepad</translation>
</message>
<message>
<source>No functioning hardware accelerated H.264 video decoder was detected by Moonlight. Your streaming performance may be severely degraded in this configuration.</source>
<translation type="vanished">Moonlight hat keinen funktionierenden hardwarebeschleunigten H.264-Videodecoder erkannt. Deine Streaming-Performance kann in dieser Konfiguration stark beeinträchtigt sein.</translation>
</message>
<message>
<location filename="../gui/main.qml" line="433"/>
<location filename="../gui/main.qml" line="423"/>
<source>Hardware acceleration doesn&apos;t work on XWayland. Continuing on XWayland may result in poor streaming performance. Try running with QT_QPA_PLATFORM=wayland or switch to X11.</source>
<translation>Η επιτάχυνση υλικού δεν λειτουργεί στο XWayland. Η συνέχιση σε XWayland μπορεί να οδηγήσει σε κακή απόδοση ροής. Δοκιμάστε να τρέξετε με QT_QPA_PLATFORM=wayland ή αλλάξτε σε X11.</translation>
</message>
<message>
<location filename="../gui/main.qml" line="442"/>
<location filename="../gui/main.qml" line="432"/>
<source>This version of Moonlight isn&apos;t optimized for your PC. Please download the &apos;%1&apos; version of Moonlight for the best streaming performance.</source>
<translation>Αυτή η έκδοση του Moonlight δεν είναι βελτιστοποιημένη για τον υπολογιστή σας. Παρακαλούμε κατεβάστε την έκδοση &apos;%1&apos; του Moonlight για την καλύτερη απόδοση ροής.</translation>
</message>
<message>
<location filename="../gui/main.qml" line="451"/>
<location filename="../gui/main.qml" line="441"/>
<source>Moonlight detected gamepads without a mapping:</source>
<translation>Το Moonlight εντόπισε gamepads χωρίς χαρτογράφηση:</translation>
</message>
<message>
<location filename="../gui/main.qml" line="364"/>
<location filename="../gui/main.qml" line="354"/>
<source>Help</source>
<translation>Βοήθεια</translation>
</message>
<message>
<location filename="../gui/main.qml" line="425"/>
<location filename="../gui/main.qml" line="415"/>
<source>No functioning hardware accelerated video decoder was detected by Moonlight. Your streaming performance may be severely degraded in this configuration.</source>
<translation>Το Moonlight δεν εντόπισε κανένα λειτουργικό αποκωδικοποιητή βίντεο με επιτάχυνση υλικού. Η απόδοση της ροής σας μπορεί να υποβαθμιστεί σημαντικά σε αυτή τη διαμόρφωση.</translation>
</message>
<message>
<location filename="../gui/main.qml" line="427"/>
<location filename="../gui/main.qml" line="417"/>
<source>Click the Help button for more information on solving this problem.</source>
<translation>Κάντε κλικ στο κουμπί Βοήθεια για περισσότερες πληροφορίες σχετικά με την επίλυση αυτού του προβλήματος.</translation>
</message>
<message>
<location filename="../gui/main.qml" line="435"/>
<location filename="../gui/main.qml" line="425"/>
<source>Click the Help button for more information.</source>
<translation>Κάντε κλικ στο κουμπί Βοήθεια για περισσότερες πληροφορίες.</translation>
</message>
<message>
<location filename="../gui/main.qml" line="453"/>
<location filename="../gui/main.qml" line="443"/>
<source>Click the Help button for information on how to map your gamepads.</source>
<translation>Κάντε κλικ στο κουμπί Βοήθεια για πληροφορίες σχετικά με τον τρόπο αντιστοίχισης των gamepads σας.</translation>
</message>
<message>
<location filename="../gui/main.qml" line="461"/>
<location filename="../gui/main.qml" line="451"/>
<source>Are you sure you want to quit?</source>
<translation>Είστε βέβαιοι ότι θέλετε να εγκαταλείψετε;</translation>
</message>
<message>
<location filename="../gui/main.qml" line="491"/>
<location filename="../gui/main.qml" line="481"/>
<source>Enter the IP address of your GameStream PC:</source>
<translation>Εισαγάγετε τη διεύθυνση IP του υπολογιστή σας GameStream:</translation>
</message>
Binary file not shown.
+145 -215
View File
@@ -51,24 +51,6 @@
<translation>¿Estás seguro de que quieres abandonar %1? Cualquier progreso no guardado se perderá.</translation>
</message>
</context>
<context>
<name>CliPair</name>
<message>
<location filename="../gui/CliPair.qml" line="9"/>
<source>Establishing connection to PC...</source>
<translation>Estableciendo conexión al PC...</translation>
</message>
<message>
<location filename="../gui/CliPair.qml" line="13"/>
<source>Pairing... Please enter &apos;%1&apos; on %2.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/CliPair.qml" line="85"/>
<source>Pairing completed successfully</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>CliQuitStreamSegue</name>
<message>
@@ -181,51 +163,52 @@
<translation>La versión de GeForce Experience en %1 no es compatible con esta versión de Moonlight. Debes actualizar Moonlight para transmitir desde %1.</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="247"/>
<source>You cannot pair while a previous session is still running on the host PC. Quit any running games or reboot the host PC, then try pairing again.</source>
<translation type="vanished">No puedes emparejar mientras una sesión anterior esté en marcha en el PC anfitrión. Salga de cualquier juego que se esté ejecutando o reinicie el PC anfitrión, y luego intente emparejar de nuevo.</translation>
<translation>No puedes emparejar mientras una sesión anterior esté en marcha en el PC anfitrión. Salga de cualquier juego que se esté ejecutando o reinicie el PC anfitrión, y luego intente emparejar de nuevo.</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="294"/>
<location filename="../gui/PcView.qml" line="302"/>
<source>Please enter %1 on your GameStream PC. This dialog will close when pairing is completed.</source>
<translation>Por favor, introduzca %1 en su PC GameStream . Este cuadro de diálogo se cerrará cuando se haya completado el emparejamiento.</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="305"/>
<location filename="../gui/PcView.qml" line="313"/>
<source>Are you sure you want to remove this PC?</source>
<translation>¿Estás seguro de que quieres eliminar este PC?</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="322"/>
<location filename="../gui/PcView.qml" line="330"/>
<source>Moonlight is testing your network connection to determine if NVIDIA GameStream is blocked.</source>
<translation>Moonlight está probando tu conexión de red para determinar si NVIDIA GameStream está bloqueado.</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="322"/>
<location filename="../gui/PcView.qml" line="330"/>
<source>This may take a few seconds…</source>
<translation>Esto puede llevar unos segundos…</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="333"/>
<location filename="../gui/PcView.qml" line="341"/>
<source>This network does not appear to be blocking Moonlight. If you still have trouble connecting, check your PC&apos;s firewall settings.</source>
<translation>Esta red no parece estar bloqueando Moonlight. Si sigue teniendo problemas para conectarse, compruebe la configuración del cortafuegos de su PC.</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="333"/>
<location filename="../gui/PcView.qml" line="341"/>
<source>If you are trying to stream over the Internet, install the Moonlight Internet Hosting Tool on your gaming PC and run the included Internet Streaming Tester to check your gaming PC&apos;s Internet connection.</source>
<translation>Si estás intentando hacer streaming a través de Internet, instala la herramienta Moonlight Internet Hosting Tool en tu PC de juegos y ejecuta el comprobador de streaming por Internet incluido para comprobar la conexión a Internet de tu PC de juegos.</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="337"/>
<location filename="../gui/PcView.qml" line="345"/>
<source>Your PC&apos;s current network connection seems to be blocking Moonlight. Streaming over the Internet may not work while connected to this network.</source>
<translation>La conexión de red actual de tu PC parece estar bloqueando Moonlight. Es posible que la transmisión por Internet no funcione mientras esté conectado a esta red.</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="337"/>
<location filename="../gui/PcView.qml" line="345"/>
<source>The following network ports were blocked:</source>
<translation>Los siguientes puertos de red fueron bloqueados:</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="329"/>
<location filename="../gui/PcView.qml" line="337"/>
<source>The network test could not be performed because none of Moonlight&apos;s connection testing servers were reachable from this PC. Check your Internet connection or try again later.</source>
<translation>La prueba de red no pudo realizarse porque ninguno de los servidores de prueba de conexión de Moonlight era accesible desde este PC. Compruebe su conexión a Internet o inténtelo de nuevo más tarde.</translation>
</message>
@@ -255,43 +238,15 @@
<translation>Ver todas las aplicaciones</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="349"/>
<location filename="../gui/PcView.qml" line="357"/>
<source>Enter the new name for this PC:</source>
<translation>Introduzca el nombre nuevo para este PC:</translation>
</message>
</context>
<context>
<name>PendingPairingTask</name>
<message>
<location filename="../backend/computermanager.cpp" line="535"/>
<source>The PIN from the PC didn&apos;t match. Please try again.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../backend/computermanager.cpp" line="539"/>
<source>You cannot pair while a previous session is still running on the host PC. Quit any running games or reboot the host PC, then try pairing again.</source>
<translation type="unfinished">No puedes emparejar mientras una sesión anterior esté en marcha en el PC anfitrión. Salga de cualquier juego que se esté ejecutando o reinicie el PC anfitrión, y luego intente emparejar de nuevo.</translation>
</message>
<message>
<location filename="../backend/computermanager.cpp" line="542"/>
<source>Pairing failed. Please try again.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../backend/computermanager.cpp" line="546"/>
<source>Another pairing attempt is already in progress.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../backend/computermanager.cpp" line="556"/>
<source>GeForce Experience returned error: %1</source>
<translation type="unfinished">GeForce Experience ha devuelto el error: %1</translation>
</message>
</context>
<context>
<name>PendingQuitTask</name>
<message>
<location filename="../backend/computermanager.cpp" line="606"/>
<location filename="../backend/computermanager.cpp" line="540"/>
<source>The running game wasn&apos;t started by this PC. You must quit the game on the host PC manually or use the device that originally started the game.</source>
<translation>El juego que se está ejecutando no fue iniciado por este PC. Debes salir del juego en el PC anfitrión manualmente o utilizar el dispositivo que inició originalmente el juego.</translation>
</message>
@@ -299,16 +254,6 @@
<context>
<name>QObject</name>
<message>
<location filename="../cli/pair.cpp" line="80"/>
<source>%1 is already paired</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>You cannot pair while a previous session is still running on the host PC. Quit any running games or reboot the host PC, then try pairing again.</source>
<translation type="obsolete">No puedes emparejar mientras una sesión anterior esté en marcha en el PC anfitrión. Salga de cualquier juego que se esté ejecutando o reinicie el PC anfitrión, y luego intente emparejar de nuevo.</translation>
</message>
<message>
<location filename="../cli/pair.cpp" line="109"/>
<location filename="../cli/quitstream.cpp" line="76"/>
<location filename="../cli/startstream.cpp" line="133"/>
<source>Failed to connect to %1</source>
@@ -331,11 +276,6 @@
<source>Failed to find application %1</source>
<translation>No se ha podido encontrar la aplicación %1</translation>
</message>
<message>
<location filename="../cli/listapps.cpp" line="99"/>
<source>Computer %1 has not been paired. Please open Moonlight to pair before retrieving games list.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>QuitSegue</name>
@@ -367,32 +307,22 @@
<translation>Tu conexión de red no funciona bien. Reduce la tasa de bits del vídeo o prueba con una conexión más rápida.</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="103"/>
<location filename="../streaming/session.cpp" line="102"/>
<source>Something went wrong on your host PC when starting the stream.</source>
<translation>Algo salió mal en su PC host al iniciar la transmisión.</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="104"/>
<location filename="../streaming/session.cpp" line="103"/>
<source>Make sure you don&apos;t have any DRM-protected content open on your host PC. You can also try restarting your host PC.</source>
<translation>Asegúrate de que no tienes ningún contenido protegido por DRM abierto en tu PC anfitrión. También puedes probar a reiniciar el PC anfitrión.</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="105"/>
<location filename="../streaming/session.cpp" line="104"/>
<source>If the issue persists, try reinstalling your GPU drivers and GeForce Experience.</source>
<translation>Si el problema persiste, prueba a reinstalar los controladores de la GPU y GeForce Experience.</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="110"/>
<source>The host PC reported a fatal video encoding error.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="111"/>
<source>Try disabling HDR mode, changing the streaming resolution, or changing your host PC&apos;s display resolution.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="116"/>
<location filename="../streaming/session.cpp" line="109"/>
<source>Connection terminated</source>
<translation>Conexión terminada</translation>
</message>
@@ -490,32 +420,32 @@
<translation>Un mando conectado no tiene mapeo y no será utilizable. Visita la ayuda de Moonlight para resolver esto.</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="810"/>
<location filename="../streaming/session.cpp" line="805"/>
<source>Your host PC&apos;s GPU doesn&apos;t support streaming video resolutions over 4K.</source>
<translation>La GPU de su PC anfitrión no admite la transmisión de resoluciones de vídeo superiores a 4K.</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="814"/>
<location filename="../streaming/session.cpp" line="809"/>
<source>Video resolutions over 4K are only supported by the HEVC codec.</source>
<translation>Las resoluciones de vídeo superiores a 4K solo son compatibles con el códec HEVC.</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="828"/>
<location filename="../streaming/session.cpp" line="823"/>
<source>Your selection to force hardware decoding cannot be satisfied due to missing hardware decoding support on this PC&apos;s GPU.</source>
<translation>Su selección para forzar la decodificación por hardware no puede ser satisfecha debido a la falta de soporte de decodificación por hardware en la GPU de este PC.</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="831"/>
<location filename="../streaming/session.cpp" line="826"/>
<source>Your codec selection and force hardware decoding setting are not compatible. This PC&apos;s GPU lacks support for decoding your chosen codec.</source>
<translation>La selección del códec y la configuración de la decodificación forzada por hardware no son compatibles. La GPU de este PC no es compatible con la descodificación del códec elegido.</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="1176"/>
<location filename="../streaming/session.cpp" line="1159"/>
<source>GeForce Experience returned error: %1</source>
<translation>GeForce Experience ha devuelto el error: %1</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="1697"/>
<location filename="../streaming/session.cpp" line="1691"/>
<source>Unable to initialize video decoder. Please check your streaming settings and try again.</source>
<translation>No se ha podido inicializar el decodificador de vídeo. Por favor, compruebe la configuración de la transmisión y vuelva a intentarlo.</translation>
</message>
@@ -528,60 +458,60 @@
<translation>Ajustes</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="72"/>
<location filename="../gui/SettingsView.qml" line="70"/>
<source>Resolution and FPS</source>
<translation>Resolución y FPS</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="80"/>
<location filename="../gui/SettingsView.qml" line="78"/>
<source>Setting values too high for your PC or network connection may cause lag, stuttering, or errors.</source>
<translation>Ajustar valores demasiado elevados para su PC o su conexión de red puede provocar retrasos, tartamudeos o errores.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="62"/>
<location filename="../gui/SettingsView.qml" line="60"/>
<source>Basic Settings</source>
<translation>Configuración básica</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="200"/>
<location filename="../gui/SettingsView.qml" line="209"/>
<source>720p</source>
<translation>720p</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="206"/>
<location filename="../gui/SettingsView.qml" line="215"/>
<source>1080p</source>
<translation>1080p</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="212"/>
<location filename="../gui/SettingsView.qml" line="221"/>
<source>1440p</source>
<translation>1440p</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="218"/>
<location filename="../gui/SettingsView.qml" line="227"/>
<source>4K</source>
<translation>4K</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="322"/>
<location filename="../gui/SettingsView.qml" line="331"/>
<source>Custom resolutions are not officially supported by GeForce Experience, so it will not set your host display resolution. You will need to set it manually while in game.</source>
<translation>GeForce Experience no admite oficialmente las resoluciones personalizadas, por lo que no establecerá la resolución de la pantalla anfitriona. Tendrás que configurarla manualmente en el juego.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="323"/>
<location filename="../gui/SettingsView.qml" line="332"/>
<source>Resolutions that are not supported by your client or host PC may cause streaming errors.</source>
<translation>Las resoluciones que no sean compatibles con el cliente o el PC anfitrión pueden provocar errores de transmisión.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="329"/>
<location filename="../gui/SettingsView.qml" line="338"/>
<source>Enter a custom resolution:</source>
<translation>Introduzca una resolución personalizada:</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="397"/>
<location filename="../gui/SettingsView.qml" line="398"/>
<location filename="../gui/SettingsView.qml" line="418"/>
<location filename="../gui/SettingsView.qml" line="421"/>
<location filename="../gui/SettingsView.qml" line="406"/>
<location filename="../gui/SettingsView.qml" line="407"/>
<location filename="../gui/SettingsView.qml" line="427"/>
<location filename="../gui/SettingsView.qml" line="430"/>
<source>%1 FPS</source>
<translation>%1 FPS</translation>
</message>
@@ -590,189 +520,184 @@
<translation type="vanished">%1 FPS (nicht unterstützt)</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="485"/>
<location filename="../gui/SettingsView.qml" line="493"/>
<source>Video bitrate:</source>
<translation>Tasa de bits de vídeo:</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="493"/>
<location filename="../gui/SettingsView.qml" line="501"/>
<source>Lower the bitrate on slower connections. Raise the bitrate to increase image quality.</source>
<translation>Reduzca la tasa de bits en las conexiones más lentas. Aumenta la tasa de bits para aumentar la calidad de la imagen.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="511"/>
<location filename="../gui/SettingsView.qml" line="519"/>
<source>Video bitrate: %1 Mbps</source>
<translation>Tasa de bits de vídeo: %1 Mbps</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="519"/>
<location filename="../gui/SettingsView.qml" line="527"/>
<source>Display mode</source>
<translation>Modo de visualización</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="549"/>
<location filename="../gui/SettingsView.qml" line="545"/>
<source> (Recommended)</source>
<translatorcomment>Dont put the space in ransaltions</translatorcomment>
<translation> (Recomendado)</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="530"/>
<location filename="../gui/SettingsView.qml" line="937"/>
<location filename="../gui/SettingsView.qml" line="573"/>
<location filename="../gui/SettingsView.qml" line="919"/>
<source>Fullscreen</source>
<translation>Pantalla completa</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="599"/>
<location filename="../gui/SettingsView.qml" line="592"/>
<source>Fullscreen generally provides the best performance, but borderless windowed may work better with features like macOS Spaces, Alt+Tab, screenshot tools, on-screen overlays, etc.</source>
<translation>La pantalla completa suele ofrecer el mejor rendimiento, pero la ventana sin bordes puede funcionar mejor con funciones como macOS Spaces, Alt+Tab, herramientas de captura de pantalla, superposiciones en pantalla, etc.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="535"/>
<location filename="../gui/SettingsView.qml" line="577"/>
<source>Borderless windowed</source>
<translation>Ventana sin bordes</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="403"/>
<location filename="../gui/SettingsView.qml" line="406"/>
<location filename="../gui/SettingsView.qml" line="412"/>
<location filename="../gui/SettingsView.qml" line="415"/>
<location filename="../gui/SettingsView.qml" line="428"/>
<location filename="../gui/SettingsView.qml" line="431"/>
<location filename="../gui/SettingsView.qml" line="424"/>
<location filename="../gui/SettingsView.qml" line="437"/>
<location filename="../gui/SettingsView.qml" line="440"/>
<source>%1 FPS (Unsupported)</source>
<translation>%1 FPS (No compatible)</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="540"/>
<location filename="../gui/SettingsView.qml" line="929"/>
<location filename="../gui/SettingsView.qml" line="581"/>
<location filename="../gui/SettingsView.qml" line="911"/>
<source>Windowed</source>
<translation>Ventana</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="606"/>
<location filename="../gui/SettingsView.qml" line="599"/>
<source>V-Sync</source>
<translation>V-Sync (Sincronización Vertical)</translation>
<translation>V-Sync</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="616"/>
<location filename="../gui/SettingsView.qml" line="609"/>
<source>Disabling V-Sync allows sub-frame rendering latency, but it can display visible tearing</source>
<translation>Desactivar V-Sync permite una latencia de renderizado por debajo de los fotogramas, pero puede mostrar un tearing visible</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="623"/>
<location filename="../gui/SettingsView.qml" line="616"/>
<source>Frame pacing</source>
<translation>Ritmo de fotogramas</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="633"/>
<location filename="../gui/SettingsView.qml" line="626"/>
<source>Frame pacing reduces micro-stutter by delaying frames that come in too early</source>
<translation>El ritmo de los fotogramas reduce el microtartamudeo retrasando los fotogramas que llegan demasiado pronto</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="643"/>
<location filename="../gui/SettingsView.qml" line="636"/>
<source>Audio Settings</source>
<translation>Ajustes de audio</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="678"/>
<location filename="../gui/SettingsView.qml" line="671"/>
<source>Stereo</source>
<translation>Estéreo</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="682"/>
<location filename="../gui/SettingsView.qml" line="675"/>
<source>5.1 surround sound</source>
<translation>Sonido envolvente 5.1</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="686"/>
<location filename="../gui/SettingsView.qml" line="679"/>
<source>7.1 surround sound</source>
<translation>Sonido envolvente 7.1</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="700"/>
<location filename="../gui/SettingsView.qml" line="693"/>
<source>Mute host PC speakers while streaming</source>
<translation>Silenciar los altavoces del PC anfitrión durante la transmisión</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="710"/>
<location filename="../gui/SettingsView.qml" line="703"/>
<source>You must restart any game currently in progress for this setting to take effect</source>
<translation>Para que este ajuste surta efecto, debes reiniciar cualquier partida que esté en curso</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="716"/>
<location filename="../gui/SettingsView.qml" line="709"/>
<source>Mute audio stream when Moonlight is not the active window</source>
<translation>Silenciar el flujo de audio cuando Moonlight no es la ventana activa</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="727"/>
<location filename="../gui/SettingsView.qml" line="720"/>
<source>Mutes Moonlight&apos;s audio when you Alt+Tab out of the stream or click on a different window.</source>
<translation>Silencia el audio de Moonlight cuando haces Alt+Tab fuera de la transmisión o haces clic en una ventana diferente.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="736"/>
<location filename="../gui/SettingsView.qml" line="729"/>
<source>UI Settings</source>
<translation>Configuración de la interfaz</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="746"/>
<location filename="../gui/SettingsView.qml" line="739"/>
<source>Language</source>
<translation>Idioma</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="772"/>
<location filename="../gui/SettingsView.qml" line="765"/>
<source>Automatic</source>
<translation>Automático</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="879"/>
<location filename="../gui/SettingsView.qml" line="864"/>
<source>You must restart Moonlight for this change to take effect</source>
<translation>Debe reiniciar Moonlight para que este cambio surta efecto</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="896"/>
<location filename="../gui/SettingsView.qml" line="878"/>
<source>GUI display mode</source>
<translation>Modo de visualización GUI</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="933"/>
<location filename="../gui/SettingsView.qml" line="915"/>
<source>Maximized</source>
<translation>Maximizado</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1006"/>
<location filename="../gui/SettingsView.qml" line="988"/>
<source>Input Settings</source>
<translation>Ajustes de entrada</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1027"/>
<location filename="../gui/SettingsView.qml" line="1009"/>
<source>This enables seamless mouse control without capturing the client&apos;s mouse cursor. It is ideal for remote desktop usage but will not work in most games.</source>
<translation>Esto permite un control perfecto del ratón sin capturar el cursor del ratón del cliente. Es ideal para el uso del escritorio remoto, pero no funcionará en la mayoría de los juegos.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1029"/>
<location filename="../gui/SettingsView.qml" line="1011"/>
<source>NOTE: Due to a bug in GeForce Experience, this option may not work properly if your host PC has multiple monitors.</source>
<translation>NOTA: Debido a un error en GeForce Experience, es posible que esta opción no funcione correctamente si su PC host tiene varios monitores.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1345"/>
<source>Enabling HDR overrides manual decoder selections.</source>
<translation>Activar HDR anula la selección manual de codecs.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1414"/>
<location filename="../gui/SettingsView.qml" line="1378"/>
<source>Enabling HDR overrides manual codec selections.</source>
<translation>Activar HDR anula la selección manual de codecs.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1420"/>
<location filename="../gui/SettingsView.qml" line="1384"/>
<source>Enable HDR (Experimental)</source>
<translation>Activar HDR (Experimental)</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1431"/>
<location filename="../gui/SettingsView.qml" line="1395"/>
<source>The stream will be HDR-capable, but some games may require an HDR monitor on your host PC to enable HDR mode.</source>
<translation>La transmisión podrá utilizar HDR, pero algunos juegos pueden requerir un monitor HDR en el PC anfitrión para permitir el modo HDR.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1433"/>
<location filename="../gui/SettingsView.qml" line="1397"/>
<source>HDR streaming is not supported on this PC.</source>
<translation>La transmisión HDR no esta soportada en este PC.</translation>
</message>
@@ -785,193 +710,193 @@
<translation type="vanished">Dies ermöglicht die Erfassung von systemweiten Tastenkombinationen wie Alt+Tab, die normalerweise vom Client beim Streamen im Vollbildmodus ausgeführt werden würden.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1048"/>
<location filename="../gui/SettingsView.qml" line="1030"/>
<source>NOTE: Certain keyboard shortcuts like Ctrl+Alt+Del on Windows cannot be intercepted by any application, including Moonlight.</source>
<translation>NOTA: Ciertos atajos de teclado como Ctrl+Alt+Supr en Windows no pueden ser interceptados por ninguna aplicación, incluyendo Moonlight.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1111"/>
<location filename="../gui/SettingsView.qml" line="1093"/>
<source>Use touchscreen as a virtual trackpad</source>
<translation>Utilice la pantalla táctil como un trackpad virtual</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1128"/>
<location filename="../gui/SettingsView.qml" line="1110"/>
<source>Swap left and right mouse buttons</source>
<translation>Intercambiar los botones izquierdo y derecho del ratón</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1140"/>
<location filename="../gui/SettingsView.qml" line="1122"/>
<source>Reverse mouse scrolling direction</source>
<translation>Invertir la dirección de desplazamiento del ratón</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1154"/>
<location filename="../gui/SettingsView.qml" line="1136"/>
<source>Gamepad Settings</source>
<translation>Configuración del mando</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1164"/>
<location filename="../gui/SettingsView.qml" line="1146"/>
<source>Swap A/B and X/Y gamepad buttons</source>
<translation>Cambiar los botones del mando A / B y X / Y</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1182"/>
<location filename="../gui/SettingsView.qml" line="1164"/>
<source>This switches gamepads into a Nintendo-style button layout</source>
<translation>Esto cambia los mandos a un diseño de botones al estilo de Nintendo</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1188"/>
<location filename="../gui/SettingsView.qml" line="1170"/>
<source>Force gamepad #1 always connected</source>
<translation>Forzar que el mando #1 esté siempre conectado</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1198"/>
<location filename="../gui/SettingsView.qml" line="1180"/>
<source>Forces a single gamepad to always stay connected to the host, even if no gamepads are actually connected to this PC.</source>
<translation>Obliga a un solo mando a permanecer siempre conectado al host, aunque no haya ningún mando conectado a este PC.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1028"/>
<location filename="../gui/SettingsView.qml" line="1010"/>
<source>You can toggle this while streaming using Ctrl+Alt+Shift+M.</source>
<translation>Puedes alternar esto mientras transmites usando Ctrl+Alt+Mayús+M.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1206"/>
<location filename="../gui/SettingsView.qml" line="1188"/>
<source>Enable mouse control with gamepads by holding the &apos;Start&apos; button</source>
<translation>Activa el control del ratón con los mandos manteniendo pulsado el botón &apos;Start&apos;</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1217"/>
<location filename="../gui/SettingsView.qml" line="1199"/>
<source>Process gamepad input when Moonlight is in the background</source>
<translation>Procesar la entrada del mando cuando Moonlight está en segundo plano</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1228"/>
<location filename="../gui/SettingsView.qml" line="1210"/>
<source>Allows Moonlight to capture gamepad inputs even if it&apos;s not the current window in focus</source>
<translation>Permite a Moonlight capturar las entradas del mando incluso si no es la ventana actual</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1237"/>
<location filename="../gui/SettingsView.qml" line="1219"/>
<source>Host Settings</source>
<translation>Configuración de host</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1277"/>
<location filename="../gui/SettingsView.qml" line="1259"/>
<source>Advanced Settings</source>
<translation>Configuración avanzada</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="653"/>
<location filename="../gui/SettingsView.qml" line="646"/>
<source>Audio configuration</source>
<translation>Configuración de audio</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="950"/>
<location filename="../gui/SettingsView.qml" line="932"/>
<source>Show connection quality warnings</source>
<translation>Mostrar avisos de calidad de la conexión</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="962"/>
<location filename="../gui/SettingsView.qml" line="944"/>
<source>Discord Rich Presence integration</source>
<translation>Integración de Discord Rich Presence</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="972"/>
<location filename="../gui/SettingsView.qml" line="954"/>
<source>Updates your Discord status to display the name of the game you&apos;re streaming.</source>
<translation>Actualiza tu estado de Discord para mostrar el nombre del juego que estás transmitiendo.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1199"/>
<location filename="../gui/SettingsView.qml" line="1181"/>
<source>Only enable this option when streaming a game that doesn&apos;t support gamepads being connected after startup.</source>
<translation>Sólo active esta opción cuando transmita un juego que no admita la conexión de mandos después del inicio.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1017"/>
<location filename="../gui/SettingsView.qml" line="999"/>
<source>Optimize mouse for remote desktop instead of games</source>
<translation>Optimizar el ratón para el escritorio remoto en lugar de los juegos</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="978"/>
<location filename="../gui/SettingsView.qml" line="960"/>
<source>Keep the display awake while streaming</source>
<translation>Mantener la pantalla encendida mientras dura la transmisión</translation>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="988"/>
<location filename="../gui/SettingsView.qml" line="970"/>
<source>Prevents the screensaver from starting or the display from going to sleep while streaming.</source>
<translation>Prevenir que el protector de pantallas inicie o la pantalla entre en modo dormir durante la transmisión.</translation>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1039"/>
<location filename="../gui/SettingsView.qml" line="1021"/>
<source>Capture system keyboard shortcuts</source>
<translation>Capturar los atajos de teclado del sistema</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1047"/>
<location filename="../gui/SettingsView.qml" line="1029"/>
<source>This enables the capture of system-wide keyboard shortcuts like Alt+Tab that would normally be handled by the client OS while streaming.</source>
<translation>Esto permite capturar los atajos de teclado de todo el sistema, como Alt+Tab, que normalmente serían manejados por el sistema operativo del cliente durante la transmisión.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1077"/>
<location filename="../gui/SettingsView.qml" line="1059"/>
<source>in fullscreen</source>
<translation>en pantalla completa</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1081"/>
<location filename="../gui/SettingsView.qml" line="1063"/>
<source>always</source>
<translation>siempre</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1121"/>
<location filename="../gui/SettingsView.qml" line="1103"/>
<source>When checked, the touchscreen acts like a trackpad. When unchecked, the touchscreen will directly control the mouse pointer.</source>
<translation>Cuando está marcada, la pantalla táctil actúa como un trackpad. Si no está marcada, la pantalla táctil controlará directamente el puntero del ratón.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1247"/>
<location filename="../gui/SettingsView.qml" line="1229"/>
<source>Optimize game settings for streaming</source>
<translation>Optimizar la configuración del juego para la transmisión</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1258"/>
<location filename="../gui/SettingsView.qml" line="1240"/>
<source>Quit app on host PC after ending stream</source>
<translation>Salir de la aplicación en el PC anfitrión después de terminar la transmisión</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1268"/>
<location filename="../gui/SettingsView.qml" line="1250"/>
<source>This will close the app or game you are streaming when you end your stream. You will lose any unsaved progress!</source>
<translation>Esto cerrará la aplicación o el juego que estás transmitiendo cuando termines tu transmisión. ¡Perderás todo el progreso que no hayas guardado!</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1287"/>
<location filename="../gui/SettingsView.qml" line="1269"/>
<source>Video decoder</source>
<translation>Descodificador de vídeo</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1313"/>
<location filename="../gui/SettingsView.qml" line="1382"/>
<location filename="../gui/SettingsView.qml" line="1294"/>
<location filename="../gui/SettingsView.qml" line="1346"/>
<source>Automatic (Recommended)</source>
<translation>Automático (recomendado)</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1317"/>
<location filename="../gui/SettingsView.qml" line="1298"/>
<source>Force software decoding</source>
<translation>Forzar la decodificación por software</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1321"/>
<location filename="../gui/SettingsView.qml" line="1302"/>
<source>Force hardware decoding</source>
<translation>Forzar la decodificación por hardware</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1351"/>
<location filename="../gui/SettingsView.qml" line="1315"/>
<source>Video codec</source>
<translation>Códec de vídeo</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1386"/>
<location filename="../gui/SettingsView.qml" line="1350"/>
<source>H.264</source>
<translation>H.264</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1390"/>
<location filename="../gui/SettingsView.qml" line="1354"/>
<source>HEVC (H.265)</source>
<translation>HEVC (H.265)</translation>
</message>
@@ -980,17 +905,17 @@
<translation type="vanished">HEVC HDR (Experimental)</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1439"/>
<location filename="../gui/SettingsView.qml" line="1403"/>
<source>Unlock unsupported FPS options</source>
<translation>Desbloquea las opciones de FPS no compatibles</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1458"/>
<location filename="../gui/SettingsView.qml" line="1422"/>
<source>Automatically find PCs on the local network (Recommended)</source>
<translation>Encuentre automáticamente los ordenadores de la red local (recomendado)</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1483"/>
<location filename="../gui/SettingsView.qml" line="1447"/>
<source>Automatically detect blocked connections (Recommended)</source>
<translation>Detectar automáticamente las conexiones bloqueadas (recomendado)</translation>
</message>
@@ -1047,94 +972,99 @@
<context>
<name>main</name>
<message>
<location filename="../gui/main.qml" line="418"/>
<location filename="../gui/main.qml" line="254"/>
<location filename="../gui/main.qml" line="264"/>
<location filename="../gui/main.qml" line="393"/>
<location filename="../gui/main.qml" line="408"/>
<source>Settings</source>
<translation>Ajustes</translation>
</message>
<message>
<location filename="../gui/main.qml" line="265"/>
<location filename="../gui/main.qml" line="255"/>
<source>Version %1</source>
<translation>Versión %1</translation>
</message>
<message>
<location filename="../gui/main.qml" line="281"/>
<location filename="../gui/main.qml" line="271"/>
<source>Join our community on Discord</source>
<translation>Únete a nuestra comunidad en Discord</translation>
</message>
<message>
<location filename="../gui/main.qml" line="283"/>
<source>Computers</source>
<translation type="vanished">Ordenadores</translation>
<translation>Ordenadores</translation>
</message>
<message>
<location filename="../gui/main.qml" line="300"/>
<location filename="../gui/main.qml" line="290"/>
<source>Add PC manually</source>
<translation>Agregar PC manualmente</translation>
</message>
<message>
<location filename="../gui/main.qml" line="340"/>
<location filename="../gui/main.qml" line="330"/>
<source>Update available for Moonlight: Version %1</source>
<translation>Actualización disponible para Moonlight: versión %1</translation>
</message>
<message>
<location filename="../gui/main.qml" line="387"/>
<location filename="../gui/main.qml" line="377"/>
<source>Gamepad Mapper</source>
<translation>Mapeador de mandos</translation>
</message>
<message>
<location filename="../gui/main.qml" line="381"/>
<source>Gamepad Mapping</source>
<translation type="vanished">Mapeo del mando</translation>
<translation>Mapeo del mando</translation>
</message>
<message>
<source>No functioning hardware accelerated H.264 video decoder was detected by Moonlight. Your streaming performance may be severely degraded in this configuration.</source>
<translation type="vanished">Moonlight no detectó ningún decodificador de vídeo H.264 acelerado por hardware en funcionamiento. Su rendimiento de transmisión puede verse gravemente degradado en esta configuración.</translation>
</message>
<message>
<location filename="../gui/main.qml" line="433"/>
<location filename="../gui/main.qml" line="423"/>
<source>Hardware acceleration doesn&apos;t work on XWayland. Continuing on XWayland may result in poor streaming performance. Try running with QT_QPA_PLATFORM=wayland or switch to X11.</source>
<translation>La aceleración por hardware no funciona en XWayland. Continuar con XWayland puede dar lugar a un rendimiento deficiente de la transmisión. Intente ejecutar con QT_QPA_PLATFORM=wayland o cambie a X11.</translation>
</message>
<message>
<location filename="../gui/main.qml" line="442"/>
<location filename="../gui/main.qml" line="432"/>
<source>This version of Moonlight isn&apos;t optimized for your PC. Please download the &apos;%1&apos; version of Moonlight for the best streaming performance.</source>
<translation>Esta versión de Moonlight no está optimizada para tu PC. Por favor, descargue la versión &apos;%1&apos; de Moonlight para obtener el mejor rendimiento de streaming.</translation>
</message>
<message>
<location filename="../gui/main.qml" line="451"/>
<location filename="../gui/main.qml" line="441"/>
<source>Moonlight detected gamepads without a mapping:</source>
<translation>Moonlight detectó mandos sin mapeo:</translation>
</message>
<message>
<location filename="../gui/main.qml" line="364"/>
<location filename="../gui/main.qml" line="354"/>
<source>Help</source>
<translation>Ayuda</translation>
</message>
<message>
<location filename="../gui/main.qml" line="425"/>
<location filename="../gui/main.qml" line="415"/>
<source>No functioning hardware accelerated video decoder was detected by Moonlight. Your streaming performance may be severely degraded in this configuration.</source>
<translation>Moonlight no ha detectado ningún decodificador de vídeo acelerado por hardware que funcione. El rendimiento de la transmisión puede verse gravemente degradado con esta configuración.</translation>
</message>
<message>
<location filename="../gui/main.qml" line="427"/>
<location filename="../gui/main.qml" line="417"/>
<source>Click the Help button for more information on solving this problem.</source>
<translation>Haga clic en el botón de ayuda para obtener más información sobre cómo resolver este problema.</translation>
</message>
<message>
<location filename="../gui/main.qml" line="435"/>
<location filename="../gui/main.qml" line="425"/>
<source>Click the Help button for more information.</source>
<translation>Haga clic en el botón de ayuda para obtener más información.</translation>
</message>
<message>
<location filename="../gui/main.qml" line="453"/>
<location filename="../gui/main.qml" line="443"/>
<source>Click the Help button for information on how to map your gamepads.</source>
<translation>Haz clic en el botón de ayuda para obtener información sobre cómo asignar tus mandos.</translation>
</message>
<message>
<location filename="../gui/main.qml" line="461"/>
<location filename="../gui/main.qml" line="451"/>
<source>Are you sure you want to quit?</source>
<translation>¿Estás seguro de que quieres salir?</translation>
</message>
<message>
<location filename="../gui/main.qml" line="491"/>
<location filename="../gui/main.qml" line="481"/>
<source>Enter the IP address of your GameStream PC:</source>
<translation>Ingrese la dirección IP de su PC GameStream:</translation>
</message>
Binary file not shown.
+155 -225
View File
@@ -51,24 +51,6 @@
<translation>Êtes-vous sûr de vouloir arrêter %1&#x202f;? Tout progrès non enregistré sera perdu.</translation>
</message>
</context>
<context>
<name>CliPair</name>
<message>
<location filename="../gui/CliPair.qml" line="9"/>
<source>Establishing connection to PC...</source>
<translation>Connexion au PC...</translation>
</message>
<message>
<location filename="../gui/CliPair.qml" line="13"/>
<source>Pairing... Please enter &apos;%1&apos; on %2.</source>
<translation>Appareillage... Veuillez entrer &apos;%1&apos; sur %2.</translation>
</message>
<message>
<location filename="../gui/CliPair.qml" line="85"/>
<source>Pairing completed successfully</source>
<translation>Jumelage terminé avec succès</translation>
</message>
</context>
<context>
<name>CliQuitStreamSegue</name>
<message>
@@ -131,7 +113,7 @@
<message>
<location filename="../gui/PcView.qml" line="70"/>
<source>This PC&apos;s Internet connection is blocking Moonlight. Streaming over the Internet may not work while connected to this network.</source>
<translation>La connexion Internet de ce PC bloque Moonlight. Le streaming sur Internet peut ne pas fonctionner sur ce réseau.</translation>
<translation>La connexion Internet de ce PC bloque Moonlight. Le streaming sur Internet peut ne pas fonctionner lorsqu&apos;il est connecté à ce réseau.</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="73"/>
@@ -163,7 +145,7 @@
<message>
<location filename="../gui/PcView.qml" line="193"/>
<source>Test Network</source>
<translation>Tester le réseau</translation>
<translation>Test réseau</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="202"/>
@@ -178,54 +160,55 @@
<message>
<location filename="../gui/PcView.qml" line="224"/>
<source>The version of GeForce Experience on %1 is not supported by this build of Moonlight. You must update Moonlight to stream from %1.</source>
<translation>La version de GeForce Experience installée sur %1 n&apos;est pas supportée par cette version de Moonlight. Vous devez mettre à jour Moonlight pour streamer depuis %1.</translation>
<translation>Cette version de GeForce Experience sur %1 n&apos;est pas supportée par cette version de Moonlight. Vous devez mettre à jour Moonlight pour streamer depuis %1.</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="247"/>
<source>You cannot pair while a previous session is still running on the host PC. Quit any running games or reboot the host PC, then try pairing again.</source>
<translation type="vanished">Vous ne pouvez pas effectuer de couplage alors qu&apos;une session précédente est encore en cours sur le PC hôte. Fermez les jeux en cours ou redémarrez le PC hôte, puis essayez à nouveau d&apos;effectuer l&apos;appariement.</translation>
<translation>Vous ne pouvez pas effectuer de couplage alors qu&apos;une session précédente est encore en cours sur le PC hôte. Fermez les jeux en cours ou redémarrez le PC hôte, puis essayez à nouveau d&apos;effectuer l&apos;appariement.</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="294"/>
<location filename="../gui/PcView.qml" line="302"/>
<source>Please enter %1 on your GameStream PC. This dialog will close when pairing is completed.</source>
<translation>Veuillez saisir %1 sur votre PC GameStream. Cette boîte de dialogue se fermera lorsque l&apos;appariement sera terminé.</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="305"/>
<location filename="../gui/PcView.qml" line="313"/>
<source>Are you sure you want to remove this PC?</source>
<translation>Êtes-vous sûr de vouloir supprimer ce PC ?</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="322"/>
<location filename="../gui/PcView.qml" line="330"/>
<source>Moonlight is testing your network connection to determine if NVIDIA GameStream is blocked.</source>
<translation>Moonlight teste votre connexion réseau pour déterminer si NVIDIA GameStream est bloqué.</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="322"/>
<location filename="../gui/PcView.qml" line="330"/>
<source>This may take a few seconds…</source>
<translation>Cela peut prendre quelques secondes…</translation>
<translation>Ceci peut prendre quelques secondes…</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="333"/>
<location filename="../gui/PcView.qml" line="341"/>
<source>This network does not appear to be blocking Moonlight. If you still have trouble connecting, check your PC&apos;s firewall settings.</source>
<translation>Ce réseau ne semble pas bloquer Moonlight. Si vous avez toujours des problèmes de connexion, vérifiez les paramètres du pare-feu de votre PC.</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="333"/>
<location filename="../gui/PcView.qml" line="341"/>
<source>If you are trying to stream over the Internet, install the Moonlight Internet Hosting Tool on your gaming PC and run the included Internet Streaming Tester to check your gaming PC&apos;s Internet connection.</source>
<translation>Si vous essayez d&apos;utiliser la diffusion en continu sur Internet, installez l&apos;outil d&apos;hébergement Internet Moonlight sur votre PC de jeu et exécutez le testeur de diffusion en continu sur Internet inclus pour vérifier la connexion Internet de votre PC de jeu.</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="337"/>
<location filename="../gui/PcView.qml" line="345"/>
<source>Your PC&apos;s current network connection seems to be blocking Moonlight. Streaming over the Internet may not work while connected to this network.</source>
<translation>La connexion réseau actuelle de votre PC semble bloquer Moonlight. Il se peut que le stream depuis Internet ne fonctionne pas lorsque vous êtes connecté à ce réseau.</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="337"/>
<location filename="../gui/PcView.qml" line="345"/>
<source>The following network ports were blocked:</source>
<translation>Les ports réseau suivants ont été bloqués :</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="329"/>
<location filename="../gui/PcView.qml" line="337"/>
<source>The network test could not be performed because none of Moonlight&apos;s connection testing servers were reachable from this PC. Check your Internet connection or try again later.</source>
<translation>Le test de réseau n&apos;a pas pu être effectué car aucun des serveurs de test de connexion de Moonlight n&apos;était accessible depuis ce PC. Vérifiez votre connexion Internet ou réessayez plus tard.</translation>
</message>
@@ -255,43 +238,15 @@
<translation>Voir toutes les applis</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="349"/>
<location filename="../gui/PcView.qml" line="357"/>
<source>Enter the new name for this PC:</source>
<translation>Saisissez le nouveau nom de ce PC :</translation>
</message>
</context>
<context>
<name>PendingPairingTask</name>
<message>
<location filename="../backend/computermanager.cpp" line="535"/>
<source>The PIN from the PC didn&apos;t match. Please try again.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../backend/computermanager.cpp" line="539"/>
<source>You cannot pair while a previous session is still running on the host PC. Quit any running games or reboot the host PC, then try pairing again.</source>
<translation type="unfinished">Vous ne pouvez pas effectuer de couplage alors qu&apos;une session précédente est encore en cours sur le PC hôte. Fermez les jeux en cours ou redémarrez le PC hôte, puis essayez à nouveau d&apos;effectuer l&apos;appariement.</translation>
</message>
<message>
<location filename="../backend/computermanager.cpp" line="542"/>
<source>Pairing failed. Please try again.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../backend/computermanager.cpp" line="546"/>
<source>Another pairing attempt is already in progress.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../backend/computermanager.cpp" line="556"/>
<source>GeForce Experience returned error: %1</source>
<translation type="unfinished">GeForce Experience a renvoyé l&apos;erreur : %1</translation>
</message>
</context>
<context>
<name>PendingQuitTask</name>
<message>
<location filename="../backend/computermanager.cpp" line="606"/>
<location filename="../backend/computermanager.cpp" line="540"/>
<source>The running game wasn&apos;t started by this PC. You must quit the game on the host PC manually or use the device that originally started the game.</source>
<translation>Le jeu en cours d’exécution n&apos;a pas été démarré par ce PC. Vous devez le fermer manuellement sur le PC hôte ou le fermer depuis l&apos;appareil qui a démarré ce jeu.</translation>
</message>
@@ -299,16 +254,6 @@
<context>
<name>QObject</name>
<message>
<location filename="../cli/pair.cpp" line="80"/>
<source>%1 is already paired</source>
<translation>%1 est déjà couplé</translation>
</message>
<message>
<source>You cannot pair while a previous session is still running on the host PC. Quit any running games or reboot the host PC, then try pairing again.</source>
<translation type="vanished">Vous ne pouvez pas effectuer de couplage alors qu&apos;une session précédente est encore en cours sur le PC hôte. Fermez les jeux en cours ou redémarrez le PC hôte, puis essayez à nouveau d&apos;effectuer l&apos;appariement.</translation>
</message>
<message>
<location filename="../cli/pair.cpp" line="109"/>
<location filename="../cli/quitstream.cpp" line="76"/>
<location filename="../cli/startstream.cpp" line="133"/>
<source>Failed to connect to %1</source>
@@ -331,11 +276,6 @@
<source>Failed to find application %1</source>
<translation>L&apos;application %1 n&apos;a pas été trouvée</translation>
</message>
<message>
<location filename="../cli/listapps.cpp" line="99"/>
<source>Computer %1 has not been paired. Please open Moonlight to pair before retrieving games list.</source>
<translation>L&apos;ordinateur %1 n&apos;a pas été couplé. Veuillez ouvrir Moonlight pour coupler avant de récupérer la liste des jeux.</translation>
</message>
</context>
<context>
<name>QuitSegue</name>
@@ -367,32 +307,22 @@
<translation>Votre connexion réseau ne fonctionne pas très bien. Réduisez votre débit vidéo ou essayez une connexion plus rapide.</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="103"/>
<location filename="../streaming/session.cpp" line="102"/>
<source>Something went wrong on your host PC when starting the stream.</source>
<translation>Quelque chose s&apos;est mal passé sur votre PC hôte lors du lancement du streaming.</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="104"/>
<location filename="../streaming/session.cpp" line="103"/>
<source>Make sure you don&apos;t have any DRM-protected content open on your host PC. You can also try restarting your host PC.</source>
<translation>Vérifiez que vous n&apos;avez pas de contenu protégé par DRM ouvert sur votre PC hôte. Vous pouvez également essayer de redémarrer le PC hôte.</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="105"/>
<location filename="../streaming/session.cpp" line="104"/>
<source>If the issue persists, try reinstalling your GPU drivers and GeForce Experience.</source>
<translation>Si le problème persiste, essayez de réinstaller vos pilotes GPU et GeForce Experience.</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="110"/>
<source>The host PC reported a fatal video encoding error.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="111"/>
<source>Try disabling HDR mode, changing the streaming resolution, or changing your host PC&apos;s display resolution.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="116"/>
<location filename="../streaming/session.cpp" line="109"/>
<source>Connection terminated</source>
<translation>Connexion terminée</translation>
</message>
@@ -490,32 +420,32 @@
<translation>Une manette de jeu attachée n&apos;a pas été configurée et ne sera pas utilisable. Visitez l&apos;aide Moonlight pour résoudre ce problème.</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="810"/>
<location filename="../streaming/session.cpp" line="805"/>
<source>Your host PC&apos;s GPU doesn&apos;t support streaming video resolutions over 4K.</source>
<translation>Le GPU de votre PC hôte ne prend pas en charge le streaming dans des résolutions supérieures à la 4K.</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="814"/>
<location filename="../streaming/session.cpp" line="809"/>
<source>Video resolutions over 4K are only supported by the HEVC codec.</source>
<translation>Les résolutions vidéo supérieures à 4K sont uniquement prises en charge par le codec HEVC.</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="828"/>
<location filename="../streaming/session.cpp" line="823"/>
<source>Your selection to force hardware decoding cannot be satisfied due to missing hardware decoding support on this PC&apos;s GPU.</source>
<translation>Impossible d&apos;utiliser le décodage matériel car le GPU de cet ordinateur ne supporte pas le décodage matériel.</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="831"/>
<location filename="../streaming/session.cpp" line="826"/>
<source>Your codec selection and force hardware decoding setting are not compatible. This PC&apos;s GPU lacks support for decoding your chosen codec.</source>
<translation>Votre sélection de codecs et le réglage du décodage matériel ne sont pas compatibles. Le GPU de ce PC ne prend pas en charge le décodage du codec que vous avez choisi.</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="1176"/>
<location filename="../streaming/session.cpp" line="1159"/>
<source>GeForce Experience returned error: %1</source>
<translation>GeForce Experience a renvoyé l&apos;erreur : %1</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="1697"/>
<location filename="../streaming/session.cpp" line="1691"/>
<source>Unable to initialize video decoder. Please check your streaming settings and try again.</source>
<translation>Impossible d&apos;initialiser le décodeur vidéo. Veuillez vérifier vos paramètres de diffusion en continu et réessayez.</translation>
</message>
@@ -528,105 +458,105 @@
<translation>Paramètres</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="72"/>
<location filename="../gui/SettingsView.qml" line="70"/>
<source>Resolution and FPS</source>
<translation>Résolution et FPS</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="80"/>
<location filename="../gui/SettingsView.qml" line="78"/>
<source>Setting values too high for your PC or network connection may cause lag, stuttering, or errors.</source>
<translation>Des réglages trop élevés pour votre PC ou connexion peuvent causer du lag, des saccades et d&apos;autres problèmes.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="62"/>
<location filename="../gui/SettingsView.qml" line="60"/>
<source>Basic Settings</source>
<translation>Paramètres de base</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="200"/>
<location filename="../gui/SettingsView.qml" line="209"/>
<source>720p</source>
<translation>720p</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="206"/>
<location filename="../gui/SettingsView.qml" line="215"/>
<source>1080p</source>
<translation>1080p</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="212"/>
<location filename="../gui/SettingsView.qml" line="221"/>
<source>1440p</source>
<translation>1440p</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="218"/>
<location filename="../gui/SettingsView.qml" line="227"/>
<source>4K</source>
<translation>4K</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="322"/>
<location filename="../gui/SettingsView.qml" line="331"/>
<source>Custom resolutions are not officially supported by GeForce Experience, so it will not set your host display resolution. You will need to set it manually while in game.</source>
<translation>Les résolutions personnalisées ne sont pas officiellement prises en charge par GeForce Experience, qui ne pourra donc pas définir la résolution de votre écran hôte. Vous devrez la définir manuellement dans le jeu.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="323"/>
<location filename="../gui/SettingsView.qml" line="332"/>
<source>Resolutions that are not supported by your client or host PC may cause streaming errors.</source>
<translation>Les résolutions qui ne sont pas prises en charge par votre client ou votre PC hôte peuvent entraîner des problèmes de diffusion.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="329"/>
<location filename="../gui/SettingsView.qml" line="338"/>
<source>Enter a custom resolution:</source>
<translation>Entrez une résolution personnalisée :</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="397"/>
<location filename="../gui/SettingsView.qml" line="398"/>
<location filename="../gui/SettingsView.qml" line="418"/>
<location filename="../gui/SettingsView.qml" line="421"/>
<location filename="../gui/SettingsView.qml" line="406"/>
<location filename="../gui/SettingsView.qml" line="407"/>
<location filename="../gui/SettingsView.qml" line="427"/>
<location filename="../gui/SettingsView.qml" line="430"/>
<source>%1 FPS</source>
<translation>%1 FPS</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="403"/>
<location filename="../gui/SettingsView.qml" line="406"/>
<location filename="../gui/SettingsView.qml" line="412"/>
<location filename="../gui/SettingsView.qml" line="415"/>
<location filename="../gui/SettingsView.qml" line="428"/>
<location filename="../gui/SettingsView.qml" line="431"/>
<location filename="../gui/SettingsView.qml" line="424"/>
<location filename="../gui/SettingsView.qml" line="437"/>
<location filename="../gui/SettingsView.qml" line="440"/>
<source>%1 FPS (Unsupported)</source>
<translation>%1 FPS (Non supporté)</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="485"/>
<location filename="../gui/SettingsView.qml" line="493"/>
<source>Video bitrate:</source>
<translation>Bitrate vidéo :</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="493"/>
<location filename="../gui/SettingsView.qml" line="501"/>
<source>Lower the bitrate on slower connections. Raise the bitrate to increase image quality.</source>
<translation>Baissez le débit si votre connexion est lente. Augmentez-le pour plus de qualité d&apos;image.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="511"/>
<location filename="../gui/SettingsView.qml" line="519"/>
<source>Video bitrate: %1 Mbps</source>
<translation>Bitrate vidéo : %1 Mbps</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="519"/>
<location filename="../gui/SettingsView.qml" line="527"/>
<source>Display mode</source>
<translation>Mode d&apos;affichage</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="549"/>
<location filename="../gui/SettingsView.qml" line="545"/>
<source> (Recommended)</source>
<translation> (Recommandé)</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="530"/>
<location filename="../gui/SettingsView.qml" line="937"/>
<location filename="../gui/SettingsView.qml" line="573"/>
<location filename="../gui/SettingsView.qml" line="919"/>
<source>Fullscreen</source>
<translation>Plein écran</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="599"/>
<location filename="../gui/SettingsView.qml" line="592"/>
<source>Fullscreen generally provides the best performance, but borderless windowed may work better with features like macOS Spaces, Alt+Tab, screenshot tools, on-screen overlays, etc.</source>
<translation>Le plein écran offre généralement les meilleures performances, mais le mode fenêtre sans bordure peut mieux fonctionner avec des fonctionnalités comme les espaces sur macOS, Alt+Tab, les outils de capture d&apos;écran, les overlays, etc.</translation>
</message>
@@ -635,13 +565,13 @@
<translation type="vanished">Plein écran</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="535"/>
<location filename="../gui/SettingsView.qml" line="577"/>
<source>Borderless windowed</source>
<translation>Fenêtré sans bordure</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="540"/>
<location filename="../gui/SettingsView.qml" line="929"/>
<location filename="../gui/SettingsView.qml" line="581"/>
<location filename="../gui/SettingsView.qml" line="911"/>
<source>Windowed</source>
<translation>Fenêtré</translation>
</message>
@@ -650,246 +580,241 @@
<translation type="vanished">Le plein écran offre généralement les meilleures performances, mais les fenêtres sans bordure peuvent fonctionner mieux avec des fonctionnalités telles que MacOS Spaces, Alt+Tab, les outils de capture d&apos;écran, les superpositions à l&apos;écran, etc.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="606"/>
<location filename="../gui/SettingsView.qml" line="599"/>
<source>V-Sync</source>
<translation>Synchronisation verticale (V-Sync)</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="616"/>
<location filename="../gui/SettingsView.qml" line="609"/>
<source>Disabling V-Sync allows sub-frame rendering latency, but it can display visible tearing</source>
<translation>La désactivation de V-Sync permet une latence de rendu des sous-images plus faible, mais elle peut afficher des déchirures visibles</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="623"/>
<location filename="../gui/SettingsView.qml" line="616"/>
<source>Frame pacing</source>
<translation>Frame pacing</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="633"/>
<location filename="../gui/SettingsView.qml" line="626"/>
<source>Frame pacing reduces micro-stutter by delaying frames that come in too early</source>
<translation>Le Frame pacing réduit les micro-saccades en retardant les images qui arrivent trop tôt</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="643"/>
<location filename="../gui/SettingsView.qml" line="636"/>
<source>Audio Settings</source>
<translation>Réglages audio</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="678"/>
<location filename="../gui/SettingsView.qml" line="671"/>
<source>Stereo</source>
<translation>Stéréo</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="682"/>
<location filename="../gui/SettingsView.qml" line="675"/>
<source>5.1 surround sound</source>
<translation>Son surround 5.1</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="686"/>
<location filename="../gui/SettingsView.qml" line="679"/>
<source>7.1 surround sound</source>
<translation>Son surround 7.1</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="700"/>
<location filename="../gui/SettingsView.qml" line="693"/>
<source>Mute host PC speakers while streaming</source>
<translation>Couper le son des haut-parleurs du PC hôte pendant la diffusion</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="710"/>
<location filename="../gui/SettingsView.qml" line="703"/>
<source>You must restart any game currently in progress for this setting to take effect</source>
<translation>Vous devez redémarrer tout jeu en cours pour que ce paramètre prenne effet</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="716"/>
<location filename="../gui/SettingsView.qml" line="709"/>
<source>Mute audio stream when Moonlight is not the active window</source>
<translation>Couper le son du stream quand Moonlight n&apos;est pas au premier plan</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="727"/>
<location filename="../gui/SettingsView.qml" line="720"/>
<source>Mutes Moonlight&apos;s audio when you Alt+Tab out of the stream or click on a different window.</source>
<translation>Coupe le son du stream quand vous faites Alt+Tab ou si vous cliquez sur une autre fenêtre.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="736"/>
<location filename="../gui/SettingsView.qml" line="729"/>
<source>UI Settings</source>
<translation>Réglages de l&apos;interface utilisateur</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="746"/>
<location filename="../gui/SettingsView.qml" line="739"/>
<source>Language</source>
<translation>Langue</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="772"/>
<location filename="../gui/SettingsView.qml" line="765"/>
<source>Automatic</source>
<translation>Automatique</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="879"/>
<location filename="../gui/SettingsView.qml" line="864"/>
<source>You must restart Moonlight for this change to take effect</source>
<translation>Vous devez redémarrer Moonlight pour que ce changement prenne effet</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="896"/>
<location filename="../gui/SettingsView.qml" line="878"/>
<source>GUI display mode</source>
<translation>Mode d&apos;affichage de l&apos;interface graphique</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="933"/>
<location filename="../gui/SettingsView.qml" line="915"/>
<source>Maximized</source>
<translation>Maximisé</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="978"/>
<location filename="../gui/SettingsView.qml" line="960"/>
<source>Keep the display awake while streaming</source>
<translation>Garder l&apos;écran allumé lors du streaming</translation>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="970"/>
<source>Prevents the screensaver from starting or the display from going to sleep while streaming.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="988"/>
<source>Prevents the screensaver from starting or the display from going to sleep while streaming.</source>
<translation>Désactive l&apos;écran de veille ou la mise en veille de l&apos;écran pendant le streaming.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1006"/>
<source>Input Settings</source>
<translation>Paramètres d&apos;entrée</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1027"/>
<location filename="../gui/SettingsView.qml" line="1009"/>
<source>This enables seamless mouse control without capturing the client&apos;s mouse cursor. It is ideal for remote desktop usage but will not work in most games.</source>
<translation>Cela permet un contrôle transparent de la souris, sans capturer le curseur du client. C&apos;est idéal pour l’utilisation du bureau à distance, mais ne fonctionnera pas dans la plupart des jeux.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1029"/>
<location filename="../gui/SettingsView.qml" line="1011"/>
<source>NOTE: Due to a bug in GeForce Experience, this option may not work properly if your host PC has multiple monitors.</source>
<translation>REMARQUE : En raison d&apos;un bogue dans GeForce Experience, cette option peut ne pas fonctionner correctement si votre PC hôte a plusieurs moniteurs.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1048"/>
<location filename="../gui/SettingsView.qml" line="1030"/>
<source>NOTE: Certain keyboard shortcuts like Ctrl+Alt+Del on Windows cannot be intercepted by any application, including Moonlight.</source>
<translation>REMARQUE : Certains raccourcis clavier comme Ctrl+Alt+Suppr sur Windows ne peuvent jamais être interceptés, y compris par Moonlight.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1077"/>
<location filename="../gui/SettingsView.qml" line="1059"/>
<source>in fullscreen</source>
<translation>en plein écran</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1081"/>
<location filename="../gui/SettingsView.qml" line="1063"/>
<source>always</source>
<translation>toujours</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1111"/>
<location filename="../gui/SettingsView.qml" line="1093"/>
<source>Use touchscreen as a virtual trackpad</source>
<translation>Utiliser l&apos;écran tactile comme un trackpad virtuel</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1128"/>
<location filename="../gui/SettingsView.qml" line="1110"/>
<source>Swap left and right mouse buttons</source>
<translation>Permuter les boutons gauche et droit de la souris</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1140"/>
<location filename="../gui/SettingsView.qml" line="1122"/>
<source>Reverse mouse scrolling direction</source>
<translation>Inverser le sens de défilement de la souris</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1154"/>
<location filename="../gui/SettingsView.qml" line="1136"/>
<source>Gamepad Settings</source>
<translation>Paramètres de la manette</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1164"/>
<location filename="../gui/SettingsView.qml" line="1146"/>
<source>Swap A/B and X/Y gamepad buttons</source>
<translation>Inverser les boutons A/B et X/Y de la manette</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1182"/>
<location filename="../gui/SettingsView.qml" line="1164"/>
<source>This switches gamepads into a Nintendo-style button layout</source>
<translation>Permet d&apos;utiliser les boutons comme sur une manette Nintendo</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1188"/>
<location filename="../gui/SettingsView.qml" line="1170"/>
<source>Force gamepad #1 always connected</source>
<translation>Forcer la manette #1 à être toujours connectée</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1198"/>
<location filename="../gui/SettingsView.qml" line="1180"/>
<source>Forces a single gamepad to always stay connected to the host, even if no gamepads are actually connected to this PC.</source>
<translation>Force une seule manette de jeu à toujours rester connectée à l&apos;hôte, même si aucune manette de jeu n&apos;est réellement connectée à ce PC.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1345"/>
<source>Enabling HDR overrides manual decoder selections.</source>
<translation>Activer le HDR désactive la sélection manuelle de décodeur.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1414"/>
<location filename="../gui/SettingsView.qml" line="1378"/>
<source>Enabling HDR overrides manual codec selections.</source>
<translation>Activer l&apos;HDR désactive le choix de codec vidéo.</translation>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1420"/>
<location filename="../gui/SettingsView.qml" line="1384"/>
<source>Enable HDR (Experimental)</source>
<translation>Activer le HDR (Expérimental)</translation>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1431"/>
<location filename="../gui/SettingsView.qml" line="1395"/>
<source>The stream will be HDR-capable, but some games may require an HDR monitor on your host PC to enable HDR mode.</source>
<translation>Le stream sera compatible HDR, mais certains jeux requièrent un moniteur HDR côté hôte pour streamer en HDR.</translation>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1433"/>
<location filename="../gui/SettingsView.qml" line="1397"/>
<source>HDR streaming is not supported on this PC.</source>
<translation>Le streaming en HDR n&apos;est pas supporté sur ce PC.</translation>
<translation type="unfinished"></translation>
</message>
<message>
<source>This enables mouse control without capturing the client&apos;s mouse cursor. It will not work in most games.</source>
<translation type="vanished">Cela permet de contrôler la souris sans avoir à capturer le curseur du client. Cela ne fonctionne pas dans la plupart des jeux.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1028"/>
<location filename="../gui/SettingsView.qml" line="1010"/>
<source>You can toggle this while streaming using Ctrl+Alt+Shift+M.</source>
<translation>Vous pouvez basculer ceci pendant la diffusion en utilisant Ctrl+Alt+Maj+M.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1039"/>
<location filename="../gui/SettingsView.qml" line="1021"/>
<source>Capture system keyboard shortcuts</source>
<translation>Capturer les raccourcis clavier système</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1047"/>
<location filename="../gui/SettingsView.qml" line="1029"/>
<source>This enables the capture of system-wide keyboard shortcuts like Alt+Tab that would normally be handled by the client OS while streaming.</source>
<translation>Ceci permet la capture de raccourcis clavier système comme Alt+Tab, qui seraient normalement utilisés par le système d’exploitation client.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1206"/>
<location filename="../gui/SettingsView.qml" line="1188"/>
<source>Enable mouse control with gamepads by holding the &apos;Start&apos; button</source>
<translation>Activer le contrôle de la souris par la manette en maintenant « Start »</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1217"/>
<location filename="../gui/SettingsView.qml" line="1199"/>
<source>Process gamepad input when Moonlight is in the background</source>
<translation>Capturer la manette même quand Moonlight est en arrière-plan</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1228"/>
<location filename="../gui/SettingsView.qml" line="1210"/>
<source>Allows Moonlight to capture gamepad inputs even if it&apos;s not the current window in focus</source>
<translation>Permet à Moonlight de capturer la manette même si Moonlight n&apos;est pas au premier plan</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1237"/>
<location filename="../gui/SettingsView.qml" line="1219"/>
<source>Host Settings</source>
<translation>Paramètres de l&apos;hôte</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1277"/>
<location filename="../gui/SettingsView.qml" line="1259"/>
<source>Advanced Settings</source>
<translation>Paramètres avancés</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="653"/>
<location filename="../gui/SettingsView.qml" line="646"/>
<source>Audio configuration</source>
<translation>Configuration audio</translation>
</message>
@@ -898,17 +823,17 @@
<translation type="vanished">Maximiser la fenêtre Moonlight au démarrage</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="950"/>
<location filename="../gui/SettingsView.qml" line="932"/>
<source>Show connection quality warnings</source>
<translation>Afficher des avertissements sur la qualité de la connexion</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="962"/>
<location filename="../gui/SettingsView.qml" line="944"/>
<source>Discord Rich Presence integration</source>
<translation>Activer l&apos;intégration Discord Rich Presence</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="972"/>
<location filename="../gui/SettingsView.qml" line="954"/>
<source>Updates your Discord status to display the name of the game you&apos;re streaming.</source>
<translation>Met à jour votre statut Discord pour afficher le nom du jeu que vous diffusez en continu.</translation>
</message>
@@ -917,12 +842,12 @@
<translation type="vanished">Forcé la manette de jeu Force #1 à être toujours présente</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1199"/>
<location filename="../gui/SettingsView.qml" line="1181"/>
<source>Only enable this option when streaming a game that doesn&apos;t support gamepads being connected after startup.</source>
<translation>N&apos;activez cette option que lorsque vous diffusez en continu un jeu qui ne prend pas en charge la connexion des manettes de jeu après le démarrage.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1017"/>
<location filename="../gui/SettingsView.qml" line="999"/>
<source>Optimize mouse for remote desktop instead of games</source>
<translation>Optimiser la souris pour le bureau à distance plutôt que pour les jeux</translation>
</message>
@@ -931,7 +856,7 @@
<translation type="vanished">Utiliser l&apos;écran tactile comme trackpad</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1121"/>
<location filename="../gui/SettingsView.qml" line="1103"/>
<source>When checked, the touchscreen acts like a trackpad. When unchecked, the touchscreen will directly control the mouse pointer.</source>
<translation>Lorsqu&apos;il est coché, l&apos;écran tactile agit comme un pavé tactile. Lorsqu&apos;il n&apos;est pas coché, l&apos;écran tactile contrôle directement le pointeur de la souris.</translation>
</message>
@@ -952,57 +877,57 @@
<translation type="vanished">Lorsque la case est cochée, permuter les boutons gauche et droit de la souris</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1247"/>
<location filename="../gui/SettingsView.qml" line="1229"/>
<source>Optimize game settings for streaming</source>
<translation>Optimiser les paramètres du jeu pour le streaming</translation>
<translation>Optimiser les paramètres du jeu pour la diffusion en continu</translation>
</message>
<message>
<source>Play audio on host PC</source>
<translation type="vanished">Lecture audio sur le PC hôte</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1258"/>
<location filename="../gui/SettingsView.qml" line="1240"/>
<source>Quit app on host PC after ending stream</source>
<translation>Fermer l&apos;application sur le PC hôte à la fin du stream</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1268"/>
<location filename="../gui/SettingsView.qml" line="1250"/>
<source>This will close the app or game you are streaming when you end your stream. You will lose any unsaved progress!</source>
<translation>Ceci fermera l&apos;application ou le jeu que vous êtes en train de diffuser lorsque vous aurez terminé votre flux. Vous perdrez tout progrès non sauvegardé !</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1287"/>
<location filename="../gui/SettingsView.qml" line="1269"/>
<source>Video decoder</source>
<translation>Décodeur vidéo</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1313"/>
<location filename="../gui/SettingsView.qml" line="1382"/>
<location filename="../gui/SettingsView.qml" line="1294"/>
<location filename="../gui/SettingsView.qml" line="1346"/>
<source>Automatic (Recommended)</source>
<translation>Automatique (recommandé)</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1317"/>
<location filename="../gui/SettingsView.qml" line="1298"/>
<source>Force software decoding</source>
<translation>Forcer le décodage logiciel</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1321"/>
<location filename="../gui/SettingsView.qml" line="1302"/>
<source>Force hardware decoding</source>
<translation>Forcer le décodage matériel</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1351"/>
<location filename="../gui/SettingsView.qml" line="1315"/>
<source>Video codec</source>
<translation>Codec vidéo</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1386"/>
<location filename="../gui/SettingsView.qml" line="1350"/>
<source>H.264</source>
<translation>H.264</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1390"/>
<location filename="../gui/SettingsView.qml" line="1354"/>
<source>HEVC (H.265)</source>
<translation>HEVC (H.265)</translation>
</message>
@@ -1011,17 +936,17 @@
<translation type="vanished">HEVC HDR (Expérimental)</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1439"/>
<location filename="../gui/SettingsView.qml" line="1403"/>
<source>Unlock unsupported FPS options</source>
<translation>Débloquer les options FPS non supportées</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1458"/>
<location filename="../gui/SettingsView.qml" line="1422"/>
<source>Automatically find PCs on the local network (Recommended)</source>
<translation>Trouver automatiquement les PC sur le réseau local (recommandé)</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1483"/>
<location filename="../gui/SettingsView.qml" line="1447"/>
<source>Automatically detect blocked connections (Recommended)</source>
<translation>Détecter automatiquement les connexions bloquées (recommandé)</translation>
</message>
@@ -1078,79 +1003,84 @@
<context>
<name>main</name>
<message>
<location filename="../gui/main.qml" line="418"/>
<location filename="../gui/main.qml" line="254"/>
<location filename="../gui/main.qml" line="264"/>
<location filename="../gui/main.qml" line="393"/>
<location filename="../gui/main.qml" line="408"/>
<source>Settings</source>
<translation>Paramètres</translation>
</message>
<message>
<location filename="../gui/main.qml" line="265"/>
<location filename="../gui/main.qml" line="255"/>
<source>Version %1</source>
<translation>Version %1</translation>
</message>
<message>
<location filename="../gui/main.qml" line="281"/>
<location filename="../gui/main.qml" line="271"/>
<source>Join our community on Discord</source>
<translation>Rejoignez notre communauté sur Discord</translation>
</message>
<message>
<location filename="../gui/main.qml" line="283"/>
<source>Computers</source>
<translation type="vanished">Ordinateurs</translation>
<translation>Ordinateurs</translation>
</message>
<message>
<location filename="../gui/main.qml" line="300"/>
<location filename="../gui/main.qml" line="290"/>
<source>Add PC manually</source>
<translation>Ajouter un PC manuellement</translation>
</message>
<message>
<location filename="../gui/main.qml" line="340"/>
<location filename="../gui/main.qml" line="330"/>
<source>Update available for Moonlight: Version %1</source>
<translation>Mise à jour disponible pour Moonlight : Version %1</translation>
</message>
<message>
<location filename="../gui/main.qml" line="387"/>
<location filename="../gui/main.qml" line="377"/>
<source>Gamepad Mapper</source>
<translation>Configuration du contrôleur</translation>
</message>
<message>
<location filename="../gui/main.qml" line="381"/>
<source>Gamepad Mapping</source>
<translation type="vanished">Configuration du contrôleur</translation>
<translation>Configuration du contrôleur</translation>
</message>
<message>
<source>No functioning hardware accelerated H.264 video decoder was detected by Moonlight. Your streaming performance may be severely degraded in this configuration.</source>
<translation type="vanished">Aucun décodeur vidéo H.264 accéléré par le matériel n&apos;a été détecté par Moonlight. Dans cette configuration, les performances de streaming peuvent être fortement dégradées.</translation>
</message>
<message>
<location filename="../gui/main.qml" line="433"/>
<location filename="../gui/main.qml" line="423"/>
<source>Hardware acceleration doesn&apos;t work on XWayland. Continuing on XWayland may result in poor streaming performance. Try running with QT_QPA_PLATFORM=wayland or switch to X11.</source>
<translation>L&apos;accélération matérielle ne fonctionne pas sur XWayland. Continuer sur XWayland peut entraîner de mauvaises performances de streaming. Essayez de fonctionner avec QT_QPA_PLATFORM=wayland ou passez à X11.</translation>
</message>
<message>
<location filename="../gui/main.qml" line="442"/>
<location filename="../gui/main.qml" line="432"/>
<source>This version of Moonlight isn&apos;t optimized for your PC. Please download the &apos;%1&apos; version of Moonlight for the best streaming performance.</source>
<translation>Cette version de Moonlight n&apos;est pas optimisée pour votre PC. Téléchargez la version « %1 » pour de meilleures performances.</translation>
</message>
<message>
<location filename="../gui/main.qml" line="451"/>
<location filename="../gui/main.qml" line="441"/>
<source>Moonlight detected gamepads without a mapping:</source>
<translation>Moonlight a détecté des manettes sans configuration&#x202f;:</translation>
</message>
<message>
<location filename="../gui/main.qml" line="364"/>
<location filename="../gui/main.qml" line="354"/>
<source>Help</source>
<translation>Aide</translation>
</message>
<message>
<location filename="../gui/main.qml" line="425"/>
<location filename="../gui/main.qml" line="415"/>
<source>No functioning hardware accelerated video decoder was detected by Moonlight. Your streaming performance may be severely degraded in this configuration.</source>
<translation>Aucun décodeur vidéo matériel n&apos;a été détecté par Moonlight. Les performances de streaming risquent d&apos;être sévèrement dégradées dans cette configuration.</translation>
</message>
<message>
<location filename="../gui/main.qml" line="427"/>
<location filename="../gui/main.qml" line="417"/>
<source>Click the Help button for more information on solving this problem.</source>
<translation>Cliquez sur le bouton Aide pour obtenir plus d&apos;informations sur la manière de résoudre ce problème.</translation>
</message>
<message>
<location filename="../gui/main.qml" line="435"/>
<location filename="../gui/main.qml" line="425"/>
<source>Click the Help button for more information.</source>
<translation>Cliquez sur le bouton Aide pour plus d&apos;informations.</translation>
</message>
@@ -1159,17 +1089,17 @@
<translation type="vanished">Ce PC fonctionne avec une version 64 bits de Windows. Veuillez télécharger la version x64 de Moonlight pour obtenir les meilleures performances de diffusion en continu.</translation>
</message>
<message>
<location filename="../gui/main.qml" line="453"/>
<location filename="../gui/main.qml" line="443"/>
<source>Click the Help button for information on how to map your gamepads.</source>
<translation>Cliquez sur le bouton Aide pour obtenir des informations sur la configuration de vos manettes de jeu.</translation>
</message>
<message>
<location filename="../gui/main.qml" line="461"/>
<location filename="../gui/main.qml" line="451"/>
<source>Are you sure you want to quit?</source>
<translation>Êtes-vous sûr de vouloir quitter&#x202f;?</translation>
</message>
<message>
<location filename="../gui/main.qml" line="491"/>
<location filename="../gui/main.qml" line="481"/>
<source>Enter the IP address of your GameStream PC:</source>
<translation>Saisissez l&apos;adresse IP de votre PC GameStream :</translation>
</message>
Binary file not shown.
+142 -212
View File
@@ -51,24 +51,6 @@
<translation>क्या आप वाकई% 1 छोड़ना चाहते हैं? कोई भी सहेजी नहीं गई प्रगति खो जाएगी।</translation>
</message>
</context>
<context>
<name>CliPair</name>
<message>
<location filename="../gui/CliPair.qml" line="9"/>
<source>Establishing connection to PC...</source>
<translation type="unfinished">PC से कनेक्शन स्थापित किया जा रहा है...</translation>
</message>
<message>
<location filename="../gui/CliPair.qml" line="13"/>
<source>Pairing... Please enter &apos;%1&apos; on %2.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/CliPair.qml" line="85"/>
<source>Pairing completed successfully</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>CliQuitStreamSegue</name>
<message>
@@ -181,51 +163,52 @@
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="247"/>
<source>You cannot pair while a previous session is still running on the host PC. Quit any running games or reboot the host PC, then try pairing again.</source>
<translation type="vanished">जब तक होस्ट PC पर पिछला खेल अभी भी चल रहा हो, आप पेयर नहीं कर सकते। किसी भी चल रहे गेम से बाहर निकलें या होस्ट पीसी को रीबूट करें, फिर दोबारा जोड़ने का प्रयास करें।</translation>
<translation>जब तक होस्ट PC पर पिछला खेल अभी भी चल रहा हो, आप पेयर नहीं कर सकते। किसी भी चल रहे गेम से बाहर निकलें या होस्ट पीसी को रीबूट करें, फिर दोबारा जोड़ने का प्रयास करें।</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="294"/>
<location filename="../gui/PcView.qml" line="302"/>
<source>Please enter %1 on your GameStream PC. This dialog will close when pairing is completed.</source>
<translation>कृपया अपने गेमस्ट्रीम PC पर % 1 दर्ज करें। पेयरिंग पूरी होने पर यह डायलॉग बंद हो जाएगा।</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="305"/>
<location filename="../gui/PcView.qml" line="313"/>
<source>Are you sure you want to remove this PC?</source>
<translation>क्या आप वाकई इस PC को हटाना चाहते हैं?</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="322"/>
<location filename="../gui/PcView.qml" line="330"/>
<source>Moonlight is testing your network connection to determine if NVIDIA GameStream is blocked.</source>
<translation>Moonlight यह निर्धारित करने के लिए आपके नेटवर्क कनेक्शन का टेस्ट कर रहा है कि क्या NVIDIA GameStream को रोका जा रहा है।</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="322"/>
<location filename="../gui/PcView.qml" line="330"/>
<source>This may take a few seconds…</source>
<translation>इसमें कुछ सेकेंड लग सकते हैं…</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="333"/>
<location filename="../gui/PcView.qml" line="341"/>
<source>This network does not appear to be blocking Moonlight. If you still have trouble connecting, check your PC&apos;s firewall settings.</source>
<translation>ऐसा लगता है कि यह नेटवर्क मूनलाइट को ब्लॉक नहीं कर रहा है। यदि आपको अभी भी कनेक्ट करने में समस्या हो रही है, तो अपने PC की फ़ायरवॉल सेटिंग्स जांचें।</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="333"/>
<location filename="../gui/PcView.qml" line="341"/>
<source>If you are trying to stream over the Internet, install the Moonlight Internet Hosting Tool on your gaming PC and run the included Internet Streaming Tester to check your gaming PC&apos;s Internet connection.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="337"/>
<location filename="../gui/PcView.qml" line="345"/>
<source>Your PC&apos;s current network connection seems to be blocking Moonlight. Streaming over the Internet may not work while connected to this network.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="337"/>
<location filename="../gui/PcView.qml" line="345"/>
<source>The following network ports were blocked:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="329"/>
<location filename="../gui/PcView.qml" line="337"/>
<source>The network test could not be performed because none of Moonlight&apos;s connection testing servers were reachable from this PC. Check your Internet connection or try again later.</source>
<translation type="unfinished"></translation>
</message>
@@ -255,43 +238,15 @@
<translation>सभी ऐप्स देखें</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="349"/>
<location filename="../gui/PcView.qml" line="357"/>
<source>Enter the new name for this PC:</source>
<translation>इस PC के लिए नया नाम दर्ज करें:</translation>
</message>
</context>
<context>
<name>PendingPairingTask</name>
<message>
<location filename="../backend/computermanager.cpp" line="535"/>
<source>The PIN from the PC didn&apos;t match. Please try again.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../backend/computermanager.cpp" line="539"/>
<source>You cannot pair while a previous session is still running on the host PC. Quit any running games or reboot the host PC, then try pairing again.</source>
<translation type="unfinished">जब तक होस्ट PC पर पिछला खेल अभी भी चल रहा हो, आप पेयर नहीं कर सकते। किसी भी चल रहे गेम से बाहर निकलें या होस्ट पीसी को रीबूट करें, फिर दोबारा जोड़ने का प्रयास करें।</translation>
</message>
<message>
<location filename="../backend/computermanager.cpp" line="542"/>
<source>Pairing failed. Please try again.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../backend/computermanager.cpp" line="546"/>
<source>Another pairing attempt is already in progress.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../backend/computermanager.cpp" line="556"/>
<source>GeForce Experience returned error: %1</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>PendingQuitTask</name>
<message>
<location filename="../backend/computermanager.cpp" line="606"/>
<location filename="../backend/computermanager.cpp" line="540"/>
<source>The running game wasn&apos;t started by this PC. You must quit the game on the host PC manually or use the device that originally started the game.</source>
<translation type="unfinished"></translation>
</message>
@@ -299,16 +254,6 @@
<context>
<name>QObject</name>
<message>
<location filename="../cli/pair.cpp" line="80"/>
<source>%1 is already paired</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>You cannot pair while a previous session is still running on the host PC. Quit any running games or reboot the host PC, then try pairing again.</source>
<translation type="obsolete">जब तक होस्ट PC पर पिछला खेल अभी भी चल रहा हो, आप पेयर नहीं कर सकते। किसी भी चल रहे गेम से बाहर निकलें या होस्ट पीसी को रीबूट करें, फिर दोबारा जोड़ने का प्रयास करें।</translation>
</message>
<message>
<location filename="../cli/pair.cpp" line="109"/>
<location filename="../cli/quitstream.cpp" line="76"/>
<location filename="../cli/startstream.cpp" line="133"/>
<source>Failed to connect to %1</source>
@@ -331,11 +276,6 @@
<source>Failed to find application %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../cli/listapps.cpp" line="99"/>
<source>Computer %1 has not been paired. Please open Moonlight to pair before retrieving games list.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>QuitSegue</name>
@@ -367,32 +307,22 @@
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="103"/>
<location filename="../streaming/session.cpp" line="102"/>
<source>Something went wrong on your host PC when starting the stream.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="104"/>
<location filename="../streaming/session.cpp" line="103"/>
<source>Make sure you don&apos;t have any DRM-protected content open on your host PC. You can also try restarting your host PC.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="105"/>
<location filename="../streaming/session.cpp" line="104"/>
<source>If the issue persists, try reinstalling your GPU drivers and GeForce Experience.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="110"/>
<source>The host PC reported a fatal video encoding error.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="111"/>
<source>Try disabling HDR mode, changing the streaming resolution, or changing your host PC&apos;s display resolution.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="116"/>
<location filename="../streaming/session.cpp" line="109"/>
<source>Connection terminated</source>
<translation type="unfinished"></translation>
</message>
@@ -486,32 +416,32 @@
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="810"/>
<location filename="../streaming/session.cpp" line="805"/>
<source>Your host PC&apos;s GPU doesn&apos;t support streaming video resolutions over 4K.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="814"/>
<location filename="../streaming/session.cpp" line="809"/>
<source>Video resolutions over 4K are only supported by the HEVC codec.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="828"/>
<location filename="../streaming/session.cpp" line="823"/>
<source>Your selection to force hardware decoding cannot be satisfied due to missing hardware decoding support on this PC&apos;s GPU.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="831"/>
<location filename="../streaming/session.cpp" line="826"/>
<source>Your codec selection and force hardware decoding setting are not compatible. This PC&apos;s GPU lacks support for decoding your chosen codec.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="1176"/>
<location filename="../streaming/session.cpp" line="1159"/>
<source>GeForce Experience returned error: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="1697"/>
<location filename="../streaming/session.cpp" line="1691"/>
<source>Unable to initialize video decoder. Please check your streaming settings and try again.</source>
<translation type="unfinished"></translation>
</message>
@@ -524,60 +454,60 @@
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="72"/>
<location filename="../gui/SettingsView.qml" line="70"/>
<source>Resolution and FPS</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="80"/>
<location filename="../gui/SettingsView.qml" line="78"/>
<source>Setting values too high for your PC or network connection may cause lag, stuttering, or errors.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="62"/>
<location filename="../gui/SettingsView.qml" line="60"/>
<source>Basic Settings</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="200"/>
<location filename="../gui/SettingsView.qml" line="209"/>
<source>720p</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="206"/>
<location filename="../gui/SettingsView.qml" line="215"/>
<source>1080p</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="212"/>
<location filename="../gui/SettingsView.qml" line="221"/>
<source>1440p</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="218"/>
<location filename="../gui/SettingsView.qml" line="227"/>
<source>4K</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="322"/>
<location filename="../gui/SettingsView.qml" line="331"/>
<source>Custom resolutions are not officially supported by GeForce Experience, so it will not set your host display resolution. You will need to set it manually while in game.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="323"/>
<location filename="../gui/SettingsView.qml" line="332"/>
<source>Resolutions that are not supported by your client or host PC may cause streaming errors.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="329"/>
<location filename="../gui/SettingsView.qml" line="338"/>
<source>Enter a custom resolution:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="397"/>
<location filename="../gui/SettingsView.qml" line="398"/>
<location filename="../gui/SettingsView.qml" line="418"/>
<location filename="../gui/SettingsView.qml" line="421"/>
<location filename="../gui/SettingsView.qml" line="406"/>
<location filename="../gui/SettingsView.qml" line="407"/>
<location filename="../gui/SettingsView.qml" line="427"/>
<location filename="../gui/SettingsView.qml" line="430"/>
<source>%1 FPS</source>
<translation type="unfinished"></translation>
</message>
@@ -586,189 +516,184 @@
<translation type="vanished">%1 FPS (nicht unterstützt)</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="485"/>
<location filename="../gui/SettingsView.qml" line="493"/>
<source>Video bitrate:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="493"/>
<location filename="../gui/SettingsView.qml" line="501"/>
<source>Lower the bitrate on slower connections. Raise the bitrate to increase image quality.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="511"/>
<location filename="../gui/SettingsView.qml" line="519"/>
<source>Video bitrate: %1 Mbps</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="519"/>
<location filename="../gui/SettingsView.qml" line="527"/>
<source>Display mode</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="549"/>
<location filename="../gui/SettingsView.qml" line="545"/>
<source> (Recommended)</source>
<translatorcomment>Dont put the space in ransaltions</translatorcomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="530"/>
<location filename="../gui/SettingsView.qml" line="937"/>
<location filename="../gui/SettingsView.qml" line="573"/>
<location filename="../gui/SettingsView.qml" line="919"/>
<source>Fullscreen</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="599"/>
<location filename="../gui/SettingsView.qml" line="592"/>
<source>Fullscreen generally provides the best performance, but borderless windowed may work better with features like macOS Spaces, Alt+Tab, screenshot tools, on-screen overlays, etc.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="535"/>
<location filename="../gui/SettingsView.qml" line="577"/>
<source>Borderless windowed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="403"/>
<location filename="../gui/SettingsView.qml" line="406"/>
<location filename="../gui/SettingsView.qml" line="412"/>
<location filename="../gui/SettingsView.qml" line="415"/>
<location filename="../gui/SettingsView.qml" line="428"/>
<location filename="../gui/SettingsView.qml" line="431"/>
<location filename="../gui/SettingsView.qml" line="424"/>
<location filename="../gui/SettingsView.qml" line="437"/>
<location filename="../gui/SettingsView.qml" line="440"/>
<source>%1 FPS (Unsupported)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="540"/>
<location filename="../gui/SettingsView.qml" line="929"/>
<location filename="../gui/SettingsView.qml" line="581"/>
<location filename="../gui/SettingsView.qml" line="911"/>
<source>Windowed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="606"/>
<location filename="../gui/SettingsView.qml" line="599"/>
<source>V-Sync</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="616"/>
<location filename="../gui/SettingsView.qml" line="609"/>
<source>Disabling V-Sync allows sub-frame rendering latency, but it can display visible tearing</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="623"/>
<location filename="../gui/SettingsView.qml" line="616"/>
<source>Frame pacing</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="633"/>
<location filename="../gui/SettingsView.qml" line="626"/>
<source>Frame pacing reduces micro-stutter by delaying frames that come in too early</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="643"/>
<location filename="../gui/SettingsView.qml" line="636"/>
<source>Audio Settings</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="678"/>
<location filename="../gui/SettingsView.qml" line="671"/>
<source>Stereo</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="682"/>
<location filename="../gui/SettingsView.qml" line="675"/>
<source>5.1 surround sound</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="686"/>
<location filename="../gui/SettingsView.qml" line="679"/>
<source>7.1 surround sound</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="700"/>
<location filename="../gui/SettingsView.qml" line="693"/>
<source>Mute host PC speakers while streaming</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="710"/>
<location filename="../gui/SettingsView.qml" line="703"/>
<source>You must restart any game currently in progress for this setting to take effect</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="716"/>
<location filename="../gui/SettingsView.qml" line="709"/>
<source>Mute audio stream when Moonlight is not the active window</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="727"/>
<location filename="../gui/SettingsView.qml" line="720"/>
<source>Mutes Moonlight&apos;s audio when you Alt+Tab out of the stream or click on a different window.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="736"/>
<location filename="../gui/SettingsView.qml" line="729"/>
<source>UI Settings</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="746"/>
<location filename="../gui/SettingsView.qml" line="739"/>
<source>Language</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="772"/>
<location filename="../gui/SettingsView.qml" line="765"/>
<source>Automatic</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="879"/>
<location filename="../gui/SettingsView.qml" line="864"/>
<source>You must restart Moonlight for this change to take effect</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="896"/>
<location filename="../gui/SettingsView.qml" line="878"/>
<source>GUI display mode</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="933"/>
<location filename="../gui/SettingsView.qml" line="915"/>
<source>Maximized</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1006"/>
<location filename="../gui/SettingsView.qml" line="988"/>
<source>Input Settings</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1027"/>
<location filename="../gui/SettingsView.qml" line="1009"/>
<source>This enables seamless mouse control without capturing the client&apos;s mouse cursor. It is ideal for remote desktop usage but will not work in most games.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1029"/>
<location filename="../gui/SettingsView.qml" line="1011"/>
<source>NOTE: Due to a bug in GeForce Experience, this option may not work properly if your host PC has multiple monitors.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1345"/>
<source>Enabling HDR overrides manual decoder selections.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1414"/>
<location filename="../gui/SettingsView.qml" line="1378"/>
<source>Enabling HDR overrides manual codec selections.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1420"/>
<location filename="../gui/SettingsView.qml" line="1384"/>
<source>Enable HDR (Experimental)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1431"/>
<location filename="../gui/SettingsView.qml" line="1395"/>
<source>The stream will be HDR-capable, but some games may require an HDR monitor on your host PC to enable HDR mode.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1433"/>
<location filename="../gui/SettingsView.qml" line="1397"/>
<source>HDR streaming is not supported on this PC.</source>
<translation type="unfinished"></translation>
</message>
@@ -781,208 +706,208 @@
<translation type="vanished">Dies ermöglicht die Erfassung von systemweiten Tastenkombinationen wie Alt+Tab, die normalerweise vom Client beim Streamen im Vollbildmodus ausgeführt werden würden.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1048"/>
<location filename="../gui/SettingsView.qml" line="1030"/>
<source>NOTE: Certain keyboard shortcuts like Ctrl+Alt+Del on Windows cannot be intercepted by any application, including Moonlight.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1111"/>
<location filename="../gui/SettingsView.qml" line="1093"/>
<source>Use touchscreen as a virtual trackpad</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1128"/>
<location filename="../gui/SettingsView.qml" line="1110"/>
<source>Swap left and right mouse buttons</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1140"/>
<location filename="../gui/SettingsView.qml" line="1122"/>
<source>Reverse mouse scrolling direction</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1154"/>
<location filename="../gui/SettingsView.qml" line="1136"/>
<source>Gamepad Settings</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1164"/>
<location filename="../gui/SettingsView.qml" line="1146"/>
<source>Swap A/B and X/Y gamepad buttons</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1182"/>
<location filename="../gui/SettingsView.qml" line="1164"/>
<source>This switches gamepads into a Nintendo-style button layout</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1188"/>
<location filename="../gui/SettingsView.qml" line="1170"/>
<source>Force gamepad #1 always connected</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1198"/>
<location filename="../gui/SettingsView.qml" line="1180"/>
<source>Forces a single gamepad to always stay connected to the host, even if no gamepads are actually connected to this PC.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1028"/>
<location filename="../gui/SettingsView.qml" line="1010"/>
<source>You can toggle this while streaming using Ctrl+Alt+Shift+M.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1206"/>
<location filename="../gui/SettingsView.qml" line="1188"/>
<source>Enable mouse control with gamepads by holding the &apos;Start&apos; button</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1217"/>
<location filename="../gui/SettingsView.qml" line="1199"/>
<source>Process gamepad input when Moonlight is in the background</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1228"/>
<location filename="../gui/SettingsView.qml" line="1210"/>
<source>Allows Moonlight to capture gamepad inputs even if it&apos;s not the current window in focus</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1237"/>
<location filename="../gui/SettingsView.qml" line="1219"/>
<source>Host Settings</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1277"/>
<location filename="../gui/SettingsView.qml" line="1259"/>
<source>Advanced Settings</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="653"/>
<location filename="../gui/SettingsView.qml" line="646"/>
<source>Audio configuration</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="950"/>
<location filename="../gui/SettingsView.qml" line="932"/>
<source>Show connection quality warnings</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="962"/>
<location filename="../gui/SettingsView.qml" line="944"/>
<source>Discord Rich Presence integration</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="972"/>
<location filename="../gui/SettingsView.qml" line="954"/>
<source>Updates your Discord status to display the name of the game you&apos;re streaming.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1199"/>
<location filename="../gui/SettingsView.qml" line="1181"/>
<source>Only enable this option when streaming a game that doesn&apos;t support gamepads being connected after startup.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1017"/>
<location filename="../gui/SettingsView.qml" line="999"/>
<source>Optimize mouse for remote desktop instead of games</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="978"/>
<location filename="../gui/SettingsView.qml" line="960"/>
<source>Keep the display awake while streaming</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="988"/>
<location filename="../gui/SettingsView.qml" line="970"/>
<source>Prevents the screensaver from starting or the display from going to sleep while streaming.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1039"/>
<location filename="../gui/SettingsView.qml" line="1021"/>
<source>Capture system keyboard shortcuts</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1047"/>
<location filename="../gui/SettingsView.qml" line="1029"/>
<source>This enables the capture of system-wide keyboard shortcuts like Alt+Tab that would normally be handled by the client OS while streaming.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1077"/>
<location filename="../gui/SettingsView.qml" line="1059"/>
<source>in fullscreen</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1081"/>
<location filename="../gui/SettingsView.qml" line="1063"/>
<source>always</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1121"/>
<location filename="../gui/SettingsView.qml" line="1103"/>
<source>When checked, the touchscreen acts like a trackpad. When unchecked, the touchscreen will directly control the mouse pointer.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1247"/>
<location filename="../gui/SettingsView.qml" line="1229"/>
<source>Optimize game settings for streaming</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1258"/>
<location filename="../gui/SettingsView.qml" line="1240"/>
<source>Quit app on host PC after ending stream</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1268"/>
<location filename="../gui/SettingsView.qml" line="1250"/>
<source>This will close the app or game you are streaming when you end your stream. You will lose any unsaved progress!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1287"/>
<location filename="../gui/SettingsView.qml" line="1269"/>
<source>Video decoder</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1313"/>
<location filename="../gui/SettingsView.qml" line="1382"/>
<location filename="../gui/SettingsView.qml" line="1294"/>
<location filename="../gui/SettingsView.qml" line="1346"/>
<source>Automatic (Recommended)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1317"/>
<location filename="../gui/SettingsView.qml" line="1298"/>
<source>Force software decoding</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1321"/>
<location filename="../gui/SettingsView.qml" line="1302"/>
<source>Force hardware decoding</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1351"/>
<location filename="../gui/SettingsView.qml" line="1315"/>
<source>Video codec</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1386"/>
<location filename="../gui/SettingsView.qml" line="1350"/>
<source>H.264</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1390"/>
<location filename="../gui/SettingsView.qml" line="1354"/>
<source>HEVC (H.265)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1439"/>
<location filename="../gui/SettingsView.qml" line="1403"/>
<source>Unlock unsupported FPS options</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1458"/>
<location filename="../gui/SettingsView.qml" line="1422"/>
<source>Automatically find PCs on the local network (Recommended)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1483"/>
<location filename="../gui/SettingsView.qml" line="1447"/>
<source>Automatically detect blocked connections (Recommended)</source>
<translation type="unfinished"></translation>
</message>
@@ -1039,94 +964,99 @@
<context>
<name>main</name>
<message>
<location filename="../gui/main.qml" line="418"/>
<location filename="../gui/main.qml" line="254"/>
<location filename="../gui/main.qml" line="264"/>
<location filename="../gui/main.qml" line="393"/>
<location filename="../gui/main.qml" line="408"/>
<source>Settings</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/main.qml" line="265"/>
<location filename="../gui/main.qml" line="255"/>
<source>Version %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/main.qml" line="281"/>
<location filename="../gui/main.qml" line="271"/>
<source>Join our community on Discord</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/main.qml" line="283"/>
<source>Computers</source>
<translation type="obsolete">कंप्यूटर</translation>
<translation type="unfinished">कंप्यूटर</translation>
</message>
<message>
<location filename="../gui/main.qml" line="300"/>
<location filename="../gui/main.qml" line="290"/>
<source>Add PC manually</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/main.qml" line="340"/>
<location filename="../gui/main.qml" line="330"/>
<source>Update available for Moonlight: Version %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/main.qml" line="387"/>
<location filename="../gui/main.qml" line="377"/>
<source>Gamepad Mapper</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/main.qml" line="381"/>
<source>Gamepad Mapping</source>
<translation type="obsolete">गेमपैड मैपिंग</translation>
<translation type="unfinished">गेमपैड मैपिंग</translation>
</message>
<message>
<source>No functioning hardware accelerated H.264 video decoder was detected by Moonlight. Your streaming performance may be severely degraded in this configuration.</source>
<translation type="vanished">Moonlight hat keinen funktionierenden hardwarebeschleunigten H.264-Videodecoder erkannt. Deine Streaming-Performance kann in dieser Konfiguration stark beeinträchtigt sein.</translation>
</message>
<message>
<location filename="../gui/main.qml" line="433"/>
<location filename="../gui/main.qml" line="423"/>
<source>Hardware acceleration doesn&apos;t work on XWayland. Continuing on XWayland may result in poor streaming performance. Try running with QT_QPA_PLATFORM=wayland or switch to X11.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/main.qml" line="442"/>
<location filename="../gui/main.qml" line="432"/>
<source>This version of Moonlight isn&apos;t optimized for your PC. Please download the &apos;%1&apos; version of Moonlight for the best streaming performance.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/main.qml" line="451"/>
<location filename="../gui/main.qml" line="441"/>
<source>Moonlight detected gamepads without a mapping:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/main.qml" line="364"/>
<location filename="../gui/main.qml" line="354"/>
<source>Help</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/main.qml" line="425"/>
<location filename="../gui/main.qml" line="415"/>
<source>No functioning hardware accelerated video decoder was detected by Moonlight. Your streaming performance may be severely degraded in this configuration.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/main.qml" line="427"/>
<location filename="../gui/main.qml" line="417"/>
<source>Click the Help button for more information on solving this problem.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/main.qml" line="435"/>
<location filename="../gui/main.qml" line="425"/>
<source>Click the Help button for more information.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/main.qml" line="453"/>
<location filename="../gui/main.qml" line="443"/>
<source>Click the Help button for information on how to map your gamepads.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/main.qml" line="461"/>
<location filename="../gui/main.qml" line="451"/>
<source>Are you sure you want to quit?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/main.qml" line="491"/>
<location filename="../gui/main.qml" line="481"/>
<source>Enter the IP address of your GameStream PC:</source>
<translation type="unfinished"></translation>
</message>
+151 -205
View File
@@ -51,24 +51,6 @@
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>CliPair</name>
<message>
<location filename="../gui/CliPair.qml" line="9"/>
<source>Establishing connection to PC...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/CliPair.qml" line="13"/>
<source>Pairing... Please enter &apos;%1&apos; on %2.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/CliPair.qml" line="85"/>
<source>Pairing completed successfully</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>CliQuitStreamSegue</name>
<message>
@@ -181,47 +163,52 @@
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="294"/>
<location filename="../gui/PcView.qml" line="247"/>
<source>You cannot pair while a previous session is still running on the host PC. Quit any running games or reboot the host PC, then try pairing again.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="302"/>
<source>Please enter %1 on your GameStream PC. This dialog will close when pairing is completed.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="305"/>
<location filename="../gui/PcView.qml" line="313"/>
<source>Are you sure you want to remove this PC?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="322"/>
<location filename="../gui/PcView.qml" line="330"/>
<source>Moonlight is testing your network connection to determine if NVIDIA GameStream is blocked.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="322"/>
<location filename="../gui/PcView.qml" line="330"/>
<source>This may take a few seconds…</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="333"/>
<location filename="../gui/PcView.qml" line="341"/>
<source>This network does not appear to be blocking Moonlight. If you still have trouble connecting, check your PC&apos;s firewall settings.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="333"/>
<location filename="../gui/PcView.qml" line="341"/>
<source>If you are trying to stream over the Internet, install the Moonlight Internet Hosting Tool on your gaming PC and run the included Internet Streaming Tester to check your gaming PC&apos;s Internet connection.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="337"/>
<location filename="../gui/PcView.qml" line="345"/>
<source>Your PC&apos;s current network connection seems to be blocking Moonlight. Streaming over the Internet may not work while connected to this network.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="337"/>
<location filename="../gui/PcView.qml" line="345"/>
<source>The following network ports were blocked:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="329"/>
<location filename="../gui/PcView.qml" line="337"/>
<source>The network test could not be performed because none of Moonlight&apos;s connection testing servers were reachable from this PC. Check your Internet connection or try again later.</source>
<translation type="unfinished"></translation>
</message>
@@ -251,43 +238,15 @@
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="349"/>
<location filename="../gui/PcView.qml" line="357"/>
<source>Enter the new name for this PC:</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>PendingPairingTask</name>
<message>
<location filename="../backend/computermanager.cpp" line="535"/>
<source>The PIN from the PC didn&apos;t match. Please try again.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../backend/computermanager.cpp" line="539"/>
<source>You cannot pair while a previous session is still running on the host PC. Quit any running games or reboot the host PC, then try pairing again.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../backend/computermanager.cpp" line="542"/>
<source>Pairing failed. Please try again.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../backend/computermanager.cpp" line="546"/>
<source>Another pairing attempt is already in progress.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../backend/computermanager.cpp" line="556"/>
<source>GeForce Experience returned error: %1</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>PendingQuitTask</name>
<message>
<location filename="../backend/computermanager.cpp" line="606"/>
<location filename="../backend/computermanager.cpp" line="540"/>
<source>The running game wasn&apos;t started by this PC. You must quit the game on the host PC manually or use the device that originally started the game.</source>
<translation type="unfinished"></translation>
</message>
@@ -295,12 +254,6 @@
<context>
<name>QObject</name>
<message>
<location filename="../cli/pair.cpp" line="80"/>
<source>%1 is already paired</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../cli/pair.cpp" line="109"/>
<location filename="../cli/quitstream.cpp" line="76"/>
<location filename="../cli/startstream.cpp" line="133"/>
<source>Failed to connect to %1</source>
@@ -323,11 +276,6 @@
<source>Failed to find application %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../cli/listapps.cpp" line="99"/>
<source>Computer %1 has not been paired. Please open Moonlight to pair before retrieving games list.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>QuitSegue</name>
@@ -359,22 +307,22 @@
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="103"/>
<location filename="../streaming/session.cpp" line="102"/>
<source>Something went wrong on your host PC when starting the stream.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="104"/>
<location filename="../streaming/session.cpp" line="103"/>
<source>Make sure you don&apos;t have any DRM-protected content open on your host PC. You can also try restarting your host PC.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="105"/>
<location filename="../streaming/session.cpp" line="104"/>
<source>If the issue persists, try reinstalling your GPU drivers and GeForce Experience.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="116"/>
<location filename="../streaming/session.cpp" line="109"/>
<source>Connection terminated</source>
<translation type="unfinished"></translation>
</message>
@@ -418,16 +366,6 @@
<source>Your host PC GPU doesn&apos;t support HEVC. A GeForce GTX 900-series (Maxwell) or later GPU is required for HEVC streaming.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="110"/>
<source>The host PC reported a fatal video encoding error.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="111"/>
<source>Try disabling HDR mode, changing the streaming resolution, or changing your host PC&apos;s display resolution.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="724"/>
<source>Using software decoding due to your selection to force H.264 without GPU support. This may cause poor streaming performance.</source>
@@ -474,32 +412,32 @@
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="810"/>
<location filename="../streaming/session.cpp" line="805"/>
<source>Your host PC&apos;s GPU doesn&apos;t support streaming video resolutions over 4K.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="814"/>
<location filename="../streaming/session.cpp" line="809"/>
<source>Video resolutions over 4K are only supported by the HEVC codec.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="828"/>
<location filename="../streaming/session.cpp" line="823"/>
<source>Your selection to force hardware decoding cannot be satisfied due to missing hardware decoding support on this PC&apos;s GPU.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="831"/>
<location filename="../streaming/session.cpp" line="826"/>
<source>Your codec selection and force hardware decoding setting are not compatible. This PC&apos;s GPU lacks support for decoding your chosen codec.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="1176"/>
<location filename="../streaming/session.cpp" line="1159"/>
<source>GeForce Experience returned error: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="1697"/>
<location filename="../streaming/session.cpp" line="1691"/>
<source>Unable to initialize video decoder. Please check your streaming settings and try again.</source>
<translation type="unfinished"></translation>
</message>
@@ -512,60 +450,60 @@
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="72"/>
<location filename="../gui/SettingsView.qml" line="70"/>
<source>Resolution and FPS</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="80"/>
<location filename="../gui/SettingsView.qml" line="78"/>
<source>Setting values too high for your PC or network connection may cause lag, stuttering, or errors.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="62"/>
<location filename="../gui/SettingsView.qml" line="60"/>
<source>Basic Settings</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="200"/>
<location filename="../gui/SettingsView.qml" line="209"/>
<source>720p</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="206"/>
<location filename="../gui/SettingsView.qml" line="215"/>
<source>1080p</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="212"/>
<location filename="../gui/SettingsView.qml" line="221"/>
<source>1440p</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="218"/>
<location filename="../gui/SettingsView.qml" line="227"/>
<source>4K</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="322"/>
<location filename="../gui/SettingsView.qml" line="331"/>
<source>Custom resolutions are not officially supported by GeForce Experience, so it will not set your host display resolution. You will need to set it manually while in game.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="323"/>
<location filename="../gui/SettingsView.qml" line="332"/>
<source>Resolutions that are not supported by your client or host PC may cause streaming errors.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="329"/>
<location filename="../gui/SettingsView.qml" line="338"/>
<source>Enter a custom resolution:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="397"/>
<location filename="../gui/SettingsView.qml" line="398"/>
<location filename="../gui/SettingsView.qml" line="418"/>
<location filename="../gui/SettingsView.qml" line="421"/>
<location filename="../gui/SettingsView.qml" line="406"/>
<location filename="../gui/SettingsView.qml" line="407"/>
<location filename="../gui/SettingsView.qml" line="427"/>
<location filename="../gui/SettingsView.qml" line="430"/>
<source>%1 FPS</source>
<translation type="unfinished"></translation>
</message>
@@ -574,189 +512,184 @@
<translation type="vanished">%1 FPS (nicht unterstützt)</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="485"/>
<location filename="../gui/SettingsView.qml" line="493"/>
<source>Video bitrate:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="493"/>
<location filename="../gui/SettingsView.qml" line="501"/>
<source>Lower the bitrate on slower connections. Raise the bitrate to increase image quality.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="511"/>
<location filename="../gui/SettingsView.qml" line="519"/>
<source>Video bitrate: %1 Mbps</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="519"/>
<location filename="../gui/SettingsView.qml" line="527"/>
<source>Display mode</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="549"/>
<location filename="../gui/SettingsView.qml" line="545"/>
<source> (Recommended)</source>
<translatorcomment>Dont put the space in ransaltions</translatorcomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="530"/>
<location filename="../gui/SettingsView.qml" line="937"/>
<location filename="../gui/SettingsView.qml" line="573"/>
<location filename="../gui/SettingsView.qml" line="919"/>
<source>Fullscreen</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="599"/>
<location filename="../gui/SettingsView.qml" line="592"/>
<source>Fullscreen generally provides the best performance, but borderless windowed may work better with features like macOS Spaces, Alt+Tab, screenshot tools, on-screen overlays, etc.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="535"/>
<location filename="../gui/SettingsView.qml" line="577"/>
<source>Borderless windowed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="403"/>
<location filename="../gui/SettingsView.qml" line="406"/>
<location filename="../gui/SettingsView.qml" line="412"/>
<location filename="../gui/SettingsView.qml" line="415"/>
<location filename="../gui/SettingsView.qml" line="428"/>
<location filename="../gui/SettingsView.qml" line="431"/>
<location filename="../gui/SettingsView.qml" line="424"/>
<location filename="../gui/SettingsView.qml" line="437"/>
<location filename="../gui/SettingsView.qml" line="440"/>
<source>%1 FPS (Unsupported)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="540"/>
<location filename="../gui/SettingsView.qml" line="929"/>
<location filename="../gui/SettingsView.qml" line="581"/>
<location filename="../gui/SettingsView.qml" line="911"/>
<source>Windowed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="606"/>
<location filename="../gui/SettingsView.qml" line="599"/>
<source>V-Sync</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="616"/>
<location filename="../gui/SettingsView.qml" line="609"/>
<source>Disabling V-Sync allows sub-frame rendering latency, but it can display visible tearing</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="623"/>
<location filename="../gui/SettingsView.qml" line="616"/>
<source>Frame pacing</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="633"/>
<location filename="../gui/SettingsView.qml" line="626"/>
<source>Frame pacing reduces micro-stutter by delaying frames that come in too early</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="643"/>
<location filename="../gui/SettingsView.qml" line="636"/>
<source>Audio Settings</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="678"/>
<location filename="../gui/SettingsView.qml" line="671"/>
<source>Stereo</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="682"/>
<location filename="../gui/SettingsView.qml" line="675"/>
<source>5.1 surround sound</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="686"/>
<location filename="../gui/SettingsView.qml" line="679"/>
<source>7.1 surround sound</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="700"/>
<location filename="../gui/SettingsView.qml" line="693"/>
<source>Mute host PC speakers while streaming</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="710"/>
<location filename="../gui/SettingsView.qml" line="703"/>
<source>You must restart any game currently in progress for this setting to take effect</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="716"/>
<location filename="../gui/SettingsView.qml" line="709"/>
<source>Mute audio stream when Moonlight is not the active window</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="727"/>
<location filename="../gui/SettingsView.qml" line="720"/>
<source>Mutes Moonlight&apos;s audio when you Alt+Tab out of the stream or click on a different window.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="736"/>
<location filename="../gui/SettingsView.qml" line="729"/>
<source>UI Settings</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="746"/>
<location filename="../gui/SettingsView.qml" line="739"/>
<source>Language</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="772"/>
<location filename="../gui/SettingsView.qml" line="765"/>
<source>Automatic</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="879"/>
<location filename="../gui/SettingsView.qml" line="864"/>
<source>You must restart Moonlight for this change to take effect</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="896"/>
<location filename="../gui/SettingsView.qml" line="878"/>
<source>GUI display mode</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="933"/>
<location filename="../gui/SettingsView.qml" line="915"/>
<source>Maximized</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1006"/>
<location filename="../gui/SettingsView.qml" line="988"/>
<source>Input Settings</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1027"/>
<location filename="../gui/SettingsView.qml" line="1009"/>
<source>This enables seamless mouse control without capturing the client&apos;s mouse cursor. It is ideal for remote desktop usage but will not work in most games.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1029"/>
<location filename="../gui/SettingsView.qml" line="1011"/>
<source>NOTE: Due to a bug in GeForce Experience, this option may not work properly if your host PC has multiple monitors.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1345"/>
<source>Enabling HDR overrides manual decoder selections.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1414"/>
<location filename="../gui/SettingsView.qml" line="1378"/>
<source>Enabling HDR overrides manual codec selections.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1420"/>
<location filename="../gui/SettingsView.qml" line="1384"/>
<source>Enable HDR (Experimental)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1431"/>
<location filename="../gui/SettingsView.qml" line="1395"/>
<source>The stream will be HDR-capable, but some games may require an HDR monitor on your host PC to enable HDR mode.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1433"/>
<location filename="../gui/SettingsView.qml" line="1397"/>
<source>HDR streaming is not supported on this PC.</source>
<translation type="unfinished"></translation>
</message>
@@ -769,208 +702,208 @@
<translation type="vanished">Dies ermöglicht die Erfassung von systemweiten Tastenkombinationen wie Alt+Tab, die normalerweise vom Client beim Streamen im Vollbildmodus ausgeführt werden würden.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1048"/>
<location filename="../gui/SettingsView.qml" line="1030"/>
<source>NOTE: Certain keyboard shortcuts like Ctrl+Alt+Del on Windows cannot be intercepted by any application, including Moonlight.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1111"/>
<location filename="../gui/SettingsView.qml" line="1093"/>
<source>Use touchscreen as a virtual trackpad</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1128"/>
<location filename="../gui/SettingsView.qml" line="1110"/>
<source>Swap left and right mouse buttons</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1140"/>
<location filename="../gui/SettingsView.qml" line="1122"/>
<source>Reverse mouse scrolling direction</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1154"/>
<location filename="../gui/SettingsView.qml" line="1136"/>
<source>Gamepad Settings</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1164"/>
<location filename="../gui/SettingsView.qml" line="1146"/>
<source>Swap A/B and X/Y gamepad buttons</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1182"/>
<location filename="../gui/SettingsView.qml" line="1164"/>
<source>This switches gamepads into a Nintendo-style button layout</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1188"/>
<location filename="../gui/SettingsView.qml" line="1170"/>
<source>Force gamepad #1 always connected</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1198"/>
<location filename="../gui/SettingsView.qml" line="1180"/>
<source>Forces a single gamepad to always stay connected to the host, even if no gamepads are actually connected to this PC.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1028"/>
<location filename="../gui/SettingsView.qml" line="1010"/>
<source>You can toggle this while streaming using Ctrl+Alt+Shift+M.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1206"/>
<location filename="../gui/SettingsView.qml" line="1188"/>
<source>Enable mouse control with gamepads by holding the &apos;Start&apos; button</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1217"/>
<location filename="../gui/SettingsView.qml" line="1199"/>
<source>Process gamepad input when Moonlight is in the background</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1228"/>
<location filename="../gui/SettingsView.qml" line="1210"/>
<source>Allows Moonlight to capture gamepad inputs even if it&apos;s not the current window in focus</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1237"/>
<location filename="../gui/SettingsView.qml" line="1219"/>
<source>Host Settings</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1277"/>
<location filename="../gui/SettingsView.qml" line="1259"/>
<source>Advanced Settings</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="653"/>
<location filename="../gui/SettingsView.qml" line="646"/>
<source>Audio configuration</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="950"/>
<location filename="../gui/SettingsView.qml" line="932"/>
<source>Show connection quality warnings</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="962"/>
<location filename="../gui/SettingsView.qml" line="944"/>
<source>Discord Rich Presence integration</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="972"/>
<location filename="../gui/SettingsView.qml" line="954"/>
<source>Updates your Discord status to display the name of the game you&apos;re streaming.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1199"/>
<location filename="../gui/SettingsView.qml" line="1181"/>
<source>Only enable this option when streaming a game that doesn&apos;t support gamepads being connected after startup.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1017"/>
<location filename="../gui/SettingsView.qml" line="999"/>
<source>Optimize mouse for remote desktop instead of games</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="978"/>
<location filename="../gui/SettingsView.qml" line="960"/>
<source>Keep the display awake while streaming</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="988"/>
<location filename="../gui/SettingsView.qml" line="970"/>
<source>Prevents the screensaver from starting or the display from going to sleep while streaming.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1039"/>
<location filename="../gui/SettingsView.qml" line="1021"/>
<source>Capture system keyboard shortcuts</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1047"/>
<location filename="../gui/SettingsView.qml" line="1029"/>
<source>This enables the capture of system-wide keyboard shortcuts like Alt+Tab that would normally be handled by the client OS while streaming.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1077"/>
<location filename="../gui/SettingsView.qml" line="1059"/>
<source>in fullscreen</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1081"/>
<location filename="../gui/SettingsView.qml" line="1063"/>
<source>always</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1121"/>
<location filename="../gui/SettingsView.qml" line="1103"/>
<source>When checked, the touchscreen acts like a trackpad. When unchecked, the touchscreen will directly control the mouse pointer.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1247"/>
<location filename="../gui/SettingsView.qml" line="1229"/>
<source>Optimize game settings for streaming</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1258"/>
<location filename="../gui/SettingsView.qml" line="1240"/>
<source>Quit app on host PC after ending stream</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1268"/>
<location filename="../gui/SettingsView.qml" line="1250"/>
<source>This will close the app or game you are streaming when you end your stream. You will lose any unsaved progress!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1287"/>
<location filename="../gui/SettingsView.qml" line="1269"/>
<source>Video decoder</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1313"/>
<location filename="../gui/SettingsView.qml" line="1382"/>
<location filename="../gui/SettingsView.qml" line="1294"/>
<location filename="../gui/SettingsView.qml" line="1346"/>
<source>Automatic (Recommended)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1317"/>
<location filename="../gui/SettingsView.qml" line="1298"/>
<source>Force software decoding</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1321"/>
<location filename="../gui/SettingsView.qml" line="1302"/>
<source>Force hardware decoding</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1351"/>
<location filename="../gui/SettingsView.qml" line="1315"/>
<source>Video codec</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1386"/>
<location filename="../gui/SettingsView.qml" line="1350"/>
<source>H.264</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1390"/>
<location filename="../gui/SettingsView.qml" line="1354"/>
<source>HEVC (H.265)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1439"/>
<location filename="../gui/SettingsView.qml" line="1403"/>
<source>Unlock unsupported FPS options</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1458"/>
<location filename="../gui/SettingsView.qml" line="1422"/>
<source>Automatically find PCs on the local network (Recommended)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1483"/>
<location filename="../gui/SettingsView.qml" line="1447"/>
<source>Automatically detect blocked connections (Recommended)</source>
<translation type="unfinished"></translation>
</message>
@@ -1027,82 +960,95 @@
<context>
<name>main</name>
<message>
<location filename="../gui/main.qml" line="418"/>
<location filename="../gui/main.qml" line="254"/>
<location filename="../gui/main.qml" line="264"/>
<location filename="../gui/main.qml" line="393"/>
<location filename="../gui/main.qml" line="408"/>
<source>Settings</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/main.qml" line="265"/>
<location filename="../gui/main.qml" line="255"/>
<source>Version %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/main.qml" line="281"/>
<location filename="../gui/main.qml" line="271"/>
<source>Join our community on Discord</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/main.qml" line="300"/>
<location filename="../gui/main.qml" line="283"/>
<source>Computers</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/main.qml" line="290"/>
<source>Add PC manually</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/main.qml" line="340"/>
<location filename="../gui/main.qml" line="330"/>
<source>Update available for Moonlight: Version %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/main.qml" line="387"/>
<location filename="../gui/main.qml" line="377"/>
<source>Gamepad Mapper</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/main.qml" line="433"/>
<location filename="../gui/main.qml" line="381"/>
<source>Gamepad Mapping</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/main.qml" line="423"/>
<source>Hardware acceleration doesn&apos;t work on XWayland. Continuing on XWayland may result in poor streaming performance. Try running with QT_QPA_PLATFORM=wayland or switch to X11.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/main.qml" line="442"/>
<location filename="../gui/main.qml" line="432"/>
<source>This version of Moonlight isn&apos;t optimized for your PC. Please download the &apos;%1&apos; version of Moonlight for the best streaming performance.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/main.qml" line="451"/>
<location filename="../gui/main.qml" line="441"/>
<source>Moonlight detected gamepads without a mapping:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/main.qml" line="364"/>
<location filename="../gui/main.qml" line="354"/>
<source>Help</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/main.qml" line="425"/>
<location filename="../gui/main.qml" line="415"/>
<source>No functioning hardware accelerated video decoder was detected by Moonlight. Your streaming performance may be severely degraded in this configuration.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/main.qml" line="427"/>
<location filename="../gui/main.qml" line="417"/>
<source>Click the Help button for more information on solving this problem.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/main.qml" line="435"/>
<location filename="../gui/main.qml" line="425"/>
<source>Click the Help button for more information.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/main.qml" line="453"/>
<location filename="../gui/main.qml" line="443"/>
<source>Click the Help button for information on how to map your gamepads.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/main.qml" line="461"/>
<location filename="../gui/main.qml" line="451"/>
<source>Are you sure you want to quit?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/main.qml" line="491"/>
<location filename="../gui/main.qml" line="481"/>
<source>Enter the IP address of your GameStream PC:</source>
<translation type="unfinished"></translation>
</message>
Binary file not shown.
+148 -218
View File
@@ -51,24 +51,6 @@
<translation>Sei sicuro di voler chiudere %1? I progressi non salvati verranno persi.</translation>
</message>
</context>
<context>
<name>CliPair</name>
<message>
<location filename="../gui/CliPair.qml" line="9"/>
<source>Establishing connection to PC...</source>
<translation type="unfinished">Connessione al PC in corso...</translation>
</message>
<message>
<location filename="../gui/CliPair.qml" line="13"/>
<source>Pairing... Please enter &apos;%1&apos; on %2.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/CliPair.qml" line="85"/>
<source>Pairing completed successfully</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>CliQuitStreamSegue</name>
<message>
@@ -181,51 +163,52 @@
<translation>La versione di GeForce Experience su %1 non è supportata da questa versione di Moonlight. Aggiorna Moonlight per fare streaming da %1.</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="247"/>
<source>You cannot pair while a previous session is still running on the host PC. Quit any running games or reboot the host PC, then try pairing again.</source>
<translation type="vanished">Non puoi effettuare l&apos;accoppiamento mentre una sessione precedente è in esecuzione sul PC. Chiudi i giochi in esecuzione o riavvia il PC, quindi prova nuovamente.</translation>
<translation>Non puoi effettuare l&apos;accoppiamento mentre una sessione precedente è in esecuzione sul PC. Chiudi i giochi in esecuzione o riavvia il PC, quindi prova nuovamente.</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="294"/>
<location filename="../gui/PcView.qml" line="302"/>
<source>Please enter %1 on your GameStream PC. This dialog will close when pairing is completed.</source>
<translation>Inserisci %1 sul tuo PC GameStream. Questa finestra si chiuderà al termine dell&apos;accoppiamento.</translation>
<translation>Iserisci %1 sul tuo PC GameStream. Questa finestra si chiuderà quando l&apos;accoppiamento sarà concluso.</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="305"/>
<location filename="../gui/PcView.qml" line="313"/>
<source>Are you sure you want to remove this PC?</source>
<translation>Sei sicuro di voler rimuovere questo PC?</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="322"/>
<location filename="../gui/PcView.qml" line="330"/>
<source>Moonlight is testing your network connection to determine if NVIDIA GameStream is blocked.</source>
<translation>Moonlight sta provando la tua connessione di rete per capire se NVIDIA GameStream sia bloccato.</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="322"/>
<location filename="../gui/PcView.qml" line="330"/>
<source>This may take a few seconds…</source>
<translation>Potrebbero volerci alcuni secondi…</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="333"/>
<location filename="../gui/PcView.qml" line="341"/>
<source>This network does not appear to be blocking Moonlight. If you still have trouble connecting, check your PC&apos;s firewall settings.</source>
<translation>Questa rete non sembra bloccare Moonlight. Se hai ancora problemi con il collegamento, controlla le impostazioni del firewall del tuo PC.</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="333"/>
<location filename="../gui/PcView.qml" line="341"/>
<source>If you are trying to stream over the Internet, install the Moonlight Internet Hosting Tool on your gaming PC and run the included Internet Streaming Tester to check your gaming PC&apos;s Internet connection.</source>
<translation>Se stai cercando di fare streaming attraverso Internet, installa Moonlight Internet Hosting Tool sul tuo PC da gioco e lancia l&apos;Internet Streaming Tester incluso per controllare la connessione ad internet del tuo PC.</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="337"/>
<location filename="../gui/PcView.qml" line="345"/>
<source>Your PC&apos;s current network connection seems to be blocking Moonlight. Streaming over the Internet may not work while connected to this network.</source>
<translation>La connessione di rete attuale del tuo PC sembra bloccare Moonlight. Fare streaming attraverso Internet potrebbe non funzionare mentre sei connesso a questa rete.</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="337"/>
<location filename="../gui/PcView.qml" line="345"/>
<source>The following network ports were blocked:</source>
<translation>Le seguenti porte di rete sono state bloccate:</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="329"/>
<location filename="../gui/PcView.qml" line="337"/>
<source>The network test could not be performed because none of Moonlight&apos;s connection testing servers were reachable from this PC. Check your Internet connection or try again later.</source>
<translation>Il test di rete non può essere effettuato perché nessuno dei server per il test della connessione di Moonlight è raggiungibile da questo PC. Controlla la tua connessione ad Internet o prova di nuovo più tardi.</translation>
</message>
@@ -255,43 +238,15 @@
<translation>Vedi Tutte le Applicazioni</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="349"/>
<location filename="../gui/PcView.qml" line="357"/>
<source>Enter the new name for this PC:</source>
<translation>Inserisci il nuovo nome per questo PC:</translation>
</message>
</context>
<context>
<name>PendingPairingTask</name>
<message>
<location filename="../backend/computermanager.cpp" line="535"/>
<source>The PIN from the PC didn&apos;t match. Please try again.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../backend/computermanager.cpp" line="539"/>
<source>You cannot pair while a previous session is still running on the host PC. Quit any running games or reboot the host PC, then try pairing again.</source>
<translation type="unfinished">Non puoi effettuare l&apos;accoppiamento mentre una sessione precedente è in esecuzione sul PC. Chiudi i giochi in esecuzione o riavvia il PC, quindi prova nuovamente.</translation>
</message>
<message>
<location filename="../backend/computermanager.cpp" line="542"/>
<source>Pairing failed. Please try again.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../backend/computermanager.cpp" line="546"/>
<source>Another pairing attempt is already in progress.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../backend/computermanager.cpp" line="556"/>
<source>GeForce Experience returned error: %1</source>
<translation type="unfinished">GeForce Experience ha restituito un errore: %1</translation>
</message>
</context>
<context>
<name>PendingQuitTask</name>
<message>
<location filename="../backend/computermanager.cpp" line="606"/>
<location filename="../backend/computermanager.cpp" line="540"/>
<source>The running game wasn&apos;t started by this PC. You must quit the game on the host PC manually or use the device that originally started the game.</source>
<translation>Il gioco in esecuzione non è stato avviato da questo PC. Devi uscire dal gioco sul PC host manualmente o usare il dispositivo con cui il gioco è stato avviato.</translation>
</message>
@@ -299,16 +254,6 @@
<context>
<name>QObject</name>
<message>
<location filename="../cli/pair.cpp" line="80"/>
<source>%1 is already paired</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>You cannot pair while a previous session is still running on the host PC. Quit any running games or reboot the host PC, then try pairing again.</source>
<translation type="obsolete">Non puoi effettuare l&apos;accoppiamento mentre una sessione precedente è in esecuzione sul PC. Chiudi i giochi in esecuzione o riavvia il PC, quindi prova nuovamente.</translation>
</message>
<message>
<location filename="../cli/pair.cpp" line="109"/>
<location filename="../cli/quitstream.cpp" line="76"/>
<location filename="../cli/startstream.cpp" line="133"/>
<source>Failed to connect to %1</source>
@@ -331,11 +276,6 @@
<source>Failed to find application %1</source>
<translation>Impossibile trovare l&apos;applicazione %1</translation>
</message>
<message>
<location filename="../cli/listapps.cpp" line="99"/>
<source>Computer %1 has not been paired. Please open Moonlight to pair before retrieving games list.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>QuitSegue</name>
@@ -367,32 +307,22 @@
<translation>La tua connessione di rete non funziona bene. Riduci il bitrate video o prova una connessione più veloce.</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="103"/>
<location filename="../streaming/session.cpp" line="102"/>
<source>Something went wrong on your host PC when starting the stream.</source>
<translation>Qualcosa non ha funzionato sul tuo PC host all&apos;avvio dello streaming.</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="104"/>
<location filename="../streaming/session.cpp" line="103"/>
<source>Make sure you don&apos;t have any DRM-protected content open on your host PC. You can also try restarting your host PC.</source>
<translation>Assicurati si non avere nessun contenuto protetto da DRM aperto sul tuo PC host. Puoi anche provare a riavviare il PC host.</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="105"/>
<location filename="../streaming/session.cpp" line="104"/>
<source>If the issue persists, try reinstalling your GPU drivers and GeForce Experience.</source>
<translation>Se il problema persiste, prova a installare di nuovo i driver della scheda video e GeForce Experience.</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="110"/>
<source>The host PC reported a fatal video encoding error.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="111"/>
<source>Try disabling HDR mode, changing the streaming resolution, or changing your host PC&apos;s display resolution.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="116"/>
<location filename="../streaming/session.cpp" line="109"/>
<source>Connection terminated</source>
<translation>Conessione terminata</translation>
</message>
@@ -490,32 +420,32 @@
<translation>Un controller connesso non ha mappatura e non sarà utilizzabile. Visita l&apos;aiuto di Moonlight per risolvere.</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="810"/>
<location filename="../streaming/session.cpp" line="805"/>
<source>Your host PC&apos;s GPU doesn&apos;t support streaming video resolutions over 4K.</source>
<translation>La scheda video del tuo PC host non supporta lo streaming di risoluzioni video oltre i 4K.</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="814"/>
<location filename="../streaming/session.cpp" line="809"/>
<source>Video resolutions over 4K are only supported by the HEVC codec.</source>
<translation>Risoluzioni video più alte di 4K sono supportate solo dal codec HEVC.</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="828"/>
<location filename="../streaming/session.cpp" line="823"/>
<source>Your selection to force hardware decoding cannot be satisfied due to missing hardware decoding support on this PC&apos;s GPU.</source>
<translation>La selezione di forzare la decodifica hardware non può essere applicata per via del mancato supporto alla decodifica hardare sulla scheda video di questo PC.</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="831"/>
<location filename="../streaming/session.cpp" line="826"/>
<source>Your codec selection and force hardware decoding setting are not compatible. This PC&apos;s GPU lacks support for decoding your chosen codec.</source>
<translation>La selezione del codec e della decodifica hardware non sono compatibili. La scheda video di questo PC non supporta la decodifica per il codec scelto.</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="1176"/>
<location filename="../streaming/session.cpp" line="1159"/>
<source>GeForce Experience returned error: %1</source>
<translation>GeForce Experience ha restituito un errore: %1</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="1697"/>
<location filename="../streaming/session.cpp" line="1691"/>
<source>Unable to initialize video decoder. Please check your streaming settings and try again.</source>
<translation>Impossibile inizializzare il decoder video. Controlla le impostazioni di streaming e prova di nuovo.</translation>
</message>
@@ -528,60 +458,60 @@
<translation>Impostazioni</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="72"/>
<location filename="../gui/SettingsView.qml" line="70"/>
<source>Resolution and FPS</source>
<translation>Risoluzione e FPS</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="80"/>
<location filename="../gui/SettingsView.qml" line="78"/>
<source>Setting values too high for your PC or network connection may cause lag, stuttering, or errors.</source>
<translation>Valori troppo alti per il tuo PC o la tua connessione di rete possono causare ritardi, immagini a singhiozzo, o errori.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="62"/>
<location filename="../gui/SettingsView.qml" line="60"/>
<source>Basic Settings</source>
<translation>Impostazioni di base</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="200"/>
<location filename="../gui/SettingsView.qml" line="209"/>
<source>720p</source>
<translation>720p</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="206"/>
<location filename="../gui/SettingsView.qml" line="215"/>
<source>1080p</source>
<translation>1080p</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="212"/>
<location filename="../gui/SettingsView.qml" line="221"/>
<source>1440p</source>
<translation>1440p</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="218"/>
<location filename="../gui/SettingsView.qml" line="227"/>
<source>4K</source>
<translation>4K</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="322"/>
<location filename="../gui/SettingsView.qml" line="331"/>
<source>Custom resolutions are not officially supported by GeForce Experience, so it will not set your host display resolution. You will need to set it manually while in game.</source>
<translation>Risoluzioni personalizzate non sono ufficialmente supportate da GeForce Experience, quindi la risoluzione dello schermo non verrà cambiata. Dovrai settarla manualmente nel gioco.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="323"/>
<location filename="../gui/SettingsView.qml" line="332"/>
<source>Resolutions that are not supported by your client or host PC may cause streaming errors.</source>
<translation>Risoluzioni non supportate dal tuo PC sorgente o destinazione possono causare errori di streaming.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="329"/>
<location filename="../gui/SettingsView.qml" line="338"/>
<source>Enter a custom resolution:</source>
<translation>Inserisci una risoluzione personalizzata:</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="397"/>
<location filename="../gui/SettingsView.qml" line="398"/>
<location filename="../gui/SettingsView.qml" line="418"/>
<location filename="../gui/SettingsView.qml" line="421"/>
<location filename="../gui/SettingsView.qml" line="406"/>
<location filename="../gui/SettingsView.qml" line="407"/>
<location filename="../gui/SettingsView.qml" line="427"/>
<location filename="../gui/SettingsView.qml" line="430"/>
<source>%1 FPS</source>
<translation>%1 FPS</translation>
</message>
@@ -590,191 +520,186 @@
<translation type="vanished">%1 FPS (nicht unterstützt)</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="485"/>
<location filename="../gui/SettingsView.qml" line="493"/>
<source>Video bitrate:</source>
<translation>Bitrate video:</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="493"/>
<location filename="../gui/SettingsView.qml" line="501"/>
<source>Lower the bitrate on slower connections. Raise the bitrate to increase image quality.</source>
<translation>Abbassa il bitrate su connessioni lente. Alza il bitrate per migliorare la qualità dell&apos;immagine.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="511"/>
<location filename="../gui/SettingsView.qml" line="519"/>
<source>Video bitrate: %1 Mbps</source>
<translation>Bitrate Video: %1 Mbps</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="519"/>
<location filename="../gui/SettingsView.qml" line="527"/>
<source>Display mode</source>
<translation>Modalità display</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="549"/>
<location filename="../gui/SettingsView.qml" line="545"/>
<source> (Recommended)</source>
<translatorcomment>Dont put the space in ransaltions</translatorcomment>
<translation> (Consigliato)</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="530"/>
<location filename="../gui/SettingsView.qml" line="937"/>
<location filename="../gui/SettingsView.qml" line="573"/>
<location filename="../gui/SettingsView.qml" line="919"/>
<source>Fullscreen</source>
<translation>Schermo intero</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="599"/>
<location filename="../gui/SettingsView.qml" line="592"/>
<source>Fullscreen generally provides the best performance, but borderless windowed may work better with features like macOS Spaces, Alt+Tab, screenshot tools, on-screen overlays, etc.</source>
<translation>Schermo intero generalmente fornisce le migliori prestazioni, ma finestra senza bordi può funzionare meglio con funzioni come macOS Spaces, Alt+Tab, strumenti per gli screenshot, overlay su schermo, ecc.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="535"/>
<location filename="../gui/SettingsView.qml" line="577"/>
<source>Borderless windowed</source>
<translation>Finestra senza bordi</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="403"/>
<location filename="../gui/SettingsView.qml" line="406"/>
<location filename="../gui/SettingsView.qml" line="412"/>
<location filename="../gui/SettingsView.qml" line="415"/>
<location filename="../gui/SettingsView.qml" line="428"/>
<location filename="../gui/SettingsView.qml" line="431"/>
<location filename="../gui/SettingsView.qml" line="424"/>
<location filename="../gui/SettingsView.qml" line="437"/>
<location filename="../gui/SettingsView.qml" line="440"/>
<source>%1 FPS (Unsupported)</source>
<translation>%1 FPS (Non supportato)</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="540"/>
<location filename="../gui/SettingsView.qml" line="929"/>
<location filename="../gui/SettingsView.qml" line="581"/>
<location filename="../gui/SettingsView.qml" line="911"/>
<source>Windowed</source>
<translation>Finestra</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="606"/>
<location filename="../gui/SettingsView.qml" line="599"/>
<source>V-Sync</source>
<translation>V-Sync</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="616"/>
<location filename="../gui/SettingsView.qml" line="609"/>
<source>Disabling V-Sync allows sub-frame rendering latency, but it can display visible tearing</source>
<translation>Disabilitare il V-Sync permette una latenza nel rendering dei sub-frame, ma potrebbe visualizzare immagini sfasate</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="623"/>
<location filename="../gui/SettingsView.qml" line="616"/>
<source>Frame pacing</source>
<translation>Ritmo frame</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="633"/>
<location filename="../gui/SettingsView.qml" line="626"/>
<source>Frame pacing reduces micro-stutter by delaying frames that come in too early</source>
<translation>Il ritmo dei frame riduce i micro rallentamenti ritardando i frame che arrivano troppo presto</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="643"/>
<location filename="../gui/SettingsView.qml" line="636"/>
<source>Audio Settings</source>
<translation>Impostazioni audio</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="678"/>
<location filename="../gui/SettingsView.qml" line="671"/>
<source>Stereo</source>
<translation>Stereo</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="682"/>
<location filename="../gui/SettingsView.qml" line="675"/>
<source>5.1 surround sound</source>
<translation>Suono surround 5.1</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="686"/>
<location filename="../gui/SettingsView.qml" line="679"/>
<source>7.1 surround sound</source>
<translation>Suono surround 7.1</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="700"/>
<location filename="../gui/SettingsView.qml" line="693"/>
<source>Mute host PC speakers while streaming</source>
<translation>Silenzia le casse del PC sorgente durante lo streaming</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="710"/>
<location filename="../gui/SettingsView.qml" line="703"/>
<source>You must restart any game currently in progress for this setting to take effect</source>
<translation>Devi riavviare i giochi attualmente in eseguzione perché questa impostazione abbia effetto</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="716"/>
<location filename="../gui/SettingsView.qml" line="709"/>
<source>Mute audio stream when Moonlight is not the active window</source>
<translation>Silenzia il flusso audio quando Moonlight non è la finestra attiva</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="727"/>
<location filename="../gui/SettingsView.qml" line="720"/>
<source>Mutes Moonlight&apos;s audio when you Alt+Tab out of the stream or click on a different window.</source>
<translation>Muta l&apos;audio di Moonlight quando fai Alt+Tab per uscire dallo stream o fai click su una finestra differente.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="736"/>
<location filename="../gui/SettingsView.qml" line="729"/>
<source>UI Settings</source>
<translation>Impostazioni interfaccia</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="746"/>
<location filename="../gui/SettingsView.qml" line="739"/>
<source>Language</source>
<translation>Lingua</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="772"/>
<location filename="../gui/SettingsView.qml" line="765"/>
<source>Automatic</source>
<translation>Automatico</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="879"/>
<location filename="../gui/SettingsView.qml" line="864"/>
<source>You must restart Moonlight for this change to take effect</source>
<translation>Devi riavviare Moonlight perché questa modifica abbia effetto</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="896"/>
<location filename="../gui/SettingsView.qml" line="878"/>
<source>GUI display mode</source>
<translation>Modalità di visualizzazione interfaccia</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="933"/>
<location filename="../gui/SettingsView.qml" line="915"/>
<source>Maximized</source>
<translation>Massimizzato</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1006"/>
<location filename="../gui/SettingsView.qml" line="988"/>
<source>Input Settings</source>
<translation>Impostazioni di input</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1027"/>
<location filename="../gui/SettingsView.qml" line="1009"/>
<source>This enables seamless mouse control without capturing the client&apos;s mouse cursor. It is ideal for remote desktop usage but will not work in most games.</source>
<translation>Questo abilita il controllo continuo del mouse senza cattura del cursore. E&apos; ideale per l&apos;uso con remote desktop, ma non funzionerà nella maggior parte dei giochi.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1029"/>
<location filename="../gui/SettingsView.qml" line="1011"/>
<source>NOTE: Due to a bug in GeForce Experience, this option may not work properly if your host PC has multiple monitors.</source>
<translation>NOTA: A causa di un bug in GeForce Experience, questa opzione potrebbe non funzionare correttamente se il tuo computer sorgente ha più di un monitor.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1345"/>
<source>Enabling HDR overrides manual decoder selections.</source>
<translation>L&apos;abilitazione dell&apos;HDR sostituisce le selezioni manuali del decodificatore.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1414"/>
<location filename="../gui/SettingsView.qml" line="1378"/>
<source>Enabling HDR overrides manual codec selections.</source>
<translation>Abilitare l&apos;HDR sovrascrive la selezione manuale del codec.</translation>
<translation>Abilitare HDR sovrascrive la selezione manuale del codec.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1420"/>
<location filename="../gui/SettingsView.qml" line="1384"/>
<source>Enable HDR (Experimental)</source>
<translation>Abilita HDR (Sperimentale)</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1431"/>
<location filename="../gui/SettingsView.qml" line="1395"/>
<source>The stream will be HDR-capable, but some games may require an HDR monitor on your host PC to enable HDR mode.</source>
<translation>La trasmissione supporterà HDR, ma alcuni giochi potrebbero richiedere un monitor HDR sul PC sorgente per abilitare la modalità HDR.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1433"/>
<location filename="../gui/SettingsView.qml" line="1397"/>
<source>HDR streaming is not supported on this PC.</source>
<translation>Lo streaming HDR non è supportata su questo PC.</translation>
<translation>La trasmissione HDR non è supportata su questo PC.</translation>
</message>
<message>
<source>Capture system keyboard shortcuts while streaming in fullscreen</source>
@@ -785,193 +710,193 @@
<translation type="vanished">Dies ermöglicht die Erfassung von systemweiten Tastenkombinationen wie Alt+Tab, die normalerweise vom Client beim Streamen im Vollbildmodus ausgeführt werden würden.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1048"/>
<location filename="../gui/SettingsView.qml" line="1030"/>
<source>NOTE: Certain keyboard shortcuts like Ctrl+Alt+Del on Windows cannot be intercepted by any application, including Moonlight.</source>
<translation>NOTA: Alcune scorciatoie da tastiera come Ctrl+Alt+Canc su Windows non possono essere intercettate da nessuna applicazione, incluso Moonlight.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1111"/>
<location filename="../gui/SettingsView.qml" line="1093"/>
<source>Use touchscreen as a virtual trackpad</source>
<translation>Usa lo schermo touch come trackpad virtuale</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1128"/>
<location filename="../gui/SettingsView.qml" line="1110"/>
<source>Swap left and right mouse buttons</source>
<translation>Inverti i bottoni destro e sinistro del mouse</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1140"/>
<location filename="../gui/SettingsView.qml" line="1122"/>
<source>Reverse mouse scrolling direction</source>
<translation>Inverti la direzione dello scroll del mouse</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1154"/>
<location filename="../gui/SettingsView.qml" line="1136"/>
<source>Gamepad Settings</source>
<translation>Impostazioni controller</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1164"/>
<location filename="../gui/SettingsView.qml" line="1146"/>
<source>Swap A/B and X/Y gamepad buttons</source>
<translation>Inverti i bottoni A/B e X/Y del controller</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1182"/>
<location filename="../gui/SettingsView.qml" line="1164"/>
<source>This switches gamepads into a Nintendo-style button layout</source>
<translation>Questa opzione applicherà una configurazione dei bottoni al controller in stile Nintendo</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1188"/>
<location filename="../gui/SettingsView.qml" line="1170"/>
<source>Force gamepad #1 always connected</source>
<translation>Forza il controller #1 sempre connesso</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1198"/>
<location filename="../gui/SettingsView.qml" line="1180"/>
<source>Forces a single gamepad to always stay connected to the host, even if no gamepads are actually connected to this PC.</source>
<translation>Forza un singolo controller ad essere sempre connesso al PS sorgente, anche se non ci sono controller realmente connessi a questo PC.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1028"/>
<location filename="../gui/SettingsView.qml" line="1010"/>
<source>You can toggle this while streaming using Ctrl+Alt+Shift+M.</source>
<translation>Puoi attivare o disattivare questa opzione durante la trasmissione usando Ctrl+Alt+Shift+M.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1206"/>
<location filename="../gui/SettingsView.qml" line="1188"/>
<source>Enable mouse control with gamepads by holding the &apos;Start&apos; button</source>
<translation>Abilita il controllo del mouse con il controller tenendo premuto il bottone &apos;Start&apos;</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1217"/>
<location filename="../gui/SettingsView.qml" line="1199"/>
<source>Process gamepad input when Moonlight is in the background</source>
<translation>Processa l&apos;uso del controller quando Moonlight è in background</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1228"/>
<location filename="../gui/SettingsView.qml" line="1210"/>
<source>Allows Moonlight to capture gamepad inputs even if it&apos;s not the current window in focus</source>
<translation>Permette a Moonlight di intercettare gli input del controller anche se la finestra non è quella in primo piano</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1237"/>
<location filename="../gui/SettingsView.qml" line="1219"/>
<source>Host Settings</source>
<translation>Impostazioni del PC sorgente</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1277"/>
<location filename="../gui/SettingsView.qml" line="1259"/>
<source>Advanced Settings</source>
<translation>Impostazioni avanzate</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="653"/>
<location filename="../gui/SettingsView.qml" line="646"/>
<source>Audio configuration</source>
<translation>Configurazione audio</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="950"/>
<location filename="../gui/SettingsView.qml" line="932"/>
<source>Show connection quality warnings</source>
<translation>Mostra avvertimenti per la qualità della connessione</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="962"/>
<location filename="../gui/SettingsView.qml" line="944"/>
<source>Discord Rich Presence integration</source>
<translation>Integrazione con Discord Rich Presence</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="972"/>
<location filename="../gui/SettingsView.qml" line="954"/>
<source>Updates your Discord status to display the name of the game you&apos;re streaming.</source>
<translation>Aggiorna il tuo stato su Discord mostrando il nome del gioco che stai trasmettendo.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1199"/>
<location filename="../gui/SettingsView.qml" line="1181"/>
<source>Only enable this option when streaming a game that doesn&apos;t support gamepads being connected after startup.</source>
<translation>Abilita questa opzione solo quando trasmetti un gioco che non supporta la connessione di controller dopo l&apos;avvio.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1017"/>
<location filename="../gui/SettingsView.qml" line="999"/>
<source>Optimize mouse for remote desktop instead of games</source>
<translation>Ottimizza il mouse per il desktop remoto invece dei giochi</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="978"/>
<location filename="../gui/SettingsView.qml" line="960"/>
<source>Keep the display awake while streaming</source>
<translation>Mantieni lo schermo acceso durante la trasmissione</translation>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="988"/>
<location filename="../gui/SettingsView.qml" line="970"/>
<source>Prevents the screensaver from starting or the display from going to sleep while streaming.</source>
<translation>Evita che il salvaschermo si avii o che lo schermo si spenga durante la trasmissione.</translation>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1039"/>
<location filename="../gui/SettingsView.qml" line="1021"/>
<source>Capture system keyboard shortcuts</source>
<translation>Invia le scorciatoie da tastiera di sistema</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1047"/>
<location filename="../gui/SettingsView.qml" line="1029"/>
<source>This enables the capture of system-wide keyboard shortcuts like Alt+Tab that would normally be handled by the client OS while streaming.</source>
<translation>Questa opzione abilita l&apos;intercettazione di scorciatoie da tastiera di sistema come Alt+Tab che verrebbero normalmente gestite dal Sistema Operativo su cui ti trovi mentre trasmetti.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1077"/>
<location filename="../gui/SettingsView.qml" line="1059"/>
<source>in fullscreen</source>
<translation>a schermo intero</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1081"/>
<location filename="../gui/SettingsView.qml" line="1063"/>
<source>always</source>
<translation>sempre</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1121"/>
<location filename="../gui/SettingsView.qml" line="1103"/>
<source>When checked, the touchscreen acts like a trackpad. When unchecked, the touchscreen will directly control the mouse pointer.</source>
<translation>Quando selezionato, lo schermo touch funziona come un trackpad. Quando non selezionato, lo schermo touch controllerà direttamente il cursore del mouse.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1247"/>
<location filename="../gui/SettingsView.qml" line="1229"/>
<source>Optimize game settings for streaming</source>
<translation>Ottimizza le impostazioni del gioco per lo streaming</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1258"/>
<location filename="../gui/SettingsView.qml" line="1240"/>
<source>Quit app on host PC after ending stream</source>
<translation>Esci dall&apos;applicazione sul PC sorgente alla fine dello streaming</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1268"/>
<location filename="../gui/SettingsView.qml" line="1250"/>
<source>This will close the app or game you are streaming when you end your stream. You will lose any unsaved progress!</source>
<translation>Questo chiuderà l&apos;applicazione o il gioco che stai trasmettendo quando concluderai la trasmissione. Qualsiasi progresso non salvato verrà perso!</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1287"/>
<location filename="../gui/SettingsView.qml" line="1269"/>
<source>Video decoder</source>
<translation>Decoder video</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1313"/>
<location filename="../gui/SettingsView.qml" line="1382"/>
<location filename="../gui/SettingsView.qml" line="1294"/>
<location filename="../gui/SettingsView.qml" line="1346"/>
<source>Automatic (Recommended)</source>
<translation>Automatico (Consigliato)</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1317"/>
<location filename="../gui/SettingsView.qml" line="1298"/>
<source>Force software decoding</source>
<translation>Forza decodifica software</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1321"/>
<location filename="../gui/SettingsView.qml" line="1302"/>
<source>Force hardware decoding</source>
<translation>Forza decodifica hardware</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1351"/>
<location filename="../gui/SettingsView.qml" line="1315"/>
<source>Video codec</source>
<translation>Codec video</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1386"/>
<location filename="../gui/SettingsView.qml" line="1350"/>
<source>H.264</source>
<translation>H.264</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1390"/>
<location filename="../gui/SettingsView.qml" line="1354"/>
<source>HEVC (H.265)</source>
<translation>HEVC (H.265)</translation>
</message>
@@ -980,17 +905,17 @@
<translation type="vanished">HEVC HDR (Sperimentale)</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1439"/>
<location filename="../gui/SettingsView.qml" line="1403"/>
<source>Unlock unsupported FPS options</source>
<translation>Sblocca le opzioni per FPS non supportati</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1458"/>
<location filename="../gui/SettingsView.qml" line="1422"/>
<source>Automatically find PCs on the local network (Recommended)</source>
<translation>Trova automaticamente i PC sulla rete locale (Consigliato)</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1483"/>
<location filename="../gui/SettingsView.qml" line="1447"/>
<source>Automatically detect blocked connections (Recommended)</source>
<translation>Rileva automaticamente connessioni bloccate (Consigliato)</translation>
</message>
@@ -1000,7 +925,7 @@
<message>
<location filename="../gui/StreamSegue.qml" line="11"/>
<source>Resuming %1...</source>
<translation>Ripristino %1...</translation>
<translation>Rispristino %1...</translation>
</message>
<message>
<location filename="../gui/StreamSegue.qml" line="12"/>
@@ -1047,94 +972,99 @@
<context>
<name>main</name>
<message>
<location filename="../gui/main.qml" line="418"/>
<location filename="../gui/main.qml" line="254"/>
<location filename="../gui/main.qml" line="264"/>
<location filename="../gui/main.qml" line="393"/>
<location filename="../gui/main.qml" line="408"/>
<source>Settings</source>
<translation>Impostazioni</translation>
</message>
<message>
<location filename="../gui/main.qml" line="265"/>
<location filename="../gui/main.qml" line="255"/>
<source>Version %1</source>
<translation>Versione %1</translation>
</message>
<message>
<location filename="../gui/main.qml" line="281"/>
<location filename="../gui/main.qml" line="271"/>
<source>Join our community on Discord</source>
<translation>Unisciti alla nostra communità su Discord</translation>
</message>
<message>
<location filename="../gui/main.qml" line="283"/>
<source>Computers</source>
<translation type="vanished">Computer</translation>
<translation>Computer</translation>
</message>
<message>
<location filename="../gui/main.qml" line="300"/>
<location filename="../gui/main.qml" line="290"/>
<source>Add PC manually</source>
<translation>Aggiungi PC manualmente</translation>
</message>
<message>
<location filename="../gui/main.qml" line="340"/>
<location filename="../gui/main.qml" line="330"/>
<source>Update available for Moonlight: Version %1</source>
<translation>Aggiornamento disponibile per Moonlight: Versione %1</translation>
</message>
<message>
<location filename="../gui/main.qml" line="387"/>
<location filename="../gui/main.qml" line="377"/>
<source>Gamepad Mapper</source>
<translation>Configurazione Controller</translation>
</message>
<message>
<location filename="../gui/main.qml" line="381"/>
<source>Gamepad Mapping</source>
<translation type="vanished">Mappatura Controller</translation>
<translation>Mappatura Controller</translation>
</message>
<message>
<source>No functioning hardware accelerated H.264 video decoder was detected by Moonlight. Your streaming performance may be severely degraded in this configuration.</source>
<translation type="vanished">Moonlight hat keinen funktionierenden hardwarebeschleunigten H.264-Videodecoder erkannt. Deine Streaming-Performance kann in dieser Konfiguration stark beeinträchtigt sein.</translation>
</message>
<message>
<location filename="../gui/main.qml" line="433"/>
<location filename="../gui/main.qml" line="423"/>
<source>Hardware acceleration doesn&apos;t work on XWayland. Continuing on XWayland may result in poor streaming performance. Try running with QT_QPA_PLATFORM=wayland or switch to X11.</source>
<translation>L&apos;accelerazione hardware non funziona su XWayland. Continuando su XWayland potrebbe risultare in performance scadenti della trasmissione. Prova ad avviare con QT_QPA_PLATFORM=wayland o passa a X11.</translation>
</message>
<message>
<location filename="../gui/main.qml" line="442"/>
<location filename="../gui/main.qml" line="432"/>
<source>This version of Moonlight isn&apos;t optimized for your PC. Please download the &apos;%1&apos; version of Moonlight for the best streaming performance.</source>
<translation>Questa versione di Moonlight non è ottimizzata per il tuo PC. Per piacere scarica la versione &apos;%1&apos; di Moonlight per le migliori performance di trasmissione.</translation>
</message>
<message>
<location filename="../gui/main.qml" line="451"/>
<location filename="../gui/main.qml" line="441"/>
<source>Moonlight detected gamepads without a mapping:</source>
<translation>Moonlight ha trovato dei controller senza mappatura:</translation>
</message>
<message>
<location filename="../gui/main.qml" line="364"/>
<location filename="../gui/main.qml" line="354"/>
<source>Help</source>
<translation>Aiuto</translation>
</message>
<message>
<location filename="../gui/main.qml" line="425"/>
<location filename="../gui/main.qml" line="415"/>
<source>No functioning hardware accelerated video decoder was detected by Moonlight. Your streaming performance may be severely degraded in this configuration.</source>
<translation>Moonlight non ha trovato nessun decodificatore video accelerato via hardware. Le performance della trasmissione potrebbero essere seriamente diminuite in questa configurazione.</translation>
</message>
<message>
<location filename="../gui/main.qml" line="427"/>
<location filename="../gui/main.qml" line="417"/>
<source>Click the Help button for more information on solving this problem.</source>
<translation>Premi il bottone Aiuto per avere informazioni su come risolvere questo problema.</translation>
</message>
<message>
<location filename="../gui/main.qml" line="435"/>
<location filename="../gui/main.qml" line="425"/>
<source>Click the Help button for more information.</source>
<translation>Premi il bottone Aiuto per ulteriori informazioni.</translation>
</message>
<message>
<location filename="../gui/main.qml" line="453"/>
<location filename="../gui/main.qml" line="443"/>
<source>Click the Help button for information on how to map your gamepads.</source>
<translation>Premi il bottone Aiuto per informazioni su come effettuare la mappatura dei tuoi controller.</translation>
</message>
<message>
<location filename="../gui/main.qml" line="461"/>
<location filename="../gui/main.qml" line="451"/>
<source>Are you sure you want to quit?</source>
<translation>Sei sicuro di voler uscire?</translation>
</message>
<message>
<location filename="../gui/main.qml" line="491"/>
<location filename="../gui/main.qml" line="481"/>
<source>Enter the IP address of your GameStream PC:</source>
<translation>Inserisci l&apos;indirizzo IP del tuo PC GameStream:</translation>
</message>
Binary file not shown.
+142 -212
View File
@@ -51,24 +51,6 @@
<translation>本当に%1を終了しますか?未セーブの進行状況はすべて失われます。</translation>
</message>
</context>
<context>
<name>CliPair</name>
<message>
<location filename="../gui/CliPair.qml" line="9"/>
<source>Establishing connection to PC...</source>
<translation type="unfinished">PCとの接続を確立しています...</translation>
</message>
<message>
<location filename="../gui/CliPair.qml" line="13"/>
<source>Pairing... Please enter &apos;%1&apos; on %2.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/CliPair.qml" line="85"/>
<source>Pairing completed successfully</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>CliQuitStreamSegue</name>
<message>
@@ -181,51 +163,52 @@
<translation>%1のGeForce Experienceのバージョンは、このビルドのMoonlightではサポートされていません。%1からストリーミングするには、Moonlightをアップデートする必要があります。</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="247"/>
<source>You cannot pair while a previous session is still running on the host PC. Quit any running games or reboot the host PC, then try pairing again.</source>
<translation type="vanished">ホストPCで前回のセッションが実行している間はペアリングできません。実行中のゲームを終了するかホストPCを再起動した後に、再度ペアリングしてください。</translation>
<translation>ホストPCで前回のセッションが実行している間はペアリングできません。実行中のゲームを終了するかホストPCを再起動した後に、再度ペアリングしてください。</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="294"/>
<location filename="../gui/PcView.qml" line="302"/>
<source>Please enter %1 on your GameStream PC. This dialog will close when pairing is completed.</source>
<translation>GameStream PCで%1と入力してください。ペアリングが完了するとこのダイアログが閉じます。</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="305"/>
<location filename="../gui/PcView.qml" line="313"/>
<source>Are you sure you want to remove this PC?</source>
<translation>本当にこのPCを削除しますか?</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="322"/>
<location filename="../gui/PcView.qml" line="330"/>
<source>Moonlight is testing your network connection to determine if NVIDIA GameStream is blocked.</source>
<translation>Moonlightは、NVIDIA GameStreamがブロックされているかどうか判定するために、ネットワーク接続をテストしています。</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="322"/>
<location filename="../gui/PcView.qml" line="330"/>
<source>This may take a few seconds…</source>
<translation>これには数秒かかることがあります…</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="333"/>
<location filename="../gui/PcView.qml" line="341"/>
<source>This network does not appear to be blocking Moonlight. If you still have trouble connecting, check your PC&apos;s firewall settings.</source>
<translation>このネットワークはMoonlightをブロックしていないようです。それでも接続に問題がある場合は、PCのファイアウォール設定を確認してください。</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="333"/>
<location filename="../gui/PcView.qml" line="341"/>
<source>If you are trying to stream over the Internet, install the Moonlight Internet Hosting Tool on your gaming PC and run the included Internet Streaming Tester to check your gaming PC&apos;s Internet connection.</source>
<translation>インターネット経由でストリーミングを行う場合は、ゲーミングPCにMoonlight Internet Hosting Toolをインストールし、付属のInternet Streaming Testerを実行してゲーミングPCのインターネット接続を確認してください。</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="337"/>
<location filename="../gui/PcView.qml" line="345"/>
<source>Your PC&apos;s current network connection seems to be blocking Moonlight. Streaming over the Internet may not work while connected to this network.</source>
<translation>PCの現在のネットワーク接続がMoonlightをブロックしているようです。このネットワークに接続している間はインターネットでのストリーミングができない場合があります。</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="337"/>
<location filename="../gui/PcView.qml" line="345"/>
<source>The following network ports were blocked:</source>
<translation>次のネットワークポートがブロックされました:</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="329"/>
<location filename="../gui/PcView.qml" line="337"/>
<source>The network test could not be performed because none of Moonlight&apos;s connection testing servers were reachable from this PC. Check your Internet connection or try again later.</source>
<translation>このPCからMoonlightの接続テスト用サーバーにアクセスできなかったため、ネットワークテストを実行できませんでした。インターネット接続を確認するか、後ほど再試行してください。</translation>
</message>
@@ -255,43 +238,15 @@
<translation>すべてのアプリを表示</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="349"/>
<location filename="../gui/PcView.qml" line="357"/>
<source>Enter the new name for this PC:</source>
<translation>このPCの新しい名前を入力してください:</translation>
</message>
</context>
<context>
<name>PendingPairingTask</name>
<message>
<location filename="../backend/computermanager.cpp" line="535"/>
<source>The PIN from the PC didn&apos;t match. Please try again.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../backend/computermanager.cpp" line="539"/>
<source>You cannot pair while a previous session is still running on the host PC. Quit any running games or reboot the host PC, then try pairing again.</source>
<translation type="unfinished">ホストPCで前回のセッションが実行している間はペアリングできません。実行中のゲームを終了するかホストPCを再起動した後に、再度ペアリングしてください。</translation>
</message>
<message>
<location filename="../backend/computermanager.cpp" line="542"/>
<source>Pairing failed. Please try again.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../backend/computermanager.cpp" line="546"/>
<source>Another pairing attempt is already in progress.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../backend/computermanager.cpp" line="556"/>
<source>GeForce Experience returned error: %1</source>
<translation type="unfinished">GeForce Experienceがエラーを返しました: %1</translation>
</message>
</context>
<context>
<name>PendingQuitTask</name>
<message>
<location filename="../backend/computermanager.cpp" line="606"/>
<location filename="../backend/computermanager.cpp" line="540"/>
<source>The running game wasn&apos;t started by this PC. You must quit the game on the host PC manually or use the device that originally started the game.</source>
<translation>実行中のゲームはこのPCで開始されたものではありません。ホストPCでゲームを手動で終了するか、最初にゲームを開始したデバイスを使用する必要があります。</translation>
</message>
@@ -299,16 +254,6 @@
<context>
<name>QObject</name>
<message>
<location filename="../cli/pair.cpp" line="80"/>
<source>%1 is already paired</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>You cannot pair while a previous session is still running on the host PC. Quit any running games or reboot the host PC, then try pairing again.</source>
<translation type="obsolete">ホストPCで前回のセッションが実行している間はペアリングできません。実行中のゲームを終了するかホストPCを再起動した後に、再度ペアリングしてください。</translation>
</message>
<message>
<location filename="../cli/pair.cpp" line="109"/>
<location filename="../cli/quitstream.cpp" line="76"/>
<location filename="../cli/startstream.cpp" line="133"/>
<source>Failed to connect to %1</source>
@@ -331,11 +276,6 @@
<source>Failed to find application %1</source>
<translation>アプリケーション%1の検出に失敗</translation>
</message>
<message>
<location filename="../cli/listapps.cpp" line="99"/>
<source>Computer %1 has not been paired. Please open Moonlight to pair before retrieving games list.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>QuitSegue</name>
@@ -367,32 +307,22 @@
<translation>ネットワーク接続がうまくいっていません。ビデオビットレートの設定を下げるか、より高速な回線を使用してください。</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="103"/>
<location filename="../streaming/session.cpp" line="102"/>
<source>Something went wrong on your host PC when starting the stream.</source>
<translation>ストリーミングを開始する際に、ホストPCで何か問題が発生しました。</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="104"/>
<location filename="../streaming/session.cpp" line="103"/>
<source>Make sure you don&apos;t have any DRM-protected content open on your host PC. You can also try restarting your host PC.</source>
<translation>ホストPCでDRM保護コンテンツを開いていないことを確認してください。また、ホストPCの再起動もお試しください。</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="105"/>
<location filename="../streaming/session.cpp" line="104"/>
<source>If the issue persists, try reinstalling your GPU drivers and GeForce Experience.</source>
<translation>問題が解決しない場合は、GPUドライバーとGeForce Experienceを再インストールしてみてください。</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="110"/>
<source>The host PC reported a fatal video encoding error.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="111"/>
<source>Try disabling HDR mode, changing the streaming resolution, or changing your host PC&apos;s display resolution.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="116"/>
<location filename="../streaming/session.cpp" line="109"/>
<source>Connection terminated</source>
<translation>接続が終了しました</translation>
</message>
@@ -490,32 +420,32 @@
<translation>接続されたゲームパッドはマッピングされていないため、使用できません。この問題を解決するには、Moonlightのヘルプをご覧ください。</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="810"/>
<location filename="../streaming/session.cpp" line="805"/>
<source>Your host PC&apos;s GPU doesn&apos;t support streaming video resolutions over 4K.</source>
<translation>ホストPCのGPUは4Kを超えるビデオ解像度でのストリーミングに対応していません。</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="814"/>
<location filename="../streaming/session.cpp" line="809"/>
<source>Video resolutions over 4K are only supported by the HEVC codec.</source>
<translation>4Kを超えるビデオ解像度はHEVCコーデックでのみ対応しています。</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="828"/>
<location filename="../streaming/session.cpp" line="823"/>
<source>Your selection to force hardware decoding cannot be satisfied due to missing hardware decoding support on this PC&apos;s GPU.</source>
<translation>このPCのGPUはハードウェアデコードに対応していないため、ハードウェアデコードを強制するという選択を満たすことができません。</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="831"/>
<location filename="../streaming/session.cpp" line="826"/>
<source>Your codec selection and force hardware decoding setting are not compatible. This PC&apos;s GPU lacks support for decoding your chosen codec.</source>
<translation>選択したコーデックとハードウェアデコードを強制する設定には互換性がありません。このPCのGPUは、選択したコーデックのデコードに対応していません。</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="1176"/>
<location filename="../streaming/session.cpp" line="1159"/>
<source>GeForce Experience returned error: %1</source>
<translation>GeForce Experienceがエラーを返しました: %1</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="1697"/>
<location filename="../streaming/session.cpp" line="1691"/>
<source>Unable to initialize video decoder. Please check your streaming settings and try again.</source>
<translation>ビデオデコーダを初期化できませんでした。ストリーミングの設定を確認して再度お試しください。</translation>
</message>
@@ -528,60 +458,60 @@
<translation>設定</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="72"/>
<location filename="../gui/SettingsView.qml" line="70"/>
<source>Resolution and FPS</source>
<translation>解像度とFPS</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="80"/>
<location filename="../gui/SettingsView.qml" line="78"/>
<source>Setting values too high for your PC or network connection may cause lag, stuttering, or errors.</source>
<translation>PCやネットワーク接続に対して大きすぎる値を設定すると、ラグやスタッタリング、エラーの原因となる場合があります。</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="62"/>
<location filename="../gui/SettingsView.qml" line="60"/>
<source>Basic Settings</source>
<translation>基本設定</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="200"/>
<location filename="../gui/SettingsView.qml" line="209"/>
<source>720p</source>
<translation>720p</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="206"/>
<location filename="../gui/SettingsView.qml" line="215"/>
<source>1080p</source>
<translation>1080p</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="212"/>
<location filename="../gui/SettingsView.qml" line="221"/>
<source>1440p</source>
<translation>1440p</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="218"/>
<location filename="../gui/SettingsView.qml" line="227"/>
<source>4K</source>
<translation>4K</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="322"/>
<location filename="../gui/SettingsView.qml" line="331"/>
<source>Custom resolutions are not officially supported by GeForce Experience, so it will not set your host display resolution. You will need to set it manually while in game.</source>
<translation>カスタム解像度はGeForce Experienceで公式にサポートされていないため、ホストディスプレイの解像度は設定されません。ゲーム内で手動で設定する必要があります。</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="323"/>
<location filename="../gui/SettingsView.qml" line="332"/>
<source>Resolutions that are not supported by your client or host PC may cause streaming errors.</source>
<translation>クライアントやホストPCが対応していない解像度では、ストリーミングエラーが発生する可能性があります。</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="329"/>
<location filename="../gui/SettingsView.qml" line="338"/>
<source>Enter a custom resolution:</source>
<translation>カスタム解像度を入力:</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="397"/>
<location filename="../gui/SettingsView.qml" line="398"/>
<location filename="../gui/SettingsView.qml" line="418"/>
<location filename="../gui/SettingsView.qml" line="421"/>
<location filename="../gui/SettingsView.qml" line="406"/>
<location filename="../gui/SettingsView.qml" line="407"/>
<location filename="../gui/SettingsView.qml" line="427"/>
<location filename="../gui/SettingsView.qml" line="430"/>
<source>%1 FPS</source>
<translation>%1 FPS</translation>
</message>
@@ -590,189 +520,184 @@
<translation type="vanished">%1 FPS (nicht unterstützt)</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="485"/>
<location filename="../gui/SettingsView.qml" line="493"/>
<source>Video bitrate:</source>
<translation>映像ビットレート:</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="493"/>
<location filename="../gui/SettingsView.qml" line="501"/>
<source>Lower the bitrate on slower connections. Raise the bitrate to increase image quality.</source>
<translation>低速回線ではビットレートを下げてください。画質を上げるにはビットレートを上げてください。</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="511"/>
<location filename="../gui/SettingsView.qml" line="519"/>
<source>Video bitrate: %1 Mbps</source>
<translation>映像ビットレート: %1 Mbps</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="519"/>
<location filename="../gui/SettingsView.qml" line="527"/>
<source>Display mode</source>
<translation>表示モード</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="549"/>
<location filename="../gui/SettingsView.qml" line="545"/>
<source> (Recommended)</source>
<translatorcomment>Dont put the space in ransaltions</translatorcomment>
<translation> (推奨)</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="530"/>
<location filename="../gui/SettingsView.qml" line="937"/>
<location filename="../gui/SettingsView.qml" line="573"/>
<location filename="../gui/SettingsView.qml" line="919"/>
<source>Fullscreen</source>
<translation>全画面表示</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="599"/>
<location filename="../gui/SettingsView.qml" line="592"/>
<source>Fullscreen generally provides the best performance, but borderless windowed may work better with features like macOS Spaces, Alt+Tab, screenshot tools, on-screen overlays, etc.</source>
<translation>一般的には全画面表示が最も優れたパフォーマンスを発揮しますが、macOSの操作スペース、Alt+Tab、スクリーンショットツール、オンスクリーンオーバーレイなどの機能を使用する場合は、ボーダレスウィンドウがより効果的です。</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="535"/>
<location filename="../gui/SettingsView.qml" line="577"/>
<source>Borderless windowed</source>
<translation>ボーダレスウィンドウ</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="403"/>
<location filename="../gui/SettingsView.qml" line="406"/>
<location filename="../gui/SettingsView.qml" line="412"/>
<location filename="../gui/SettingsView.qml" line="415"/>
<location filename="../gui/SettingsView.qml" line="428"/>
<location filename="../gui/SettingsView.qml" line="431"/>
<location filename="../gui/SettingsView.qml" line="424"/>
<location filename="../gui/SettingsView.qml" line="437"/>
<location filename="../gui/SettingsView.qml" line="440"/>
<source>%1 FPS (Unsupported)</source>
<translation>%1 FPS (サポートされていません)</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="540"/>
<location filename="../gui/SettingsView.qml" line="929"/>
<location filename="../gui/SettingsView.qml" line="581"/>
<location filename="../gui/SettingsView.qml" line="911"/>
<source>Windowed</source>
<translation>ウィンドウ</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="606"/>
<location filename="../gui/SettingsView.qml" line="599"/>
<source>V-Sync</source>
<translation>垂直同期</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="616"/>
<location filename="../gui/SettingsView.qml" line="609"/>
<source>Disabling V-Sync allows sub-frame rendering latency, but it can display visible tearing</source>
<translation>垂直同期を無効にすると、サブフレームのレンダリング遅延が発生しますが、目に見えるティアリングが表示されることがあります</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="623"/>
<location filename="../gui/SettingsView.qml" line="616"/>
<source>Frame pacing</source>
<translation>フレームペーシング</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="633"/>
<location filename="../gui/SettingsView.qml" line="626"/>
<source>Frame pacing reduces micro-stutter by delaying frames that come in too early</source>
<translation>フレーム・ペーシングは、早すぎるフレームを遅らせることで、マイクロスタッターを軽減します</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="643"/>
<location filename="../gui/SettingsView.qml" line="636"/>
<source>Audio Settings</source>
<translation>音声設定</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="678"/>
<location filename="../gui/SettingsView.qml" line="671"/>
<source>Stereo</source>
<translation>ステレオ</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="682"/>
<location filename="../gui/SettingsView.qml" line="675"/>
<source>5.1 surround sound</source>
<translation>5.1サラウンドサウンド</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="686"/>
<location filename="../gui/SettingsView.qml" line="679"/>
<source>7.1 surround sound</source>
<translation>7.1サラウンドサウンド</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="700"/>
<location filename="../gui/SettingsView.qml" line="693"/>
<source>Mute host PC speakers while streaming</source>
<translation>ストリーミング中にホストPCのスピーカーをミュートする</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="710"/>
<location filename="../gui/SettingsView.qml" line="703"/>
<source>You must restart any game currently in progress for this setting to take effect</source>
<translation>この設定を有効にするには、現在進行中のゲームを再起動する必要があります</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="716"/>
<location filename="../gui/SettingsView.qml" line="709"/>
<source>Mute audio stream when Moonlight is not the active window</source>
<translation>Moonlightがアクティブなウィンドウでないときに音声ストリームをミュートする</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="727"/>
<location filename="../gui/SettingsView.qml" line="720"/>
<source>Mutes Moonlight&apos;s audio when you Alt+Tab out of the stream or click on a different window.</source>
<translation>ストリーミングからAlt+Tabで抜けたり、別のウィンドウをクリックしたりすると、Moonlightの音声をミュートします。</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="736"/>
<location filename="../gui/SettingsView.qml" line="729"/>
<source>UI Settings</source>
<translation>UI設定</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="746"/>
<location filename="../gui/SettingsView.qml" line="739"/>
<source>Language</source>
<translation>言語</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="772"/>
<location filename="../gui/SettingsView.qml" line="765"/>
<source>Automatic</source>
<translation>自動</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="879"/>
<location filename="../gui/SettingsView.qml" line="864"/>
<source>You must restart Moonlight for this change to take effect</source>
<translation>この変更を有効にするには、Moonlightを再起動する必要があります</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="896"/>
<location filename="../gui/SettingsView.qml" line="878"/>
<source>GUI display mode</source>
<translation>GUI表示モード</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="933"/>
<location filename="../gui/SettingsView.qml" line="915"/>
<source>Maximized</source>
<translation>最大化</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1006"/>
<location filename="../gui/SettingsView.qml" line="988"/>
<source>Input Settings</source>
<translation>入力設定</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1027"/>
<location filename="../gui/SettingsView.qml" line="1009"/>
<source>This enables seamless mouse control without capturing the client&apos;s mouse cursor. It is ideal for remote desktop usage but will not work in most games.</source>
<translation>これにより、クライアントのマウスカーソルをキャプチャすることなく、シームレスなマウスコントロールが可能になります。リモートデスクトップでの使用に最適ですが、ほとんどのゲームでは動作しません。</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1029"/>
<location filename="../gui/SettingsView.qml" line="1011"/>
<source>NOTE: Due to a bug in GeForce Experience, this option may not work properly if your host PC has multiple monitors.</source>
<translation>注: GeForce Experienceのバグにより、ホストPCにマルチモニターがある場合、このオプションは正しく動作しない可能性があります。</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1345"/>
<source>Enabling HDR overrides manual decoder selections.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1414"/>
<location filename="../gui/SettingsView.qml" line="1378"/>
<source>Enabling HDR overrides manual codec selections.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1420"/>
<location filename="../gui/SettingsView.qml" line="1384"/>
<source>Enable HDR (Experimental)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1431"/>
<location filename="../gui/SettingsView.qml" line="1395"/>
<source>The stream will be HDR-capable, but some games may require an HDR monitor on your host PC to enable HDR mode.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1433"/>
<location filename="../gui/SettingsView.qml" line="1397"/>
<source>HDR streaming is not supported on this PC.</source>
<translation type="unfinished"></translation>
</message>
@@ -785,208 +710,208 @@
<translation type="vanished">Dies ermöglicht die Erfassung von systemweiten Tastenkombinationen wie Alt+Tab, die normalerweise vom Client beim Streamen im Vollbildmodus ausgeführt werden würden.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1048"/>
<location filename="../gui/SettingsView.qml" line="1030"/>
<source>NOTE: Certain keyboard shortcuts like Ctrl+Alt+Del on Windows cannot be intercepted by any application, including Moonlight.</source>
<translation>注: WindowsのCtrl+Alt+Delのような特定のキーボードショートカットは、Moonlightを含むいかなるアプリケーションでも傍受することができません。</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1111"/>
<location filename="../gui/SettingsView.qml" line="1093"/>
<source>Use touchscreen as a virtual trackpad</source>
<translation>タッチスクリーンを仮想トラックパッドとして使用する</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1128"/>
<location filename="../gui/SettingsView.qml" line="1110"/>
<source>Swap left and right mouse buttons</source>
<translation>マウスの左右のボタンを入れ替える</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1140"/>
<location filename="../gui/SettingsView.qml" line="1122"/>
<source>Reverse mouse scrolling direction</source>
<translation>マウスのスクロール方向を逆にする</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1154"/>
<location filename="../gui/SettingsView.qml" line="1136"/>
<source>Gamepad Settings</source>
<translation>ゲームパッドの設定</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1164"/>
<location filename="../gui/SettingsView.qml" line="1146"/>
<source>Swap A/B and X/Y gamepad buttons</source>
<translation>ゲームパッドのA/BとX/Yボタンを入れ替える</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1182"/>
<location filename="../gui/SettingsView.qml" line="1164"/>
<source>This switches gamepads into a Nintendo-style button layout</source>
<translation>ゲームパッドを任天堂スタイルのボタン配置に変更します</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1188"/>
<location filename="../gui/SettingsView.qml" line="1170"/>
<source>Force gamepad #1 always connected</source>
<translation>ゲームパッド#1を常時接続するよう強制</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1198"/>
<location filename="../gui/SettingsView.qml" line="1180"/>
<source>Forces a single gamepad to always stay connected to the host, even if no gamepads are actually connected to this PC.</source>
<translation>実際にはゲームパッドがPCに接続されていなくても、1台のゲームパッドが常にホストに接続されているように強制します。</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1028"/>
<location filename="../gui/SettingsView.qml" line="1010"/>
<source>You can toggle this while streaming using Ctrl+Alt+Shift+M.</source>
<translation>ストリーミング中でもCtrl+Alt+Shift+Mで切り替えることができます。</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1206"/>
<location filename="../gui/SettingsView.qml" line="1188"/>
<source>Enable mouse control with gamepads by holding the &apos;Start&apos; button</source>
<translation>ゲームパッドで「スタート」ボタンを押しながらマウス操作ができるようにする</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1217"/>
<location filename="../gui/SettingsView.qml" line="1199"/>
<source>Process gamepad input when Moonlight is in the background</source>
<translation>Moonlightがバックグラウンドで動作しているときにゲームパッドの入力を処理する</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1228"/>
<location filename="../gui/SettingsView.qml" line="1210"/>
<source>Allows Moonlight to capture gamepad inputs even if it&apos;s not the current window in focus</source>
<translation>現在のウィンドウがフォーカスされていない場合でも、Moonlightがゲームパッドの入力をキャプチャできるようにします</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1237"/>
<location filename="../gui/SettingsView.qml" line="1219"/>
<source>Host Settings</source>
<translation>ホスト設定</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1277"/>
<location filename="../gui/SettingsView.qml" line="1259"/>
<source>Advanced Settings</source>
<translation>高度な設定</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="653"/>
<location filename="../gui/SettingsView.qml" line="646"/>
<source>Audio configuration</source>
<translation>オーディオ構成</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="950"/>
<location filename="../gui/SettingsView.qml" line="932"/>
<source>Show connection quality warnings</source>
<translation>接続品質に関する警告の表示</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="962"/>
<location filename="../gui/SettingsView.qml" line="944"/>
<source>Discord Rich Presence integration</source>
<translation>Discord Rich Presenceの統合</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="972"/>
<location filename="../gui/SettingsView.qml" line="954"/>
<source>Updates your Discord status to display the name of the game you&apos;re streaming.</source>
<translation>Discordのステータスを更新して、ストリーミングしているゲームの名前を表示します。</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1199"/>
<location filename="../gui/SettingsView.qml" line="1181"/>
<source>Only enable this option when streaming a game that doesn&apos;t support gamepads being connected after startup.</source>
<translation>起動後のゲームパッドの接続をサポートしていないゲームをストリーミングする場合のみ、このオプションを有効にしてください。</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1017"/>
<location filename="../gui/SettingsView.qml" line="999"/>
<source>Optimize mouse for remote desktop instead of games</source>
<translation>ゲームではなくリモートデスクトップにマウスを最適化</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="978"/>
<location filename="../gui/SettingsView.qml" line="960"/>
<source>Keep the display awake while streaming</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="988"/>
<location filename="../gui/SettingsView.qml" line="970"/>
<source>Prevents the screensaver from starting or the display from going to sleep while streaming.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1039"/>
<location filename="../gui/SettingsView.qml" line="1021"/>
<source>Capture system keyboard shortcuts</source>
<translation>システムのキーボードショートカットをキャプチャ</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1047"/>
<location filename="../gui/SettingsView.qml" line="1029"/>
<source>This enables the capture of system-wide keyboard shortcuts like Alt+Tab that would normally be handled by the client OS while streaming.</source>
<translation>これにより、通常はストリーミング中にクライアントOSが処理するAlt+Tabなどのシステム全体のキーボードショートカットをキャプチャすることができます。</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1077"/>
<location filename="../gui/SettingsView.qml" line="1059"/>
<source>in fullscreen</source>
<translation>フルスクリーン時</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1081"/>
<location filename="../gui/SettingsView.qml" line="1063"/>
<source>always</source>
<translation>常時</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1121"/>
<location filename="../gui/SettingsView.qml" line="1103"/>
<source>When checked, the touchscreen acts like a trackpad. When unchecked, the touchscreen will directly control the mouse pointer.</source>
<translation>チェックすると、タッチスクリーンはトラックパッドのように動作します。チェックを外すと、タッチスクリーンが直接マウスポインターを操作するようになります。</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1247"/>
<location filename="../gui/SettingsView.qml" line="1229"/>
<source>Optimize game settings for streaming</source>
<translation>ストリーミング用にゲーム設定を最適化</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1258"/>
<location filename="../gui/SettingsView.qml" line="1240"/>
<source>Quit app on host PC after ending stream</source>
<translation>ストリーミング終了後にホストPCのアプリを終了させる</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1268"/>
<location filename="../gui/SettingsView.qml" line="1250"/>
<source>This will close the app or game you are streaming when you end your stream. You will lose any unsaved progress!</source>
<translation>ストリーミングを終了すると、ストリーミング中のアプリやゲームが終了します。保存されていない進行状況は失われます!</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1287"/>
<location filename="../gui/SettingsView.qml" line="1269"/>
<source>Video decoder</source>
<translation>映像デコーダ</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1313"/>
<location filename="../gui/SettingsView.qml" line="1382"/>
<location filename="../gui/SettingsView.qml" line="1294"/>
<location filename="../gui/SettingsView.qml" line="1346"/>
<source>Automatic (Recommended)</source>
<translation>自動 (推奨)</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1317"/>
<location filename="../gui/SettingsView.qml" line="1298"/>
<source>Force software decoding</source>
<translation>ソフトウェアデコードを強制</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1321"/>
<location filename="../gui/SettingsView.qml" line="1302"/>
<source>Force hardware decoding</source>
<translation>ハードウェアデコードを強制</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1351"/>
<location filename="../gui/SettingsView.qml" line="1315"/>
<source>Video codec</source>
<translation>ビデオコーデック</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1386"/>
<location filename="../gui/SettingsView.qml" line="1350"/>
<source>H.264</source>
<translation>H.264</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1390"/>
<location filename="../gui/SettingsView.qml" line="1354"/>
<source>HEVC (H.265)</source>
<translation>HEVC (H.265)</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1439"/>
<location filename="../gui/SettingsView.qml" line="1403"/>
<source>Unlock unsupported FPS options</source>
<translation>サポートされていないFPSオプションをアンロック</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1458"/>
<location filename="../gui/SettingsView.qml" line="1422"/>
<source>Automatically find PCs on the local network (Recommended)</source>
<translation>ローカルネットワーク上のPCを自動的に検出 (推奨)</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1483"/>
<location filename="../gui/SettingsView.qml" line="1447"/>
<source>Automatically detect blocked connections (Recommended)</source>
<translation>ブロックされた接続を自動的に検出 (推奨)</translation>
</message>
@@ -1043,94 +968,99 @@
<context>
<name>main</name>
<message>
<location filename="../gui/main.qml" line="418"/>
<location filename="../gui/main.qml" line="254"/>
<location filename="../gui/main.qml" line="264"/>
<location filename="../gui/main.qml" line="393"/>
<location filename="../gui/main.qml" line="408"/>
<source>Settings</source>
<translation>設定</translation>
</message>
<message>
<location filename="../gui/main.qml" line="265"/>
<location filename="../gui/main.qml" line="255"/>
<source>Version %1</source>
<translation>バージョン %1</translation>
</message>
<message>
<location filename="../gui/main.qml" line="281"/>
<location filename="../gui/main.qml" line="271"/>
<source>Join our community on Discord</source>
<translation>Discordコミュニティに参加する</translation>
</message>
<message>
<location filename="../gui/main.qml" line="283"/>
<source>Computers</source>
<translation type="vanished">コンピュータ</translation>
<translation>コンピュータ</translation>
</message>
<message>
<location filename="../gui/main.qml" line="300"/>
<location filename="../gui/main.qml" line="290"/>
<source>Add PC manually</source>
<translation>手動でPCを追加</translation>
</message>
<message>
<location filename="../gui/main.qml" line="340"/>
<location filename="../gui/main.qml" line="330"/>
<source>Update available for Moonlight: Version %1</source>
<translation>Moonlightで利用可能なアップデート: バージョン %1</translation>
</message>
<message>
<location filename="../gui/main.qml" line="387"/>
<location filename="../gui/main.qml" line="377"/>
<source>Gamepad Mapper</source>
<translation>ゲームパッドマッパー</translation>
</message>
<message>
<location filename="../gui/main.qml" line="381"/>
<source>Gamepad Mapping</source>
<translation type="vanished">ゲームパッドのマッピング</translation>
<translation>ゲームパッドのマッピング</translation>
</message>
<message>
<source>No functioning hardware accelerated H.264 video decoder was detected by Moonlight. Your streaming performance may be severely degraded in this configuration.</source>
<translation type="vanished">ハードウェアアクセラレーションによるH.264ビデオデコーダーがMoonlightによって検出されませんでした。この構成では、ストリーミングのパフォーマンスが大幅に低下する可能性があります。</translation>
</message>
<message>
<location filename="../gui/main.qml" line="433"/>
<location filename="../gui/main.qml" line="423"/>
<source>Hardware acceleration doesn&apos;t work on XWayland. Continuing on XWayland may result in poor streaming performance. Try running with QT_QPA_PLATFORM=wayland or switch to X11.</source>
<translation>XWaylandではハードウェアアクセラレーションが動作しません。XWaylandで続行すると、ストリーミングのパフォーマンスが低下する可能性があります。QT_QPA_PLATFORM=waylandで実行するか、X11に切り替えてみてください。</translation>
</message>
<message>
<location filename="../gui/main.qml" line="442"/>
<location filename="../gui/main.qml" line="432"/>
<source>This version of Moonlight isn&apos;t optimized for your PC. Please download the &apos;%1&apos; version of Moonlight for the best streaming performance.</source>
<translation>このバージョンのMoonlightは、お使いのPCに最適化されていません。最高のストリーミングパフォーマンスを実現するには、Moonlightの&apos;%1&apos;バージョンをダウンロードしてください。</translation>
</message>
<message>
<location filename="../gui/main.qml" line="451"/>
<location filename="../gui/main.qml" line="441"/>
<source>Moonlight detected gamepads without a mapping:</source>
<translation>Moonlightはマッピングのないゲームパッドを検出しました:</translation>
</message>
<message>
<location filename="../gui/main.qml" line="364"/>
<location filename="../gui/main.qml" line="354"/>
<source>Help</source>
<translation>ヘルプ</translation>
</message>
<message>
<location filename="../gui/main.qml" line="425"/>
<location filename="../gui/main.qml" line="415"/>
<source>No functioning hardware accelerated video decoder was detected by Moonlight. Your streaming performance may be severely degraded in this configuration.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/main.qml" line="427"/>
<location filename="../gui/main.qml" line="417"/>
<source>Click the Help button for more information on solving this problem.</source>
<translation>この問題を解決するための詳細情報については、ヘルプボタンをクリックしてください。</translation>
</message>
<message>
<location filename="../gui/main.qml" line="435"/>
<location filename="../gui/main.qml" line="425"/>
<source>Click the Help button for more information.</source>
<translation>詳細については、ヘルプボタンをクリックしてください。</translation>
</message>
<message>
<location filename="../gui/main.qml" line="453"/>
<location filename="../gui/main.qml" line="443"/>
<source>Click the Help button for information on how to map your gamepads.</source>
<translation>ゲームパッドをマップする方法については、ヘルプボタンをクリックしてください。</translation>
</message>
<message>
<location filename="../gui/main.qml" line="461"/>
<location filename="../gui/main.qml" line="451"/>
<source>Are you sure you want to quit?</source>
<translation>本当に終了しますか?</translation>
</message>
<message>
<location filename="../gui/main.qml" line="491"/>
<location filename="../gui/main.qml" line="481"/>
<source>Enter the IP address of your GameStream PC:</source>
<translation>GameStream PCのIPアドレスを入力してください:</translation>
</message>
Binary file not shown.
+142 -212
View File
@@ -51,24 +51,6 @@
<translation>%1을(를) 종료하시겠습니까? 저장하지 않은 모든 진행 상황은 손실됩니다.</translation>
</message>
</context>
<context>
<name>CliPair</name>
<message>
<location filename="../gui/CliPair.qml" line="9"/>
<source>Establishing connection to PC...</source>
<translation>PC에 연결하는 중...</translation>
</message>
<message>
<location filename="../gui/CliPair.qml" line="13"/>
<source>Pairing... Please enter &apos;%1&apos; on %2.</source>
<translation>페어링 중... %2에 &apos;%1&apos;을(를) 입력하십시오.</translation>
</message>
<message>
<location filename="../gui/CliPair.qml" line="85"/>
<source>Pairing completed successfully</source>
<translation>페어링이 성공적으로 완료되었습니다</translation>
</message>
</context>
<context>
<name>CliQuitStreamSegue</name>
<message>
@@ -181,51 +163,52 @@
<translation>%1의 GeForce Experience 버전은 현재 빌드의 Moonlight에서 지원되지 않습니다. %1에서 스트리밍하려면 Moonlight를 업데이트 해야 합니다.</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="247"/>
<source>You cannot pair while a previous session is still running on the host PC. Quit any running games or reboot the host PC, then try pairing again.</source>
<translation type="vanished">이전 세션이 호스트 PC에서 실행 중인 동안에는 페어링 할 수 없습니다. 실행 중인 게임을 종료하거나 호스트 PC를 재부팅 한 다음 다시 페어링을 시도하십시오.</translation>
<translation>이전 세션이 호스트 PC에서 실행 중인 동안에는 페어링 할 수 없습니다. 실행 중인 게임을 종료하거나 호스트 PC를 재부팅 한 다음 다시 페어링을 시도하십시오.</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="294"/>
<location filename="../gui/PcView.qml" line="302"/>
<source>Please enter %1 on your GameStream PC. This dialog will close when pairing is completed.</source>
<translation>GameStream PC에 %1을(를) 입력하십시오. 페어링이 완료되면 이 대화 상자가 닫힙니다.</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="305"/>
<location filename="../gui/PcView.qml" line="313"/>
<source>Are you sure you want to remove this PC?</source>
<translation>이 PC를 제거 하시겠습니까?</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="322"/>
<location filename="../gui/PcView.qml" line="330"/>
<source>Moonlight is testing your network connection to determine if NVIDIA GameStream is blocked.</source>
<translation>NVIDIA GameStream이 차단되었는지 확인하기 위해 네트워크 연결을 검사하고 있습니다.</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="322"/>
<location filename="../gui/PcView.qml" line="330"/>
<source>This may take a few seconds…</source>
<translation>몇 초 정도 걸릴 수 있습니다…</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="333"/>
<location filename="../gui/PcView.qml" line="341"/>
<source>This network does not appear to be blocking Moonlight. If you still have trouble connecting, check your PC&apos;s firewall settings.</source>
<translation>이 네트워크는 Moonlight를 차단하지 않는 것 같습니다. 여전히 연결에 문제가 있으면 PC의 방화벽 설정을 확인하십시오.</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="333"/>
<location filename="../gui/PcView.qml" line="341"/>
<source>If you are trying to stream over the Internet, install the Moonlight Internet Hosting Tool on your gaming PC and run the included Internet Streaming Tester to check your gaming PC&apos;s Internet connection.</source>
<translation>인터넷을 통해 스트리밍하려는 경우 게임 PC에 Moonlight Internet Hosting Tool을 설치하고 포함된 Internet Streaming Tester를 실행하여 게임 PC의 인터넷 연결을 확인하십시오.</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="337"/>
<location filename="../gui/PcView.qml" line="345"/>
<source>Your PC&apos;s current network connection seems to be blocking Moonlight. Streaming over the Internet may not work while connected to this network.</source>
<translation>PC의 현재 네트워크 연결이 Moonlight를 차단하는 것 같습니다. 이 네트워크에 연결되어 있으면 인터넷을 통한 스트리밍이 작동하지 않을 수 있습니다.</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="337"/>
<location filename="../gui/PcView.qml" line="345"/>
<source>The following network ports were blocked:</source>
<translation>다음 네트워크 포트가 차단되었습니다:</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="329"/>
<location filename="../gui/PcView.qml" line="337"/>
<source>The network test could not be performed because none of Moonlight&apos;s connection testing servers were reachable from this PC. Check your Internet connection or try again later.</source>
<translation>이 PC에서 Moonlight의 연결 테스트 서버에 연결할 수 없기 때문에 네트워크 검사를 수행할 수 없습니다. 인터넷 연결을 확인하거나 나중에 다시 시도하십시오.</translation>
</message>
@@ -255,43 +238,15 @@
<translation>모든 앱 보기</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="349"/>
<location filename="../gui/PcView.qml" line="357"/>
<source>Enter the new name for this PC:</source>
<translation>이 PC의 새로운 이름 입력:</translation>
</message>
</context>
<context>
<name>PendingPairingTask</name>
<message>
<location filename="../backend/computermanager.cpp" line="535"/>
<source>The PIN from the PC didn&apos;t match. Please try again.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../backend/computermanager.cpp" line="539"/>
<source>You cannot pair while a previous session is still running on the host PC. Quit any running games or reboot the host PC, then try pairing again.</source>
<translation type="unfinished">이전 세션이 호스트 PC에서 실행 중인 동안에는 페어링 할 수 없습니다. 실행 중인 게임을 종료하거나 호스트 PC를 재부팅 한 다음 다시 페어링을 시도하십시오.</translation>
</message>
<message>
<location filename="../backend/computermanager.cpp" line="542"/>
<source>Pairing failed. Please try again.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../backend/computermanager.cpp" line="546"/>
<source>Another pairing attempt is already in progress.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../backend/computermanager.cpp" line="556"/>
<source>GeForce Experience returned error: %1</source>
<translation type="unfinished">GeForce Experience에서 오류를 반환했습니다: %1</translation>
</message>
</context>
<context>
<name>PendingQuitTask</name>
<message>
<location filename="../backend/computermanager.cpp" line="606"/>
<location filename="../backend/computermanager.cpp" line="540"/>
<source>The running game wasn&apos;t started by this PC. You must quit the game on the host PC manually or use the device that originally started the game.</source>
<translation>실행 중인 게임이 이 PC에서 시작되지 않았습니다. 호스트 PC에서 게임을 수동으로 종료하거나 원래 게임을 시작한 장치를 사용해야 합니다.</translation>
</message>
@@ -299,16 +254,6 @@
<context>
<name>QObject</name>
<message>
<location filename="../cli/pair.cpp" line="80"/>
<source>%1 is already paired</source>
<translation>%1은(는) 이미 페어링되었습니다</translation>
</message>
<message>
<source>You cannot pair while a previous session is still running on the host PC. Quit any running games or reboot the host PC, then try pairing again.</source>
<translation type="vanished">이전 세션이 호스트 PC에서 실행 중인 동안에는 페어링 할 수 없습니다. 실행 중인 게임을 종료하거나 호스트 PC를 재부팅 한 다음 다시 페어링을 시도하십시오.</translation>
</message>
<message>
<location filename="../cli/pair.cpp" line="109"/>
<location filename="../cli/quitstream.cpp" line="76"/>
<location filename="../cli/startstream.cpp" line="133"/>
<source>Failed to connect to %1</source>
@@ -331,11 +276,6 @@
<source>Failed to find application %1</source>
<translation>응용 프로그램 %1을(를) 찾지 못했습니다</translation>
</message>
<message>
<location filename="../cli/listapps.cpp" line="99"/>
<source>Computer %1 has not been paired. Please open Moonlight to pair before retrieving games list.</source>
<translation>컴퓨터 %1이(가) 페어링되지 않았습니다. 게임 목록을 검색하기 전에 Moonlight를 열어 페어링하십시오.</translation>
</message>
</context>
<context>
<name>QuitSegue</name>
@@ -367,32 +307,22 @@
<translation>네트워크 연결이 제대로 작동하지 않습니다. 영상 비트레이트 설정을 줄이거나 더 빠른 연결을 시도하십시오.</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="103"/>
<location filename="../streaming/session.cpp" line="102"/>
<source>Something went wrong on your host PC when starting the stream.</source>
<translation>스트리밍을 시작할 때 호스트 PC에서 문제가 발생했습니다.</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="104"/>
<location filename="../streaming/session.cpp" line="103"/>
<source>Make sure you don&apos;t have any DRM-protected content open on your host PC. You can also try restarting your host PC.</source>
<translation>호스트 PC에 DRM으로 보호된 콘텐츠가 열려 있지 않은지 확인하십시오. 또한 호스트 PC를 다시 시작하는 것을 시도해 볼 수 있습니다.</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="105"/>
<location filename="../streaming/session.cpp" line="104"/>
<source>If the issue persists, try reinstalling your GPU drivers and GeForce Experience.</source>
<translation>문제가 지속되면 GPU 드라이버와 GeForce Experience를 다시 설치해보십시오.</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="110"/>
<source>The host PC reported a fatal video encoding error.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="111"/>
<source>Try disabling HDR mode, changing the streaming resolution, or changing your host PC&apos;s display resolution.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="116"/>
<location filename="../streaming/session.cpp" line="109"/>
<source>Connection terminated</source>
<translation>연결이 종료되었습니다</translation>
</message>
@@ -490,32 +420,32 @@
<translation>연결된 게임 패드에 매핑이 없으며 사용할 수 없습니다. 이 문제를 해결하려면 Moonlight 도움말을 방문하십시오.</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="810"/>
<location filename="../streaming/session.cpp" line="805"/>
<source>Your host PC&apos;s GPU doesn&apos;t support streaming video resolutions over 4K.</source>
<translation>호스트 PC의 GPU가 4K 이상의 비디오 해상도의 스트리밍을 지원하지 않습니다.</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="814"/>
<location filename="../streaming/session.cpp" line="809"/>
<source>Video resolutions over 4K are only supported by the HEVC codec.</source>
<translation>4K 이상의 비디오 해상도는 HEVC 코덱에서만 지원됩니다.</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="828"/>
<location filename="../streaming/session.cpp" line="823"/>
<source>Your selection to force hardware decoding cannot be satisfied due to missing hardware decoding support on this PC&apos;s GPU.</source>
<translation>이 PC의 GPU가 하드웨어 디코딩을 지원하지 않아 하드웨어 디코딩을 강제하도록 선택하였으나 지원되지 않습니다.</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="831"/>
<location filename="../streaming/session.cpp" line="826"/>
<source>Your codec selection and force hardware decoding setting are not compatible. This PC&apos;s GPU lacks support for decoding your chosen codec.</source>
<translation>선택한 코덱과 하드웨어 디코딩을 강제하도록 선택한 설정이 호환되지 않습니다. 이 PC의 GPU는 선택한 코덱의 디코딩을 지원하지 않습니다.</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="1176"/>
<location filename="../streaming/session.cpp" line="1159"/>
<source>GeForce Experience returned error: %1</source>
<translation>GeForce Experience에서 오류를 반환했습니다: %1</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="1697"/>
<location filename="../streaming/session.cpp" line="1691"/>
<source>Unable to initialize video decoder. Please check your streaming settings and try again.</source>
<translation>비디오 디코더를 초기화 할 수 없습니다. 스트리밍 설정을 확인하고 다시 시도하십시오.</translation>
</message>
@@ -528,60 +458,60 @@
<translation>설정</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="72"/>
<location filename="../gui/SettingsView.qml" line="70"/>
<source>Resolution and FPS</source>
<translation>해상도 및 FPS</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="80"/>
<location filename="../gui/SettingsView.qml" line="78"/>
<source>Setting values too high for your PC or network connection may cause lag, stuttering, or errors.</source>
<translation>PC 또는 네트워크 연결보다 너무 높은 값을 설정하면 지연, 끊김 또는 오류가 발생할 수 있습니다.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="62"/>
<location filename="../gui/SettingsView.qml" line="60"/>
<source>Basic Settings</source>
<translation>기본 설정</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="200"/>
<location filename="../gui/SettingsView.qml" line="209"/>
<source>720p</source>
<translation>720p</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="206"/>
<location filename="../gui/SettingsView.qml" line="215"/>
<source>1080p</source>
<translation>1080p</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="212"/>
<location filename="../gui/SettingsView.qml" line="221"/>
<source>1440p</source>
<translation>1440p</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="218"/>
<location filename="../gui/SettingsView.qml" line="227"/>
<source>4K</source>
<translation>4K</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="322"/>
<location filename="../gui/SettingsView.qml" line="331"/>
<source>Custom resolutions are not officially supported by GeForce Experience, so it will not set your host display resolution. You will need to set it manually while in game.</source>
<translation>사용자 지정 해상도는 GeForce Experience에서 공식적으로 지원되지 않으므로 해당 설정은 호스트 디스플레이의 해상도를 설정하지 않습니다. 게임 중에 수동으로 설정해야합니다.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="323"/>
<location filename="../gui/SettingsView.qml" line="332"/>
<source>Resolutions that are not supported by your client or host PC may cause streaming errors.</source>
<translation>클라이언트 또는 호스트 PC에서 지원하지 않는 해상도로 인해 스트리밍 오류가 발생할 수 있습니다.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="329"/>
<location filename="../gui/SettingsView.qml" line="338"/>
<source>Enter a custom resolution:</source>
<translation>사용자 정의 해상도 입력:</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="397"/>
<location filename="../gui/SettingsView.qml" line="398"/>
<location filename="../gui/SettingsView.qml" line="418"/>
<location filename="../gui/SettingsView.qml" line="421"/>
<location filename="../gui/SettingsView.qml" line="406"/>
<location filename="../gui/SettingsView.qml" line="407"/>
<location filename="../gui/SettingsView.qml" line="427"/>
<location filename="../gui/SettingsView.qml" line="430"/>
<source>%1 FPS</source>
<translation>%1 FPS</translation>
</message>
@@ -590,189 +520,184 @@
<translation type="vanished">%1 FPS (nicht unterstützt)</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="485"/>
<location filename="../gui/SettingsView.qml" line="493"/>
<source>Video bitrate:</source>
<translation>영상 비트레이트:</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="493"/>
<location filename="../gui/SettingsView.qml" line="501"/>
<source>Lower the bitrate on slower connections. Raise the bitrate to increase image quality.</source>
<translation>느린 연결에서는 비트레이트를 낮추십시오. 이미지 품질을 높이려면 비트레이트를 높이십시오.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="511"/>
<location filename="../gui/SettingsView.qml" line="519"/>
<source>Video bitrate: %1 Mbps</source>
<translation>영상 비트레이트: %1 Mbps</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="519"/>
<location filename="../gui/SettingsView.qml" line="527"/>
<source>Display mode</source>
<translation>디스플레이 모드</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="549"/>
<location filename="../gui/SettingsView.qml" line="545"/>
<source> (Recommended)</source>
<translatorcomment>Dont put the space in ransaltions</translatorcomment>
<translation> (권장)</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="530"/>
<location filename="../gui/SettingsView.qml" line="937"/>
<location filename="../gui/SettingsView.qml" line="573"/>
<location filename="../gui/SettingsView.qml" line="919"/>
<source>Fullscreen</source>
<translation>전체 화면</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="599"/>
<location filename="../gui/SettingsView.qml" line="592"/>
<source>Fullscreen generally provides the best performance, but borderless windowed may work better with features like macOS Spaces, Alt+Tab, screenshot tools, on-screen overlays, etc.</source>
<translation>전체 화면은 일반적으로 최상의 성능을 제공하지만 테두리 없는 창은 macOS Spaces, Alt+Tab, 스크린샷 도구, 화면 오버레이 등과 같은 기능에서 더 잘 작동합니다.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="535"/>
<location filename="../gui/SettingsView.qml" line="577"/>
<source>Borderless windowed</source>
<translation>테두리 없는 창</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="403"/>
<location filename="../gui/SettingsView.qml" line="406"/>
<location filename="../gui/SettingsView.qml" line="412"/>
<location filename="../gui/SettingsView.qml" line="415"/>
<location filename="../gui/SettingsView.qml" line="428"/>
<location filename="../gui/SettingsView.qml" line="431"/>
<location filename="../gui/SettingsView.qml" line="424"/>
<location filename="../gui/SettingsView.qml" line="437"/>
<location filename="../gui/SettingsView.qml" line="440"/>
<source>%1 FPS (Unsupported)</source>
<translation>%1 FPS (지원되지 않음)</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="540"/>
<location filename="../gui/SettingsView.qml" line="929"/>
<location filename="../gui/SettingsView.qml" line="581"/>
<location filename="../gui/SettingsView.qml" line="911"/>
<source>Windowed</source>
<translation>창</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="606"/>
<location filename="../gui/SettingsView.qml" line="599"/>
<source>V-Sync</source>
<translation>수직동기화</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="616"/>
<location filename="../gui/SettingsView.qml" line="609"/>
<source>Disabling V-Sync allows sub-frame rendering latency, but it can display visible tearing</source>
<translation>수직동기화를 비활성화하면 서브프레임 렌더링 지연이 허용되지만 화면 찢김이 발생할 수 있습니다</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="623"/>
<location filename="../gui/SettingsView.qml" line="616"/>
<source>Frame pacing</source>
<translation>프레임 조율</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="633"/>
<location filename="../gui/SettingsView.qml" line="626"/>
<source>Frame pacing reduces micro-stutter by delaying frames that come in too early</source>
<translation>프레임 조율은 너무 일찍 들어오는 프레임을 지연시켜 미세한 끊김 현상을 줄입니다</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="643"/>
<location filename="../gui/SettingsView.qml" line="636"/>
<source>Audio Settings</source>
<translation>오디오 설정</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="678"/>
<location filename="../gui/SettingsView.qml" line="671"/>
<source>Stereo</source>
<translation>스테레오</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="682"/>
<location filename="../gui/SettingsView.qml" line="675"/>
<source>5.1 surround sound</source>
<translation>5.1 서라운드 사운드</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="686"/>
<location filename="../gui/SettingsView.qml" line="679"/>
<source>7.1 surround sound</source>
<translation>7.1 서라운드 사운드</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="700"/>
<location filename="../gui/SettingsView.qml" line="693"/>
<source>Mute host PC speakers while streaming</source>
<translation>스트리밍하는 동안 호스트 PC 스피커를 음소거</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="710"/>
<location filename="../gui/SettingsView.qml" line="703"/>
<source>You must restart any game currently in progress for this setting to take effect</source>
<translation>이 설정을 적용하려면 현재 진행중인 게임을 다시 시작해야합니다</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="716"/>
<location filename="../gui/SettingsView.qml" line="709"/>
<source>Mute audio stream when Moonlight is not the active window</source>
<translation>Moonlight가 활성 창이 아닌 경우 오디오 스트림을 음소거</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="727"/>
<location filename="../gui/SettingsView.qml" line="720"/>
<source>Mutes Moonlight&apos;s audio when you Alt+Tab out of the stream or click on a different window.</source>
<translation>스트림에서 Alt+Tab을 누르거나 다른 창을 클릭하면 Moonlight의 오디오를 음소거합니다.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="736"/>
<location filename="../gui/SettingsView.qml" line="729"/>
<source>UI Settings</source>
<translation>UI 설정</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="746"/>
<location filename="../gui/SettingsView.qml" line="739"/>
<source>Language</source>
<translation>언어</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="772"/>
<location filename="../gui/SettingsView.qml" line="765"/>
<source>Automatic</source>
<translation>자동</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="879"/>
<location filename="../gui/SettingsView.qml" line="864"/>
<source>You must restart Moonlight for this change to take effect</source>
<translation>이 변경 사항을 적용하려면 Moonlight를 다시 시작해야합니다</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="896"/>
<location filename="../gui/SettingsView.qml" line="878"/>
<source>GUI display mode</source>
<translation>GUI 디스플레이 모드</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="933"/>
<location filename="../gui/SettingsView.qml" line="915"/>
<source>Maximized</source>
<translation>최대화</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1006"/>
<location filename="../gui/SettingsView.qml" line="988"/>
<source>Input Settings</source>
<translation>입력 설정</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1027"/>
<location filename="../gui/SettingsView.qml" line="1009"/>
<source>This enables seamless mouse control without capturing the client&apos;s mouse cursor. It is ideal for remote desktop usage but will not work in most games.</source>
<translation>클라이언트의 마우스 커서 캡처없이 원활한 마우스 제어가 가능합니다. 원격 데스크톱 사용에 이상적이지만 대부분의 게임에서는 작동하지 않습니다.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1029"/>
<location filename="../gui/SettingsView.qml" line="1011"/>
<source>NOTE: Due to a bug in GeForce Experience, this option may not work properly if your host PC has multiple monitors.</source>
<translation>참고: GeForce Experience의 버그로 인해 호스트 PC에 다중 모니터가 있는 경우 이 옵션이 제대로 작동하지 않을 수 있습니다.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1345"/>
<source>Enabling HDR overrides manual decoder selections.</source>
<translation>HDR을 활성화하면 지정된 디코더 선택이 무시됩니다.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1414"/>
<location filename="../gui/SettingsView.qml" line="1378"/>
<source>Enabling HDR overrides manual codec selections.</source>
<translation>HDR을 활성화하면 지정된 코덱 선택이 무시됩니다.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1420"/>
<location filename="../gui/SettingsView.qml" line="1384"/>
<source>Enable HDR (Experimental)</source>
<translation>HDR 활성화 (실험적 기능)</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1431"/>
<location filename="../gui/SettingsView.qml" line="1395"/>
<source>The stream will be HDR-capable, but some games may require an HDR monitor on your host PC to enable HDR mode.</source>
<translation>이 스트림은 HDR을 지원하지만 일부 게임에서는 HDR 모드를 활성화하기 위해 호스트 PC에 HDR 모니터가 필요할 수 있습니다.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1433"/>
<location filename="../gui/SettingsView.qml" line="1397"/>
<source>HDR streaming is not supported on this PC.</source>
<translation>이 PC에서는 HDR 스트리밍이 지원되지 않습니다.</translation>
</message>
@@ -785,208 +710,208 @@
<translation type="vanished">Dies ermöglicht die Erfassung von systemweiten Tastenkombinationen wie Alt+Tab, die normalerweise vom Client beim Streamen im Vollbildmodus ausgeführt werden würden.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1048"/>
<location filename="../gui/SettingsView.qml" line="1030"/>
<source>NOTE: Certain keyboard shortcuts like Ctrl+Alt+Del on Windows cannot be intercepted by any application, including Moonlight.</source>
<translation>참고: Windows의 Ctrl+Alt+Del과 같은 특정 키보드 단축키는 Moonlight를 포함한 모든 응용 프로그램에서 가로챌 수 없습니다.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1111"/>
<location filename="../gui/SettingsView.qml" line="1093"/>
<source>Use touchscreen as a virtual trackpad</source>
<translation>터치스크린을 가상 트랙패드로 사용</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1128"/>
<location filename="../gui/SettingsView.qml" line="1110"/>
<source>Swap left and right mouse buttons</source>
<translation>왼쪽과 오른쪽 마우스 버튼 전환</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1140"/>
<location filename="../gui/SettingsView.qml" line="1122"/>
<source>Reverse mouse scrolling direction</source>
<translation>마우스 스크롤 방향 반전</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1154"/>
<location filename="../gui/SettingsView.qml" line="1136"/>
<source>Gamepad Settings</source>
<translation>게임패드 설정</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1164"/>
<location filename="../gui/SettingsView.qml" line="1146"/>
<source>Swap A/B and X/Y gamepad buttons</source>
<translation>게임패드 버튼 A/B와 X/Y 전환</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1182"/>
<location filename="../gui/SettingsView.qml" line="1164"/>
<source>This switches gamepads into a Nintendo-style button layout</source>
<translation>게임패드를 Nintendo 스타일의 레이아웃으로 전환합니다</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1188"/>
<location filename="../gui/SettingsView.qml" line="1170"/>
<source>Force gamepad #1 always connected</source>
<translation>게임패드 #1을 항상 연결</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1198"/>
<location filename="../gui/SettingsView.qml" line="1180"/>
<source>Forces a single gamepad to always stay connected to the host, even if no gamepads are actually connected to this PC.</source>
<translation>이 PC에 실제로 연결된 게임패드가 없는 경우에도 단일 게임패드가 항상 호스트에 연결되도록 합니다.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1028"/>
<location filename="../gui/SettingsView.qml" line="1010"/>
<source>You can toggle this while streaming using Ctrl+Alt+Shift+M.</source>
<translation>스트리밍 중에 Ctrl+Alt+Shift+M을 사용하여 전환 할 수 있습니다.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1206"/>
<location filename="../gui/SettingsView.qml" line="1188"/>
<source>Enable mouse control with gamepads by holding the &apos;Start&apos; button</source>
<translation>&apos;Start&apos; 버튼을 누르는 동안 게임패드로 마우스 제어를 활성화</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1217"/>
<location filename="../gui/SettingsView.qml" line="1199"/>
<source>Process gamepad input when Moonlight is in the background</source>
<translation>Moonlight가 백그라운드에 있을 때 게임패드 입력 처리</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1228"/>
<location filename="../gui/SettingsView.qml" line="1210"/>
<source>Allows Moonlight to capture gamepad inputs even if it&apos;s not the current window in focus</source>
<translation>Moonlight가 현재 초점이 맞춰진 창이 아닌 경우에도 게임패드 입력을 캡처할 수 있습니다</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1237"/>
<location filename="../gui/SettingsView.qml" line="1219"/>
<source>Host Settings</source>
<translation>호스트 설정</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1277"/>
<location filename="../gui/SettingsView.qml" line="1259"/>
<source>Advanced Settings</source>
<translation>고급 설정</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="653"/>
<location filename="../gui/SettingsView.qml" line="646"/>
<source>Audio configuration</source>
<translation>오디오 구성</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="950"/>
<location filename="../gui/SettingsView.qml" line="932"/>
<source>Show connection quality warnings</source>
<translation>연결 품질 경고 표시</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="962"/>
<location filename="../gui/SettingsView.qml" line="944"/>
<source>Discord Rich Presence integration</source>
<translation>Discord Rich Presence 통합</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="972"/>
<location filename="../gui/SettingsView.qml" line="954"/>
<source>Updates your Discord status to display the name of the game you&apos;re streaming.</source>
<translation>스트리밍중인 게임의 이름을 표시하도록 Discord 상태를 업데이트합니다.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1199"/>
<location filename="../gui/SettingsView.qml" line="1181"/>
<source>Only enable this option when streaming a game that doesn&apos;t support gamepads being connected after startup.</source>
<translation>시작 후 연결되는 게임패드를 지원하지 않는 게임을 스트리밍할 때만 이 옵션을 활성화하십시오.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1017"/>
<location filename="../gui/SettingsView.qml" line="999"/>
<source>Optimize mouse for remote desktop instead of games</source>
<translation>게임 대신 원격 데스크톱에 맞게 마우스 최적화</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="978"/>
<location filename="../gui/SettingsView.qml" line="960"/>
<source>Keep the display awake while streaming</source>
<translation>스트리밍 중 화면 켜짐 유지</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="988"/>
<location filename="../gui/SettingsView.qml" line="970"/>
<source>Prevents the screensaver from starting or the display from going to sleep while streaming.</source>
<translation>스트리밍 도중 화면 보호기의 시작 또는 디스플레이 잠자기를 방지합니다.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1039"/>
<location filename="../gui/SettingsView.qml" line="1021"/>
<source>Capture system keyboard shortcuts</source>
<translation>시스템 키보드 단축키 캡처</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1047"/>
<location filename="../gui/SettingsView.qml" line="1029"/>
<source>This enables the capture of system-wide keyboard shortcuts like Alt+Tab that would normally be handled by the client OS while streaming.</source>
<translation>일반적으로 클라이언트 OS에서 처리하는 Alt+Tab과 같은 시스템 전체 키보드 단축키를 캡처합니다.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1077"/>
<location filename="../gui/SettingsView.qml" line="1059"/>
<source>in fullscreen</source>
<translation>전체 화면에서</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1081"/>
<location filename="../gui/SettingsView.qml" line="1063"/>
<source>always</source>
<translation>항상</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1121"/>
<location filename="../gui/SettingsView.qml" line="1103"/>
<source>When checked, the touchscreen acts like a trackpad. When unchecked, the touchscreen will directly control the mouse pointer.</source>
<translation>선택하면 터치스크린이 트랙패드처럼 작동합니다. 선택하지 않으면 터치스크린이 마우스 포인터를 직접 제어합니다.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1247"/>
<location filename="../gui/SettingsView.qml" line="1229"/>
<source>Optimize game settings for streaming</source>
<translation>게임 설정을 스트리밍을 위해 최적화</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1258"/>
<location filename="../gui/SettingsView.qml" line="1240"/>
<source>Quit app on host PC after ending stream</source>
<translation>스트리밍 종료 후 호스트 PC에서 앱 종료</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1268"/>
<location filename="../gui/SettingsView.qml" line="1250"/>
<source>This will close the app or game you are streaming when you end your stream. You will lose any unsaved progress!</source>
<translation>스트리밍을 종료하면 스트리밍 중인 앱이나 게임이 종료됩니다. 저장하지 않은 진행 상황을 잃게됩니다!</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1287"/>
<location filename="../gui/SettingsView.qml" line="1269"/>
<source>Video decoder</source>
<translation>비디오 디코더</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1313"/>
<location filename="../gui/SettingsView.qml" line="1382"/>
<location filename="../gui/SettingsView.qml" line="1294"/>
<location filename="../gui/SettingsView.qml" line="1346"/>
<source>Automatic (Recommended)</source>
<translation>자동 (권장)</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1317"/>
<location filename="../gui/SettingsView.qml" line="1298"/>
<source>Force software decoding</source>
<translation>소프트웨어 디코딩 강제</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1321"/>
<location filename="../gui/SettingsView.qml" line="1302"/>
<source>Force hardware decoding</source>
<translation>하드웨어 디코딩 강제</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1351"/>
<location filename="../gui/SettingsView.qml" line="1315"/>
<source>Video codec</source>
<translation>비디오 코덱</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1386"/>
<location filename="../gui/SettingsView.qml" line="1350"/>
<source>H.264</source>
<translation>H.264</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1390"/>
<location filename="../gui/SettingsView.qml" line="1354"/>
<source>HEVC (H.265)</source>
<translation>HEVC (H.265)</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1439"/>
<location filename="../gui/SettingsView.qml" line="1403"/>
<source>Unlock unsupported FPS options</source>
<translation>지원되지 않는 FPS 옵션 잠금 해제</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1458"/>
<location filename="../gui/SettingsView.qml" line="1422"/>
<source>Automatically find PCs on the local network (Recommended)</source>
<translation>로컬 네트워크에서 자동으로 PC 찾기 (권장)</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1483"/>
<location filename="../gui/SettingsView.qml" line="1447"/>
<source>Automatically detect blocked connections (Recommended)</source>
<translation>차단된 연결 자동 감지 (권장)</translation>
</message>
@@ -1043,94 +968,99 @@
<context>
<name>main</name>
<message>
<location filename="../gui/main.qml" line="418"/>
<location filename="../gui/main.qml" line="254"/>
<location filename="../gui/main.qml" line="264"/>
<location filename="../gui/main.qml" line="393"/>
<location filename="../gui/main.qml" line="408"/>
<source>Settings</source>
<translation>설정</translation>
</message>
<message>
<location filename="../gui/main.qml" line="265"/>
<location filename="../gui/main.qml" line="255"/>
<source>Version %1</source>
<translation>버전 %1</translation>
</message>
<message>
<location filename="../gui/main.qml" line="281"/>
<location filename="../gui/main.qml" line="271"/>
<source>Join our community on Discord</source>
<translation>Discord에서 커뮤니티에 가입하세요</translation>
</message>
<message>
<location filename="../gui/main.qml" line="283"/>
<source>Computers</source>
<translation type="vanished">컴퓨터</translation>
<translation>컴퓨터</translation>
</message>
<message>
<location filename="../gui/main.qml" line="300"/>
<location filename="../gui/main.qml" line="290"/>
<source>Add PC manually</source>
<translation>수동으로 PC 추가</translation>
</message>
<message>
<location filename="../gui/main.qml" line="340"/>
<location filename="../gui/main.qml" line="330"/>
<source>Update available for Moonlight: Version %1</source>
<translation>Moonlight 업데이트 가능: 버전 %1</translation>
</message>
<message>
<location filename="../gui/main.qml" line="387"/>
<location filename="../gui/main.qml" line="377"/>
<source>Gamepad Mapper</source>
<translation>게임패드 매퍼</translation>
</message>
<message>
<location filename="../gui/main.qml" line="381"/>
<source>Gamepad Mapping</source>
<translation type="vanished">게임패드 매핑</translation>
<translation>게임패드 매핑</translation>
</message>
<message>
<source>No functioning hardware accelerated H.264 video decoder was detected by Moonlight. Your streaming performance may be severely degraded in this configuration.</source>
<translation type="vanished">사용 가능한 하드웨어 가속 H.264 비디오 디코더가 감지되지 않았습니다. 이 구성에서는 스트리밍 성능이 심각하게 저하될 수 있습니다.</translation>
</message>
<message>
<location filename="../gui/main.qml" line="433"/>
<location filename="../gui/main.qml" line="423"/>
<source>Hardware acceleration doesn&apos;t work on XWayland. Continuing on XWayland may result in poor streaming performance. Try running with QT_QPA_PLATFORM=wayland or switch to X11.</source>
<translation>하드웨어 가속은 XWayland에서 작동하지 않습니다. XWayland에서 계속 진행 시 스트리밍 성능이 저하 될 수 있습니다. QT_QPA_PLATFORM=wayland로 실행하거나 X11로 전환하십시오.</translation>
</message>
<message>
<location filename="../gui/main.qml" line="442"/>
<location filename="../gui/main.qml" line="432"/>
<source>This version of Moonlight isn&apos;t optimized for your PC. Please download the &apos;%1&apos; version of Moonlight for the best streaming performance.</source>
<translation>이 버전의 Moonlight는 해당 PC에 최적화되어 있지 않습니다. 최상의 스트리밍 성능을 위해 Moonlight &apos;%1&apos;버전을 다운로드하십시오.</translation>
</message>
<message>
<location filename="../gui/main.qml" line="451"/>
<location filename="../gui/main.qml" line="441"/>
<source>Moonlight detected gamepads without a mapping:</source>
<translation>Moonlight가 매핑없는 게임패드를 감지했습니다:</translation>
</message>
<message>
<location filename="../gui/main.qml" line="364"/>
<location filename="../gui/main.qml" line="354"/>
<source>Help</source>
<translation>도움말</translation>
</message>
<message>
<location filename="../gui/main.qml" line="425"/>
<location filename="../gui/main.qml" line="415"/>
<source>No functioning hardware accelerated video decoder was detected by Moonlight. Your streaming performance may be severely degraded in this configuration.</source>
<translation>Moonlight에서 작동하는 하드웨어 가속 비디오 디코더가 감지되지 않았습니다. 이 구성에서는 스트리밍 성능이 심각하게 저하될 수 있습니다.</translation>
</message>
<message>
<location filename="../gui/main.qml" line="427"/>
<location filename="../gui/main.qml" line="417"/>
<source>Click the Help button for more information on solving this problem.</source>
<translation>이 문제의 해결에 대한 자세한 내용을 보려면 도움말 단추를 클릭하십시오.</translation>
</message>
<message>
<location filename="../gui/main.qml" line="435"/>
<location filename="../gui/main.qml" line="425"/>
<source>Click the Help button for more information.</source>
<translation>자세한 내용은 도움말 버튼을 클릭하십시오.</translation>
</message>
<message>
<location filename="../gui/main.qml" line="453"/>
<location filename="../gui/main.qml" line="443"/>
<source>Click the Help button for information on how to map your gamepads.</source>
<translation>게임패드 매핑 방법에 대한 정보를 보려면 도움말 버튼을 클릭하십시오.</translation>
</message>
<message>
<location filename="../gui/main.qml" line="461"/>
<location filename="../gui/main.qml" line="451"/>
<source>Are you sure you want to quit?</source>
<translation>종료 하시겠습니까?</translation>
</message>
<message>
<location filename="../gui/main.qml" line="491"/>
<location filename="../gui/main.qml" line="481"/>
<source>Enter the IP address of your GameStream PC:</source>
<translation>GameStream PC의 IP 주소를 입력하십시오:</translation>
</message>
Binary file not shown.
+142 -212
View File
@@ -51,24 +51,6 @@
<translation>Er du sikker på at du vil avslutte %1? All ulagret fremdrift vil gå tapt.</translation>
</message>
</context>
<context>
<name>CliPair</name>
<message>
<location filename="../gui/CliPair.qml" line="9"/>
<source>Establishing connection to PC...</source>
<translation type="unfinished">Etablerer tilkobling til PC...</translation>
</message>
<message>
<location filename="../gui/CliPair.qml" line="13"/>
<source>Pairing... Please enter &apos;%1&apos; on %2.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/CliPair.qml" line="85"/>
<source>Pairing completed successfully</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>CliQuitStreamSegue</name>
<message>
@@ -181,51 +163,52 @@
<translation>Versjonen av GeForce Experience på %1 støttes ikke av denne byggversjonen av Moonlight. Du må oppdatere Moonlight for å strømme fra %1.</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="247"/>
<source>You cannot pair while a previous session is still running on the host PC. Quit any running games or reboot the host PC, then try pairing again.</source>
<translation type="vanished">Du kan ikke koble til maskinen mens en tidligere økt fremdeles kjører på din verts-PC. Avslutt alle kjørende spill eller ta omstart av verten, prøv deretter å koble til igjen.</translation>
<translation>Du kan ikke koble til maskinen mens en tidligere økt fremdeles kjører på din verts-PC. Avslutt alle kjørende spill eller ta omstart av verten, prøv deretter å koble til igjen.</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="294"/>
<location filename="../gui/PcView.qml" line="302"/>
<source>Please enter %1 on your GameStream PC. This dialog will close when pairing is completed.</source>
<translation>Skriv inn %1 på din GameStream-PC. Denne dialogen vil lukkes når tilkoblingen er fullført.</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="305"/>
<location filename="../gui/PcView.qml" line="313"/>
<source>Are you sure you want to remove this PC?</source>
<translation>Er du sikker på at du vil fjerne denne PC-en?</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="322"/>
<location filename="../gui/PcView.qml" line="330"/>
<source>Moonlight is testing your network connection to determine if NVIDIA GameStream is blocked.</source>
<translation>Moonlight tester nettverkstilkoblingen din for å se om NVIDIA GameStream er blokkert.</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="322"/>
<location filename="../gui/PcView.qml" line="330"/>
<source>This may take a few seconds…</source>
<translation>Dette kan ta noen sekunder…</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="333"/>
<location filename="../gui/PcView.qml" line="341"/>
<source>This network does not appear to be blocking Moonlight. If you still have trouble connecting, check your PC&apos;s firewall settings.</source>
<translation>Dette nettverket ser ikke ut til å blokkere Moonlight. Hvis du fremdeles har problemer med å koble til bør du sjekke PC-ens brannmursinnstillinger.</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="333"/>
<location filename="../gui/PcView.qml" line="341"/>
<source>If you are trying to stream over the Internet, install the Moonlight Internet Hosting Tool on your gaming PC and run the included Internet Streaming Tester to check your gaming PC&apos;s Internet connection.</source>
<translation>Hvis du prøver å strømme over Internett, installer &quot;Moonlight Internet Hosting Tool&quot; på verts-PCen din, og kjør det inkluderte programmet &quot;Internet Streaming Tester&quot; for å teste vertens Internett-tilkobling.</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="337"/>
<location filename="../gui/PcView.qml" line="345"/>
<source>Your PC&apos;s current network connection seems to be blocking Moonlight. Streaming over the Internet may not work while connected to this network.</source>
<translation>Det ser ut som nettverkstilkoblingen på PCen din blokkerer Moonlight. Strømming via Internett vil muligens ikke virke fra dette nettverket.</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="337"/>
<location filename="../gui/PcView.qml" line="345"/>
<source>The following network ports were blocked:</source>
<translation>Følgende nettverksporter var blokkert:</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="329"/>
<location filename="../gui/PcView.qml" line="337"/>
<source>The network test could not be performed because none of Moonlight&apos;s connection testing servers were reachable from this PC. Check your Internet connection or try again later.</source>
<translation type="unfinished">Nettverkstesten kunne ikke utføres fordi ingen av Moonlight sine tilkoblingstest-tjener kunne nås fra denne PC-en. Sjekk din tilknytning til Internett eller prøv igjen senere.</translation>
</message>
@@ -255,43 +238,15 @@
<translation>Vis alle programmer</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="349"/>
<location filename="../gui/PcView.qml" line="357"/>
<source>Enter the new name for this PC:</source>
<translation>Skriv inn nytt navn for denne PC-en:</translation>
</message>
</context>
<context>
<name>PendingPairingTask</name>
<message>
<location filename="../backend/computermanager.cpp" line="535"/>
<source>The PIN from the PC didn&apos;t match. Please try again.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../backend/computermanager.cpp" line="539"/>
<source>You cannot pair while a previous session is still running on the host PC. Quit any running games or reboot the host PC, then try pairing again.</source>
<translation type="unfinished">Du kan ikke koble til maskinen mens en tidligere økt fremdeles kjører på din verts-PC. Avslutt alle kjørende spill eller ta omstart av verten, prøv deretter å koble til igjen.</translation>
</message>
<message>
<location filename="../backend/computermanager.cpp" line="542"/>
<source>Pairing failed. Please try again.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../backend/computermanager.cpp" line="546"/>
<source>Another pairing attempt is already in progress.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../backend/computermanager.cpp" line="556"/>
<source>GeForce Experience returned error: %1</source>
<translation type="unfinished">GeForce Experience returnerte en feil: %1</translation>
</message>
</context>
<context>
<name>PendingQuitTask</name>
<message>
<location filename="../backend/computermanager.cpp" line="606"/>
<location filename="../backend/computermanager.cpp" line="540"/>
<source>The running game wasn&apos;t started by this PC. You must quit the game on the host PC manually or use the device that originally started the game.</source>
<translation>Kjørende spill ble ikke startet på denne PC-en. Du må avslutte spillet på verts-PC-en manuelt eller bruke enheten som opprinnelig startet spillet.</translation>
</message>
@@ -299,16 +254,6 @@
<context>
<name>QObject</name>
<message>
<location filename="../cli/pair.cpp" line="80"/>
<source>%1 is already paired</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>You cannot pair while a previous session is still running on the host PC. Quit any running games or reboot the host PC, then try pairing again.</source>
<translation type="obsolete">Du kan ikke koble til maskinen mens en tidligere økt fremdeles kjører på din verts-PC. Avslutt alle kjørende spill eller ta omstart av verten, prøv deretter å koble til igjen.</translation>
</message>
<message>
<location filename="../cli/pair.cpp" line="109"/>
<location filename="../cli/quitstream.cpp" line="76"/>
<location filename="../cli/startstream.cpp" line="133"/>
<source>Failed to connect to %1</source>
@@ -331,11 +276,6 @@
<source>Failed to find application %1</source>
<translation type="unfinished">Klarte ikke å finne programmet %1</translation>
</message>
<message>
<location filename="../cli/listapps.cpp" line="99"/>
<source>Computer %1 has not been paired. Please open Moonlight to pair before retrieving games list.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>QuitSegue</name>
@@ -367,32 +307,22 @@
<translation>Din nettverkstilknytning fungerer ikke så bra. Reduser videobitraten fra dens innstilling, eller prøv en raskere tilkobling.</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="103"/>
<location filename="../streaming/session.cpp" line="102"/>
<source>Something went wrong on your host PC when starting the stream.</source>
<translation>Noe gikk galt på din vetts-PC under oppstart av strømmen.</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="104"/>
<location filename="../streaming/session.cpp" line="103"/>
<source>Make sure you don&apos;t have any DRM-protected content open on your host PC. You can also try restarting your host PC.</source>
<translation>Forsikre deg om at du ikke har noe DRM-beskyttet innhold åpent på din verts-PC. Du kan også prøve å starte verts-PC-en på ny.</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="105"/>
<location filename="../streaming/session.cpp" line="104"/>
<source>If the issue persists, try reinstalling your GPU drivers and GeForce Experience.</source>
<translation>Hvis problemet vedvarer kan du prøve å reinstallere dine GPU-drivere og GeForce Experience.</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="110"/>
<source>The host PC reported a fatal video encoding error.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="111"/>
<source>Try disabling HDR mode, changing the streaming resolution, or changing your host PC&apos;s display resolution.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="116"/>
<location filename="../streaming/session.cpp" line="109"/>
<source>Connection terminated</source>
<translation>Tilkobling avsluttet</translation>
</message>
@@ -490,32 +420,32 @@
<translation>En tilknyttet spillkontroller har ingen tastetilknytninger, og vil ikke kunne brukes. Besøk Moonlight-hjelpen for å løse dette.</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="810"/>
<location filename="../streaming/session.cpp" line="805"/>
<source>Your host PC&apos;s GPU doesn&apos;t support streaming video resolutions over 4K.</source>
<translation type="unfinished">Skjermkortet i din verts-PC støtter ikke strømming av videooppløsninger over 4k.</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="814"/>
<location filename="../streaming/session.cpp" line="809"/>
<source>Video resolutions over 4K are only supported by the HEVC codec.</source>
<translation>Videooppløsninger over 4k støttes kun av HEVC-kodeket.</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="828"/>
<location filename="../streaming/session.cpp" line="823"/>
<source>Your selection to force hardware decoding cannot be satisfied due to missing hardware decoding support on this PC&apos;s GPU.</source>
<translation type="unfinished">At du har satt på tvungen maskinvaredekoding har ingen innvirkning siden det ikke er støtte for det på denne PC-ens skjermkort.</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="831"/>
<location filename="../streaming/session.cpp" line="826"/>
<source>Your codec selection and force hardware decoding setting are not compatible. This PC&apos;s GPU lacks support for decoding your chosen codec.</source>
<translation type="unfinished">At du har valgt tungen maskinvaredekoding fungerer ikke sammen med kodekvalget. Denne PC-ens skjermkort mangler støtte for dekoding i valgt kodek.</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="1176"/>
<location filename="../streaming/session.cpp" line="1159"/>
<source>GeForce Experience returned error: %1</source>
<translation>GeForce Experience returnerte en feil: %1</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="1697"/>
<location filename="../streaming/session.cpp" line="1691"/>
<source>Unable to initialize video decoder. Please check your streaming settings and try again.</source>
<translation type="unfinished">Kunne ikke starte videodekoder. Sjekk strømmingsinnstillingene dine og prøv igjen.</translation>
</message>
@@ -528,60 +458,60 @@
<translation>Innstillinger</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="72"/>
<location filename="../gui/SettingsView.qml" line="70"/>
<source>Resolution and FPS</source>
<translation>Oppløsning og BPS</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="80"/>
<location filename="../gui/SettingsView.qml" line="78"/>
<source>Setting values too high for your PC or network connection may cause lag, stuttering, or errors.</source>
<translation>Å sette verdier som er for høye for PC-en eller nettverket kan forårsake forsinkelse, hakking, eller feil.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="62"/>
<location filename="../gui/SettingsView.qml" line="60"/>
<source>Basic Settings</source>
<translation>Grunnleggende innstillinger</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="200"/>
<location filename="../gui/SettingsView.qml" line="209"/>
<source>720p</source>
<translation>720p</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="206"/>
<location filename="../gui/SettingsView.qml" line="215"/>
<source>1080p</source>
<translation>1080p</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="212"/>
<location filename="../gui/SettingsView.qml" line="221"/>
<source>1440p</source>
<translation>1440p</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="218"/>
<location filename="../gui/SettingsView.qml" line="227"/>
<source>4K</source>
<translation type="unfinished">4k</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="322"/>
<location filename="../gui/SettingsView.qml" line="331"/>
<source>Custom resolutions are not officially supported by GeForce Experience, so it will not set your host display resolution. You will need to set it manually while in game.</source>
<translation type="unfinished">Brukerdefinerte oppløsninger støttes ikke offisielt av GeForce Experience, så det vil ikke sette din vertsskjermoppløsning. Du vil måtte sette den manuelt mens du er inne i et spill.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="323"/>
<location filename="../gui/SettingsView.qml" line="332"/>
<source>Resolutions that are not supported by your client or host PC may cause streaming errors.</source>
<translation type="unfinished">Oppløsninger som ikke er støttet av din klient eller verts-PC kan forårsake strømmingsfeil.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="329"/>
<location filename="../gui/SettingsView.qml" line="338"/>
<source>Enter a custom resolution:</source>
<translation>Skriv inn egendefinert oppløsning:</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="397"/>
<location filename="../gui/SettingsView.qml" line="398"/>
<location filename="../gui/SettingsView.qml" line="418"/>
<location filename="../gui/SettingsView.qml" line="421"/>
<location filename="../gui/SettingsView.qml" line="406"/>
<location filename="../gui/SettingsView.qml" line="407"/>
<location filename="../gui/SettingsView.qml" line="427"/>
<location filename="../gui/SettingsView.qml" line="430"/>
<source>%1 FPS</source>
<translation>%1 BPS</translation>
</message>
@@ -590,189 +520,184 @@
<translation type="vanished">%1 FPS (nicht unterstützt)</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="485"/>
<location filename="../gui/SettingsView.qml" line="493"/>
<source>Video bitrate:</source>
<translation>Videobitrate:</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="493"/>
<location filename="../gui/SettingsView.qml" line="501"/>
<source>Lower the bitrate on slower connections. Raise the bitrate to increase image quality.</source>
<translation type="unfinished">Senk bitraten på tregere tilkoblinger. Øk bitraten for bedre bildekvalitet.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="511"/>
<location filename="../gui/SettingsView.qml" line="519"/>
<source>Video bitrate: %1 Mbps</source>
<translation>Videobitrate: %1 Mbps</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="519"/>
<location filename="../gui/SettingsView.qml" line="527"/>
<source>Display mode</source>
<translation>Visningsmodus</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="549"/>
<location filename="../gui/SettingsView.qml" line="545"/>
<source> (Recommended)</source>
<translatorcomment>Dont put the space in ransaltions</translatorcomment>
<translation> (anbefalt)</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="530"/>
<location filename="../gui/SettingsView.qml" line="937"/>
<location filename="../gui/SettingsView.qml" line="573"/>
<location filename="../gui/SettingsView.qml" line="919"/>
<source>Fullscreen</source>
<translation>Fullskjermsvisning</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="599"/>
<location filename="../gui/SettingsView.qml" line="592"/>
<source>Fullscreen generally provides the best performance, but borderless windowed may work better with features like macOS Spaces, Alt+Tab, screenshot tools, on-screen overlays, etc.</source>
<translation type="unfinished">Fullskjermsvisning gir vanligvis best ytelse, men vinduskantløst vindusmodus kan fungere med funksjoner som macOS-«Spaces», Alt+Tab, bildeskjermsverktøy, overleggslag på skjermen, osv.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="535"/>
<location filename="../gui/SettingsView.qml" line="577"/>
<source>Borderless windowed</source>
<translation>Skjermkantløst vindusmodus</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="403"/>
<location filename="../gui/SettingsView.qml" line="406"/>
<location filename="../gui/SettingsView.qml" line="412"/>
<location filename="../gui/SettingsView.qml" line="415"/>
<location filename="../gui/SettingsView.qml" line="428"/>
<location filename="../gui/SettingsView.qml" line="431"/>
<location filename="../gui/SettingsView.qml" line="424"/>
<location filename="../gui/SettingsView.qml" line="437"/>
<location filename="../gui/SettingsView.qml" line="440"/>
<source>%1 FPS (Unsupported)</source>
<translation>%1 BPS (ustøttet)</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="540"/>
<location filename="../gui/SettingsView.qml" line="929"/>
<location filename="../gui/SettingsView.qml" line="581"/>
<location filename="../gui/SettingsView.qml" line="911"/>
<source>Windowed</source>
<translation>Vindusmodus</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="606"/>
<location filename="../gui/SettingsView.qml" line="599"/>
<source>V-Sync</source>
<translation type="unfinished">VSync</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="616"/>
<location filename="../gui/SettingsView.qml" line="609"/>
<source>Disabling V-Sync allows sub-frame rendering latency, but it can display visible tearing</source>
<translation type="unfinished">Å skru av VSync tillater underramme-opptegningslatens, men det kan vise synlig revning</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="623"/>
<location filename="../gui/SettingsView.qml" line="616"/>
<source>Frame pacing</source>
<translation type="unfinished">Bilderammetaktslåsing</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="633"/>
<location filename="../gui/SettingsView.qml" line="626"/>
<source>Frame pacing reduces micro-stutter by delaying frames that come in too early</source>
<translation type="unfinished">Reduserer mikrohakking ved å forsinke bilderammer som kommer inn for tidlig</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="643"/>
<location filename="../gui/SettingsView.qml" line="636"/>
<source>Audio Settings</source>
<translation>Lydinnstillinger</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="678"/>
<location filename="../gui/SettingsView.qml" line="671"/>
<source>Stereo</source>
<translation>Stereo</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="682"/>
<location filename="../gui/SettingsView.qml" line="675"/>
<source>5.1 surround sound</source>
<translation>5,1-kringlyd</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="686"/>
<location filename="../gui/SettingsView.qml" line="679"/>
<source>7.1 surround sound</source>
<translation>7,1-kringlyd</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="700"/>
<location filename="../gui/SettingsView.qml" line="693"/>
<source>Mute host PC speakers while streaming</source>
<translation>Forstum verts-PC-ens høyttalere under strømming</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="710"/>
<location filename="../gui/SettingsView.qml" line="703"/>
<source>You must restart any game currently in progress for this setting to take effect</source>
<translation type="unfinished">Du må starte spill som kjøres på ny for at denne innstillingen skal tre i effekt</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="716"/>
<location filename="../gui/SettingsView.qml" line="709"/>
<source>Mute audio stream when Moonlight is not the active window</source>
<translation>Forstum lydstrøm når Moonlight ikke er det aktive vinduet</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="727"/>
<location filename="../gui/SettingsView.qml" line="720"/>
<source>Mutes Moonlight&apos;s audio when you Alt+Tab out of the stream or click on a different window.</source>
<translation>Demper all lyd i Moonlight når du trykker Alt+Tab for å komme deg ut av strømmen eller klikker et annet vindu.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="736"/>
<location filename="../gui/SettingsView.qml" line="729"/>
<source>UI Settings</source>
<translation>Grensesnittsinnstillinger</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="746"/>
<location filename="../gui/SettingsView.qml" line="739"/>
<source>Language</source>
<translation>Språk</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="772"/>
<location filename="../gui/SettingsView.qml" line="765"/>
<source>Automatic</source>
<translation>Automatisk</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="879"/>
<location filename="../gui/SettingsView.qml" line="864"/>
<source>You must restart Moonlight for this change to take effect</source>
<translation>Du må starte Moonlight på ny for at denne endringen skal tre i effekt</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="896"/>
<location filename="../gui/SettingsView.qml" line="878"/>
<source>GUI display mode</source>
<translation>Visningsmodus for brukergrensesnitt</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="933"/>
<location filename="../gui/SettingsView.qml" line="915"/>
<source>Maximized</source>
<translation>Maksimert</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1006"/>
<location filename="../gui/SettingsView.qml" line="988"/>
<source>Input Settings</source>
<translation type="unfinished">Inndata-innstillinger</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1027"/>
<location filename="../gui/SettingsView.qml" line="1009"/>
<source>This enables seamless mouse control without capturing the client&apos;s mouse cursor. It is ideal for remote desktop usage but will not work in most games.</source>
<translation type="unfinished">Skrur på sømløs musekontroll uten å fange klientens musepeker. Dette er ideelt for fjernskrivebordsbruk, men fungerer ikke i de fleste spill.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1029"/>
<location filename="../gui/SettingsView.qml" line="1011"/>
<source>NOTE: Due to a bug in GeForce Experience, this option may not work properly if your host PC has multiple monitors.</source>
<translation type="unfinished">Merk: Som følge av en feil i GeForce Experience, vil dette alternativet muligens ikke fungere riktig hvis din verts-PC har flere skjermer.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1345"/>
<source>Enabling HDR overrides manual decoder selections.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1414"/>
<location filename="../gui/SettingsView.qml" line="1378"/>
<source>Enabling HDR overrides manual codec selections.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1420"/>
<location filename="../gui/SettingsView.qml" line="1384"/>
<source>Enable HDR (Experimental)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1431"/>
<location filename="../gui/SettingsView.qml" line="1395"/>
<source>The stream will be HDR-capable, but some games may require an HDR monitor on your host PC to enable HDR mode.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1433"/>
<location filename="../gui/SettingsView.qml" line="1397"/>
<source>HDR streaming is not supported on this PC.</source>
<translation type="unfinished"></translation>
</message>
@@ -785,193 +710,193 @@
<translation type="vanished">Dies ermöglicht die Erfassung von systemweiten Tastenkombinationen wie Alt+Tab, die normalerweise vom Client beim Streamen im Vollbildmodus ausgeführt werden würden.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1048"/>
<location filename="../gui/SettingsView.qml" line="1030"/>
<source>NOTE: Certain keyboard shortcuts like Ctrl+Alt+Del on Windows cannot be intercepted by any application, including Moonlight.</source>
<translation type="unfinished">Merk: Gitte tastatursnarveier, som Ctrl+Alt+Del på Windows kan ikke fanges av noe program, inkludert Moonlight.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1111"/>
<location filename="../gui/SettingsView.qml" line="1093"/>
<source>Use touchscreen as a virtual trackpad</source>
<translation>Bruk pekeskjerm som virtuell pekeflate</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1128"/>
<location filename="../gui/SettingsView.qml" line="1110"/>
<source>Swap left and right mouse buttons</source>
<translation>Bytt venstre og høyre musetaster</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1140"/>
<location filename="../gui/SettingsView.qml" line="1122"/>
<source>Reverse mouse scrolling direction</source>
<translation>Omvendt muserullingsretning</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1154"/>
<location filename="../gui/SettingsView.qml" line="1136"/>
<source>Gamepad Settings</source>
<translation>Spillkontrolller-innstillinger</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1164"/>
<location filename="../gui/SettingsView.qml" line="1146"/>
<source>Swap A/B and X/Y gamepad buttons</source>
<translation>Veksle A/B- og X/Y-spillkontrollerknapper</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1182"/>
<location filename="../gui/SettingsView.qml" line="1164"/>
<source>This switches gamepads into a Nintendo-style button layout</source>
<translation>Dette bytter spillkontrollere til knappeoppsett i Nintendo-stil</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1188"/>
<location filename="../gui/SettingsView.qml" line="1170"/>
<source>Force gamepad #1 always connected</source>
<translation type="unfinished">Krev at spillkontroller nr. 1 alltid er tilkoblet</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1198"/>
<location filename="../gui/SettingsView.qml" line="1180"/>
<source>Forces a single gamepad to always stay connected to the host, even if no gamepads are actually connected to this PC.</source>
<translation type="unfinished">Krever at én spillkontroller alltid er tilkoblet verten, selv om ingen spillkontrollere faktisk er tilkoblet til denne PC-en.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1028"/>
<location filename="../gui/SettingsView.qml" line="1010"/>
<source>You can toggle this while streaming using Ctrl+Alt+Shift+M.</source>
<translation>Du kan veksle dette under strømming ved bruk av Ctrl+Alt+Shift+M.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1206"/>
<location filename="../gui/SettingsView.qml" line="1188"/>
<source>Enable mouse control with gamepads by holding the &apos;Start&apos; button</source>
<translation type="unfinished">Skrur på musekontroll ved bruk av spillkontrollere ved å holde «Start»-knappen</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1217"/>
<location filename="../gui/SettingsView.qml" line="1199"/>
<source>Process gamepad input when Moonlight is in the background</source>
<translation>Behandle spillkontrollerinndata når Moonlight er i bakgrunnen</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1228"/>
<location filename="../gui/SettingsView.qml" line="1210"/>
<source>Allows Moonlight to capture gamepad inputs even if it&apos;s not the current window in focus</source>
<translation type="unfinished">Lar Moonlight fange opp spillkontollerinndata selv når det ikke er i fokus</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1237"/>
<location filename="../gui/SettingsView.qml" line="1219"/>
<source>Host Settings</source>
<translation>Vertsinnstillinger</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1277"/>
<location filename="../gui/SettingsView.qml" line="1259"/>
<source>Advanced Settings</source>
<translation>Avanserte innstillinger</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="653"/>
<location filename="../gui/SettingsView.qml" line="646"/>
<source>Audio configuration</source>
<translation>Lydoppsett</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="950"/>
<location filename="../gui/SettingsView.qml" line="932"/>
<source>Show connection quality warnings</source>
<translation>Vis kvalitetsadvarsler om tilkoblingen</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="962"/>
<location filename="../gui/SettingsView.qml" line="944"/>
<source>Discord Rich Presence integration</source>
<translation>Rik tilstedeværelsesintegrasjon for Discord</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="972"/>
<location filename="../gui/SettingsView.qml" line="954"/>
<source>Updates your Discord status to display the name of the game you&apos;re streaming.</source>
<translation>Oppdaterer din Discord-status til å vise navnet på spillet du strømmer.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1199"/>
<location filename="../gui/SettingsView.qml" line="1181"/>
<source>Only enable this option when streaming a game that doesn&apos;t support gamepads being connected after startup.</source>
<translation type="unfinished">Kun skru på dette når du strømmer et spill som ikke støtter av spillkontrollere er tilkoblet etter oppstart.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1017"/>
<location filename="../gui/SettingsView.qml" line="999"/>
<source>Optimize mouse for remote desktop instead of games</source>
<translation>Optimaliser mus for fjernskrivebord istedenfor spill</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="978"/>
<location filename="../gui/SettingsView.qml" line="960"/>
<source>Keep the display awake while streaming</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="988"/>
<location filename="../gui/SettingsView.qml" line="970"/>
<source>Prevents the screensaver from starting or the display from going to sleep while streaming.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1039"/>
<location filename="../gui/SettingsView.qml" line="1021"/>
<source>Capture system keyboard shortcuts</source>
<translation>Fang systemtastatursarveier</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1047"/>
<location filename="../gui/SettingsView.qml" line="1029"/>
<source>This enables the capture of system-wide keyboard shortcuts like Alt+Tab that would normally be handled by the client OS while streaming.</source>
<translation>Lar deg fange tastatursnarveier på hele systemet, slik som Alt+Tav som normalt ville blitt håndtert av klient-OS under strømming.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1077"/>
<location filename="../gui/SettingsView.qml" line="1059"/>
<source>in fullscreen</source>
<translation>i fullskjermsmodus</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1081"/>
<location filename="../gui/SettingsView.qml" line="1063"/>
<source>always</source>
<translation>alltid</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1121"/>
<location filename="../gui/SettingsView.qml" line="1103"/>
<source>When checked, the touchscreen acts like a trackpad. When unchecked, the touchscreen will directly control the mouse pointer.</source>
<translation type="unfinished">Får pekeskjermen til å oppføre seg som pekeflate. Ellers vil pekeskjermen kontrollere musepekeren direkte.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1247"/>
<location filename="../gui/SettingsView.qml" line="1229"/>
<source>Optimize game settings for streaming</source>
<translation>Optimaliser spillinnstillinger for strømming</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1258"/>
<location filename="../gui/SettingsView.qml" line="1240"/>
<source>Quit app on host PC after ending stream</source>
<translation>Avslutt program på verts-PC etter at strømmen fullendes</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1268"/>
<location filename="../gui/SettingsView.qml" line="1250"/>
<source>This will close the app or game you are streaming when you end your stream. You will lose any unsaved progress!</source>
<translation>Dette vil lukke programmet eller spillet du strømmer når du avslutter strømmen din. All ulagret fremdrift vil gå tapt.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1287"/>
<location filename="../gui/SettingsView.qml" line="1269"/>
<source>Video decoder</source>
<translation>Videodekoder</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1313"/>
<location filename="../gui/SettingsView.qml" line="1382"/>
<location filename="../gui/SettingsView.qml" line="1294"/>
<location filename="../gui/SettingsView.qml" line="1346"/>
<source>Automatic (Recommended)</source>
<translation>Automatisk (anbefalt)</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1317"/>
<location filename="../gui/SettingsView.qml" line="1298"/>
<source>Force software decoding</source>
<translation>Påtving mykvaredekoding</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1321"/>
<location filename="../gui/SettingsView.qml" line="1302"/>
<source>Force hardware decoding</source>
<translation>Påtving maskinvaredekoding</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1351"/>
<location filename="../gui/SettingsView.qml" line="1315"/>
<source>Video codec</source>
<translation>Videokodek</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1386"/>
<location filename="../gui/SettingsView.qml" line="1350"/>
<source>H.264</source>
<translation>H.264</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1390"/>
<location filename="../gui/SettingsView.qml" line="1354"/>
<source>HEVC (H.265)</source>
<translation>HEVC (H.265)</translation>
</message>
@@ -980,17 +905,17 @@
<translation type="vanished">HEVC-HDR (eksperimentelt)</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1439"/>
<location filename="../gui/SettingsView.qml" line="1403"/>
<source>Unlock unsupported FPS options</source>
<translation>Lås opp ustøttede BPS-innstillinger</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1458"/>
<location filename="../gui/SettingsView.qml" line="1422"/>
<source>Automatically find PCs on the local network (Recommended)</source>
<translation>Finn PC-er på lokalnettverket automatisk (anbefales)</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1483"/>
<location filename="../gui/SettingsView.qml" line="1447"/>
<source>Automatically detect blocked connections (Recommended)</source>
<translation>Oppdag blokkerte tilkoblinger automatisk (anbefales)</translation>
</message>
@@ -1047,94 +972,99 @@
<context>
<name>main</name>
<message>
<location filename="../gui/main.qml" line="418"/>
<location filename="../gui/main.qml" line="254"/>
<location filename="../gui/main.qml" line="264"/>
<location filename="../gui/main.qml" line="393"/>
<location filename="../gui/main.qml" line="408"/>
<source>Settings</source>
<translation>Innstillinger</translation>
</message>
<message>
<location filename="../gui/main.qml" line="265"/>
<location filename="../gui/main.qml" line="255"/>
<source>Version %1</source>
<translation>Versjon %1</translation>
</message>
<message>
<location filename="../gui/main.qml" line="281"/>
<location filename="../gui/main.qml" line="271"/>
<source>Join our community on Discord</source>
<translation>Ta del i gemenskapen på DIscord</translation>
</message>
<message>
<location filename="../gui/main.qml" line="283"/>
<source>Computers</source>
<translation type="vanished">Datamaskiner</translation>
<translation>Datamaskiner</translation>
</message>
<message>
<location filename="../gui/main.qml" line="300"/>
<location filename="../gui/main.qml" line="290"/>
<source>Add PC manually</source>
<translation>Legg til PC manuelt</translation>
</message>
<message>
<location filename="../gui/main.qml" line="340"/>
<location filename="../gui/main.qml" line="330"/>
<source>Update available for Moonlight: Version %1</source>
<translation type="unfinished">Ny versjon av Moonlight tilgjengelig: Versjon %1</translation>
</message>
<message>
<location filename="../gui/main.qml" line="387"/>
<location filename="../gui/main.qml" line="377"/>
<source>Gamepad Mapper</source>
<translation>Spillkontroller-knappetilknytter</translation>
</message>
<message>
<location filename="../gui/main.qml" line="381"/>
<source>Gamepad Mapping</source>
<translation type="vanished">Tilknytning av taster på spillkontroller</translation>
<translation>Tilknytning av taster på spillkontroller</translation>
</message>
<message>
<source>No functioning hardware accelerated H.264 video decoder was detected by Moonlight. Your streaming performance may be severely degraded in this configuration.</source>
<translation type="obsolete">Ingen funksjonell maskinvareakselerert H.264-videodekoder ble oppdaget av Moonlight. Din strømmingsytelse kan nedgraderes betydelig i dette oppsettet.</translation>
</message>
<message>
<location filename="../gui/main.qml" line="433"/>
<location filename="../gui/main.qml" line="423"/>
<source>Hardware acceleration doesn&apos;t work on XWayland. Continuing on XWayland may result in poor streaming performance. Try running with QT_QPA_PLATFORM=wayland or switch to X11.</source>
<translation>Maskrinvareakselerasjon fungerer ikke på XWayland. Fortsatt bruk av XWayland kan resultere i dårlig strømmingsytelse. Prøv å kjøre med QT_QPA_PLATFORM=wayland, eller bytt til X11.</translation>
</message>
<message>
<location filename="../gui/main.qml" line="442"/>
<location filename="../gui/main.qml" line="432"/>
<source>This version of Moonlight isn&apos;t optimized for your PC. Please download the &apos;%1&apos; version of Moonlight for the best streaming performance.</source>
<translation>Denne versjonen av Moonlight er ikke optimalisert for din PC. Last ned «%1»-versjonen av Moonlight for best strømmingsytelse.</translation>
</message>
<message>
<location filename="../gui/main.qml" line="451"/>
<location filename="../gui/main.qml" line="441"/>
<source>Moonlight detected gamepads without a mapping:</source>
<translation>Moonlight oppdaget spillkontrollere uten tilknyttede knapper:</translation>
</message>
<message>
<location filename="../gui/main.qml" line="364"/>
<location filename="../gui/main.qml" line="354"/>
<source>Help</source>
<translation>Hjelp</translation>
</message>
<message>
<location filename="../gui/main.qml" line="425"/>
<location filename="../gui/main.qml" line="415"/>
<source>No functioning hardware accelerated video decoder was detected by Moonlight. Your streaming performance may be severely degraded in this configuration.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/main.qml" line="427"/>
<location filename="../gui/main.qml" line="417"/>
<source>Click the Help button for more information on solving this problem.</source>
<translation type="unfinished">Klikk på «Hjelp»-knappen for mer løsningsinfo.</translation>
</message>
<message>
<location filename="../gui/main.qml" line="435"/>
<location filename="../gui/main.qml" line="425"/>
<source>Click the Help button for more information.</source>
<translation type="unfinished">Klikk «Hjelp»-knappen for mer info.</translation>
</message>
<message>
<location filename="../gui/main.qml" line="453"/>
<location filename="../gui/main.qml" line="443"/>
<source>Click the Help button for information on how to map your gamepads.</source>
<translation>Klikk på «Hjelp»-knappen for info om hvordan du tilknytter taster til dine spillkontrollere.</translation>
</message>
<message>
<location filename="../gui/main.qml" line="461"/>
<location filename="../gui/main.qml" line="451"/>
<source>Are you sure you want to quit?</source>
<translation>Er du sikker på at du vil avslutte?</translation>
</message>
<message>
<location filename="../gui/main.qml" line="491"/>
<location filename="../gui/main.qml" line="481"/>
<source>Enter the IP address of your GameStream PC:</source>
<translation>Skriv inn IP-adressen tilhørende din GameStream-PC:</translation>
</message>
Binary file not shown.
+148 -218
View File
@@ -51,24 +51,6 @@
<translation>Weet je zeker dat je %1 wil afsluiten? Alle niet opgeslagen voortgang gaat verloren.</translation>
</message>
</context>
<context>
<name>CliPair</name>
<message>
<location filename="../gui/CliPair.qml" line="9"/>
<source>Establishing connection to PC...</source>
<translation type="unfinished">Verbinding maken met PC...</translation>
</message>
<message>
<location filename="../gui/CliPair.qml" line="13"/>
<source>Pairing... Please enter &apos;%1&apos; on %2.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/CliPair.qml" line="85"/>
<source>Pairing completed successfully</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>CliQuitStreamSegue</name>
<message>
@@ -181,51 +163,52 @@
<translation>De versie van GeForce Experience op %1 wordt niet ondersteund door deze versie van Moonlight, Je moet Moonlight updaten om te streamen vanaf %1.</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="247"/>
<source>You cannot pair while a previous session is still running on the host PC. Quit any running games or reboot the host PC, then try pairing again.</source>
<translation type="vanished">Je kunt niet verbinden terwijl de vorige sessie nog actief is op de host PC. Stop alle nog actieve spellen of herstart de host PC, probeer dan opnieuw te verbinden.</translation>
<translation>Je kunt niet verbinden terwijl de vorige sessie nog actief is op de host PC. Stop alle nog actieve spellen of herstart de host PC, probeer dan opnieuw te verbinden.</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="294"/>
<location filename="../gui/PcView.qml" line="302"/>
<source>Please enter %1 on your GameStream PC. This dialog will close when pairing is completed.</source>
<translation>Vul A.U.B. %1 in op de GameStream PC. Deze dialoog zal sluiten wanneer het koppelen is voltooid.</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="305"/>
<location filename="../gui/PcView.qml" line="313"/>
<source>Are you sure you want to remove this PC?</source>
<translation>Weet je zeker dat je de PC wil verwijderen?</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="322"/>
<location filename="../gui/PcView.qml" line="330"/>
<source>Moonlight is testing your network connection to determine if NVIDIA GameStream is blocked.</source>
<translation>Moonlight is je netwerk verbinding aan het testen om te bepalen of NVIDIA GameStream geblokkeerd is.</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="322"/>
<location filename="../gui/PcView.qml" line="330"/>
<source>This may take a few seconds…</source>
<translation>Dit kan enkele seconden duren…</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="333"/>
<location filename="../gui/PcView.qml" line="341"/>
<source>This network does not appear to be blocking Moonlight. If you still have trouble connecting, check your PC&apos;s firewall settings.</source>
<translation>Dit netwerk lijkt Moonlight niet te blokkeren. Als je nogsteeds problemen hebt met verbinden, controleer de Firewall instellingen van je PC.</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="333"/>
<location filename="../gui/PcView.qml" line="341"/>
<source>If you are trying to stream over the Internet, install the Moonlight Internet Hosting Tool on your gaming PC and run the included Internet Streaming Tester to check your gaming PC&apos;s Internet connection.</source>
<translation>Als je probeerd te streamen via het internet, installeer dan de Moonlight Internet Hosting Tool op je gaming PC en voer dan de inbegrepen Internet Streaming Tester uit om de Internet verbinding van je gaming PC te controleren.</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="337"/>
<location filename="../gui/PcView.qml" line="345"/>
<source>Your PC&apos;s current network connection seems to be blocking Moonlight. Streaming over the Internet may not work while connected to this network.</source>
<translation>De huidige internet verbinding van je PC lijkt Moonlight te blokkeren. Streamen via het internet kan misschien niet werken terwijl je verbonden bent met dit netwerk.</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="337"/>
<location filename="../gui/PcView.qml" line="345"/>
<source>The following network ports were blocked:</source>
<translation>De volgende netwerk poorten zijn geblokkeerd:</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="329"/>
<location filename="../gui/PcView.qml" line="337"/>
<source>The network test could not be performed because none of Moonlight&apos;s connection testing servers were reachable from this PC. Check your Internet connection or try again later.</source>
<translation>De netwerk test kon niet worden uitgevoerd omdat de Moonlight test servers niet konden worden bereikt vanaf deze PC. Controleer je internet verbinding of probeer het later opnieuw.</translation>
</message>
@@ -255,43 +238,15 @@
<translation>Geef alle apps weer</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="349"/>
<location filename="../gui/PcView.qml" line="357"/>
<source>Enter the new name for this PC:</source>
<translation>Voer de nieuwe naam in voor deze PC:</translation>
</message>
</context>
<context>
<name>PendingPairingTask</name>
<message>
<location filename="../backend/computermanager.cpp" line="535"/>
<source>The PIN from the PC didn&apos;t match. Please try again.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../backend/computermanager.cpp" line="539"/>
<source>You cannot pair while a previous session is still running on the host PC. Quit any running games or reboot the host PC, then try pairing again.</source>
<translation type="unfinished">Je kunt niet verbinden terwijl de vorige sessie nog actief is op de host PC. Stop alle nog actieve spellen of herstart de host PC, probeer dan opnieuw te verbinden.</translation>
</message>
<message>
<location filename="../backend/computermanager.cpp" line="542"/>
<source>Pairing failed. Please try again.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../backend/computermanager.cpp" line="546"/>
<source>Another pairing attempt is already in progress.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../backend/computermanager.cpp" line="556"/>
<source>GeForce Experience returned error: %1</source>
<translation type="unfinished">GeForce Experience gaf de volgende error: %1</translation>
</message>
</context>
<context>
<name>PendingQuitTask</name>
<message>
<location filename="../backend/computermanager.cpp" line="606"/>
<location filename="../backend/computermanager.cpp" line="540"/>
<source>The running game wasn&apos;t started by this PC. You must quit the game on the host PC manually or use the device that originally started the game.</source>
<translation>De huidige game is niet gestart door deze PC. Je moet de game handmatig afsluiten op de host PC of op het apparaat dat de game heeft opgestart.</translation>
</message>
@@ -299,16 +254,6 @@
<context>
<name>QObject</name>
<message>
<location filename="../cli/pair.cpp" line="80"/>
<source>%1 is already paired</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>You cannot pair while a previous session is still running on the host PC. Quit any running games or reboot the host PC, then try pairing again.</source>
<translation type="obsolete">Je kunt niet verbinden terwijl de vorige sessie nog actief is op de host PC. Stop alle nog actieve spellen of herstart de host PC, probeer dan opnieuw te verbinden.</translation>
</message>
<message>
<location filename="../cli/pair.cpp" line="109"/>
<location filename="../cli/quitstream.cpp" line="76"/>
<location filename="../cli/startstream.cpp" line="133"/>
<source>Failed to connect to %1</source>
@@ -331,11 +276,6 @@
<source>Failed to find application %1</source>
<translation>Applicatie %1 niet gevonden</translation>
</message>
<message>
<location filename="../cli/listapps.cpp" line="99"/>
<source>Computer %1 has not been paired. Please open Moonlight to pair before retrieving games list.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>QuitSegue</name>
@@ -367,32 +307,22 @@
<translation>Je netwerk verbinding is niet erg snel. Verminder je video bitrate instellingen of probeer een snellere verbinding te gebruiken.</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="103"/>
<location filename="../streaming/session.cpp" line="102"/>
<source>Something went wrong on your host PC when starting the stream.</source>
<translation>Er is iets mis gegaan op de host PC tijdens het starten van de stream.</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="104"/>
<location filename="../streaming/session.cpp" line="103"/>
<source>Make sure you don&apos;t have any DRM-protected content open on your host PC. You can also try restarting your host PC.</source>
<translation>Controleer of je geen DRM-beschermde content op je host PC open hebt staan. Je kunt ook proberen de host PC opnieuw op te starten.</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="105"/>
<location filename="../streaming/session.cpp" line="104"/>
<source>If the issue persists, try reinstalling your GPU drivers and GeForce Experience.</source>
<translation>Als de fout blijft aanhouden, probeer dan je Videokaart drivers en GeForce Experience opnieuw te installeren.</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="110"/>
<source>The host PC reported a fatal video encoding error.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="111"/>
<source>Try disabling HDR mode, changing the streaming resolution, or changing your host PC&apos;s display resolution.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="116"/>
<location filename="../streaming/session.cpp" line="109"/>
<source>Connection terminated</source>
<translation>Verbinding verbroken</translation>
</message>
@@ -490,32 +420,32 @@
<translation>Een aangesloten gamepad heeft geen instellingen en is dus niet bruikbaar. Bezoek Moonlight help om dit op te lossen.</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="810"/>
<location filename="../streaming/session.cpp" line="805"/>
<source>Your host PC&apos;s GPU doesn&apos;t support streaming video resolutions over 4K.</source>
<translation>De videokaart van de host PC ondersteund geen video resoluties hoger dan 4K.</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="814"/>
<location filename="../streaming/session.cpp" line="809"/>
<source>Video resolutions over 4K are only supported by the HEVC codec.</source>
<translation>Video resoluties hoger dan 4K worden alleen ondersteund door de HEVC codec.</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="828"/>
<location filename="../streaming/session.cpp" line="823"/>
<source>Your selection to force hardware decoding cannot be satisfied due to missing hardware decoding support on this PC&apos;s GPU.</source>
<translation>Je keuze om hardware decoding te forceren kon niet worden volbracht omdat de videokaart op deze PC geen ondersteuning bied voor hardware decoding.</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="831"/>
<location filename="../streaming/session.cpp" line="826"/>
<source>Your codec selection and force hardware decoding setting are not compatible. This PC&apos;s GPU lacks support for decoding your chosen codec.</source>
<translation>Je codec keuze en de keuze voor het forceren van hardware decodatie zijn niet compatibel. De videokaart van deze PC ondersteund de gekozen codec niet.</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="1176"/>
<location filename="../streaming/session.cpp" line="1159"/>
<source>GeForce Experience returned error: %1</source>
<translation>GeForce Experience gaf de volgende error: %1</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="1697"/>
<location filename="../streaming/session.cpp" line="1691"/>
<source>Unable to initialize video decoder. Please check your streaming settings and try again.</source>
<translation>Niet gelukt om de video decoder te initialiseren. Controleer je stream instellingen en probeer opnieuw.</translation>
</message>
@@ -528,60 +458,60 @@
<translation>Instellingen</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="72"/>
<location filename="../gui/SettingsView.qml" line="70"/>
<source>Resolution and FPS</source>
<translation>Resolutie en FPS</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="80"/>
<location filename="../gui/SettingsView.qml" line="78"/>
<source>Setting values too high for your PC or network connection may cause lag, stuttering, or errors.</source>
<translation>Instellingen te hoog zetten voor je PC en netwerk verbinding kan lag, stotteren of errors veroorzaken.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="62"/>
<location filename="../gui/SettingsView.qml" line="60"/>
<source>Basic Settings</source>
<translation>Basis instellingen</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="200"/>
<location filename="../gui/SettingsView.qml" line="209"/>
<source>720p</source>
<translation>720p</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="206"/>
<location filename="../gui/SettingsView.qml" line="215"/>
<source>1080p</source>
<translation>1080p</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="212"/>
<location filename="../gui/SettingsView.qml" line="221"/>
<source>1440p</source>
<translation>1440p</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="218"/>
<location filename="../gui/SettingsView.qml" line="227"/>
<source>4K</source>
<translation>4K</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="322"/>
<location filename="../gui/SettingsView.qml" line="331"/>
<source>Custom resolutions are not officially supported by GeForce Experience, so it will not set your host display resolution. You will need to set it manually while in game.</source>
<translation>Custom resoluties worden officieel niet ondersteund door GeForce Experience, dus de resolutie van de host display zal niet ingesteld worden. Je zult hem handmatig moeten instellen in de game.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="323"/>
<location filename="../gui/SettingsView.qml" line="332"/>
<source>Resolutions that are not supported by your client or host PC may cause streaming errors.</source>
<translation>Resoluties die not ondersteund worden door de client of host PC kunnen voor streaming errors veroorzaken.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="329"/>
<location filename="../gui/SettingsView.qml" line="338"/>
<source>Enter a custom resolution:</source>
<translation>Voor een aangepaste resolutie in:</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="397"/>
<location filename="../gui/SettingsView.qml" line="398"/>
<location filename="../gui/SettingsView.qml" line="418"/>
<location filename="../gui/SettingsView.qml" line="421"/>
<location filename="../gui/SettingsView.qml" line="406"/>
<location filename="../gui/SettingsView.qml" line="407"/>
<location filename="../gui/SettingsView.qml" line="427"/>
<location filename="../gui/SettingsView.qml" line="430"/>
<source>%1 FPS</source>
<translation>%1 FPS</translation>
</message>
@@ -590,191 +520,186 @@
<translation type="vanished">%1 FPS (nicht unterstützt)</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="485"/>
<location filename="../gui/SettingsView.qml" line="493"/>
<source>Video bitrate:</source>
<translation>Video bitrate:</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="493"/>
<location filename="../gui/SettingsView.qml" line="501"/>
<source>Lower the bitrate on slower connections. Raise the bitrate to increase image quality.</source>
<translation>Verlaag de bitrate op tragere verbindingen. Verhoog de bitrate voor een hogere kwaliteit.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="511"/>
<location filename="../gui/SettingsView.qml" line="519"/>
<source>Video bitrate: %1 Mbps</source>
<translation>Videobitsnelheid: %1 Mbps</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="519"/>
<location filename="../gui/SettingsView.qml" line="527"/>
<source>Display mode</source>
<translation>Display modus</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="549"/>
<location filename="../gui/SettingsView.qml" line="545"/>
<source> (Recommended)</source>
<translatorcomment>Dont put the space in ransaltions</translatorcomment>
<translation> (Aanbevolen)</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="530"/>
<location filename="../gui/SettingsView.qml" line="937"/>
<location filename="../gui/SettingsView.qml" line="573"/>
<location filename="../gui/SettingsView.qml" line="919"/>
<source>Fullscreen</source>
<translation>Volledig scherm</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="599"/>
<location filename="../gui/SettingsView.qml" line="592"/>
<source>Fullscreen generally provides the best performance, but borderless windowed may work better with features like macOS Spaces, Alt+Tab, screenshot tools, on-screen overlays, etc.</source>
<translation>Volledig scherm geeft over het algemeen de beste prestaties, maar randloos windowed kan soms beter werken met functies als macOS Space, Alt+Tab, screenshot tools , on-screen overlays, etc.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="535"/>
<location filename="../gui/SettingsView.qml" line="577"/>
<source>Borderless windowed</source>
<translation>Randloos windowed</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="403"/>
<location filename="../gui/SettingsView.qml" line="406"/>
<location filename="../gui/SettingsView.qml" line="412"/>
<location filename="../gui/SettingsView.qml" line="415"/>
<location filename="../gui/SettingsView.qml" line="428"/>
<location filename="../gui/SettingsView.qml" line="431"/>
<location filename="../gui/SettingsView.qml" line="424"/>
<location filename="../gui/SettingsView.qml" line="437"/>
<location filename="../gui/SettingsView.qml" line="440"/>
<source>%1 FPS (Unsupported)</source>
<translation>%1 FPS (Niet ondersteund)</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="540"/>
<location filename="../gui/SettingsView.qml" line="929"/>
<location filename="../gui/SettingsView.qml" line="581"/>
<location filename="../gui/SettingsView.qml" line="911"/>
<source>Windowed</source>
<translation>Windowed</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="606"/>
<location filename="../gui/SettingsView.qml" line="599"/>
<source>V-Sync</source>
<translation>V-Sync</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="616"/>
<location filename="../gui/SettingsView.qml" line="609"/>
<source>Disabling V-Sync allows sub-frame rendering latency, but it can display visible tearing</source>
<translation>V-Sync uitschakelen zorg voor verlaagde latency, maar kan screen tearing veroorzaken</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="623"/>
<location filename="../gui/SettingsView.qml" line="616"/>
<source>Frame pacing</source>
<translation>Frame pacing</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="633"/>
<location filename="../gui/SettingsView.qml" line="626"/>
<source>Frame pacing reduces micro-stutter by delaying frames that come in too early</source>
<translation>Frame pacing verminderd het stotteren door frames te vertragen die te vroeg aan komen</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="643"/>
<location filename="../gui/SettingsView.qml" line="636"/>
<source>Audio Settings</source>
<translation>Audio instellingen</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="678"/>
<location filename="../gui/SettingsView.qml" line="671"/>
<source>Stereo</source>
<translation>Stereo</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="682"/>
<location filename="../gui/SettingsView.qml" line="675"/>
<source>5.1 surround sound</source>
<translation>5.1 surround sound</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="686"/>
<location filename="../gui/SettingsView.qml" line="679"/>
<source>7.1 surround sound</source>
<translation>7.1 surround sound</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="700"/>
<location filename="../gui/SettingsView.qml" line="693"/>
<source>Mute host PC speakers while streaming</source>
<translation>Demp de speakers van de host PC tijdens het streamen</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="710"/>
<location filename="../gui/SettingsView.qml" line="703"/>
<source>You must restart any game currently in progress for this setting to take effect</source>
<translation>Je moet alle spellen die actief zijn opnieuw opstarten om deze instelling actief te maken</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="716"/>
<location filename="../gui/SettingsView.qml" line="709"/>
<source>Mute audio stream when Moonlight is not the active window</source>
<translation>Demp audio stream wanneer Moonlight niet het actieve scherm is</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="727"/>
<location filename="../gui/SettingsView.qml" line="720"/>
<source>Mutes Moonlight&apos;s audio when you Alt+Tab out of the stream or click on a different window.</source>
<translation>Dempt Moonlight&apos;s audio wanneer je uit de stream Alt+Tab of als je op een ander scherm klikt.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="736"/>
<location filename="../gui/SettingsView.qml" line="729"/>
<source>UI Settings</source>
<translation>UI instellingen</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="746"/>
<location filename="../gui/SettingsView.qml" line="739"/>
<source>Language</source>
<translation>Taal</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="772"/>
<location filename="../gui/SettingsView.qml" line="765"/>
<source>Automatic</source>
<translation>Automatisch</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="879"/>
<location filename="../gui/SettingsView.qml" line="864"/>
<source>You must restart Moonlight for this change to take effect</source>
<translation>Je moet Moonlight opnieuw opstarten voordat de verandering actief word</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="896"/>
<location filename="../gui/SettingsView.qml" line="878"/>
<source>GUI display mode</source>
<translation>GUI weergave modus</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="933"/>
<location filename="../gui/SettingsView.qml" line="915"/>
<source>Maximized</source>
<translation>Gemaximaliseerd</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1006"/>
<location filename="../gui/SettingsView.qml" line="988"/>
<source>Input Settings</source>
<translation>Invoer instellingen</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1027"/>
<location filename="../gui/SettingsView.qml" line="1009"/>
<source>This enables seamless mouse control without capturing the client&apos;s mouse cursor. It is ideal for remote desktop usage but will not work in most games.</source>
<translation>Dit activeert vloeiende muis besturing zonder de muis cursor van de client over te nemen. Het is ideal voor remote desktop maar werkt niet goed in de meeste games.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1029"/>
<location filename="../gui/SettingsView.qml" line="1011"/>
<source>NOTE: Due to a bug in GeForce Experience, this option may not work properly if your host PC has multiple monitors.</source>
<translation>INFO: Door een bug in GeForce Experience, kan deze optie niet goed werken als je meerdere monitoren hebt.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1345"/>
<source>Enabling HDR overrides manual decoder selections.</source>
<translation>Bij het aanzetten van HDR worden manuele decoder selecties overschreden.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1414"/>
<location filename="../gui/SettingsView.qml" line="1378"/>
<source>Enabling HDR overrides manual codec selections.</source>
<translation>Bij het aanzetten van HDR worden manuele codec selecties overschreden.</translation>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1420"/>
<location filename="../gui/SettingsView.qml" line="1384"/>
<source>Enable HDR (Experimental)</source>
<translation>HDR inschakelen (Experimenteel)</translation>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1431"/>
<location filename="../gui/SettingsView.qml" line="1395"/>
<source>The stream will be HDR-capable, but some games may require an HDR monitor on your host PC to enable HDR mode.</source>
<translation>Dit zet de stream om in HDR, maar sommige spellen hebben een HDR-monitor nodig dat is aangesloten aan de Host&apos;s Computer.</translation>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1433"/>
<location filename="../gui/SettingsView.qml" line="1397"/>
<source>HDR streaming is not supported on this PC.</source>
<translation>Deze PC voldoet zich niet aan de verreisten om in HDR modus te streamen.</translation>
<translation type="unfinished"></translation>
</message>
<message>
<source>Capture system keyboard shortcuts while streaming in fullscreen</source>
@@ -785,193 +710,193 @@
<translation type="vanished">Dies ermöglicht die Erfassung von systemweiten Tastenkombinationen wie Alt+Tab, die normalerweise vom Client beim Streamen im Vollbildmodus ausgeführt werden würden.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1048"/>
<location filename="../gui/SettingsView.qml" line="1030"/>
<source>NOTE: Certain keyboard shortcuts like Ctrl+Alt+Del on Windows cannot be intercepted by any application, including Moonlight.</source>
<translation>INFO: Sommige toetsenbord snelkoppelingen zoals Ctrl+Alt+Del in Windows kunnen niet worden opgevangen door applicaties, ook niet door Moonlight.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1111"/>
<location filename="../gui/SettingsView.qml" line="1093"/>
<source>Use touchscreen as a virtual trackpad</source>
<translation>Gebruik een touchscreen als virtueel trackpad</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1128"/>
<location filename="../gui/SettingsView.qml" line="1110"/>
<source>Swap left and right mouse buttons</source>
<translation>Verwissel linker- en rechtermuisknop</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1140"/>
<location filename="../gui/SettingsView.qml" line="1122"/>
<source>Reverse mouse scrolling direction</source>
<translation>Keer muis scroll richting om</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1154"/>
<location filename="../gui/SettingsView.qml" line="1136"/>
<source>Gamepad Settings</source>
<translation>Gamepad instellingen</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1164"/>
<location filename="../gui/SettingsView.qml" line="1146"/>
<source>Swap A/B and X/Y gamepad buttons</source>
<translation>Verwissel A/B en X/Y gamepad knoppen</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1182"/>
<location filename="../gui/SettingsView.qml" line="1164"/>
<source>This switches gamepads into a Nintendo-style button layout</source>
<translation>Dit veranderd gamepads naar een Nintendo-stijl knoppen layout</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1188"/>
<location filename="../gui/SettingsView.qml" line="1170"/>
<source>Force gamepad #1 always connected</source>
<translation>Forceer gamepad #1 als altijd verbonden</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1198"/>
<location filename="../gui/SettingsView.qml" line="1180"/>
<source>Forces a single gamepad to always stay connected to the host, even if no gamepads are actually connected to this PC.</source>
<translation>Forceer een enkele gamepad om altijd verbonden te blijven met de host, zelfs als er geen gamepads verbonden zijn met deze PC.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1028"/>
<location filename="../gui/SettingsView.qml" line="1010"/>
<source>You can toggle this while streaming using Ctrl+Alt+Shift+M.</source>
<translation>Je kunt deze instelling tijdens het streamen aan of uit zetten met Ctrl+Alt+Shift+M.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1206"/>
<location filename="../gui/SettingsView.qml" line="1188"/>
<source>Enable mouse control with gamepads by holding the &apos;Start&apos; button</source>
<translation>Activeer muis besturing met gamepads door de &apos;Start&apos; toets vast te houden</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1217"/>
<location filename="../gui/SettingsView.qml" line="1199"/>
<source>Process gamepad input when Moonlight is in the background</source>
<translation>Verwerk gamepad input wanneer Moonlight in de achtergrond staat</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1228"/>
<location filename="../gui/SettingsView.qml" line="1210"/>
<source>Allows Moonlight to capture gamepad inputs even if it&apos;s not the current window in focus</source>
<translation>Sta Moonlight toe gamepad input te verwerken zelfs als het niet het actieve window is</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1237"/>
<location filename="../gui/SettingsView.qml" line="1219"/>
<source>Host Settings</source>
<translation>Host instellingen</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1277"/>
<location filename="../gui/SettingsView.qml" line="1259"/>
<source>Advanced Settings</source>
<translation>Geavanceerde instellingen</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="653"/>
<location filename="../gui/SettingsView.qml" line="646"/>
<source>Audio configuration</source>
<translation>Audio configuratie</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="950"/>
<location filename="../gui/SettingsView.qml" line="932"/>
<source>Show connection quality warnings</source>
<translation>Geef verbindingskwaliteit waarschuwingen weer</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="962"/>
<location filename="../gui/SettingsView.qml" line="944"/>
<source>Discord Rich Presence integration</source>
<translation>Discord Rich Presence integratie</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="972"/>
<location filename="../gui/SettingsView.qml" line="954"/>
<source>Updates your Discord status to display the name of the game you&apos;re streaming.</source>
<translation>Update je Discord status om de game weer te geven die je streamed.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1199"/>
<location filename="../gui/SettingsView.qml" line="1181"/>
<source>Only enable this option when streaming a game that doesn&apos;t support gamepads being connected after startup.</source>
<translation>Zet deze optie alleen aan als je een game streamed die het niet ondersteund als gamepads verbonden worden nadat de game opgestart is.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1017"/>
<location filename="../gui/SettingsView.qml" line="999"/>
<source>Optimize mouse for remote desktop instead of games</source>
<translation>Optimaliseer de muis voor remote desktop in plaats van games</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="978"/>
<location filename="../gui/SettingsView.qml" line="960"/>
<source>Keep the display awake while streaming</source>
<translation>Houd het scherm wakker tijdens het streamen</translation>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="988"/>
<location filename="../gui/SettingsView.qml" line="970"/>
<source>Prevents the screensaver from starting or the display from going to sleep while streaming.</source>
<translation>Voorkomt dat de screensaver start of dat het scherm in slaapstand gaat tijdens het streamen.</translation>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1039"/>
<location filename="../gui/SettingsView.qml" line="1021"/>
<source>Capture system keyboard shortcuts</source>
<translation>Verwerk systeem-toetsenbordsnelkoppelingen</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1047"/>
<location filename="../gui/SettingsView.qml" line="1029"/>
<source>This enables the capture of system-wide keyboard shortcuts like Alt+Tab that would normally be handled by the client OS while streaming.</source>
<translation>Dit activeert het verwerken van systeem-toetsenbordsnelkoppelingen zoals Alt+Tab die normaal door het besturingssysteem verwerkt worden tijdens het streamen.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1077"/>
<location filename="../gui/SettingsView.qml" line="1059"/>
<source>in fullscreen</source>
<translation>in volledig scherm</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1081"/>
<location filename="../gui/SettingsView.qml" line="1063"/>
<source>always</source>
<translation>altijd</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1121"/>
<location filename="../gui/SettingsView.qml" line="1103"/>
<source>When checked, the touchscreen acts like a trackpad. When unchecked, the touchscreen will directly control the mouse pointer.</source>
<translation>Wanneer aangevinkt, fungeert het toutchscreen als een trackpad. Wanneer niet aangevinkt, bedient het touchscreen direct de muis cursor.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1247"/>
<location filename="../gui/SettingsView.qml" line="1229"/>
<source>Optimize game settings for streaming</source>
<translation>Optimaliseer game instellingen voor streamen</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1258"/>
<location filename="../gui/SettingsView.qml" line="1240"/>
<source>Quit app on host PC after ending stream</source>
<translation>Stop app op de host PC na het stoppen van de stream</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1268"/>
<location filename="../gui/SettingsView.qml" line="1250"/>
<source>This will close the app or game you are streaming when you end your stream. You will lose any unsaved progress!</source>
<translation>Dit zal de applicatie of de game die je streamed afsluiten wanneer je stopt met streamen. Alle niet opgeslagen voortgang zal verloren gaan!</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1287"/>
<location filename="../gui/SettingsView.qml" line="1269"/>
<source>Video decoder</source>
<translation>Video decoder</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1313"/>
<location filename="../gui/SettingsView.qml" line="1382"/>
<location filename="../gui/SettingsView.qml" line="1294"/>
<location filename="../gui/SettingsView.qml" line="1346"/>
<source>Automatic (Recommended)</source>
<translation>Automatisch (Aanbevolen)</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1317"/>
<location filename="../gui/SettingsView.qml" line="1298"/>
<source>Force software decoding</source>
<translation>Forceer software decoding</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1321"/>
<location filename="../gui/SettingsView.qml" line="1302"/>
<source>Force hardware decoding</source>
<translation>Forceer hardware decoding</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1351"/>
<location filename="../gui/SettingsView.qml" line="1315"/>
<source>Video codec</source>
<translation>Video codec</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1386"/>
<location filename="../gui/SettingsView.qml" line="1350"/>
<source>H.264</source>
<translation>H.264</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1390"/>
<location filename="../gui/SettingsView.qml" line="1354"/>
<source>HEVC (H.265)</source>
<translation>HEVC (H.265)</translation>
</message>
@@ -980,17 +905,17 @@
<translation type="vanished">HEVC HDR (Experimenteel)</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1439"/>
<location filename="../gui/SettingsView.qml" line="1403"/>
<source>Unlock unsupported FPS options</source>
<translation>Ontgrendel niet ondersteunde FPS opties</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1458"/>
<location filename="../gui/SettingsView.qml" line="1422"/>
<source>Automatically find PCs on the local network (Recommended)</source>
<translation>Ontdek automatisch PCs op het lokale netwerk (Aanbevolen)</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1483"/>
<location filename="../gui/SettingsView.qml" line="1447"/>
<source>Automatically detect blocked connections (Recommended)</source>
<translation>Detecteer geblokkeerde verbindingen automatisch (Aanbevolen)</translation>
</message>
@@ -1047,94 +972,99 @@
<context>
<name>main</name>
<message>
<location filename="../gui/main.qml" line="418"/>
<location filename="../gui/main.qml" line="254"/>
<location filename="../gui/main.qml" line="264"/>
<location filename="../gui/main.qml" line="393"/>
<location filename="../gui/main.qml" line="408"/>
<source>Settings</source>
<translation>Instellingen</translation>
</message>
<message>
<location filename="../gui/main.qml" line="265"/>
<location filename="../gui/main.qml" line="255"/>
<source>Version %1</source>
<translation>Versie %1</translation>
</message>
<message>
<location filename="../gui/main.qml" line="281"/>
<location filename="../gui/main.qml" line="271"/>
<source>Join our community on Discord</source>
<translation>Neem deel aan de community op Discord</translation>
</message>
<message>
<location filename="../gui/main.qml" line="283"/>
<source>Computers</source>
<translation type="vanished">Computers</translation>
<translation>Computers</translation>
</message>
<message>
<location filename="../gui/main.qml" line="300"/>
<location filename="../gui/main.qml" line="290"/>
<source>Add PC manually</source>
<translation>Voeg PC handmatig toe</translation>
</message>
<message>
<location filename="../gui/main.qml" line="340"/>
<location filename="../gui/main.qml" line="330"/>
<source>Update available for Moonlight: Version %1</source>
<translation>Update beschikbaar voor Moonlight: Versie %1</translation>
</message>
<message>
<location filename="../gui/main.qml" line="387"/>
<location filename="../gui/main.qml" line="377"/>
<source>Gamepad Mapper</source>
<translation>Gamepad mapper</translation>
</message>
<message>
<location filename="../gui/main.qml" line="381"/>
<source>Gamepad Mapping</source>
<translation type="vanished">Gamepad Toewijzing</translation>
<translation>Gamepad Toewijzing</translation>
</message>
<message>
<source>No functioning hardware accelerated H.264 video decoder was detected by Moonlight. Your streaming performance may be severely degraded in this configuration.</source>
<translation type="vanished">Geen werkende hardware accelerated H.264 video decoder gedetecteerd door Moonlight. Je stream prestaties kunnen flink verminderd zijn in deze configuratie.</translation>
</message>
<message>
<location filename="../gui/main.qml" line="433"/>
<location filename="../gui/main.qml" line="423"/>
<source>Hardware acceleration doesn&apos;t work on XWayland. Continuing on XWayland may result in poor streaming performance. Try running with QT_QPA_PLATFORM=wayland or switch to X11.</source>
<translation>Hardware acceleration werkt niet met XWayland. Doorgaan met XWayland kan slechte streaming prestaties veroorzaken. Probeer te spelen met QT_QPA_PLATFORM=wayland of verander naar X11.</translation>
</message>
<message>
<location filename="../gui/main.qml" line="442"/>
<location filename="../gui/main.qml" line="432"/>
<source>This version of Moonlight isn&apos;t optimized for your PC. Please download the &apos;%1&apos; version of Moonlight for the best streaming performance.</source>
<translation>Deze versie van Moonlight is niet geoptimaliseerd voor je PC. Download A.U.B de &apos;%1&quot; versie van Moonlight voor de beste streaming prestaties.</translation>
</message>
<message>
<location filename="../gui/main.qml" line="451"/>
<location filename="../gui/main.qml" line="441"/>
<source>Moonlight detected gamepads without a mapping:</source>
<translation>Moonlight heeft gamepads gedetecteerd zonder mapping:</translation>
</message>
<message>
<location filename="../gui/main.qml" line="364"/>
<location filename="../gui/main.qml" line="354"/>
<source>Help</source>
<translation>Help</translation>
</message>
<message>
<location filename="../gui/main.qml" line="425"/>
<location filename="../gui/main.qml" line="415"/>
<source>No functioning hardware accelerated video decoder was detected by Moonlight. Your streaming performance may be severely degraded in this configuration.</source>
<translation>Geen werkende hardware versnelde videodecoder gevonden door Moonlight. De streamingkwaliteit kan ernstig beïnvloed worden met deze configuratie.</translation>
</message>
<message>
<location filename="../gui/main.qml" line="427"/>
<location filename="../gui/main.qml" line="417"/>
<source>Click the Help button for more information on solving this problem.</source>
<translation>Klik op de help knop voor meer informatie over het oplossen van dit probleem.</translation>
</message>
<message>
<location filename="../gui/main.qml" line="435"/>
<location filename="../gui/main.qml" line="425"/>
<source>Click the Help button for more information.</source>
<translation>Klik op de help knop voor meer informatie.</translation>
</message>
<message>
<location filename="../gui/main.qml" line="453"/>
<location filename="../gui/main.qml" line="443"/>
<source>Click the Help button for information on how to map your gamepads.</source>
<translation>Klik op de help knop voor informatie over hoe je gamepads te mappen.</translation>
</message>
<message>
<location filename="../gui/main.qml" line="461"/>
<location filename="../gui/main.qml" line="451"/>
<source>Are you sure you want to quit?</source>
<translation>Weet je zeker dat je wil stoppen?</translation>
</message>
<message>
<location filename="../gui/main.qml" line="491"/>
<location filename="../gui/main.qml" line="481"/>
<source>Enter the IP address of your GameStream PC:</source>
<translation>Voer het IP adres in van je GameStream PC:</translation>
</message>
Binary file not shown.
File diff suppressed because it is too large Load Diff
Binary file not shown.
+149 -219
View File
@@ -51,24 +51,6 @@
<translation>Tem certeza que deseja sair %1? Todo progresso não salvo será perdido.</translation>
</message>
</context>
<context>
<name>CliPair</name>
<message>
<location filename="../gui/CliPair.qml" line="9"/>
<source>Establishing connection to PC...</source>
<translation>Estabelecendo conexão com o PC...</translation>
</message>
<message>
<location filename="../gui/CliPair.qml" line="13"/>
<source>Pairing... Please enter &apos;%1&apos; on %2.</source>
<translation>Pareando... Por favor inserir &apos;%1&apos; em %2.</translation>
</message>
<message>
<location filename="../gui/CliPair.qml" line="85"/>
<source>Pairing completed successfully</source>
<translation>Pareamento realizado com sucesso</translation>
</message>
</context>
<context>
<name>CliQuitStreamSegue</name>
<message>
@@ -181,51 +163,52 @@
<translation>A versão do GeForce Experience no %1 não é suportada por esta versão do Moonlight. Você deve atualizar o Moonlight para streamar do %1.</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="247"/>
<source>You cannot pair while a previous session is still running on the host PC. Quit any running games or reboot the host PC, then try pairing again.</source>
<translation type="vanished">Você não pode conectar-se enquanto uma sessão ainda está ativa no PC de host. Saia de qualquer jogo em execução ou re-inicie o PC de host, daí tente conectar-se novamente.</translation>
<translation>Você não pode conectar-se enquanto uma sessão ainda está ativa no PC de host. Saia de qualquer jogo em execução ou re-inicie o PC de host, daí tente conectar-se novamente.</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="294"/>
<location filename="../gui/PcView.qml" line="302"/>
<source>Please enter %1 on your GameStream PC. This dialog will close when pairing is completed.</source>
<translation>Por favor, entre %1 no seu PC pra GameStream. Esta caixa de diálogo irá se fechar quando a conexão for concluída.</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="305"/>
<location filename="../gui/PcView.qml" line="313"/>
<source>Are you sure you want to remove this PC?</source>
<translation>Você tem certeza que deseja remover este PC?</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="322"/>
<location filename="../gui/PcView.qml" line="330"/>
<source>Moonlight is testing your network connection to determine if NVIDIA GameStream is blocked.</source>
<translation>O Moonlight está testando sua conexão de Rede para determinar se o NVIDIA GameStream está bloqueado.</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="322"/>
<location filename="../gui/PcView.qml" line="330"/>
<source>This may take a few seconds…</source>
<translation>Isto deve levar alguns segundos…</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="333"/>
<location filename="../gui/PcView.qml" line="341"/>
<source>This network does not appear to be blocking Moonlight. If you still have trouble connecting, check your PC&apos;s firewall settings.</source>
<translation>Esta rede não aparenta estar bloqueando o Moonlight. Se ainda tens problemas para conectar-se, verifique sua configuração do Firewall do PC.</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="333"/>
<location filename="../gui/PcView.qml" line="341"/>
<source>If you are trying to stream over the Internet, install the Moonlight Internet Hosting Tool on your gaming PC and run the included Internet Streaming Tester to check your gaming PC&apos;s Internet connection.</source>
<translation>Se você está tentando streamar pela Internet, instale a Ferramenta de Internet Hosting do Moonlight no seu PC Gamer e execute o Testador de Internet Streaming para verificar a conexão à Internet do seu PC Gamer.</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="337"/>
<location filename="../gui/PcView.qml" line="345"/>
<source>Your PC&apos;s current network connection seems to be blocking Moonlight. Streaming over the Internet may not work while connected to this network.</source>
<translation>A conexão de Rede atual de seu PC aparenta estar bloqueando o Moonlight. Streamando pela Internet deve não funcionar enquando conectado à esta Rede.</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="337"/>
<location filename="../gui/PcView.qml" line="345"/>
<source>The following network ports were blocked:</source>
<translation>Os seguintes portes da rede foram bloqueados:</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="329"/>
<location filename="../gui/PcView.qml" line="337"/>
<source>The network test could not be performed because none of Moonlight&apos;s connection testing servers were reachable from this PC. Check your Internet connection or try again later.</source>
<translation>O teste de rede não pôde ser executado pois nenhum servidor de teste de conexão do Moonlight foi accesável por este PC. Verifique sua conexão à Internet ou tente novamente mais tarde.</translation>
</message>
@@ -255,43 +238,15 @@
<translation>Ver Todos Aplicativos</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="349"/>
<location filename="../gui/PcView.qml" line="357"/>
<source>Enter the new name for this PC:</source>
<translation>Digite o novo nome para este PC:</translation>
</message>
</context>
<context>
<name>PendingPairingTask</name>
<message>
<location filename="../backend/computermanager.cpp" line="535"/>
<source>The PIN from the PC didn&apos;t match. Please try again.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../backend/computermanager.cpp" line="539"/>
<source>You cannot pair while a previous session is still running on the host PC. Quit any running games or reboot the host PC, then try pairing again.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../backend/computermanager.cpp" line="542"/>
<source>Pairing failed. Please try again.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../backend/computermanager.cpp" line="546"/>
<source>Another pairing attempt is already in progress.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../backend/computermanager.cpp" line="556"/>
<source>GeForce Experience returned error: %1</source>
<translation type="unfinished">GeForce Experience retornou um erro: %1</translation>
</message>
</context>
<context>
<name>PendingQuitTask</name>
<message>
<location filename="../backend/computermanager.cpp" line="606"/>
<location filename="../backend/computermanager.cpp" line="540"/>
<source>The running game wasn&apos;t started by this PC. You must quit the game on the host PC manually or use the device that originally started the game.</source>
<translation>O jogo atualmente rodando não foi iniciado por este PC. Você deve sair do jogo no PC de host manualmente ou usar o dispositivo que originalmente executou o jogo.</translation>
</message>
@@ -299,16 +254,6 @@
<context>
<name>QObject</name>
<message>
<location filename="../cli/pair.cpp" line="80"/>
<source>%1 is already paired</source>
<translation>%1 já se encontra pareado</translation>
</message>
<message>
<source>You cannot pair while a previous session is still running on the host PC. Quit any running games or reboot the host PC, then try pairing again.</source>
<translation type="vanished">Você não pode se conectar enquanto uma sessão ainda está ativa no PC de host. Encerre qualquer jogo em execução ou reinicie o PC de host, daí tente conectar-se novamente.</translation>
</message>
<message>
<location filename="../cli/pair.cpp" line="109"/>
<location filename="../cli/quitstream.cpp" line="76"/>
<location filename="../cli/startstream.cpp" line="133"/>
<source>Failed to connect to %1</source>
@@ -331,11 +276,6 @@
<source>Failed to find application %1</source>
<translation>Falha ao encontrar aplicativo %1</translation>
</message>
<message>
<location filename="../cli/listapps.cpp" line="99"/>
<source>Computer %1 has not been paired. Please open Moonlight to pair before retrieving games list.</source>
<translation>Computador %1 ainda não foi pareado. Por favor abrir o Moonlight para parear antes de buscar lista de jogos.</translation>
</message>
</context>
<context>
<name>QuitSegue</name>
@@ -367,32 +307,22 @@
<translation>Sua conexão de rede não está funcionando bem. Reduza sua configuração de bitrate ou tente uma conexão mais rápida.</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="103"/>
<location filename="../streaming/session.cpp" line="102"/>
<source>Something went wrong on your host PC when starting the stream.</source>
<translation>Algo deu errado no seu PC de host quando a stream estava iniciando-se.</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="104"/>
<location filename="../streaming/session.cpp" line="103"/>
<source>Make sure you don&apos;t have any DRM-protected content open on your host PC. You can also try restarting your host PC.</source>
<translation>Assegure que não há nenhum conteúdo DRM-protegido aberto no seu PC de host. Você pode tentar re-iniciar seu PC de host.</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="105"/>
<location filename="../streaming/session.cpp" line="104"/>
<source>If the issue persists, try reinstalling your GPU drivers and GeForce Experience.</source>
<translation>Se o problema persistir, tente re-instalar seus drivers da GPU e o GeForce Experience.</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="110"/>
<source>The host PC reported a fatal video encoding error.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="111"/>
<source>Try disabling HDR mode, changing the streaming resolution, or changing your host PC&apos;s display resolution.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="116"/>
<location filename="../streaming/session.cpp" line="109"/>
<source>Connection terminated</source>
<translation>Conexão eliminada</translation>
</message>
@@ -490,32 +420,32 @@
<translation>Um controle conectado não tem mapeamento e não será usável. Visite a Ajuda do Moonlight para resolver isso.</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="810"/>
<location filename="../streaming/session.cpp" line="805"/>
<source>Your host PC&apos;s GPU doesn&apos;t support streaming video resolutions over 4K.</source>
<translation>A GPU do seu PC de host não suporta streaming de resoluções de vídeo superiores à 4K.</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="814"/>
<location filename="../streaming/session.cpp" line="809"/>
<source>Video resolutions over 4K are only supported by the HEVC codec.</source>
<translation>Resoluções de vídeo superiores à 4K são suportadas apenas pelo codec HEVC.</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="828"/>
<location filename="../streaming/session.cpp" line="823"/>
<source>Your selection to force hardware decoding cannot be satisfied due to missing hardware decoding support on this PC&apos;s GPU.</source>
<translation>Sua seleção de forçar decodificação por hardware não pôde ser satisfeita pela fata de suporte à decodificação por hardware na GPU deste PC.</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="831"/>
<location filename="../streaming/session.cpp" line="826"/>
<source>Your codec selection and force hardware decoding setting are not compatible. This PC&apos;s GPU lacks support for decoding your chosen codec.</source>
<translation>Sua seleção de codec e forçamento de decodificação por hardware não são compatíveis. A GPU deste PC não tem suprte para decodificar seu codec selecionado.</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="1176"/>
<location filename="../streaming/session.cpp" line="1159"/>
<source>GeForce Experience returned error: %1</source>
<translation>GeForce Experience retornou um erro: %1</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="1697"/>
<location filename="../streaming/session.cpp" line="1691"/>
<source>Unable to initialize video decoder. Please check your streaming settings and try again.</source>
<translation>Impossivel inicializar o decodificador de vídeo. Por favor verificar suas configurações de streaming e tente novamente.</translation>
</message>
@@ -528,60 +458,60 @@
<translation>Configurações</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="72"/>
<location filename="../gui/SettingsView.qml" line="70"/>
<source>Resolution and FPS</source>
<translation>Resolução e FPS</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="80"/>
<location filename="../gui/SettingsView.qml" line="78"/>
<source>Setting values too high for your PC or network connection may cause lag, stuttering, or errors.</source>
<translation>Valores de configuração muito altos para seu PC ou conexão de rede podem causar atrasos, travamentos, ou erros.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="62"/>
<location filename="../gui/SettingsView.qml" line="60"/>
<source>Basic Settings</source>
<translation>Configurações Básicas</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="200"/>
<location filename="../gui/SettingsView.qml" line="209"/>
<source>720p</source>
<translation>720p</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="206"/>
<location filename="../gui/SettingsView.qml" line="215"/>
<source>1080p</source>
<translation>1080p</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="212"/>
<location filename="../gui/SettingsView.qml" line="221"/>
<source>1440p</source>
<translation>1440p</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="218"/>
<location filename="../gui/SettingsView.qml" line="227"/>
<source>4K</source>
<translation>4K</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="322"/>
<location filename="../gui/SettingsView.qml" line="331"/>
<source>Custom resolutions are not officially supported by GeForce Experience, so it will not set your host display resolution. You will need to set it manually while in game.</source>
<translation>Resoluções customizadas não são oficialmente suportadas pelo GeForce Experience, então ele não colocará a resolução do display do host. Você terá de colocar ela manualmente dentro do jogo.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="323"/>
<location filename="../gui/SettingsView.qml" line="332"/>
<source>Resolutions that are not supported by your client or host PC may cause streaming errors.</source>
<translation>Resoluções que não são suportadas pelo seu PC de host ou cliente deve causar erros de streaming.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="329"/>
<location filename="../gui/SettingsView.qml" line="338"/>
<source>Enter a custom resolution:</source>
<translation>Coloque uma resolução customizada:</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="397"/>
<location filename="../gui/SettingsView.qml" line="398"/>
<location filename="../gui/SettingsView.qml" line="418"/>
<location filename="../gui/SettingsView.qml" line="421"/>
<location filename="../gui/SettingsView.qml" line="406"/>
<location filename="../gui/SettingsView.qml" line="407"/>
<location filename="../gui/SettingsView.qml" line="427"/>
<location filename="../gui/SettingsView.qml" line="430"/>
<source>%1 FPS</source>
<translation>%1 FPS</translation>
</message>
@@ -590,191 +520,186 @@
<translation type="vanished">%1 FPS (nicht unterstützt)</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="485"/>
<location filename="../gui/SettingsView.qml" line="493"/>
<source>Video bitrate:</source>
<translation>Bitrate do vídeo:</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="493"/>
<location filename="../gui/SettingsView.qml" line="501"/>
<source>Lower the bitrate on slower connections. Raise the bitrate to increase image quality.</source>
<translation>Abaixe o bitrate em conexões mais lentas. Aumente o bitrate para aumentar a qualidade de imagem.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="511"/>
<location filename="../gui/SettingsView.qml" line="519"/>
<source>Video bitrate: %1 Mbps</source>
<translation>Bitrate do vídeo: %1 Mbps</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="519"/>
<location filename="../gui/SettingsView.qml" line="527"/>
<source>Display mode</source>
<translation>Modo da tela</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="549"/>
<location filename="../gui/SettingsView.qml" line="545"/>
<source> (Recommended)</source>
<translatorcomment>Dont put the space in ransaltions</translatorcomment>
<translation> (Recomendado)</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="530"/>
<location filename="../gui/SettingsView.qml" line="937"/>
<location filename="../gui/SettingsView.qml" line="573"/>
<location filename="../gui/SettingsView.qml" line="919"/>
<source>Fullscreen</source>
<translation>Tela-cheia</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="599"/>
<location filename="../gui/SettingsView.qml" line="592"/>
<source>Fullscreen generally provides the best performance, but borderless windowed may work better with features like macOS Spaces, Alt+Tab, screenshot tools, on-screen overlays, etc.</source>
<translation>O modo Tela-cheia geralmente provém a melhor performance, mas Janela sem-bordas deve funcionar melhor com funcionalidades como o macOS Spaces, Alt+Tab, ferramentas de captura-de-tela, overlays da tela, etc.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="535"/>
<location filename="../gui/SettingsView.qml" line="577"/>
<source>Borderless windowed</source>
<translation>Janela Sem-bordas</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="403"/>
<location filename="../gui/SettingsView.qml" line="406"/>
<location filename="../gui/SettingsView.qml" line="412"/>
<location filename="../gui/SettingsView.qml" line="415"/>
<location filename="../gui/SettingsView.qml" line="428"/>
<location filename="../gui/SettingsView.qml" line="431"/>
<location filename="../gui/SettingsView.qml" line="424"/>
<location filename="../gui/SettingsView.qml" line="437"/>
<location filename="../gui/SettingsView.qml" line="440"/>
<source>%1 FPS (Unsupported)</source>
<translation>%1 FPS (Não-suportado)</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="540"/>
<location filename="../gui/SettingsView.qml" line="929"/>
<location filename="../gui/SettingsView.qml" line="581"/>
<location filename="../gui/SettingsView.qml" line="911"/>
<source>Windowed</source>
<translation>Janela</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="606"/>
<location filename="../gui/SettingsView.qml" line="599"/>
<source>V-Sync</source>
<translation>Sincronização Visual (V-Sync)</translation>
<translation>V-Sync</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="616"/>
<location filename="../gui/SettingsView.qml" line="609"/>
<source>Disabling V-Sync allows sub-frame rendering latency, but it can display visible tearing</source>
<translation>Desabilitando o V-Sync provém latência de renderização Sub-frame, mas pode demonstrar cortes visíveis na tela</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="623"/>
<location filename="../gui/SettingsView.qml" line="616"/>
<source>Frame pacing</source>
<translation>Rítimo do Frame</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="633"/>
<location filename="../gui/SettingsView.qml" line="626"/>
<source>Frame pacing reduces micro-stutter by delaying frames that come in too early</source>
<translation>O Rítimo do Frame reduz travamentos leves via atrasando frames que chegam muito cedo</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="643"/>
<location filename="../gui/SettingsView.qml" line="636"/>
<source>Audio Settings</source>
<translation>Configurações de Áudio</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="678"/>
<location filename="../gui/SettingsView.qml" line="671"/>
<source>Stereo</source>
<translation>Stéreo</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="682"/>
<location filename="../gui/SettingsView.qml" line="675"/>
<source>5.1 surround sound</source>
<translation>Som Surround 5.1</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="686"/>
<location filename="../gui/SettingsView.qml" line="679"/>
<source>7.1 surround sound</source>
<translation>Som Surround 7.1</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="700"/>
<location filename="../gui/SettingsView.qml" line="693"/>
<source>Mute host PC speakers while streaming</source>
<translation>Siencie os alto-falantes do PC de host enquanto streamando</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="710"/>
<location filename="../gui/SettingsView.qml" line="703"/>
<source>You must restart any game currently in progress for this setting to take effect</source>
<translation>Você deve re-iniciar qualquer jogo atualmente em progresso para esta configuração fazer efeito</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="716"/>
<location filename="../gui/SettingsView.qml" line="709"/>
<source>Mute audio stream when Moonlight is not the active window</source>
<translation>Silencie o áudio quando o Moonlight não é a janela ativa</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="727"/>
<location filename="../gui/SettingsView.qml" line="720"/>
<source>Mutes Moonlight&apos;s audio when you Alt+Tab out of the stream or click on a different window.</source>
<translation>Silencia o áudio do Moonlight quando você Alt+Tab pra fora da stream ou clica numa janela diferente.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="736"/>
<location filename="../gui/SettingsView.qml" line="729"/>
<source>UI Settings</source>
<translation>Configurações de UI</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="746"/>
<location filename="../gui/SettingsView.qml" line="739"/>
<source>Language</source>
<translation>Língua</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="772"/>
<location filename="../gui/SettingsView.qml" line="765"/>
<source>Automatic</source>
<translation>Automático</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="879"/>
<location filename="../gui/SettingsView.qml" line="864"/>
<source>You must restart Moonlight for this change to take effect</source>
<translation>Você deve reiniciar o Moonlight para esta modificação fazer efeito</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="896"/>
<location filename="../gui/SettingsView.qml" line="878"/>
<source>GUI display mode</source>
<translation>Modo de exibição da GUI</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="933"/>
<location filename="../gui/SettingsView.qml" line="915"/>
<source>Maximized</source>
<translation>Maximizado</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1006"/>
<location filename="../gui/SettingsView.qml" line="988"/>
<source>Input Settings</source>
<translation>Configurações de Entrada</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1027"/>
<location filename="../gui/SettingsView.qml" line="1009"/>
<source>This enables seamless mouse control without capturing the client&apos;s mouse cursor. It is ideal for remote desktop usage but will not work in most games.</source>
<translation>Isto habilita controle perfeito do mouse sem capturar o cursor do clente. É ideal para uso do Desktop Remoto mas não funcionará na maioria dos jogos.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1029"/>
<location filename="../gui/SettingsView.qml" line="1011"/>
<source>NOTE: Due to a bug in GeForce Experience, this option may not work properly if your host PC has multiple monitors.</source>
<translation>AVISO: Por causa de um bug no GeForce Experience, esta opção não deve funcionar corretamente se seu PC de host ter múltiplos monitores.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1345"/>
<source>Enabling HDR overrides manual decoder selections.</source>
<translation>Habilitar HDR sobrescreve seleções de decodificação manual.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1414"/>
<location filename="../gui/SettingsView.qml" line="1378"/>
<source>Enabling HDR overrides manual codec selections.</source>
<translation>Habilitar HDR sobrescreve seleções de codec manuais.</translation>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1420"/>
<location filename="../gui/SettingsView.qml" line="1384"/>
<source>Enable HDR (Experimental)</source>
<translation>Habilitar HDR (Experimental)</translation>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1431"/>
<location filename="../gui/SettingsView.qml" line="1395"/>
<source>The stream will be HDR-capable, but some games may require an HDR monitor on your host PC to enable HDR mode.</source>
<translation>O stream será HDR-capaz, más alguns jogos podem requerer monitor de HDR no seu host PC para habilitar modo HDR.</translation>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1433"/>
<location filename="../gui/SettingsView.qml" line="1397"/>
<source>HDR streaming is not supported on this PC.</source>
<translation>HDR streaming não é suportado por este PC.</translation>
<translation type="unfinished"></translation>
</message>
<message>
<source>Capture system keyboard shortcuts while streaming in fullscreen</source>
@@ -785,193 +710,193 @@
<translation type="vanished">Dies ermöglicht die Erfassung von systemweiten Tastenkombinationen wie Alt+Tab, die normalerweise vom Client beim Streamen im Vollbildmodus ausgeführt werden würden.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1048"/>
<location filename="../gui/SettingsView.qml" line="1030"/>
<source>NOTE: Certain keyboard shortcuts like Ctrl+Alt+Del on Windows cannot be intercepted by any application, including Moonlight.</source>
<translation>AVISO: Alguns atalhos de teclado como Ctrl+Alt+Del no Windows não poderão ser interceptados por nenhuma aplicação, incuíndo o Moonlight.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1111"/>
<location filename="../gui/SettingsView.qml" line="1093"/>
<source>Use touchscreen as a virtual trackpad</source>
<translation>Use o touchscreen como um trackpad virtual</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1128"/>
<location filename="../gui/SettingsView.qml" line="1110"/>
<source>Swap left and right mouse buttons</source>
<translation>Inverta os botões esquerdo e direito do mouse</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1140"/>
<location filename="../gui/SettingsView.qml" line="1122"/>
<source>Reverse mouse scrolling direction</source>
<translation>Inverta a diração da roda do mouse</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1154"/>
<location filename="../gui/SettingsView.qml" line="1136"/>
<source>Gamepad Settings</source>
<translation>Configurações do Controle</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1164"/>
<location filename="../gui/SettingsView.qml" line="1146"/>
<source>Swap A/B and X/Y gamepad buttons</source>
<translation>Troque os botões A/B e X/Y do Controle</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1182"/>
<location filename="../gui/SettingsView.qml" line="1164"/>
<source>This switches gamepads into a Nintendo-style button layout</source>
<translation>Isto troca controles para um layout de botões estilo-Nintendo</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1188"/>
<location filename="../gui/SettingsView.qml" line="1170"/>
<source>Force gamepad #1 always connected</source>
<translation>Forçe o controle #1 sempre estar conectado</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1198"/>
<location filename="../gui/SettingsView.qml" line="1180"/>
<source>Forces a single gamepad to always stay connected to the host, even if no gamepads are actually connected to this PC.</source>
<translation>Força um único controle sempre se manter conectado com o host, mesmo que nenhum controle esteja realmente conectado neste PC.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1028"/>
<location filename="../gui/SettingsView.qml" line="1010"/>
<source>You can toggle this while streaming using Ctrl+Alt+Shift+M.</source>
<translation>Você pode habilitar isto enquanto streamando usando Ctrl+Alt+Shift+M.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1206"/>
<location filename="../gui/SettingsView.qml" line="1188"/>
<source>Enable mouse control with gamepads by holding the &apos;Start&apos; button</source>
<translation>Habilite o controle do mouse com controles enquanto segurando o botão &apos;Start&apos;</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1217"/>
<location filename="../gui/SettingsView.qml" line="1199"/>
<source>Process gamepad input when Moonlight is in the background</source>
<translation>Processe a entrada do controle quando o Moonlight estiver rodando no fundo</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1228"/>
<location filename="../gui/SettingsView.qml" line="1210"/>
<source>Allows Moonlight to capture gamepad inputs even if it&apos;s not the current window in focus</source>
<translation>Habilita o Moonlight para capturar entradas do controle mesmo se não for a janela em foco atual</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1237"/>
<location filename="../gui/SettingsView.qml" line="1219"/>
<source>Host Settings</source>
<translation>Configurações de Host</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1277"/>
<location filename="../gui/SettingsView.qml" line="1259"/>
<source>Advanced Settings</source>
<translation>Configurações Avançadas</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="653"/>
<location filename="../gui/SettingsView.qml" line="646"/>
<source>Audio configuration</source>
<translation>Configuração de Áudio</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="950"/>
<location filename="../gui/SettingsView.qml" line="932"/>
<source>Show connection quality warnings</source>
<translation>Mostre avisos de qualidade de conexão</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="962"/>
<location filename="../gui/SettingsView.qml" line="944"/>
<source>Discord Rich Presence integration</source>
<translation>Integração de Avantajada Presença do Discord</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="972"/>
<location filename="../gui/SettingsView.qml" line="954"/>
<source>Updates your Discord status to display the name of the game you&apos;re streaming.</source>
<translation>Atualize seu status do DIscord para mostrar o nome do jogo que você está streamando.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1199"/>
<location filename="../gui/SettingsView.qml" line="1181"/>
<source>Only enable this option when streaming a game that doesn&apos;t support gamepads being connected after startup.</source>
<translation>Apenas habilite esta opção quando streamando um jogo que não suporta contoles sendo conectados após a inicialização.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1017"/>
<location filename="../gui/SettingsView.qml" line="999"/>
<source>Optimize mouse for remote desktop instead of games</source>
<translation>Otimize o mouse para Desktop Remoto ao contrário de jogos</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="978"/>
<location filename="../gui/SettingsView.qml" line="960"/>
<source>Keep the display awake while streaming</source>
<translation>Manter o display ativo durante streaming</translation>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="988"/>
<location filename="../gui/SettingsView.qml" line="970"/>
<source>Prevents the screensaver from starting or the display from going to sleep while streaming.</source>
<translation>Impede que a tela de descanso inicie ou que o display adormeça durante streaming.</translation>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1039"/>
<location filename="../gui/SettingsView.qml" line="1021"/>
<source>Capture system keyboard shortcuts</source>
<translation>Capture teclas de atalho do sistema</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1047"/>
<location filename="../gui/SettingsView.qml" line="1029"/>
<source>This enables the capture of system-wide keyboard shortcuts like Alt+Tab that would normally be handled by the client OS while streaming.</source>
<translation>Isto habilita a captura de teclas de atalho do sistema como Alt+Tab que iriam normalmente ser manuseados pelo SO do cliente enquanto streamando.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1077"/>
<location filename="../gui/SettingsView.qml" line="1059"/>
<source>in fullscreen</source>
<translation>em tela-cheia</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1081"/>
<location filename="../gui/SettingsView.qml" line="1063"/>
<source>always</source>
<translation>sempre</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1121"/>
<location filename="../gui/SettingsView.qml" line="1103"/>
<source>When checked, the touchscreen acts like a trackpad. When unchecked, the touchscreen will directly control the mouse pointer.</source>
<translation>Quando selecionado, o touchscreen age como um touchpad. Quando não-selecionado, o touchscreen diretamente controlará o ponteiro do mouse.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1247"/>
<location filename="../gui/SettingsView.qml" line="1229"/>
<source>Optimize game settings for streaming</source>
<translation>Otimize as configurações do jogo para streaming</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1258"/>
<location filename="../gui/SettingsView.qml" line="1240"/>
<source>Quit app on host PC after ending stream</source>
<translation>Saia do aplicativo no PC de host depois de terminar a stream</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1268"/>
<location filename="../gui/SettingsView.qml" line="1250"/>
<source>This will close the app or game you are streaming when you end your stream. You will lose any unsaved progress!</source>
<translation>Isto fechará o aplicativo ou jogo que estás streamando no momento que ela terminar. Você perderá qualquer progresso não salvo!</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1287"/>
<location filename="../gui/SettingsView.qml" line="1269"/>
<source>Video decoder</source>
<translation>Decodificador de vídeo</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1313"/>
<location filename="../gui/SettingsView.qml" line="1382"/>
<location filename="../gui/SettingsView.qml" line="1294"/>
<location filename="../gui/SettingsView.qml" line="1346"/>
<source>Automatic (Recommended)</source>
<translation>Automático (Recomendado)</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1317"/>
<location filename="../gui/SettingsView.qml" line="1298"/>
<source>Force software decoding</source>
<translation>Forçar decodificação via software</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1321"/>
<location filename="../gui/SettingsView.qml" line="1302"/>
<source>Force hardware decoding</source>
<translation>Forçar decodificação via hardware</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1351"/>
<location filename="../gui/SettingsView.qml" line="1315"/>
<source>Video codec</source>
<translation>Codec de vídeo</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1386"/>
<location filename="../gui/SettingsView.qml" line="1350"/>
<source>H.264</source>
<translation>H.264</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1390"/>
<location filename="../gui/SettingsView.qml" line="1354"/>
<source>HEVC (H.265)</source>
<translation>HEVC (H.265)</translation>
</message>
@@ -980,17 +905,17 @@
<translation type="vanished">HEVC HRD (Experimental)</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1439"/>
<location filename="../gui/SettingsView.qml" line="1403"/>
<source>Unlock unsupported FPS options</source>
<translation>Desbloqueie opções de FPS não-suportadas</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1458"/>
<location filename="../gui/SettingsView.qml" line="1422"/>
<source>Automatically find PCs on the local network (Recommended)</source>
<translation>Encontre PCs na rede local automaticamente (Recomendado)</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1483"/>
<location filename="../gui/SettingsView.qml" line="1447"/>
<source>Automatically detect blocked connections (Recommended)</source>
<translation>Detecte conexões bloqueadas automaticamente (Recomendado)</translation>
</message>
@@ -1047,94 +972,99 @@
<context>
<name>main</name>
<message>
<location filename="../gui/main.qml" line="418"/>
<location filename="../gui/main.qml" line="254"/>
<location filename="../gui/main.qml" line="264"/>
<location filename="../gui/main.qml" line="393"/>
<location filename="../gui/main.qml" line="408"/>
<source>Settings</source>
<translation>Configurações</translation>
</message>
<message>
<location filename="../gui/main.qml" line="265"/>
<location filename="../gui/main.qml" line="255"/>
<source>Version %1</source>
<translation>Versão %1</translation>
</message>
<message>
<location filename="../gui/main.qml" line="281"/>
<location filename="../gui/main.qml" line="271"/>
<source>Join our community on Discord</source>
<translation>Participe da nossa comunidade no Discord</translation>
</message>
<message>
<location filename="../gui/main.qml" line="283"/>
<source>Computers</source>
<translation type="vanished">Computadores</translation>
<translation>Computadores</translation>
</message>
<message>
<location filename="../gui/main.qml" line="300"/>
<location filename="../gui/main.qml" line="290"/>
<source>Add PC manually</source>
<translation>Adicione o PC manualmente</translation>
</message>
<message>
<location filename="../gui/main.qml" line="340"/>
<location filename="../gui/main.qml" line="330"/>
<source>Update available for Moonlight: Version %1</source>
<translation>Atualização disponível para o Moonlight: Versão %1</translation>
</message>
<message>
<location filename="../gui/main.qml" line="387"/>
<location filename="../gui/main.qml" line="377"/>
<source>Gamepad Mapper</source>
<translation>Mapeador de Controle</translation>
</message>
<message>
<location filename="../gui/main.qml" line="381"/>
<source>Gamepad Mapping</source>
<translation type="vanished">Mapeamento de Controle</translation>
<translation>Mapeamento de Controle</translation>
</message>
<message>
<source>No functioning hardware accelerated H.264 video decoder was detected by Moonlight. Your streaming performance may be severely degraded in this configuration.</source>
<translation type="vanished">Moonlight hat keinen funktionierenden hardwarebeschleunigten H.264-Videodecoder erkannt. Deine Streaming-Performance kann in dieser Konfiguration stark beeinträchtigt sein.</translation>
</message>
<message>
<location filename="../gui/main.qml" line="433"/>
<location filename="../gui/main.qml" line="423"/>
<source>Hardware acceleration doesn&apos;t work on XWayland. Continuing on XWayland may result in poor streaming performance. Try running with QT_QPA_PLATFORM=wayland or switch to X11.</source>
<translation>Aceleração de hardware não funciona no XWayland. Continuando com o XWayLand pode resultar em baixa performance de streaming. Tente rodar com QT_QPA_PLATFORM=wayland ou troque para X11.</translation>
</message>
<message>
<location filename="../gui/main.qml" line="442"/>
<location filename="../gui/main.qml" line="432"/>
<source>This version of Moonlight isn&apos;t optimized for your PC. Please download the &apos;%1&apos; version of Moonlight for the best streaming performance.</source>
<translation>Esta versão do Moonlight não é otimizada para seu PC. Por favor baixe a versão &apos;%1&apos; do Moonlight para a melhor performance de streaming.</translation>
</message>
<message>
<location filename="../gui/main.qml" line="451"/>
<location filename="../gui/main.qml" line="441"/>
<source>Moonlight detected gamepads without a mapping:</source>
<translation>O Moonlight detectou controles sem mapeamento:</translation>
</message>
<message>
<location filename="../gui/main.qml" line="364"/>
<location filename="../gui/main.qml" line="354"/>
<source>Help</source>
<translation>Ajuda</translation>
</message>
<message>
<location filename="../gui/main.qml" line="425"/>
<location filename="../gui/main.qml" line="415"/>
<source>No functioning hardware accelerated video decoder was detected by Moonlight. Your streaming performance may be severely degraded in this configuration.</source>
<translation>Nenhum decodificador de vídeo acelerado por hardware foi detectado pelo Moonlight. Sua performance de streaming pode ser severamente degradada por esta configuração.</translation>
</message>
<message>
<location filename="../gui/main.qml" line="427"/>
<location filename="../gui/main.qml" line="417"/>
<source>Click the Help button for more information on solving this problem.</source>
<translation>Clique no botão de Ajuda para mais informações sobre a resolução deste problema.</translation>
</message>
<message>
<location filename="../gui/main.qml" line="435"/>
<location filename="../gui/main.qml" line="425"/>
<source>Click the Help button for more information.</source>
<translation>Clique o botão de Ajuda para mais informações.</translation>
</message>
<message>
<location filename="../gui/main.qml" line="453"/>
<location filename="../gui/main.qml" line="443"/>
<source>Click the Help button for information on how to map your gamepads.</source>
<translation>Clique no botão de Ajuda para informações em como mapear seus controles.</translation>
</message>
<message>
<location filename="../gui/main.qml" line="461"/>
<location filename="../gui/main.qml" line="451"/>
<source>Are you sure you want to quit?</source>
<translation>Tem certeza que deseja sair?</translation>
</message>
<message>
<location filename="../gui/main.qml" line="491"/>
<location filename="../gui/main.qml" line="481"/>
<source>Enter the IP address of your GameStream PC:</source>
<translation>Inserte o endereço de IP do seu PC de GameStream:</translation>
</message>
Binary file not shown.
+160 -226
View File
@@ -51,24 +51,6 @@
<translation>Tem certeza de que deseja sair do %1? Qualquer progresso não salvo será perdido.</translation>
</message>
</context>
<context>
<name>CliPair</name>
<message>
<location filename="../gui/CliPair.qml" line="9"/>
<source>Establishing connection to PC...</source>
<translation>Estabelecendo conexão com o computador...</translation>
</message>
<message>
<location filename="../gui/CliPair.qml" line="13"/>
<source>Pairing... Please enter &apos;%1&apos; on %2.</source>
<translation>Pareando... Por favor inserir &apos;%1&apos; on %2.</translation>
</message>
<message>
<location filename="../gui/CliPair.qml" line="85"/>
<source>Pairing completed successfully</source>
<translation>Pareamento finalizado com sucesso</translation>
</message>
</context>
<context>
<name>CliQuitStreamSegue</name>
<message>
@@ -87,7 +69,7 @@
<message>
<location filename="../gui/CliStartStreamSegue.qml" line="9"/>
<source>Establishing connection to PC...</source>
<translation>Estabelecendo conexão com o computador...</translation>
<translation type="unfinished">Estabelecendo conexão com o PC...</translation>
</message>
<message>
<location filename="../gui/CliStartStreamSegue.qml" line="13"/>
@@ -105,7 +87,7 @@
<message>
<location filename="../gui/GamepadMapper.qml" line="4"/>
<source>Gamepad Mapping</source>
<translation>Mapeando Gamepad</translation>
<translation type="unfinished"></translation>
</message>
</context>
<context>
@@ -126,17 +108,17 @@
<message>
<location filename="../gui/PcView.qml" line="67"/>
<source>Unable to connect to the specified PC.</source>
<translation>Não foi possível conectar ao computador especificado.</translation>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="70"/>
<source>This PC&apos;s Internet connection is blocking Moonlight. Streaming over the Internet may not work while connected to this network.</source>
<translation>A conexão com a internet deste computador está bloqueando o Moonlight. Streaming através da Internet pode não funcionar corretamente enquanto conectado à esta rede.</translation>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="73"/>
<source>Click the Help button for possible solutions.</source>
<translation>Clique no botão de Ajuda para possíveis soluções.</translation>
<translation type="unfinished"></translation>
</message>
<message>
<source>Searching for PCs with NVIDIA GameStream enabled...</source>
@@ -145,7 +127,7 @@
<message>
<location filename="../gui/PcView.qml" line="103"/>
<source>Automatic PC discovery is disabled. Add your PC manually.</source>
<translation>A descoberta automática de computador está desabilitada. Adicione seu computador manualmente.</translation>
<translation type="unfinished"></translation>
</message>
<message>
<source>View Apps</source>
@@ -158,74 +140,75 @@
<message>
<location filename="../gui/PcView.qml" line="187"/>
<source>Wake PC</source>
<translation>Acordar computador</translation>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="193"/>
<source>Test Network</source>
<translation>Testar conexão</translation>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="202"/>
<source>Rename PC</source>
<translation>Renomear PC</translation>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="211"/>
<source>Delete PC</source>
<translation>Excluir PC</translation>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="224"/>
<source>The version of GeForce Experience on %1 is not supported by this build of Moonlight. You must update Moonlight to stream from %1.</source>
<translation>A versão do GeForce Experience em %1 não é suportada por esta versão do Moonlight. Você deve atualizar o Moonlight to stream para %1.</translation>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="247"/>
<source>You cannot pair while a previous session is still running on the host PC. Quit any running games or reboot the host PC, then try pairing again.</source>
<translation type="vanished">Você não pode parear enquanto a sessão anterior está em progresso no PC do host. Encerre jogos em andamento ou reinicie o PC host, e tente parear novamente.</translation>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="294"/>
<location filename="../gui/PcView.qml" line="302"/>
<source>Please enter %1 on your GameStream PC. This dialog will close when pairing is completed.</source>
<translation>Por favor inserir %1 no seu GameStream PC. Este diálogo irá encerrar quando o pareamento estiver completo.</translation>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="305"/>
<location filename="../gui/PcView.qml" line="313"/>
<source>Are you sure you want to remove this PC?</source>
<translation>Tem certeza que quer remover este computador?</translation>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="322"/>
<location filename="../gui/PcView.qml" line="330"/>
<source>Moonlight is testing your network connection to determine if NVIDIA GameStream is blocked.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="322"/>
<location filename="../gui/PcView.qml" line="330"/>
<source>This may take a few seconds…</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="333"/>
<location filename="../gui/PcView.qml" line="341"/>
<source>This network does not appear to be blocking Moonlight. If you still have trouble connecting, check your PC&apos;s firewall settings.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="333"/>
<location filename="../gui/PcView.qml" line="341"/>
<source>If you are trying to stream over the Internet, install the Moonlight Internet Hosting Tool on your gaming PC and run the included Internet Streaming Tester to check your gaming PC&apos;s Internet connection.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="337"/>
<location filename="../gui/PcView.qml" line="345"/>
<source>Your PC&apos;s current network connection seems to be blocking Moonlight. Streaming over the Internet may not work while connected to this network.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="337"/>
<location filename="../gui/PcView.qml" line="345"/>
<source>The following network ports were blocked:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="329"/>
<location filename="../gui/PcView.qml" line="337"/>
<source>The network test could not be performed because none of Moonlight&apos;s connection testing servers were reachable from this PC. Check your Internet connection or try again later.</source>
<translation type="unfinished"></translation>
</message>
@@ -255,43 +238,15 @@
<translation type="unfinished">Ver Todos os Jogos</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="349"/>
<location filename="../gui/PcView.qml" line="357"/>
<source>Enter the new name for this PC:</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>PendingPairingTask</name>
<message>
<location filename="../backend/computermanager.cpp" line="535"/>
<source>The PIN from the PC didn&apos;t match. Please try again.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../backend/computermanager.cpp" line="539"/>
<source>You cannot pair while a previous session is still running on the host PC. Quit any running games or reboot the host PC, then try pairing again.</source>
<translation type="unfinished">Você não pode parear enquanto a sessão anterior está em progresso no PC do host. Encerre jogos em andamento ou reinicie o PC host, e tente parear novamente.</translation>
</message>
<message>
<location filename="../backend/computermanager.cpp" line="542"/>
<source>Pairing failed. Please try again.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../backend/computermanager.cpp" line="546"/>
<source>Another pairing attempt is already in progress.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../backend/computermanager.cpp" line="556"/>
<source>GeForce Experience returned error: %1</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>PendingQuitTask</name>
<message>
<location filename="../backend/computermanager.cpp" line="606"/>
<location filename="../backend/computermanager.cpp" line="540"/>
<source>The running game wasn&apos;t started by this PC. You must quit the game on the host PC manually or use the device that originally started the game.</source>
<translation type="unfinished"></translation>
</message>
@@ -299,16 +254,6 @@
<context>
<name>QObject</name>
<message>
<location filename="../cli/pair.cpp" line="80"/>
<source>%1 is already paired</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>You cannot pair while a previous session is still running on the host PC. Quit any running games or reboot the host PC, then try pairing again.</source>
<translation type="obsolete">Você não pode parear enquanto a sessão anterior está em progresso no PC do host. Encerre jogos em andamento ou reinicie o PC host, e tente parear novamente.</translation>
</message>
<message>
<location filename="../cli/pair.cpp" line="109"/>
<location filename="../cli/quitstream.cpp" line="76"/>
<location filename="../cli/startstream.cpp" line="133"/>
<source>Failed to connect to %1</source>
@@ -331,11 +276,6 @@
<source>Failed to find application %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../cli/listapps.cpp" line="99"/>
<source>Computer %1 has not been paired. Please open Moonlight to pair before retrieving games list.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>QuitSegue</name>
@@ -367,39 +307,29 @@
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="103"/>
<location filename="../streaming/session.cpp" line="102"/>
<source>Something went wrong on your host PC when starting the stream.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="104"/>
<location filename="../streaming/session.cpp" line="103"/>
<source>Make sure you don&apos;t have any DRM-protected content open on your host PC. You can also try restarting your host PC.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="105"/>
<location filename="../streaming/session.cpp" line="104"/>
<source>If the issue persists, try reinstalling your GPU drivers and GeForce Experience.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="110"/>
<source>The host PC reported a fatal video encoding error.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="111"/>
<source>Try disabling HDR mode, changing the streaming resolution, or changing your host PC&apos;s display resolution.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="116"/>
<location filename="../streaming/session.cpp" line="109"/>
<source>Connection terminated</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="661"/>
<source>The version of GeForce Experience on %1 is not supported by this build of Moonlight. You must update Moonlight to stream from %1.</source>
<translation type="unfinished">A versão do GeForce Experience em %1 não é suportada por esta versão do Moonlight. Você deve atualizar o Moonlight to stream para %1.</translation>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="666"/>
@@ -486,32 +416,32 @@
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="810"/>
<location filename="../streaming/session.cpp" line="805"/>
<source>Your host PC&apos;s GPU doesn&apos;t support streaming video resolutions over 4K.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="814"/>
<location filename="../streaming/session.cpp" line="809"/>
<source>Video resolutions over 4K are only supported by the HEVC codec.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="828"/>
<location filename="../streaming/session.cpp" line="823"/>
<source>Your selection to force hardware decoding cannot be satisfied due to missing hardware decoding support on this PC&apos;s GPU.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="831"/>
<location filename="../streaming/session.cpp" line="826"/>
<source>Your codec selection and force hardware decoding setting are not compatible. This PC&apos;s GPU lacks support for decoding your chosen codec.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="1176"/>
<location filename="../streaming/session.cpp" line="1159"/>
<source>GeForce Experience returned error: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="1697"/>
<location filename="../streaming/session.cpp" line="1691"/>
<source>Unable to initialize video decoder. Please check your streaming settings and try again.</source>
<translation type="unfinished"></translation>
</message>
@@ -524,60 +454,60 @@
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="72"/>
<location filename="../gui/SettingsView.qml" line="70"/>
<source>Resolution and FPS</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="80"/>
<location filename="../gui/SettingsView.qml" line="78"/>
<source>Setting values too high for your PC or network connection may cause lag, stuttering, or errors.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="62"/>
<location filename="../gui/SettingsView.qml" line="60"/>
<source>Basic Settings</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="200"/>
<location filename="../gui/SettingsView.qml" line="209"/>
<source>720p</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="206"/>
<location filename="../gui/SettingsView.qml" line="215"/>
<source>1080p</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="212"/>
<location filename="../gui/SettingsView.qml" line="221"/>
<source>1440p</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="218"/>
<location filename="../gui/SettingsView.qml" line="227"/>
<source>4K</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="322"/>
<location filename="../gui/SettingsView.qml" line="331"/>
<source>Custom resolutions are not officially supported by GeForce Experience, so it will not set your host display resolution. You will need to set it manually while in game.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="323"/>
<location filename="../gui/SettingsView.qml" line="332"/>
<source>Resolutions that are not supported by your client or host PC may cause streaming errors.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="329"/>
<location filename="../gui/SettingsView.qml" line="338"/>
<source>Enter a custom resolution:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="397"/>
<location filename="../gui/SettingsView.qml" line="398"/>
<location filename="../gui/SettingsView.qml" line="418"/>
<location filename="../gui/SettingsView.qml" line="421"/>
<location filename="../gui/SettingsView.qml" line="406"/>
<location filename="../gui/SettingsView.qml" line="407"/>
<location filename="../gui/SettingsView.qml" line="427"/>
<location filename="../gui/SettingsView.qml" line="430"/>
<source>%1 FPS</source>
<translation type="unfinished"></translation>
</message>
@@ -586,189 +516,184 @@
<translation type="vanished">%1 FPS (nicht unterstützt)</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="485"/>
<location filename="../gui/SettingsView.qml" line="493"/>
<source>Video bitrate:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="493"/>
<location filename="../gui/SettingsView.qml" line="501"/>
<source>Lower the bitrate on slower connections. Raise the bitrate to increase image quality.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="511"/>
<location filename="../gui/SettingsView.qml" line="519"/>
<source>Video bitrate: %1 Mbps</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="519"/>
<location filename="../gui/SettingsView.qml" line="527"/>
<source>Display mode</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="549"/>
<location filename="../gui/SettingsView.qml" line="545"/>
<source> (Recommended)</source>
<translatorcomment>Dont put the space in ransaltions</translatorcomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="530"/>
<location filename="../gui/SettingsView.qml" line="937"/>
<location filename="../gui/SettingsView.qml" line="573"/>
<location filename="../gui/SettingsView.qml" line="919"/>
<source>Fullscreen</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="599"/>
<location filename="../gui/SettingsView.qml" line="592"/>
<source>Fullscreen generally provides the best performance, but borderless windowed may work better with features like macOS Spaces, Alt+Tab, screenshot tools, on-screen overlays, etc.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="535"/>
<location filename="../gui/SettingsView.qml" line="577"/>
<source>Borderless windowed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="403"/>
<location filename="../gui/SettingsView.qml" line="406"/>
<location filename="../gui/SettingsView.qml" line="412"/>
<location filename="../gui/SettingsView.qml" line="415"/>
<location filename="../gui/SettingsView.qml" line="428"/>
<location filename="../gui/SettingsView.qml" line="431"/>
<location filename="../gui/SettingsView.qml" line="424"/>
<location filename="../gui/SettingsView.qml" line="437"/>
<location filename="../gui/SettingsView.qml" line="440"/>
<source>%1 FPS (Unsupported)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="540"/>
<location filename="../gui/SettingsView.qml" line="929"/>
<location filename="../gui/SettingsView.qml" line="581"/>
<location filename="../gui/SettingsView.qml" line="911"/>
<source>Windowed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="606"/>
<location filename="../gui/SettingsView.qml" line="599"/>
<source>V-Sync</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="616"/>
<location filename="../gui/SettingsView.qml" line="609"/>
<source>Disabling V-Sync allows sub-frame rendering latency, but it can display visible tearing</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="623"/>
<location filename="../gui/SettingsView.qml" line="616"/>
<source>Frame pacing</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="633"/>
<location filename="../gui/SettingsView.qml" line="626"/>
<source>Frame pacing reduces micro-stutter by delaying frames that come in too early</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="643"/>
<location filename="../gui/SettingsView.qml" line="636"/>
<source>Audio Settings</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="678"/>
<location filename="../gui/SettingsView.qml" line="671"/>
<source>Stereo</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="682"/>
<location filename="../gui/SettingsView.qml" line="675"/>
<source>5.1 surround sound</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="686"/>
<location filename="../gui/SettingsView.qml" line="679"/>
<source>7.1 surround sound</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="700"/>
<location filename="../gui/SettingsView.qml" line="693"/>
<source>Mute host PC speakers while streaming</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="710"/>
<location filename="../gui/SettingsView.qml" line="703"/>
<source>You must restart any game currently in progress for this setting to take effect</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="716"/>
<location filename="../gui/SettingsView.qml" line="709"/>
<source>Mute audio stream when Moonlight is not the active window</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="727"/>
<location filename="../gui/SettingsView.qml" line="720"/>
<source>Mutes Moonlight&apos;s audio when you Alt+Tab out of the stream or click on a different window.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="736"/>
<location filename="../gui/SettingsView.qml" line="729"/>
<source>UI Settings</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="746"/>
<location filename="../gui/SettingsView.qml" line="739"/>
<source>Language</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="772"/>
<location filename="../gui/SettingsView.qml" line="765"/>
<source>Automatic</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="879"/>
<location filename="../gui/SettingsView.qml" line="864"/>
<source>You must restart Moonlight for this change to take effect</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="896"/>
<location filename="../gui/SettingsView.qml" line="878"/>
<source>GUI display mode</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="933"/>
<location filename="../gui/SettingsView.qml" line="915"/>
<source>Maximized</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1006"/>
<location filename="../gui/SettingsView.qml" line="988"/>
<source>Input Settings</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1027"/>
<location filename="../gui/SettingsView.qml" line="1009"/>
<source>This enables seamless mouse control without capturing the client&apos;s mouse cursor. It is ideal for remote desktop usage but will not work in most games.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1029"/>
<location filename="../gui/SettingsView.qml" line="1011"/>
<source>NOTE: Due to a bug in GeForce Experience, this option may not work properly if your host PC has multiple monitors.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1345"/>
<source>Enabling HDR overrides manual decoder selections.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1414"/>
<location filename="../gui/SettingsView.qml" line="1378"/>
<source>Enabling HDR overrides manual codec selections.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1420"/>
<location filename="../gui/SettingsView.qml" line="1384"/>
<source>Enable HDR (Experimental)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1431"/>
<location filename="../gui/SettingsView.qml" line="1395"/>
<source>The stream will be HDR-capable, but some games may require an HDR monitor on your host PC to enable HDR mode.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1433"/>
<location filename="../gui/SettingsView.qml" line="1397"/>
<source>HDR streaming is not supported on this PC.</source>
<translation type="unfinished"></translation>
</message>
@@ -781,208 +706,208 @@
<translation type="vanished">Dies ermöglicht die Erfassung von systemweiten Tastenkombinationen wie Alt+Tab, die normalerweise vom Client beim Streamen im Vollbildmodus ausgeführt werden würden.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1048"/>
<location filename="../gui/SettingsView.qml" line="1030"/>
<source>NOTE: Certain keyboard shortcuts like Ctrl+Alt+Del on Windows cannot be intercepted by any application, including Moonlight.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1111"/>
<location filename="../gui/SettingsView.qml" line="1093"/>
<source>Use touchscreen as a virtual trackpad</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1128"/>
<location filename="../gui/SettingsView.qml" line="1110"/>
<source>Swap left and right mouse buttons</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1140"/>
<location filename="../gui/SettingsView.qml" line="1122"/>
<source>Reverse mouse scrolling direction</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1154"/>
<location filename="../gui/SettingsView.qml" line="1136"/>
<source>Gamepad Settings</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1164"/>
<location filename="../gui/SettingsView.qml" line="1146"/>
<source>Swap A/B and X/Y gamepad buttons</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1182"/>
<location filename="../gui/SettingsView.qml" line="1164"/>
<source>This switches gamepads into a Nintendo-style button layout</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1188"/>
<location filename="../gui/SettingsView.qml" line="1170"/>
<source>Force gamepad #1 always connected</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1198"/>
<location filename="../gui/SettingsView.qml" line="1180"/>
<source>Forces a single gamepad to always stay connected to the host, even if no gamepads are actually connected to this PC.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1028"/>
<location filename="../gui/SettingsView.qml" line="1010"/>
<source>You can toggle this while streaming using Ctrl+Alt+Shift+M.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1206"/>
<location filename="../gui/SettingsView.qml" line="1188"/>
<source>Enable mouse control with gamepads by holding the &apos;Start&apos; button</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1217"/>
<location filename="../gui/SettingsView.qml" line="1199"/>
<source>Process gamepad input when Moonlight is in the background</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1228"/>
<location filename="../gui/SettingsView.qml" line="1210"/>
<source>Allows Moonlight to capture gamepad inputs even if it&apos;s not the current window in focus</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1237"/>
<location filename="../gui/SettingsView.qml" line="1219"/>
<source>Host Settings</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1277"/>
<location filename="../gui/SettingsView.qml" line="1259"/>
<source>Advanced Settings</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="653"/>
<location filename="../gui/SettingsView.qml" line="646"/>
<source>Audio configuration</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="950"/>
<location filename="../gui/SettingsView.qml" line="932"/>
<source>Show connection quality warnings</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="962"/>
<location filename="../gui/SettingsView.qml" line="944"/>
<source>Discord Rich Presence integration</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="972"/>
<location filename="../gui/SettingsView.qml" line="954"/>
<source>Updates your Discord status to display the name of the game you&apos;re streaming.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1199"/>
<location filename="../gui/SettingsView.qml" line="1181"/>
<source>Only enable this option when streaming a game that doesn&apos;t support gamepads being connected after startup.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1017"/>
<location filename="../gui/SettingsView.qml" line="999"/>
<source>Optimize mouse for remote desktop instead of games</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="978"/>
<location filename="../gui/SettingsView.qml" line="960"/>
<source>Keep the display awake while streaming</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="988"/>
<location filename="../gui/SettingsView.qml" line="970"/>
<source>Prevents the screensaver from starting or the display from going to sleep while streaming.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1039"/>
<location filename="../gui/SettingsView.qml" line="1021"/>
<source>Capture system keyboard shortcuts</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1047"/>
<location filename="../gui/SettingsView.qml" line="1029"/>
<source>This enables the capture of system-wide keyboard shortcuts like Alt+Tab that would normally be handled by the client OS while streaming.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1077"/>
<location filename="../gui/SettingsView.qml" line="1059"/>
<source>in fullscreen</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1081"/>
<location filename="../gui/SettingsView.qml" line="1063"/>
<source>always</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1121"/>
<location filename="../gui/SettingsView.qml" line="1103"/>
<source>When checked, the touchscreen acts like a trackpad. When unchecked, the touchscreen will directly control the mouse pointer.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1247"/>
<location filename="../gui/SettingsView.qml" line="1229"/>
<source>Optimize game settings for streaming</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1258"/>
<location filename="../gui/SettingsView.qml" line="1240"/>
<source>Quit app on host PC after ending stream</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1268"/>
<location filename="../gui/SettingsView.qml" line="1250"/>
<source>This will close the app or game you are streaming when you end your stream. You will lose any unsaved progress!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1287"/>
<location filename="../gui/SettingsView.qml" line="1269"/>
<source>Video decoder</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1313"/>
<location filename="../gui/SettingsView.qml" line="1382"/>
<location filename="../gui/SettingsView.qml" line="1294"/>
<location filename="../gui/SettingsView.qml" line="1346"/>
<source>Automatic (Recommended)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1317"/>
<location filename="../gui/SettingsView.qml" line="1298"/>
<source>Force software decoding</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1321"/>
<location filename="../gui/SettingsView.qml" line="1302"/>
<source>Force hardware decoding</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1351"/>
<location filename="../gui/SettingsView.qml" line="1315"/>
<source>Video codec</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1386"/>
<location filename="../gui/SettingsView.qml" line="1350"/>
<source>H.264</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1390"/>
<location filename="../gui/SettingsView.qml" line="1354"/>
<source>HEVC (H.265)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1439"/>
<location filename="../gui/SettingsView.qml" line="1403"/>
<source>Unlock unsupported FPS options</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1458"/>
<location filename="../gui/SettingsView.qml" line="1422"/>
<source>Automatically find PCs on the local network (Recommended)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1483"/>
<location filename="../gui/SettingsView.qml" line="1447"/>
<source>Automatically detect blocked connections (Recommended)</source>
<translation type="unfinished"></translation>
</message>
@@ -1013,7 +938,7 @@
<message>
<location filename="../gui/StreamSegue.qml" line="74"/>
<source>This PC&apos;s Internet connection is blocking Moonlight. Streaming over the Internet may not work while connected to this network.</source>
<translation type="unfinished">A conexão com a internet deste computador está bloqueando o Moonlight. Streaming através da Internet pode não funcionar corretamente enquanto conectado à esta rede.</translation>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/StreamSegue.qml" line="165"/>
@@ -1039,90 +964,99 @@
<context>
<name>main</name>
<message>
<location filename="../gui/main.qml" line="418"/>
<location filename="../gui/main.qml" line="254"/>
<location filename="../gui/main.qml" line="264"/>
<location filename="../gui/main.qml" line="393"/>
<location filename="../gui/main.qml" line="408"/>
<source>Settings</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/main.qml" line="265"/>
<location filename="../gui/main.qml" line="255"/>
<source>Version %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/main.qml" line="281"/>
<location filename="../gui/main.qml" line="271"/>
<source>Join our community on Discord</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/main.qml" line="283"/>
<source>Computers</source>
<translation type="obsolete">Computadores</translation>
<translation type="unfinished">Computadores</translation>
</message>
<message>
<location filename="../gui/main.qml" line="300"/>
<location filename="../gui/main.qml" line="290"/>
<source>Add PC manually</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/main.qml" line="340"/>
<location filename="../gui/main.qml" line="330"/>
<source>Update available for Moonlight: Version %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/main.qml" line="387"/>
<location filename="../gui/main.qml" line="377"/>
<source>Gamepad Mapper</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/main.qml" line="381"/>
<source>Gamepad Mapping</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>No functioning hardware accelerated H.264 video decoder was detected by Moonlight. Your streaming performance may be severely degraded in this configuration.</source>
<translation type="vanished">Moonlight hat keinen funktionierenden hardwarebeschleunigten H.264-Videodecoder erkannt. Deine Streaming-Performance kann in dieser Konfiguration stark beeinträchtigt sein.</translation>
</message>
<message>
<location filename="../gui/main.qml" line="433"/>
<location filename="../gui/main.qml" line="423"/>
<source>Hardware acceleration doesn&apos;t work on XWayland. Continuing on XWayland may result in poor streaming performance. Try running with QT_QPA_PLATFORM=wayland or switch to X11.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/main.qml" line="442"/>
<location filename="../gui/main.qml" line="432"/>
<source>This version of Moonlight isn&apos;t optimized for your PC. Please download the &apos;%1&apos; version of Moonlight for the best streaming performance.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/main.qml" line="451"/>
<location filename="../gui/main.qml" line="441"/>
<source>Moonlight detected gamepads without a mapping:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/main.qml" line="364"/>
<location filename="../gui/main.qml" line="354"/>
<source>Help</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/main.qml" line="425"/>
<location filename="../gui/main.qml" line="415"/>
<source>No functioning hardware accelerated video decoder was detected by Moonlight. Your streaming performance may be severely degraded in this configuration.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/main.qml" line="427"/>
<location filename="../gui/main.qml" line="417"/>
<source>Click the Help button for more information on solving this problem.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/main.qml" line="435"/>
<location filename="../gui/main.qml" line="425"/>
<source>Click the Help button for more information.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/main.qml" line="453"/>
<location filename="../gui/main.qml" line="443"/>
<source>Click the Help button for information on how to map your gamepads.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/main.qml" line="461"/>
<location filename="../gui/main.qml" line="451"/>
<source>Are you sure you want to quit?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/main.qml" line="491"/>
<location filename="../gui/main.qml" line="481"/>
<source>Enter the IP address of your GameStream PC:</source>
<translation type="unfinished"></translation>
</message>
Binary file not shown.
+155 -225
View File
@@ -28,7 +28,7 @@
<message>
<location filename="../gui/AppView.qml" line="315"/>
<source>Launch this app immediately when the host is selected, bypassing the app selection grid.</source>
<translation>Запустить это приложение сразу после выбора хоста, пропуская страницу выбора приложений.</translation>
<translation>Запустить эту игру при выборе хоста (пропустить страницу выбора игры)</translation>
</message>
<message>
<location filename="../gui/AppView.qml" line="324"/>
@@ -51,24 +51,6 @@
<translation>Вы уверены, что хотите завершить %1? Несохранённый прогресс может быть утерян.</translation>
</message>
</context>
<context>
<name>CliPair</name>
<message>
<location filename="../gui/CliPair.qml" line="9"/>
<source>Establishing connection to PC...</source>
<translation>Подключение к ПК...</translation>
</message>
<message>
<location filename="../gui/CliPair.qml" line="13"/>
<source>Pairing... Please enter &apos;%1&apos; on %2.</source>
<translation>Сопряжение... Пожалуйста, введите &quot;%1&quot; на %2.</translation>
</message>
<message>
<location filename="../gui/CliPair.qml" line="85"/>
<source>Pairing completed successfully</source>
<translation>Сопряжение успешно завершено</translation>
</message>
</context>
<context>
<name>CliQuitStreamSegue</name>
<message>
@@ -181,51 +163,52 @@
<translation>Версия GeForce Experience на %1 не поддерживается данной сборкой Moonlight. Вы должны обновить Moonlight для потоковой передачи с %1.</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="247"/>
<source>You cannot pair while a previous session is still running on the host PC. Quit any running games or reboot the host PC, then try pairing again.</source>
<translation type="vanished">Нельзя создать новую пару, пока на ПК ещё активно соединение. Завершите запущенную на хосте игру или перезапустите ПК-хост, затем попробуйте ещё раз.</translation>
<translation>Нельзя создать новую пару, пока на ПК ещё активно соединение. Завершите запущенную на хосте игру или перезапустите ПК-хост, затем попробуйте ещё раз.</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="294"/>
<location filename="../gui/PcView.qml" line="302"/>
<source>Please enter %1 on your GameStream PC. This dialog will close when pairing is completed.</source>
<translation>Введите %1 на ПК с GameStream. Этот диалог закроется автоматически при успешном сопряжении.</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="305"/>
<location filename="../gui/PcView.qml" line="313"/>
<source>Are you sure you want to remove this PC?</source>
<translation>Вы уверены, что хотите удалить этот ПК?</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="322"/>
<location filename="../gui/PcView.qml" line="330"/>
<source>Moonlight is testing your network connection to determine if NVIDIA GameStream is blocked.</source>
<translation>Moonlight тестирует выше сетевое подключение, чтобы найти проблемы с NVIDIA GameStream.</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="322"/>
<location filename="../gui/PcView.qml" line="330"/>
<source>This may take a few seconds…</source>
<translation>Это может занять несколько секунд…</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="333"/>
<location filename="../gui/PcView.qml" line="341"/>
<source>This network does not appear to be blocking Moonlight. If you still have trouble connecting, check your PC&apos;s firewall settings.</source>
<translation>Эта сеть не блокирует Moonlight. Если вы всё ещё не можете подключиться, проверьте настроки брандмауэра на ПК-хосте.</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="333"/>
<location filename="../gui/PcView.qml" line="341"/>
<source>If you are trying to stream over the Internet, install the Moonlight Internet Hosting Tool on your gaming PC and run the included Internet Streaming Tester to check your gaming PC&apos;s Internet connection.</source>
<translation>Если вы пытаетесь стримить через интернет, установите Moonlight Internet Hosting Tool на хост-ПК и запустите Internet Streaming Tester.</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="337"/>
<location filename="../gui/PcView.qml" line="345"/>
<source>Your PC&apos;s current network connection seems to be blocking Moonlight. Streaming over the Internet may not work while connected to this network.</source>
<translation>Ваше сетевое подключение блокирует выход Moonlight в интернет. Стриминг через интернет может не работать.</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="337"/>
<location filename="../gui/PcView.qml" line="345"/>
<source>The following network ports were blocked:</source>
<translation>Следующие порты оказались закрыты:</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="329"/>
<location filename="../gui/PcView.qml" line="337"/>
<source>The network test could not be performed because none of Moonlight&apos;s connection testing servers were reachable from this PC. Check your Internet connection or try again later.</source>
<translation>Не удалось подключиться к серверам Moonlight для проверки соединения. Проверьте своё подключение к интернету и попробуйте ещё раз.</translation>
</message>
@@ -255,43 +238,15 @@
<translation>Показать все игры</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="349"/>
<location filename="../gui/PcView.qml" line="357"/>
<source>Enter the new name for this PC:</source>
<translation>Введите новое имя для этого ПК:</translation>
</message>
</context>
<context>
<name>PendingPairingTask</name>
<message>
<location filename="../backend/computermanager.cpp" line="535"/>
<source>The PIN from the PC didn&apos;t match. Please try again.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../backend/computermanager.cpp" line="539"/>
<source>You cannot pair while a previous session is still running on the host PC. Quit any running games or reboot the host PC, then try pairing again.</source>
<translation type="unfinished">Нельзя создать новую пару, пока на ПК ещё активно соединение. Завершите запущенную на хосте игру или перезапустите ПК-хост, затем попробуйте ещё раз.</translation>
</message>
<message>
<location filename="../backend/computermanager.cpp" line="542"/>
<source>Pairing failed. Please try again.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../backend/computermanager.cpp" line="546"/>
<source>Another pairing attempt is already in progress.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../backend/computermanager.cpp" line="556"/>
<source>GeForce Experience returned error: %1</source>
<translation type="unfinished">Ошибка GeForce Experience: %1</translation>
</message>
</context>
<context>
<name>PendingQuitTask</name>
<message>
<location filename="../backend/computermanager.cpp" line="606"/>
<location filename="../backend/computermanager.cpp" line="540"/>
<source>The running game wasn&apos;t started by this PC. You must quit the game on the host PC manually or use the device that originally started the game.</source>
<translation>Выбранная игра уже запущена. Вручную закройте игру на хост-ПК, или используйте устройство, с которого она была запущена.</translation>
</message>
@@ -299,16 +254,6 @@
<context>
<name>QObject</name>
<message>
<location filename="../cli/pair.cpp" line="80"/>
<source>%1 is already paired</source>
<translation>%1 уже сопряжен</translation>
</message>
<message>
<source>You cannot pair while a previous session is still running on the host PC. Quit any running games or reboot the host PC, then try pairing again.</source>
<translation type="vanished">Нельзя создать новую пару, пока на ПК ещё активно соединение. Завершите запущенную на хосте игру или перезапустите ПК-хост, затем попробуйте ещё раз.</translation>
</message>
<message>
<location filename="../cli/pair.cpp" line="109"/>
<location filename="../cli/quitstream.cpp" line="76"/>
<location filename="../cli/startstream.cpp" line="133"/>
<source>Failed to connect to %1</source>
@@ -331,11 +276,6 @@
<source>Failed to find application %1</source>
<translation>Не удалось найти игру &quot;%1&quot;</translation>
</message>
<message>
<location filename="../cli/listapps.cpp" line="99"/>
<source>Computer %1 has not been paired. Please open Moonlight to pair before retrieving games list.</source>
<translation>Компьютер %1 не был сопряжен. Пожалуйста, откройте Moonlight для сопряжения перед получением списка игр.</translation>
</message>
</context>
<context>
<name>QuitSegue</name>
@@ -354,7 +294,7 @@
<message>
<location filename="../streaming/session.cpp" line="91"/>
<source>No video received from host.</source>
<translation>Видео не получена с раздающего компьютера.</translation>
<translation>Не удалось загрузить видео с хост-ПК. (No video received from host.)</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="92"/>
@@ -367,32 +307,22 @@
<translation>Ваше сетевое подключение не справляется с заданными настройками. Попробуйте изменить битрейт или использовать более быстрое подключение.</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="103"/>
<location filename="../streaming/session.cpp" line="102"/>
<source>Something went wrong on your host PC when starting the stream.</source>
<translation>Что-то пошло не так на хост-ПК при попытке начать стрим.</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="104"/>
<location filename="../streaming/session.cpp" line="103"/>
<source>Make sure you don&apos;t have any DRM-protected content open on your host PC. You can also try restarting your host PC.</source>
<translation>Убедитесь, что на нём не открыто защищённых DRM материалов. Также попытайтесь перезагрузить ПК.</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="105"/>
<location filename="../streaming/session.cpp" line="104"/>
<source>If the issue persists, try reinstalling your GPU drivers and GeForce Experience.</source>
<translation>Если проблема не уходит, попробуйте переустановить драйвер видеокарты и/или GeForce Experience.</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="110"/>
<source>The host PC reported a fatal video encoding error.</source>
<translation>Хост-ПК сообщил о критической ошибке видео кодирования.</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="111"/>
<source>Try disabling HDR mode, changing the streaming resolution, or changing your host PC&apos;s display resolution.</source>
<translation>Попробуйте отключить HDR, изменить разрешение стрима или изменить разрешение дисплея на хост-ПК.</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="116"/>
<location filename="../streaming/session.cpp" line="109"/>
<source>Connection terminated</source>
<translation>Подключение разорвано</translation>
</message>
@@ -443,17 +373,17 @@
<message>
<location filename="../streaming/session.cpp" line="724"/>
<source>Using software decoding due to your selection to force H.264 without GPU support. This may cause poor streaming performance.</source>
<translation>Использования программного обеспечения с декодированием в следствие выбора H.264 без поддержки ГП. Это может вызвать низкий уровень производительности при трансляции.</translation>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="734"/>
<source>Your host PC and client PC don&apos;t support the same video codecs. This may cause poor streaming performance.</source>
<translation>Ваш компьютер, осуществляющий раздачу, или компьютер-клиент не поддерживают одинаковые видео кодеки. Это может вызвать низкую производительность потока.</translation>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="737"/>
<source>Your client GPU doesn&apos;t support H.264 decoding. This may cause poor streaming performance.</source>
<translation>Клиентская графическая карта не поддерживает H.264 кодировку. Это может вызвать низкую производительность потока.</translation>
<translation type="unfinished"></translation>
</message>
<message>
<source>%1 doesn&apos;t support HDR10.</source>
@@ -490,32 +420,32 @@
<translation>Подключённый геймпад не настроен и не может быть использован. Посетите раздел помощи Moonlight, чтобы исправить это.</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="810"/>
<location filename="../streaming/session.cpp" line="805"/>
<source>Your host PC&apos;s GPU doesn&apos;t support streaming video resolutions over 4K.</source>
<translation>Видеокарта хост-ПК не поддерживает разрешения выше 4K.</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="814"/>
<location filename="../streaming/session.cpp" line="809"/>
<source>Video resolutions over 4K are only supported by the HEVC codec.</source>
<translation>Разрешения выше 4K работают только с HEVC.</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="828"/>
<location filename="../streaming/session.cpp" line="823"/>
<source>Your selection to force hardware decoding cannot be satisfied due to missing hardware decoding support on this PC&apos;s GPU.</source>
<translation>Вы выбрали аппаратное декодирование, но видеокарта этого ПК не поддерживает аппаратное декодирование для выбранного кодека.</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="831"/>
<location filename="../streaming/session.cpp" line="826"/>
<source>Your codec selection and force hardware decoding setting are not compatible. This PC&apos;s GPU lacks support for decoding your chosen codec.</source>
<translation>Вы выбрали аппаратное декодирование, но видеокарта этого ПК не поддерживает аппаратное декодирование для выбранного кодека.</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="1176"/>
<location filename="../streaming/session.cpp" line="1159"/>
<source>GeForce Experience returned error: %1</source>
<translation>Ошибка GeForce Experience: %1</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="1697"/>
<location filename="../streaming/session.cpp" line="1691"/>
<source>Unable to initialize video decoder. Please check your streaming settings and try again.</source>
<translation>Не удалось запустить декодирование видео. Проверьте настройки стрима и попробуйте ещё раз.</translation>
</message>
@@ -528,60 +458,60 @@
<translation>Настройки</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="72"/>
<location filename="../gui/SettingsView.qml" line="70"/>
<source>Resolution and FPS</source>
<translation>Разрешение и FPS</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="80"/>
<location filename="../gui/SettingsView.qml" line="78"/>
<source>Setting values too high for your PC or network connection may cause lag, stuttering, or errors.</source>
<translation>Слишком высокие настройки могут вызвать проблемы с производительностью, подтормаживания, или ошибки.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="62"/>
<location filename="../gui/SettingsView.qml" line="60"/>
<source>Basic Settings</source>
<translation>Основные настройки</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="200"/>
<location filename="../gui/SettingsView.qml" line="209"/>
<source>720p</source>
<translation>720p</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="206"/>
<location filename="../gui/SettingsView.qml" line="215"/>
<source>1080p</source>
<translation>1080p</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="212"/>
<location filename="../gui/SettingsView.qml" line="221"/>
<source>1440p</source>
<translation>1440p</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="218"/>
<location filename="../gui/SettingsView.qml" line="227"/>
<source>4K</source>
<translation>4K</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="322"/>
<location filename="../gui/SettingsView.qml" line="331"/>
<source>Custom resolutions are not officially supported by GeForce Experience, so it will not set your host display resolution. You will need to set it manually while in game.</source>
<translation>Кастомные разрешения не поддерживаются официально в GeForce Experience, так что разрешения дисплея хост-ПК не будет изменено. Вам нужно будет задать его вручную в игре.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="323"/>
<location filename="../gui/SettingsView.qml" line="332"/>
<source>Resolutions that are not supported by your client or host PC may cause streaming errors.</source>
<translation>Если выбранное разрешение не поддерживается хостом или клиентом, могут возникнуть ошибки.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="329"/>
<location filename="../gui/SettingsView.qml" line="338"/>
<source>Enter a custom resolution:</source>
<translation>Введите желаемое разрешение:</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="397"/>
<location filename="../gui/SettingsView.qml" line="398"/>
<location filename="../gui/SettingsView.qml" line="418"/>
<location filename="../gui/SettingsView.qml" line="421"/>
<location filename="../gui/SettingsView.qml" line="406"/>
<location filename="../gui/SettingsView.qml" line="407"/>
<location filename="../gui/SettingsView.qml" line="427"/>
<location filename="../gui/SettingsView.qml" line="430"/>
<source>%1 FPS</source>
<translation>%1 FPS</translation>
</message>
@@ -590,191 +520,186 @@
<translation type="vanished">%1 FPS (nicht unterstützt)</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="485"/>
<location filename="../gui/SettingsView.qml" line="493"/>
<source>Video bitrate:</source>
<translation>Битрейт видео:</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="493"/>
<location filename="../gui/SettingsView.qml" line="501"/>
<source>Lower the bitrate on slower connections. Raise the bitrate to increase image quality.</source>
<translation>Используйте низкий битрейт при медленном соединении. Высокий битрейт улучшит качество видео.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="511"/>
<location filename="../gui/SettingsView.qml" line="519"/>
<source>Video bitrate: %1 Mbps</source>
<translation>Битрейт видео: %1 Мб/с</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="519"/>
<location filename="../gui/SettingsView.qml" line="527"/>
<source>Display mode</source>
<translation>Режим дисплея</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="549"/>
<location filename="../gui/SettingsView.qml" line="545"/>
<source> (Recommended)</source>
<translatorcomment>Dont put the space in ransaltions</translatorcomment>
<translation> (Рекомендуется)</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="530"/>
<location filename="../gui/SettingsView.qml" line="937"/>
<location filename="../gui/SettingsView.qml" line="573"/>
<location filename="../gui/SettingsView.qml" line="919"/>
<source>Fullscreen</source>
<translation>На весь экран</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="599"/>
<location filename="../gui/SettingsView.qml" line="592"/>
<source>Fullscreen generally provides the best performance, but borderless windowed may work better with features like macOS Spaces, Alt+Tab, screenshot tools, on-screen overlays, etc.</source>
<translation>Полноэкранный режим уменьшает задержку и улучшает производительность, но режим в окне без рамки может лучше работать с Alt+Tab, инструментами для создания скриншотов, оверлеями и Spaces в MacOS.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="535"/>
<location filename="../gui/SettingsView.qml" line="577"/>
<source>Borderless windowed</source>
<translation>В окне без рамки</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="403"/>
<location filename="../gui/SettingsView.qml" line="406"/>
<location filename="../gui/SettingsView.qml" line="412"/>
<location filename="../gui/SettingsView.qml" line="415"/>
<location filename="../gui/SettingsView.qml" line="428"/>
<location filename="../gui/SettingsView.qml" line="431"/>
<location filename="../gui/SettingsView.qml" line="424"/>
<location filename="../gui/SettingsView.qml" line="437"/>
<location filename="../gui/SettingsView.qml" line="440"/>
<source>%1 FPS (Unsupported)</source>
<translation>%1 FPS (не поддерживается)</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="540"/>
<location filename="../gui/SettingsView.qml" line="929"/>
<location filename="../gui/SettingsView.qml" line="581"/>
<location filename="../gui/SettingsView.qml" line="911"/>
<source>Windowed</source>
<translation>В окне</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="606"/>
<location filename="../gui/SettingsView.qml" line="599"/>
<source>V-Sync</source>
<translation>Вертикальная синхронизация</translation>
<translation>V-Sync</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="616"/>
<location filename="../gui/SettingsView.qml" line="609"/>
<source>Disabling V-Sync allows sub-frame rendering latency, but it can display visible tearing</source>
<translation>Отключение V-Sync позволяет уменьшить задержку до менее 1 кадра, но допускает эффект разрывов экрана</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="623"/>
<location filename="../gui/SettingsView.qml" line="616"/>
<source>Frame pacing</source>
<translation>Frame pacing (см. описание)</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="633"/>
<location filename="../gui/SettingsView.qml" line="626"/>
<source>Frame pacing reduces micro-stutter by delaying frames that come in too early</source>
<translation>Frame pacing улучшает плавность при стриме через интернет, Wi-Fi, и другие каналы с нестабильной задержкой (пингом), но увеличивает задержку. При стриме через проводной LAN желательно отключить.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="643"/>
<location filename="../gui/SettingsView.qml" line="636"/>
<source>Audio Settings</source>
<translation>Настройки звука</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="678"/>
<location filename="../gui/SettingsView.qml" line="671"/>
<source>Stereo</source>
<translation>Стерео</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="682"/>
<location filename="../gui/SettingsView.qml" line="675"/>
<source>5.1 surround sound</source>
<translation>5.1 объёмный звук</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="686"/>
<location filename="../gui/SettingsView.qml" line="679"/>
<source>7.1 surround sound</source>
<translation>7.1 объёмный звук</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="700"/>
<location filename="../gui/SettingsView.qml" line="693"/>
<source>Mute host PC speakers while streaming</source>
<translation>Не воспроизводить звук на хост-ПК</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="710"/>
<location filename="../gui/SettingsView.qml" line="703"/>
<source>You must restart any game currently in progress for this setting to take effect</source>
<translation>Для применения настроек необходим перезапуск игры</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="716"/>
<location filename="../gui/SettingsView.qml" line="709"/>
<source>Mute audio stream when Moonlight is not the active window</source>
<translation>Отключить звук, когда окно Moonlight становится неактивно</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="727"/>
<location filename="../gui/SettingsView.qml" line="720"/>
<source>Mutes Moonlight&apos;s audio when you Alt+Tab out of the stream or click on a different window.</source>
<translation>Когда Вы переключаетесь на другое окно на клиенте, Moonlight будет заглушен, пока Вы не переключитесь обратно.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="736"/>
<location filename="../gui/SettingsView.qml" line="729"/>
<source>UI Settings</source>
<translation>Настройки интерфейса</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="746"/>
<location filename="../gui/SettingsView.qml" line="739"/>
<source>Language</source>
<translation>Язык</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="772"/>
<location filename="../gui/SettingsView.qml" line="765"/>
<source>Automatic</source>
<translation>Автоматически</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="879"/>
<location filename="../gui/SettingsView.qml" line="864"/>
<source>You must restart Moonlight for this change to take effect</source>
<translation>Для применения изменений необходим перезапуск Moonlight</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="896"/>
<location filename="../gui/SettingsView.qml" line="878"/>
<source>GUI display mode</source>
<translation>Режим показа интерфейса</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="933"/>
<location filename="../gui/SettingsView.qml" line="915"/>
<source>Maximized</source>
<translation>Развёрнуто</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1006"/>
<location filename="../gui/SettingsView.qml" line="988"/>
<source>Input Settings</source>
<translation>Настройки ввода</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1027"/>
<location filename="../gui/SettingsView.qml" line="1009"/>
<source>This enables seamless mouse control without capturing the client&apos;s mouse cursor. It is ideal for remote desktop usage but will not work in most games.</source>
<translation>Удобно для удалённого рабочего стола, т.к. курсор мыши не будет &quot;захвачен&quot; и может уходить за пределы окна Moonlight. Не будет работать в большинстве игр.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1029"/>
<location filename="../gui/SettingsView.qml" line="1011"/>
<source>NOTE: Due to a bug in GeForce Experience, this option may not work properly if your host PC has multiple monitors.</source>
<translation>Предупреждение: Из-за бага GeForce Experience эта настройка может не работать, если к хост-ПК подключено несколько мониторов.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1345"/>
<source>Enabling HDR overrides manual decoder selections.</source>
<translation>Включение HDR перезаписывает ручные настройки декодера.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1414"/>
<location filename="../gui/SettingsView.qml" line="1378"/>
<source>Enabling HDR overrides manual codec selections.</source>
<translation>Включение HDR перезаписывает ручные настроки кодеков.</translation>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1420"/>
<location filename="../gui/SettingsView.qml" line="1384"/>
<source>Enable HDR (Experimental)</source>
<translation>Включить HDR (Эксперементальна опция)</translation>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1431"/>
<location filename="../gui/SettingsView.qml" line="1395"/>
<source>The stream will be HDR-capable, but some games may require an HDR monitor on your host PC to enable HDR mode.</source>
<translation>Поток будет поддерживать HDR, но часть игр может потребовать HDR монитор на раздающем компьютере, чтобы переключиться на режим HDR.</translation>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1433"/>
<location filename="../gui/SettingsView.qml" line="1397"/>
<source>HDR streaming is not supported on this PC.</source>
<translation>Поток с HDR не поддерживается на данном персональном компьютере.</translation>
<translation type="unfinished"></translation>
</message>
<message>
<source>Capture system keyboard shortcuts while streaming in fullscreen</source>
@@ -785,193 +710,193 @@
<translation type="vanished">Dies ermöglicht die Erfassung von systemweiten Tastenkombinationen wie Alt+Tab, die normalerweise vom Client beim Streamen im Vollbildmodus ausgeführt werden würden.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1048"/>
<location filename="../gui/SettingsView.qml" line="1030"/>
<source>NOTE: Certain keyboard shortcuts like Ctrl+Alt+Del on Windows cannot be intercepted by any application, including Moonlight.</source>
<translation>Предупреждение: некоторые комбинации клавиш, вроде Ctrl-Alt-Del, не могут быть перехвачены.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1111"/>
<location filename="../gui/SettingsView.qml" line="1093"/>
<source>Use touchscreen as a virtual trackpad</source>
<translation>Использовать сенсорный экран как виртуальный тачпад</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1128"/>
<location filename="../gui/SettingsView.qml" line="1110"/>
<source>Swap left and right mouse buttons</source>
<translation>Поменять местами левую и правую кнопки мыши</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1140"/>
<location filename="../gui/SettingsView.qml" line="1122"/>
<source>Reverse mouse scrolling direction</source>
<translation>Колесо мыши крутит в обратном направлении</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1154"/>
<location filename="../gui/SettingsView.qml" line="1136"/>
<source>Gamepad Settings</source>
<translation>Настройки геймпада</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1164"/>
<location filename="../gui/SettingsView.qml" line="1146"/>
<source>Swap A/B and X/Y gamepad buttons</source>
<translation>Поменять местами кнопки A/B и X/Y</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1182"/>
<location filename="../gui/SettingsView.qml" line="1164"/>
<source>This switches gamepads into a Nintendo-style button layout</source>
<translation>Меняет назначения кнопок в стиль Nintendo</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1188"/>
<location filename="../gui/SettingsView.qml" line="1170"/>
<source>Force gamepad #1 always connected</source>
<translation>Принудительно оставить геймпад №1 подключённым</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1198"/>
<location filename="../gui/SettingsView.qml" line="1180"/>
<source>Forces a single gamepad to always stay connected to the host, even if no gamepads are actually connected to this PC.</source>
<translation>Хотя бы один виртуальный геймпад всегда будет &quot;подключён&quot; к хост-ПК, даже если физически к ПК-хосту не подключено ни одного.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1028"/>
<location filename="../gui/SettingsView.qml" line="1010"/>
<source>You can toggle this while streaming using Ctrl+Alt+Shift+M.</source>
<translation>Вы можете переключить эту настройку во время стрима нажатием Ctrl+Alt+Shift+M.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1206"/>
<location filename="../gui/SettingsView.qml" line="1188"/>
<source>Enable mouse control with gamepads by holding the &apos;Start&apos; button</source>
<translation>Переходить в режим управления курсором мыши удержанием кнопки &quot;Start&quot;</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1217"/>
<location filename="../gui/SettingsView.qml" line="1199"/>
<source>Process gamepad input when Moonlight is in the background</source>
<translation>Геймпад работает, когда окно Moonlight в фоне</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1228"/>
<location filename="../gui/SettingsView.qml" line="1210"/>
<source>Allows Moonlight to capture gamepad inputs even if it&apos;s not the current window in focus</source>
<translation>Позволяет захватывать ввод с геймпада, даже когда окно Moonlight неактивно</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1237"/>
<location filename="../gui/SettingsView.qml" line="1219"/>
<source>Host Settings</source>
<translation>Настройки ПК-хоста</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1277"/>
<location filename="../gui/SettingsView.qml" line="1259"/>
<source>Advanced Settings</source>
<translation>Расширенные настройки</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="653"/>
<location filename="../gui/SettingsView.qml" line="646"/>
<source>Audio configuration</source>
<translation>Настройки звука</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="950"/>
<location filename="../gui/SettingsView.qml" line="932"/>
<source>Show connection quality warnings</source>
<translation>Показывать предупреждения о качестве соединения</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="962"/>
<location filename="../gui/SettingsView.qml" line="944"/>
<source>Discord Rich Presence integration</source>
<translation>Интеграция в Discord Rich Presence</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="972"/>
<location filename="../gui/SettingsView.qml" line="954"/>
<source>Updates your Discord status to display the name of the game you&apos;re streaming.</source>
<translation>Пишет статус в Discord с названием запущенноый игры.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1199"/>
<location filename="../gui/SettingsView.qml" line="1181"/>
<source>Only enable this option when streaming a game that doesn&apos;t support gamepads being connected after startup.</source>
<translation>Необходимо для игр, не поддерживающих &quot;горячее&quot; подключение геймпадов.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1017"/>
<location filename="../gui/SettingsView.qml" line="999"/>
<source>Optimize mouse for remote desktop instead of games</source>
<translation>Оптимизировать мышь для удалённого рабочего стола вместо игр</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="978"/>
<location filename="../gui/SettingsView.qml" line="960"/>
<source>Keep the display awake while streaming</source>
<translation>Оставляйте экран включеным, пока осуществляется передача</translation>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="988"/>
<location filename="../gui/SettingsView.qml" line="970"/>
<source>Prevents the screensaver from starting or the display from going to sleep while streaming.</source>
<translation>Предотвращает запуск записи экрана или выключения монитора в процессе передачи.</translation>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1039"/>
<location filename="../gui/SettingsView.qml" line="1021"/>
<source>Capture system keyboard shortcuts</source>
<translation>Захватывать нажатия горячих клавиш</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1047"/>
<location filename="../gui/SettingsView.qml" line="1029"/>
<source>This enables the capture of system-wide keyboard shortcuts like Alt+Tab that would normally be handled by the client OS while streaming.</source>
<translation>Это включает захват комбинаций вроде Alt+Tab, которые иначе бы обычно обрабатывались операционной системой.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1077"/>
<location filename="../gui/SettingsView.qml" line="1059"/>
<source>in fullscreen</source>
<translation>только в режиме на весь экран</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1081"/>
<location filename="../gui/SettingsView.qml" line="1063"/>
<source>always</source>
<translation>всегда</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1121"/>
<location filename="../gui/SettingsView.qml" line="1103"/>
<source>When checked, the touchscreen acts like a trackpad. When unchecked, the touchscreen will directly control the mouse pointer.</source>
<translation>Если включено, сенсорный экран будет использоваться как тачпад. Если отключено, сенсорный экран будет прямо управлять курсором мыши.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1247"/>
<location filename="../gui/SettingsView.qml" line="1229"/>
<source>Optimize game settings for streaming</source>
<translation>Позволить GeForce Experience оптимизировать настройки игры</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1258"/>
<location filename="../gui/SettingsView.qml" line="1240"/>
<source>Quit app on host PC after ending stream</source>
<translation>Завершить игру на ПК-хосте при выходе</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1268"/>
<location filename="../gui/SettingsView.qml" line="1250"/>
<source>This will close the app or game you are streaming when you end your stream. You will lose any unsaved progress!</source>
<translation>Это выйдет из игры или приложения при закрытии окна Moonlight или нажатии Ctrl+Alt+Shift+Q. Несохранённый прогресс может быть утерян!</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1287"/>
<location filename="../gui/SettingsView.qml" line="1269"/>
<source>Video decoder</source>
<translation>Декодер видео</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1313"/>
<location filename="../gui/SettingsView.qml" line="1382"/>
<location filename="../gui/SettingsView.qml" line="1294"/>
<location filename="../gui/SettingsView.qml" line="1346"/>
<source>Automatic (Recommended)</source>
<translation>Автоматически (рекомендуется)</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1317"/>
<location filename="../gui/SettingsView.qml" line="1298"/>
<source>Force software decoding</source>
<translation>Программный</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1321"/>
<location filename="../gui/SettingsView.qml" line="1302"/>
<source>Force hardware decoding</source>
<translation>Аппаратный</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1351"/>
<location filename="../gui/SettingsView.qml" line="1315"/>
<source>Video codec</source>
<translation>Видеокодек</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1386"/>
<location filename="../gui/SettingsView.qml" line="1350"/>
<source>H.264</source>
<translation>H.264</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1390"/>
<location filename="../gui/SettingsView.qml" line="1354"/>
<source>HEVC (H.265)</source>
<translation>HEVC (H.265)</translation>
</message>
@@ -980,17 +905,17 @@
<translation type="vanished">HEVC HDR (Экспериментальный)</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1439"/>
<location filename="../gui/SettingsView.qml" line="1403"/>
<source>Unlock unsupported FPS options</source>
<translation>Включить неподдерживаемые настройки FPS</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1458"/>
<location filename="../gui/SettingsView.qml" line="1422"/>
<source>Automatically find PCs on the local network (Recommended)</source>
<translation>Автоматически найти ПК-хосты в локальной сети (рекомендуется)</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1483"/>
<location filename="../gui/SettingsView.qml" line="1447"/>
<source>Automatically detect blocked connections (Recommended)</source>
<translation>Автоматически определять проблемы с подключением (рекомендуется)</translation>
</message>
@@ -1047,94 +972,99 @@
<context>
<name>main</name>
<message>
<location filename="../gui/main.qml" line="418"/>
<location filename="../gui/main.qml" line="254"/>
<location filename="../gui/main.qml" line="264"/>
<location filename="../gui/main.qml" line="393"/>
<location filename="../gui/main.qml" line="408"/>
<source>Settings</source>
<translation>Настройки</translation>
</message>
<message>
<location filename="../gui/main.qml" line="265"/>
<location filename="../gui/main.qml" line="255"/>
<source>Version %1</source>
<translation>Версия %1</translation>
</message>
<message>
<location filename="../gui/main.qml" line="281"/>
<location filename="../gui/main.qml" line="271"/>
<source>Join our community on Discord</source>
<translation>Присоединитесь к нашему Discord (на английском)</translation>
</message>
<message>
<location filename="../gui/main.qml" line="283"/>
<source>Computers</source>
<translation type="vanished">Компьютеры</translation>
<translation>Компьютеры</translation>
</message>
<message>
<location filename="../gui/main.qml" line="300"/>
<location filename="../gui/main.qml" line="290"/>
<source>Add PC manually</source>
<translation>Добавить ПК вручную</translation>
</message>
<message>
<location filename="../gui/main.qml" line="340"/>
<location filename="../gui/main.qml" line="330"/>
<source>Update available for Moonlight: Version %1</source>
<translation>Обновление Moonlight доступно: версия %1</translation>
</message>
<message>
<location filename="../gui/main.qml" line="387"/>
<location filename="../gui/main.qml" line="377"/>
<source>Gamepad Mapper</source>
<translation>Назначения кнопок геймпада</translation>
</message>
<message>
<location filename="../gui/main.qml" line="381"/>
<source>Gamepad Mapping</source>
<translation type="vanished">Назначение кнопок геймпада</translation>
<translation>Назначение кнопок геймпада</translation>
</message>
<message>
<source>No functioning hardware accelerated H.264 video decoder was detected by Moonlight. Your streaming performance may be severely degraded in this configuration.</source>
<translation type="vanished">Moonlight не может найти декодер для H.264. Программное декодирование может быть намного медленнее.</translation>
</message>
<message>
<location filename="../gui/main.qml" line="433"/>
<location filename="../gui/main.qml" line="423"/>
<source>Hardware acceleration doesn&apos;t work on XWayland. Continuing on XWayland may result in poor streaming performance. Try running with QT_QPA_PLATFORM=wayland or switch to X11.</source>
<translation>Аппаратное ускорение не работает с XWayland. Попробуйте переключиться на X11 или добавьте параметр &quot;QT_QPA_PLATFORM=wayland&quot;.</translation>
</message>
<message>
<location filename="../gui/main.qml" line="442"/>
<location filename="../gui/main.qml" line="432"/>
<source>This version of Moonlight isn&apos;t optimized for your PC. Please download the &apos;%1&apos; version of Moonlight for the best streaming performance.</source>
<translation>Эта версия Moonlight не оптимизирована для Вашего ПК. Пожалуйста, установите &quot;%1&quot; для лучшей производительности.</translation>
</message>
<message>
<location filename="../gui/main.qml" line="451"/>
<location filename="../gui/main.qml" line="441"/>
<source>Moonlight detected gamepads without a mapping:</source>
<translation>Moonilght обнаружил геймпады без настроек:</translation>
</message>
<message>
<location filename="../gui/main.qml" line="364"/>
<location filename="../gui/main.qml" line="354"/>
<source>Help</source>
<translation>Помощь</translation>
</message>
<message>
<location filename="../gui/main.qml" line="425"/>
<location filename="../gui/main.qml" line="415"/>
<source>No functioning hardware accelerated video decoder was detected by Moonlight. Your streaming performance may be severely degraded in this configuration.</source>
<translation>Moonlight не обнаружил ни одного работающего декодера видео с аппаратным ускорением. Производительность стрима может сильно снизиться.</translation>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/main.qml" line="427"/>
<location filename="../gui/main.qml" line="417"/>
<source>Click the Help button for more information on solving this problem.</source>
<translation>Нажмите кнопку Помощь, чтобы увидеть способы решения проблемы.</translation>
</message>
<message>
<location filename="../gui/main.qml" line="435"/>
<location filename="../gui/main.qml" line="425"/>
<source>Click the Help button for more information.</source>
<translation>Нажмите кнопку Помощь, чтобы увидеть больше информации.</translation>
</message>
<message>
<location filename="../gui/main.qml" line="453"/>
<location filename="../gui/main.qml" line="443"/>
<source>Click the Help button for information on how to map your gamepads.</source>
<translation>Нажмите кнопку Помощь, чтобы узнать, как настроить геймпад.</translation>
</message>
<message>
<location filename="../gui/main.qml" line="461"/>
<location filename="../gui/main.qml" line="451"/>
<source>Are you sure you want to quit?</source>
<translation>Вы уверены, что хотите выйти?</translation>
</message>
<message>
<location filename="../gui/main.qml" line="491"/>
<location filename="../gui/main.qml" line="481"/>
<source>Enter the IP address of your GameStream PC:</source>
<translation>Введите IP-адрес компьютера с включённым NVIDIA GameStream:</translation>
</message>
Binary file not shown.
+148 -206
View File
@@ -51,24 +51,6 @@
<translation type="unfinished">Är du säker på att du vill avsluta %1? Alla osparade framsteg kommer att gå förlorade.</translation>
</message>
</context>
<context>
<name>CliPair</name>
<message>
<location filename="../gui/CliPair.qml" line="9"/>
<source>Establishing connection to PC...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/CliPair.qml" line="13"/>
<source>Pairing... Please enter &apos;%1&apos; on %2.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/CliPair.qml" line="85"/>
<source>Pairing completed successfully</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>CliQuitStreamSegue</name>
<message>
@@ -181,47 +163,52 @@
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="294"/>
<location filename="../gui/PcView.qml" line="247"/>
<source>You cannot pair while a previous session is still running on the host PC. Quit any running games or reboot the host PC, then try pairing again.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="302"/>
<source>Please enter %1 on your GameStream PC. This dialog will close when pairing is completed.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="305"/>
<location filename="../gui/PcView.qml" line="313"/>
<source>Are you sure you want to remove this PC?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="322"/>
<location filename="../gui/PcView.qml" line="330"/>
<source>Moonlight is testing your network connection to determine if NVIDIA GameStream is blocked.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="322"/>
<location filename="../gui/PcView.qml" line="330"/>
<source>This may take a few seconds…</source>
<translation>Detta kan ta några sekunder…</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="333"/>
<location filename="../gui/PcView.qml" line="341"/>
<source>This network does not appear to be blocking Moonlight. If you still have trouble connecting, check your PC&apos;s firewall settings.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="333"/>
<location filename="../gui/PcView.qml" line="341"/>
<source>If you are trying to stream over the Internet, install the Moonlight Internet Hosting Tool on your gaming PC and run the included Internet Streaming Tester to check your gaming PC&apos;s Internet connection.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="337"/>
<location filename="../gui/PcView.qml" line="345"/>
<source>Your PC&apos;s current network connection seems to be blocking Moonlight. Streaming over the Internet may not work while connected to this network.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="337"/>
<location filename="../gui/PcView.qml" line="345"/>
<source>The following network ports were blocked:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="329"/>
<location filename="../gui/PcView.qml" line="337"/>
<source>The network test could not be performed because none of Moonlight&apos;s connection testing servers were reachable from this PC. Check your Internet connection or try again later.</source>
<translation type="unfinished"></translation>
</message>
@@ -251,43 +238,15 @@
<translation type="unfinished">Visa alla appar</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="349"/>
<location filename="../gui/PcView.qml" line="357"/>
<source>Enter the new name for this PC:</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>PendingPairingTask</name>
<message>
<location filename="../backend/computermanager.cpp" line="535"/>
<source>The PIN from the PC didn&apos;t match. Please try again.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../backend/computermanager.cpp" line="539"/>
<source>You cannot pair while a previous session is still running on the host PC. Quit any running games or reboot the host PC, then try pairing again.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../backend/computermanager.cpp" line="542"/>
<source>Pairing failed. Please try again.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../backend/computermanager.cpp" line="546"/>
<source>Another pairing attempt is already in progress.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../backend/computermanager.cpp" line="556"/>
<source>GeForce Experience returned error: %1</source>
<translation type="unfinished">GeForce Experience returnerade fel: %1</translation>
</message>
</context>
<context>
<name>PendingQuitTask</name>
<message>
<location filename="../backend/computermanager.cpp" line="606"/>
<location filename="../backend/computermanager.cpp" line="540"/>
<source>The running game wasn&apos;t started by this PC. You must quit the game on the host PC manually or use the device that originally started the game.</source>
<translation type="unfinished"></translation>
</message>
@@ -295,12 +254,6 @@
<context>
<name>QObject</name>
<message>
<location filename="../cli/pair.cpp" line="80"/>
<source>%1 is already paired</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../cli/pair.cpp" line="109"/>
<location filename="../cli/quitstream.cpp" line="76"/>
<location filename="../cli/startstream.cpp" line="133"/>
<source>Failed to connect to %1</source>
@@ -323,11 +276,6 @@
<source>Failed to find application %1</source>
<translation>Det gick inte att hitta programmet %1</translation>
</message>
<message>
<location filename="../cli/listapps.cpp" line="99"/>
<source>Computer %1 has not been paired. Please open Moonlight to pair before retrieving games list.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>QuitSegue</name>
@@ -359,32 +307,22 @@
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="103"/>
<location filename="../streaming/session.cpp" line="102"/>
<source>Something went wrong on your host PC when starting the stream.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="104"/>
<location filename="../streaming/session.cpp" line="103"/>
<source>Make sure you don&apos;t have any DRM-protected content open on your host PC. You can also try restarting your host PC.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="105"/>
<location filename="../streaming/session.cpp" line="104"/>
<source>If the issue persists, try reinstalling your GPU drivers and GeForce Experience.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="110"/>
<source>The host PC reported a fatal video encoding error.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="111"/>
<source>Try disabling HDR mode, changing the streaming resolution, or changing your host PC&apos;s display resolution.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="116"/>
<location filename="../streaming/session.cpp" line="109"/>
<source>Connection terminated</source>
<translation type="unfinished"></translation>
</message>
@@ -478,32 +416,32 @@
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="810"/>
<location filename="../streaming/session.cpp" line="805"/>
<source>Your host PC&apos;s GPU doesn&apos;t support streaming video resolutions over 4K.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="814"/>
<location filename="../streaming/session.cpp" line="809"/>
<source>Video resolutions over 4K are only supported by the HEVC codec.</source>
<translation>Videoupplösningar över 4K stöds endast av HEVC-codec.</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="828"/>
<location filename="../streaming/session.cpp" line="823"/>
<source>Your selection to force hardware decoding cannot be satisfied due to missing hardware decoding support on this PC&apos;s GPU.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="831"/>
<location filename="../streaming/session.cpp" line="826"/>
<source>Your codec selection and force hardware decoding setting are not compatible. This PC&apos;s GPU lacks support for decoding your chosen codec.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="1176"/>
<location filename="../streaming/session.cpp" line="1159"/>
<source>GeForce Experience returned error: %1</source>
<translation>GeForce Experience returnerade fel: %1</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="1697"/>
<location filename="../streaming/session.cpp" line="1691"/>
<source>Unable to initialize video decoder. Please check your streaming settings and try again.</source>
<translation type="unfinished"></translation>
</message>
@@ -516,60 +454,60 @@
<translation>Inställningar</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="72"/>
<location filename="../gui/SettingsView.qml" line="70"/>
<source>Resolution and FPS</source>
<translation>Upplösning och FPS</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="80"/>
<location filename="../gui/SettingsView.qml" line="78"/>
<source>Setting values too high for your PC or network connection may cause lag, stuttering, or errors.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="62"/>
<location filename="../gui/SettingsView.qml" line="60"/>
<source>Basic Settings</source>
<translation>Grundläggande inställningar</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="200"/>
<location filename="../gui/SettingsView.qml" line="209"/>
<source>720p</source>
<translation>720p</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="206"/>
<location filename="../gui/SettingsView.qml" line="215"/>
<source>1080p</source>
<translation>1080p</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="212"/>
<location filename="../gui/SettingsView.qml" line="221"/>
<source>1440p</source>
<translation>1440p</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="218"/>
<location filename="../gui/SettingsView.qml" line="227"/>
<source>4K</source>
<translation>4K</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="322"/>
<location filename="../gui/SettingsView.qml" line="331"/>
<source>Custom resolutions are not officially supported by GeForce Experience, so it will not set your host display resolution. You will need to set it manually while in game.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="323"/>
<location filename="../gui/SettingsView.qml" line="332"/>
<source>Resolutions that are not supported by your client or host PC may cause streaming errors.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="329"/>
<location filename="../gui/SettingsView.qml" line="338"/>
<source>Enter a custom resolution:</source>
<translation>Ange en anpassad upplösning:</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="397"/>
<location filename="../gui/SettingsView.qml" line="398"/>
<location filename="../gui/SettingsView.qml" line="418"/>
<location filename="../gui/SettingsView.qml" line="421"/>
<location filename="../gui/SettingsView.qml" line="406"/>
<location filename="../gui/SettingsView.qml" line="407"/>
<location filename="../gui/SettingsView.qml" line="427"/>
<location filename="../gui/SettingsView.qml" line="430"/>
<source>%1 FPS</source>
<translation>%1 FPS</translation>
</message>
@@ -578,189 +516,184 @@
<translation type="vanished">%1 FPS (nicht unterstützt)</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="485"/>
<location filename="../gui/SettingsView.qml" line="493"/>
<source>Video bitrate:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="493"/>
<location filename="../gui/SettingsView.qml" line="501"/>
<source>Lower the bitrate on slower connections. Raise the bitrate to increase image quality.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="511"/>
<location filename="../gui/SettingsView.qml" line="519"/>
<source>Video bitrate: %1 Mbps</source>
<translation>Videobitrate: %1 Mbps</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="519"/>
<location filename="../gui/SettingsView.qml" line="527"/>
<source>Display mode</source>
<translation>Visningsläge</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="549"/>
<location filename="../gui/SettingsView.qml" line="545"/>
<source> (Recommended)</source>
<translatorcomment>Dont put the space in ransaltions</translatorcomment>
<translation> (Rekommenderas)</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="530"/>
<location filename="../gui/SettingsView.qml" line="937"/>
<location filename="../gui/SettingsView.qml" line="573"/>
<location filename="../gui/SettingsView.qml" line="919"/>
<source>Fullscreen</source>
<translation>Helskärm</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="599"/>
<location filename="../gui/SettingsView.qml" line="592"/>
<source>Fullscreen generally provides the best performance, but borderless windowed may work better with features like macOS Spaces, Alt+Tab, screenshot tools, on-screen overlays, etc.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="535"/>
<location filename="../gui/SettingsView.qml" line="577"/>
<source>Borderless windowed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="403"/>
<location filename="../gui/SettingsView.qml" line="406"/>
<location filename="../gui/SettingsView.qml" line="412"/>
<location filename="../gui/SettingsView.qml" line="415"/>
<location filename="../gui/SettingsView.qml" line="428"/>
<location filename="../gui/SettingsView.qml" line="431"/>
<location filename="../gui/SettingsView.qml" line="424"/>
<location filename="../gui/SettingsView.qml" line="437"/>
<location filename="../gui/SettingsView.qml" line="440"/>
<source>%1 FPS (Unsupported)</source>
<translation>%1 FPS (stöds inte)</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="540"/>
<location filename="../gui/SettingsView.qml" line="929"/>
<location filename="../gui/SettingsView.qml" line="581"/>
<location filename="../gui/SettingsView.qml" line="911"/>
<source>Windowed</source>
<translation>Fönsterläge</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="606"/>
<location filename="../gui/SettingsView.qml" line="599"/>
<source>V-Sync</source>
<translation>V-Sync</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="616"/>
<location filename="../gui/SettingsView.qml" line="609"/>
<source>Disabling V-Sync allows sub-frame rendering latency, but it can display visible tearing</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="623"/>
<location filename="../gui/SettingsView.qml" line="616"/>
<source>Frame pacing</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="633"/>
<location filename="../gui/SettingsView.qml" line="626"/>
<source>Frame pacing reduces micro-stutter by delaying frames that come in too early</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="643"/>
<location filename="../gui/SettingsView.qml" line="636"/>
<source>Audio Settings</source>
<translation>Ljudinställningar</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="678"/>
<location filename="../gui/SettingsView.qml" line="671"/>
<source>Stereo</source>
<translation>Stereo</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="682"/>
<location filename="../gui/SettingsView.qml" line="675"/>
<source>5.1 surround sound</source>
<translation>5.1 surroundljud</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="686"/>
<location filename="../gui/SettingsView.qml" line="679"/>
<source>7.1 surround sound</source>
<translation>7.1 surroundljud</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="700"/>
<location filename="../gui/SettingsView.qml" line="693"/>
<source>Mute host PC speakers while streaming</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="710"/>
<location filename="../gui/SettingsView.qml" line="703"/>
<source>You must restart any game currently in progress for this setting to take effect</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="716"/>
<location filename="../gui/SettingsView.qml" line="709"/>
<source>Mute audio stream when Moonlight is not the active window</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="727"/>
<location filename="../gui/SettingsView.qml" line="720"/>
<source>Mutes Moonlight&apos;s audio when you Alt+Tab out of the stream or click on a different window.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="736"/>
<location filename="../gui/SettingsView.qml" line="729"/>
<source>UI Settings</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="746"/>
<location filename="../gui/SettingsView.qml" line="739"/>
<source>Language</source>
<translation>Språk</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="772"/>
<location filename="../gui/SettingsView.qml" line="765"/>
<source>Automatic</source>
<translation>Automatisk</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="879"/>
<location filename="../gui/SettingsView.qml" line="864"/>
<source>You must restart Moonlight for this change to take effect</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="896"/>
<location filename="../gui/SettingsView.qml" line="878"/>
<source>GUI display mode</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="933"/>
<location filename="../gui/SettingsView.qml" line="915"/>
<source>Maximized</source>
<translation>Maximerad</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1006"/>
<location filename="../gui/SettingsView.qml" line="988"/>
<source>Input Settings</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1027"/>
<location filename="../gui/SettingsView.qml" line="1009"/>
<source>This enables seamless mouse control without capturing the client&apos;s mouse cursor. It is ideal for remote desktop usage but will not work in most games.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1029"/>
<location filename="../gui/SettingsView.qml" line="1011"/>
<source>NOTE: Due to a bug in GeForce Experience, this option may not work properly if your host PC has multiple monitors.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1345"/>
<source>Enabling HDR overrides manual decoder selections.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1414"/>
<location filename="../gui/SettingsView.qml" line="1378"/>
<source>Enabling HDR overrides manual codec selections.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1420"/>
<location filename="../gui/SettingsView.qml" line="1384"/>
<source>Enable HDR (Experimental)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1431"/>
<location filename="../gui/SettingsView.qml" line="1395"/>
<source>The stream will be HDR-capable, but some games may require an HDR monitor on your host PC to enable HDR mode.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1433"/>
<location filename="../gui/SettingsView.qml" line="1397"/>
<source>HDR streaming is not supported on this PC.</source>
<translation type="unfinished"></translation>
</message>
@@ -773,208 +706,208 @@
<translation type="vanished">Dies ermöglicht die Erfassung von systemweiten Tastenkombinationen wie Alt+Tab, die normalerweise vom Client beim Streamen im Vollbildmodus ausgeführt werden würden.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1048"/>
<location filename="../gui/SettingsView.qml" line="1030"/>
<source>NOTE: Certain keyboard shortcuts like Ctrl+Alt+Del on Windows cannot be intercepted by any application, including Moonlight.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1111"/>
<location filename="../gui/SettingsView.qml" line="1093"/>
<source>Use touchscreen as a virtual trackpad</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1128"/>
<location filename="../gui/SettingsView.qml" line="1110"/>
<source>Swap left and right mouse buttons</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1140"/>
<location filename="../gui/SettingsView.qml" line="1122"/>
<source>Reverse mouse scrolling direction</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1154"/>
<location filename="../gui/SettingsView.qml" line="1136"/>
<source>Gamepad Settings</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1164"/>
<location filename="../gui/SettingsView.qml" line="1146"/>
<source>Swap A/B and X/Y gamepad buttons</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1182"/>
<location filename="../gui/SettingsView.qml" line="1164"/>
<source>This switches gamepads into a Nintendo-style button layout</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1188"/>
<location filename="../gui/SettingsView.qml" line="1170"/>
<source>Force gamepad #1 always connected</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1198"/>
<location filename="../gui/SettingsView.qml" line="1180"/>
<source>Forces a single gamepad to always stay connected to the host, even if no gamepads are actually connected to this PC.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1028"/>
<location filename="../gui/SettingsView.qml" line="1010"/>
<source>You can toggle this while streaming using Ctrl+Alt+Shift+M.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1206"/>
<location filename="../gui/SettingsView.qml" line="1188"/>
<source>Enable mouse control with gamepads by holding the &apos;Start&apos; button</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1217"/>
<location filename="../gui/SettingsView.qml" line="1199"/>
<source>Process gamepad input when Moonlight is in the background</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1228"/>
<location filename="../gui/SettingsView.qml" line="1210"/>
<source>Allows Moonlight to capture gamepad inputs even if it&apos;s not the current window in focus</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1237"/>
<location filename="../gui/SettingsView.qml" line="1219"/>
<source>Host Settings</source>
<translation>Värdinställningar</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1277"/>
<location filename="../gui/SettingsView.qml" line="1259"/>
<source>Advanced Settings</source>
<translation>Avancerade inställningar</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="653"/>
<location filename="../gui/SettingsView.qml" line="646"/>
<source>Audio configuration</source>
<translation>Ljudkonfiguration</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="950"/>
<location filename="../gui/SettingsView.qml" line="932"/>
<source>Show connection quality warnings</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="962"/>
<location filename="../gui/SettingsView.qml" line="944"/>
<source>Discord Rich Presence integration</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="972"/>
<location filename="../gui/SettingsView.qml" line="954"/>
<source>Updates your Discord status to display the name of the game you&apos;re streaming.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1199"/>
<location filename="../gui/SettingsView.qml" line="1181"/>
<source>Only enable this option when streaming a game that doesn&apos;t support gamepads being connected after startup.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1017"/>
<location filename="../gui/SettingsView.qml" line="999"/>
<source>Optimize mouse for remote desktop instead of games</source>
<translation>Optimera musen för fjärrskrivbord istället för spel</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="978"/>
<location filename="../gui/SettingsView.qml" line="960"/>
<source>Keep the display awake while streaming</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="988"/>
<location filename="../gui/SettingsView.qml" line="970"/>
<source>Prevents the screensaver from starting or the display from going to sleep while streaming.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1039"/>
<location filename="../gui/SettingsView.qml" line="1021"/>
<source>Capture system keyboard shortcuts</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1047"/>
<location filename="../gui/SettingsView.qml" line="1029"/>
<source>This enables the capture of system-wide keyboard shortcuts like Alt+Tab that would normally be handled by the client OS while streaming.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1077"/>
<location filename="../gui/SettingsView.qml" line="1059"/>
<source>in fullscreen</source>
<translation>i helskärm</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1081"/>
<location filename="../gui/SettingsView.qml" line="1063"/>
<source>always</source>
<translation>alltid</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1121"/>
<location filename="../gui/SettingsView.qml" line="1103"/>
<source>When checked, the touchscreen acts like a trackpad. When unchecked, the touchscreen will directly control the mouse pointer.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1247"/>
<location filename="../gui/SettingsView.qml" line="1229"/>
<source>Optimize game settings for streaming</source>
<translation>Optimera spelinställningar för streaming</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1258"/>
<location filename="../gui/SettingsView.qml" line="1240"/>
<source>Quit app on host PC after ending stream</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1268"/>
<location filename="../gui/SettingsView.qml" line="1250"/>
<source>This will close the app or game you are streaming when you end your stream. You will lose any unsaved progress!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1287"/>
<location filename="../gui/SettingsView.qml" line="1269"/>
<source>Video decoder</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1313"/>
<location filename="../gui/SettingsView.qml" line="1382"/>
<location filename="../gui/SettingsView.qml" line="1294"/>
<location filename="../gui/SettingsView.qml" line="1346"/>
<source>Automatic (Recommended)</source>
<translation>Automatisk (rekommenderas)</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1317"/>
<location filename="../gui/SettingsView.qml" line="1298"/>
<source>Force software decoding</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1321"/>
<location filename="../gui/SettingsView.qml" line="1302"/>
<source>Force hardware decoding</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1351"/>
<location filename="../gui/SettingsView.qml" line="1315"/>
<source>Video codec</source>
<translation>Videokodec</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1386"/>
<location filename="../gui/SettingsView.qml" line="1350"/>
<source>H.264</source>
<translation>H.264</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1390"/>
<location filename="../gui/SettingsView.qml" line="1354"/>
<source>HEVC (H.265)</source>
<translation>HEVC (H.265)</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1439"/>
<location filename="../gui/SettingsView.qml" line="1403"/>
<source>Unlock unsupported FPS options</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1458"/>
<location filename="../gui/SettingsView.qml" line="1422"/>
<source>Automatically find PCs on the local network (Recommended)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1483"/>
<location filename="../gui/SettingsView.qml" line="1447"/>
<source>Automatically detect blocked connections (Recommended)</source>
<translation type="unfinished"></translation>
</message>
@@ -1031,86 +964,95 @@
<context>
<name>main</name>
<message>
<location filename="../gui/main.qml" line="418"/>
<location filename="../gui/main.qml" line="254"/>
<location filename="../gui/main.qml" line="264"/>
<location filename="../gui/main.qml" line="393"/>
<location filename="../gui/main.qml" line="408"/>
<source>Settings</source>
<translation>Inställningar</translation>
</message>
<message>
<location filename="../gui/main.qml" line="265"/>
<location filename="../gui/main.qml" line="255"/>
<source>Version %1</source>
<translation>Version %1</translation>
</message>
<message>
<location filename="../gui/main.qml" line="281"/>
<location filename="../gui/main.qml" line="271"/>
<source>Join our community on Discord</source>
<translation>Gå med i vår gemenskap på Discord</translation>
</message>
<message>
<location filename="../gui/main.qml" line="283"/>
<source>Computers</source>
<translation type="vanished">Datorer</translation>
<translation>Datorer</translation>
</message>
<message>
<location filename="../gui/main.qml" line="300"/>
<location filename="../gui/main.qml" line="290"/>
<source>Add PC manually</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/main.qml" line="340"/>
<location filename="../gui/main.qml" line="330"/>
<source>Update available for Moonlight: Version %1</source>
<translation>Uppdatering tillgänglig för Moonlight: Version %1</translation>
</message>
<message>
<location filename="../gui/main.qml" line="387"/>
<location filename="../gui/main.qml" line="377"/>
<source>Gamepad Mapper</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/main.qml" line="433"/>
<location filename="../gui/main.qml" line="381"/>
<source>Gamepad Mapping</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/main.qml" line="423"/>
<source>Hardware acceleration doesn&apos;t work on XWayland. Continuing on XWayland may result in poor streaming performance. Try running with QT_QPA_PLATFORM=wayland or switch to X11.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/main.qml" line="442"/>
<location filename="../gui/main.qml" line="432"/>
<source>This version of Moonlight isn&apos;t optimized for your PC. Please download the &apos;%1&apos; version of Moonlight for the best streaming performance.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/main.qml" line="451"/>
<location filename="../gui/main.qml" line="441"/>
<source>Moonlight detected gamepads without a mapping:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/main.qml" line="364"/>
<location filename="../gui/main.qml" line="354"/>
<source>Help</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/main.qml" line="425"/>
<location filename="../gui/main.qml" line="415"/>
<source>No functioning hardware accelerated video decoder was detected by Moonlight. Your streaming performance may be severely degraded in this configuration.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/main.qml" line="427"/>
<location filename="../gui/main.qml" line="417"/>
<source>Click the Help button for more information on solving this problem.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/main.qml" line="435"/>
<location filename="../gui/main.qml" line="425"/>
<source>Click the Help button for more information.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/main.qml" line="453"/>
<location filename="../gui/main.qml" line="443"/>
<source>Click the Help button for information on how to map your gamepads.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/main.qml" line="461"/>
<location filename="../gui/main.qml" line="451"/>
<source>Are you sure you want to quit?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/main.qml" line="491"/>
<location filename="../gui/main.qml" line="481"/>
<source>Enter the IP address of your GameStream PC:</source>
<translation type="unfinished"></translation>
</message>
Binary file not shown.
+142 -212
View File
@@ -51,24 +51,6 @@
<translation>คุณแน่ใจว่าคุณต้องการออกจาก %1? ความคืบหน้าใด ๆ ที่ไม่ได้ถูกบันทึกไว้จะสูญหายไป</translation>
</message>
</context>
<context>
<name>CliPair</name>
<message>
<location filename="../gui/CliPair.qml" line="9"/>
<source>Establishing connection to PC...</source>
<translation type="unfinished">กำลังสร้างการเชื่อมต่อกับคอมพิวเตอร์...</translation>
</message>
<message>
<location filename="../gui/CliPair.qml" line="13"/>
<source>Pairing... Please enter &apos;%1&apos; on %2.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/CliPair.qml" line="85"/>
<source>Pairing completed successfully</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>CliQuitStreamSegue</name>
<message>
@@ -181,51 +163,52 @@
<translation>รุ่นของ GeForce Experience บน %1 ไม่รองรับ Moonlight รุ่นนี้ คุณต้องอัปเดต Moonlight เพื่อสตรีมจาก % 1</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="247"/>
<source>You cannot pair while a previous session is still running on the host PC. Quit any running games or reboot the host PC, then try pairing again.</source>
<translation type="vanished">คุณไม่สามารถจับคู่ในขณะที่เซสชันก่อนหน้ายังทำงานอยู่บนคอมพิวเตอร์ตัวหลัก ออกจากเกมที่กำลังทำงานอยู่หรือรีบูตคอมพิวเตอร์ตัวหลัก จากนั้นลองจับคู่อีกครั้ง</translation>
<translation>คุณไม่สามารถจับคู่ในขณะที่เซสชันก่อนหน้ายังทำงานอยู่บนคอมพิวเตอร์ตัวหลัก ออกจากเกมที่กำลังทำงานอยู่หรือรีบูตคอมพิวเตอร์ตัวหลัก จากนั้นลองจับคู่อีกครั้ง</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="294"/>
<location filename="../gui/PcView.qml" line="302"/>
<source>Please enter %1 on your GameStream PC. This dialog will close when pairing is completed.</source>
<translation>กรุณาใส่ %1 บนคอมพิวเตอร์ที่ใช้สตรีมเกม กล่องนี้จะปิดเมื่อการจับคู่เสร็จสิ้น</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="305"/>
<location filename="../gui/PcView.qml" line="313"/>
<source>Are you sure you want to remove this PC?</source>
<translation>คุณแน่ใจว่าคุณต้องการเอาคอมพิวเตอร์นี้ออกไปหรือไม่?</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="322"/>
<location filename="../gui/PcView.qml" line="330"/>
<source>Moonlight is testing your network connection to determine if NVIDIA GameStream is blocked.</source>
<translation>Moonlight กำลังทดสอบการเชื่อมต่อเครือข่ายเพื่อพิจารณาว่า NVIDIA GameStream ถูกบล็อกหรือไม่</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="322"/>
<location filename="../gui/PcView.qml" line="330"/>
<source>This may take a few seconds…</source>
<translation>อาจจะใช้เวลาสักครู่…</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="333"/>
<location filename="../gui/PcView.qml" line="341"/>
<source>This network does not appear to be blocking Moonlight. If you still have trouble connecting, check your PC&apos;s firewall settings.</source>
<translation>ไม่พบว่าเครือข่ายนี้มีการบล็อก Moonlight ถ้าคุณยังมีปัญหากับการเชื่อมต่อกรุณาตรวจสอบการตั้งค่า Firewall ของคอมพิวเตอร์</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="333"/>
<location filename="../gui/PcView.qml" line="341"/>
<source>If you are trying to stream over the Internet, install the Moonlight Internet Hosting Tool on your gaming PC and run the included Internet Streaming Tester to check your gaming PC&apos;s Internet connection.</source>
<translation>ถ้าคุณกำลังพยายามสตรีมผ่านอินเตอร์เน็ต ติดตั้ง Moonlight Internet Hosting Tool บนคอมพิวเตอร์เล่นเกมของคุณและรันโปรแกรมทดสอบการสตรีมผ่านอินเตอร์เน็ตเพื่อทดสอบการเชื่อมต่ออินเตอร์เน็ตของคอมพิวเตอร์</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="337"/>
<location filename="../gui/PcView.qml" line="345"/>
<source>Your PC&apos;s current network connection seems to be blocking Moonlight. Streaming over the Internet may not work while connected to this network.</source>
<translation>ดูเหมือนว่าการเชื่อมต่ออินเทอร์เน็ตของคอมพิวเตอร์จะบล็อก Moonlight ไว้ การสตรีมผ่านอินเทอร์เน็ตอาจไม่ทำงานในขณะที่เชื่อมต่อกับเครือข่ายนี้</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="337"/>
<location filename="../gui/PcView.qml" line="345"/>
<source>The following network ports were blocked:</source>
<translation>Ports ต่อไปนี้ถูกบล็อก:</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="329"/>
<location filename="../gui/PcView.qml" line="337"/>
<source>The network test could not be performed because none of Moonlight&apos;s connection testing servers were reachable from this PC. Check your Internet connection or try again later.</source>
<translation>ไม่สามารถทำการทดสอบเครือข่ายได้เพราะว่าไม่สามารถเข้าถึงเซิร์ฟเวอร์ทดสอบการเชื่อมต่อของ Moonlight จากคอมพิวเตอร์นี้ กรุณาตรวจสอบการเชื่อมต่ออินเตอร์เน็ตหรือลองใหม่อีกครั้ง</translation>
</message>
@@ -255,43 +238,15 @@
<translation>ดูแอปทั้งหมด</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="349"/>
<location filename="../gui/PcView.qml" line="357"/>
<source>Enter the new name for this PC:</source>
<translation>ใส่ชื่อใหม่สำหรับคอมพิวเตอร์นี้:</translation>
</message>
</context>
<context>
<name>PendingPairingTask</name>
<message>
<location filename="../backend/computermanager.cpp" line="535"/>
<source>The PIN from the PC didn&apos;t match. Please try again.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../backend/computermanager.cpp" line="539"/>
<source>You cannot pair while a previous session is still running on the host PC. Quit any running games or reboot the host PC, then try pairing again.</source>
<translation type="unfinished">คุณไม่สามารถจับคู่ในขณะที่เซสชันก่อนหน้ายังทำงานอยู่บนคอมพิวเตอร์ตัวหลัก ออกจากเกมที่กำลังทำงานอยู่หรือรีบูตคอมพิวเตอร์ตัวหลัก จากนั้นลองจับคู่อีกครั้ง</translation>
</message>
<message>
<location filename="../backend/computermanager.cpp" line="542"/>
<source>Pairing failed. Please try again.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../backend/computermanager.cpp" line="546"/>
<source>Another pairing attempt is already in progress.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../backend/computermanager.cpp" line="556"/>
<source>GeForce Experience returned error: %1</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>PendingQuitTask</name>
<message>
<location filename="../backend/computermanager.cpp" line="606"/>
<location filename="../backend/computermanager.cpp" line="540"/>
<source>The running game wasn&apos;t started by this PC. You must quit the game on the host PC manually or use the device that originally started the game.</source>
<translation>เกมที่ทำงานอยู่ไม่ได้ถูกเปิดโดยคอมพิวเตอร์นี้ คุณต้องออกจากเกมด้วยคอมพิวเตอร์หลักเองหรือใช้อุปกรณ์ที่เปิดเกม</translation>
</message>
@@ -299,16 +254,6 @@
<context>
<name>QObject</name>
<message>
<location filename="../cli/pair.cpp" line="80"/>
<source>%1 is already paired</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>You cannot pair while a previous session is still running on the host PC. Quit any running games or reboot the host PC, then try pairing again.</source>
<translation type="obsolete">คุณไม่สามารถจับคู่ในขณะที่เซสชันก่อนหน้ายังทำงานอยู่บนคอมพิวเตอร์ตัวหลัก ออกจากเกมที่กำลังทำงานอยู่หรือรีบูตคอมพิวเตอร์ตัวหลัก จากนั้นลองจับคู่อีกครั้ง</translation>
</message>
<message>
<location filename="../cli/pair.cpp" line="109"/>
<location filename="../cli/quitstream.cpp" line="76"/>
<location filename="../cli/startstream.cpp" line="133"/>
<source>Failed to connect to %1</source>
@@ -331,11 +276,6 @@
<source>Failed to find application %1</source>
<translation>ไม่สามารถค้นหาแอป %1</translation>
</message>
<message>
<location filename="../cli/listapps.cpp" line="99"/>
<source>Computer %1 has not been paired. Please open Moonlight to pair before retrieving games list.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>QuitSegue</name>
@@ -367,32 +307,22 @@
<translation>การเชื่อมต่อเครื่อข่ายทำงานได้ไม่ค่อยดี ลด Bitrate ของวิดีโอหรือลองใช้การเชื่อมต่อที่เร็วกว่านี้</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="103"/>
<location filename="../streaming/session.cpp" line="102"/>
<source>Something went wrong on your host PC when starting the stream.</source>
<translation>เกิดข้อผิดพลาดบางอย่างบนคอมพิวเตอร์หลักขณะที่กำลังเริ่มสตรีม</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="104"/>
<location filename="../streaming/session.cpp" line="103"/>
<source>Make sure you don&apos;t have any DRM-protected content open on your host PC. You can also try restarting your host PC.</source>
<translation>ทำให้แน่ใจว่าคุณไม่ได้เปิดเนื้อหาที่ถูกป้องกันด้วย DRM บนคอมพิวเตอร์หลัก คุณก็สามารถลองรีสตาร์ทคอมพิวเตอร์หลักได้ด้วย</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="105"/>
<location filename="../streaming/session.cpp" line="104"/>
<source>If the issue persists, try reinstalling your GPU drivers and GeForce Experience.</source>
<translation>หากยังคงมีปัญหาอยู่ ลองติดตั้งไดร์เวอร์ของการ์ดจอและ GeForce Experience ใหม่</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="110"/>
<source>The host PC reported a fatal video encoding error.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="111"/>
<source>Try disabling HDR mode, changing the streaming resolution, or changing your host PC&apos;s display resolution.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="116"/>
<location filename="../streaming/session.cpp" line="109"/>
<source>Connection terminated</source>
<translation>ยุติการเชื่อมต่อแล้ว</translation>
</message>
@@ -490,32 +420,32 @@
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="810"/>
<location filename="../streaming/session.cpp" line="805"/>
<source>Your host PC&apos;s GPU doesn&apos;t support streaming video resolutions over 4K.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="814"/>
<location filename="../streaming/session.cpp" line="809"/>
<source>Video resolutions over 4K are only supported by the HEVC codec.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="828"/>
<location filename="../streaming/session.cpp" line="823"/>
<source>Your selection to force hardware decoding cannot be satisfied due to missing hardware decoding support on this PC&apos;s GPU.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="831"/>
<location filename="../streaming/session.cpp" line="826"/>
<source>Your codec selection and force hardware decoding setting are not compatible. This PC&apos;s GPU lacks support for decoding your chosen codec.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="1176"/>
<location filename="../streaming/session.cpp" line="1159"/>
<source>GeForce Experience returned error: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="1697"/>
<location filename="../streaming/session.cpp" line="1691"/>
<source>Unable to initialize video decoder. Please check your streaming settings and try again.</source>
<translation type="unfinished"></translation>
</message>
@@ -528,60 +458,60 @@
<translation>การตั้งค่า</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="72"/>
<location filename="../gui/SettingsView.qml" line="70"/>
<source>Resolution and FPS</source>
<translation>ความละเอียดและ FPS</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="80"/>
<location filename="../gui/SettingsView.qml" line="78"/>
<source>Setting values too high for your PC or network connection may cause lag, stuttering, or errors.</source>
<translation>ค่า การตั้งค่าสูงเกินไปสำหรับคอมพิวเตอร์ของคุณหรือการเชื่อต่อเครือข่าย อาจจะทำให้ล่าช้ากระตุกหรือข้อผิดพลาด</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="62"/>
<location filename="../gui/SettingsView.qml" line="60"/>
<source>Basic Settings</source>
<translation>การตั้งค่าพื้นฐาน</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="200"/>
<location filename="../gui/SettingsView.qml" line="209"/>
<source>720p</source>
<translation>720p</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="206"/>
<location filename="../gui/SettingsView.qml" line="215"/>
<source>1080p</source>
<translation>1080p</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="212"/>
<location filename="../gui/SettingsView.qml" line="221"/>
<source>1440p</source>
<translation>1440p</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="218"/>
<location filename="../gui/SettingsView.qml" line="227"/>
<source>4K</source>
<translation>4K</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="322"/>
<location filename="../gui/SettingsView.qml" line="331"/>
<source>Custom resolutions are not officially supported by GeForce Experience, so it will not set your host display resolution. You will need to set it manually while in game.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="323"/>
<location filename="../gui/SettingsView.qml" line="332"/>
<source>Resolutions that are not supported by your client or host PC may cause streaming errors.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="329"/>
<location filename="../gui/SettingsView.qml" line="338"/>
<source>Enter a custom resolution:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="397"/>
<location filename="../gui/SettingsView.qml" line="398"/>
<location filename="../gui/SettingsView.qml" line="418"/>
<location filename="../gui/SettingsView.qml" line="421"/>
<location filename="../gui/SettingsView.qml" line="406"/>
<location filename="../gui/SettingsView.qml" line="407"/>
<location filename="../gui/SettingsView.qml" line="427"/>
<location filename="../gui/SettingsView.qml" line="430"/>
<source>%1 FPS</source>
<translation type="unfinished"></translation>
</message>
@@ -590,189 +520,184 @@
<translation type="vanished">%1 FPS (nicht unterstützt)</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="485"/>
<location filename="../gui/SettingsView.qml" line="493"/>
<source>Video bitrate:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="493"/>
<location filename="../gui/SettingsView.qml" line="501"/>
<source>Lower the bitrate on slower connections. Raise the bitrate to increase image quality.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="511"/>
<location filename="../gui/SettingsView.qml" line="519"/>
<source>Video bitrate: %1 Mbps</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="519"/>
<location filename="../gui/SettingsView.qml" line="527"/>
<source>Display mode</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="549"/>
<location filename="../gui/SettingsView.qml" line="545"/>
<source> (Recommended)</source>
<translatorcomment>Dont put the space in ransaltions</translatorcomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="530"/>
<location filename="../gui/SettingsView.qml" line="937"/>
<location filename="../gui/SettingsView.qml" line="573"/>
<location filename="../gui/SettingsView.qml" line="919"/>
<source>Fullscreen</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="599"/>
<location filename="../gui/SettingsView.qml" line="592"/>
<source>Fullscreen generally provides the best performance, but borderless windowed may work better with features like macOS Spaces, Alt+Tab, screenshot tools, on-screen overlays, etc.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="535"/>
<location filename="../gui/SettingsView.qml" line="577"/>
<source>Borderless windowed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="403"/>
<location filename="../gui/SettingsView.qml" line="406"/>
<location filename="../gui/SettingsView.qml" line="412"/>
<location filename="../gui/SettingsView.qml" line="415"/>
<location filename="../gui/SettingsView.qml" line="428"/>
<location filename="../gui/SettingsView.qml" line="431"/>
<location filename="../gui/SettingsView.qml" line="424"/>
<location filename="../gui/SettingsView.qml" line="437"/>
<location filename="../gui/SettingsView.qml" line="440"/>
<source>%1 FPS (Unsupported)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="540"/>
<location filename="../gui/SettingsView.qml" line="929"/>
<location filename="../gui/SettingsView.qml" line="581"/>
<location filename="../gui/SettingsView.qml" line="911"/>
<source>Windowed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="606"/>
<location filename="../gui/SettingsView.qml" line="599"/>
<source>V-Sync</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="616"/>
<location filename="../gui/SettingsView.qml" line="609"/>
<source>Disabling V-Sync allows sub-frame rendering latency, but it can display visible tearing</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="623"/>
<location filename="../gui/SettingsView.qml" line="616"/>
<source>Frame pacing</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="633"/>
<location filename="../gui/SettingsView.qml" line="626"/>
<source>Frame pacing reduces micro-stutter by delaying frames that come in too early</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="643"/>
<location filename="../gui/SettingsView.qml" line="636"/>
<source>Audio Settings</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="678"/>
<location filename="../gui/SettingsView.qml" line="671"/>
<source>Stereo</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="682"/>
<location filename="../gui/SettingsView.qml" line="675"/>
<source>5.1 surround sound</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="686"/>
<location filename="../gui/SettingsView.qml" line="679"/>
<source>7.1 surround sound</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="700"/>
<location filename="../gui/SettingsView.qml" line="693"/>
<source>Mute host PC speakers while streaming</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="710"/>
<location filename="../gui/SettingsView.qml" line="703"/>
<source>You must restart any game currently in progress for this setting to take effect</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="716"/>
<location filename="../gui/SettingsView.qml" line="709"/>
<source>Mute audio stream when Moonlight is not the active window</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="727"/>
<location filename="../gui/SettingsView.qml" line="720"/>
<source>Mutes Moonlight&apos;s audio when you Alt+Tab out of the stream or click on a different window.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="736"/>
<location filename="../gui/SettingsView.qml" line="729"/>
<source>UI Settings</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="746"/>
<location filename="../gui/SettingsView.qml" line="739"/>
<source>Language</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="772"/>
<location filename="../gui/SettingsView.qml" line="765"/>
<source>Automatic</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="879"/>
<location filename="../gui/SettingsView.qml" line="864"/>
<source>You must restart Moonlight for this change to take effect</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="896"/>
<location filename="../gui/SettingsView.qml" line="878"/>
<source>GUI display mode</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="933"/>
<location filename="../gui/SettingsView.qml" line="915"/>
<source>Maximized</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1006"/>
<location filename="../gui/SettingsView.qml" line="988"/>
<source>Input Settings</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1027"/>
<location filename="../gui/SettingsView.qml" line="1009"/>
<source>This enables seamless mouse control without capturing the client&apos;s mouse cursor. It is ideal for remote desktop usage but will not work in most games.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1029"/>
<location filename="../gui/SettingsView.qml" line="1011"/>
<source>NOTE: Due to a bug in GeForce Experience, this option may not work properly if your host PC has multiple monitors.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1345"/>
<source>Enabling HDR overrides manual decoder selections.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1414"/>
<location filename="../gui/SettingsView.qml" line="1378"/>
<source>Enabling HDR overrides manual codec selections.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1420"/>
<location filename="../gui/SettingsView.qml" line="1384"/>
<source>Enable HDR (Experimental)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1431"/>
<location filename="../gui/SettingsView.qml" line="1395"/>
<source>The stream will be HDR-capable, but some games may require an HDR monitor on your host PC to enable HDR mode.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1433"/>
<location filename="../gui/SettingsView.qml" line="1397"/>
<source>HDR streaming is not supported on this PC.</source>
<translation type="unfinished"></translation>
</message>
@@ -785,208 +710,208 @@
<translation type="vanished">Dies ermöglicht die Erfassung von systemweiten Tastenkombinationen wie Alt+Tab, die normalerweise vom Client beim Streamen im Vollbildmodus ausgeführt werden würden.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1048"/>
<location filename="../gui/SettingsView.qml" line="1030"/>
<source>NOTE: Certain keyboard shortcuts like Ctrl+Alt+Del on Windows cannot be intercepted by any application, including Moonlight.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1111"/>
<location filename="../gui/SettingsView.qml" line="1093"/>
<source>Use touchscreen as a virtual trackpad</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1128"/>
<location filename="../gui/SettingsView.qml" line="1110"/>
<source>Swap left and right mouse buttons</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1140"/>
<location filename="../gui/SettingsView.qml" line="1122"/>
<source>Reverse mouse scrolling direction</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1154"/>
<location filename="../gui/SettingsView.qml" line="1136"/>
<source>Gamepad Settings</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1164"/>
<location filename="../gui/SettingsView.qml" line="1146"/>
<source>Swap A/B and X/Y gamepad buttons</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1182"/>
<location filename="../gui/SettingsView.qml" line="1164"/>
<source>This switches gamepads into a Nintendo-style button layout</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1188"/>
<location filename="../gui/SettingsView.qml" line="1170"/>
<source>Force gamepad #1 always connected</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1198"/>
<location filename="../gui/SettingsView.qml" line="1180"/>
<source>Forces a single gamepad to always stay connected to the host, even if no gamepads are actually connected to this PC.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1028"/>
<location filename="../gui/SettingsView.qml" line="1010"/>
<source>You can toggle this while streaming using Ctrl+Alt+Shift+M.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1206"/>
<location filename="../gui/SettingsView.qml" line="1188"/>
<source>Enable mouse control with gamepads by holding the &apos;Start&apos; button</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1217"/>
<location filename="../gui/SettingsView.qml" line="1199"/>
<source>Process gamepad input when Moonlight is in the background</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1228"/>
<location filename="../gui/SettingsView.qml" line="1210"/>
<source>Allows Moonlight to capture gamepad inputs even if it&apos;s not the current window in focus</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1237"/>
<location filename="../gui/SettingsView.qml" line="1219"/>
<source>Host Settings</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1277"/>
<location filename="../gui/SettingsView.qml" line="1259"/>
<source>Advanced Settings</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="653"/>
<location filename="../gui/SettingsView.qml" line="646"/>
<source>Audio configuration</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="950"/>
<location filename="../gui/SettingsView.qml" line="932"/>
<source>Show connection quality warnings</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="962"/>
<location filename="../gui/SettingsView.qml" line="944"/>
<source>Discord Rich Presence integration</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="972"/>
<location filename="../gui/SettingsView.qml" line="954"/>
<source>Updates your Discord status to display the name of the game you&apos;re streaming.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1199"/>
<location filename="../gui/SettingsView.qml" line="1181"/>
<source>Only enable this option when streaming a game that doesn&apos;t support gamepads being connected after startup.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1017"/>
<location filename="../gui/SettingsView.qml" line="999"/>
<source>Optimize mouse for remote desktop instead of games</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="978"/>
<location filename="../gui/SettingsView.qml" line="960"/>
<source>Keep the display awake while streaming</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="988"/>
<location filename="../gui/SettingsView.qml" line="970"/>
<source>Prevents the screensaver from starting or the display from going to sleep while streaming.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1039"/>
<location filename="../gui/SettingsView.qml" line="1021"/>
<source>Capture system keyboard shortcuts</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1047"/>
<location filename="../gui/SettingsView.qml" line="1029"/>
<source>This enables the capture of system-wide keyboard shortcuts like Alt+Tab that would normally be handled by the client OS while streaming.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1077"/>
<location filename="../gui/SettingsView.qml" line="1059"/>
<source>in fullscreen</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1081"/>
<location filename="../gui/SettingsView.qml" line="1063"/>
<source>always</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1121"/>
<location filename="../gui/SettingsView.qml" line="1103"/>
<source>When checked, the touchscreen acts like a trackpad. When unchecked, the touchscreen will directly control the mouse pointer.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1247"/>
<location filename="../gui/SettingsView.qml" line="1229"/>
<source>Optimize game settings for streaming</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1258"/>
<location filename="../gui/SettingsView.qml" line="1240"/>
<source>Quit app on host PC after ending stream</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1268"/>
<location filename="../gui/SettingsView.qml" line="1250"/>
<source>This will close the app or game you are streaming when you end your stream. You will lose any unsaved progress!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1287"/>
<location filename="../gui/SettingsView.qml" line="1269"/>
<source>Video decoder</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1313"/>
<location filename="../gui/SettingsView.qml" line="1382"/>
<location filename="../gui/SettingsView.qml" line="1294"/>
<location filename="../gui/SettingsView.qml" line="1346"/>
<source>Automatic (Recommended)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1317"/>
<location filename="../gui/SettingsView.qml" line="1298"/>
<source>Force software decoding</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1321"/>
<location filename="../gui/SettingsView.qml" line="1302"/>
<source>Force hardware decoding</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1351"/>
<location filename="../gui/SettingsView.qml" line="1315"/>
<source>Video codec</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1386"/>
<location filename="../gui/SettingsView.qml" line="1350"/>
<source>H.264</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1390"/>
<location filename="../gui/SettingsView.qml" line="1354"/>
<source>HEVC (H.265)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1439"/>
<location filename="../gui/SettingsView.qml" line="1403"/>
<source>Unlock unsupported FPS options</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1458"/>
<location filename="../gui/SettingsView.qml" line="1422"/>
<source>Automatically find PCs on the local network (Recommended)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1483"/>
<location filename="../gui/SettingsView.qml" line="1447"/>
<source>Automatically detect blocked connections (Recommended)</source>
<translation type="unfinished"></translation>
</message>
@@ -1043,90 +968,95 @@
<context>
<name>main</name>
<message>
<location filename="../gui/main.qml" line="418"/>
<location filename="../gui/main.qml" line="254"/>
<location filename="../gui/main.qml" line="264"/>
<location filename="../gui/main.qml" line="393"/>
<location filename="../gui/main.qml" line="408"/>
<source>Settings</source>
<translation type="unfinished">การตั้งค่า</translation>
</message>
<message>
<location filename="../gui/main.qml" line="265"/>
<location filename="../gui/main.qml" line="255"/>
<source>Version %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/main.qml" line="281"/>
<location filename="../gui/main.qml" line="271"/>
<source>Join our community on Discord</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/main.qml" line="283"/>
<source>Computers</source>
<translation type="obsolete">คอมพิวเตอร์</translation>
<translation type="unfinished">คอมพิวเตอร์</translation>
</message>
<message>
<location filename="../gui/main.qml" line="300"/>
<location filename="../gui/main.qml" line="290"/>
<source>Add PC manually</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/main.qml" line="340"/>
<location filename="../gui/main.qml" line="330"/>
<source>Update available for Moonlight: Version %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/main.qml" line="387"/>
<location filename="../gui/main.qml" line="377"/>
<source>Gamepad Mapper</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/main.qml" line="381"/>
<source>Gamepad Mapping</source>
<translation type="obsolete">การตั้งค่าปุ่ม Gamepad</translation>
<translation type="unfinished">การตั้งค่าปุ่ม Gamepad</translation>
</message>
<message>
<location filename="../gui/main.qml" line="433"/>
<location filename="../gui/main.qml" line="423"/>
<source>Hardware acceleration doesn&apos;t work on XWayland. Continuing on XWayland may result in poor streaming performance. Try running with QT_QPA_PLATFORM=wayland or switch to X11.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/main.qml" line="442"/>
<location filename="../gui/main.qml" line="432"/>
<source>This version of Moonlight isn&apos;t optimized for your PC. Please download the &apos;%1&apos; version of Moonlight for the best streaming performance.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/main.qml" line="451"/>
<location filename="../gui/main.qml" line="441"/>
<source>Moonlight detected gamepads without a mapping:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/main.qml" line="364"/>
<location filename="../gui/main.qml" line="354"/>
<source>Help</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/main.qml" line="425"/>
<location filename="../gui/main.qml" line="415"/>
<source>No functioning hardware accelerated video decoder was detected by Moonlight. Your streaming performance may be severely degraded in this configuration.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/main.qml" line="427"/>
<location filename="../gui/main.qml" line="417"/>
<source>Click the Help button for more information on solving this problem.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/main.qml" line="435"/>
<location filename="../gui/main.qml" line="425"/>
<source>Click the Help button for more information.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/main.qml" line="453"/>
<location filename="../gui/main.qml" line="443"/>
<source>Click the Help button for information on how to map your gamepads.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/main.qml" line="461"/>
<location filename="../gui/main.qml" line="451"/>
<source>Are you sure you want to quit?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/main.qml" line="491"/>
<location filename="../gui/main.qml" line="481"/>
<source>Enter the IP address of your GameStream PC:</source>
<translation type="unfinished"></translation>
</message>
Binary file not shown.
+148 -206
View File
@@ -51,24 +51,6 @@
<translation>%1 den çıkmak istediğinize emin misiniz, Tüm kaydedilmemiş ilerlemeniz silinecektir</translation>
</message>
</context>
<context>
<name>CliPair</name>
<message>
<location filename="../gui/CliPair.qml" line="9"/>
<source>Establishing connection to PC...</source>
<translation type="unfinished">PC ile bağlantı kuruluyor...</translation>
</message>
<message>
<location filename="../gui/CliPair.qml" line="13"/>
<source>Pairing... Please enter &apos;%1&apos; on %2.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/CliPair.qml" line="85"/>
<source>Pairing completed successfully</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>CliQuitStreamSegue</name>
<message>
@@ -181,47 +163,52 @@
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="294"/>
<location filename="../gui/PcView.qml" line="247"/>
<source>You cannot pair while a previous session is still running on the host PC. Quit any running games or reboot the host PC, then try pairing again.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="302"/>
<source>Please enter %1 on your GameStream PC. This dialog will close when pairing is completed.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="305"/>
<location filename="../gui/PcView.qml" line="313"/>
<source>Are you sure you want to remove this PC?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="322"/>
<location filename="../gui/PcView.qml" line="330"/>
<source>Moonlight is testing your network connection to determine if NVIDIA GameStream is blocked.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="322"/>
<location filename="../gui/PcView.qml" line="330"/>
<source>This may take a few seconds…</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="333"/>
<location filename="../gui/PcView.qml" line="341"/>
<source>This network does not appear to be blocking Moonlight. If you still have trouble connecting, check your PC&apos;s firewall settings.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="333"/>
<location filename="../gui/PcView.qml" line="341"/>
<source>If you are trying to stream over the Internet, install the Moonlight Internet Hosting Tool on your gaming PC and run the included Internet Streaming Tester to check your gaming PC&apos;s Internet connection.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="337"/>
<location filename="../gui/PcView.qml" line="345"/>
<source>Your PC&apos;s current network connection seems to be blocking Moonlight. Streaming over the Internet may not work while connected to this network.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="337"/>
<location filename="../gui/PcView.qml" line="345"/>
<source>The following network ports were blocked:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="329"/>
<location filename="../gui/PcView.qml" line="337"/>
<source>The network test could not be performed because none of Moonlight&apos;s connection testing servers were reachable from this PC. Check your Internet connection or try again later.</source>
<translation type="unfinished"></translation>
</message>
@@ -251,43 +238,15 @@
<translation type="unfinished">Tüm uygulamaları göster</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="349"/>
<location filename="../gui/PcView.qml" line="357"/>
<source>Enter the new name for this PC:</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>PendingPairingTask</name>
<message>
<location filename="../backend/computermanager.cpp" line="535"/>
<source>The PIN from the PC didn&apos;t match. Please try again.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../backend/computermanager.cpp" line="539"/>
<source>You cannot pair while a previous session is still running on the host PC. Quit any running games or reboot the host PC, then try pairing again.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../backend/computermanager.cpp" line="542"/>
<source>Pairing failed. Please try again.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../backend/computermanager.cpp" line="546"/>
<source>Another pairing attempt is already in progress.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../backend/computermanager.cpp" line="556"/>
<source>GeForce Experience returned error: %1</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>PendingQuitTask</name>
<message>
<location filename="../backend/computermanager.cpp" line="606"/>
<location filename="../backend/computermanager.cpp" line="540"/>
<source>The running game wasn&apos;t started by this PC. You must quit the game on the host PC manually or use the device that originally started the game.</source>
<translation type="unfinished"></translation>
</message>
@@ -295,12 +254,6 @@
<context>
<name>QObject</name>
<message>
<location filename="../cli/pair.cpp" line="80"/>
<source>%1 is already paired</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../cli/pair.cpp" line="109"/>
<location filename="../cli/quitstream.cpp" line="76"/>
<location filename="../cli/startstream.cpp" line="133"/>
<source>Failed to connect to %1</source>
@@ -323,11 +276,6 @@
<source>Failed to find application %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../cli/listapps.cpp" line="99"/>
<source>Computer %1 has not been paired. Please open Moonlight to pair before retrieving games list.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>QuitSegue</name>
@@ -359,22 +307,22 @@
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="103"/>
<location filename="../streaming/session.cpp" line="102"/>
<source>Something went wrong on your host PC when starting the stream.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="104"/>
<location filename="../streaming/session.cpp" line="103"/>
<source>Make sure you don&apos;t have any DRM-protected content open on your host PC. You can also try restarting your host PC.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="105"/>
<location filename="../streaming/session.cpp" line="104"/>
<source>If the issue persists, try reinstalling your GPU drivers and GeForce Experience.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="116"/>
<location filename="../streaming/session.cpp" line="109"/>
<source>Connection terminated</source>
<translation type="unfinished"></translation>
</message>
@@ -418,16 +366,6 @@
<source>Your host PC GPU doesn&apos;t support HEVC. A GeForce GTX 900-series (Maxwell) or later GPU is required for HEVC streaming.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="110"/>
<source>The host PC reported a fatal video encoding error.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="111"/>
<source>Try disabling HDR mode, changing the streaming resolution, or changing your host PC&apos;s display resolution.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="724"/>
<source>Using software decoding due to your selection to force H.264 without GPU support. This may cause poor streaming performance.</source>
@@ -474,32 +412,32 @@
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="810"/>
<location filename="../streaming/session.cpp" line="805"/>
<source>Your host PC&apos;s GPU doesn&apos;t support streaming video resolutions over 4K.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="814"/>
<location filename="../streaming/session.cpp" line="809"/>
<source>Video resolutions over 4K are only supported by the HEVC codec.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="828"/>
<location filename="../streaming/session.cpp" line="823"/>
<source>Your selection to force hardware decoding cannot be satisfied due to missing hardware decoding support on this PC&apos;s GPU.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="831"/>
<location filename="../streaming/session.cpp" line="826"/>
<source>Your codec selection and force hardware decoding setting are not compatible. This PC&apos;s GPU lacks support for decoding your chosen codec.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="1176"/>
<location filename="../streaming/session.cpp" line="1159"/>
<source>GeForce Experience returned error: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="1697"/>
<location filename="../streaming/session.cpp" line="1691"/>
<source>Unable to initialize video decoder. Please check your streaming settings and try again.</source>
<translation type="unfinished"></translation>
</message>
@@ -512,60 +450,60 @@
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="72"/>
<location filename="../gui/SettingsView.qml" line="70"/>
<source>Resolution and FPS</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="80"/>
<location filename="../gui/SettingsView.qml" line="78"/>
<source>Setting values too high for your PC or network connection may cause lag, stuttering, or errors.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="62"/>
<location filename="../gui/SettingsView.qml" line="60"/>
<source>Basic Settings</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="200"/>
<location filename="../gui/SettingsView.qml" line="209"/>
<source>720p</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="206"/>
<location filename="../gui/SettingsView.qml" line="215"/>
<source>1080p</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="212"/>
<location filename="../gui/SettingsView.qml" line="221"/>
<source>1440p</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="218"/>
<location filename="../gui/SettingsView.qml" line="227"/>
<source>4K</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="322"/>
<location filename="../gui/SettingsView.qml" line="331"/>
<source>Custom resolutions are not officially supported by GeForce Experience, so it will not set your host display resolution. You will need to set it manually while in game.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="323"/>
<location filename="../gui/SettingsView.qml" line="332"/>
<source>Resolutions that are not supported by your client or host PC may cause streaming errors.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="329"/>
<location filename="../gui/SettingsView.qml" line="338"/>
<source>Enter a custom resolution:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="397"/>
<location filename="../gui/SettingsView.qml" line="398"/>
<location filename="../gui/SettingsView.qml" line="418"/>
<location filename="../gui/SettingsView.qml" line="421"/>
<location filename="../gui/SettingsView.qml" line="406"/>
<location filename="../gui/SettingsView.qml" line="407"/>
<location filename="../gui/SettingsView.qml" line="427"/>
<location filename="../gui/SettingsView.qml" line="430"/>
<source>%1 FPS</source>
<translation type="unfinished"></translation>
</message>
@@ -574,189 +512,184 @@
<translation type="vanished">%1 FPS (nicht unterstützt)</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="485"/>
<location filename="../gui/SettingsView.qml" line="493"/>
<source>Video bitrate:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="493"/>
<location filename="../gui/SettingsView.qml" line="501"/>
<source>Lower the bitrate on slower connections. Raise the bitrate to increase image quality.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="511"/>
<location filename="../gui/SettingsView.qml" line="519"/>
<source>Video bitrate: %1 Mbps</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="519"/>
<location filename="../gui/SettingsView.qml" line="527"/>
<source>Display mode</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="549"/>
<location filename="../gui/SettingsView.qml" line="545"/>
<source> (Recommended)</source>
<translatorcomment>Dont put the space in ransaltions</translatorcomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="530"/>
<location filename="../gui/SettingsView.qml" line="937"/>
<location filename="../gui/SettingsView.qml" line="573"/>
<location filename="../gui/SettingsView.qml" line="919"/>
<source>Fullscreen</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="599"/>
<location filename="../gui/SettingsView.qml" line="592"/>
<source>Fullscreen generally provides the best performance, but borderless windowed may work better with features like macOS Spaces, Alt+Tab, screenshot tools, on-screen overlays, etc.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="535"/>
<location filename="../gui/SettingsView.qml" line="577"/>
<source>Borderless windowed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="403"/>
<location filename="../gui/SettingsView.qml" line="406"/>
<location filename="../gui/SettingsView.qml" line="412"/>
<location filename="../gui/SettingsView.qml" line="415"/>
<location filename="../gui/SettingsView.qml" line="428"/>
<location filename="../gui/SettingsView.qml" line="431"/>
<location filename="../gui/SettingsView.qml" line="424"/>
<location filename="../gui/SettingsView.qml" line="437"/>
<location filename="../gui/SettingsView.qml" line="440"/>
<source>%1 FPS (Unsupported)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="540"/>
<location filename="../gui/SettingsView.qml" line="929"/>
<location filename="../gui/SettingsView.qml" line="581"/>
<location filename="../gui/SettingsView.qml" line="911"/>
<source>Windowed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="606"/>
<location filename="../gui/SettingsView.qml" line="599"/>
<source>V-Sync</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="616"/>
<location filename="../gui/SettingsView.qml" line="609"/>
<source>Disabling V-Sync allows sub-frame rendering latency, but it can display visible tearing</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="623"/>
<location filename="../gui/SettingsView.qml" line="616"/>
<source>Frame pacing</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="633"/>
<location filename="../gui/SettingsView.qml" line="626"/>
<source>Frame pacing reduces micro-stutter by delaying frames that come in too early</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="643"/>
<location filename="../gui/SettingsView.qml" line="636"/>
<source>Audio Settings</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="678"/>
<location filename="../gui/SettingsView.qml" line="671"/>
<source>Stereo</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="682"/>
<location filename="../gui/SettingsView.qml" line="675"/>
<source>5.1 surround sound</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="686"/>
<location filename="../gui/SettingsView.qml" line="679"/>
<source>7.1 surround sound</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="700"/>
<location filename="../gui/SettingsView.qml" line="693"/>
<source>Mute host PC speakers while streaming</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="710"/>
<location filename="../gui/SettingsView.qml" line="703"/>
<source>You must restart any game currently in progress for this setting to take effect</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="716"/>
<location filename="../gui/SettingsView.qml" line="709"/>
<source>Mute audio stream when Moonlight is not the active window</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="727"/>
<location filename="../gui/SettingsView.qml" line="720"/>
<source>Mutes Moonlight&apos;s audio when you Alt+Tab out of the stream or click on a different window.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="736"/>
<location filename="../gui/SettingsView.qml" line="729"/>
<source>UI Settings</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="746"/>
<location filename="../gui/SettingsView.qml" line="739"/>
<source>Language</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="772"/>
<location filename="../gui/SettingsView.qml" line="765"/>
<source>Automatic</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="879"/>
<location filename="../gui/SettingsView.qml" line="864"/>
<source>You must restart Moonlight for this change to take effect</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="896"/>
<location filename="../gui/SettingsView.qml" line="878"/>
<source>GUI display mode</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="933"/>
<location filename="../gui/SettingsView.qml" line="915"/>
<source>Maximized</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1006"/>
<location filename="../gui/SettingsView.qml" line="988"/>
<source>Input Settings</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1027"/>
<location filename="../gui/SettingsView.qml" line="1009"/>
<source>This enables seamless mouse control without capturing the client&apos;s mouse cursor. It is ideal for remote desktop usage but will not work in most games.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1029"/>
<location filename="../gui/SettingsView.qml" line="1011"/>
<source>NOTE: Due to a bug in GeForce Experience, this option may not work properly if your host PC has multiple monitors.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1345"/>
<source>Enabling HDR overrides manual decoder selections.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1414"/>
<location filename="../gui/SettingsView.qml" line="1378"/>
<source>Enabling HDR overrides manual codec selections.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1420"/>
<location filename="../gui/SettingsView.qml" line="1384"/>
<source>Enable HDR (Experimental)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1431"/>
<location filename="../gui/SettingsView.qml" line="1395"/>
<source>The stream will be HDR-capable, but some games may require an HDR monitor on your host PC to enable HDR mode.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1433"/>
<location filename="../gui/SettingsView.qml" line="1397"/>
<source>HDR streaming is not supported on this PC.</source>
<translation type="unfinished"></translation>
</message>
@@ -769,208 +702,208 @@
<translation type="vanished">Dies ermöglicht die Erfassung von systemweiten Tastenkombinationen wie Alt+Tab, die normalerweise vom Client beim Streamen im Vollbildmodus ausgeführt werden würden.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1048"/>
<location filename="../gui/SettingsView.qml" line="1030"/>
<source>NOTE: Certain keyboard shortcuts like Ctrl+Alt+Del on Windows cannot be intercepted by any application, including Moonlight.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1111"/>
<location filename="../gui/SettingsView.qml" line="1093"/>
<source>Use touchscreen as a virtual trackpad</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1128"/>
<location filename="../gui/SettingsView.qml" line="1110"/>
<source>Swap left and right mouse buttons</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1140"/>
<location filename="../gui/SettingsView.qml" line="1122"/>
<source>Reverse mouse scrolling direction</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1154"/>
<location filename="../gui/SettingsView.qml" line="1136"/>
<source>Gamepad Settings</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1164"/>
<location filename="../gui/SettingsView.qml" line="1146"/>
<source>Swap A/B and X/Y gamepad buttons</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1182"/>
<location filename="../gui/SettingsView.qml" line="1164"/>
<source>This switches gamepads into a Nintendo-style button layout</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1188"/>
<location filename="../gui/SettingsView.qml" line="1170"/>
<source>Force gamepad #1 always connected</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1198"/>
<location filename="../gui/SettingsView.qml" line="1180"/>
<source>Forces a single gamepad to always stay connected to the host, even if no gamepads are actually connected to this PC.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1028"/>
<location filename="../gui/SettingsView.qml" line="1010"/>
<source>You can toggle this while streaming using Ctrl+Alt+Shift+M.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1206"/>
<location filename="../gui/SettingsView.qml" line="1188"/>
<source>Enable mouse control with gamepads by holding the &apos;Start&apos; button</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1217"/>
<location filename="../gui/SettingsView.qml" line="1199"/>
<source>Process gamepad input when Moonlight is in the background</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1228"/>
<location filename="../gui/SettingsView.qml" line="1210"/>
<source>Allows Moonlight to capture gamepad inputs even if it&apos;s not the current window in focus</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1237"/>
<location filename="../gui/SettingsView.qml" line="1219"/>
<source>Host Settings</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1277"/>
<location filename="../gui/SettingsView.qml" line="1259"/>
<source>Advanced Settings</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="653"/>
<location filename="../gui/SettingsView.qml" line="646"/>
<source>Audio configuration</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="950"/>
<location filename="../gui/SettingsView.qml" line="932"/>
<source>Show connection quality warnings</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="962"/>
<location filename="../gui/SettingsView.qml" line="944"/>
<source>Discord Rich Presence integration</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="972"/>
<location filename="../gui/SettingsView.qml" line="954"/>
<source>Updates your Discord status to display the name of the game you&apos;re streaming.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1199"/>
<location filename="../gui/SettingsView.qml" line="1181"/>
<source>Only enable this option when streaming a game that doesn&apos;t support gamepads being connected after startup.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1017"/>
<location filename="../gui/SettingsView.qml" line="999"/>
<source>Optimize mouse for remote desktop instead of games</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="978"/>
<location filename="../gui/SettingsView.qml" line="960"/>
<source>Keep the display awake while streaming</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="988"/>
<location filename="../gui/SettingsView.qml" line="970"/>
<source>Prevents the screensaver from starting or the display from going to sleep while streaming.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1039"/>
<location filename="../gui/SettingsView.qml" line="1021"/>
<source>Capture system keyboard shortcuts</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1047"/>
<location filename="../gui/SettingsView.qml" line="1029"/>
<source>This enables the capture of system-wide keyboard shortcuts like Alt+Tab that would normally be handled by the client OS while streaming.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1077"/>
<location filename="../gui/SettingsView.qml" line="1059"/>
<source>in fullscreen</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1081"/>
<location filename="../gui/SettingsView.qml" line="1063"/>
<source>always</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1121"/>
<location filename="../gui/SettingsView.qml" line="1103"/>
<source>When checked, the touchscreen acts like a trackpad. When unchecked, the touchscreen will directly control the mouse pointer.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1247"/>
<location filename="../gui/SettingsView.qml" line="1229"/>
<source>Optimize game settings for streaming</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1258"/>
<location filename="../gui/SettingsView.qml" line="1240"/>
<source>Quit app on host PC after ending stream</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1268"/>
<location filename="../gui/SettingsView.qml" line="1250"/>
<source>This will close the app or game you are streaming when you end your stream. You will lose any unsaved progress!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1287"/>
<location filename="../gui/SettingsView.qml" line="1269"/>
<source>Video decoder</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1313"/>
<location filename="../gui/SettingsView.qml" line="1382"/>
<location filename="../gui/SettingsView.qml" line="1294"/>
<location filename="../gui/SettingsView.qml" line="1346"/>
<source>Automatic (Recommended)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1317"/>
<location filename="../gui/SettingsView.qml" line="1298"/>
<source>Force software decoding</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1321"/>
<location filename="../gui/SettingsView.qml" line="1302"/>
<source>Force hardware decoding</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1351"/>
<location filename="../gui/SettingsView.qml" line="1315"/>
<source>Video codec</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1386"/>
<location filename="../gui/SettingsView.qml" line="1350"/>
<source>H.264</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1390"/>
<location filename="../gui/SettingsView.qml" line="1354"/>
<source>HEVC (H.265)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1439"/>
<location filename="../gui/SettingsView.qml" line="1403"/>
<source>Unlock unsupported FPS options</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1458"/>
<location filename="../gui/SettingsView.qml" line="1422"/>
<source>Automatically find PCs on the local network (Recommended)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1483"/>
<location filename="../gui/SettingsView.qml" line="1447"/>
<source>Automatically detect blocked connections (Recommended)</source>
<translation type="unfinished"></translation>
</message>
@@ -1027,86 +960,95 @@
<context>
<name>main</name>
<message>
<location filename="../gui/main.qml" line="418"/>
<location filename="../gui/main.qml" line="254"/>
<location filename="../gui/main.qml" line="264"/>
<location filename="../gui/main.qml" line="393"/>
<location filename="../gui/main.qml" line="408"/>
<source>Settings</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/main.qml" line="265"/>
<location filename="../gui/main.qml" line="255"/>
<source>Version %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/main.qml" line="281"/>
<location filename="../gui/main.qml" line="271"/>
<source>Join our community on Discord</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/main.qml" line="300"/>
<location filename="../gui/main.qml" line="283"/>
<source>Computers</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/main.qml" line="290"/>
<source>Add PC manually</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/main.qml" line="340"/>
<location filename="../gui/main.qml" line="330"/>
<source>Update available for Moonlight: Version %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/main.qml" line="387"/>
<location filename="../gui/main.qml" line="377"/>
<source>Gamepad Mapper</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/main.qml" line="381"/>
<source>Gamepad Mapping</source>
<translation type="obsolete">Oyun kumandası ayarları</translation>
<translation type="unfinished">Oyun kumandası ayarları</translation>
</message>
<message>
<location filename="../gui/main.qml" line="433"/>
<location filename="../gui/main.qml" line="423"/>
<source>Hardware acceleration doesn&apos;t work on XWayland. Continuing on XWayland may result in poor streaming performance. Try running with QT_QPA_PLATFORM=wayland or switch to X11.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/main.qml" line="442"/>
<location filename="../gui/main.qml" line="432"/>
<source>This version of Moonlight isn&apos;t optimized for your PC. Please download the &apos;%1&apos; version of Moonlight for the best streaming performance.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/main.qml" line="451"/>
<location filename="../gui/main.qml" line="441"/>
<source>Moonlight detected gamepads without a mapping:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/main.qml" line="364"/>
<location filename="../gui/main.qml" line="354"/>
<source>Help</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/main.qml" line="425"/>
<location filename="../gui/main.qml" line="415"/>
<source>No functioning hardware accelerated video decoder was detected by Moonlight. Your streaming performance may be severely degraded in this configuration.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/main.qml" line="427"/>
<location filename="../gui/main.qml" line="417"/>
<source>Click the Help button for more information on solving this problem.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/main.qml" line="435"/>
<location filename="../gui/main.qml" line="425"/>
<source>Click the Help button for more information.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/main.qml" line="453"/>
<location filename="../gui/main.qml" line="443"/>
<source>Click the Help button for information on how to map your gamepads.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/main.qml" line="461"/>
<location filename="../gui/main.qml" line="451"/>
<source>Are you sure you want to quit?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/main.qml" line="491"/>
<location filename="../gui/main.qml" line="481"/>
<source>Enter the IP address of your GameStream PC:</source>
<translation type="unfinished"></translation>
</message>
Binary file not shown.
+201 -263
View File
File diff suppressed because it is too large Load Diff
Binary file not shown.
+142 -212
View File
@@ -51,24 +51,6 @@
<translation>Bạn có chắc bạn muốn thoát %1 không? Bất kỳ việc gì đang làm chưa được lưu sẽ bị mất.</translation>
</message>
</context>
<context>
<name>CliPair</name>
<message>
<location filename="../gui/CliPair.qml" line="9"/>
<source>Establishing connection to PC...</source>
<translation>Đang lập kết nối đến PC...</translation>
</message>
<message>
<location filename="../gui/CliPair.qml" line="13"/>
<source>Pairing... Please enter &apos;%1&apos; on %2.</source>
<translation>Đang ghép đôi… Vui lòng nhập &apos;%1&apos; trên %2.</translation>
</message>
<message>
<location filename="../gui/CliPair.qml" line="85"/>
<source>Pairing completed successfully</source>
<translation>Ghép đôi thành công</translation>
</message>
</context>
<context>
<name>CliQuitStreamSegue</name>
<message>
@@ -181,51 +163,52 @@
<translation>Phiên bản của GeForce Experience trên %1 không được bản dựng Moonlight này hỗ trợ. Bạn phải cập nhật Moonlight để stream từ %1.</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="247"/>
<source>You cannot pair while a previous session is still running on the host PC. Quit any running games or reboot the host PC, then try pairing again.</source>
<translation type="vanished">Bạn không thể ghép đôi trong khi một phiên làm việc trước vẫn đang chạy trên PC chủ. Hãy thoát các trò chơi hoặc khởi động lại PC chủ, sau đó thử ghép đôi lại.</translation>
<translation>Bạn không thể ghép đôi trong khi một phiên làm việc trước vẫn đang chạy trên PC chủ. Hãy thoát các trò chơi hoặc khởi động lại PC chủ, sau đó thử ghép đôi lại.</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="294"/>
<location filename="../gui/PcView.qml" line="302"/>
<source>Please enter %1 on your GameStream PC. This dialog will close when pairing is completed.</source>
<translation>Vui lòng nhập %1 trên PC GameStream của bạn. Hộp thoại này sẽ đóng khi ghép đôi hoàn tất.</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="305"/>
<location filename="../gui/PcView.qml" line="313"/>
<source>Are you sure you want to remove this PC?</source>
<translation>Bạn có chắc bạn muốn xoá PC này không?</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="322"/>
<location filename="../gui/PcView.qml" line="330"/>
<source>Moonlight is testing your network connection to determine if NVIDIA GameStream is blocked.</source>
<translation>Moonlight đang thử nghiệm kết nối mạng của bạn để xác định xem NVIDIA GameStream có bị chặn không.</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="322"/>
<location filename="../gui/PcView.qml" line="330"/>
<source>This may take a few seconds…</source>
<translation>Việc này có thể sẽ mất một vài giây…</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="333"/>
<location filename="../gui/PcView.qml" line="341"/>
<source>This network does not appear to be blocking Moonlight. If you still have trouble connecting, check your PC&apos;s firewall settings.</source>
<translation>Mạng này có vẻ là đang không chặn Moonlight. Nếu bạn vẫn gặp rắc rối trong việc kết nối, hãy kiểm tra cài đặt tường lửa của PC.</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="333"/>
<location filename="../gui/PcView.qml" line="341"/>
<source>If you are trying to stream over the Internet, install the Moonlight Internet Hosting Tool on your gaming PC and run the included Internet Streaming Tester to check your gaming PC&apos;s Internet connection.</source>
<translation>Nếu bạn đang cố stream qua Internet, hãy cài đặt Moonlight Internet Hosting Tool trên PC chơi game của bạn và chạy Internet Streaming Tool được bao gồm trong đó để kiểm tra kết nối Internet của PC chơi game.</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="337"/>
<location filename="../gui/PcView.qml" line="345"/>
<source>Your PC&apos;s current network connection seems to be blocking Moonlight. Streaming over the Internet may not work while connected to this network.</source>
<translation>Kết nối mạng hiện tại của PC có vẻ là đang chặn Moonlight. Việc stream qua Internet có thể sẽ không được khi kết nối đến mạng này.</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="337"/>
<location filename="../gui/PcView.qml" line="345"/>
<source>The following network ports were blocked:</source>
<translation>Các cổng mạng sau đã bị chặn:</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="329"/>
<location filename="../gui/PcView.qml" line="337"/>
<source>The network test could not be performed because none of Moonlight&apos;s connection testing servers were reachable from this PC. Check your Internet connection or try again later.</source>
<translation>Việc thử nghiệm mạng không thể được thực hiện vì không có máy chủ thử nghiệm kết nối nào của Moonlight có thể được kết nối đến từ PC này. Hãy kiểm tra kết nối Internet của bạn hoặc thử lại sau.</translation>
</message>
@@ -255,43 +238,15 @@
<translation>Xem tất cả ứng dụng</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="349"/>
<location filename="../gui/PcView.qml" line="357"/>
<source>Enter the new name for this PC:</source>
<translation>Nhập tên mới cho PC này:</translation>
</message>
</context>
<context>
<name>PendingPairingTask</name>
<message>
<location filename="../backend/computermanager.cpp" line="535"/>
<source>The PIN from the PC didn&apos;t match. Please try again.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../backend/computermanager.cpp" line="539"/>
<source>You cannot pair while a previous session is still running on the host PC. Quit any running games or reboot the host PC, then try pairing again.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../backend/computermanager.cpp" line="542"/>
<source>Pairing failed. Please try again.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../backend/computermanager.cpp" line="546"/>
<source>Another pairing attempt is already in progress.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../backend/computermanager.cpp" line="556"/>
<source>GeForce Experience returned error: %1</source>
<translation type="unfinished">GeForce Experience đã trả lời bằng lỗi: %1</translation>
</message>
</context>
<context>
<name>PendingQuitTask</name>
<message>
<location filename="../backend/computermanager.cpp" line="606"/>
<location filename="../backend/computermanager.cpp" line="540"/>
<source>The running game wasn&apos;t started by this PC. You must quit the game on the host PC manually or use the device that originally started the game.</source>
<translation>Trò chơi đang chạy đã không được PC này khởi động. Bạn phải thoát trò chơi trên PC chủ theo cách thủ công hoặc sử dụng thiết bị đã khởi động trò chơi lúc đầu.</translation>
</message>
@@ -299,16 +254,6 @@
<context>
<name>QObject</name>
<message>
<location filename="../cli/pair.cpp" line="80"/>
<source>%1 is already paired</source>
<translation>%1 đã được ghép đôi</translation>
</message>
<message>
<source>You cannot pair while a previous session is still running on the host PC. Quit any running games or reboot the host PC, then try pairing again.</source>
<translation type="vanished">Bạn không thể ghép đôi khi một phiên làm việc trước vẫn đang chạy trên PC chủ. Hãy thoát các trò chơi hoặc khởi động lại PC chủ, sau đó thử ghép đôi lại.</translation>
</message>
<message>
<location filename="../cli/pair.cpp" line="109"/>
<location filename="../cli/quitstream.cpp" line="76"/>
<location filename="../cli/startstream.cpp" line="133"/>
<source>Failed to connect to %1</source>
@@ -331,11 +276,6 @@
<source>Failed to find application %1</source>
<translation>Tìm ứng dụng %1 thất bại</translation>
</message>
<message>
<location filename="../cli/listapps.cpp" line="99"/>
<source>Computer %1 has not been paired. Please open Moonlight to pair before retrieving games list.</source>
<translation>Máy tính %1 chưa được ghép đôi. Vui lòng mở Moonlight để ghép đôi trước khi lấy danh sách trò chơi.</translation>
</message>
</context>
<context>
<name>QuitSegue</name>
@@ -367,32 +307,22 @@
<translation>Kết nối mạng của bạn đang không hoạt động tốt. Hãy giảm cài đặt tốc độ bit video hoặc thử một kết nối nhanh hơn.</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="103"/>
<location filename="../streaming/session.cpp" line="102"/>
<source>Something went wrong on your host PC when starting the stream.</source>
<translation>Có gì đó sai đã xảy ra trên PC chủ của bạn khi bắt đầu stream.</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="104"/>
<location filename="../streaming/session.cpp" line="103"/>
<source>Make sure you don&apos;t have any DRM-protected content open on your host PC. You can also try restarting your host PC.</source>
<translation>Hãy chắc chắn là bạn không mở bất kỳ nội dung được DRM bảo vệ nào trên PC chủ. Bạn cũng có thể thử khởi động lại PC chủ.</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="105"/>
<location filename="../streaming/session.cpp" line="104"/>
<source>If the issue persists, try reinstalling your GPU drivers and GeForce Experience.</source>
<translation>Nếu vấn đề vẫn tiếp diễn, hãy thử cài đặt lại driver GPU và GeForce Experience.</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="110"/>
<source>The host PC reported a fatal video encoding error.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="111"/>
<source>Try disabling HDR mode, changing the streaming resolution, or changing your host PC&apos;s display resolution.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="116"/>
<location filename="../streaming/session.cpp" line="109"/>
<source>Connection terminated</source>
<translation>Kết nối bị chấm dứt</translation>
</message>
@@ -490,32 +420,32 @@
<translation>Một tay cầm điều khiển không được chỉ định nút và sẽ không thể sử dụng được. Hãy đi đến trợ giúp của Moonlight để giải quyết điều này.</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="810"/>
<location filename="../streaming/session.cpp" line="805"/>
<source>Your host PC&apos;s GPU doesn&apos;t support streaming video resolutions over 4K.</source>
<translation>GPU của PC chủ không hỗ trợ stream độ phân giải video trên 4K.</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="814"/>
<location filename="../streaming/session.cpp" line="809"/>
<source>Video resolutions over 4K are only supported by the HEVC codec.</source>
<translation>Các độ phân giải video trên 4K chỉ được codec HEVC hỗ trợ.</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="828"/>
<location filename="../streaming/session.cpp" line="823"/>
<source>Your selection to force hardware decoding cannot be satisfied due to missing hardware decoding support on this PC&apos;s GPU.</source>
<translation>Lựa chọn buộc giải mã phần cứng của bạn không thể được thoả mãn do thiếu sự hỗ trợ giải mã phần cứng trên GPU của PC này.</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="831"/>
<location filename="../streaming/session.cpp" line="826"/>
<source>Your codec selection and force hardware decoding setting are not compatible. This PC&apos;s GPU lacks support for decoding your chosen codec.</source>
<translation>Lựa chọn codec và cài đặt buộc giải mã phần cứng của bạn không tương thích. GPU của PC này thiếu sự hỗ trợ cho việc giải mã codec đã chọn.</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="1176"/>
<location filename="../streaming/session.cpp" line="1159"/>
<source>GeForce Experience returned error: %1</source>
<translation>GeForce Experience đã trả lời bằng lỗi: %1</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="1697"/>
<location filename="../streaming/session.cpp" line="1691"/>
<source>Unable to initialize video decoder. Please check your streaming settings and try again.</source>
<translation>Không thể khởi tạo trình giải mã video. Vui lòng kiểm tra cài đặt stream của bạn và thử lại.</translation>
</message>
@@ -528,60 +458,60 @@
<translation>Cài đặt</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="72"/>
<location filename="../gui/SettingsView.qml" line="70"/>
<source>Resolution and FPS</source>
<translation>Độ phân giải và FPS</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="80"/>
<location filename="../gui/SettingsView.qml" line="78"/>
<source>Setting values too high for your PC or network connection may cause lag, stuttering, or errors.</source>
<translation>Việc đặt các giá trị quá cao cho PC hoặc kết nối mạng của bạn có thể sẽ gây ra lag, khựng, hoặc lỗi.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="62"/>
<location filename="../gui/SettingsView.qml" line="60"/>
<source>Basic Settings</source>
<translation>Cài đặt cơ bản</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="200"/>
<location filename="../gui/SettingsView.qml" line="209"/>
<source>720p</source>
<translation>720p</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="206"/>
<location filename="../gui/SettingsView.qml" line="215"/>
<source>1080p</source>
<translation>1080p</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="212"/>
<location filename="../gui/SettingsView.qml" line="221"/>
<source>1440p</source>
<translation>1440p</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="218"/>
<location filename="../gui/SettingsView.qml" line="227"/>
<source>4K</source>
<translation>4K</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="322"/>
<location filename="../gui/SettingsView.qml" line="331"/>
<source>Custom resolutions are not officially supported by GeForce Experience, so it will not set your host display resolution. You will need to set it manually while in game.</source>
<translation>Các độ phân giải tuỳ chỉnh không được GeForce Experience hỗ trợ chính thức, vậy nên nó sẽ không đặt độ phân giải hiển thị của máy chủ. Bạn sẽ cần phải đặt nó theo cách thủ công khi đang trong trò chơi.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="323"/>
<location filename="../gui/SettingsView.qml" line="332"/>
<source>Resolutions that are not supported by your client or host PC may cause streaming errors.</source>
<translation>Các độ phân giải không được máy khách hoặc PC chủ của bạn hỗ trợ có thể sẽ gây ra lỗi stream.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="329"/>
<location filename="../gui/SettingsView.qml" line="338"/>
<source>Enter a custom resolution:</source>
<translation>Nhập độ phân giải tuỳ chỉnh:</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="397"/>
<location filename="../gui/SettingsView.qml" line="398"/>
<location filename="../gui/SettingsView.qml" line="418"/>
<location filename="../gui/SettingsView.qml" line="421"/>
<location filename="../gui/SettingsView.qml" line="406"/>
<location filename="../gui/SettingsView.qml" line="407"/>
<location filename="../gui/SettingsView.qml" line="427"/>
<location filename="../gui/SettingsView.qml" line="430"/>
<source>%1 FPS</source>
<translation>%1 FPS</translation>
</message>
@@ -590,189 +520,184 @@
<translation type="vanished">%1 FPS (nicht unterstützt)</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="485"/>
<location filename="../gui/SettingsView.qml" line="493"/>
<source>Video bitrate:</source>
<translation>Tốc độ bit video:</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="493"/>
<location filename="../gui/SettingsView.qml" line="501"/>
<source>Lower the bitrate on slower connections. Raise the bitrate to increase image quality.</source>
<translation>Hạ thấp tốc độ bit trên các kết nối chậm hơn. Tăng tốc độ bit để tăng chất lượng hình ảnh.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="511"/>
<location filename="../gui/SettingsView.qml" line="519"/>
<source>Video bitrate: %1 Mbps</source>
<translation>Tốc độ bit video: %1 Mbps</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="519"/>
<location filename="../gui/SettingsView.qml" line="527"/>
<source>Display mode</source>
<translation>Chế độ hiển thị</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="549"/>
<location filename="../gui/SettingsView.qml" line="545"/>
<source> (Recommended)</source>
<translatorcomment>Dont put the space in ransaltions</translatorcomment>
<translation> (Được khuyến nghị)</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="530"/>
<location filename="../gui/SettingsView.qml" line="937"/>
<location filename="../gui/SettingsView.qml" line="573"/>
<location filename="../gui/SettingsView.qml" line="919"/>
<source>Fullscreen</source>
<translation>Toàn màn hình</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="599"/>
<location filename="../gui/SettingsView.qml" line="592"/>
<source>Fullscreen generally provides the best performance, but borderless windowed may work better with features like macOS Spaces, Alt+Tab, screenshot tools, on-screen overlays, etc.</source>
<translation>Toàn màn hình nói chung là cung cấp hiệu năng tốt nhất, nhưng cửa sổ không viền có thể sẽ hoạt động tốt hơn với các tính năng như macOS Spaces, Alt+Tab, các công cụ chụp màn hình, các lớp phủ trên màn hình, v.v.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="535"/>
<location filename="../gui/SettingsView.qml" line="577"/>
<source>Borderless windowed</source>
<translation>Cửa sổ không viền</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="403"/>
<location filename="../gui/SettingsView.qml" line="406"/>
<location filename="../gui/SettingsView.qml" line="412"/>
<location filename="../gui/SettingsView.qml" line="415"/>
<location filename="../gui/SettingsView.qml" line="428"/>
<location filename="../gui/SettingsView.qml" line="431"/>
<location filename="../gui/SettingsView.qml" line="424"/>
<location filename="../gui/SettingsView.qml" line="437"/>
<location filename="../gui/SettingsView.qml" line="440"/>
<source>%1 FPS (Unsupported)</source>
<translation>%1 FPS (Không được hỗ trợ)</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="540"/>
<location filename="../gui/SettingsView.qml" line="929"/>
<location filename="../gui/SettingsView.qml" line="581"/>
<location filename="../gui/SettingsView.qml" line="911"/>
<source>Windowed</source>
<translation>Cửa sổ</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="606"/>
<location filename="../gui/SettingsView.qml" line="599"/>
<source>V-Sync</source>
<translation>V-Sync</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="616"/>
<location filename="../gui/SettingsView.qml" line="609"/>
<source>Disabling V-Sync allows sub-frame rendering latency, but it can display visible tearing</source>
<translation>Việc tắt V-Sync cho phép độ trễ kết xuất khung hình con, nhưng nó có thể hiển thị sự biến dạng hình ảnh có thể nhìn thấy được</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="623"/>
<location filename="../gui/SettingsView.qml" line="616"/>
<source>Frame pacing</source>
<translation>Nhịp độ khung hình</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="633"/>
<location filename="../gui/SettingsView.qml" line="626"/>
<source>Frame pacing reduces micro-stutter by delaying frames that come in too early</source>
<translation>Nhịp độ khung hình làm giảm sự khựng nhỏ bằng cách trì hoãn các khung hình đi đến quá sớm</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="643"/>
<location filename="../gui/SettingsView.qml" line="636"/>
<source>Audio Settings</source>
<translation>Cài đặt âm thanh</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="678"/>
<location filename="../gui/SettingsView.qml" line="671"/>
<source>Stereo</source>
<translation>Stereo</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="682"/>
<location filename="../gui/SettingsView.qml" line="675"/>
<source>5.1 surround sound</source>
<translation>Âm thanh bao quanh 5.1</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="686"/>
<location filename="../gui/SettingsView.qml" line="679"/>
<source>7.1 surround sound</source>
<translation>Âm thanh bao quanh 7.1</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="700"/>
<location filename="../gui/SettingsView.qml" line="693"/>
<source>Mute host PC speakers while streaming</source>
<translation>Làm im lặng loa của PC chủ trong khi stream</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="710"/>
<location filename="../gui/SettingsView.qml" line="703"/>
<source>You must restart any game currently in progress for this setting to take effect</source>
<translation>Bạn phải khởi động lại bất kỳ trò chơi hiện đang chơi nào để thay đổi này có hiệu lực</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="716"/>
<location filename="../gui/SettingsView.qml" line="709"/>
<source>Mute audio stream when Moonlight is not the active window</source>
<translation>Làm im lặng stream âm thanh khi Moonlight không phải là cửa sổ đang hoạt động</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="727"/>
<location filename="../gui/SettingsView.qml" line="720"/>
<source>Mutes Moonlight&apos;s audio when you Alt+Tab out of the stream or click on a different window.</source>
<translation>Làm im lặng âm thanh của Moonlight khi bạn Alt+Tab ra khỏi stream hoặc click vào một cửa sổ khác.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="736"/>
<location filename="../gui/SettingsView.qml" line="729"/>
<source>UI Settings</source>
<translation>Cài đặt giao diện</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="746"/>
<location filename="../gui/SettingsView.qml" line="739"/>
<source>Language</source>
<translation>Ngôn ngữ</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="772"/>
<location filename="../gui/SettingsView.qml" line="765"/>
<source>Automatic</source>
<translation>Tự động</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="879"/>
<location filename="../gui/SettingsView.qml" line="864"/>
<source>You must restart Moonlight for this change to take effect</source>
<translation>Bạn phải khởi động lại Moonlight để thay đổi này có hiệu lực</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="896"/>
<location filename="../gui/SettingsView.qml" line="878"/>
<source>GUI display mode</source>
<translation>Chế độ hiển thị giao diện đồ hoạ</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="933"/>
<location filename="../gui/SettingsView.qml" line="915"/>
<source>Maximized</source>
<translation>Phóng to</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1006"/>
<location filename="../gui/SettingsView.qml" line="988"/>
<source>Input Settings</source>
<translation>Cài đặt đầu vào</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1027"/>
<location filename="../gui/SettingsView.qml" line="1009"/>
<source>This enables seamless mouse control without capturing the client&apos;s mouse cursor. It is ideal for remote desktop usage but will not work in most games.</source>
<translation>Việc này bật điều khiển chuột liền mạch mà không bắt con trỏ chuột của máy khách. Nó là lý tưởng cho việc sử dụng máy tính từ xa nhưng sẽ không hoạt động trong đa số trò chơi.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1029"/>
<location filename="../gui/SettingsView.qml" line="1011"/>
<source>NOTE: Due to a bug in GeForce Experience, this option may not work properly if your host PC has multiple monitors.</source>
<translation>LƯU Ý: Vì một lỗi trong GeForce Experience, tuỳ chọn này có thể sẽ không hoạt động đúng nếu PC chủ của bạn có nhiều màn hình.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1345"/>
<source>Enabling HDR overrides manual decoder selections.</source>
<translation>Việc bật HDR sẽ ghi đè lên lựa chọn trình giải mã.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1414"/>
<location filename="../gui/SettingsView.qml" line="1378"/>
<source>Enabling HDR overrides manual codec selections.</source>
<translation>Việc bật HDR sẽ được ưu tiên trước lựa chọn codec thủ công.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1420"/>
<location filename="../gui/SettingsView.qml" line="1384"/>
<source>Enable HDR (Experimental)</source>
<translation>Bật HDR (Thử nghiệm)</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1431"/>
<location filename="../gui/SettingsView.qml" line="1395"/>
<source>The stream will be HDR-capable, but some games may require an HDR monitor on your host PC to enable HDR mode.</source>
<translation>Stream sẽ có khả năng là HDR, nhưng một số trò chơi có thể yêu cầu màn hình HDR trên PC chủ để bật chế độ HDR.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1433"/>
<location filename="../gui/SettingsView.qml" line="1397"/>
<source>HDR streaming is not supported on this PC.</source>
<translation>Việc stream HDR không được hỗ trợ trên PC này.</translation>
</message>
@@ -785,193 +710,193 @@
<translation type="vanished">Dies ermöglicht die Erfassung von systemweiten Tastenkombinationen wie Alt+Tab, die normalerweise vom Client beim Streamen im Vollbildmodus ausgeführt werden würden.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1048"/>
<location filename="../gui/SettingsView.qml" line="1030"/>
<source>NOTE: Certain keyboard shortcuts like Ctrl+Alt+Del on Windows cannot be intercepted by any application, including Moonlight.</source>
<translation>LƯU Ý: Một số lối tắt bàn phím cụ thể như Ctrl+Alt+Del trên Windows không thể được bất kỳ ứng dụng nào can thiệp, bao gồm cả Moonlight.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1111"/>
<location filename="../gui/SettingsView.qml" line="1093"/>
<source>Use touchscreen as a virtual trackpad</source>
<translation>Sử dụng màn hình cảm ứng như một trackpad ảo</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1128"/>
<location filename="../gui/SettingsView.qml" line="1110"/>
<source>Swap left and right mouse buttons</source>
<translation>Đảo các nút chuột trái và phải</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1140"/>
<location filename="../gui/SettingsView.qml" line="1122"/>
<source>Reverse mouse scrolling direction</source>
<translation>Đảo ngược hướng cuộn chuột</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1154"/>
<location filename="../gui/SettingsView.qml" line="1136"/>
<source>Gamepad Settings</source>
<translation>Cài đặt tay cầm điều khiển</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1164"/>
<location filename="../gui/SettingsView.qml" line="1146"/>
<source>Swap A/B and X/Y gamepad buttons</source>
<translation>Đảo các nút A/B và X/Y của tay cầm điều khiển</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1182"/>
<location filename="../gui/SettingsView.qml" line="1164"/>
<source>This switches gamepads into a Nintendo-style button layout</source>
<translation>Việc này chuyển các tay cầm điều khiển sang một bố cục nút giống Nintendo</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1188"/>
<location filename="../gui/SettingsView.qml" line="1170"/>
<source>Force gamepad #1 always connected</source>
<translation>Buộc tay cầm điều khiển #1 luôn được kết nối</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1198"/>
<location filename="../gui/SettingsView.qml" line="1180"/>
<source>Forces a single gamepad to always stay connected to the host, even if no gamepads are actually connected to this PC.</source>
<translation>Buộc một tay cầm điều khiển luôn giữ trạng thái đã kết nối đến máy chủ, kể cả nếu không có tay cầm điều khiển nào thực sự được kết nối đến PC.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1028"/>
<location filename="../gui/SettingsView.qml" line="1010"/>
<source>You can toggle this while streaming using Ctrl+Alt+Shift+M.</source>
<translation>Bạn có thể bật/tắt việc này trong khi stream bằng Ctrl+Alt+Shift+M.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1206"/>
<location filename="../gui/SettingsView.qml" line="1188"/>
<source>Enable mouse control with gamepads by holding the &apos;Start&apos; button</source>
<translation>Bật điều khiển chuột bằng tay cầm điều khiển bằng cách giữ nút &apos;Start&apos;</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1217"/>
<location filename="../gui/SettingsView.qml" line="1199"/>
<source>Process gamepad input when Moonlight is in the background</source>
<translation>Xử lý đầu vào của tay cầm điều khiển khi Moonlight ở trong nền</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1228"/>
<location filename="../gui/SettingsView.qml" line="1210"/>
<source>Allows Moonlight to capture gamepad inputs even if it&apos;s not the current window in focus</source>
<translation>Cho phép Moonlight nắm bắt đầu vào của tay cầm điều khiển kể cả nếu nó không phải là cửa sổ hiện được tập trung</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1237"/>
<location filename="../gui/SettingsView.qml" line="1219"/>
<source>Host Settings</source>
<translation>Cài đặt máy chủ</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1277"/>
<location filename="../gui/SettingsView.qml" line="1259"/>
<source>Advanced Settings</source>
<translation>Cài đặt nâng cao</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="653"/>
<location filename="../gui/SettingsView.qml" line="646"/>
<source>Audio configuration</source>
<translation>Thiết lập âm thanh</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="950"/>
<location filename="../gui/SettingsView.qml" line="932"/>
<source>Show connection quality warnings</source>
<translation>Hiện cảnh báo chất lượng kết nối</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="962"/>
<location filename="../gui/SettingsView.qml" line="944"/>
<source>Discord Rich Presence integration</source>
<translation>Tích hợp với Discord Rich Presence</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="972"/>
<location filename="../gui/SettingsView.qml" line="954"/>
<source>Updates your Discord status to display the name of the game you&apos;re streaming.</source>
<translation>Cập nhật trạng thái Discord của bạn để hiển thị tên trò chơi bạn đang stream.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1199"/>
<location filename="../gui/SettingsView.qml" line="1181"/>
<source>Only enable this option when streaming a game that doesn&apos;t support gamepads being connected after startup.</source>
<translation>Chỉ bật tuỳ chọn này khi stream một trò chơi không hỗ trợ tay cầm điều khiển được kết nối sau khi khởi động.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1017"/>
<location filename="../gui/SettingsView.qml" line="999"/>
<source>Optimize mouse for remote desktop instead of games</source>
<translation>Tối ưu hoá chuột cho máy tính từ xa thay vì trò chơi</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="978"/>
<location filename="../gui/SettingsView.qml" line="960"/>
<source>Keep the display awake while streaming</source>
<translation>Giữ màn hình bật trong khi stream</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="988"/>
<location filename="../gui/SettingsView.qml" line="970"/>
<source>Prevents the screensaver from starting or the display from going to sleep while streaming.</source>
<translation>Ngăn screensaver hoạt động hoặc màn hình tắt trong khi stream.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1039"/>
<location filename="../gui/SettingsView.qml" line="1021"/>
<source>Capture system keyboard shortcuts</source>
<translation>Nắm bắt các lối tắt bàn phím hệ thống</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1047"/>
<location filename="../gui/SettingsView.qml" line="1029"/>
<source>This enables the capture of system-wide keyboard shortcuts like Alt+Tab that would normally be handled by the client OS while streaming.</source>
<translation>Việc này bật việc nắm bắt các lối tắt bàn phím toàn hệ thống như Alt+Tab (bình thường sẽ được HĐH máy khách xử lý) trong khi stream.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1077"/>
<location filename="../gui/SettingsView.qml" line="1059"/>
<source>in fullscreen</source>
<translation>trong toàn màn hình</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1081"/>
<location filename="../gui/SettingsView.qml" line="1063"/>
<source>always</source>
<translation>luôn luôn</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1121"/>
<location filename="../gui/SettingsView.qml" line="1103"/>
<source>When checked, the touchscreen acts like a trackpad. When unchecked, the touchscreen will directly control the mouse pointer.</source>
<translation>Khi được đánh dấu, màn hình cảm ứng hoạt động như một trackpad. Khi không được đánh dấu, màn hình cảm ứng sẽ trực tiếp điều khiển con trỏ chuột.</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1247"/>
<location filename="../gui/SettingsView.qml" line="1229"/>
<source>Optimize game settings for streaming</source>
<translation>Tối ưu hoá cài đặt trò chơi cho việc stream</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1258"/>
<location filename="../gui/SettingsView.qml" line="1240"/>
<source>Quit app on host PC after ending stream</source>
<translation>Thoát ứng dụng trên PC chủ sau khi kết thúc stream</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1268"/>
<location filename="../gui/SettingsView.qml" line="1250"/>
<source>This will close the app or game you are streaming when you end your stream. You will lose any unsaved progress!</source>
<translation>Việc này sẽ đóng ứng dụng hoặc trò chơi bạn đang stream khi bạn kết thúc stream. Bạn sẽ mất công việc đang làm chưa được lưu!</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1287"/>
<location filename="../gui/SettingsView.qml" line="1269"/>
<source>Video decoder</source>
<translation>Trình giải mã video</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1313"/>
<location filename="../gui/SettingsView.qml" line="1382"/>
<location filename="../gui/SettingsView.qml" line="1294"/>
<location filename="../gui/SettingsView.qml" line="1346"/>
<source>Automatic (Recommended)</source>
<translation>Tự động (Được khuyến nghị)</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1317"/>
<location filename="../gui/SettingsView.qml" line="1298"/>
<source>Force software decoding</source>
<translation>Buộc giải mã phần mềm</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1321"/>
<location filename="../gui/SettingsView.qml" line="1302"/>
<source>Force hardware decoding</source>
<translation>Buộc giải mã phần cứng</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1351"/>
<location filename="../gui/SettingsView.qml" line="1315"/>
<source>Video codec</source>
<translation>Codec video</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1386"/>
<location filename="../gui/SettingsView.qml" line="1350"/>
<source>H.264</source>
<translation>H.264</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1390"/>
<location filename="../gui/SettingsView.qml" line="1354"/>
<source>HEVC (H.265)</source>
<translation>HEVC (H.265)</translation>
</message>
@@ -980,17 +905,17 @@
<translation type="vanished">HEVC HDR (Thử nghiệm)</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1439"/>
<location filename="../gui/SettingsView.qml" line="1403"/>
<source>Unlock unsupported FPS options</source>
<translation>Mở khoá các tuỳ chọn FPS không được hỗ trợ</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1458"/>
<location filename="../gui/SettingsView.qml" line="1422"/>
<source>Automatically find PCs on the local network (Recommended)</source>
<translation>Tự động tìm các PC trên mạng cục bộ (Được khuyến nghị)</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1483"/>
<location filename="../gui/SettingsView.qml" line="1447"/>
<source>Automatically detect blocked connections (Recommended)</source>
<translation>Tự động phát hiện các kết nối bị chặn (Được khuyến nghị)</translation>
</message>
@@ -1047,94 +972,99 @@
<context>
<name>main</name>
<message>
<location filename="../gui/main.qml" line="418"/>
<location filename="../gui/main.qml" line="254"/>
<location filename="../gui/main.qml" line="264"/>
<location filename="../gui/main.qml" line="393"/>
<location filename="../gui/main.qml" line="408"/>
<source>Settings</source>
<translation>Cài đặt</translation>
</message>
<message>
<location filename="../gui/main.qml" line="265"/>
<location filename="../gui/main.qml" line="255"/>
<source>Version %1</source>
<translation>Phiên bản %1</translation>
</message>
<message>
<location filename="../gui/main.qml" line="281"/>
<location filename="../gui/main.qml" line="271"/>
<source>Join our community on Discord</source>
<translation>Tham gia cộng đồng của chúng tôi trên Discord</translation>
</message>
<message>
<location filename="../gui/main.qml" line="283"/>
<source>Computers</source>
<translation type="vanished">Máy tính</translation>
<translation>Máy tính</translation>
</message>
<message>
<location filename="../gui/main.qml" line="300"/>
<location filename="../gui/main.qml" line="290"/>
<source>Add PC manually</source>
<translation>Thêm PC thủ công</translation>
</message>
<message>
<location filename="../gui/main.qml" line="340"/>
<location filename="../gui/main.qml" line="330"/>
<source>Update available for Moonlight: Version %1</source>
<translation>Có bản cập nhật cho Moonlight: Phiên bản %1</translation>
</message>
<message>
<location filename="../gui/main.qml" line="387"/>
<location filename="../gui/main.qml" line="377"/>
<source>Gamepad Mapper</source>
<translation>Trình chỉ định nút tay cầm điều khiển</translation>
</message>
<message>
<location filename="../gui/main.qml" line="381"/>
<source>Gamepad Mapping</source>
<translation type="vanished">Chỉ định nút tay cầm điều khiển</translation>
<translation>Chỉ định nút tay cầm điều khiển</translation>
</message>
<message>
<source>No functioning hardware accelerated H.264 video decoder was detected by Moonlight. Your streaming performance may be severely degraded in this configuration.</source>
<translation type="vanished">Không có trình giải mã video H.264 được tăng tốc phần cứng nào được Moonlight phát hiện. Hiệu năng stream của bạn có thể sẽ bị giảm nghiêm trọng trong thiết lập này.</translation>
</message>
<message>
<location filename="../gui/main.qml" line="433"/>
<location filename="../gui/main.qml" line="423"/>
<source>Hardware acceleration doesn&apos;t work on XWayland. Continuing on XWayland may result in poor streaming performance. Try running with QT_QPA_PLATFORM=wayland or switch to X11.</source>
<translation>Tăng tốc phần cứng không hoạt động trên Wayland. Việc tiếp tục trên XWayland có thể sẽ dẫn đến hiệu năng stream kém. Hãy thử chạy với QT_QPA_PLATFORM=wayland hoặc chuyển sang X11.</translation>
</message>
<message>
<location filename="../gui/main.qml" line="442"/>
<location filename="../gui/main.qml" line="432"/>
<source>This version of Moonlight isn&apos;t optimized for your PC. Please download the &apos;%1&apos; version of Moonlight for the best streaming performance.</source>
<translation>Phiên bản Moonlight này không được tối ưu hoá cho PC của bạn. Vui lòng tải xuống phiên bản Moonlight &apos;%1&apos; để có hiệu năng stream tốt nhất.</translation>
</message>
<message>
<location filename="../gui/main.qml" line="451"/>
<location filename="../gui/main.qml" line="441"/>
<source>Moonlight detected gamepads without a mapping:</source>
<translation>Moonlight đã phát hiện tay cầm điều khiển không được chỉ định nút:</translation>
</message>
<message>
<location filename="../gui/main.qml" line="364"/>
<location filename="../gui/main.qml" line="354"/>
<source>Help</source>
<translation>Trợ giúp</translation>
</message>
<message>
<location filename="../gui/main.qml" line="425"/>
<location filename="../gui/main.qml" line="415"/>
<source>No functioning hardware accelerated video decoder was detected by Moonlight. Your streaming performance may be severely degraded in this configuration.</source>
<translation>Moonlight không phát hiện được trình giải mã video tăng tốc phần cứng nào. Hiệu năng stream của bạn có thể bị giảm nghiêm trọng khi dùng thiết lập này.</translation>
</message>
<message>
<location filename="../gui/main.qml" line="427"/>
<location filename="../gui/main.qml" line="417"/>
<source>Click the Help button for more information on solving this problem.</source>
<translation>Click nút Trợ giúp để biết thêm thông tin về việc giải quyết vấn đề này.</translation>
</message>
<message>
<location filename="../gui/main.qml" line="435"/>
<location filename="../gui/main.qml" line="425"/>
<source>Click the Help button for more information.</source>
<translation>Click nút Trợ giúp để biết thêm thông tin.</translation>
</message>
<message>
<location filename="../gui/main.qml" line="453"/>
<location filename="../gui/main.qml" line="443"/>
<source>Click the Help button for information on how to map your gamepads.</source>
<translation>Click nút Trợ giúp để biết thêm thông tin về cách chỉ định nút tay cầm điều khiển.</translation>
</message>
<message>
<location filename="../gui/main.qml" line="461"/>
<location filename="../gui/main.qml" line="451"/>
<source>Are you sure you want to quit?</source>
<translation>Bạn có chắc bạn muốn thoát không?</translation>
</message>
<message>
<location filename="../gui/main.qml" line="491"/>
<location filename="../gui/main.qml" line="481"/>
<source>Enter the IP address of your GameStream PC:</source>
<translation>Nhập địa chỉ IP của PC GameStream của bạn:</translation>
</message>
Binary file not shown.
File diff suppressed because it is too large Load Diff
Binary file not shown.
+144 -214
View File
@@ -51,24 +51,6 @@
<translation>你确定要退出 %1 吗?所有未保存的游戏进度都将丢失。</translation>
</message>
</context>
<context>
<name>CliPair</name>
<message>
<location filename="../gui/CliPair.qml" line="9"/>
<source>Establishing connection to PC...</source>
<translation>正在建立与目标计算机的连接...</translation>
</message>
<message>
<location filename="../gui/CliPair.qml" line="13"/>
<source>Pairing... Please enter &apos;%1&apos; on %2.</source>
<translation>配对中……请在 %2 输入 “%1”。</translation>
</message>
<message>
<location filename="../gui/CliPair.qml" line="85"/>
<source>Pairing completed successfully</source>
<translation>配对成功</translation>
</message>
</context>
<context>
<name>CliQuitStreamSegue</name>
<message>
@@ -191,95 +173,68 @@
<message>
<location filename="../gui/PcView.qml" line="224"/>
<source>The version of GeForce Experience on %1 is not supported by this build of Moonlight. You must update Moonlight to stream from %1.</source>
<translation>此版本 Moonlight 不支持 %1 版本的 GeForce Experience,请更新 Moonlight 以支持从 %1 串流。</translation>
<translation>在 %1 上已安装的GeForce Experience版本不支持当前版本的Moonlight。你必须升级Moonlight才能从 %1 串流。</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="247"/>
<source>You cannot pair while a previous session is still running on the host PC. Quit any running games or reboot the host PC, then try pairing again.</source>
<translation type="vanished">当上一个会话仍在运行时,无法进行配对。请退出所有正在运行的游戏或重新启动目标计算机,然后重试配对。</translation>
<translation>当上一个会话仍在运行时,无法进行配对。请退出所有正在运行的游戏或重新启动目标计算机,然后重试配对。</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="294"/>
<location filename="../gui/PcView.qml" line="302"/>
<source>Please enter %1 on your GameStream PC. This dialog will close when pairing is completed.</source>
<translation>请在启用 GameStream 的计算机上输入 %1。配对完成后,此对话框将关闭。</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="305"/>
<location filename="../gui/PcView.qml" line="313"/>
<source>Are you sure you want to remove this PC?</source>
<translation>确定要移除这个计算机吗?</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="322"/>
<location filename="../gui/PcView.qml" line="330"/>
<source>Moonlight is testing your network connection to determine if NVIDIA GameStream is blocked.</source>
<translation>Moonlight 正在测试你的网络连接,以检测 NVIDIA GameStream 是否被阻止。</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="322"/>
<location filename="../gui/PcView.qml" line="330"/>
<source>This may take a few seconds…</source>
<translation>这可能需要几秒钟……</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="329"/>
<location filename="../gui/PcView.qml" line="337"/>
<source>The network test could not be performed because none of Moonlight&apos;s connection testing servers were reachable from this PC. Check your Internet connection or try again later.</source>
<translation>无法执行网络测试,因为此计算机无法访问 Moonlight 的连接测试服务器。请检查你的互联网连接或稍后再试。</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="333"/>
<location filename="../gui/PcView.qml" line="341"/>
<source>This network does not appear to be blocking Moonlight. If you still have trouble connecting, check your PC&apos;s firewall settings.</source>
<translation>此网络似乎没有阻止 Moonlight。如果仍然无法连接,请检查计算机的防火墙设置。</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="333"/>
<location filename="../gui/PcView.qml" line="341"/>
<source>If you are trying to stream over the Internet, install the Moonlight Internet Hosting Tool on your gaming PC and run the included Internet Streaming Tester to check your gaming PC&apos;s Internet connection.</source>
<translation>如果你想通过互联网进行流式传输,请在你的目标计算机上安装 Moonlight Internet Hosting 工具,并运行包含的互联网流式传输测试程序来检查你目标计算机的互联网连接。</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="337"/>
<location filename="../gui/PcView.qml" line="345"/>
<source>Your PC&apos;s current network connection seems to be blocking Moonlight. Streaming over the Internet may not work while connected to this network.</source>
<translation>此计算机当前的网络连接似乎被阻塞了。当连接到此网络时,互联网上的流式传输可能无法工作。</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="337"/>
<location filename="../gui/PcView.qml" line="345"/>
<source>The following network ports were blocked:</source>
<translation>下列网络端口被阻止:</translation>
</message>
<message>
<location filename="../gui/PcView.qml" line="349"/>
<location filename="../gui/PcView.qml" line="357"/>
<source>Enter the new name for this PC:</source>
<translation>输入这台计算机的新名称:</translation>
</message>
</context>
<context>
<name>PendingPairingTask</name>
<message>
<location filename="../backend/computermanager.cpp" line="535"/>
<source>The PIN from the PC didn&apos;t match. Please try again.</source>
<translation>来自电脑的密码不匹配。请再试一次。</translation>
</message>
<message>
<location filename="../backend/computermanager.cpp" line="539"/>
<source>You cannot pair while a previous session is still running on the host PC. Quit any running games or reboot the host PC, then try pairing again.</source>
<translation>当主机 PC 上仍在运行之前的会话时,你无法配对。 退出任何正在运行的游戏或重新启动主机 PC,然后再次尝试配对。</translation>
</message>
<message>
<location filename="../backend/computermanager.cpp" line="542"/>
<source>Pairing failed. Please try again.</source>
<translation>配对失败。请再试一次。</translation>
</message>
<message>
<location filename="../backend/computermanager.cpp" line="546"/>
<source>Another pairing attempt is already in progress.</source>
<translation>另一个配对的尝试正在进行中。</translation>
</message>
<message>
<location filename="../backend/computermanager.cpp" line="556"/>
<source>GeForce Experience returned error: %1</source>
<translation>GeForce Experience 返回错误: %1</translation>
</message>
</context>
<context>
<name>PendingQuitTask</name>
<message>
<location filename="../backend/computermanager.cpp" line="606"/>
<location filename="../backend/computermanager.cpp" line="540"/>
<source>The running game wasn&apos;t started by this PC. You must quit the game on the host PC manually or use the device that originally started the game.</source>
<translation>正在运行的游戏不是由这台计算机启动的。你必须在目标计算机上手动退出游戏或使用最初启动游戏的设备。</translation>
</message>
@@ -287,16 +242,6 @@
<context>
<name>QObject</name>
<message>
<location filename="../cli/pair.cpp" line="80"/>
<source>%1 is already paired</source>
<translation>%1 已被配对</translation>
</message>
<message>
<source>You cannot pair while a previous session is still running on the host PC. Quit any running games or reboot the host PC, then try pairing again.</source>
<translation type="vanished">当上一个会话仍在运行时,无法进行配对。请退出所有正在运行的游戏或重新启动目标计算机,然后重试配对。</translation>
</message>
<message>
<location filename="../cli/pair.cpp" line="109"/>
<location filename="../cli/quitstream.cpp" line="76"/>
<location filename="../cli/startstream.cpp" line="133"/>
<source>Failed to connect to %1</source>
@@ -319,11 +264,6 @@
<source>Failed to find application %1</source>
<translation>找不到应用程序 %1</translation>
</message>
<message>
<location filename="../cli/listapps.cpp" line="99"/>
<source>Computer %1 has not been paired. Please open Moonlight to pair before retrieving games list.</source>
<translation>电脑 %1 未配对,请在请求游戏列表前使用 Moonlight 配对。</translation>
</message>
</context>
<context>
<name>QuitSegue</name>
@@ -351,39 +291,29 @@
<translation>网络连接性能不佳。请降低视频比特率或尝试更快的网络连接。</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="103"/>
<location filename="../streaming/session.cpp" line="102"/>
<source>Something went wrong on your host PC when starting the stream.</source>
<translation>目标计算机启动流式传输时出现问题。</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="104"/>
<location filename="../streaming/session.cpp" line="103"/>
<source>Make sure you don&apos;t have any DRM-protected content open on your host PC. You can also try restarting your host PC.</source>
<translation>确保目标计算机上没有打开任何受 DRM 保护的内容。你也可以尝试重新启动目标计算机。</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="105"/>
<location filename="../streaming/session.cpp" line="104"/>
<source>If the issue persists, try reinstalling your GPU drivers and GeForce Experience.</source>
<translation>如果问题仍然存在,请尝试重新安装显卡驱动程序和 GeForce Experience。</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="110"/>
<source>The host PC reported a fatal video encoding error.</source>
<translation>主机 PC 报告了致命的视频编码错误。</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="111"/>
<source>Try disabling HDR mode, changing the streaming resolution, or changing your host PC&apos;s display resolution.</source>
<translation>尝试禁用 HDR 模式、更改流分辨率或更改主机 PC 的显示分辨率。</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="116"/>
<location filename="../streaming/session.cpp" line="109"/>
<source>Connection terminated</source>
<translation>会话已终止</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="661"/>
<source>The version of GeForce Experience on %1 is not supported by this build of Moonlight. You must update Moonlight to stream from %1.</source>
<translation>在 %1 安装的 GeForce Experience 版本不受当前版本的 Moonlight 支持。你必须升级 Moonlight 才能从 %1 串流。</translation>
<translation>%1 上的 GeForce Experience 版本不受当前版本的 Moonlight 支持。你必须更新 Moonlight才能从 %1 串流。</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="666"/>
@@ -474,32 +404,32 @@
<translation>附加的手柄没有映射,因此无法使用。请访问 Moonlight 帮助解决此问题。</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="810"/>
<location filename="../streaming/session.cpp" line="805"/>
<source>Your host PC&apos;s GPU doesn&apos;t support streaming video resolutions over 4K.</source>
<translation>目标计算机的显卡不支持 4K 以上的流式传输视频分辨率。</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="814"/>
<location filename="../streaming/session.cpp" line="809"/>
<source>Video resolutions over 4K are only supported by the HEVC codec.</source>
<translation>只有 HEVC 编解码器才支持 4K 以上的视频分辨率。</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="828"/>
<location filename="../streaming/session.cpp" line="823"/>
<source>Your selection to force hardware decoding cannot be satisfied due to missing hardware decoding support on this PC&apos;s GPU.</source>
<translation>由于此计算机的显卡上缺少硬件解码支持,无法满足强制硬件解码的选择。</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="831"/>
<location filename="../streaming/session.cpp" line="826"/>
<source>Your codec selection and force hardware decoding setting are not compatible. This PC&apos;s GPU lacks support for decoding your chosen codec.</source>
<translation>你选择的编解码器和强制硬件解码设置不兼容。此计算机的显卡不支持解码你选择的编解码器。</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="1176"/>
<location filename="../streaming/session.cpp" line="1159"/>
<source>GeForce Experience returned error: %1</source>
<translation>GeForce Experience 返回错误: %1</translation>
</message>
<message>
<location filename="../streaming/session.cpp" line="1697"/>
<location filename="../streaming/session.cpp" line="1691"/>
<source>Unable to initialize video decoder. Please check your streaming settings and try again.</source>
<translation>无法初始化视频解码器。请检查你的流式传输设置,然后重试。</translation>
</message>
@@ -512,296 +442,291 @@
<translation>设置</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="62"/>
<location filename="../gui/SettingsView.qml" line="60"/>
<source>Basic Settings</source>
<translation>基本设置</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="72"/>
<location filename="../gui/SettingsView.qml" line="70"/>
<source>Resolution and FPS</source>
<translation>分辨率和 FPS</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="80"/>
<location filename="../gui/SettingsView.qml" line="78"/>
<source>Setting values too high for your PC or network connection may cause lag, stuttering, or errors.</source>
<translation>如果你的计算机或网络连接设置的值过高,可能会导致延迟,卡顿或错误。</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="200"/>
<location filename="../gui/SettingsView.qml" line="209"/>
<source>720p</source>
<translation>720p</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="206"/>
<location filename="../gui/SettingsView.qml" line="215"/>
<source>1080p</source>
<translation>1080p</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="212"/>
<location filename="../gui/SettingsView.qml" line="221"/>
<source>1440p</source>
<translation>1440p</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="218"/>
<location filename="../gui/SettingsView.qml" line="227"/>
<source>4K</source>
<translation>4K</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="322"/>
<location filename="../gui/SettingsView.qml" line="331"/>
<source>Custom resolutions are not officially supported by GeForce Experience, so it will not set your host display resolution. You will need to set it manually while in game.</source>
<translation>自定义分辨率不受 GeForce Experience 的正式支持,因此不会设置目标计算机的分辨率。你需要在游戏中手动设置。</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="323"/>
<location filename="../gui/SettingsView.qml" line="332"/>
<source>Resolutions that are not supported by your client or host PC may cause streaming errors.</source>
<translation>使用当前计算机或目标计算机不支持的分辨率可能会导致流式传输错误。</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="329"/>
<location filename="../gui/SettingsView.qml" line="338"/>
<source>Enter a custom resolution:</source>
<translation>输入自定义分辨率:</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="397"/>
<location filename="../gui/SettingsView.qml" line="398"/>
<location filename="../gui/SettingsView.qml" line="418"/>
<location filename="../gui/SettingsView.qml" line="421"/>
<location filename="../gui/SettingsView.qml" line="406"/>
<location filename="../gui/SettingsView.qml" line="407"/>
<location filename="../gui/SettingsView.qml" line="427"/>
<location filename="../gui/SettingsView.qml" line="430"/>
<source>%1 FPS</source>
<translation>%1 FPS</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="403"/>
<location filename="../gui/SettingsView.qml" line="406"/>
<location filename="../gui/SettingsView.qml" line="412"/>
<location filename="../gui/SettingsView.qml" line="415"/>
<location filename="../gui/SettingsView.qml" line="428"/>
<location filename="../gui/SettingsView.qml" line="431"/>
<location filename="../gui/SettingsView.qml" line="424"/>
<location filename="../gui/SettingsView.qml" line="437"/>
<location filename="../gui/SettingsView.qml" line="440"/>
<source>%1 FPS (Unsupported)</source>
<translation>%1 FPS (不支持)</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="485"/>
<location filename="../gui/SettingsView.qml" line="493"/>
<source>Video bitrate:</source>
<translation>视频比特率:</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="493"/>
<location filename="../gui/SettingsView.qml" line="501"/>
<source>Lower the bitrate on slower connections. Raise the bitrate to increase image quality.</source>
<translation>在较慢的连接上降低比特率。提高比特率以提高图像质量。</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="511"/>
<location filename="../gui/SettingsView.qml" line="519"/>
<source>Video bitrate: %1 Mbps</source>
<translation>视频比特率: %1 Mbps</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="519"/>
<location filename="../gui/SettingsView.qml" line="527"/>
<source>Display mode</source>
<translation>显示模式</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="549"/>
<location filename="../gui/SettingsView.qml" line="545"/>
<source> (Recommended)</source>
<translation> (推荐)</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="530"/>
<location filename="../gui/SettingsView.qml" line="937"/>
<location filename="../gui/SettingsView.qml" line="573"/>
<location filename="../gui/SettingsView.qml" line="919"/>
<source>Fullscreen</source>
<translation>全屏</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="535"/>
<location filename="../gui/SettingsView.qml" line="577"/>
<source>Borderless windowed</source>
<translation>无边框窗口</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="540"/>
<location filename="../gui/SettingsView.qml" line="929"/>
<location filename="../gui/SettingsView.qml" line="581"/>
<location filename="../gui/SettingsView.qml" line="911"/>
<source>Windowed</source>
<translation>窗口化</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="599"/>
<location filename="../gui/SettingsView.qml" line="592"/>
<source>Fullscreen generally provides the best performance, but borderless windowed may work better with features like macOS Spaces, Alt+Tab, screenshot tools, on-screen overlays, etc.</source>
<translation>全屏通常提供最好的性能,但是无边框窗口可以更好地与 macOS Spaces、Alt+Tab、屏幕截图工具、屏幕覆盖等功能配合使用。</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="606"/>
<location filename="../gui/SettingsView.qml" line="599"/>
<source>V-Sync</source>
<translation>垂直同步</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="616"/>
<location filename="../gui/SettingsView.qml" line="609"/>
<source>Disabling V-Sync allows sub-frame rendering latency, but it can display visible tearing</source>
<translation>禁用垂直同步可允许子帧渲染延迟,但会显示可见的撕裂</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="623"/>
<location filename="../gui/SettingsView.qml" line="616"/>
<source>Frame pacing</source>
<translation>帧速调节</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="633"/>
<location filename="../gui/SettingsView.qml" line="626"/>
<source>Frame pacing reduces micro-stutter by delaying frames that come in too early</source>
<translation>通过延迟过早进入的帧来减少卡顿</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="643"/>
<location filename="../gui/SettingsView.qml" line="636"/>
<source>Audio Settings</source>
<translation>音频设置</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="653"/>
<location filename="../gui/SettingsView.qml" line="646"/>
<source>Audio configuration</source>
<translation>音频配置</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="678"/>
<location filename="../gui/SettingsView.qml" line="671"/>
<source>Stereo</source>
<translation>立体声</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="682"/>
<location filename="../gui/SettingsView.qml" line="675"/>
<source>5.1 surround sound</source>
<translation>5.1 环绕声</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="686"/>
<location filename="../gui/SettingsView.qml" line="679"/>
<source>7.1 surround sound</source>
<translation>7.1 环绕声</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="700"/>
<location filename="../gui/SettingsView.qml" line="693"/>
<source>Mute host PC speakers while streaming</source>
<translation>流式传输启动时将目标计算机的扬声器静音</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="710"/>
<location filename="../gui/SettingsView.qml" line="703"/>
<source>You must restart any game currently in progress for this setting to take effect</source>
<translation>要使此设置生效,必须重新启动当前正在进行的所有游戏</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="716"/>
<location filename="../gui/SettingsView.qml" line="709"/>
<source>Mute audio stream when Moonlight is not the active window</source>
<translation>当 Moonlight 失去焦点时静音</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="727"/>
<location filename="../gui/SettingsView.qml" line="720"/>
<source>Mutes Moonlight&apos;s audio when you Alt+Tab out of the stream or click on a different window.</source>
<translation>当你用 Alt+Tab 键离开流式传输或者点击其他窗口时,Moonlight 将静音。</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="736"/>
<location filename="../gui/SettingsView.qml" line="729"/>
<source>UI Settings</source>
<translation>界面设置</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="746"/>
<location filename="../gui/SettingsView.qml" line="739"/>
<source>Language</source>
<translation>语言</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="772"/>
<location filename="../gui/SettingsView.qml" line="765"/>
<source>Automatic</source>
<translation>自动化</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="879"/>
<location filename="../gui/SettingsView.qml" line="864"/>
<source>You must restart Moonlight for this change to take effect</source>
<translation>你必须重新启动 Moonlight 才能使更改生效</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="896"/>
<location filename="../gui/SettingsView.qml" line="878"/>
<source>GUI display mode</source>
<translation>窗口显示模式</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="933"/>
<location filename="../gui/SettingsView.qml" line="915"/>
<source>Maximized</source>
<translation>最大化</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="950"/>
<location filename="../gui/SettingsView.qml" line="932"/>
<source>Show connection quality warnings</source>
<translation>显示连接质量警告</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="962"/>
<location filename="../gui/SettingsView.qml" line="944"/>
<source>Discord Rich Presence integration</source>
<translation>Discord Rich Presence 集成</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="972"/>
<location filename="../gui/SettingsView.qml" line="954"/>
<source>Updates your Discord status to display the name of the game you&apos;re streaming.</source>
<translation>更新你的 Discord 状态,以显示正在运行的游戏名称。</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="978"/>
<location filename="../gui/SettingsView.qml" line="960"/>
<source>Keep the display awake while streaming</source>
<translation>在串流时保持屏幕开启</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="988"/>
<location filename="../gui/SettingsView.qml" line="970"/>
<source>Prevents the screensaver from starting or the display from going to sleep while streaming.</source>
<translation>防止串流时进入屏保或屏幕休眠。</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1006"/>
<location filename="../gui/SettingsView.qml" line="988"/>
<source>Input Settings</source>
<translation>输入设置</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1017"/>
<location filename="../gui/SettingsView.qml" line="999"/>
<source>Optimize mouse for remote desktop instead of games</source>
<translation>为远程桌面而不是游戏优化鼠标</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1027"/>
<location filename="../gui/SettingsView.qml" line="1009"/>
<source>This enables seamless mouse control without capturing the client&apos;s mouse cursor. It is ideal for remote desktop usage but will not work in most games.</source>
<translation>这可以实现无缝鼠标控制,而无需捕获客户端的鼠标光标。这是理想的远程桌面使用方案,但不会在大多数游戏中工作。</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1028"/>
<location filename="../gui/SettingsView.qml" line="1010"/>
<source>You can toggle this while streaming using Ctrl+Alt+Shift+M.</source>
<translation>你可以使用 Ctrl+Alt+Shift+M 切换鼠标控制模式。</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1029"/>
<location filename="../gui/SettingsView.qml" line="1011"/>
<source>NOTE: Due to a bug in GeForce Experience, this option may not work properly if your host PC has multiple monitors.</source>
<translation>注意:由于 GeForce Experience 的 Bug,如果你的目标计算机有多个显示器,则此选项可能无法正常工作。</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1039"/>
<location filename="../gui/SettingsView.qml" line="1021"/>
<source>Capture system keyboard shortcuts</source>
<translation>捕获系统快捷键</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1047"/>
<location filename="../gui/SettingsView.qml" line="1029"/>
<source>This enables the capture of system-wide keyboard shortcuts like Alt+Tab that would normally be handled by the client OS while streaming.</source>
<translation>这样可以捕获系统范围的键盘快捷键,例如 Alt + Tab,这些快捷键通常在流式传输时由客户端系统处理。</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1345"/>
<source>Enabling HDR overrides manual decoder selections.</source>
<translation>启用 HDR 会覆盖自定义解码器的选择。</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1414"/>
<location filename="../gui/SettingsView.qml" line="1378"/>
<source>Enabling HDR overrides manual codec selections.</source>
<translation>启用HDR将覆盖编码器选择设置。</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1420"/>
<location filename="../gui/SettingsView.qml" line="1384"/>
<source>Enable HDR (Experimental)</source>
<translation>启用HDR(实验性)</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1431"/>
<location filename="../gui/SettingsView.qml" line="1395"/>
<source>The stream will be HDR-capable, but some games may require an HDR monitor on your host PC to enable HDR mode.</source>
<translation>HDR功能将在串流中可用,但一些游戏可能需要PC端接入HDR显示器以启用HDR模式。</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1433"/>
<location filename="../gui/SettingsView.qml" line="1397"/>
<source>HDR streaming is not supported on this PC.</source>
<translation>此PC不支持HDR。</translation>
</message>
@@ -814,143 +739,143 @@
<translation type="vanished">这允许捕获系统范围内的键盘快捷键(如Alt+Tab),这些快捷键通常在全屏流式传输时由客户端操作系统处理。</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1048"/>
<location filename="../gui/SettingsView.qml" line="1030"/>
<source>NOTE: Certain keyboard shortcuts like Ctrl+Alt+Del on Windows cannot be intercepted by any application, including Moonlight.</source>
<translation>注意:Windows 上的某些键盘快捷键(如 Ctrl+Alt+Del)不能被任何应用程序截获,包括 Moonlight。</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1077"/>
<location filename="../gui/SettingsView.qml" line="1059"/>
<source>in fullscreen</source>
<translation>全屏</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1081"/>
<location filename="../gui/SettingsView.qml" line="1063"/>
<source>always</source>
<translation>总是</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1111"/>
<location filename="../gui/SettingsView.qml" line="1093"/>
<source>Use touchscreen as a virtual trackpad</source>
<translation>将触摸屏用作虚拟触控板</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1121"/>
<location filename="../gui/SettingsView.qml" line="1103"/>
<source>When checked, the touchscreen acts like a trackpad. When unchecked, the touchscreen will directly control the mouse pointer.</source>
<translation>选中时,触摸屏就像一个触控板。取消选中时,触摸屏将直接控制鼠标指针。</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1128"/>
<location filename="../gui/SettingsView.qml" line="1110"/>
<source>Swap left and right mouse buttons</source>
<translation>交换鼠标左键和右键</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1140"/>
<location filename="../gui/SettingsView.qml" line="1122"/>
<source>Reverse mouse scrolling direction</source>
<translation>反转鼠标滚动方向</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1154"/>
<location filename="../gui/SettingsView.qml" line="1136"/>
<source>Gamepad Settings</source>
<translation>手柄设置</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1164"/>
<location filename="../gui/SettingsView.qml" line="1146"/>
<source>Swap A/B and X/Y gamepad buttons</source>
<translation>交换手柄的 A/B 和 X/Y 按钮</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1182"/>
<location filename="../gui/SettingsView.qml" line="1164"/>
<source>This switches gamepads into a Nintendo-style button layout</source>
<translation>这会将手柄切换为任天堂风格的按钮布局</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1188"/>
<location filename="../gui/SettingsView.qml" line="1170"/>
<source>Force gamepad #1 always connected</source>
<translation>强制手柄 #1 始终连接</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1198"/>
<location filename="../gui/SettingsView.qml" line="1180"/>
<source>Forces a single gamepad to always stay connected to the host, even if no gamepads are actually connected to this PC.</source>
<translation>强制单个手柄始终与目标计算机保持连接,即使没有任何手柄实际连接到此计算机。</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1199"/>
<location filename="../gui/SettingsView.qml" line="1181"/>
<source>Only enable this option when streaming a game that doesn&apos;t support gamepads being connected after startup.</source>
<translation>仅在游戏启动后不支持手柄连接时才启用此选项。</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1206"/>
<location filename="../gui/SettingsView.qml" line="1188"/>
<source>Enable mouse control with gamepads by holding the &apos;Start&apos; button</source>
<translation>按住手柄的“Start”按钮启用鼠标控制</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1217"/>
<location filename="../gui/SettingsView.qml" line="1199"/>
<source>Process gamepad input when Moonlight is in the background</source>
<translation>当 Moonlight 在后台时处理手柄输入</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1228"/>
<location filename="../gui/SettingsView.qml" line="1210"/>
<source>Allows Moonlight to capture gamepad inputs even if it&apos;s not the current window in focus</source>
<translation>即使不是焦点窗口,也允许 Moonlight 捕获手柄的输入</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1237"/>
<location filename="../gui/SettingsView.qml" line="1219"/>
<source>Host Settings</source>
<translation>目标计算机设置</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1247"/>
<location filename="../gui/SettingsView.qml" line="1229"/>
<source>Optimize game settings for streaming</source>
<translation>优化游戏设置以进行流式传输</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1258"/>
<location filename="../gui/SettingsView.qml" line="1240"/>
<source>Quit app on host PC after ending stream</source>
<translation>流式传输结束后退出目标计算机上的应用程序</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1268"/>
<location filename="../gui/SettingsView.qml" line="1250"/>
<source>This will close the app or game you are streaming when you end your stream. You will lose any unsaved progress!</source>
<translation>当你结束流式传输时,这将关闭正在运行的应用程序或游戏。这会导致你失去所有未保存的游戏进度!</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1277"/>
<location filename="../gui/SettingsView.qml" line="1259"/>
<source>Advanced Settings</source>
<translation>高级设置</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1287"/>
<location filename="../gui/SettingsView.qml" line="1269"/>
<source>Video decoder</source>
<translation>视频解码器</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1313"/>
<location filename="../gui/SettingsView.qml" line="1382"/>
<location filename="../gui/SettingsView.qml" line="1294"/>
<location filename="../gui/SettingsView.qml" line="1346"/>
<source>Automatic (Recommended)</source>
<translation>自动 (推荐)</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1317"/>
<location filename="../gui/SettingsView.qml" line="1298"/>
<source>Force software decoding</source>
<translation>强制软件解码</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1321"/>
<location filename="../gui/SettingsView.qml" line="1302"/>
<source>Force hardware decoding</source>
<translation>强制硬件解码</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1351"/>
<location filename="../gui/SettingsView.qml" line="1315"/>
<source>Video codec</source>
<translation>视频编解码器</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1386"/>
<location filename="../gui/SettingsView.qml" line="1350"/>
<source>H.264</source>
<translation>H.264</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1390"/>
<location filename="../gui/SettingsView.qml" line="1354"/>
<source>HEVC (H.265)</source>
<translation>HEVC (H.265)</translation>
</message>
@@ -959,17 +884,17 @@
<translation type="vanished">HEVC HDR (实验性)</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1439"/>
<location filename="../gui/SettingsView.qml" line="1403"/>
<source>Unlock unsupported FPS options</source>
<translation>解锁不受支持的 FPS 选项</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1458"/>
<location filename="../gui/SettingsView.qml" line="1422"/>
<source>Automatically find PCs on the local network (Recommended)</source>
<translation>自动在本地网络上查找计算机 (推荐)</translation>
</message>
<message>
<location filename="../gui/SettingsView.qml" line="1483"/>
<location filename="../gui/SettingsView.qml" line="1447"/>
<source>Automatically detect blocked connections (Recommended)</source>
<translation>自动检测被阻止的连接 (推荐)</translation>
</message>
@@ -1026,50 +951,55 @@
<context>
<name>main</name>
<message>
<location filename="../gui/main.qml" line="418"/>
<location filename="../gui/main.qml" line="254"/>
<location filename="../gui/main.qml" line="264"/>
<location filename="../gui/main.qml" line="393"/>
<location filename="../gui/main.qml" line="408"/>
<source>Settings</source>
<translation>设置</translation>
</message>
<message>
<location filename="../gui/main.qml" line="265"/>
<location filename="../gui/main.qml" line="255"/>
<source>Version %1</source>
<translation>版本 %1</translation>
</message>
<message>
<location filename="../gui/main.qml" line="281"/>
<location filename="../gui/main.qml" line="271"/>
<source>Join our community on Discord</source>
<translation>加入我们的社区</translation>
</message>
<message>
<location filename="../gui/main.qml" line="283"/>
<source>Computers</source>
<translation type="vanished">计算机列表</translation>
<translation>计算机列表</translation>
</message>
<message>
<location filename="../gui/main.qml" line="300"/>
<location filename="../gui/main.qml" line="290"/>
<source>Add PC manually</source>
<translation>手动添加计算机</translation>
</message>
<message>
<location filename="../gui/main.qml" line="340"/>
<location filename="../gui/main.qml" line="330"/>
<source>Update available for Moonlight: Version %1</source>
<translation>Moonlight 可用更新:版本 %1</translation>
</message>
<message>
<location filename="../gui/main.qml" line="364"/>
<location filename="../gui/main.qml" line="354"/>
<source>Help</source>
<translation>帮助</translation>
</message>
<message>
<location filename="../gui/main.qml" line="387"/>
<location filename="../gui/main.qml" line="377"/>
<source>Gamepad Mapper</source>
<translation>手柄按键映射</translation>
</message>
<message>
<location filename="../gui/main.qml" line="381"/>
<source>Gamepad Mapping</source>
<translation type="vanished">手柄按键映射</translation>
<translation>手柄按键映射</translation>
</message>
<message>
<location filename="../gui/main.qml" line="425"/>
<location filename="../gui/main.qml" line="415"/>
<source>No functioning hardware accelerated video decoder was detected by Moonlight. Your streaming performance may be severely degraded in this configuration.</source>
<translation>Moonlight 未检测到有效的硬件加速视频解码器。在此配置中,你的流性能可能会严重下降。</translation>
</message>
@@ -1078,42 +1008,42 @@
<translation type="vanished">Moonlight 未检测到功能正常的硬件加速 H.264 视频解码器。</translation>
</message>
<message>
<location filename="../gui/main.qml" line="427"/>
<location filename="../gui/main.qml" line="417"/>
<source>Click the Help button for more information on solving this problem.</source>
<translation>单击帮助按钮以获取有关解决此问题的更多信息。</translation>
</message>
<message>
<location filename="../gui/main.qml" line="433"/>
<location filename="../gui/main.qml" line="423"/>
<source>Hardware acceleration doesn&apos;t work on XWayland. Continuing on XWayland may result in poor streaming performance. Try running with QT_QPA_PLATFORM=wayland or switch to X11.</source>
<translation>硬件加速在 XWayland 上不起作用。在 XWayland 上继续操作可能会导致流式传输性能下降。</translation>
</message>
<message>
<location filename="../gui/main.qml" line="435"/>
<location filename="../gui/main.qml" line="425"/>
<source>Click the Help button for more information.</source>
<translation>单击帮助按钮以获取更多信息。</translation>
</message>
<message>
<location filename="../gui/main.qml" line="442"/>
<location filename="../gui/main.qml" line="432"/>
<source>This version of Moonlight isn&apos;t optimized for your PC. Please download the &apos;%1&apos; version of Moonlight for the best streaming performance.</source>
<translation>此版本的 Moonlight 尚未针对你的计算机优化。请下载“%1”版本的 Moonlight,以获得最佳的流式传输性能。</translation>
</message>
<message>
<location filename="../gui/main.qml" line="451"/>
<location filename="../gui/main.qml" line="441"/>
<source>Moonlight detected gamepads without a mapping:</source>
<translation>Moonlight 检测到没有映射的手柄:</translation>
</message>
<message>
<location filename="../gui/main.qml" line="453"/>
<location filename="../gui/main.qml" line="443"/>
<source>Click the Help button for information on how to map your gamepads.</source>
<translation>单击帮助按钮以获取有关如何映射手柄的信息。</translation>
</message>
<message>
<location filename="../gui/main.qml" line="461"/>
<location filename="../gui/main.qml" line="451"/>
<source>Are you sure you want to quit?</source>
<translation>确定要退出吗?</translation>
</message>
<message>
<location filename="../gui/main.qml" line="491"/>
<location filename="../gui/main.qml" line="481"/>
<source>Enter the IP address of your GameStream PC:</source>
<translation>输入目标计算机的 IP 地址:</translation>
</message>
+21 -98
View File
@@ -28,17 +28,14 @@
#include <openssl/ssl.h>
#endif
#include "cli/listapps.h"
#include "cli/quitstream.h"
#include "cli/startstream.h"
#include "cli/pair.h"
#include "cli/commandlineparser.h"
#include "path.h"
#include "utils.h"
#include "gui/computermodel.h"
#include "gui/appmodel.h"
#include "backend/autoupdatechecker.h"
#include "backend/computermanager.h"
#include "backend/systemproperties.h"
#include "streaming/session.h"
#include "settings/streamingpreferences.h"
@@ -63,7 +60,6 @@
static QElapsedTimer s_LoggerTime;
static QTextStream s_LoggerStream(stdout);
static QMutex s_LoggerLock;
static bool s_SuppressVerboseOutput;
#ifdef LOG_TO_FILE
#define MAX_LOG_LINES 10000
static int s_LogLinesWritten = 0;
@@ -104,27 +100,15 @@ void sdlLogToDiskHandler(void*, int category, SDL_LogPriority priority, const ch
switch (priority) {
case SDL_LOG_PRIORITY_VERBOSE:
if (s_SuppressVerboseOutput) {
return;
}
priorityTxt = "Verbose";
break;
case SDL_LOG_PRIORITY_DEBUG:
if (s_SuppressVerboseOutput) {
return;
}
priorityTxt = "Debug";
break;
case SDL_LOG_PRIORITY_INFO:
if (s_SuppressVerboseOutput) {
return;
}
priorityTxt = "Info";
break;
case SDL_LOG_PRIORITY_WARN:
if (s_SuppressVerboseOutput) {
return;
}
priorityTxt = "Warn";
break;
case SDL_LOG_PRIORITY_ERROR:
@@ -150,21 +134,12 @@ void qtLogToDiskHandler(QtMsgType type, const QMessageLogContext&, const QString
switch (type) {
case QtDebugMsg:
if (s_SuppressVerboseOutput) {
return;
}
typeTxt = "Debug";
break;
case QtInfoMsg:
if (s_SuppressVerboseOutput) {
return;
}
typeTxt = "Info";
break;
case QtWarningMsg:
if (s_SuppressVerboseOutput) {
return;
}
typeTxt = "Warning";
break;
case QtCriticalMsg:
@@ -191,9 +166,6 @@ void ffmpegLogToDiskHandler(void* ptr, int level, const char* fmt, va_list vl)
if ((level & 0xFF) > av_log_get_level()) {
return;
}
else if ((level & 0xFF) > AV_LOG_WARNING && s_SuppressVerboseOutput) {
return;
}
// We need to use the *previous* printPrefix value to determine whether to
// print the prefix this time. av_log_format_line() will set the printPrefix
@@ -288,6 +260,7 @@ int main(int argc, char *argv[])
QCoreApplication::setApplicationName("Moonlight");
if (QFile(QDir::currentPath() + "/portable.dat").exists()) {
qInfo() << "Running in portable mode from:" << QDir::currentPath();
QSettings::setDefaultFormat(QSettings::IniFormat);
QSettings::setPath(QSettings::IniFormat, QSettings::UserScope, QDir::currentPath());
QSettings::setPath(QSettings::IniFormat, QSettings::SystemScope, QDir::currentPath());
@@ -305,7 +278,7 @@ int main(int argc, char *argv[])
QDir tempDir(Path::getLogDir());
s_LoggerFile = new QFile(tempDir.filePath(QString("Moonlight-%1.log").arg(QDateTime::currentSecsSinceEpoch())));
if (s_LoggerFile->open(QIODevice::WriteOnly)) {
QTextStream(stderr) << "Redirecting log output to " << s_LoggerFile->fileName() << Qt::endl;
qInfo() << "Redirecting log output to " << s_LoggerFile->fileName();
s_LoggerStream.setDevice(s_LoggerFile);
}
#endif
@@ -408,6 +381,18 @@ int main(int argc, char *argv[])
// Register custom metatypes for use in signals
qRegisterMetaType<NvApp>("NvApp");
SDL_version compileVersion;
SDL_VERSION(&compileVersion);
SDL_LogInfo(SDL_LOG_CATEGORY_APPLICATION,
"Compiled with SDL %d.%d.%d",
compileVersion.major, compileVersion.minor, compileVersion.patch);
SDL_version runtimeVersion;
SDL_GetVersion(&runtimeVersion);
SDL_LogInfo(SDL_LOG_CATEGORY_APPLICATION,
"Running with SDL %d.%d.%d",
runtimeVersion.major, runtimeVersion.minor, runtimeVersion.patch);
// Allow the display to sleep by default. We will manually use SDL_DisableScreenSaver()
// and SDL_EnableScreenSaver() when appropriate. This hint must be set before
// initializing the SDL video subsystem to have any effect.
@@ -485,47 +470,6 @@ int main(int argc, char *argv[])
QGuiApplication app(argc, argv);
GlobalCommandLineParser parser;
GlobalCommandLineParser::ParseResult commandLineParserResult = parser.parse(app.arguments());
switch (commandLineParserResult) {
case GlobalCommandLineParser::ListRequested:
#ifdef USE_CUSTOM_LOGGER
// Don't log to the console since it will jumble the command output
s_SuppressVerboseOutput = true;
#endif
#ifdef Q_OS_WIN32
// Attach to the console to be able to print output.
// Since we're a /SUBSYSTEM:WINDOWS app, we won't be attached by default.
if (AttachConsole(ATTACH_PARENT_PROCESS)) {
HANDLE conOut = GetStdHandle(STD_OUTPUT_HANDLE);
if (conOut != INVALID_HANDLE_VALUE && conOut != NULL) {
freopen("CONOUT$", "w", stdout);
setvbuf(stdout, NULL, _IONBF, 0);
}
HANDLE conErr = GetStdHandle(STD_ERROR_HANDLE);
if (conErr != INVALID_HANDLE_VALUE && conErr != NULL) {
freopen("CONOUT$", "w", stderr);
setvbuf(stderr, NULL, _IONBF, 0);
}
}
#endif
break;
default:
break;
}
SDL_version compileVersion;
SDL_VERSION(&compileVersion);
SDL_LogInfo(SDL_LOG_CATEGORY_APPLICATION,
"Compiled with SDL %d.%d.%d",
compileVersion.major, compileVersion.minor, compileVersion.patch);
SDL_version runtimeVersion;
SDL_GetVersion(&runtimeVersion);
SDL_LogInfo(SDL_LOG_CATEGORY_APPLICATION,
"Running with SDL %d.%d.%d",
runtimeVersion.major, runtimeVersion.minor, runtimeVersion.patch);
// Apply the initial translation based on user preference
StreamingPreferences prefs;
prefs.retranslate();
@@ -639,9 +583,9 @@ int main(int argc, char *argv[])
QQmlApplicationEngine engine;
QString initialView;
bool hasGUI = true;
switch (commandLineParserResult) {
GlobalCommandLineParser parser;
switch (parser.parse(app.arguments())) {
case GlobalCommandLineParser::NormalStartRequested:
initialView = "qrc:/gui/PcView.qml";
break;
@@ -666,35 +610,14 @@ int main(int argc, char *argv[])
engine.rootContext()->setContextProperty("launcher", launcher);
break;
}
case GlobalCommandLineParser::PairRequested:
{
initialView = "qrc:/gui/CliPair.qml";
PairCommandLineParser pairParser;
pairParser.parse(app.arguments());
auto launcher = new CliPair::Launcher(pairParser.getHost(), pairParser.getPredefinedPin(), &app);
engine.rootContext()->setContextProperty("launcher", launcher);
break;
}
case GlobalCommandLineParser::ListRequested:
{
ListCommandLineParser listParser;
listParser.parse(app.arguments());
auto launcher = new CliListApps::Launcher(listParser.getHost(), listParser, &app);
launcher->execute(new ComputerManager(&app));
hasGUI = false;
break;
}
}
if (hasGUI) {
engine.rootContext()->setContextProperty("initialView", initialView);
// Load the main.qml file
engine.load(QUrl(QStringLiteral("qrc:/gui/main.qml")));
if (engine.rootObjects().isEmpty())
return -1;
}
engine.rootContext()->setContextProperty("initialView", initialView);
// Load the main.qml file
engine.load(QUrl(QStringLiteral("qrc:/gui/main.qml")));
if (engine.rootObjects().isEmpty())
return -1;
int err = app.exec();
// Give worker tasks time to properly exit. Fixes PendingQuitTask
+47 -35
View File
@@ -11,10 +11,6 @@
#define _GNU_SOURCE
// NOTE: This file MUST NOT include fcntl.h due to open() -> open64()
// redirection that happens when _FILE_OFFSET_BITS=64!
// See masterhook_internal.c for details.
#include <SDL.h>
#include <dlfcn.h>
#include <unistd.h>
@@ -39,21 +35,14 @@ struct stat64 g_DrmMasterStat;
// The DRM master FD created for SDL
int g_SdlDrmMasterFd = -1;
int drmIsMaster(int fd)
{
// Detect master by attempting something that requires master.
// This method is available in Mesa DRM since Feb 2019.
return drmAuthMagic(fd, 0) != -EACCES;
}
// This hook will handle legacy DRM rendering
int drmModeSetCrtc(int fd, uint32_t crtcId, uint32_t bufferId,
uint32_t x, uint32_t y, uint32_t *connectors, int count,
drmModeModeInfoPtr mode)
{
// Grab the first DRM Master FD that makes it in here. This will be the Qt
// EGLFS backend's DRM FD, on which we will call drmDropMaster() later.
if (g_QtDrmMasterFd == -1 && drmIsMaster(fd)) {
// Grab the first DRM FD that makes it in here. This will be the Qt
// EGLFS backend's DRM FD, which we will need later.
if (g_QtDrmMasterFd == -1) {
g_QtDrmMasterFd = fd;
fstat64(g_QtDrmMasterFd, &g_DrmMasterStat);
SDL_LogInfo(SDL_LOG_CATEGORY_APPLICATION,
@@ -62,16 +51,16 @@ int drmModeSetCrtc(int fd, uint32_t crtcId, uint32_t bufferId,
}
// Call into the real thing
return ((typeof(drmModeSetCrtc)*)dlsym(RTLD_NEXT, __FUNCTION__))(fd, crtcId, bufferId, x, y, connectors, count, mode);
return ((typeof(drmModeSetCrtc)*)dlsym(RTLD_NEXT, "drmModeSetCrtc"))(fd, crtcId, bufferId, x, y, connectors, count, mode);
}
// This hook will handle atomic DRM rendering
int drmModeAtomicCommit(int fd, drmModeAtomicReqPtr req,
uint32_t flags, void *user_data)
{
// Grab the first DRM Master FD that makes it in here. This will be the Qt
// EGLFS backend's DRM FD, on which we will call drmDropMaster() later.
if (g_QtDrmMasterFd == -1 && drmIsMaster(fd)) {
// Grab the first DRM FD that makes it in here. This will be the Qt
// EGLFS backend's DRM FD, which we will need later.
if (g_QtDrmMasterFd == -1) {
g_QtDrmMasterFd = fd;
fstat64(g_QtDrmMasterFd, &g_DrmMasterStat);
SDL_LogInfo(SDL_LOG_CATEGORY_APPLICATION,
@@ -80,30 +69,53 @@ int drmModeAtomicCommit(int fd, drmModeAtomicReqPtr req,
}
// Call into the real thing
return ((typeof(drmModeAtomicCommit)*)dlsym(RTLD_NEXT, __FUNCTION__))(fd, req, flags, user_data);
return ((typeof(drmModeAtomicCommit)*)dlsym(RTLD_NEXT, "drmModeAtomicCommit"))(fd, req, flags, user_data);
}
// This hook will handle SDL's open() on the DRM device. We just need to
// hook this variant of open(), since that's what SDL uses. When we see
// the open a FD for the same card as the Qt DRM master FD, we'll drop
// master on the Qt FD to allow the new FD to have master.
int openHook(const char *funcname, const char *pathname, int flags, va_list va);
int open(const char *pathname, int flags, ...)
int open(const char *pathname, int flags)
{
va_list va;
va_start(va, flags);
int fd = openHook(__FUNCTION__, pathname, flags, va);
va_end(va);
return fd;
}
// Call the real thing to do the open operation
int fd = ((typeof(open)*)dlsym(RTLD_NEXT, "open"))(pathname, flags);
// If the file was successfully opened and we have a DRM master FD,
// check if the FD we just opened is a DRM device.
if (fd >= 0 && g_QtDrmMasterFd != -1) {
if (strncmp(pathname, "/dev/dri/card", 13) == 0) {
// It's a DRM device, but is it _our_ DRM device?
struct stat64 fdstat;
fstat64(fd, &fdstat);
if (g_DrmMasterStat.st_dev == fdstat.st_dev &&
g_DrmMasterStat.st_ino == fdstat.st_ino) {
// It is our device. Time to do the magic!
// This code assumes SDL only ever opens a single FD
// for a given DRM device.
SDL_assert(g_SdlDrmMasterFd == -1);
// Drop master on Qt's FD so we can pick it up for SDL.
if (drmDropMaster(g_QtDrmMasterFd) < 0) {
SDL_LogError(SDL_LOG_CATEGORY_APPLICATION,
"Failed to drop master on Qt DRM FD: %d",
errno);
// Hope for the best
return fd;
}
// We are not allowed to call drmSetMaster() without CAP_SYS_ADMIN,
// but since we just dropped the master, we can become master by
// simply creating a new FD. Let's do it.
close(fd);
fd = ((typeof(open)*)dlsym(RTLD_NEXT, "open"))(pathname, flags);
g_SdlDrmMasterFd = fd;
}
}
}
int open64(const char *pathname, int flags, ...)
{
va_list va;
va_start(va, flags);
int fd = openHook(__FUNCTION__, pathname, flags, va);
va_end(va);
return fd;
}
@@ -112,7 +124,7 @@ int open64(const char *pathname, int flags, ...)
int close(int fd)
{
// Call the real thing
int ret = ((typeof(close)*)dlsym(RTLD_NEXT, __FUNCTION__))(fd);
int ret = ((typeof(close)*)dlsym(RTLD_NEXT, "close"))(fd);
if (ret == 0) {
// If we just closed the SDL DRM master FD, restore master
// to the Qt DRM FD. This works because the Qt DRM master FD
-90
View File
@@ -1,90 +0,0 @@
// This file contains the private implementation of the open() hook
// which must be in a separate compilation unit due to fcntl.h doing
// unwanted redirection of open() to open64().
#define _GNU_SOURCE
#include <SDL.h>
#include <dlfcn.h>
#include <fcntl.h>
#include <unistd.h>
#include <errno.h>
#include <sys/stat.h>
#include <xf86drm.h>
#include <xf86drmMode.h>
// __OPEN_NEEDS_MODE is a glibc-ism, so define it ourselves for other libc
#ifndef __OPEN_NEEDS_MODE
#ifdef __O_TMPFILE
# define __OPEN_NEEDS_MODE(oflag) \
(((oflag) & O_CREAT) != 0 || ((oflag) & __O_TMPFILE) == __O_TMPFILE)
#else
# define __OPEN_NEEDS_MODE(oflag) (((oflag) & O_CREAT) != 0)
#endif
#endif
#if SDL_VERSION_ATLEAST(2, 0, 15)
extern int g_QtDrmMasterFd;
extern struct stat64 g_DrmMasterStat;
extern int g_SdlDrmMasterFd;
int openHook(const char *funcname, const char *pathname, int flags, va_list va)
{
int fd;
mode_t mode;
// Call the real thing to do the open operation
if (__OPEN_NEEDS_MODE(flags)) {
mode = va_arg(va, mode_t);
fd = ((typeof(open)*)dlsym(RTLD_NEXT, funcname))(pathname, flags, mode);
}
else {
mode = 0;
fd = ((typeof(open)*)dlsym(RTLD_NEXT, funcname))(pathname, flags);
}
// If the file was successfully opened and we have a DRM master FD,
// check if the FD we just opened is a DRM device.
if (fd >= 0 && g_QtDrmMasterFd != -1) {
if (strncmp(pathname, "/dev/dri/card", 13) == 0) {
// It's a DRM device, but is it _our_ DRM device?
struct stat64 fdstat;
fstat64(fd, &fdstat);
if (g_DrmMasterStat.st_dev == fdstat.st_dev &&
g_DrmMasterStat.st_ino == fdstat.st_ino) {
// It is our device. Time to do the magic!
// This code assumes SDL only ever opens a single FD
// for a given DRM device.
SDL_assert(g_SdlDrmMasterFd == -1);
// Drop master on Qt's FD so we can pick it up for SDL.
if (drmDropMaster(g_QtDrmMasterFd) < 0) {
SDL_LogError(SDL_LOG_CATEGORY_APPLICATION,
"Failed to drop master on Qt DRM FD: %d",
errno);
// Hope for the best
return fd;
}
// We are not allowed to call drmSetMaster() without CAP_SYS_ADMIN,
// but since we just dropped the master, we can become master by
// simply creating a new FD. Let's do it.
close(fd);
if (__OPEN_NEEDS_MODE(flags)) {
fd = ((typeof(open)*)dlsym(RTLD_NEXT, funcname))(pathname, flags, mode);
}
else {
fd = ((typeof(open)*)dlsym(RTLD_NEXT, funcname))(pathname, flags);
}
g_SdlDrmMasterFd = fd;
}
}
}
return fd;
}
#endif
-1
View File
@@ -18,6 +18,5 @@
<file>gui/NavigableMessageDialog.qml</file>
<file>gui/NavigableDialog.qml</file>
<file>gui/CenteredGridView.qml</file>
<file>gui/CliPair.qml</file>
</qresource>
</RCC>
-2
View File
@@ -1,2 +0,0 @@
[Platforms]
WindowsArguments = darkmode=1
-4
View File
@@ -57,10 +57,6 @@
<file>languages/qml_it.qm</file>
<file>languages/qml_pt.ts</file>
<file>languages/qml_pt.qm</file>
<file>languages/qml_pl.ts</file>
<file>languages/qml_pl.qm</file>
<file>languages/qml_cs.ts</file>
<file>languages/qml_cs.qm</file>
<!-- Don't include pt_BR until it is more complete -->
<!--file>languages/qml_pt_BR.qm</file-->
<!--file>languages/qml_pt_BR.ts</file-->
+3 -20
View File
@@ -1,5 +1,4 @@
#include "streamingpreferences.h"
#include "utils.h"
#include <QSettings>
#include <QTranslator>
@@ -45,7 +44,7 @@
#define SER_KEEPAWAKE "keepawake"
#define SER_LANGUAGE "language"
#define CURRENT_DEFAULT_VER 2
#define CURRENT_DEFAULT_VER 1
StreamingPreferences::StreamingPreferences(QObject *parent)
: QObject(parent),
@@ -70,13 +69,7 @@ void StreamingPreferences::reload()
#ifdef Q_OS_DARWIN
recommendedFullScreenMode = WindowMode::WM_FULLSCREEN_DESKTOP;
#else
// Wayland doesn't support modesetting, so use fullscreen desktop mode.
if (WMUtils::isRunningWayland()) {
recommendedFullScreenMode = WindowMode::WM_FULLSCREEN_DESKTOP;
}
else {
recommendedFullScreenMode = WindowMode::WM_FULLSCREEN;
}
recommendedFullScreenMode = WindowMode::WM_FULLSCREEN;
#endif
width = settings.value(SER_WIDTH, 1280).toInt();
@@ -124,7 +117,7 @@ void StreamingPreferences::reload()
// Perform default settings updates as required based on last default version
if (defaultVer < 1) {
if (defaultVer == 0) {
#ifdef Q_OS_DARWIN
// Update window mode setting on macOS from full-screen (old default) to borderless windowed (new default)
if (windowMode == WindowMode::WM_FULLSCREEN) {
@@ -132,11 +125,6 @@ void StreamingPreferences::reload()
}
#endif
}
if (defaultVer < 2) {
if (windowMode == WindowMode::WM_FULLSCREEN && WMUtils::isRunningWayland()) {
windowMode = WindowMode::WM_FULLSCREEN_DESKTOP;
}
}
}
bool StreamingPreferences::retranslate()
@@ -239,10 +227,6 @@ QString StreamingPreferences::getSuffixFromLanguage(StreamingPreferences::Langua
return "it";
case LANG_HI:
return "hi";
case LANG_PL:
return "pl";
case LANG_CS:
return "cs";
case LANG_AUTO:
default:
return QLocale::system().name();
@@ -285,7 +269,6 @@ void StreamingPreferences::save()
settings.setValue(SER_REVERSESCROLL, reverseScrollDirection);
settings.setValue(SER_SWAPFACEBUTTONS, swapFaceButtons);
settings.setValue(SER_CAPTURESYSKEYS, captureSysKeysMode);
settings.setValue(SER_KEEPAWAKE, keepAwake);
}
int StreamingPreferences::getDefaultBitrate(int width, int height, int fps)
-2
View File
@@ -88,8 +88,6 @@ public:
LANG_EL,
LANG_IT,
LANG_HI,
LANG_PL,
LANG_CS,
};
Q_ENUM(Language);
+5 -4
View File
@@ -26,10 +26,11 @@ bool SdlAudioRenderer::prepareForPlayback(const OPUS_MULTISTREAM_CONFIGURATION*
want.format = AUDIO_S16;
want.channels = opusConfig->channelCount;
// On PulseAudio systems, setting a value too small can cause underruns for other
// applications sharing this output device. We impose a floor of 480 samples (10 ms)
// to mitigate this issue.
want.samples = SDL_max(480, opusConfig->samplesPerFrame);
// This is supposed to be a power of 2, but our
// frames contain a non-power of 2 number of samples,
// so the slop would require buffering another full frame.
// Specifying non-Po2 seems to work for our supported platforms.
want.samples = opusConfig->samplesPerFrame;
m_FrameSize = opusConfig->samplesPerFrame * sizeof(short) * opusConfig->channelCount;
+1 -1
View File
@@ -259,7 +259,7 @@ void SdlInputHandler::handleControllerButtonEvent(SDL_ControllerButtonEvent* eve
}
// Handle Start+Select+L1+R1 as a gamepad quit combo
if (state->buttons == (PLAY_FLAG | BACK_FLAG | LB_FLAG | RB_FLAG) && qgetenv("NO_GAMEPAD_QUIT") != "1") {
if (state->buttons == (PLAY_FLAG | BACK_FLAG | LB_FLAG | RB_FLAG)) {
SDL_LogInfo(SDL_LOG_CATEGORY_APPLICATION,
"Detected quit gamepad button combo");
+19 -4
View File
@@ -22,7 +22,6 @@ SdlInputHandler::SdlInputHandler(StreamingPreferences& prefs, NvComputer*, int s
m_MouseWasInVideoRegion(false),
m_PendingMouseButtonsAllUpOnVideoRegionLeave(false),
m_PointerRegionLockActive(false),
m_PointerRegionLockToggledByUser(false),
m_FakeCaptureActive(false),
m_CaptureSystemKeysMode(prefs.captureSysKeysMode),
m_MouseCursorCapturedVisibilityState(SDL_DISABLE),
@@ -340,11 +339,27 @@ void SdlInputHandler::updateKeyboardGrabState()
// Don't close the window on Alt+F4 when keyboard grab is enabled
SDL_SetHint(SDL_HINT_WINDOWS_NO_CLOSE_ON_ALT_F4, shouldGrab ? "1" : "0");
if (shouldGrab) {
#if SDL_VERSION_ATLEAST(2, 0, 15)
// On SDL 2.0.15+, we can get keyboard-only grab on Win32, X11, and Wayland.
// SDL 2.0.18 adds keyboard grab on macOS (if built with non-AppStore APIs).
SDL_SetWindowKeyboardGrab(m_Window, shouldGrab ? SDL_TRUE : SDL_FALSE);
// On SDL 2.0.15, we can get keyboard-only grab on Win32, X11, and Wayland.
// This does nothing on macOS but it sets the SDL_WINDOW_KEYBOARD_GRABBED flag
// that we look for to see if keyboard capture is enabled. We'll handle macOS
// ourselves below using the private CGSSetGlobalHotKeyOperatingMode() API.
SDL_SetWindowKeyboardGrab(m_Window, SDL_TRUE);
#else
// If we're in full-screen desktop mode and SDL doesn't have keyboard grab yet,
// grab the cursor (will grab the keyboard too on X11).
if (SDL_GetWindowFlags(m_Window) & SDL_WINDOW_FULLSCREEN) {
SDL_SetWindowGrab(m_Window, SDL_TRUE);
}
#endif
}
else {
#if SDL_VERSION_ATLEAST(2, 0, 15)
// Allow the keyboard to leave the window
SDL_SetWindowKeyboardGrab(m_Window, SDL_FALSE);
#endif
}
}
bool SdlInputHandler::isSystemKeyCaptureActive()
-1
View File
@@ -160,7 +160,6 @@ private:
bool m_MouseWasInVideoRegion;
bool m_PendingMouseButtonsAllUpOnVideoRegionLeave;
bool m_PointerRegionLockActive;
bool m_PointerRegionLockToggledByUser;
int m_GamepadMask;
GamepadState m_GamepadState[MAX_GAMEPADS];
-6
View File
@@ -130,12 +130,6 @@ void SdlInputHandler::performSpecialKeyCombo(KeyCombo combo)
SDL_LogInfo(SDL_LOG_CATEGORY_APPLICATION,
"Detected pointer region lock toggle combo");
m_PointerRegionLockActive = !m_PointerRegionLockActive;
// Remember that the user changed this manually, so we don't mess with it anymore
// during windowed <-> full-screen transitions.
m_PointerRegionLockToggledByUser = true;
// Apply the new region lock
updatePointerRegionLock();
break;
+4 -21
View File
@@ -219,12 +219,6 @@ void SdlInputHandler::handleMouseWheelEvent(SDL_MouseWheelEvent* event)
event->preciseY = -event->preciseY;
}
#ifdef Q_OS_DARWIN
// HACK: Clamp the scroll values on macOS to prevent OS scroll acceleration
// from generating wild scroll deltas when scrolling quickly.
event->preciseY = SDL_clamp(event->preciseY, -1.0f, 1.0f);
#endif
LiSendHighResScrollEvent((short)(event->preciseY * 120)); // WHEEL_DELTA
}
#else
@@ -234,11 +228,6 @@ void SdlInputHandler::handleMouseWheelEvent(SDL_MouseWheelEvent* event)
event->y = -event->y;
}
#ifdef Q_OS_DARWIN
// See comment above
event->y = SDL_clamp(event->y, -1, 1);
#endif
LiSendScrollEvent((signed char)event->y);
}
#endif
@@ -291,16 +280,10 @@ void SdlInputHandler::updatePointerRegionLock()
return;
}
// Our pointer lock behavior tracks with the fullscreen mode unless the user has
// toggled it themselves using the keyboard shortcut. If that's the case, they
// have full control over it and we don't touch it anymore.
if (!m_PointerRegionLockToggledByUser) {
// Lock the pointer in true full-screen mode and leave it unlocked in other modes
m_PointerRegionLockActive = (SDL_GetWindowFlags(m_Window) & SDL_WINDOW_FULLSCREEN_DESKTOP) == SDL_WINDOW_FULLSCREEN;
}
// If region lock is enabled, grab the cursor so it can't accidentally leave our window.
if (isCaptureActive() && m_PointerRegionLockActive) {
// If we're in full-screen exclusive mode or region lock is enabled, grab the cursor so it can't accidentally leave our window.
if (isCaptureActive() &&
(m_PointerRegionLockActive ||
(SDL_GetWindowFlags(m_Window) & SDL_WINDOW_FULLSCREEN_DESKTOP) == SDL_WINDOW_FULLSCREEN)) {
#if SDL_VERSION_ATLEAST(2, 0, 18)
SDL_Rect src, dst;
+110 -195
View File
@@ -22,19 +22,6 @@
#define ICON_SIZE 64
#endif
// HACK: Remove once proper Dark Mode support lands in SDL
#ifdef Q_OS_WIN32
#include <SDL_syswm.h>
#include <dwmapi.h>
#ifndef DWMWA_USE_IMMERSIVE_DARK_MODE_OLD
#define DWMWA_USE_IMMERSIVE_DARK_MODE_OLD 19
#endif
#ifndef DWMWA_USE_IMMERSIVE_DARK_MODE
#define DWMWA_USE_IMMERSIVE_DARK_MODE 20
#endif
#endif
#define SDL_CODE_FLUSH_WINDOW_EVENT_BARRIER 100
#define SDL_CODE_GAMECONTROLLER_RUMBLE 101
@@ -48,7 +35,6 @@
#include <QImage>
#include <QGuiApplication>
#include <QCursor>
#include <QWindow>
#define CONN_TEST_SERVER "qt.conntest.moonlight-stream.org"
@@ -111,7 +97,6 @@ void Session::clConnectionTerminated(int errorCode)
emit s_ActiveSession->displayLaunchError(tr("Your network connection isn't performing well. Reduce your video bitrate setting or try a faster connection."));
break;
case ML_ERROR_PROTECTED_CONTENT:
case ML_ERROR_UNEXPECTED_EARLY_TERMINATION:
s_ActiveSession->m_UnexpectedTermination = true;
emit s_ActiveSession->displayLaunchError(tr("Something went wrong on your host PC when starting the stream.") + "\n\n" +
@@ -119,12 +104,6 @@ void Session::clConnectionTerminated(int errorCode)
tr("If the issue persists, try reinstalling your GPU drivers and GeForce Experience."));
break;
case ML_ERROR_FRAME_CONVERSION:
s_ActiveSession->m_UnexpectedTermination = true;
emit s_ActiveSession->displayLaunchError(tr("The host PC reported a fatal video encoding error.") + "\n\n" +
tr("Try disabling HDR mode, changing the streaming resolution, or changing your host PC's display resolution."));
break;
default:
s_ActiveSession->m_UnexpectedTermination = true;
emit s_ActiveSession->displayLaunchError(tr("Connection terminated"));
@@ -232,7 +211,6 @@ bool Session::chooseDecoder(StreamingPreferences::VideoDecoderSelection vds,
params.window = window;
params.enableVsync = enableVsync;
params.enableFramePacing = enableFramePacing;
params.testOnly = testOnly;
params.vds = vds;
memset(&params.hdrMetadata, 0, sizeof(params.hdrMetadata));
@@ -305,9 +283,14 @@ int Session::drSubmitDecodeUnit(PDECODE_UNIT du)
// We need to destroy the decoder on the main thread to satisfy
// some API constraints (like DXVA2). If we can't acquire it,
// that means the decoder is about to be destroyed, so we can
// safely return DR_OK and wait for the IDR frame request by
// safely return DR_OK and wait for m_NeedsIdr to be set by
// the decoder reinitialization code.
if (s_ActiveSession->getAndClearPendingIdrFrameStatus()) {
// If we reset our decoder, we'll need to request an IDR frame
return DR_NEED_IDR;
}
if (SDL_AtomicTryLock(&s_ActiveSession->m_DecoderLock)) {
IVideoDecoder* decoder = s_ActiveSession->m_VideoDecoder;
if (decoder != nullptr) {
@@ -440,7 +423,8 @@ bool Session::populateDecoderProperties(SDL_Window* window)
m_StreamConfig.colorRange);
}
else {
m_StreamConfig.colorRange = decoder->getDecoderColorRange();
// Limited is the default for GFE
m_StreamConfig.colorRange = COLOR_RANGE_LIMITED;
}
}
@@ -465,6 +449,7 @@ Session::Session(NvComputer* computer, NvApp& app, StreamingPreferences *prefere
m_AudioMuted(false),
m_DisplayOriginX(0),
m_DisplayOriginY(0),
m_PendingWindowedTransition(false),
m_UnexpectedTermination(true), // Failure prior to streaming is unexpected
m_InputHandler(nullptr),
m_MouseEmulationRefCount(0),
@@ -476,6 +461,7 @@ Session::Session(NvComputer* computer, NvApp& app, StreamingPreferences *prefere
m_AudioSampleCount(0),
m_DropAudioEndTime(0)
{
SDL_AtomicSet(&m_NeedsIdr, 0);
}
bool Session::initialize()
@@ -811,13 +797,8 @@ bool Session::validateLaunch(SDL_Window* testWindow)
emitLaunchWarning(tr("An attached gamepad has no mapping and won't be usable. Visit the Moonlight help to resolve this."));
}
// NVENC will fail to initialize when any dimension exceeds 4096 using:
// - H.264 on all versions of NVENC
// - HEVC prior to Pascal
//
// However, if we aren't using Nvidia hosting software, don't assume anything about
// encoding capabilities by using HEVC Main 10 support. It will likely be wrong.
if ((m_StreamConfig.width > 4096 || m_StreamConfig.height > 4096) && m_Computer->isNvidiaServerSoftware) {
// NVENC will fail to initialize when using dimensions over 4096 and H.264.
if (m_StreamConfig.width > 4096 || m_StreamConfig.height > 4096) {
// Pascal added support for 8K HEVC encoding support. Maxwell 2 could encode HEVC but only up to 4K.
// We can't directly identify Pascal, but we can look for HEVC Main10 which was added in the same generation.
if (m_Computer->maxLumaPixelsHEVC == 0 || !(m_Computer->serverCodecModeSupport & 0x200)) {
@@ -916,10 +897,12 @@ void Session::getWindowDimensions(int& x, int& y,
int& width, int& height)
{
int displayIndex = 0;
bool fullScreen;
if (m_Window != nullptr) {
displayIndex = SDL_GetWindowDisplayIndex(m_Window);
SDL_assert(displayIndex >= 0);
fullScreen = (SDL_GetWindowFlags(m_Window) & SDL_WINDOW_FULLSCREEN);
}
// Create our window on the same display that Qt's UI
// was being displayed on.
@@ -946,32 +929,38 @@ void Session::getWindowDimensions(int& x, int& y,
i, SDL_GetError());
}
}
fullScreen = m_IsFullScreen;
}
SDL_Rect usableBounds;
if (SDL_GetDisplayUsableBounds(displayIndex, &usableBounds) == 0) {
// Don't use more than 80% of the display to leave room for system UI
// and ensure the target size is not odd (otherwise one of the sides
// of the image will have a one-pixel black bar next to it).
SDL_Rect src, dst;
src.x = src.y = dst.x = dst.y = 0;
src.w = m_StreamConfig.width;
src.h = m_StreamConfig.height;
dst.w = ((int)SDL_ceilf(usableBounds.w * 0.80f) & ~0x1);
dst.h = ((int)SDL_ceilf(usableBounds.h * 0.80f) & ~0x1);
if (fullScreen && SDL_GetDisplayBounds(displayIndex, &usableBounds) == 0) {
width = usableBounds.w;
height = usableBounds.h;
}
else if (SDL_GetDisplayUsableBounds(displayIndex, &usableBounds) == 0) {
width = usableBounds.w;
height = usableBounds.h;
// Scale the window size while preserving aspect ratio
StreamUtils::scaleSourceToDestinationSurface(&src, &dst);
if (m_Window != nullptr) {
int top, left, bottom, right;
// If the stream window can fit within the usable drawing area with 1:1
// scaling, do that rather than filling the screen.
if (m_StreamConfig.width < dst.w && m_StreamConfig.height < dst.h) {
width = m_StreamConfig.width;
height = m_StreamConfig.height;
}
else {
width = dst.w;
height = dst.h;
if (SDL_GetWindowBordersSize(m_Window, &top, &left, &bottom, &right) == 0) {
width -= left + right;
height -= top + bottom;
}
else {
SDL_LogWarn(SDL_LOG_CATEGORY_APPLICATION,
"Unable to get window border size: %s",
SDL_GetError());
}
// If the stream window can fit within the usable drawing area with 1:1
// scaling, do that rather than filling the screen.
if (m_StreamConfig.width < width && m_StreamConfig.height < height) {
width = m_StreamConfig.width;
height = m_StreamConfig.height;
}
}
}
else {
@@ -997,7 +986,7 @@ void Session::updateOptimalWindowDisplayMode()
// If this doesn't fit the selected resolution, use the native
// resolution of the panel (unscaled).
if (desktopMode.w < m_ActiveVideoWidth || desktopMode.h < m_ActiveVideoHeight) {
if (!StreamUtils::getNativeDesktopMode(displayIndex, &desktopMode)) {
if (!StreamUtils::getRealDesktopMode(displayIndex, &desktopMode)) {
return;
}
}
@@ -1017,9 +1006,6 @@ void Session::updateOptimalWindowDisplayMode()
if (SDL_GetDisplayMode(displayIndex, i, &mode) == 0) {
if (mode.w == desktopMode.w && mode.h == desktopMode.h &&
mode.refresh_rate % m_StreamConfig.fps == 0) {
SDL_LogInfo(SDL_LOG_CATEGORY_APPLICATION,
"Found display mode with desktop resolution: %dx%dx%d",
mode.w, mode.h, mode.refresh_rate);
if (mode.refresh_rate > bestMode.refresh_rate) {
bestMode = mode;
}
@@ -1027,26 +1013,18 @@ void Session::updateOptimalWindowDisplayMode()
}
}
// If we didn't find a mode that matched the current resolution and
// had a high enough refresh rate, start looking for lower resolution
// modes that can meet the required refresh rate and minimum video
// resolution. We will also try to pick a display mode that matches
// aspect ratio closest to the video stream.
if (bestMode.refresh_rate == 0) {
float bestModeAspectRatio = 0;
float videoAspectRatio = (float)m_ActiveVideoWidth / (float)m_ActiveVideoHeight;
// For KMSDRM backends where we exclusively own the display, we should opt
// to change the resolution if that allows us to hit the desired frame rate
if (bestMode.refresh_rate == 0 && strcmp(SDL_GetCurrentVideoDriver(), "KMSDRM") == 0) {
for (int i = 0; i < SDL_GetNumDisplayModes(displayIndex); i++) {
if (SDL_GetDisplayMode(displayIndex, i, &mode) == 0) {
float modeAspectRatio = (float)mode.w / (float)mode.h;
SDL_LogInfo(SDL_LOG_CATEGORY_APPLICATION,
"Detected display mode: %dx%dx%d",
mode.w, mode.h, mode.refresh_rate);
if (mode.w >= m_ActiveVideoWidth && mode.h >= m_ActiveVideoHeight &&
mode.refresh_rate % m_StreamConfig.fps == 0) {
SDL_LogInfo(SDL_LOG_CATEGORY_APPLICATION,
"Found display mode with video resolution: %dx%dx%d",
mode.w, mode.h, mode.refresh_rate);
if (mode.refresh_rate >= bestMode.refresh_rate &&
(bestModeAspectRatio == 0 || fabs(videoAspectRatio - modeAspectRatio) <= fabs(videoAspectRatio - bestModeAspectRatio))) {
if (mode.refresh_rate > bestMode.refresh_rate) {
bestMode = mode;
bestModeAspectRatio = modeAspectRatio;
}
}
}
@@ -1059,7 +1037,7 @@ void Session::updateOptimalWindowDisplayMode()
// divide our FPS setting). We'll stick to the default in
// this case.
SDL_LogWarn(SDL_LOG_CATEGORY_APPLICATION,
"No matching display mode found; using desktop mode");
"No matching refresh rate found; using desktop mode");
bestMode = desktopMode;
}
@@ -1078,37 +1056,28 @@ void Session::toggleFullscreen()
{
bool fullScreen = !(SDL_GetWindowFlags(m_Window) & m_FullScreenFlag);
#ifdef Q_OS_WIN32
// Destroy the video decoder before toggling full-screen because D3D9 can try
// to put the window back into full-screen before we've managed to destroy
// the renderer. This leads to excessive flickering and can cause the window
// decorations to get messed up as SDL and D3D9 fight over the window style.
SDL_AtomicLock(&m_DecoderLock);
delete m_VideoDecoder;
m_VideoDecoder = nullptr;
SDL_AtomicUnlock(&m_DecoderLock);
#endif
if (fullScreen) {
if (m_FullScreenFlag == SDL_WINDOW_FULLSCREEN && m_InputHandler->isCaptureActive()) {
// Confine the cursor to the window if we're capturing input while transitioning to full screen.
SDL_SetWindowGrab(m_Window, SDL_TRUE);
}
// Actually enter/leave fullscreen
SDL_SetWindowFullscreen(m_Window, fullScreen ? m_FullScreenFlag : 0);
SDL_SetWindowResizable(m_Window, SDL_FALSE);
SDL_SetWindowFullscreen(m_Window, m_FullScreenFlag);
}
else {
// Unconfine the cursor
SDL_SetWindowGrab(m_Window, SDL_FALSE);
#ifdef Q_OS_DARWIN
// SDL on macOS has a bug that causes the window size to be reset to crazy
// large dimensions when exiting out of true fullscreen mode. We can work
// around the issue by manually resetting the position and size here.
if (!fullScreen && m_FullScreenFlag == SDL_WINDOW_FULLSCREEN) {
int x, y, width, height;
getWindowDimensions(x, y, width, height);
SDL_SetWindowSize(m_Window, width, height);
SDL_SetWindowPosition(m_Window, x, y);
SDL_SetWindowFullscreen(m_Window, 0);
SDL_SetWindowResizable(m_Window, SDL_TRUE);
// Reposition the window when the resize is complete
m_PendingWindowedTransition = true;
}
#endif
// Input handler might need to start/stop keyboard grab after changing modes
m_InputHandler->updateKeyboardGrabState();
// Input handler might need stop/stop mouse grab after changing modes
m_InputHandler->updatePointerRegionLock();
}
void Session::notifyMouseEmulationMode(bool enabled)
@@ -1272,6 +1241,11 @@ void Session::flushWindowEvents()
SDL_PushEvent(&flushEvent);
}
bool Session::getAndClearPendingIdrFrameStatus()
{
return SDL_AtomicSet(&m_NeedsIdr, 0);
}
class ExecThread : public QThread
{
public:
@@ -1396,15 +1370,12 @@ void Session::execInternal()
SDL_GL_SetAttribute(SDL_GL_GREEN_SIZE, 8);
SDL_GL_SetAttribute(SDL_GL_BLUE_SIZE, 8);
// We always want a resizable window with High DPI enabled
const Uint32 defaultWindowFlags = SDL_WINDOW_ALLOW_HIGHDPI | SDL_WINDOW_RESIZABLE;
m_Window = SDL_CreateWindow("Moonlight",
x,
y,
width,
height,
defaultWindowFlags | StreamUtils::getPlatformWindowFlags());
SDL_WINDOW_ALLOW_HIGHDPI | StreamUtils::getPlatformWindowFlags());
if (!m_Window) {
SDL_LogWarn(SDL_LOG_CATEGORY_APPLICATION,
"SDL_CreateWindow() failed with platform flags: %s",
@@ -1415,7 +1386,7 @@ void Session::execInternal()
y,
width,
height,
defaultWindowFlags);
SDL_WINDOW_ALLOW_HIGHDPI);
if (!m_Window) {
SDL_LogError(SDL_LOG_CATEGORY_APPLICATION,
"SDL_CreateWindow() failed: %s",
@@ -1429,52 +1400,6 @@ void Session::execInternal()
}
}
// HACK: Remove once proper Dark Mode support lands in SDL
#ifdef Q_OS_WIN32
{
BOOL darkModeEnabled = FALSE;
// Query whether dark mode is enabled for our Qt window (which tracks the OS dark mode state)
QWindowList windows = QGuiApplication::topLevelWindows();
for (const QWindow* window : windows) {
if (SUCCEEDED(DwmGetWindowAttribute((HWND)window->winId(), DWMWA_USE_IMMERSIVE_DARK_MODE, &darkModeEnabled, sizeof(darkModeEnabled))) ||
SUCCEEDED(DwmGetWindowAttribute((HWND)window->winId(), DWMWA_USE_IMMERSIVE_DARK_MODE_OLD, &darkModeEnabled, sizeof(darkModeEnabled)))) {
break;
}
}
SDL_SysWMinfo info;
SDL_VERSION(&info.version);
if (SDL_GetWindowWMInfo(m_Window, &info) && info.subsystem == SDL_SYSWM_WINDOWS) {
RECT clientRect;
HBRUSH blackBrush;
// Draw a black background (otherwise our window will be bright white).
//
// TODO: Remove when SDL does this itself
blackBrush = CreateSolidBrush(0);
GetClientRect(info.info.win.window, &clientRect);
FillRect(info.info.win.hdc, &clientRect, blackBrush);
DeleteObject(blackBrush);
// If dark mode is enabled, propagate that to our SDL window
if (darkModeEnabled) {
if (FAILED(DwmSetWindowAttribute(info.info.win.window, DWMWA_USE_IMMERSIVE_DARK_MODE, &darkModeEnabled, sizeof(darkModeEnabled)))) {
DwmSetWindowAttribute(info.info.win.window, DWMWA_USE_IMMERSIVE_DARK_MODE_OLD, &darkModeEnabled, sizeof(darkModeEnabled));
}
// Toggle non-client rendering off and back on to ensure dark mode takes effect on Windows 10.
// DWM doesn't seem to correctly invalidate the non-client area after enabling dark mode.
DWMNCRENDERINGPOLICY ncPolicy = DWMNCRP_DISABLED;
DwmSetWindowAttribute(info.info.win.window, DWMWA_NCRENDERING_POLICY, &ncPolicy, sizeof(ncPolicy));
ncPolicy = DWMNCRP_ENABLED;
DwmSetWindowAttribute(info.info.win.window, DWMWA_NCRENDERING_POLICY, &ncPolicy, sizeof(ncPolicy));
}
}
}
#endif
m_InputHandler->setWindow(m_Window);
QSvgRenderer svgIconRenderer(QString(":/res/moonlight.svg"));
@@ -1498,32 +1423,27 @@ void Session::execInternal()
}
#endif
// Update the window display mode based on our current monitor
// for if/when we enter full-screen mode.
updateOptimalWindowDisplayMode();
// For non-full screen windows, call getWindowDimensions()
// again after creating a window to allow it to account
// for window chrome size.
if (!m_IsFullScreen) {
getWindowDimensions(x, y, width, height);
// Enter full screen if requested
if (m_IsFullScreen) {
// We must set the size before the position because centering
// won't work unless it knows the final size of the window.
SDL_SetWindowSize(m_Window, width, height);
SDL_SetWindowPosition(m_Window, x, y);
// Passing SDL_WINDOW_RESIZABLE to set this during window
// creation causes our window to be full screen for some reason
SDL_SetWindowResizable(m_Window, SDL_TRUE);
}
else {
// Update the window display mode based on our current monitor
updateOptimalWindowDisplayMode();
// Enter full screen
SDL_SetWindowFullscreen(m_Window, m_FullScreenFlag);
#ifdef Q_OS_WIN32
SDL_SysWMinfo info;
SDL_VERSION(&info.version);
// Draw a black background again after entering full-screen to avoid visual artifacts
// where the old window decorations were before.
//
// TODO: Remove when SDL does this itself
if (SDL_GetWindowWMInfo(m_Window, &info) && info.subsystem == SDL_SYSWM_WINDOWS) {
RECT clientRect;
HBRUSH blackBrush;
blackBrush = CreateSolidBrush(0);
GetClientRect(info.info.win.window, &clientRect);
FillRect(info.info.win.hdc, &clientRect, blackBrush);
DeleteObject(blackBrush);
}
#endif
}
bool needsFirstEnterCapture = false;
@@ -1616,9 +1536,7 @@ void Session::execInternal()
case SDL_USEREVENT:
switch (event.user.code) {
case SDL_CODE_FRAME_READY:
if (m_VideoDecoder != nullptr) {
m_VideoDecoder->renderFrameOnMainThread();
}
m_VideoDecoder->renderFrameOnMainThread();
break;
case SDL_CODE_HIDE_CURSOR:
SDL_ShowCursor(SDL_DISABLE);
@@ -1676,17 +1594,9 @@ void Session::execInternal()
// Check that the window display hasn't changed. If it has, we want
// to recreate the decoder to allow it to adapt to the new display.
// This will allow Pacer to pull the new display refresh rate.
#if SDL_VERSION_ATLEAST(2, 0, 18)
// On SDL 2.0.18+, there's an event for this specific situation
if (event.window.event != SDL_WINDOWEVENT_DISPLAY_CHANGED) {
break;
}
#else
// Prior to SDL 2.0.18, we must check the display index for each window event
if (SDL_GetWindowDisplayIndex(m_Window) == currentDisplayIndex) {
break;
}
#endif
}
#ifdef Q_OS_WIN32
// We can get a resize event after being minimized. Recreating the renderer at that time can cause
@@ -1698,6 +1608,20 @@ void Session::execInternal()
}
#endif
// Complete any repositioning that was deferred until
// the resize from full-screen to windowed had completed.
// If we try to do this immediately, the resize won't take effect
// properly on Windows.
if (m_PendingWindowedTransition) {
m_PendingWindowedTransition = false;
int x, y, width, height;
getWindowDimensions(x, y, width, height);
SDL_SetWindowSize(m_Window, width, height);
SDL_SetWindowPosition(m_Window, x, y);
}
if (m_FlushingWindowEventsRef > 0) {
// Ignore window events for renderer reset if flushing
SDL_LogInfo(SDL_LOG_CATEGORY_APPLICATION,
@@ -1718,12 +1642,6 @@ void Session::execInternal()
case SDL_RENDER_DEVICE_RESET:
case SDL_RENDER_TARGETS_RESET:
if (event.type != SDL_WINDOWEVENT) {
SDL_LogWarn(SDL_LOG_CATEGORY_APPLICATION,
"Recreating renderer by internal request: %d",
event.type);
}
SDL_AtomicLock(&m_DecoderLock);
// Destroy the old decoder
@@ -1736,11 +1654,8 @@ void Session::execInternal()
flushWindowEvents();
// Update the window display mode based on our current monitor
// NB: Avoid a useless modeset by only doing this if it changed.
if (currentDisplayIndex != SDL_GetWindowDisplayIndex(m_Window)) {
currentDisplayIndex = SDL_GetWindowDisplayIndex(m_Window);
updateOptimalWindowDisplayMode();
}
currentDisplayIndex = SDL_GetWindowDisplayIndex(m_Window);
updateOptimalWindowDisplayMode();
// Now that the old decoder is dead, flush any events it may
// have queued to reset itself (if this reset was the result
@@ -1787,7 +1702,7 @@ void Session::execInternal()
}
// Request an IDR frame to complete the reset
LiRequestIdrFrame();
SDL_AtomicSet(&m_NeedsIdr, 1);
// Set HDR mode. We may miss the callback if we're in the middle
// of recreating our decoder at the time the HDR transition happens.
+4
View File
@@ -45,6 +45,8 @@ public:
void flushWindowEvents();
bool getAndClearPendingIdrFrameStatus();
signals:
void stageStarting(QString stage);
@@ -154,12 +156,14 @@ private:
SDL_Window* m_Window;
IVideoDecoder* m_VideoDecoder;
SDL_SpinLock m_DecoderLock;
SDL_atomic_t m_NeedsIdr;
bool m_AudioDisabled;
bool m_AudioMuted;
Uint32 m_FullScreenFlag;
int m_DisplayOriginX;
int m_DisplayOriginY;
bool m_ThreadedExec;
bool m_PendingWindowedTransition;
bool m_UnexpectedTermination;
SdlInputHandler* m_InputHandler;
int m_MouseEmulationRefCount;
+10 -23
View File
@@ -17,16 +17,18 @@ Uint32 StreamUtils::getPlatformWindowFlags()
void StreamUtils::scaleSourceToDestinationSurface(SDL_Rect* src, SDL_Rect* dst)
{
int dstH = SDL_ceilf((float)dst->w * src->h / src->w);
int dstW = SDL_ceilf((float)dst->h * src->w / src->h);
int dstH = dst->w * src->h / src->w;
int dstW = dst->h * src->w / src->h;
if (dstH > dst->h) {
dst->x += (dst->w - dstW) / 2;
dst->w = dstW;
SDL_assert(dst->w * src->h / src->w <= dst->h);
}
else {
dst->y += (dst->h - dstH) / 2;
dst->h = dstH;
SDL_assert(dst->h * src->w / src->h <= dst->w);
}
}
@@ -92,7 +94,7 @@ int StreamUtils::getDisplayRefreshRate(SDL_Window* window)
return mode.refresh_rate;
}
bool StreamUtils::getNativeDesktopMode(int displayIndex, SDL_DisplayMode* mode)
bool StreamUtils::getRealDesktopMode(int displayIndex, SDL_DisplayMode* mode)
{
#ifdef Q_OS_DARWIN
#define MAX_DISPLAYS 16
@@ -136,26 +138,11 @@ bool StreamUtils::getNativeDesktopMode(int displayIndex, SDL_DisplayMode* mode)
}
}
#else
// We need to get the true display resolution without DPI scaling (since we use High DPI).
// Windows returns the real display resolution here, even if DPI scaling is enabled.
// macOS and Wayland report a resolution that includes the DPI scaling factor. Picking
// the first mode on Wayland will get the native resolution without the scaling factor
// (and macOS is handled in the #ifdef above).
if (!strcmp(SDL_GetCurrentVideoDriver(), "wayland")) {
if (SDL_GetDisplayMode(displayIndex, 0, mode) != 0) {
SDL_LogError(SDL_LOG_CATEGORY_APPLICATION,
"SDL_GetDisplayMode() failed: %s",
SDL_GetError());
return false;
}
}
else {
if (SDL_GetDesktopDisplayMode(displayIndex, mode) != 0) {
SDL_LogError(SDL_LOG_CATEGORY_APPLICATION,
"SDL_GetDesktopDisplayMode() failed: %s",
SDL_GetError());
return false;
}
if (SDL_GetDesktopDisplayMode(displayIndex, mode) != 0) {
SDL_LogError(SDL_LOG_CATEGORY_APPLICATION,
"SDL_GetDesktopDisplayMode() failed: %s",
SDL_GetError());
return false;
}
#endif
+1 -1
View File
@@ -29,7 +29,7 @@ public:
void screenSpaceToNormalizedDeviceCoords(SDL_Rect* src, SDL_FRect* dst, int viewportWidth, int viewportHeight);
static
bool getNativeDesktopMode(int displayIndex, SDL_DisplayMode* mode);
bool getRealDesktopMode(int displayIndex, SDL_DisplayMode* mode);
static
int getDisplayRefreshRate(SDL_Window* window);
-2
View File
@@ -55,7 +55,6 @@ typedef struct _DECODER_PARAMETERS {
int frameRate;
bool enableVsync;
bool enableFramePacing;
bool testOnly;
HDR_MASTERING_METADATA hdrMetadata;
} DECODER_PARAMETERS, *PDECODER_PARAMETERS;
@@ -68,7 +67,6 @@ public:
virtual bool isHdrSupported() = 0;
virtual int getDecoderCapabilities() = 0;
virtual int getDecoderColorspace() = 0;
virtual int getDecoderColorRange() = 0;
virtual QSize getDecoderMaxResolution() = 0;
virtual int submitDecodeUnit(PDECODE_UNIT du) = 0;
virtual void renderFrameOnMainThread() = 0;
@@ -57,11 +57,6 @@ bool CUDARenderer::isDirectRenderingSupported()
return false;
}
int CUDARenderer::getDecoderCapabilities()
{
return CAPABILITY_REFERENCE_FRAME_INVALIDATION_HEVC;
}
CUDAGLInteropHelper::CUDAGLInteropHelper(AVHWDeviceContext* context)
: m_Funcs(nullptr),
m_Context((AVCUDADeviceContext*)context->hwctx)
@@ -17,7 +17,6 @@ public:
virtual void renderFrame(AVFrame* frame) override;
virtual bool needsTestFrame() override;
virtual bool isDirectRenderingSupported() override;
virtual int getDecoderCapabilities() override;
private:
AVBufferRef* m_HwContext;
+310 -278
View File
@@ -11,8 +11,6 @@
#include <SDL_syswm.h>
#include <VersionHelpers.h>
#include <dwmapi.h>
#define SAFE_COM_RELEASE(x) if (x) { (x)->Release(); }
typedef struct _VERTEX
@@ -73,21 +71,20 @@ typedef struct _CSC_CONST_BUF
} CSC_CONST_BUF, *PCSC_CONST_BUF;
static_assert(sizeof(CSC_CONST_BUF) % 16 == 0, "Constant buffer sizes must be a multiple of 16");
D3D11VARenderer::D3D11VARenderer(int decoderSelectionPass)
: m_DecoderSelectionPass(decoderSelectionPass),
m_Factory(nullptr),
D3D11VARenderer::D3D11VARenderer()
: m_Factory(nullptr),
m_Device(nullptr),
m_SwapChain(nullptr),
m_DeviceContext(nullptr),
m_RenderTargetView(nullptr),
m_LastColorSpace(-1),
m_LastFullRange(false),
m_LastColorSpace(AVCOL_SPC_UNSPECIFIED),
m_LastColorRange(AVCOL_RANGE_UNSPECIFIED),
m_AllowTearing(false),
m_FrameWaitableObject(nullptr),
m_VideoGenericPixelShader(nullptr),
m_VideoBt601LimPixelShader(nullptr),
m_VideoBt2020LimPixelShader(nullptr),
m_VideoVertexBuffer(nullptr),
m_VideoTexture(nullptr),
m_OverlayLock(0),
m_OverlayPixelShader(nullptr),
m_HwDeviceContext(nullptr),
@@ -99,14 +96,10 @@ D3D11VARenderer::D3D11VARenderer(int decoderSelectionPass)
RtlZeroMemory(m_VideoTextureResourceViews, sizeof(m_VideoTextureResourceViews));
m_ContextLock = SDL_CreateMutex();
DwmEnableMMCSS(TRUE);
}
D3D11VARenderer::~D3D11VARenderer()
{
DwmEnableMMCSS(FALSE);
SDL_DestroyMutex(m_ContextLock);
SAFE_COM_RELEASE(m_VideoVertexBuffer);
@@ -115,11 +108,10 @@ D3D11VARenderer::~D3D11VARenderer()
SAFE_COM_RELEASE(m_VideoGenericPixelShader);
for (int i = 0; i < ARRAYSIZE(m_VideoTextureResourceViews); i++) {
SAFE_COM_RELEASE(m_VideoTextureResourceViews[i]);
SAFE_COM_RELEASE(m_VideoTextureResourceViews[i][0]);
SAFE_COM_RELEASE(m_VideoTextureResourceViews[i][1]);
}
SAFE_COM_RELEASE(m_VideoTexture);
for (int i = 0; i < ARRAYSIZE(m_OverlayVertexBuffers); i++) {
SAFE_COM_RELEASE(m_OverlayVertexBuffers[i]);
}
@@ -135,6 +127,15 @@ D3D11VARenderer::~D3D11VARenderer()
SAFE_COM_RELEASE(m_OverlayPixelShader);
SAFE_COM_RELEASE(m_RenderTargetView);
if (m_FrameWaitableObject != nullptr) {
CloseHandle(m_FrameWaitableObject);
}
if (m_SwapChain != nullptr && !m_Windowed) {
// It's illegal to destroy a full-screen swapchain. Make sure we're in windowed mode.
m_SwapChain->SetFullscreenState(FALSE, nullptr);
}
SAFE_COM_RELEASE(m_SwapChain);
if (m_HwFramesContext != nullptr) {
@@ -153,88 +154,6 @@ D3D11VARenderer::~D3D11VARenderer()
SAFE_COM_RELEASE(m_Factory);
}
bool D3D11VARenderer::createDeviceByAdapterIndex(int adapterIndex, bool* adapterNotFound)
{
bool success = false;
IDXGIAdapter1* adapter = nullptr;
DXGI_ADAPTER_DESC1 adapterDesc;
HRESULT hr;
SDL_assert(m_Device == nullptr);
SDL_assert(m_DeviceContext == nullptr);
hr = m_Factory->EnumAdapters1(adapterIndex, &adapter);
if (hr == DXGI_ERROR_NOT_FOUND) {
// Expected at the end of enumeration
goto Exit;
}
else if (FAILED(hr)) {
SDL_LogError(SDL_LOG_CATEGORY_APPLICATION,
"IDXGIFactory::EnumAdapters1() failed: %x",
hr);
goto Exit;
}
hr = adapter->GetDesc1(&adapterDesc);
if (FAILED(hr)) {
SDL_LogError(SDL_LOG_CATEGORY_APPLICATION,
"IDXGIAdapter::GetDesc() failed: %x",
hr);
goto Exit;
}
if (adapterDesc.Flags & DXGI_ADAPTER_FLAG_SOFTWARE) {
// Skip the WARP device. We know it will fail.
goto Exit;
}
SDL_LogInfo(SDL_LOG_CATEGORY_APPLICATION,
"Detected GPU %d: %S (%x:%x)",
adapterIndex,
adapterDesc.Description,
adapterDesc.VendorId,
adapterDesc.DeviceId);
hr = D3D11CreateDevice(adapter,
D3D_DRIVER_TYPE_UNKNOWN,
nullptr,
D3D11_CREATE_DEVICE_VIDEO_SUPPORT
#ifdef QT_DEBUG
| D3D11_CREATE_DEVICE_DEBUG
#endif
,
nullptr,
0,
D3D11_SDK_VERSION,
&m_Device,
nullptr,
&m_DeviceContext);
if (FAILED(hr)) {
SDL_LogError(SDL_LOG_CATEGORY_APPLICATION,
"D3D11CreateDevice() failed: %x",
hr);
goto Exit;
}
if (!checkDecoderSupport(adapter)) {
m_DeviceContext->Release();
m_DeviceContext = nullptr;
m_Device->Release();
m_Device = nullptr;
goto Exit;
}
success = true;
Exit:
if (adapterNotFound != nullptr) {
*adapterNotFound = (adapter == nullptr);
}
SAFE_COM_RELEASE(adapter);
return success;
}
bool D3D11VARenderer::initialize(PDECODER_PARAMETERS params)
{
int adapterIndex, outputIndex;
@@ -242,14 +161,9 @@ bool D3D11VARenderer::initialize(PDECODER_PARAMETERS params)
m_DecoderParams = *params;
if (qgetenv("D3D11VA_ENABLED") == "0") {
SDL_LogInfo(SDL_LOG_CATEGORY_APPLICATION,
"D3D11VA is disabled by environment variable");
return false;
}
else if (!IsWindows10OrGreater()) {
// Use DXVA2 on anything older than Win10, so we don't have to handle a bunch
// of legacy Win7/Win8 codepaths in here.
// Use DXVA2 on anything older than Win10, so we don't have to handle a bunch
// of legacy Win7/Win8 codepaths in here.
if (!IsWindows10OrGreater()) {
SDL_LogError(SDL_LOG_CATEGORY_APPLICATION,
"D3D11VA renderer is only supported on Windows 10 or later.");
return false;
@@ -271,95 +185,149 @@ bool D3D11VARenderer::initialize(PDECODER_PARAMETERS params)
return false;
}
// First try the adapter corresponding to the display where our window resides.
// This will let us avoid a copy if the display GPU has the required decoder.
if (!createDeviceByAdapterIndex(adapterIndex)) {
// If that didn't work, we'll try all GPUs in order until we find one
// or run out of GPUs (DXGI_ERROR_NOT_FOUND from EnumAdapters())
bool adapterNotFound = false;
for (int i = 0; !adapterNotFound; i++) {
if (i == adapterIndex) {
// Don't try the same GPU again
continue;
}
if (createDeviceByAdapterIndex(i, &adapterNotFound)) {
// This GPU worked! Continue initialization.
break;
}
}
if (adapterNotFound) {
SDL_assert(m_Device == nullptr);
SDL_assert(m_DeviceContext == nullptr);
return false;
}
IDXGIAdapter* adapter;
hr = m_Factory->EnumAdapters(adapterIndex, &adapter);
if (FAILED(hr)) {
SDL_LogError(SDL_LOG_CATEGORY_APPLICATION,
"IDXGIFactory::EnumAdapters() failed: %x",
hr);
return false;
}
hr = D3D11CreateDevice(adapter,
D3D_DRIVER_TYPE_UNKNOWN,
nullptr,
D3D11_CREATE_DEVICE_VIDEO_SUPPORT
#ifdef QT_DEBUG
| D3D11_CREATE_DEVICE_DEBUG
#endif
,
nullptr,
0,
D3D11_SDK_VERSION,
&m_Device,
nullptr,
&m_DeviceContext);
if (FAILED(hr)) {
SDL_LogError(SDL_LOG_CATEGORY_APPLICATION,
"D3D11CreateDevice() failed: %x",
hr);
adapter->Release();
return false;
}
if (!checkDecoderSupport(adapter)) {
adapter->Release();
return false;
}
adapter->Release();
adapter = nullptr;
#if 0
m_Windowed = (SDL_GetWindowFlags(params->window) & SDL_WINDOW_FULLSCREEN_DESKTOP) != SDL_WINDOW_FULLSCREEN;
#else
// Always use windowed or borderless windowed mode for now. SDL does mode-setting for us
// in full-screen exclusive mode, so this actually works out okay.
m_Windowed = true;
#endif
DXGI_SWAP_CHAIN_DESC1 swapChainDesc = {};
swapChainDesc.Stereo = FALSE;
swapChainDesc.SampleDesc.Count = 1;
swapChainDesc.SampleDesc.Quality = 0;
swapChainDesc.BufferUsage = DXGI_USAGE_RENDER_TARGET_OUTPUT;
swapChainDesc.Scaling = DXGI_SCALING_STRETCH;
swapChainDesc.SwapEffect = DXGI_SWAP_EFFECT_FLIP_DISCARD;
swapChainDesc.AlphaMode = DXGI_ALPHA_MODE_UNSPECIFIED;
swapChainDesc.Flags = 0;
// 3 front buffers (default GetMaximumFrameLatency() count)
// + 1 back buffer
// + 1 extra for DWM to hold on to for DirectFlip
//
// Even though we allocate 3 front buffers for pre-rendered frames,
// they won't actually increase presentation latency because we
// always use SyncInterval 0 which replaces the last one.
//
// IDXGIDevice1 has a SetMaximumFrameLatency() function, but counter-
// intuitively we must avoid it to reduce latency. If we set our max
// frame latency to 1 on thedevice, our SyncInterval 0 Present() calls
// will block on DWM (acting like SyncInterval 1) rather than doing
// the non-blocking present we expect.
//
// NB: 3 total buffers seems sufficient on NVIDIA hardware but
// causes performance issues (buffer starvation) on AMD GPUs.
swapChainDesc.BufferCount = 3 + 1 + 1;
// 1 front buffer + 1 back buffer + 1 extra for DWM to hold on to for Flip modes
swapChainDesc.BufferCount = 3;
// Use the current window size as the swapchain size
SDL_GetWindowSize(params->window, (int*)&swapChainDesc.Width, (int*)&swapChainDesc.Height);
DXGI_SWAP_CHAIN_FULLSCREEN_DESC fullScreenDesc = {};
if (m_Windowed) {
// Use the current window size as the swapchain size
SDL_GetWindowSize(params->window, (int*)&swapChainDesc.Width, (int*)&swapChainDesc.Height);
}
else {
// Use the current display mode as the swapchain size
SDL_DisplayMode sdlMode;
if (SDL_GetWindowDisplayMode(params->window, &sdlMode) < 0) {
SDL_LogError(SDL_LOG_CATEGORY_APPLICATION,
"SDL_GetWindowDisplayMode() failed: %s",
SDL_GetError());
return false;
}
swapChainDesc.Width = sdlMode.w;
swapChainDesc.Height = sdlMode.h;
// Leave these unspecified to ensure we don't end up in an inefficient "proxy"
// full-screen swapchain with DXGI doing format conversion behind our backs.
// https://youtu.be/E3wTajGZOsA?t=1489
fullScreenDesc.RefreshRate.Numerator = 0;
fullScreenDesc.RefreshRate.Denominator = 0;
fullScreenDesc.Scaling = DXGI_MODE_SCALING_UNSPECIFIED;
fullScreenDesc.ScanlineOrdering = DXGI_MODE_SCANLINE_ORDER_UNSPECIFIED;
fullScreenDesc.Windowed = FALSE;
}
m_DisplayWidth = swapChainDesc.Width;
m_DisplayHeight = swapChainDesc.Height;
if (params->videoFormat & VIDEO_FORMAT_MASK_10BIT) {
if (params->videoFormat == VIDEO_FORMAT_H265_MAIN10) {
swapChainDesc.Format = DXGI_FORMAT_R10G10B10A2_UNORM;
}
else {
swapChainDesc.Format = DXGI_FORMAT_R8G8B8A8_UNORM;
}
// Use DXGI_SWAP_CHAIN_FLAG_ALLOW_TEARING with flip mode for non-vsync case, if possible.
// NOTE: This is only possible in windowed or borderless windowed mode.
// Use DXGI_SWAP_CHAIN_FLAG_ALLOW_TEARING with flip mode for non-vsync case, if possible
if (!params->enableVsync) {
BOOL allowTearing = FALSE;
hr = m_Factory->CheckFeatureSupport(DXGI_FEATURE_PRESENT_ALLOW_TEARING,
&allowTearing,
sizeof(allowTearing));
if (SUCCEEDED(hr)) {
if (allowTearing) {
// DXGI_PRESENT_ALLOW_TEARING may only be used in windowed mode
if (m_Windowed) {
BOOL allowTearing = FALSE;
hr = m_Factory->CheckFeatureSupport(DXGI_FEATURE_PRESENT_ALLOW_TEARING,
&allowTearing,
sizeof(allowTearing));
if (SUCCEEDED(hr)) {
// Use flip discard with allow tearing mode if possible.
swapChainDesc.Flags |= DXGI_SWAP_CHAIN_FLAG_ALLOW_TEARING;
swapChainDesc.SwapEffect = DXGI_SWAP_EFFECT_FLIP_DISCARD;
m_AllowTearing = true;
}
else {
SDL_LogWarn(SDL_LOG_CATEGORY_APPLICATION,
"OS/GPU doesn't support DXGI_FEATURE_PRESENT_ALLOW_TEARING");
"GPU driver doesn't support DXGI_FEATURE_PRESENT_ALLOW_TEARING");
// Without tearing support, we'll have to use regular discard mode to get tearing
swapChainDesc.SwapEffect = DXGI_SWAP_EFFECT_DISCARD;
}
}
else {
SDL_LogError(SDL_LOG_CATEGORY_APPLICATION,
"IDXGIFactory::CheckFeatureSupport(DXGI_FEATURE_PRESENT_ALLOW_TEARING) failed: %x",
hr);
// Non-fatal
// In full-screen exclusive mode, we'll have to use regular discard mode
swapChainDesc.SwapEffect = DXGI_SWAP_EFFECT_DISCARD;
}
}
else {
// In V-sync mode, we can always use flip discard
swapChainDesc.SwapEffect = DXGI_SWAP_EFFECT_FLIP_DISCARD;
// We'll use a waitable swapchain to ensure we get the lowest possible latency.
// NB: We can only use this option in windowed mode (or borderless fullscreen).
if (m_Windowed) {
// FIXME?: Using a a waitable swapchain in Independent Flip mode causes performance
// issues because the swapchain wait sometimes takes longer than the VBlank interval.
if ((SDL_GetWindowFlags(params->window) & SDL_WINDOW_FULLSCREEN_DESKTOP) != SDL_WINDOW_FULLSCREEN_DESKTOP) {
swapChainDesc.Flags |= DXGI_SWAP_CHAIN_FLAG_FRAME_LATENCY_WAITABLE_OBJECT;
}
else if (qgetenv("D3D11VA_FORCE_WAITABLE_SWAPCHAIN") == "1") {
SDL_LogWarn(SDL_LOG_CATEGORY_APPLICATION,
"Using waitable swapchain in full-screen per environment variable override");
swapChainDesc.Flags |= DXGI_SWAP_CHAIN_FLAG_FRAME_LATENCY_WAITABLE_OBJECT;
}
}
}
@@ -368,13 +336,11 @@ bool D3D11VARenderer::initialize(PDECODER_PARAMETERS params)
SDL_GetWindowWMInfo(params->window, &info);
SDL_assert(info.subsystem == SDL_SYSWM_WINDOWS);
// Always use windowed or borderless windowed mode.. SDL does mode-setting for us in
// full-screen exclusive mode (SDL_WINDOW_FULLSCREEN), so this actually works out okay.
IDXGISwapChain1* swapChain;
hr = m_Factory->CreateSwapChainForHwnd(m_Device,
info.info.win.window,
&swapChainDesc,
nullptr,
m_Windowed ? nullptr : &fullScreenDesc,
nullptr,
&swapChain);
@@ -454,18 +420,19 @@ bool D3D11VARenderer::initialize(PDECODER_PARAMETERS params)
// We require NV12 or P010 textures for our shader
framesContext->format = AV_PIX_FMT_D3D11;
framesContext->sw_format = (params->videoFormat & VIDEO_FORMAT_MASK_10BIT) ?
framesContext->sw_format = params->videoFormat == VIDEO_FORMAT_H265_MAIN10 ?
AV_PIX_FMT_P010 : AV_PIX_FMT_NV12;
framesContext->width = FFALIGN(params->width, m_TextureAlignment);
framesContext->height = FFALIGN(params->height, m_TextureAlignment);
// We can have up to 16 reference frames plus a working surface
framesContext->initial_pool_size = 17;
framesContext->initial_pool_size = DECODER_BUFFER_POOL_SIZE;
AVD3D11VAFramesContext* d3d11vaFramesContext = (AVD3D11VAFramesContext*)framesContext->hwctx;
d3d11vaFramesContext->BindFlags = D3D11_BIND_DECODER;
// We need to override the default D3D11VA bind flags to bind the textures as a shader resources
d3d11vaFramesContext->BindFlags = D3D11_BIND_DECODER | D3D11_BIND_SHADER_RESOURCE;
int err = av_hwframe_ctx_init(m_HwFramesContext);
if (err < 0) {
@@ -475,8 +442,50 @@ bool D3D11VARenderer::initialize(PDECODER_PARAMETERS params)
return false;
}
// Create our video texture and SRVs
if (!setupVideoTexture()) {
// Create SRVs for all textures in the decoder pool
if (!setupTexturePoolViews(d3d11vaFramesContext)) {
return false;
}
}
// We have to set the maximum frame latency on waitable swapchains.
if (swapChainDesc.Flags & DXGI_SWAP_CHAIN_FLAG_FRAME_LATENCY_WAITABLE_OBJECT) {
SDL_assert(params->enableVsync);
SDL_assert(m_Windowed);
// We only want one buffered frame on our waitable swapchain
hr = m_SwapChain->SetMaximumFrameLatency(1);
if (FAILED(hr)) {
SDL_LogError(SDL_LOG_CATEGORY_APPLICATION,
"IDXGISwapChain::SetMaximumFrameLatency() failed: %x",
hr);
return false;
}
m_FrameWaitableObject = m_SwapChain->GetFrameLatencyWaitableObject();
SDL_assert(m_FrameWaitableObject != nullptr);
}
else {
IDXGIDevice1* dxgiDevice;
hr = m_Device->QueryInterface(__uuidof(IDXGIDevice1), (void **)&dxgiDevice);
if (FAILED(hr)) {
SDL_LogError(SDL_LOG_CATEGORY_APPLICATION,
"ID3D11Device::QueryInterface(IDXGIDevice1) failed: %x",
hr);
return false;
}
// For the non-vsync case, we won't have a waitable swapchain,
// so we must use IDXGIDevice1::SetMaximumFrameLatency() instead.
hr = dxgiDevice->SetMaximumFrameLatency(1);
dxgiDevice->Release();
if (FAILED(hr)) {
SDL_LogError(SDL_LOG_CATEGORY_APPLICATION,
"IDXGIDevice1::SetMaximumFrameLatency() failed: %x",
hr);
return false;
}
}
@@ -569,6 +578,22 @@ void D3D11VARenderer::setHdrMode(bool enabled)
unlockContext(this);
}
void D3D11VARenderer::waitToRender()
{
if (m_FrameWaitableObject != nullptr) {
SDL_assert(m_Windowed);
SDL_assert(m_DecoderParams.enableVsync);
// Wait for the pipeline to be ready for the next frame in V-Sync mode.
//
// This callback happens before selecting the next frame to render, so
// we can wait for the previous frame to finish prior to picking the
// next one to display. This reduces the effective display latency
// by ensuring we always render the most recent frame immediately.
WaitForSingleObjectEx(m_FrameWaitableObject, 500, FALSE);
}
}
void D3D11VARenderer::renderFrame(AVFrame* frame)
{
// Acquire the context lock for rendering to prevent concurrent
@@ -592,23 +617,55 @@ void D3D11VARenderer::renderFrame(AVFrame* frame)
}
UINT flags;
UINT syncInterval;
if (m_AllowTearing) {
SDL_assert(!m_DecoderParams.enableVsync);
SDL_assert(m_Windowed);
// If tearing is allowed, use DXGI_PRESENT_ALLOW_TEARING with syncInterval 0.
// It is not valid to use any other syncInterval values in tearing mode.
syncInterval = 0;
flags = DXGI_PRESENT_ALLOW_TEARING;
}
else {
// Otherwise, we'll submit as fast as possible and DWM will discard excess
// frames for us. If frame pacing is also enabled or we're in full-screen,
// our Vsync source will keep us in sync with VBlank.
else if (!m_DecoderParams.enableVsync) {
// In any other non-vsync mode, just render with syncInterval 0.
// We'll probably have a non-flip swapchain here.
syncInterval = 0;
flags = 0;
}
else if (m_FrameWaitableObject != nullptr) {
SDL_assert(m_Windowed);
SDL_assert(m_DecoderParams.enableVsync);
// Present according to the decoder parameters
HRESULT hr = m_SwapChain->Present(0, flags);
// In windowed mode, we'll have a waitable swapchain, so we can
// use syncInterval 0 and the wait will sync us with VBlank.
syncInterval = 0;
flags = 0;
}
else {
SDL_assert(m_DecoderParams.enableVsync);
SDL_assert(m_FrameWaitableObject == nullptr);
// In full-screen mode, we won't have waitable swapchain.
// We'll use syncInterval 1 to synchronize with VBlank and pass
// DXGI_PRESENT_DO_NOT_WAIT for our flags to avoid blocking any
// concurrent decoding operations in flight.
syncInterval = 1;
flags = DXGI_PRESENT_DO_NOT_WAIT;
}
HRESULT hr;
do {
// Present according to the decoder parameters
hr = m_SwapChain->Present(syncInterval, flags);
if (hr == DXGI_ERROR_WAS_STILL_DRAWING) {
// Unlock the context while we wait to try again
unlockContext(this);
SDL_Delay(1);
lockContext(this);
}
} while (hr == DXGI_ERROR_WAS_STILL_DRAWING);
// Release the context lock
unlockContext(this);
@@ -674,14 +731,11 @@ void D3D11VARenderer::renderOverlay(Overlay::OverlayType type)
void D3D11VARenderer::bindColorConversion(AVFrame* frame)
{
bool fullRange = isFrameFullRange(frame);
int colorspace = getFrameColorspace(frame);
// We have purpose-built shaders for the common Rec 601 (SDR) and Rec 2020 (HDR) cases
if (!fullRange && colorspace == COLORSPACE_REC_601) {
if (frame->color_range == AVCOL_RANGE_MPEG && frame->colorspace == AVCOL_SPC_SMPTE170M) {
m_DeviceContext->PSSetShader(m_VideoBt601LimPixelShader, nullptr, 0);
}
else if (!fullRange && colorspace == COLORSPACE_REC_2020) {
else if (frame->color_range == AVCOL_RANGE_MPEG && frame->colorspace == AVCOL_SPC_BT2020_NCL) {
m_DeviceContext->PSSetShader(m_VideoBt2020LimPixelShader, nullptr, 0);
}
else {
@@ -689,14 +743,14 @@ void D3D11VARenderer::bindColorConversion(AVFrame* frame)
m_DeviceContext->PSSetShader(m_VideoGenericPixelShader, nullptr, 0);
// If nothing has changed since last frame, we're done
if (colorspace == m_LastColorSpace && fullRange == m_LastFullRange) {
if (frame->colorspace == m_LastColorSpace && frame->color_range == m_LastColorRange) {
return;
}
SDL_LogWarn(SDL_LOG_CATEGORY_APPLICATION,
"Falling back to generic video pixel shader for %d (%s range)",
colorspace,
fullRange ? "full" : "limited");
"Falling back to generic video pixel shader for %d:%d",
frame->colorspace,
frame->color_range);
D3D11_BUFFER_DESC constDesc = {};
constDesc.ByteWidth = sizeof(CSC_CONST_BUF);
@@ -705,16 +759,22 @@ void D3D11VARenderer::bindColorConversion(AVFrame* frame)
constDesc.CPUAccessFlags = 0;
constDesc.MiscFlags = 0;
// This handles the case where the color range is unknown,
// so that we use Limited color range which is the default
// behavior for Moonlight.
CSC_CONST_BUF constBuf = {};
bool fullRange = (frame->color_range == AVCOL_RANGE_JPEG);
const float* rawCscMatrix;
switch (colorspace) {
case COLORSPACE_REC_601:
switch (frame->colorspace) {
case AVCOL_SPC_SMPTE170M:
case AVCOL_SPC_BT470BG:
rawCscMatrix = fullRange ? k_CscMatrix_Bt601Full : k_CscMatrix_Bt601Lim;
break;
case COLORSPACE_REC_709:
case AVCOL_SPC_BT709:
rawCscMatrix = fullRange ? k_CscMatrix_Bt709Full : k_CscMatrix_Bt709Lim;
break;
case COLORSPACE_REC_2020:
case AVCOL_SPC_BT2020_NCL:
case AVCOL_SPC_BT2020_CL:
rawCscMatrix = fullRange ? k_CscMatrix_Bt2020Full : k_CscMatrix_Bt2020Lim;
break;
default:
@@ -753,8 +813,8 @@ void D3D11VARenderer::bindColorConversion(AVFrame* frame)
}
}
m_LastColorSpace = colorspace;
m_LastFullRange = fullRange;
m_LastColorSpace = frame->colorspace;
m_LastColorRange = frame->color_range;
}
void D3D11VARenderer::renderVideo(AVFrame* frame)
@@ -764,21 +824,22 @@ void D3D11VARenderer::renderVideo(AVFrame* frame)
UINT offset = 0;
m_DeviceContext->IASetVertexBuffers(0, 1, &m_VideoVertexBuffer, &stride, &offset);
// Copy this frame (minus alignment padding) into our video texture
D3D11_BOX srcBox;
srcBox.left = 0;
srcBox.top = 0;
srcBox.right = m_DecoderParams.width;
srcBox.bottom = m_DecoderParams.height;
srcBox.front = 0;
srcBox.back = 1;
m_DeviceContext->CopySubresourceRegion(m_VideoTexture, 0, 0, 0, 0, (ID3D11Resource*)frame->data[0], (int)(intptr_t)frame->data[1], &srcBox);
// Our indexing logic depends on a direct mapping into m_VideoTextureResourceViews
// based on the texture index provided by FFmpeg.
UINT textureIndex = (uintptr_t)frame->data[1];
SDL_assert(textureIndex < DECODER_BUFFER_POOL_SIZE);
if (textureIndex >= DECODER_BUFFER_POOL_SIZE) {
SDL_LogError(SDL_LOG_CATEGORY_APPLICATION,
"Unexpected texture index: %u",
textureIndex);
return;
}
// Bind our CSC shader (and constant buffer, if required)
bindColorConversion(frame);
// Bind SRVs for this frame
m_DeviceContext->PSSetShaderResources(0, 2, m_VideoTextureResourceViews);
m_DeviceContext->PSSetShaderResources(0, 2, m_VideoTextureResourceViews[textureIndex]);
// Draw the video
m_DeviceContext->DrawIndexed(6, 0, 0);
@@ -819,7 +880,6 @@ void D3D11VARenderer::notifyOverlayUpdated(Overlay::OverlayType type)
// Create a texture with our pixel data
SDL_assert(!SDL_MUSTLOCK(newSurface));
SDL_assert(newSurface->format->format == SDL_PIXELFORMAT_ARGB8888);
D3D11_TEXTURE2D_DESC texDesc = {};
texDesc.Width = newSurface->w;
@@ -999,6 +1059,12 @@ bool D3D11VARenderer::checkDecoderSupport(IDXGIAdapter* adapter)
return false;
}
SDL_LogInfo(SDL_LOG_CATEGORY_APPLICATION,
"Detected GPU: %S (%x:%x)",
adapterDesc.Description,
adapterDesc.VendorId,
adapterDesc.DeviceId);
if (DXUtil::isFormatHybridDecodedByHardware(m_DecoderParams.videoFormat, adapterDesc.VendorId, adapterDesc.DeviceId)) {
SDL_LogInfo(SDL_LOG_CATEGORY_APPLICATION,
"GPU decoding for format %x is blocked due to hardware limitations",
@@ -1011,34 +1077,8 @@ bool D3D11VARenderer::checkDecoderSupport(IDXGIAdapter* adapter)
int D3D11VARenderer::getRendererAttributes()
{
int attributes = 0;
// This renderer supports HDR
attributes |= RENDERER_ATTRIBUTE_HDR_SUPPORT;
// This renderer requires frame pacing to synchronize with VBlank when we're in full-screen.
// In windowed mode, we will render as fast we can and DWM will grab whatever is latest at the
// time unless the user opts for pacing. We will use pacing in full-screen mode and normal DWM
// sequencing in full-screen desktop mode to behave similarly to the DXVA2 renderer.
if ((SDL_GetWindowFlags(m_DecoderParams.window) & SDL_WINDOW_FULLSCREEN_DESKTOP) == SDL_WINDOW_FULLSCREEN) {
attributes |= RENDERER_ATTRIBUTE_FORCE_PACING;
}
return attributes;
}
int D3D11VARenderer::getDecoderCapabilities()
{
return CAPABILITY_REFERENCE_FRAME_INVALIDATION_HEVC;
}
bool D3D11VARenderer::needsTestFrame()
{
// We can usually determine when D3D11VA will work based on which decoder GUIDs are supported,
// however there are some strange cases (Quadro P400 + Radeon HD 5570) where something goes
// horribly wrong and D3D11VideoDevice::CreateVideoDecoder() fails inside FFmpeg. We need to
// catch that case before we commit to using D3D11VA.
return true;
return RENDERER_ATTRIBUTE_HDR_SUPPORT;
}
void D3D11VARenderer::lockContext(void *lock_ctx)
@@ -1238,12 +1278,17 @@ bool D3D11VARenderer::setupRenderingResources()
SDL_FRect renderRect;
StreamUtils::screenSpaceToNormalizedDeviceCoords(&dst, &renderRect, m_DisplayWidth, m_DisplayHeight);
// Don't sample from the alignment padding area since that's not part of the video
SDL_assert(m_TextureAlignment != 0);
float uMax = (float)m_DecoderParams.width / FFALIGN(m_DecoderParams.width, m_TextureAlignment);
float vMax = (float)m_DecoderParams.height / FFALIGN(m_DecoderParams.height, m_TextureAlignment);
VERTEX verts[] =
{
{renderRect.x, renderRect.y, 0, 1.0f},
{renderRect.x, renderRect.y, 0, vMax},
{renderRect.x, renderRect.y+renderRect.h, 0, 0},
{renderRect.x+renderRect.w, renderRect.y, 1.0f, 1.0f},
{renderRect.x+renderRect.w, renderRect.y+renderRect.h, 1.0f, 0},
{renderRect.x+renderRect.w, renderRect.y, uMax, vMax},
{renderRect.x+renderRect.w, renderRect.y+renderRect.h, uMax, 0},
};
D3D11_BUFFER_DESC vbDesc = {};
@@ -1311,55 +1356,42 @@ bool D3D11VARenderer::setupRenderingResources()
return true;
}
bool D3D11VARenderer::setupVideoTexture()
bool D3D11VARenderer::setupTexturePoolViews(AVD3D11VAFramesContext* frameContext)
{
HRESULT hr;
D3D11_TEXTURE2D_DESC texDesc = {};
texDesc.Width = m_DecoderParams.width;
texDesc.Height = m_DecoderParams.height;
texDesc.MipLevels = 1;
texDesc.ArraySize = 1;
texDesc.Format = (m_DecoderParams.videoFormat & VIDEO_FORMAT_MASK_10BIT) ? DXGI_FORMAT_P010 : DXGI_FORMAT_NV12;
texDesc.SampleDesc.Quality = 0;
texDesc.SampleDesc.Count = 1;
texDesc.Usage = D3D11_USAGE_DEFAULT;
texDesc.BindFlags = D3D11_BIND_SHADER_RESOURCE;
texDesc.CPUAccessFlags = 0;
texDesc.MiscFlags = 0;
hr = m_Device->CreateTexture2D(&texDesc, nullptr, &m_VideoTexture);
if (FAILED(hr)) {
m_VideoTexture = nullptr;
SDL_LogError(SDL_LOG_CATEGORY_APPLICATION,
"ID3D11Device::CreateTexture2D() failed: %x",
hr);
return false;
}
// Create luminance and chrominance SRVs for each plane of the texture
D3D11_SHADER_RESOURCE_VIEW_DESC srvDesc = {};
srvDesc.ViewDimension = D3D11_SRV_DIMENSION_TEXTURE2D;
srvDesc.Texture2D.MostDetailedMip = 0;
srvDesc.Texture2D.MipLevels = 1;
srvDesc.Format = (m_DecoderParams.videoFormat & VIDEO_FORMAT_MASK_10BIT) ? DXGI_FORMAT_R16_UNORM : DXGI_FORMAT_R8_UNORM;
hr = m_Device->CreateShaderResourceView(m_VideoTexture, &srvDesc, &m_VideoTextureResourceViews[0]);
if (FAILED(hr)) {
m_VideoTextureResourceViews[0] = nullptr;
SDL_LogError(SDL_LOG_CATEGORY_APPLICATION,
"ID3D11Device::CreateShaderResourceView() failed: %x",
hr);
return false;
}
srvDesc.ViewDimension = D3D11_SRV_DIMENSION_TEXTURE2DARRAY;
srvDesc.Texture2DArray.MostDetailedMip = 0;
srvDesc.Texture2DArray.MipLevels = 1;
srvDesc.Texture2DArray.ArraySize = 1;
srvDesc.Format = (m_DecoderParams.videoFormat & VIDEO_FORMAT_MASK_10BIT) ? DXGI_FORMAT_R16G16_UNORM : DXGI_FORMAT_R8G8_UNORM;
hr = m_Device->CreateShaderResourceView(m_VideoTexture, &srvDesc, &m_VideoTextureResourceViews[1]);
if (FAILED(hr)) {
m_VideoTextureResourceViews[1] = nullptr;
SDL_LogError(SDL_LOG_CATEGORY_APPLICATION,
"ID3D11Device::CreateShaderResourceView() failed: %x",
hr);
return false;
// Create luminance and chrominance SRVs for each texture in the pool
for (int i = 0; i < DECODER_BUFFER_POOL_SIZE; i++) {
HRESULT hr;
// Our rendering logic depends on the texture index working to map into our SRV array
SDL_assert(i == frameContext->texture_infos[i].index);
srvDesc.Texture2DArray.FirstArraySlice = frameContext->texture_infos[i].index;
srvDesc.Format = m_DecoderParams.videoFormat == VIDEO_FORMAT_H265_MAIN10 ? DXGI_FORMAT_R16_UNORM : DXGI_FORMAT_R8_UNORM;
hr = m_Device->CreateShaderResourceView(frameContext->texture_infos[i].texture, &srvDesc, &m_VideoTextureResourceViews[i][0]);
if (FAILED(hr)) {
m_VideoTextureResourceViews[i][0] = nullptr;
SDL_LogError(SDL_LOG_CATEGORY_APPLICATION,
"ID3D11Device::CreateShaderResourceView() failed: %x",
hr);
return false;
}
srvDesc.Format = m_DecoderParams.videoFormat == VIDEO_FORMAT_H265_MAIN10 ? DXGI_FORMAT_R16G16_UNORM : DXGI_FORMAT_R8G8_UNORM;
hr = m_Device->CreateShaderResourceView(frameContext->texture_infos[i].texture, &srvDesc, &m_VideoTextureResourceViews[i][1]);
if (FAILED(hr)) {
m_VideoTextureResourceViews[i][1] = nullptr;
SDL_LogError(SDL_LOG_CATEGORY_APPLICATION,
"ID3D11Device::CreateShaderResourceView() failed: %x",
hr);
return false;
}
}
return true;
+9 -11
View File
@@ -13,31 +13,27 @@ extern "C" {
class D3D11VARenderer : public IFFmpegRenderer
{
public:
D3D11VARenderer(int decoderSelectionPass);
D3D11VARenderer();
virtual ~D3D11VARenderer() override;
virtual bool initialize(PDECODER_PARAMETERS params) override;
virtual bool prepareDecoderContext(AVCodecContext* context, AVDictionary**) override;
virtual bool prepareDecoderContextInGetFormat(AVCodecContext* context, AVPixelFormat pixelFormat) override;
virtual void renderFrame(AVFrame* frame) override;
virtual void waitToRender() override;
virtual void notifyOverlayUpdated(Overlay::OverlayType) override;
virtual void setHdrMode(bool enabled) override;
virtual int getRendererAttributes() override;
virtual int getDecoderCapabilities() override;
virtual bool needsTestFrame() override;
private:
static void lockContext(void* lock_ctx);
static void unlockContext(void* lock_ctx);
bool setupRenderingResources();
bool setupVideoTexture();
bool setupTexturePoolViews(AVD3D11VAFramesContext* frameContext);
void renderOverlay(Overlay::OverlayType type);
void bindColorConversion(AVFrame* frame);
void renderVideo(AVFrame* frame);
bool checkDecoderSupport(IDXGIAdapter* adapter);
bool createDeviceByAdapterIndex(int adapterIndex, bool* adapterNotFound = nullptr);
int m_DecoderSelectionPass;
IDXGIFactory5* m_Factory;
ID3D11Device* m_Device;
@@ -50,18 +46,20 @@ private:
int m_TextureAlignment;
int m_DisplayWidth;
int m_DisplayHeight;
int m_LastColorSpace;
bool m_LastFullRange;
bool m_Windowed;
AVColorSpace m_LastColorSpace;
AVColorRange m_LastColorRange;
bool m_AllowTearing;
HANDLE m_FrameWaitableObject;
ID3D11PixelShader* m_VideoGenericPixelShader;
ID3D11PixelShader* m_VideoBt601LimPixelShader;
ID3D11PixelShader* m_VideoBt2020LimPixelShader;
ID3D11Buffer* m_VideoVertexBuffer;
ID3D11Texture2D* m_VideoTexture;
ID3D11ShaderResourceView* m_VideoTextureResourceViews[2];
#define DECODER_BUFFER_POOL_SIZE 17
ID3D11ShaderResourceView* m_VideoTextureResourceViews[DECODER_BUFFER_POOL_SIZE][2];
SDL_SpinLock m_OverlayLock;
ID3D11Buffer* m_OverlayVertexBuffers[Overlay::OverlayMax];
+53 -84
View File
@@ -29,15 +29,8 @@ extern "C" {
#include <Limelight.h>
// HACK: Avoid including X11 headers which conflict with QDir
#ifdef SDL_VIDEO_DRIVER_X11
#undef SDL_VIDEO_DRIVER_X11
#endif
#include <SDL_syswm.h>
#include <QDir>
DrmRenderer::DrmRenderer(IFFmpegRenderer *backendRenderer)
: m_BackendRenderer(backendRenderer),
m_HwContext(nullptr),
@@ -50,8 +43,8 @@ DrmRenderer::DrmRenderer(IFFmpegRenderer *backendRenderer)
m_CrtcId(0),
m_PlaneId(0),
m_CurrentFbId(0),
m_LastFullRange(false),
m_LastColorSpace(-1),
m_LastColorRange(AVCOL_RANGE_UNSPECIFIED),
m_LastColorSpace(AVCOL_SPC_UNSPECIFIED),
m_ColorEncodingProp(nullptr),
m_ColorRangeProp(nullptr),
m_HdrOutputMetadataProp(nullptr),
@@ -118,7 +111,7 @@ bool DrmRenderer::initialize(PDECODER_PARAMETERS params)
{
int i;
m_Main10Hdr = (params->videoFormat & VIDEO_FORMAT_MASK_10BIT);
m_Main10Hdr = (params->videoFormat == VIDEO_FORMAT_H265_MAIN10);
#if SDL_VERSION_ATLEAST(2, 0, 15)
SDL_SysWMinfo info;
@@ -152,36 +145,17 @@ bool DrmRenderer::initialize(PDECODER_PARAMETERS params)
m_DrmFd = open(userDevice, O_RDWR | O_CLOEXEC);
}
else {
QDir driDir("/dev/dri");
const char* defaultDevices[] = {"/dev/dri/renderD128", "/dev/dri/card0"};
// We have to explicitly ask for devices to be returned
driDir.setFilter(QDir::Files | QDir::System);
// Try a render node first since we aren't using DRM for output in this codepath
for (QFileInfo& node : driDir.entryInfoList(QStringList("renderD*"))) {
QByteArray absolutePath = node.absoluteFilePath().toUtf8();
m_DrmFd = open(absolutePath.constData(), O_RDWR | O_CLOEXEC);
for (unsigned int i = 0; i < SDL_arraysize(defaultDevices); i++) {
m_DrmFd = open(defaultDevices[i], O_RDWR | O_CLOEXEC);
if (m_DrmFd >= 0) {
SDL_LogInfo(SDL_LOG_CATEGORY_APPLICATION,
"Opened DRM render node: %s",
absolutePath.constData());
"Opened DRM device: %s",
defaultDevices[i]);
break;
}
}
// If that fails, try to use a primary node and hope for the best
if (m_DrmFd < 0) {
for (QFileInfo& node : driDir.entryInfoList(QStringList("card*"))) {
QByteArray absolutePath = node.absoluteFilePath().toUtf8();
m_DrmFd = open(absolutePath.constData(), O_RDWR | O_CLOEXEC);
if (m_DrmFd >= 0) {
SDL_LogInfo(SDL_LOG_CATEGORY_APPLICATION,
"Opened DRM primary node: %s",
absolutePath.constData());
break;
}
}
}
}
if (m_DrmFd < 0) {
@@ -232,25 +206,6 @@ bool DrmRenderer::initialize(PDECODER_PARAMETERS params)
return DIRECT_RENDERING_INIT_FAILED;
}
if (!params->testOnly) {
// Create a dummy renderer to force SDL to complete the modesetting
// operation that the KMSDRM backend keeps pending until the next
// time we swap buffers. We have to do this before we enumerate
// CRTC modes below.
SDL_Renderer* renderer = SDL_CreateRenderer(params->window, -1, SDL_RENDERER_SOFTWARE);
if (renderer != nullptr) {
SDL_SetRenderDrawColor(renderer, 0, 0, 0, SDL_ALPHA_OPAQUE);
SDL_RenderClear(renderer);
SDL_RenderPresent(renderer);
SDL_DestroyRenderer(renderer);
}
else {
SDL_LogError(SDL_LOG_CATEGORY_APPLICATION,
"SDL_CreateRenderer() failed: %s",
SDL_GetError());
}
}
drmModeRes* resources = drmModeGetResources(m_DrmFd);
if (resources == nullptr) {
SDL_LogError(SDL_LOG_CATEGORY_APPLICATION,
@@ -488,9 +443,6 @@ int DrmRenderer::getRendererAttributes()
// This renderer supports HDR
attributes |= RENDERER_ATTRIBUTE_HDR_SUPPORT;
// This renderer does not buffer any frames in the graphics pipeline
attributes |= RENDERER_ATTRIBUTE_NO_BUFFERING;
return attributes;
}
@@ -608,12 +560,7 @@ void DrmRenderer::renderFrame(AVFrame* frame)
return;
}
int colorspace = getFrameColorspace(frame);
bool fullRange = isFrameFullRange(frame);
// We also update the color range when the colorspace changes in order to handle initialization
// where the last color range value may not actual be applied to the plane.
if (fullRange != m_LastFullRange || colorspace != m_LastColorSpace) {
if (frame->color_range != m_LastColorRange) {
const char* desiredValue = getDrmColorRangeValue(frame);
if (m_ColorRangeProp != nullptr && desiredValue != nullptr) {
@@ -652,10 +599,10 @@ void DrmRenderer::renderFrame(AVFrame* frame)
"COLOR_RANGE property does not exist on output plane. Colors may be inaccurate!");
}
m_LastFullRange = fullRange;
m_LastColorRange = frame->color_range;
}
if (colorspace != m_LastColorSpace) {
if (frame->colorspace != m_LastColorSpace) {
const char* desiredValue = getDrmColorEncodingValue(frame);
if (m_ColorEncodingProp != nullptr && desiredValue != nullptr) {
@@ -694,7 +641,7 @@ void DrmRenderer::renderFrame(AVFrame* frame)
"COLOR_ENCODING property does not exist on output plane. Colors may be inaccurate!");
}
m_LastColorSpace = colorspace;
m_LastColorSpace = frame->colorspace;
}
// Update the overlay
@@ -750,12 +697,12 @@ bool DrmRenderer::isDirectRenderingSupported()
const char* DrmRenderer::getDrmColorEncodingValue(AVFrame* frame)
{
switch (getFrameColorspace(frame)) {
case COLORSPACE_REC_601:
switch (frame->colorspace) {
case AVCOL_SPC_SMPTE170M:
return "ITU-R BT.601 YCbCr";
case COLORSPACE_REC_709:
case AVCOL_SPC_BT709:
return "ITU-R BT.709 YCbCr";
case COLORSPACE_REC_2020:
case AVCOL_SPC_BT2020_NCL:
return "ITU-R BT.2020 YCbCr";
default:
return NULL;
@@ -764,7 +711,14 @@ const char* DrmRenderer::getDrmColorEncodingValue(AVFrame* frame)
const char* DrmRenderer::getDrmColorRangeValue(AVFrame* frame)
{
return isFrameFullRange(frame) ? "YCbCr full range" : "YCbCr limited range";
switch (frame->color_range) {
case AVCOL_RANGE_MPEG:
return "YCbCr limited range";
case AVCOL_RANGE_JPEG:
return "YCbCr full range";
default:
return NULL;
}
}
#ifdef HAVE_EGL
@@ -910,25 +864,40 @@ ssize_t DrmRenderer::exportEGLImages(AVFrame *frame, EGLDisplay dpy,
}
}
// Add colorspace metadata
switch (getFrameColorspace(frame)) {
case COLORSPACE_REC_601:
attribs[attribIndex++] = EGL_YUV_COLOR_SPACE_HINT_EXT;
attribs[attribIndex++] = EGL_ITU_REC601_EXT;
break;
case COLORSPACE_REC_709:
attribs[attribIndex++] = EGL_YUV_COLOR_SPACE_HINT_EXT;
attribs[attribIndex++] = EGL_ITU_REC709_EXT;
break;
case COLORSPACE_REC_2020:
// Add colorspace data if present
switch (frame->colorspace) {
case AVCOL_SPC_BT2020_CL:
case AVCOL_SPC_BT2020_NCL:
attribs[attribIndex++] = EGL_YUV_COLOR_SPACE_HINT_EXT;
attribs[attribIndex++] = EGL_ITU_REC2020_EXT;
break;
case AVCOL_SPC_SMPTE170M:
case AVCOL_SPC_BT470BG:
case AVCOL_SPC_FCC:
attribs[attribIndex++] = EGL_YUV_COLOR_SPACE_HINT_EXT;
attribs[attribIndex++] = EGL_ITU_REC601_EXT;
break;
case AVCOL_SPC_BT709:
attribs[attribIndex++] = EGL_YUV_COLOR_SPACE_HINT_EXT;
attribs[attribIndex++] = EGL_ITU_REC709_EXT;
break;
default:
break;
}
// Add color range metadata
attribs[attribIndex++] = EGL_SAMPLE_RANGE_HINT_EXT;
attribs[attribIndex++] = isFrameFullRange(frame) ? EGL_YUV_FULL_RANGE_EXT : EGL_YUV_NARROW_RANGE_EXT;
// Add color range data if present
switch (frame->color_range) {
case AVCOL_RANGE_JPEG:
attribs[attribIndex++] = EGL_SAMPLE_RANGE_HINT_EXT;
attribs[attribIndex++] = EGL_YUV_FULL_RANGE_EXT;
break;
case AVCOL_RANGE_MPEG:
attribs[attribIndex++] = EGL_SAMPLE_RANGE_HINT_EXT;
attribs[attribIndex++] = EGL_YUV_NARROW_RANGE_EXT;
break;
default:
break;
}
// Terminate the attribute list
attribs[attribIndex++] = EGL_NONE;
+2 -2
View File
@@ -78,8 +78,8 @@ private:
uint32_t m_CrtcId;
uint32_t m_PlaneId;
uint32_t m_CurrentFbId;
bool m_LastFullRange;
int m_LastColorSpace;
AVColorRange m_LastColorRange;
AVColorSpace m_LastColorSpace;
drmModePropertyPtr m_ColorEncodingProp;
drmModePropertyPtr m_ColorRangeProp;
drmModePropertyPtr m_HdrOutputMetadataProp;
+56 -75
View File
@@ -28,8 +28,7 @@ typedef struct _VERTEX
float tu, tv;
} VERTEX, *PVERTEX;
DXVA2Renderer::DXVA2Renderer(int decoderSelectionPass) :
m_DecoderSelectionPass(decoderSelectionPass),
DXVA2Renderer::DXVA2Renderer() :
m_DecService(nullptr),
m_Decoder(nullptr),
m_SurfacesUsed(0),
@@ -435,13 +434,6 @@ bool DXVA2Renderer::initializeDeviceQuirks()
// For other GPUs, we'll avoid populating it as was our previous behavior.
m_DeviceQuirks |= DXVA2_QUIRK_SET_DEST_FORMAT;
}
// Tag this display device if it has a WDDM 2.0+ driver for the decoder selection logic
if (HIWORD(id.DriverVersion.HighPart) >= 20) {
SDL_LogInfo(SDL_LOG_CATEGORY_APPLICATION,
"Detected WDDM 2.0 or later display driver");
m_DeviceQuirks |= DXVA2_QUIRK_WDDM_20_PLUS;
}
}
return true;
@@ -567,7 +559,7 @@ bool DXVA2Renderer::initializeDevice(SDL_Window* window, bool enableVsync)
d3dpp.hDeviceWindow = info.info.win.window;
d3dpp.Flags = D3DPRESENTFLAG_VIDEO;
if (m_VideoFormat & VIDEO_FORMAT_MASK_10BIT) {
if (m_VideoFormat == VIDEO_FORMAT_H265_MAIN10) {
// Verify 10-bit A2R10G10B10 color support. This is only available
// as a display format in full-screen exclusive mode on DX9.
hr = d3d9ex->CheckDeviceType(adapterIndex,
@@ -589,7 +581,7 @@ bool DXVA2Renderer::initializeDevice(SDL_Window* window, bool enableVsync)
d3dpp.BackBufferHeight = currentMode.Height;
d3dpp.FullScreen_RefreshRateInHz = currentMode.RefreshRate;
if (m_VideoFormat & VIDEO_FORMAT_MASK_10BIT) {
if (m_VideoFormat == VIDEO_FORMAT_H265_MAIN10) {
d3dpp.BackBufferFormat = currentMode.Format = D3DFMT_A2R10G10B10;
}
else {
@@ -609,18 +601,20 @@ bool DXVA2Renderer::initializeDevice(SDL_Window* window, bool enableVsync)
// If composition enabled, disable v-sync and let DWM manage things
// to reduce latency by avoiding double v-syncing.
d3dpp.PresentationInterval = D3DPRESENT_INTERVAL_IMMEDIATE;
d3dpp.SwapEffect = D3DSWAPEFFECT_FLIPEX;
// If V-sync is enabled (not rendering faster than display),
// we can use FlipEx for more efficient swapping.
if (enableVsync) {
// D3DSWAPEFFECT_FLIPEX requires at least 3 back buffers to allow us to
// D3DSWAPEFFECT_FLIPEX requires at least 2 back buffers to allow us to
// continue while DWM is waiting to render the surface to the display.
// NVIDIA seems to be fine with 2, but AMD needs 3 to perform well.
d3dpp.BackBufferCount = 3;
d3dpp.SwapEffect = D3DSWAPEFFECT_FLIPEX;
d3dpp.BackBufferCount = 2;
}
else {
// With V-sync off, we need 1 more back buffer to render to while the
// driver/DWM are holding the others.
d3dpp.BackBufferCount = 4;
// With V-sync off, we won't use FlipEx because that will block while
// DWM is waiting to render our surface (effectively behaving like V-Sync).
d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;
d3dpp.BackBufferCount = 1;
}
m_BlockingPresent = false;
@@ -685,17 +679,12 @@ bool DXVA2Renderer::initializeDevice(SDL_Window* window, bool enableVsync)
return false;
}
// We must not call this for flip swapchains. It will counterintuitively
// increase latency by forcing our Present() to block on DWM even when
// using D3DPRESENT_INTERVAL_IMMEDIATE.
if (d3dpp.SwapEffect != D3DSWAPEFFECT_FLIPEX) {
hr = m_Device->SetMaximumFrameLatency(1);
if (FAILED(hr)) {
SDL_LogError(SDL_LOG_CATEGORY_APPLICATION,
"SetMaximumFrameLatency() failed: %x",
hr);
return false;
}
hr = m_Device->SetMaximumFrameLatency(1);
if (FAILED(hr)) {
SDL_LogError(SDL_LOG_CATEGORY_APPLICATION,
"SetMaximumFrameLatency() failed: %x",
hr);
return false;
}
return true;
@@ -703,23 +692,16 @@ bool DXVA2Renderer::initializeDevice(SDL_Window* window, bool enableVsync)
bool DXVA2Renderer::initialize(PDECODER_PARAMETERS params)
{
if (qgetenv("DXVA2_ENABLED") == "0") {
// Don't use DXVA2 for HDR10. While it can render 10-bit color, it doesn't support
// the HDR colorspace and HDR display metadata required to enable HDR mode properly.
if (params->videoFormat == VIDEO_FORMAT_H265_MAIN10) {
return false;
}
else if (qgetenv("DXVA2_ENABLED") == "0") {
SDL_LogInfo(SDL_LOG_CATEGORY_APPLICATION,
"DXVA2 is disabled by environment variable");
return false;
}
else if ((params->videoFormat & VIDEO_FORMAT_MASK_10BIT) && m_DecoderSelectionPass == 0) {
// Avoid using DXVA2 for HDR10. While it can render 10-bit color, it doesn't support
// the HDR colorspace and HDR display metadata required to enable HDR mode properly.
return false;
}
#ifndef Q_PROCESSOR_X86
else if (qgetenv("DXVA2_ENABLED") != "1" && m_DecoderSelectionPass == 0) {
SDL_LogInfo(SDL_LOG_CATEGORY_APPLICATION,
"DXVA2 is disabled by default on ARM64. Set DXVA2_ENABLED=1 to override.");
return false;
}
#endif
m_VideoFormat = params->videoFormat;
m_VideoWidth = params->width;
@@ -751,7 +733,7 @@ bool DXVA2Renderer::initialize(PDECODER_PARAMETERS params)
m_Desc.SampleFormat.VideoTransferFunction = DXVA2_VideoTransFunc_Unknown;
m_Desc.SampleFormat.SampleFormat = DXVA2_SampleProgressiveFrame;
if (m_VideoFormat & VIDEO_FORMAT_MASK_10BIT) {
if (m_VideoFormat == VIDEO_FORMAT_H265_MAIN10) {
m_Desc.Format = (D3DFORMAT)MAKEFOURCC('P','0','1','0');
}
else {
@@ -766,26 +748,6 @@ bool DXVA2Renderer::initialize(PDECODER_PARAMETERS params)
return false;
}
// If we have a WDDM 2.0 or later display driver and we're not running in
// full-screen exclusive mode, prefer the D3D11VA renderer.
//
// D3D11VA is better in this case because it can enable tearing in non-FSE
// modes when the user has V-Sync disabled. In non-FSE V-Sync cases, D3D11VA
// provides lower display latency on systems that support Independent Flip
// in windowed mode. When using D3D9, DWM will not promote us to IFlip unless
// we're full-screen (exclusive or not).
//
// NB: The reason we only do this for WDDM 2.0 and later is because older
// AMD drivers (such as those for the HD 5570) render garbage when using
// the D3D11VA renderer.
if (m_DecoderSelectionPass == 0 &&
(m_DeviceQuirks & DXVA2_QUIRK_WDDM_20_PLUS) &&
!((SDL_GetWindowFlags(params->window) & SDL_WINDOW_FULLSCREEN_DESKTOP) == SDL_WINDOW_FULLSCREEN)) {
SDL_LogInfo(SDL_LOG_CATEGORY_APPLICATION,
"Defaulting to D3D11VA for non-FSE mode");
return false;
}
if (!initializeDecoder()) {
return false;
}
@@ -861,9 +823,19 @@ void DXVA2Renderer::notifyOverlayUpdated(Overlay::OverlayType type)
return;
}
// Copy (and convert, if necessary) the surface pixels to the texture
SDL_ConvertPixels(newSurface->w, newSurface->h, newSurface->format->format, newSurface->pixels,
newSurface->pitch, SDL_PIXELFORMAT_ARGB8888, lockedRect.pBits, lockedRect.Pitch);
if (newSurface->pitch == lockedRect.Pitch) {
// If the pitch matches, we can take the fast path and use a single copy to transfer the pixels
RtlCopyMemory(lockedRect.pBits, newSurface->pixels, newSurface->pitch * newSurface->h);
}
else {
// If the pitch doesn't match, we'll need to copy each row separately
int pitch = SDL_min(newSurface->pitch, lockedRect.Pitch);
for (int i = 0; i < newSurface->h; i++) {
RtlCopyMemory(((PUCHAR)lockedRect.pBits) + (lockedRect.Pitch * i),
((PUCHAR)newSurface->pixels) + (newSurface->pitch * i),
pitch);
}
}
newTexture->UnlockRect(0);
@@ -1004,17 +976,22 @@ int DXVA2Renderer::getDecoderColorspace()
}
}
int DXVA2Renderer::getDecoderCapabilities()
{
return CAPABILITY_REFERENCE_FRAME_INVALIDATION_HEVC;
}
void DXVA2Renderer::renderFrame(AVFrame *frame)
{
IDirect3DSurface9* surface = reinterpret_cast<IDirect3DSurface9*>(frame->data[3]);
HRESULT hr;
m_Desc.SampleFormat.NominalRange = isFrameFullRange(frame) ? DXVA2_NominalRange_0_255 : DXVA2_NominalRange_16_235;
switch (frame->color_range) {
case AVCOL_RANGE_JPEG:
m_Desc.SampleFormat.NominalRange = DXVA2_NominalRange_0_255;
break;
case AVCOL_RANGE_MPEG:
m_Desc.SampleFormat.NominalRange = DXVA2_NominalRange_16_235;
break;
default:
m_Desc.SampleFormat.NominalRange = DXVA2_NominalRange_Unknown;
break;
}
switch (frame->color_primaries) {
case AVCOL_PRI_BT709:
@@ -1062,13 +1039,17 @@ void DXVA2Renderer::renderFrame(AVFrame *frame)
break;
}
switch (getFrameColorspace(frame)) {
case COLORSPACE_REC_709:
switch (frame->colorspace) {
case AVCOL_SPC_BT709:
m_Desc.SampleFormat.VideoTransferMatrix = DXVA2_VideoTransferMatrix_BT709;
break;
case COLORSPACE_REC_601:
case AVCOL_SPC_BT470BG:
case AVCOL_SPC_SMPTE170M:
m_Desc.SampleFormat.VideoTransferMatrix = DXVA2_VideoTransferMatrix_BT601;
break;
case AVCOL_SPC_SMPTE240M:
m_Desc.SampleFormat.VideoTransferMatrix = DXVA2_VideoTransferMatrix_SMPTE240M;
break;
default:
m_Desc.SampleFormat.VideoTransferMatrix = DXVA2_VideoTransferMatrix_Unknown;
break;
+1 -5
View File
@@ -13,14 +13,13 @@ extern "C" {
class DXVA2Renderer : public IFFmpegRenderer
{
public:
DXVA2Renderer(int decoderSelectionPass);
DXVA2Renderer();
virtual ~DXVA2Renderer() override;
virtual bool initialize(PDECODER_PARAMETERS params) override;
virtual bool prepareDecoderContext(AVCodecContext* context, AVDictionary** options) override;
virtual void renderFrame(AVFrame* frame) override;
virtual void notifyOverlayUpdated(Overlay::OverlayType type) override;
virtual int getDecoderColorspace() override;
virtual int getDecoderCapabilities() override;
private:
bool initializeDecoder();
@@ -45,8 +44,6 @@ private:
static
int ffGetBuffer2(AVCodecContext* context, AVFrame* frame, int flags);
int m_DecoderSelectionPass;
int m_VideoFormat;
int m_VideoWidth;
int m_VideoHeight;
@@ -80,6 +77,5 @@ private:
#define DXVA2_QUIRK_NO_VP 0x01
#define DXVA2_QUIRK_SET_DEST_FORMAT 0x02
#define DXVA2_QUIRK_WDDM_20_PLUS 0x04
int m_DeviceQuirks;
};
+49 -84
View File
@@ -193,7 +193,6 @@ void EGLRenderer::renderOverlay(Overlay::OverlayType type)
SDL_Surface* newSurface = Session::get()->getOverlayManager().getUpdatedOverlaySurface(type);
if (newSurface != nullptr) {
SDL_assert(!SDL_MUSTLOCK(newSurface));
SDL_assert(newSurface->format->format == SDL_PIXELFORMAT_ARGB8888);
glBindTexture(GL_TEXTURE_2D, m_OverlayTextures[type]);
@@ -459,8 +458,8 @@ bool EGLRenderer::initialize(PDECODER_PARAMETERS params)
// Don't retry if we've already failed to create a renderer for this
// window *unless* the format has changed from 10-bit to 8-bit.
if (m_Window == s_LastFailedWindow &&
!!(params->videoFormat & VIDEO_FORMAT_MASK_10BIT) ==
!!(s_LastFailedVideoFormat & VIDEO_FORMAT_MASK_10BIT)) {
(params->videoFormat & VIDEO_FORMAT_H265_MAIN10) ==
(s_LastFailedVideoFormat & VIDEO_FORMAT_H265_MAIN10)) {
EGL_LOG(Error, "SDL_CreateRenderer() already failed on this window!");
return false;
}
@@ -664,22 +663,10 @@ bool EGLRenderer::initialize(PDECODER_PARAMETERS params)
m_ViewportWidth = dst.w;
m_ViewportHeight = dst.h;
// SDL always uses swap interval 0 under the hood on Wayland systems,
// because the compositor guarantees tear-free rendering. In this
// situation, swap interval > 0 behaves as a frame pacing option
// rather than a way to eliminate tearing as SDL will block in
// SwapBuffers until the compositor consumes the frame. This will
// needlessly increases latency, so we should avoid it unless asked.
//
// HACK: In SDL 2.0.22+ on GNOME systems with fractional DPI scaling,
// the Wayland viewport can be stale when using Super+Left/Right/Up
// to resize the window. This seems to happen significantly more often
// with vsync enabled, so this also mitigates that problem too.
if (params->enableVsync
#ifdef SDL_VIDEO_DRIVER_WAYLAND
&& (info.subsystem != SDL_SYSWM_WAYLAND || params->enableFramePacing)
#endif
) {
glClearColor(0, 0, 0, 1);
glClear(GL_COLOR_BUFFER_BIT);
if (params->enableVsync) {
SDL_GL_SetSwapInterval(1);
#if SDL_VERSION_ATLEAST(2, 0, 15) && defined(SDL_VIDEO_DRIVER_KMSDRM)
@@ -696,12 +683,7 @@ bool EGLRenderer::initialize(PDECODER_PARAMETERS params)
SDL_GL_SetSwapInterval(0);
}
if (!params->testOnly) {
// Draw a black frame until the video stream starts rendering
glClearColor(0, 0, 0, 1);
glClear(GL_COLOR_BUFFER_BIT);
SDL_GL_SwapWindow(params->window);
}
SDL_GL_SwapWindow(params->window);
glGenTextures(EGL_MAX_PLANES, m_Textures);
for (size_t i = 0; i < EGL_MAX_PLANES; ++i) {
@@ -732,15 +714,6 @@ bool EGLRenderer::initialize(PDECODER_PARAMETERS params)
// Detach the context from this thread, so the render thread can attach it
SDL_GL_MakeCurrent(m_Window, nullptr);
#ifdef SDL_HINT_VIDEO_X11_FORCE_EGL
if (err == GL_NO_ERROR) {
// If we got a working GL implementation via EGL, avoid using GLX from now on.
// GLX will cause problems if we later want to use EGL again on this window.
SDL_LogInfo(SDL_LOG_CATEGORY_APPLICATION, "EGL passed preflight checks. Using EGL for GL context creation.");
SDL_SetHint(SDL_HINT_VIDEO_X11_FORCE_EGL, "1");
}
#endif
return err == GL_NO_ERROR;
}
@@ -748,7 +721,10 @@ const float *EGLRenderer::getColorOffsets(const AVFrame* frame) {
static const float limitedOffsets[] = { 16.0f / 255.0f, 128.0f / 255.0f, 128.0f / 255.0f };
static const float fullOffsets[] = { 0.0f, 128.0f / 255.0f, 128.0f / 255.0f };
return isFrameFullRange(frame) ? fullOffsets : limitedOffsets;
// This handles the case where the color range is unknown,
// so that we use Limited color range which is the default
// behavior for Moonlight.
return (frame->color_range == AVCOL_RANGE_JPEG) ? fullOffsets : limitedOffsets;
}
const float *EGLRenderer::getColorMatrix(const AVFrame* frame) {
@@ -786,17 +762,33 @@ const float *EGLRenderer::getColorMatrix(const AVFrame* frame) {
1.4746f, -0.5714f, 0.0f
};
bool fullRange = isFrameFullRange(frame);
switch (getFrameColorspace(frame)) {
case COLORSPACE_REC_601:
// This handles the case where the color range is unknown,
// so that we use Limited color range which is the default
// behavior for Moonlight.
bool fullRange = (frame->color_range == AVCOL_RANGE_JPEG);
switch (frame->colorspace) {
case AVCOL_SPC_SMPTE170M:
case AVCOL_SPC_BT470BG:
return fullRange ? bt601Full : bt601Lim;
case COLORSPACE_REC_709:
case AVCOL_SPC_BT709:
return fullRange ? bt709Full : bt709Lim;
case COLORSPACE_REC_2020:
case AVCOL_SPC_BT2020_NCL:
case AVCOL_SPC_BT2020_CL:
return fullRange ? bt2020Full : bt2020Lim;
default:
SDL_assert(false);
}
// Some backends don't populate this, so we'll assume
// the host gave us what we asked for by default.
switch (getDecoderColorspace()) {
case COLORSPACE_REC_601:
return fullRange ? bt601Full : bt601Lim;
case COLORSPACE_REC_709:
return fullRange ? bt709Full : bt709Lim;
case COLORSPACE_REC_2020:
return fullRange ? bt2020Full : bt2020Lim;
default:
SDL_assert(false);
}
};
return bt601Lim;
}
@@ -867,18 +859,9 @@ void EGLRenderer::waitToRender()
// See comment in renderFrame() for more details.
SDL_GL_MakeCurrent(m_Window, m_Context);
// Wait for the previous buffer swap to finish before picking the next frame to render.
// This way we'll get the latest available frame and render it without blocking.
if (m_BlockingSwapBuffers) {
// Try to use eglClientWaitSync() if the driver supports it
if (m_LastRenderSync != EGL_NO_SYNC) {
SDL_assert(m_eglClientWaitSync != nullptr);
m_eglClientWaitSync(m_EGLDisplay, m_LastRenderSync, EGL_SYNC_FLUSH_COMMANDS_BIT, EGL_FOREVER);
}
else {
// Use glFinish() if fences aren't available
glFinish();
}
if (m_LastRenderSync != 0) {
SDL_assert(m_eglClientWaitSync != nullptr);
m_eglClientWaitSync(m_EGLDisplay, m_LastRenderSync, EGL_SYNC_FLUSH_COMMANDS_BIT, EGL_FOREVER);
}
}
@@ -901,18 +884,6 @@ void EGLRenderer::renderFrame(AVFrame* frame)
if (!specialize()) {
m_EGLImagePixelFormat = AV_PIX_FMT_NONE;
// Failure to specialize is fatal. We must reset the renderer
// to recover successfully.
//
// Note: This seems to be easy to trigger when transitioning from
// maximized mode by dragging the window down on GNOME 42 using
// XWayland. Other strategies like calling glGetError() don't seem
// to be able to detect this situation for some reason.
SDL_Event event;
event.type = SDL_RENDER_TARGETS_RESET;
SDL_PushEvent(&event);
return;
}
}
@@ -952,14 +923,8 @@ void EGLRenderer::renderFrame(AVFrame* frame)
SDL_GL_SwapWindow(m_Window);
if (m_BlockingSwapBuffers) {
// This glClear() requires the new back buffer to complete. This ensures
// our eglClientWaitSync() or glFinish() call in waitToRender() will not
// return before the new buffer is actually ready for rendering.
glClear(GL_COLOR_BUFFER_BIT);
// If we this EGL implementation supports fences, use those to delay
// rendering the next frame until this one is completed. If not, we'll
// have to just use glFinish().
// rendering the next frame until this one is completed.
if (m_eglClientWaitSync != nullptr) {
// Delete the sync object from last render
if (m_LastRenderSync != EGL_NO_SYNC) {
@@ -975,6 +940,17 @@ void EGLRenderer::renderFrame(AVFrame* frame)
m_LastRenderSync = m_eglCreateSyncKHR(m_EGLDisplay, EGL_SYNC_FENCE, nullptr);
}
}
else {
// This glClear() forces us to block until the buffer swap is
// complete to continue rendering. Mesa won't actually wait
// for the swap with just glFinish() alone. Waiting here keeps us
// in lock step with the display refresh rate. If we don't wait
// here, we'll stall on the first GL call next frame. Doing the
// wait here instead allows more time for a newer frame to arrive
// for next renderFrame() call.
glClear(GL_COLOR_BUFFER_BIT);
glFinish();
}
}
m_Backend->freeEGLImages(m_EGLDisplay, imgs);
@@ -992,17 +968,6 @@ bool EGLRenderer::testRenderFrame(AVFrame* frame)
{
EGLImage imgs[EGL_MAX_PLANES];
#ifdef HAVE_MMAL
// EGL rendering is so slow on the Raspberry Pi that we should basically
// never use it. It is suitable for 1080p 30 FPS on a good day, and much
// much less than that if you decide to do something crazy like stream
// in full-screen. It's nice that it at least works now on Bullseye, but
// it's so slow that we actually wish it didn't.
if (qgetenv("RPI_ALLOW_EGL_RENDER") != "1") {
return false;
}
#endif
// Make sure we can get working EGLImages from the backend renderer.
// Some devices (Raspberry Pi) will happily decode into DRM formats that
// its own GL implementation won't accept in eglCreateImage().
+14 -3
View File
@@ -219,9 +219,20 @@ int MmalRenderer::getDecoderColorspace()
void MmalRenderer::setupBackground(PDECODER_PARAMETERS params)
{
if (!params->testOnly) {
// Create a renderer and draw a black background for the area not covered by the MMAL overlay.
// On the KMSDRM backend, this triggers the modeset that puts the CRTC into the mode we selected.
SDL_SysWMinfo info;
SDL_VERSION(&info.version);
if (!SDL_GetWindowWMInfo(params->window, &info)) {
SDL_LogError(SDL_LOG_CATEGORY_APPLICATION,
"SDL_GetWindowWMInfo() failed: %s",
SDL_GetError());
return;
}
// On X11, we can safely create a renderer and draw a black background.
// Due to conflicts with Qt, it's unsafe to do this for KMSDRM.
if (info.subsystem == SDL_SYSWM_X11) {
m_BackgroundRenderer = SDL_CreateRenderer(params->window, -1, SDL_RENDERER_SOFTWARE);
if (m_BackgroundRenderer == nullptr) {
SDL_LogError(SDL_LOG_CATEGORY_APPLICATION,
@@ -11,11 +11,8 @@
#endif
// Limit the number of queued frames to prevent excessive memory consumption
// if the V-Sync source or renderer is blocked for a while. It's important
// that the sum of all queued frames between both pacing and rendering queues
// must not exceed the number buffer pool size to avoid running the decoder
// out of available decoding surfaces.
#define MAX_QUEUED_FRAMES 4
// if the V-Sync source or renderer is blocked for a while.
#define MAX_QUEUED_FRAMES 8
// We may be woken up slightly late so don't go all the way
// up to the next V-sync since we may accidentally step into
@@ -75,10 +72,8 @@ void Pacer::renderOnMainThread()
m_FrameQueueLock.lock();
if (!m_RenderQueue.isEmpty()) {
AVFrame* frame = m_RenderQueue.dequeue();
m_FrameQueueLock.unlock();
renderFrame(frame);
// Releases m_FrameQueueLock
renderLastFrameAndUnlock();
}
else {
m_FrameQueueLock.unlock();
@@ -114,10 +109,9 @@ int Pacer::renderThread(void* context)
break;
}
AVFrame* frame = me->m_RenderQueue.dequeue();
me->m_FrameQueueLock.unlock();
me->renderFrame(frame);
// Render the latest frame and discard the others
// NB: m_FrameQueueLock still held here!
me->renderLastFrameAndUnlock();
}
// Notify the renderer that it is being destroyed soon
@@ -147,6 +141,33 @@ void Pacer::enqueueFrameForRenderingAndUnlock(AVFrame *frame)
}
}
// Caller must hold m_FrameQueueLock
void Pacer::renderLastFrameAndUnlock()
{
// Dequeue the most recent frame for rendering and free the others.
AVFrame* lastFrame = nullptr;
while (!m_RenderQueue.isEmpty()) {
if (lastFrame != nullptr) {
// Don't hold the frame queue lock across av_frame_free(),
// since it could need to talk to the GPU driver. This is safe
// because we're guaranteed that the queue will not shrink during
// this time (and so dequeue() below will always get something).
m_FrameQueueLock.unlock();
av_frame_free(&lastFrame);
m_VideoStats->pacerDroppedFrames++;
m_FrameQueueLock.lock();
}
lastFrame = m_RenderQueue.dequeue();
}
// Release the frame queue lock before rendering
m_FrameQueueLock.unlock();
// Render and free the mot current frame
renderFrame(lastFrame);
}
// Called in an arbitrary thread by the IVsyncSource on V-sync
// or an event synchronized with V-sync
void Pacer::vsyncCallback(int timeUntilNextVsyncMillis)
@@ -211,7 +232,6 @@ bool Pacer::initialize(SDL_Window* window, int maxVideoFps, bool enablePacing)
{
m_MaxVideoFps = maxVideoFps;
m_DisplayFps = StreamUtils::getDisplayRefreshRate(window);
m_RendererAttributes = m_VsyncRenderer->getRendererAttributes();
if (enablePacing) {
SDL_LogInfo(SDL_LOG_CATEGORY_APPLICATION,
@@ -229,8 +249,6 @@ bool Pacer::initialize(SDL_Window* window, int maxVideoFps, bool enablePacing)
// immediately like they used to.
#endif
SDL_assert(m_VsyncSource != nullptr || !(m_RendererAttributes & RENDERER_ATTRIBUTE_FORCE_PACING));
if (m_VsyncSource != nullptr && !m_VsyncSource->initialize(window, m_DisplayFps)) {
return false;
}
@@ -265,32 +283,23 @@ void Pacer::renderFrame(AVFrame* frame)
// Drop frames if we have too many queued up for a while
m_FrameQueueLock.lock();
int frameDropTarget;
if (m_RendererAttributes & RENDERER_ATTRIBUTE_NO_BUFFERING) {
// Renderers that don't buffer any frames but don't support waitToRender() need us to buffer
// an extra frame to ensure they don't starve while waiting to present.
frameDropTarget = 1;
}
else {
frameDropTarget = 0;
for (int queueHistoryEntry : m_RenderQueueHistory) {
if (queueHistoryEntry == 0) {
// Be lenient as long as the queue length
// resolves before the end of frame history
frameDropTarget = 2;
break;
}
int frameDropTarget = 0;
for (int queueHistoryEntry : m_RenderQueueHistory) {
if (queueHistoryEntry == 0) {
// Be lenient as long as the queue length
// resolves before the end of frame history
frameDropTarget = 2;
break;
}
// Keep a rolling 500 ms window of render queue history
if (m_RenderQueueHistory.count() == m_MaxVideoFps / 2) {
m_RenderQueueHistory.dequeue();
}
m_RenderQueueHistory.enqueue(m_RenderQueue.count());
}
// Keep a rolling 500 ms window of render queue history
if (m_RenderQueueHistory.count() == m_MaxVideoFps / 2) {
m_RenderQueueHistory.dequeue();
}
m_RenderQueueHistory.enqueue(m_RenderQueue.count());
// Catch up if we're several frames ahead
while (m_RenderQueue.count() > frameDropTarget) {
AVFrame* frame = m_RenderQueue.dequeue();
@@ -33,6 +33,8 @@ private:
void enqueueFrameForRenderingAndUnlock(AVFrame* frame);
void renderLastFrameAndUnlock();
void renderFrame(AVFrame* frame);
void dropFrameForEnqueue(QQueue<AVFrame*>& queue);
@@ -52,5 +54,4 @@ private:
int m_MaxVideoFps;
int m_DisplayFps;
PVIDEO_STATS m_VideoStats;
int m_RendererAttributes;
};
@@ -21,7 +21,6 @@ extern "C" {
#ifndef EGL_VERSION_1_5
typedef intptr_t EGLAttrib;
typedef void *EGLImage;
typedef khronos_utime_nanoseconds_t EGLTime;
typedef void *EGLSync;
#define EGL_NO_SYNC ((EGLSync)0)
@@ -110,8 +109,6 @@ private:
#define RENDERER_ATTRIBUTE_FULLSCREEN_ONLY 0x01
#define RENDERER_ATTRIBUTE_1080P_MAX 0x02
#define RENDERER_ATTRIBUTE_HDR_SUPPORT 0x04
#define RENDERER_ATTRIBUTE_NO_BUFFERING 0x08
#define RENDERER_ATTRIBUTE_FORCE_PACING 0x10
class IFFmpegRenderer : public Overlay::IOverlayRenderer {
public:
@@ -158,36 +155,6 @@ public:
return COLORSPACE_REC_601;
}
virtual int getDecoderColorRange() {
// Limited is the default
return COLOR_RANGE_LIMITED;
}
virtual int getFrameColorspace(const AVFrame* frame) {
// Prefer the colorspace field on the AVFrame itself
switch (frame->colorspace) {
case AVCOL_SPC_SMPTE170M:
case AVCOL_SPC_BT470BG:
return COLORSPACE_REC_601;
case AVCOL_SPC_BT709:
return COLORSPACE_REC_709;
case AVCOL_SPC_BT2020_NCL:
case AVCOL_SPC_BT2020_CL:
return COLORSPACE_REC_2020;
default:
// If the colorspace is not populated, assume the encoder
// is sending the colorspace that we requested.
return getDecoderColorspace();
}
}
virtual bool isFrameFullRange(const AVFrame* frame) {
// This handles the case where the color range is unknown,
// so that we use Limited color range which is the default
// behavior for Moonlight.
return frame->color_range == AVCOL_RANGE_JPEG;
}
virtual bool isRenderThreadSupported() {
// Render thread is supported by default
return true;
@@ -199,7 +166,7 @@ public:
}
virtual AVPixelFormat getPreferredPixelFormat(int videoFormat) {
if (videoFormat & VIDEO_FORMAT_MASK_10BIT) {
if (videoFormat == VIDEO_FORMAT_H265_MAIN10) {
// 10-bit YUV 4:2:0
return AV_PIX_FMT_P010;
}
+14 -33
View File
@@ -10,7 +10,7 @@ SdlRenderer::SdlRenderer()
m_Renderer(nullptr),
m_Texture(nullptr),
m_SwPixelFormat(AV_PIX_FMT_NONE),
m_ColorSpace(-1),
m_ColorSpace(AVCOL_SPC_UNSPECIFIED),
m_MapFrame(false)
{
SDL_zero(m_OverlayTextures);
@@ -77,7 +77,6 @@ bool SdlRenderer::isPixelFormatSupported(int, AVPixelFormat pixelFormat)
switch (pixelFormat)
{
case AV_PIX_FMT_YUV420P:
case AV_PIX_FMT_YUVJ420P:
case AV_PIX_FMT_NV12:
case AV_PIX_FMT_NV21:
return true;
@@ -93,7 +92,7 @@ bool SdlRenderer::initialize(PDECODER_PARAMETERS params)
m_VideoFormat = params->videoFormat;
if (params->videoFormat & VIDEO_FORMAT_MASK_10BIT) {
if (params->videoFormat == VIDEO_FORMAT_H265_MAIN10) {
// SDL doesn't support rendering YUV 10-bit textures yet
return false;
}
@@ -153,12 +152,10 @@ bool SdlRenderer::initialize(PDECODER_PARAMETERS params)
// Ensure the viewport is set to the desired video region
SDL_RenderSetViewport(m_Renderer, &dst);
if (!params->testOnly) {
// Draw a black frame until the video stream starts rendering
SDL_SetRenderDrawColor(m_Renderer, 0, 0, 0, SDL_ALPHA_OPAQUE);
SDL_RenderClear(m_Renderer);
SDL_RenderPresent(m_Renderer);
}
// Draw a black frame until the video stream starts rendering
SDL_SetRenderDrawColor(m_Renderer, 0, 0, 0, SDL_ALPHA_OPAQUE);
SDL_RenderClear(m_Renderer);
SDL_RenderPresent(m_Renderer);
#ifdef Q_OS_WIN32
// For some reason, using Direct3D9Ex breaks this with multi-monitor setups.
@@ -374,21 +371,13 @@ ReadbackRetry:
// Because the specific YUV color conversion shader is established at
// texture creation for most SDL render backends, we need to recreate
// the texture when the colorspace changes.
int colorspace = getFrameColorspace(frame);
if (colorspace != m_ColorSpace) {
#ifdef HAVE_CUDA
if (m_CudaGLHelper != nullptr) {
delete m_CudaGLHelper;
m_CudaGLHelper = nullptr;
}
#endif
if (frame->colorspace != m_ColorSpace) {
if (m_Texture != nullptr) {
SDL_DestroyTexture(m_Texture);
m_Texture = nullptr;
}
m_ColorSpace = colorspace;
m_ColorSpace = frame->colorspace;
}
if (m_Texture == nullptr) {
@@ -398,7 +387,6 @@ ReadbackRetry:
switch (frame->format)
{
case AV_PIX_FMT_YUV420P:
case AV_PIX_FMT_YUVJ420P:
sdlFormat = SDL_PIXELFORMAT_YV12;
break;
case AV_PIX_FMT_CUDA:
@@ -413,22 +401,15 @@ ReadbackRetry:
goto Exit;
}
switch (colorspace)
switch (frame->colorspace)
{
case COLORSPACE_REC_709:
SDL_assert(!isFrameFullRange(frame));
case AVCOL_SPC_BT709:
SDL_SetYUVConversionMode(SDL_YUV_CONVERSION_BT709);
break;
case COLORSPACE_REC_601:
if (isFrameFullRange(frame)) {
// SDL's JPEG mode is Rec 601 Full Range
SDL_SetYUVConversionMode(SDL_YUV_CONVERSION_JPEG);
}
else {
SDL_SetYUVConversionMode(SDL_YUV_CONVERSION_BT601);
}
break;
case AVCOL_SPC_BT470BG:
case AVCOL_SPC_SMPTE170M:
default:
SDL_SetYUVConversionMode(SDL_YUV_CONVERSION_BT601);
break;
}
@@ -471,7 +452,7 @@ ReadbackRetry:
goto Exit;
#endif
}
else if (frame->format == AV_PIX_FMT_YUV420P || frame->format == AV_PIX_FMT_YUVJ420P) {
else if (frame->format == AV_PIX_FMT_YUV420P) {
SDL_UpdateYUVTexture(m_Texture, nullptr,
frame->data[0],
frame->linesize[0],

Some files were not shown because too many files have changed in this diff Show More