From 6e7a42065cdff21ee67b90d84ab33e96e4cd99b3 Mon Sep 17 00:00:00 2001 From: Cameron Gutman Date: Sat, 21 Nov 2020 13:15:54 -0600 Subject: [PATCH] Translation updates and refactoring --- app/app.pro | 3 + app/backend/computermanager.cpp | 4 +- app/backend/nvhttp.cpp | 2 +- app/cli/quitstream.cpp | 8 +- app/cli/startstream.cpp | 10 +- app/gui/AppView.qml | 2 +- app/gui/CliStartStreamSegue.qml | 2 +- app/gui/GamepadMapper.qml | 2 +- app/gui/PcView.qml | 10 +- app/gui/QuitSegue.qml | 2 +- app/gui/SettingsView.qml | 62 +-- app/gui/StreamSegue.qml | 13 +- app/gui/main.qml | 18 +- app/languages/qml_fr.qm | Bin 0 -> 20663 bytes app/languages/qml_fr.ts | 820 ++++++++++++++++++++++++++++++++ app/main.cpp | 2 +- app/resources.qrc | 4 +- app/streaming/session.cpp | 52 +- languages/qml_fr.qm | Bin 21625 -> 0 bytes languages/qml_fr.ts | 563 ---------------------- moonlight-qt.pro | 1 - 21 files changed, 919 insertions(+), 661 deletions(-) create mode 100644 app/languages/qml_fr.qm create mode 100644 app/languages/qml_fr.ts delete mode 100644 languages/qml_fr.qm delete mode 100644 languages/qml_fr.ts diff --git a/app/app.pro b/app/app.pro index b64d68fa..f4af7272 100644 --- a/app/app.pro +++ b/app/app.pro @@ -311,6 +311,9 @@ RESOURCES += \ resources.qrc \ qml.qrc +TRANSLATIONS += \ + languages/qml_fr.ts + # Additional import path used to resolve QML modules in Qt Creator's code model QML_IMPORT_PATH = diff --git a/app/backend/computermanager.cpp b/app/backend/computermanager.cpp index 49096236..d54c624b 100644 --- a/app/backend/computermanager.cpp +++ b/app/backend/computermanager.cpp @@ -536,8 +536,8 @@ private: } if (e.getStatusCode() == 599) { // 599 is a special code we make a custom message for - emit quitAppFailed("The running game wasn't started by this PC. " - "You must quit the game on the host PC manually or use the device that originally started the game."); + emit quitAppFailed(tr("The running game wasn't started by this PC. " + "You must quit the game on the host PC manually or use the device that originally started the game.")); } else { emit quitAppFailed(e.toQString()); diff --git a/app/backend/nvhttp.cpp b/app/backend/nvhttp.cpp index 6c50004d..3826a298 100644 --- a/app/backend/nvhttp.cpp +++ b/app/backend/nvhttp.cpp @@ -323,7 +323,7 @@ NvHTTP::verifyResponseStatus(QString xml) // Special case handling an audio capture error which GFE doesn't // provide any useful status message for. statusCode = 418; - statusMessage = "Missing audio capture device. Reinstalling GeForce Experience should resolve this error."; + statusMessage = tr("Missing audio capture device. Reinstalling GeForce Experience should resolve this error."); } throw GfeHttpResponseException(statusCode, statusMessage); } diff --git a/app/cli/quitstream.cpp b/app/cli/quitstream.cpp index 04081b9c..00838658 100644 --- a/app/cli/quitstream.cpp +++ b/app/cli/quitstream.cpp @@ -73,7 +73,7 @@ public: case Event::ComputerSeekTimedout: if (m_State == StateSeekComputer) { m_State = StateFailure; - emit q->failed(QString("Failed to connect to %1").arg(m_ComputerName)); + emit q->failed(QObject::tr("Failed to connect to %1").arg(m_ComputerName)); } break; // Occurs when searched computer is found @@ -85,8 +85,8 @@ public: m_ComputerManager->quitRunningApp(event.computer); } else { m_State = StateFailure; - QString msg = QString("Computer %1 has not been paired. " - "Please open Moonlight to pair before streaming.") + QString msg = QObject::tr("Computer %1 has not been paired. " + "Please open Moonlight to pair before streaming.") .arg(event.computer->name); emit q->failed(msg); } @@ -99,7 +99,7 @@ public: QCoreApplication::exit(0); } else { m_State = StateFailure; - emit q->failed(QString("Quitting app failed, reason: %1").arg(event.errorMessage)); + emit q->failed(QObject::tr("Quitting app failed, reason: %1").arg(event.errorMessage)); } } break; diff --git a/app/cli/startstream.cpp b/app/cli/startstream.cpp index 4bb706f8..2f53b659 100644 --- a/app/cli/startstream.cpp +++ b/app/cli/startstream.cpp @@ -86,8 +86,8 @@ public: emit q->searchingApp(); } else { m_State = StateFailure; - QString msg = QString("Computer %1 has not been paired. " - "Please open Moonlight to pair before streaming.") + QString msg = QObject::tr("Computer %1 has not been paired. " + "Please open Moonlight to pair before streaming.") .arg(event.computer->name); emit q->failed(msg); } @@ -123,18 +123,18 @@ public: case Event::AppQuitCompleted: if (m_State == StateSeekApp && !event.errorMessage.isEmpty()) { m_State = StateFailure; - emit q->failed(QString("Quitting app failed, reason: %1").arg(event.errorMessage)); + emit q->failed(QObject::tr("Quitting app failed, reason: %1").arg(event.errorMessage)); } break; // Occurs when computer or app search timed out case Event::Timedout: if (m_State == StateSeekComputer) { m_State = StateFailure; - emit q->failed(QString("Failed to connect to %1").arg(m_ComputerName)); + emit q->failed(QObject::tr("Failed to connect to %1").arg(m_ComputerName)); } if (m_State == StateSeekApp) { m_State = StateFailure; - emit q->failed(QString("Failed to find application %1").arg(m_AppName)); + emit q->failed(QObject::tr("Failed to find application %1").arg(m_AppName)); } break; } diff --git a/app/gui/AppView.qml b/app/gui/AppView.qml index 67e8ee65..a6cc77dc 100644 --- a/app/gui/AppView.qml +++ b/app/gui/AppView.qml @@ -268,7 +268,7 @@ CenteredGridView { property bool segueToStream : false property string nextAppName: "" property int nextAppIndex: 0 - text:qsTr("Are you sure you want to quit " + appName +"? Any unsaved progress will be lost.") + text:qsTr("Are you sure you want to quit %1? Any unsaved progress will be lost.").arg(appName) standardButtons: Dialog.Yes | Dialog.No function quitApp() { diff --git a/app/gui/CliStartStreamSegue.qml b/app/gui/CliStartStreamSegue.qml index ce796b02..55207c7c 100644 --- a/app/gui/CliStartStreamSegue.qml +++ b/app/gui/CliStartStreamSegue.qml @@ -78,7 +78,7 @@ Item { NavigableMessageDialog { id: quitAppDialog - text:qsTr("Are you sure you want to quit " + appName +"? Any unsaved progress will be lost.") + text:qsTr("Are you sure you want to quit %1? Any unsaved progress will be lost.").arg(appName) standardButtons: Dialog.Yes | Dialog.No property string appName : "" diff --git a/app/gui/GamepadMapper.qml b/app/gui/GamepadMapper.qml index 4016724b..17d7d14a 100644 --- a/app/gui/GamepadMapper.qml +++ b/app/gui/GamepadMapper.qml @@ -1,5 +1,5 @@ import QtQuick 2.0 Item { - objectName: "Gamepad Mapping" + objectName: qsTr("Gamepad Mapping") } diff --git a/app/gui/PcView.qml b/app/gui/PcView.qml index 314f80a4..fa58584f 100644 --- a/app/gui/PcView.qml +++ b/app/gui/PcView.qml @@ -67,7 +67,7 @@ CenteredGridView { errorDialog.text = qsTr("Unable to connect to the specified PC.") if (detectedPortBlocking) { - errorDialog.text += qsTr("\n\nThis PC's Internet connection is blocking Moonlight. Streaming over the Internet may not work while connected to this network.") + errorDialog.text += "\n\n" + qsTr("This PC's Internet connection is blocking Moonlight. Streaming over the Internet may not work while connected to this network.") } else { errorDialog.helpText = qsTr("Click the Help button for possible solutions.") @@ -293,7 +293,7 @@ CenteredGridView { // don't allow edits to the rest of the window while open property string pin : "0000" - text:qsTr("Please enter " + pin + " on your GameStream PC. This dialog will close when pairing is completed.") + text:qsTr("Please enter %1 on your GameStream PC. This dialog will close when pairing is completed.").arg(pin) standardButtons: Dialog.Cancel onRejected: { // FIXME: We should interrupt pairing here @@ -321,7 +321,7 @@ CenteredGridView { standardButtons: Dialog.Ok onAboutToShow: { - testConnectionDialog.text = qsTr("Moonlight is testing your network connection to determine if NVIDIA GameStream is blocked.\n\nThis may take a few seconds…") + testConnectionDialog.text = qsTr("Moonlight is testing your network connection to determine if NVIDIA GameStream is blocked.") + "\n\n" + qsTr("This may take a few seconds…") showSpinner = true } @@ -332,11 +332,11 @@ CenteredGridView { imageSrc = "qrc:/res/baseline-warning-24px.svg" } else if (result === 0) { - text = qsTr("This network does not appear to be blocking Moonlight. If you still have trouble connecting, check your PC's firewall settings.\n\nIf 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's Internet connection.") + text = qsTr("This network does not appear to be blocking Moonlight. If you still have trouble connecting, check your PC's firewall settings.") + "\n\n" + qsTr("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's Internet connection.") imageSrc = "qrc:/res/baseline-check_circle_outline-24px.svg" } else { - text = qsTr("Your PC's current network connection seems to be blocking Moonlight. Streaming over the Internet may not work while connected to this network.\n\nThe following network ports were blocked:\n") + text = qsTr("Your PC's current network connection seems to be blocking Moonlight. Streaming over the Internet may not work while connected to this network.") + "\n\n" + qsTr("The following network ports were blocked:") + "\n" text += blockedPorts imageSrc = "qrc:/res/baseline-error_outline-24px.svg" } diff --git a/app/gui/QuitSegue.qml b/app/gui/QuitSegue.qml index 4896fe37..1b64efa9 100644 --- a/app/gui/QuitSegue.qml +++ b/app/gui/QuitSegue.qml @@ -9,7 +9,7 @@ Item { property Session nextSession : null property string nextAppName : "" - property string stageText : qsTr("Quitting " + appName + "...") + property string stageText : qsTr("Quitting %1...").arg(appName) function quitAppCompleted(error) { diff --git a/app/gui/SettingsView.qml b/app/gui/SettingsView.qml index a0c80f2b..7d9a5d2a 100644 --- a/app/gui/SettingsView.qml +++ b/app/gui/SettingsView.qml @@ -50,7 +50,7 @@ Flickable { id: basicSettingsGroupBox width: (parent.width - (parent.leftPadding + parent.rightPadding)) padding: 12 - title: qsTr("Basic Settings") + title: "" + qsTr("Basic Settings") + "" font.pointSize: 12 Column { @@ -170,22 +170,22 @@ Flickable { // Other elements may be added at runtime // based on attached display resolution ListElement { - text: "720p" + text: qsTr("720p") video_width: "1280" video_height: "720" } ListElement { - text: "1080p" + text: qsTr("1080p") video_width: "1920" video_height: "1080" } ListElement { - text: "1440p" + text: qsTr("1440p") video_width: "2560" video_height: "1440" } ListElement { - text: "4K" + text: qsTr("4K") video_width: "3840" video_height: "2160" } @@ -215,16 +215,16 @@ Flickable { var max_fps = SystemProperties.maximumStreamingFrameRate // Default entries - fpsListModel.append({"text": qsTr("30 FPS"), "video_fps": "30"}) - fpsListModel.append({"text": qsTr("60 FPS"), "video_fps": "60"}) + fpsListModel.append({"text": qsTr("%1 FPS").arg("30"), "video_fps": "30"}) + fpsListModel.append({"text": qsTr("%1 FPS").arg("60"), "video_fps": "60"}) // Add unsupported FPS values that come before the display max FPS if (StreamingPreferences.unsupportedFps) { if (max_fps > 90) { - fpsListModel.append({"text": qsTr("90 FPS (Unsupported)"), "video_fps": "90"}) + fpsListModel.append({"text": qsTr("%1 FPS (Unsupported)").arg("90"), "video_fps": "90"}) } if (max_fps > 120) { - fpsListModel.append({"text": qsTr("120 FPS (Unsupported)"), "video_fps": "120"}) + fpsListModel.append({"text": qsTr("%1 FPS (Unsupported)").arg("120"), "video_fps": "120"}) } } @@ -233,23 +233,23 @@ Flickable { if (max_fps > 64) { // Mark any FPS value greater than 120 as unsupported if (StreamingPreferences.unsupportedFps && max_fps > 120) { - fpsListModel.append({"text": max_fps+qsTr(" FPS (Unsupported)"), "video_fps": ""+max_fps}) + fpsListModel.append({"text": qsTr("%1 FPS (Unsupported)").arg(max_fps), "video_fps": ""+max_fps}) } else if (max_fps > 120) { - fpsListModel.append({"text": "120 FPS", "video_fps": "120"}) + fpsListModel.append({"text": qsTr("%1 FPS").arg("120"), "video_fps": "120"}) } else { - fpsListModel.append({"text": max_fps+" FPS", "video_fps": ""+max_fps}) + fpsListModel.append({"text": qsTr("%1 FPS").arg(max_fps), "video_fps": ""+max_fps}) } } // Add unsupported FPS values that come after the display max FPS if (StreamingPreferences.unsupportedFps) { if (max_fps < 90) { - fpsListModel.append({"text":qsTr( "90 FPS (Unsupported)"), "video_fps": "90"}) + fpsListModel.append({"text":qsTr("%1 FPS (Unsupported)").arg("90"), "video_fps": "90"}) } if (max_fps < 120) { - fpsListModel.append({"text":qsTr( "120 FPS (Unsupported)"), "video_fps": "120"}) + fpsListModel.append({"text":qsTr("%1 FPS (Unsupported)").arg("120"), "video_fps": "120"}) } } @@ -302,7 +302,7 @@ Flickable { Label { width: parent.width id: bitrateTitle - text: qsTr("Video bitrate: ") + text: qsTr("Video bitrate:") font.pointSize: 12 wrapMode: Text.Wrap } @@ -328,7 +328,7 @@ Flickable { width: Math.min(bitrateDesc.implicitWidth, parent.width) onValueChanged: { - bitrateTitle.text = qsTr("Video bitrate: " + (value / 1000.0) + " Mbps") + bitrateTitle.text = qsTr("Video bitrate: %1 Mbps").arg(value / 1000.0) StreamingPreferences.bitrateKbps = value } } @@ -403,7 +403,7 @@ Flickable { id: vsyncCheck width: parent.width hoverEnabled: true - text: "V-Sync" + text: qsTr("V-Sync") font.pointSize: 12 checked: StreamingPreferences.enableVsync onCheckedChanged: { @@ -440,7 +440,7 @@ Flickable { id: audioSettingsGroupBox width: (parent.width - (parent.leftPadding + parent.rightPadding)) padding: 12 - title: qsTr("Audio Settings") + title: "" + qsTr("Audio Settings") + "" font.pointSize: 12 Column { @@ -475,15 +475,15 @@ Flickable { model: ListModel { id: audioListModel ListElement { - text: "Stereo" + text: qsTr("Stereo") val: StreamingPreferences.AC_STEREO } ListElement { - text: "5.1 surround sound" + text: qsTr("5.1 surround sound") val: StreamingPreferences.AC_51_SURROUND } ListElement { - text: "7.1 surround sound" + text: qsTr("7.1 surround sound") val: StreamingPreferences.AC_71_SURROUND } } @@ -500,7 +500,7 @@ Flickable { id: uiSettingsGroupBox width: (parent.width - (parent.leftPadding + parent.rightPadding)) padding: 12 - title: qsTr("UI Settings") + title: "" + qsTr("UI Settings") + "" font.pointSize: 12 Column { @@ -562,7 +562,7 @@ Flickable { id: gamepadSettingsGroupBox width: (parent.width - (parent.leftPadding + parent.rightPadding)) padding: 12 - title: qsTr("Input Settings") + title: "" + qsTr("Input Settings") + "" font.pointSize: 12 Column { @@ -582,7 +582,7 @@ Flickable { ToolTip.delay: 1000 ToolTip.timeout: 5000 ToolTip.visible: hovered - ToolTip.text: qsTr("Forces a single gamepad to always stay connected to the host, even if no gamepads are actually connected to this PC.\n") + + ToolTip.text: qsTr("Forces a single gamepad to always stay connected to the host, even if no gamepads are actually connected to this PC.") + "\n" + qsTr("Only enable this option when streaming a game that doesn't support gamepads being connected after startup.") } @@ -601,8 +601,8 @@ Flickable { ToolTip.delay: 1000 ToolTip.timeout: 5000 ToolTip.visible: hovered - ToolTip.text: qsTr("This enables mouse control without capturing the client's mouse cursor. It will not work in most games.\n - You can toggle this while streaming using Ctrl+Alt+Shift+M.") + ToolTip.text: qsTr("This enables mouse control without capturing the client's mouse cursor. It will not work in most games.") + "\n" + + qsTr("You can toggle this while streaming using Ctrl+Alt+Shift+M.") } CheckBox { @@ -662,7 +662,7 @@ Flickable { id: hostSettingsGroupBox width: (parent.width - (parent.leftPadding + parent.rightPadding)) padding: 12 - title: qsTr("Host Settings") + title: "" + qsTr("Host Settings") + "" font.pointSize: 12 Column { @@ -713,7 +713,7 @@ Flickable { id: advancedSettingsGroupBox width: (parent.width - (parent.leftPadding + parent.rightPadding)) padding: 12 - title: qsTr("Advanced Settings") + title: "" + qsTr("Advanced Settings") + "" font.pointSize: 12 Column { @@ -798,15 +798,15 @@ Flickable { val: StreamingPreferences.VCC_AUTO } ListElement { - text: "H.264" + text: qsTr("H.264") val: StreamingPreferences.VCC_FORCE_H264 } ListElement { - text: "HEVC (H.265)" + text: qsTr("HEVC (H.265)") val: StreamingPreferences.VCC_FORCE_HEVC } /*ListElement { - text: "HEVC HDR (Experimental)" + text: qsTr("HEVC HDR (Experimental)") val: StreamingPreferences.VCC_FORCE_HEVC_HDR }*/ } diff --git a/app/gui/StreamSegue.qml b/app/gui/StreamSegue.qml index 784094af..8126a30b 100644 --- a/app/gui/StreamSegue.qml +++ b/app/gui/StreamSegue.qml @@ -8,19 +8,19 @@ import Session 1.0 Item { property Session session property string appName - property string stageText : qsTr("Starting " + appName + "...") + property string stageText : qsTr("Starting %1...").arg(appName) property bool quitAfter : false function stageStarting(stage) { // Update the spinner text - stageText = qsTr("Starting " + stage + "...") + stageText = qsTr("Starting %1...").arg(stage) } function stageFailed(stage, errorCode) { // Display the error dialog after Session::exec() returns - streamSegueErrorDialog.text = qsTr("Starting " + stage + " failed: Error " + errorCode) + streamSegueErrorDialog.text = qsTr("Starting %1 failed: Error %2").arg(stage).arg(errorCode) } function connectionStarted() @@ -65,7 +65,7 @@ Item { function sessionFinished(portTestResult) { if (portTestResult !== 0 && portTestResult !== -1 && streamSegueErrorDialog.text) { - streamSegueErrorDialog.text += qsTr("\n\nThis PC's Internet connection is blocking Moonlight. Streaming over the Internet may not work while connected to this network.") + streamSegueErrorDialog.text += "\n\n" + qsTr("This PC's Internet connection is blocking Moonlight. Streaming over the Internet may not work while connected to this network.") } // Enable GUI gamepad usage now @@ -147,9 +147,8 @@ Item { // in the hintText control itself to synchronize // with Session.exec() which requires no concurrent // gamepad usage. - hintText.text = SdlGamepadKeyNavigation.getConnectedGamepads() > 0 ? - qsTr("Tip: Press Start+Select+L1+R1 to disconnect your session") : - qsTr("Tip: Press Ctrl+Alt+Shift+Q to disconnect your session") + hintText.text = qsTr("Tip:") + " " + qsTr("Press %1 to disconnect your session").arg(SdlGamepadKeyNavigation.getConnectedGamepads() > 0 ? + qsTr("Start+Select+L1+R1") : qsTr("Ctrl+Alt+Shift+Q")) // Stop GUI gamepad usage now SdlGamepadKeyNavigation.disable() diff --git a/app/gui/main.qml b/app/gui/main.qml index 0b8492aa..bff99647 100644 --- a/app/gui/main.qml +++ b/app/gui/main.qml @@ -224,7 +224,7 @@ ApplicationWindow { Label { id: versionLabel visible: stackView.currentItem.objectName === qsTr("Settings") - text: "Version " + SystemProperties.versionString + text: qsTr("Version %1").arg(SystemProperties.versionString) font.pointSize: 12 horizontalAlignment: Qt.AlignRight verticalAlignment: Qt.AlignVCenter @@ -299,7 +299,7 @@ ApplicationWindow { function updateAvailable(version, url) { - ToolTip.text = qsTr("Update available for Moonlight: Version ") + version + ToolTip.text = qsTr("Update available for Moonlight: Version %1").arg(version) updateButton.browserUrl = url updateButton.visible = true } @@ -346,11 +346,11 @@ ApplicationWindow { ToolTip.delay: 1000 ToolTip.timeout: 3000 ToolTip.visible: hovered - ToolTip.text: "Gamepad Mapper" + ToolTip.text: qsTr("Gamepad Mapper") iconSource: "qrc:/res/ic_videogame_asset_white_48px.svg" - onClicked: navigateTo("qrc:/gui/GamepadMapper.qml", "Gamepad Mapping") + onClicked: navigateTo("qrc:/gui/GamepadMapper.qml", qsTr("Gamepad Mapping")) Keys.onDownPressed: { stackView.currentItem.forceActiveFocus(Qt.TabFocus) @@ -384,16 +384,16 @@ ApplicationWindow { ErrorMessageDialog { id: noHwDecoderDialog - text: qsTr("No functioning hardware accelerated H.264 video decoder was detected by Moonlight. ") + - qsTr("Your streaming performance may be severely degraded in this configuration.") + text: qsTr("No functioning hardware accelerated H.264 video decoder was detected by Moonlight. " + + "Your streaming performance may be severely degraded in this configuration.") helpText: qsTr("Click the Help button for more information on solving this problem.") helpUrl: "https://github.com/moonlight-stream/moonlight-docs/wiki/Fixing-Hardware-Decoding-Problems" } ErrorMessageDialog { id: xWaylandDialog - text: qsTr("Hardware acceleration doesn't work on XWayland. Continuing on XWayland may result in poor streaming performance. ") + - qsTr("Try running with QT_QPA_PLATFORM=wayland or switch to X11.") + text: qsTr("Hardware acceleration doesn't work on XWayland. Continuing on XWayland may result in poor streaming performance. " + + "Try running with QT_QPA_PLATFORM=wayland or switch to X11.") helpText: qsTr("Click the Help button for more information.") helpUrl: "https://github.com/moonlight-stream/moonlight-docs/wiki/Fixing-Hardware-Decoding-Problems" } @@ -410,7 +410,7 @@ ApplicationWindow { ErrorMessageDialog { id: unmappedGamepadDialog property string unmappedGamepads : "" - text: qsTr("Moonlight detected gamepads without a mapping:\n") + unmappedGamepads + text: qsTr("Moonlight detected gamepads without a mapping:") + "\n" + unmappedGamepads helpTextSeparator: "\n\n" helpText: qsTr("Click the Help button for information on how to map your gamepads.") helpUrl: "https://github.com/moonlight-stream/moonlight-docs/wiki/Gamepad-Mapping" diff --git a/app/languages/qml_fr.qm b/app/languages/qml_fr.qm new file mode 100644 index 0000000000000000000000000000000000000000..0a0600e03e243386e8229e7a086f630acbe3a616 GIT binary patch literal 20663 zcmeHPeT*DueSX*Hud~nRBo0Xki9Jr7*vZ+KI2aR5OgNuo`-0Ctd(U==(ztW8vv-4c zXErmlK3^I_XxgeskcKvdlC~+N6jW7>R9aL%R4A$dk%~a!kJ9p?0xim+LRAV?(<0jE zd4KcHJG(o3zKA0A4`kVQJ3I5fzt89Q^^WiONbRcU{`Gg?_4%#WeDW9H_m^M)pi*j8 zJwAKr7y9JTUaZdK~=hV|)=?0s*d)T=*Mx&3>eRcgxQkQ zZ>dD@eh@$Jt33YrW~E*hR-X9#gG%jvu=24jo>I4bbH&C7{z$3U?^>~E{&}S~UAN-i z|GHeM&Ebki-%wTR%FnEL?#@R+_%94xy5V8a?GNnSOgcX`Ft+7AN?rZ-f#V zxCP%I{q)L*zJt%Ju9u(VKU(?dF6_5%WaZyYfY0j|R}DY?4W+j4UUk)dO{I2zZ&mf1 zgINFhRd2lZ0i|wx=c;#{`w95_@v3)!1$Gz{hG?zPb#(I`8Df)gnh4icFij$K*#<)Yutoc-c`>r2Z^EWU4 z0rq>#nlByxhEiiI*6#bOyFusgudVOrbN8%$DBS|Ny>0NudvX2nmj++;XW(zeor90< zsVa5*p}~)ReORfxzc%>szkN!ngS!Sl^Zo>K_}buq+}DQu?p!xJ^-;+8#dYaZpT=jk z?xX+qH17Mty3hXB^GY3g$GU%d0Q9Whvi|n_vCgaRUH`>LaD9AY{ZB5(^RHbqwC0&# zg`Tz!ZT;4)Qa68l=;*sZ=el!4;WU2ke|+ePuR@NO-7@s-cgMkhb?D<2?0?Jq<>%cW z9QyVNeBM*ta0%sn$AJy6@Im*;dpF$i`j;#9@{e!W|Mu4@HMn-eTictk&bK!F=AMU@ z8Xl9MuX}WO-KVhbtxpbbxN;HqSBH-eOn{#^4^OYgeWUA!=VzXVoL(IM!fM$0j`wW5 z{5}5wI#zGI{RiM{<99ZClLJca`tZj1m+x2V(x*0lrT*8T=hGWsocV-OH|+_Onrz?> zb+sB-uJY8J@>Q%H)xb|jy$S!e*HUn+@pte@Q1hL`Zqr|bPiw|ntbL9(MqfV%{3RH?e{g)U#(GJq`1srt}54J$O4?1f4XE__|Px?u_*@uyB zU?IW+A(puSdic8o*4p@Y3NjkypIjo&T}kTBG=gL<2xlEH3PayZgD7;;$e9`+9UY~h zE*ozIq`R8NzT2$&vu$6?>}GXHv)aVJDK;SG4k+ip4YeJcw(zHO!;M@hUd z2CQrXE7jDEdw7|KXy!n1tY$$!ISRp(<;K-K1uD_%mFo$v36Bj3+QaW@Ch(+->rF=^ zx0W&OK-y`>`4Z$jr#DK}E_EI{Y-3{wfBzc<8lvQS1K$SvYJ$5c@ED)T0PmzZi{2e| zXRh@fW3lfnL~SQ&XTQw5VM?9Helt4nJLz1IK>v4A`>UtC+)JKT^b!)VsLiYm;!Jd2M^}A6=Y!xR3XQNjc@;`cDMo#<9p2(_$e zNdi;++=L`Vl0_5Vm+!RYt`LN3Nre8q69Ut<7&6P<*R}tOmDoSXtVx`S8le3xWVF

Q2wG-d*9@@SOy^?cU6LC_k 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 + + + + AppView + + + + Resume Game + Reprendre le jeu + + + + + Quit Game + Quitter le jeu + + + + Launch Game + Lancer le jeu + + + + Hide Game + Cacher le jeu + + + + Are you sure you want to quit %1? Any unsaved progress will be lost. + + + + + CliQuitStreamSegue + + + Establishing connection to PC... + connexion au PC... + + + + Quitting app... + Fermeture de l'app... + + + + CliStartStreamSegue + + + Establishing connection to PC... + connexion au PC... + + + + Loading app list... + Chargement de la liste des applications... + + + + Are you sure you want to quit %1? Any unsaved progress will be lost. + + + + + GamepadMapper + + + Gamepad Mapping + + + + + NvHTTP + + + Missing audio capture device. Reinstalling GeForce Experience should resolve this error. + + + + + PcView + + + Computers + Ordinateurs + + + + Unable to connect to the specified PC. + Impossible de se connecter au PC spécifié. + + + + This PC's Internet connection is blocking Moonlight. Streaming over the Internet may not work while connected to this network. + La connexion Internet de ce PC bloque Moonlight. Le streaming sur Internet peut ne pas fonctionner lorsqu'il est connecté à ce réseau. + + + + Click the Help button for possible solutions. + Cliquez sur le bouton Aide pour connaître les solutions possibles. + + + + Searching for PCs with NVIDIA GameStream enabled... + La recherche de PC avec NVIDIA GameStream activé... + + + + Automatic PC discovery is disabled. Add your PC manually. + La découverte automatique des PC est désactivée. Ajoutez votre PC manuellement. + + + + View Apps + Voir les applications + + + + View Hidden Apps + Voir les applications cachées + + + + Wake PC + Réveiller le PC + + + + Test Network + Test Réseau + + + + Rename PC + Renommer le PC + + + + Delete PC + Supprimer le PC + + + + 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. + Vous ne pouvez pas effectuer de couplage alors qu'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'effectuer l'appariement. + + + + Please enter %1 on your GameStream PC. This dialog will close when pairing is completed. + + + + + Are you sure you want to remove this PC? + Êtes-vous sûr de vouloir supprimer ce PC ? + + + + Moonlight is testing your network connection to determine if NVIDIA GameStream is blocked. + Moonlight teste votre connexion réseau pour déterminer si NVIDIA GameStream est bloqué. + + + + This may take a few seconds… + + + + + This network does not appear to be blocking Moonlight. If you still have trouble connecting, check your PC's firewall settings. + 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. + + + + 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's Internet connection. + Si vous essayez d'utiliser la diffusion en continu sur Internet, installez l'outil d'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. + + + + Your PC's current network connection seems to be blocking Moonlight. Streaming over the Internet may not work while connected to this network. + La connexion réseau actuelle de votre PC semble bloquer le Moonlight. Il se peut que la diffusion en continu sur Internet ne fonctionne pas lorsque vous êtes connecté à ce réseau. + + + + The following network ports were blocked: + Les ports de réseau suivants ont été bloqués : + + + + The network test could not be performed because none of Moonlight's connection testing servers were reachable from this PC. Check your Internet connection or try again later. + Le test de réseau n'a pas pu être effectué car aucun des serveurs de test de connexion de Moonlight n'était accessible depuis ce PC. Vérifiez votre connexion Internet ou réessayez plus tard. + + + + Enter the new name for this PC: + Saisissez le nouveau nom de ce PC : + + + + PendingQuitTask + + + The running game wasn't started by this PC. You must quit the game on the host PC manually or use the device that originally started the game. + + + + + QObject + + + + Failed to connect to %1 + + + + + + Computer %1 has not been paired. Please open Moonlight to pair before streaming. + + + + + + Quitting app failed, reason: %1 + + + + + Failed to find application %1 + + + + + QuitSegue + + + Quitting %1... + + + + + Session + + + No video received from host. Check the host PC's firewall and port forwarding rules. + + + + + Your network connection isn't performing well. Reduce your video bitrate setting or try a faster connection. + + + + + Connection terminated + + + + + Your selection to enable remote desktop mouse mode may cause problems in games. + + + + + HDR is not supported with software decoding. + + + + + Your settings selection to force software decoding may cause poor streaming performance. + + + + + Using unsupported FPS options may cause stuttering or lag. + + + + + V-sync will be disabled when streaming at a higher frame rate than the display. + + + + + Using software decoding due to your selection to force HEVC without GPU support. This may cause poor streaming performance. + + + + + This PC's GPU doesn't support HEVC decoding. + + + + + Your host PC GPU doesn't support HEVC. A GeForce GTX 900-series (Maxwell) or later GPU is required for HEVC streaming. + + + + + %1 doesn't support HDR10. + + + + + Your host PC GPU doesn't support HDR streaming. A GeForce GTX 1000-series (Pascal) or later GPU is required for HDR streaming. + + + + + This PC's GPU doesn't support HEVC Main10 decoding for HDR streaming. + + + + + GeForce Experience 3.0 or higher is required for 4K streaming. + + + + + Your selected surround sound setting is not supported by the current audio device. + + + + + Failed to open audio device. Audio will be unavailable during this session. + + + + + An attached gamepad has no mapping and won't be usable. Visit the Moonlight help to resolve this. + + + + + Your host PC's GPU doesn't support streaming video resolutions over 4K. + + + + + Video resolutions over 4K are only supported by the HEVC codec. + + + + + Your selection to force hardware decoding cannot be satisfied due to missing hardware decoding support on this PC's GPU. + + + + + Your codec selection and force hardware decoding setting are not compatible. This PC's GPU lacks support for decoding your chosen codec. + + + + + GeForce Experience returned error: %1 + + + + + Unable to initialize video decoder. Please check your streaming settings and try again. + + + + + SettingsView + + + Settings + Paramètres + + + + Resolution and FPS + Résolution et FPS + + + + Setting values too high for your PC or network connection may cause lag, stuttering, or errors. + Le fait de fixer des valeurs trop élevées pour votre PC ou votre connexion réseau peut entraîner un décalage, des bégaiements ou des erreurs. + + + + Basic Settings + Paramètres de base + + + + 720p + + + + + 1080p + + + + + 1440p + + + + + 4K + + + + + + + + %1 FPS + %1 FPS + + + + + + + + %1 FPS (Unsupported) + %1 FPS (Non supporté) + + + + Video bitrate: + Bitrate vidéo : + + + + Lower the bitrate on slower connections. Raise the bitrate to increase image quality. + Baissez le débit binaire sur les connexions plus lentes. Augmentez le débit binaire pour améliorer la qualité de l'image. + + + + Video bitrate: %1 Mbps + Bitrate vidéo : %1 Mbps + + + + Display mode + Mode d'affichage + + + + (Recommended) + (Recommandé) + + + + Full-screen + Plein écran + + + + Borderless windowed + fenêtré sans bordure + + + + Windowed + Fenêtré + + + + Full-screen generally provides the best performance, but borderless windowed may work better with features like macOS Spaces, Alt+Tab, screenshot tools, on-screen overlays, etc. + 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'écran, les superpositions à l'écran, etc. + + + + V-Sync + + + + + Disabling V-Sync allows sub-frame rendering latency, but it can display visible tearing + La désactivation de V-Sync permet une latence de rendu des sous-images plus faible, mais elle peut afficher des déchirures visibles + + + + Frame pacing + Frame pacing + + + + Frame pacing reduces micro-stutter by delaying frames that come in too early + Frame pacing réduit les micro-bégaiements en retardant les images qui arrivent trop tôt + + + + Audio Settings + Réglages audio + + + + Stereo + + + + + 5.1 surround sound + + + + + 7.1 surround sound + + + + + UI Settings + Réglages de l'interface utilisateur + + + + Input Settings + Paramètres d'entrée + + + + Forces a single gamepad to always stay connected to the host, even if no gamepads are actually connected to this PC. + Forces a single gamepad to always stay connected to the host, even if no gamepads are actually connected to this PC. + + + + This enables mouse control without capturing the client's mouse cursor. It will not work in most games. + Cela permet de contrôler la souris sans avoir à capturer le curseur du client. Cela ne fonctionne pas dans la plupart des jeux. + + + + You can toggle this while streaming using Ctrl+Alt+Shift+M. + Vous pouvez le basculer pendant la diffusion en utilisant Ctrl+Alt+Shift+M. + + + + Host Settings + Paramètres de l'hôte + + + + Advanced Settings + Paramètres avancés + + + + Audio configuration + Configuration audio + + + + Maximize Moonlight window on startup + Maximiser la fenêtre Moonlight au démarrage + + + + Show connection quality warnings + Afficher les avertissements sur la qualité de la connexion + + + + Discord Rich Presence integration + Intégration de la présence Discord Rich + + + + Updates your Discord status to display the name of the game you're streaming. + Met à jour votre statut Discord pour afficher le nom du jeu que vous diffusez en continu. + + + + Force gamepad #1 always present + Forcé la manette de jeu Force #1 à être toujours présente + + + + Only enable this option when streaming a game that doesn't support gamepads being connected after startup. + N'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. + + + + Optimize mouse for remote desktop instead of games + Optimiser la souris pour le bureau à distance plutôt que pour les jeux + + + + Use touchscreen as a trackpad + Utiliser l'écran tactile comme trackpad + + + + When checked, the touchscreen acts like a trackpad. When unchecked, the touchscreen will directly control the mouse pointer. + Lorsqu'on le vérifie, l'écran tactile agit comme un pavé tactile. Lorsqu'il n'est pas coché, l'écran tactile contrôle directement le pointeur de la souris. + + + + Gamepad mouse mode support + Prise en charge du mode souris de la manette de jeu + + + + When enabled, holding the Start button will toggle mouse mode + Lorsqu'il est activé, le maintien du bouton "Start" permet de passer en mode souris + + + + Swap mouse buttons + Échanger les boutons de la souris + + + + When checked, swap the left and right mouse buttons + Lorsque la case est cochée, permuter les boutons gauche et droit de la souris + + + + Optimize game settings for streaming + Optimiser les paramètres du jeu pour la diffusion en continu + + + + Play audio on host PC + Lecture audio sur le PC hôte + + + + Quit app on host PC after ending stream + Quitter l'application sur le PC hôte après avoir terminé le flux + + + + This will close the app or game you are streaming when you end your stream. You will lose any unsaved progress! + Cela fermera l'application ou le jeu que vous êtes en train de diffuser lorsque vous aurez terminé votre flux. Vous perdrez tout progrès non sauvegardé ! + + + + Video decoder + Décodeur vidéo + + + + + Automatic (Recommended) + Automatique (recommandé) + + + + Force software decoding + Forcer le décodage des logiciels + + + + Force hardware decoding + Forcer le décodage du matériel + + + + Video codec + Codec vidéo + + + + H.264 + + + + + HEVC (H.265) + + + + + Unlock unsupported FPS options + Débloquer les options non supportées du FPS + + + + Automatically find PCs on the local network (Recommended) + Trouver automatiquement les PC sur le réseau local (recommandé) + + + + Automatically detect blocked connections (Recommended) + Détecter automatiquement les connexions bloquées (recommandé) + + + + StreamSegue + + + + Starting %1... + + + + + Starting %1 failed: Error %2 + + + + + This PC's Internet connection is blocking Moonlight. Streaming over the Internet may not work while connected to this network. + La connexion Internet de ce PC bloque Moonlight. Le streaming sur Internet peut ne pas fonctionner lorsqu'il est connecté à ce réseau. + + + + Tip: + + + + + Press %1 to disconnect your session + Appuyez sur %1 pour déconnecter votre session + + + + Start+Select+L1+R1 + Start+Select+L1+R1 + + + + Ctrl+Alt+Shift+Q + Ctrl + Alt + Shift + Q + + + + main + + + + + + Settings + Paramètres + + + + Version %1 + + + + + Join our community on Discord + Rejoignez notre communauté sur Discord + + + + Computers + Ordinateurs + + + + Add PC manually + Ajouter un PC manuellement + + + + Update available for Moonlight: Version %1 + Mise à jour disponible pour Moonlight : Version %1 + + + + Gamepad Mapper + + + + + Gamepad Mapping + + + + + No functioning hardware accelerated H.264 video decoder was detected by Moonlight. Your streaming performance may be severely degraded in this configuration. + Aucun décodeur vidéo H.264 accéléré par le matériel n'a été détecté par Moonlight. Dans cette configuration, les performances de votre streaming peuvent être fortement dégradées. + + + + Hardware acceleration doesn't work on XWayland. Continuing on XWayland may result in poor streaming performance. Try running with QT_QPA_PLATFORM=wayland or switch to X11. + L'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. + + + + Moonlight detected gamepads without a mapping: + Moonlight a détecté des manettes de jeu san configuration: + + + + Help + Aide + + + + Click the Help button for more information on solving this problem. + Cliquez sur le bouton Aide pour obtenir plus d'informations sur la manière de résoudre ce problème. + + + + Click the Help button for more information. + Cliquez sur le bouton Aide pour plus d'informations. + + + + This PC is running a 64-bit version of Windows. Please download the x64 version of Moonlight for the best streaming performance. + 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. + + + + Click the Help button for information on how to map your gamepads. + Cliquez sur le bouton Aide pour obtenir des informations sur la configuration de vos manettes de jeu. + + + + Are you sure you want to quit? + Vous êtes sûr de vouloir quitter? + + + + Enter the IP address of your GameStream PC: + Saisissez l'adresse IP de votre PC GameStream : + + + diff --git a/app/main.cpp b/app/main.cpp index 8e2c7769..ae522b53 100644 --- a/app/main.cpp +++ b/app/main.cpp @@ -421,7 +421,7 @@ int main(int argc, char *argv[]) QGuiApplication app(argc, argv); QTranslator translator; - qDebug() <<"loaded: " <res/baseline-error_outline-24px.svg res/baseline-check_circle_outline-24px.svg res/Discord-Logo-White.svg - ../languages/qml_fr.ts - ../languages/qml_fr.qm + languages/qml_fr.ts + languages/qml_fr.qm SDL_GameControllerDB/gamecontrollerdb.txt diff --git a/app/streaming/session.cpp b/app/streaming/session.cpp index c0062ec3..035c2d60 100644 --- a/app/streaming/session.cpp +++ b/app/streaming/session.cpp @@ -94,17 +94,17 @@ void Session::clConnectionTerminated(int errorCode) case ML_ERROR_NO_VIDEO_TRAFFIC: s_ActiveSession->m_UnexpectedTermination = true; - emit s_ActiveSession->displayLaunchError("No video received from host. Check the host PC's firewall and port forwarding rules."); + emit s_ActiveSession->displayLaunchError(tr("No video received from host. Check the host PC's firewall and port forwarding rules.")); break; case ML_ERROR_NO_VIDEO_FRAME: s_ActiveSession->m_UnexpectedTermination = true; - emit s_ActiveSession->displayLaunchError("Your network connection isn't performing well. Reduce your video bitrate setting or try a faster connection."); + emit s_ActiveSession->displayLaunchError(tr("Your network connection isn't performing well. Reduce your video bitrate setting or try a faster connection.")); break; default: s_ActiveSession->m_UnexpectedTermination = true; - emit s_ActiveSession->displayLaunchError("Connection terminated"); + emit s_ActiveSession->displayLaunchError(tr("Connection terminated")); break; } @@ -564,24 +564,24 @@ bool Session::validateLaunch(SDL_Window* testWindow) QStringList warningList; if (m_Preferences->absoluteMouseMode && !m_App.isAppCollectorGame) { - emitLaunchWarning("Your selection to enable remote desktop mouse mode may cause problems in games."); + emitLaunchWarning(tr("Your selection to enable remote desktop mouse mode may cause problems in games.")); } if (m_Preferences->videoDecoderSelection == StreamingPreferences::VDS_FORCE_SOFTWARE) { if (m_Preferences->videoCodecConfig == StreamingPreferences::VCC_FORCE_HEVC_HDR) { - emitLaunchWarning("HDR is not supported with software decoding."); + emitLaunchWarning(tr("HDR is not supported with software decoding.")); m_StreamConfig.enableHdr = false; } else { - emitLaunchWarning("Your settings selection to force software decoding may cause poor streaming performance."); + emitLaunchWarning(tr("Your settings selection to force software decoding may cause poor streaming performance.")); } } if (m_Preferences->unsupportedFps && m_StreamConfig.fps > 60) { - emitLaunchWarning("Using unsupported FPS options may cause stuttering or lag."); + emitLaunchWarning(tr("Using unsupported FPS options may cause stuttering or lag.")); if (m_Preferences->enableVsync) { - emitLaunchWarning("V-sync will be disabled when streaming at a higher frame rate than the display."); + emitLaunchWarning(tr("V-sync will be disabled when streaming at a higher frame rate than the display.")); } } @@ -598,18 +598,18 @@ bool Session::validateLaunch(SDL_Window* testWindow) m_StreamConfig.height, m_StreamConfig.fps)) { if (hevcForced) { - emitLaunchWarning("Using software decoding due to your selection to force HEVC without GPU support. This may cause poor streaming performance."); + emitLaunchWarning(tr("Using software decoding due to your selection to force HEVC without GPU support. This may cause poor streaming performance.")); } else { - emitLaunchWarning("This PC's GPU doesn't support HEVC decoding."); + emitLaunchWarning(tr("This PC's GPU doesn't support HEVC decoding.")); m_StreamConfig.supportsHevc = false; } } if (hevcForced) { if (m_Computer->maxLumaPixelsHEVC == 0) { - emitLaunchWarning("Your host PC GPU doesn't support HEVC. " - "A GeForce GTX 900-series (Maxwell) or later GPU is required for HEVC streaming."); + emitLaunchWarning(tr("Your host PC GPU doesn't support HEVC. " + "A GeForce GTX 900-series (Maxwell) or later GPU is required for HEVC streaming.")); // Moonlight-common-c will handle this case already, but we want // to set this explicitly here so we can do our hardware acceleration @@ -625,12 +625,12 @@ bool Session::validateLaunch(SDL_Window* testWindow) // Check that the app supports HDR if (!m_App.hdrSupported) { - emitLaunchWarning(m_App.name + " doesn't support HDR10."); + emitLaunchWarning(tr("%1 doesn't support HDR10.").arg(m_App.name)); } // Check that the server GPU supports HDR else if (!(m_Computer->serverCodecModeSupport & 0x200)) { - emitLaunchWarning("Your host PC GPU doesn't support HDR streaming. " - "A GeForce GTX 1000-series (Pascal) or later GPU is required for HDR streaming."); + emitLaunchWarning(tr("Your host PC GPU doesn't support HDR streaming. " + "A GeForce GTX 1000-series (Pascal) or later GPU is required for HDR streaming.")); } else if (!isHardwareDecodeAvailable(testWindow, m_Preferences->videoDecoderSelection, @@ -638,7 +638,7 @@ bool Session::validateLaunch(SDL_Window* testWindow) m_StreamConfig.width, m_StreamConfig.height, m_StreamConfig.fps)) { - emitLaunchWarning("This PC's GPU doesn't support HEVC Main10 decoding for HDR streaming."); + emitLaunchWarning(tr("This PC's GPU doesn't support HEVC Main10 decoding for HDR streaming.")); } else { // TODO: Also validate display capabilites @@ -651,7 +651,7 @@ bool Session::validateLaunch(SDL_Window* testWindow) if (m_StreamConfig.width >= 3840) { // Only allow 4K on GFE 3.x+ if (m_Computer->gfeVersion.isEmpty() || m_Computer->gfeVersion.startsWith("2.")) { - emitLaunchWarning("GeForce Experience 3.0 or higher is required for 4K streaming."); + emitLaunchWarning(tr("GeForce Experience 3.0 or higher is required for 4K streaming.")); m_StreamConfig.width = 1920; m_StreamConfig.height = 1080; @@ -666,29 +666,29 @@ bool Session::validateLaunch(SDL_Window* testWindow) audioTestPassed = testAudio(AUDIO_CONFIGURATION_STEREO); if (audioTestPassed) { m_StreamConfig.audioConfiguration = AUDIO_CONFIGURATION_STEREO; - emitLaunchWarning("Your selected surround sound setting is not supported by the current audio device."); + emitLaunchWarning(tr("Your selected surround sound setting is not supported by the current audio device.")); } } // If nothing worked, warn the user that audio will not work m_AudioDisabled = !audioTestPassed; if (m_AudioDisabled) { - emitLaunchWarning("Failed to open audio device. Audio will be unavailable during this session."); + emitLaunchWarning(tr("Failed to open audio device. Audio will be unavailable during this session.")); } // Check for unmapped gamepads if (!SdlInputHandler::getUnmappedGamepads().isEmpty()) { - emitLaunchWarning("An attached gamepad has no mapping and won't be usable. Visit the Moonlight help to resolve this."); + 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 using dimensions over 4096 and H.264. if (m_StreamConfig.width > 4096 || m_StreamConfig.height > 4096) { if (m_Computer->maxLumaPixelsHEVC == 0) { - emit displayLaunchError("Your host PC's GPU doesn't support streaming video resolutions over 4K."); + emit displayLaunchError(tr("Your host PC's GPU doesn't support streaming video resolutions over 4K.")); return false; } else if (!m_StreamConfig.supportsHevc) { - emit displayLaunchError("Video resolutions over 4K are only supported by the HEVC codec."); + emit displayLaunchError(tr("Video resolutions over 4K are only supported by the HEVC codec.")); return false; } } @@ -702,10 +702,10 @@ bool Session::validateLaunch(SDL_Window* testWindow) m_StreamConfig.height, m_StreamConfig.fps)) { if (m_Preferences->videoCodecConfig == StreamingPreferences::VCC_AUTO) { - emit displayLaunchError("Your selection to force hardware decoding cannot be satisfied due to missing hardware decoding support on this PC's GPU."); + emit displayLaunchError(tr("Your selection to force hardware decoding cannot be satisfied due to missing hardware decoding support on this PC's GPU.")); } else { - emit displayLaunchError("Your codec selection and force hardware decoding setting are not compatible. This PC's GPU lacks support for decoding your chosen codec."); + emit displayLaunchError(tr("Your codec selection and force hardware decoding setting are not compatible. This PC's GPU lacks support for decoding your chosen codec.")); } // Fail the launch, because we won't manage to get a decoder for the actual stream @@ -1013,7 +1013,7 @@ bool Session::startConnectionAsync() m_InputHandler->getAttachedGamepadMask()); } } catch (const GfeHttpResponseException& e) { - emit displayLaunchError("GeForce Experience returned error: " + e.toQString()); + emit displayLaunchError(tr("GeForce Experience returned error: %1").arg(e.toQString())); return false; } catch (const QtNetworkReplyException& e) { emit displayLaunchError(e.toQString()); @@ -1394,7 +1394,7 @@ void Session::exec(int displayOriginX, int displayOriginY) SDL_AtomicUnlock(&m_DecoderLock); SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Failed to recreate decoder after reset"); - emit displayLaunchError("Unable to initialize video decoder. Please check your streaming settings and try again."); + emit displayLaunchError(tr("Unable to initialize video decoder. Please check your streaming settings and try again.")); goto DispatchDeferredCleanup; } diff --git a/languages/qml_fr.qm b/languages/qml_fr.qm deleted file mode 100644 index 9de44f6b5235e60142fbb4d3a270e298707dd9b5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21625 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 diff --git a/languages/qml_fr.ts b/languages/qml_fr.ts deleted file mode 100644 index df6aa473..00000000 --- a/languages/qml_fr.ts +++ /dev/null @@ -1,563 +0,0 @@ - - - - - AppView - - - - Resume Game - Reprendre le jeu - - - - - Quit Game - Quitter le jeu - - - - Launch Game - Lancer le jeu - - - - Hide Game - Cacher le jeu - - - - CliQuitStreamSegue - - - Establishing connection to PC... - connexion au PC... - - - - Quitting app... - Fermeture de l'app... - - - - CliStartStreamSegue - - - Establishing connection to PC... - connexion au PC... - - - - Loading app list... - Chargement de la liste des applications... - - - - PcView - - - Computers - Ordinateurs - - - - Unable to connect to the specified PC. - Impossible de se connecter au PC spécifié. - - - - - -This PC's Internet connection is blocking Moonlight. Streaming over the Internet may not work while connected to this network. - - -La connexion Internet de ce PC bloque Moonlight. Le streaming sur Internet peut ne pas fonctionner lorsqu'il est connecté à ce réseau. - - - - Click the Help button for possible solutions. - Cliquez sur le bouton Aide pour connaître les solutions possibles. - - - - Searching for PCs with NVIDIA GameStream enabled... - La recherche de PC avec NVIDIA GameStream activé... - - - - Automatic PC discovery is disabled. Add your PC manually. - La découverte automatique des PC est désactivée. Ajoutez votre PC manuellement. - - - - View Apps - Voir les applications - - - - View Hidden Apps - Voir les applications cachées - - - - Wake PC - Réveiller le PC - - - - Test Network - Test Réseau - - - - Rename PC - Renommer le PC - - - - Delete PC - Supprimer le PC - - - - 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. - Vous ne pouvez pas effectuer de couplage alors qu'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'effectuer l'appariement. - - - - Are you sure you want to remove this PC? - Êtes-vous sûr de vouloir supprimer ce PC ? - - - - Moonlight is testing your network connection to determine if NVIDIA GameStream is blocked. - -This may take a few seconds… - Moonlight teste votre connexion réseau pour déterminer si NVIDIA GameStream est bloqué - -This may take a few seconds… - - - - The network test could not be performed because none of Moonlight's connection testing servers were reachable from this PC. Check your Internet connection or try again later. - Le test de réseau n'a pas pu être effectué car aucun des serveurs de test de connexion de Moonlight n'était accessible depuis ce PC. Vérifiez votre connexion Internet ou réessayez plus tard. - - - - This network does not appear to be blocking Moonlight. If you still have trouble connecting, check your PC's firewall settings. - -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's Internet connection. - 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. - -Si vous essayez d'utiliser la diffusion en continu sur Internet, installez l'outil d'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. - - - - Your PC's current network connection seems to be blocking Moonlight. Streaming over the Internet may not work while connected to this network. - -The following network ports were blocked: - - La connexion réseau actuelle de votre PC semble bloquer le Moonlight. Il se peut que la diffusion en continu sur Internet ne fonctionne pas lorsque vous êtes connecté à ce réseau. - -Les ports de réseau suivants ont été bloqués : - - - - - Enter the new name for this PC: - Saisissez le nouveau nom de ce PC : - - - - SettingsView - - - Settings - Paramètres - - - - <font color="skyblue">Basic Settings</font> - <font color="skyblue">Paramètres de base</font> - - - - Resolution and FPS - Résolution et FPS - - - - Setting values too high for your PC or network connection may cause lag, stuttering, or errors. - Le fait de fixer des valeurs trop élevées pour votre PC ou votre connexion réseau peut entraîner un décalage, des bégaiements ou des erreurs. - - - - 30 FPS - 30 FPS - - - - 60 FPS - 60 FPS - - - - - 90 FPS (Unsupported) - 90 FPS (Non supporté) - - - - - 120 FPS (Unsupported) - 120 FPS (Non supporté) - - - - FPS (Unsupported) - FPS (Non supporté) - - - - Video bitrate: - Bitrate vidéo : - - - - Lower the bitrate on slower connections. Raise the bitrate to increase image quality. - Baissez le débit binaire sur les connexions plus lentes. Augmentez le débit binaire pour améliorer la qualité de l'image. - - - - Display mode - Mode d'affichage - - - - (Recommended) - (Recommandé) - - - - Full-screen - Plein écran - - - - Borderless windowed - fenêtré sans bordure - - - - Windowed - Fenêtré - - - - Full-screen generally provides the best performance, but borderless windowed may work better with features like macOS Spaces, Alt+Tab, screenshot tools, on-screen overlays, etc. - 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'écran, les superpositions à l'écran, etc. - - - - Disabling V-Sync allows sub-frame rendering latency, but it can display visible tearing - La désactivation de V-Sync permet une latence de rendu des sous-images plus faible, mais elle peut afficher des déchirures visibles - - - - Frame pacing - Frame pacing - - - - Frame pacing reduces micro-stutter by delaying frames that come in too early - Frame pacing réduit les micro-bégaiements en retardant les images qui arrivent trop tôt - - - - <font color="skyblue">Audio Settings</font> - <font color="skyblue">Réglages audio</font> - - - - Audio configuration - Configuration audio - - - - <font color="skyblue">UI Settings</font> - <font color="skyblue">Réglages de l'interface utilisateur</font> - - - - Maximize Moonlight window on startup - Maximiser la fenêtre Moonlight au démarrage - - - - Show connection quality warnings - Afficher les avertissements sur la qualité de la connexion - - - - Discord Rich Presence integration - Intégration de la présence Discord Rich - - - - Updates your Discord status to display the name of the game you're streaming. - Met à jour votre statut Discord pour afficher le nom du jeu que vous diffusez en continu. - - - - <font color="skyblue">Input Settings</font> - <font color="skyblue">Paramètres d'entrée</font> - - - - Force gamepad #1 always present - Forcé la manette de jeu Force #1 à être toujours présente - - - - Forces a single gamepad to always stay connected to the host, even if no gamepads are actually connected to this PC. - - Forces a single gamepad to always stay connected to the host, even if no gamepads are actually connected to this PC. - - - - - Only enable this option when streaming a game that doesn't support gamepads being connected after startup. - N'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. - - - - Optimize mouse for remote desktop instead of games - Optimiser la souris pour le bureau à distance plutôt que pour les jeux - - - - This enables mouse control without capturing the client's mouse cursor. It will not work in most games. - - You can toggle this while streaming using Ctrl+Alt+Shift+M. - Cela permet de contrôler la souris sans avoir à capturer le curseur du client. Cela ne fonctionne pas dans la plupart des jeux. - - Vous pouvez le basculer pendant la diffusion en utilisant Ctrl+Alt+Shift+M. - - - - Use touchscreen as a trackpad - Utiliser l'écran tactile comme trackpad - - - - When checked, the touchscreen acts like a trackpad. When unchecked, the touchscreen will directly control the mouse pointer. - Lorsqu'on le vérifie, l'écran tactile agit comme un pavé tactile. Lorsqu'il n'est pas coché, l'écran tactile contrôle directement le pointeur de la souris. - - - - Gamepad mouse mode support - Prise en charge du mode souris de la manette de jeu - - - - When enabled, holding the Start button will toggle mouse mode - Lorsqu'il est activé, le maintien du bouton "Start" permet de passer en mode souris - - - - Swap mouse buttons - Échanger les boutons de la souris - - - - When checked, swap the left and right mouse buttons - Lorsque la case est cochée, permuter les boutons gauche et droit de la souris - - - - <font color="skyblue">Host Settings</font> - <font color="skyblue">Paramètres de l'hôte</font> - - - - Optimize game settings for streaming - Optimiser les paramètres du jeu pour la diffusion en continu - - - - Play audio on host PC - Lecture audio sur le PC hôte - - - - Quit app on host PC after ending stream - Quitter l'application sur le PC hôte après avoir terminé le flux - - - - This will close the app or game you are streaming when you end your stream. You will lose any unsaved progress! - Cela fermera l'application ou le jeu que vous êtes en train de diffuser lorsque vous aurez terminé votre flux. Vous perdrez tout progrès non sauvegardé ! - - - - <font color="skyblue">Advanced Settings</font> - <font color="skyblue">Paramètres avancés</font> - - - - Video decoder - Décodeur vidéo - - - - - Automatic (Recommended) - Automatique (recommandé) - - - - Force software decoding - Forcer le décodage des logiciels - - - - Force hardware decoding - Forcer le décodage du matériel - - - - Video codec - Codec vidéo - - - - Unlock unsupported FPS options - Débloquer les options non supportées du FPS - - - - Automatically find PCs on the local network (Recommended) - Trouver automatiquement les PC sur le réseau local (recommandé) - - - - Automatically detect blocked connections (Recommended) - Détecter automatiquement les connexions bloquées (recommandé) - - - - StreamSegue - - - - -This PC's Internet connection is blocking Moonlight. Streaming over the Internet may not work while connected to this network. - - -La connexion Internet de ce PC bloque Moonlight. Le streaming sur Internet peut ne pas fonctionner lorsqu'il est connecté à ce réseau. - - - - Tip: Press Start+Select+L1+R1 to disconnect your session - Tip: Appuyez sur Start+Select+L1+R1 pour déconnecter votre session - - - - Tip: Press Ctrl+Alt+Shift+Q to disconnect your session - Tip: Appuyez sur Ctrl + Alt + Shift + Q pour déconnecter votre session - - - - main - - - - - - Settings - Paramètres - - - - Join our community on Discord - Rejoignez notre communauté sur Discord - - - - Computers - Ordinateurs - - - - Add PC manually - Ajouter un PC manuellement - - - - Update available for Moonlight: Version - Mise à jour disponible pour Moonlight : Version - - - - Help - Aide - - - - No functioning hardware accelerated H.264 video decoder was detected by Moonlight. - Aucun décodeur vidéo H.264 accéléré par le matériel n'a été détecté par Moonlight. - - - - Your streaming performance may be severely degraded in this configuration. - Dans cette configuration, les performances de votre streaming peuvent être fortement dégradées. - - - - Click the Help button for more information on solving this problem. - Cliquez sur le bouton Aide pour obtenir plus d'informations sur la manière de résoudre ce problème. - - - - Hardware acceleration doesn't work on XWayland. Continuing on XWayland may result in poor streaming performance. - L'accélération matérielle ne fonctionne pas sur XWayland. Continuer sur XWayland peut entraîner de mauvaises performances de streaming. - - - - Try running with QT_QPA_PLATFORM=wayland or switch to X11. - Essayez de fonctionner avec QT_QPA_PLATFORM=wayland ou passez à X11. - - - - Click the Help button for more information. - Cliquez sur le bouton Aide pour plus d'informations. - - - - This PC is running a 64-bit version of Windows. Please download the x64 version of Moonlight for the best streaming performance. - 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. - - - - Moonlight detected gamepads without a mapping: - - Moonlight a détecté des manettes de jeu san configuration: - - - - - Click the Help button for information on how to map your gamepads. - Cliquez sur le bouton Aide pour obtenir des informations sur la configuration de vos manettes de jeu. - - - - Are you sure you want to quit? - Vous êtes sûr de vouloir quitter? - - - - Enter the IP address of your GameStream PC: - Saisissez l'adresse IP de votre PC GameStream : - - - diff --git a/moonlight-qt.pro b/moonlight-qt.pro index d05cd196..a13627df 100644 --- a/moonlight-qt.pro +++ b/moonlight-qt.pro @@ -1,4 +1,3 @@ -TRANSLATIONS += languages/qml_fr.ts TEMPLATE = subdirs SUBDIRS = \ moonlight-common-c \