French translation (#451)

* french translation

* Update main.cpp

* Update main.cpp

Co-authored-by: watchha <watchha@users.noreply.github.com>
This commit is contained in:
watchha 2020-11-21 18:42:16 +01:00 committed by GitHub
parent 19f5dc12fb
commit 2c987d2912
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
13 changed files with 679 additions and 109 deletions

View file

@ -115,7 +115,7 @@ CenteredGridView {
launchOrResumeSelectedApp()
}
ToolTip.text: "Resume Game"
ToolTip.text: qsTr("Resume Game")
ToolTip.delay: 1000
ToolTip.timeout: 3000
ToolTip.visible: hovered
@ -143,7 +143,7 @@ CenteredGridView {
doQuitGame()
}
ToolTip.text: "Quit Game"
ToolTip.text: qsTr("Quit Game")
ToolTip.delay: 1000
ToolTip.timeout: 3000
ToolTip.visible: hovered
@ -242,12 +242,12 @@ CenteredGridView {
id: appContextMenu
NavigableMenuItem {
parentMenu: appContextMenu
text: model.running ? "Resume Game" : "Launch Game"
text: model.running ? qsTr("Resume Game") : qsTr("Launch Game")
onTriggered: launchOrResumeSelectedApp()
}
NavigableMenuItem {
parentMenu: appContextMenu
text: "Quit Game"
text: qsTr("Quit Game")
onTriggered: doQuitGame()
visible: model.running
}
@ -255,7 +255,7 @@ CenteredGridView {
parentMenu: appContextMenu
checkable: true
checked: model.hidden
text: "Hide Game"
text: qsTr("Hide Game")
onTriggered: appModel.setAppHidden(model.index, !model.hidden)
visible: !model.running || model.hidden
}
@ -268,7 +268,7 @@ CenteredGridView {
property bool segueToStream : false
property string nextAppName: ""
property int nextAppIndex: 0
text:"Are you sure you want to quit " + appName +"? Any unsaved progress will be lost."
text:qsTr("Are you sure you want to quit " + appName +"? Any unsaved progress will be lost.")
standardButtons: Dialog.Yes | Dialog.No
function quitApp() {

View file

@ -6,11 +6,11 @@ import Session 1.0
Item {
function onSearchingComputer() {
stageLabel.text = "Establishing connection to PC..."
stageLabel.text = qsTr("Establishing connection to PC...")
}
function onQuittingApp() {
stageLabel.text = "Quitting app..."
stageLabel.text = qsTr("Quitting app...")
}
function onFailure(message) {

View file

@ -6,11 +6,11 @@ import SdlGamepadKeyNavigation 1.0
Item {
function onSearchingComputer() {
stageLabel.text = "Establishing connection to PC..."
stageLabel.text = qsTr("Establishing connection to PC...")
}
function onSearchingApp() {
stageLabel.text = "Loading app list..."
stageLabel.text = qsTr("Loading app list...")
}
function onSessionCreated(appName, session) {
@ -78,7 +78,7 @@ Item {
NavigableMessageDialog {
id: quitAppDialog
text:"Are you sure you want to quit " + appName +"? Any unsaved progress will be lost."
text:qsTr("Are you sure you want to quit " + appName +"? Any unsaved progress will be lost.")
standardButtons: Dialog.Yes | Dialog.No
property string appName : ""

View file

@ -17,7 +17,7 @@ CenteredGridView {
topMargin: 20
bottomMargin: 5
cellWidth: 310; cellHeight: 330;
objectName: "Computers"
objectName: qsTr("Computers")
Component.onCompleted: {
// Don't show any highlighted item until interacting with them.
@ -64,13 +64,13 @@ CenteredGridView {
function addComplete(success, detectedPortBlocking)
{
if (!success) {
errorDialog.text = "Unable to connect to the specified PC."
errorDialog.text = qsTr("Unable to connect to the specified PC.")
if (detectedPortBlocking) {
errorDialog.text += "\n\nThis PC's Internet connection is blocking Moonlight. Streaming over the Internet may not work while connected to this network."
errorDialog.text += qsTr("\n\nThis PC's Internet connection is blocking Moonlight. Streaming over the Internet may not work while connected to this network.")
}
else {
errorDialog.helpText = "Click the Help button for possible solutions."
errorDialog.helpText = qsTr("Click the Help button for possible solutions.")
}
errorDialog.open()
@ -99,8 +99,8 @@ CenteredGridView {
Label {
height: searchSpinner.height
elide: Label.ElideRight
text: StreamingPreferences.enableMdns ? "Searching for PCs with NVIDIA GameStream enabled..."
: "Automatic PC discovery is disabled. Add your PC manually."
text: StreamingPreferences.enableMdns ? qsTr("Searching for PCs with NVIDIA GameStream enabled...")
: qsTr("Automatic PC discovery is disabled. Add your PC manually.")
font.pointSize: 20
verticalAlignment: Text.AlignVCenter
wrapMode: Text.Wrap
@ -164,7 +164,7 @@ CenteredGridView {
id: pcContextMenu
NavigableMenuItem {
parentMenu: pcContextMenu
text: "View Apps"
text: qsTr("View Apps")
onTriggered: {
var component = Qt.createComponent("AppView.qml")
var appView = component.createObject(stackView, {"computerIndex": index, "objectName": model.name})
@ -174,7 +174,7 @@ CenteredGridView {
}
NavigableMenuItem {
parentMenu: pcContextMenu
text: "View Hidden Apps"
text: qsTr("View Hidden Apps")
onTriggered: {
var component = Qt.createComponent("AppView.qml")
var appView = component.createObject(stackView, {"computerIndex": index, "objectName": model.name, "showHiddenGames": true})
@ -184,13 +184,13 @@ CenteredGridView {
}
NavigableMenuItem {
parentMenu: pcContextMenu
text: "Wake PC"
text: qsTr("Wake PC")
onTriggered: computerModel.wakeComputer(index)
visible: !model.online && model.wakeable
}
NavigableMenuItem {
parentMenu: pcContextMenu
text: "Test Network"
text: qsTr("Test Network")
onTriggered: {
computerModel.testConnectionForComputer(index)
testConnectionDialog.open()
@ -199,7 +199,7 @@ CenteredGridView {
NavigableMenuItem {
parentMenu: pcContextMenu
text: "Rename PC"
text: qsTr("Rename PC")
onTriggered: {
renamePcDialog.pcIndex = index
renamePcDialog.originalName = model.name
@ -208,7 +208,7 @@ CenteredGridView {
}
NavigableMenuItem {
parentMenu: pcContextMenu
text: "Delete PC"
text: qsTr("Delete PC")
onTriggered: {
deletePcDialog.pcIndex = index
// get confirmation first, actual closing is called from the dialog
@ -238,7 +238,7 @@ CenteredGridView {
}
else {
// cannot pair while something is streaming or attempting to pair
errorDialog.text = "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.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()
}
@ -293,7 +293,7 @@ CenteredGridView {
// don't allow edits to the rest of the window while open
property string pin : "0000"
text:"Please enter " + pin + " on your GameStream PC. This dialog will close when pairing is completed."
text:qsTr("Please enter " + pin + " on your GameStream PC. This dialog will close when pairing is completed.")
standardButtons: Dialog.Cancel
onRejected: {
// FIXME: We should interrupt pairing here
@ -304,7 +304,7 @@ CenteredGridView {
id: deletePcDialog
// don't allow edits to the rest of the window while open
property int pcIndex : -1;
text:"Are you sure you want to remove this PC?"
text:qsTr("Are you sure you want to remove this PC?")
standardButtons: Dialog.Yes | Dialog.No
function deletePc() {
@ -321,22 +321,22 @@ CenteredGridView {
standardButtons: Dialog.Ok
onAboutToShow: {
testConnectionDialog.text = "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\nThis may take a few seconds…")
showSpinner = true
}
function connectionTestComplete(result, blockedPorts)
{
if (result === -1) {
text = "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."
text = qsTr("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.")
imageSrc = "qrc:/res/baseline-warning-24px.svg"
}
else if (result === 0) {
text = "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\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.")
imageSrc = "qrc:/res/baseline-check_circle_outline-24px.svg"
}
else {
text = "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\nThe following network ports were blocked:\n")
text += blockedPorts
imageSrc = "qrc:/res/baseline-error_outline-24px.svg"
}
@ -348,7 +348,7 @@ CenteredGridView {
NavigableDialog {
id: renamePcDialog
property string label: "Enter the new name for this PC:"
property string label: qsTr("Enter the new name for this PC:")
property string originalName
property int pcIndex : -1;

View file

@ -9,7 +9,7 @@ Item {
property Session nextSession : null
property string nextAppName : ""
property string stageText : "Quitting " + appName + "..."
property string stageText : qsTr("Quitting " + appName + "...")
function quitAppCompleted(error)
{

View file

@ -8,7 +8,7 @@ import SystemProperties 1.0
Flickable {
id: settingsPage
objectName: "Settings"
objectName: qsTr("Settings")
boundsBehavior: Flickable.OvershootBounds
@ -50,7 +50,7 @@ Flickable {
id: basicSettingsGroupBox
width: (parent.width - (parent.leftPadding + parent.rightPadding))
padding: 12
title: "<font color=\"skyblue\">Basic Settings</font>"
title: qsTr("<font color=\"skyblue\">Basic Settings</font>")
font.pointSize: 12
Column {
@ -215,16 +215,16 @@ Flickable {
var max_fps = SystemProperties.maximumStreamingFrameRate
// Default entries
fpsListModel.append({"text": "30 FPS", "video_fps": "30"})
fpsListModel.append({"text": "60 FPS", "video_fps": "60"})
fpsListModel.append({"text": qsTr("30 FPS"), "video_fps": "30"})
fpsListModel.append({"text": qsTr("60 FPS"), "video_fps": "60"})
// Add unsupported FPS values that come before the display max FPS
if (StreamingPreferences.unsupportedFps) {
if (max_fps > 90) {
fpsListModel.append({"text": "90 FPS (Unsupported)", "video_fps": "90"})
fpsListModel.append({"text": qsTr("90 FPS (Unsupported)"), "video_fps": "90"})
}
if (max_fps > 120) {
fpsListModel.append({"text": "120 FPS (Unsupported)", "video_fps": "120"})
fpsListModel.append({"text": qsTr("120 FPS (Unsupported)"), "video_fps": "120"})
}
}
@ -233,7 +233,7 @@ 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+" FPS (Unsupported)", "video_fps": ""+max_fps})
fpsListModel.append({"text": max_fps+qsTr(" FPS (Unsupported)"), "video_fps": ""+max_fps})
}
else if (max_fps > 120) {
fpsListModel.append({"text": "120 FPS", "video_fps": "120"})
@ -246,10 +246,10 @@ Flickable {
// Add unsupported FPS values that come after the display max FPS
if (StreamingPreferences.unsupportedFps) {
if (max_fps < 90) {
fpsListModel.append({"text": "90 FPS (Unsupported)", "video_fps": "90"})
fpsListModel.append({"text":qsTr( "90 FPS (Unsupported)"), "video_fps": "90"})
}
if (max_fps < 120) {
fpsListModel.append({"text": "120 FPS (Unsupported)", "video_fps": "120"})
fpsListModel.append({"text":qsTr( "120 FPS (Unsupported)"), "video_fps": "120"})
}
}
@ -328,7 +328,7 @@ Flickable {
width: Math.min(bitrateDesc.implicitWidth, parent.width)
onValueChanged: {
bitrateTitle.text = "Video bitrate: " + (value / 1000.0) + " Mbps"
bitrateTitle.text = qsTr("Video bitrate: " + (value / 1000.0) + " Mbps")
StreamingPreferences.bitrateKbps = value
}
}
@ -348,7 +348,7 @@ Flickable {
for (var i = 0; i < windowModeListModel.count; i++) {
var thisWm = windowModeListModel.get(i).val;
if (thisWm === StreamingPreferences.recommendedFullScreenMode) {
windowModeListModel.get(i).text += " (Recommended)"
windowModeListModel.get(i).text += qsTr(" (Recommended)")
windowModeListModel.move(i, 0, 1);
break
}
@ -377,15 +377,15 @@ Flickable {
model: ListModel {
id: windowModeListModel
ListElement {
text: "Full-screen"
text: qsTr("Full-screen")
val: StreamingPreferences.WM_FULLSCREEN
}
ListElement {
text: "Borderless windowed"
text: qsTr("Borderless windowed")
val: StreamingPreferences.WM_FULLSCREEN_DESKTOP
}
ListElement {
text: "Windowed"
text: qsTr("Windowed")
val: StreamingPreferences.WM_WINDOWED
}
}
@ -396,7 +396,7 @@ Flickable {
ToolTip.delay: 1000
ToolTip.timeout: 5000
ToolTip.visible: hovered
ToolTip.text: "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."
ToolTip.text: qsTr("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.")
}
CheckBox {
@ -413,14 +413,14 @@ Flickable {
ToolTip.delay: 1000
ToolTip.timeout: 5000
ToolTip.visible: hovered
ToolTip.text: "Disabling V-Sync allows sub-frame rendering latency, but it can display visible tearing"
ToolTip.text: qsTr("Disabling V-Sync allows sub-frame rendering latency, but it can display visible tearing")
}
CheckBox {
id: framePacingCheck
width: parent.width
hoverEnabled: true
text: "Frame pacing"
text: qsTr("Frame pacing")
font.pointSize: 12
enabled: StreamingPreferences.enableVsync
checked: StreamingPreferences.enableVsync && StreamingPreferences.framePacing
@ -430,7 +430,7 @@ Flickable {
ToolTip.delay: 1000
ToolTip.timeout: 5000
ToolTip.visible: hovered
ToolTip.text: "Frame pacing reduces micro-stutter by delaying frames that come in too early"
ToolTip.text: qsTr("Frame pacing reduces micro-stutter by delaying frames that come in too early")
}
}
}
@ -440,7 +440,7 @@ Flickable {
id: audioSettingsGroupBox
width: (parent.width - (parent.leftPadding + parent.rightPadding))
padding: 12
title: "<font color=\"skyblue\">Audio Settings</font>"
title: qsTr("<font color=\"skyblue\">Audio Settings</font>")
font.pointSize: 12
Column {
@ -500,7 +500,7 @@ Flickable {
id: uiSettingsGroupBox
width: (parent.width - (parent.leftPadding + parent.rightPadding))
padding: 12
title: "<font color=\"skyblue\">UI Settings</font>"
title: qsTr("<font color=\"skyblue\">UI Settings</font>")
font.pointSize: 12
Column {
@ -510,7 +510,7 @@ Flickable {
CheckBox {
id: startMaximizedCheck
width: parent.width
text: "Maximize Moonlight window on startup"
text: qsTr("Maximize Moonlight window on startup")
font.pointSize: 12
enabled: SystemProperties.hasWindowManager
checked: !StreamingPreferences.startWindowed || !SystemProperties.hasWindowManager
@ -522,7 +522,7 @@ Flickable {
CheckBox {
id: connectionWarningsCheck
width: parent.width
text: "Show connection quality warnings"
text: qsTr("Show connection quality warnings")
font.pointSize: 12
checked: StreamingPreferences.connectionWarnings
onCheckedChanged: {
@ -534,7 +534,7 @@ Flickable {
visible: SystemProperties.hasDiscordIntegration
id: discordPresenceCheck
width: parent.width
text: "Discord Rich Presence integration"
text: qsTr("Discord Rich Presence integration")
font.pointSize: 12
checked: StreamingPreferences.richPresence
onCheckedChanged: {
@ -544,7 +544,7 @@ Flickable {
ToolTip.delay: 1000
ToolTip.timeout: 5000
ToolTip.visible: hovered
ToolTip.text: "Updates your Discord status to display the name of the game you're streaming."
ToolTip.text: qsTr("Updates your Discord status to display the name of the game you're streaming.")
}
}
}
@ -562,7 +562,7 @@ Flickable {
id: gamepadSettingsGroupBox
width: (parent.width - (parent.leftPadding + parent.rightPadding))
padding: 12
title: "<font color=\"skyblue\">Input Settings</font>"
title: qsTr("<font color=\"skyblue\">Input Settings</font>")
font.pointSize: 12
Column {
@ -572,7 +572,7 @@ Flickable {
CheckBox {
id: singleControllerCheck
width: parent.width
text: "Force gamepad #1 always present"
text: qsTr("Force gamepad #1 always present")
font.pointSize: 12
checked: !StreamingPreferences.multiController
onCheckedChanged: {
@ -582,15 +582,15 @@ Flickable {
ToolTip.delay: 1000
ToolTip.timeout: 5000
ToolTip.visible: hovered
ToolTip.text: "Forces a single gamepad to always stay connected to the host, even if no gamepads are actually connected to this PC.\n" +
"Only enable this option when streaming a game that doesn't support gamepads being connected after startup."
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.")
}
CheckBox {
id: absoluteMouseCheck
hoverEnabled: true
width: parent.width
text: "Optimize mouse for remote desktop instead of games"
text: qsTr("Optimize mouse for remote desktop instead of games")
font.pointSize: 12
enabled: SystemProperties.hasWindowManager
checked: StreamingPreferences.absoluteMouseMode && SystemProperties.hasWindowManager
@ -601,15 +601,15 @@ Flickable {
ToolTip.delay: 1000
ToolTip.timeout: 5000
ToolTip.visible: hovered
ToolTip.text: "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
You can toggle this while streaming using Ctrl+Alt+Shift+M.")
}
CheckBox {
id: absoluteTouchCheck
hoverEnabled: true
width: parent.width
text: "Use touchscreen as a trackpad"
text: qsTr("Use touchscreen as a trackpad")
font.pointSize: 12
checked: !StreamingPreferences.absoluteTouchMode
onCheckedChanged: {
@ -619,14 +619,14 @@ Flickable {
ToolTip.delay: 1000
ToolTip.timeout: 5000
ToolTip.visible: hovered
ToolTip.text: "When checked, the touchscreen acts like a trackpad. When unchecked, the touchscreen will directly control the mouse pointer."
ToolTip.text: qsTr("When checked, the touchscreen acts like a trackpad. When unchecked, the touchscreen will directly control the mouse pointer.")
}
CheckBox {
id: gamepadMouseCheck
hoverEnabled: true
width: parent.width
text: "Gamepad mouse mode support"
text: qsTr("Gamepad mouse mode support")
font.pointSize: 12
checked: StreamingPreferences.gamepadMouse
onCheckedChanged: {
@ -636,14 +636,14 @@ Flickable {
ToolTip.delay: 1000
ToolTip.timeout: 3000
ToolTip.visible: hovered
ToolTip.text: "When enabled, holding the Start button will toggle mouse mode"
ToolTip.text: qsTr("When enabled, holding the Start button will toggle mouse mode")
}
CheckBox {
id: swapMouseButtonsCheck
hoverEnabled: true
width: parent.width
text: "Swap mouse buttons"
text: qsTr("Swap mouse buttons")
font.pointSize: 12
checked: StreamingPreferences.swapMouseButtons
onCheckedChanged: {
@ -653,7 +653,7 @@ Flickable {
ToolTip.delay: 1000
ToolTip.timeout: 3000
ToolTip.visible: hovered
ToolTip.text: "When checked, swap the left and right mouse buttons"
ToolTip.text: qsTr("When checked, swap the left and right mouse buttons")
}
}
}
@ -662,7 +662,7 @@ Flickable {
id: hostSettingsGroupBox
width: (parent.width - (parent.leftPadding + parent.rightPadding))
padding: 12
title: "<font color=\"skyblue\">Host Settings</font>"
title: qsTr("<font color=\"skyblue\">Host Settings</font>")
font.pointSize: 12
Column {
@ -672,7 +672,7 @@ Flickable {
CheckBox {
id: optimizeGameSettingsCheck
width: parent.width
text: "Optimize game settings for streaming"
text: qsTr("Optimize game settings for streaming")
font.pointSize: 12
checked: StreamingPreferences.gameOptimizations
onCheckedChanged: {
@ -683,7 +683,7 @@ Flickable {
CheckBox {
id: audioPcCheck
width: parent.width
text: "Play audio on host PC"
text: qsTr("Play audio on host PC")
font.pointSize: 12
checked: StreamingPreferences.playAudioOnHost
onCheckedChanged: {
@ -694,7 +694,7 @@ Flickable {
CheckBox {
id: quitAppAfter
width: parent.width
text: "Quit app on host PC after ending stream"
text: qsTr("Quit app on host PC after ending stream")
font.pointSize: 12
checked: StreamingPreferences.quitAppAfter
onCheckedChanged: {
@ -704,7 +704,7 @@ Flickable {
ToolTip.delay: 1000
ToolTip.timeout: 5000
ToolTip.visible: hovered
ToolTip.text: "This will close the app or game you are streaming when you end your stream. You will lose any unsaved progress!"
ToolTip.text: qsTr("This will close the app or game you are streaming when you end your stream. You will lose any unsaved progress!")
}
}
}
@ -713,7 +713,7 @@ Flickable {
id: advancedSettingsGroupBox
width: (parent.width - (parent.leftPadding + parent.rightPadding))
padding: 12
title: "<font color=\"skyblue\">Advanced Settings</font>"
title: qsTr("<font color=\"skyblue\">Advanced Settings</font>")
font.pointSize: 12
Column {
@ -748,15 +748,15 @@ Flickable {
model: ListModel {
id: decoderListModel
ListElement {
text: "Automatic (Recommended)"
text: qsTr("Automatic (Recommended)")
val: StreamingPreferences.VDS_AUTO
}
ListElement {
text: "Force software decoding"
text: qsTr("Force software decoding")
val: StreamingPreferences.VDS_FORCE_SOFTWARE
}
ListElement {
text: "Force hardware decoding"
text: qsTr("Force hardware decoding")
val: StreamingPreferences.VDS_FORCE_HARDWARE
}
}
@ -794,7 +794,7 @@ Flickable {
model: ListModel {
id: codecListModel
ListElement {
text: "Automatic (Recommended)"
text: qsTr("Automatic (Recommended)")
val: StreamingPreferences.VCC_AUTO
}
ListElement {
@ -819,7 +819,7 @@ Flickable {
CheckBox {
id: unlockUnsupportedFps
width: parent.width
text: "Unlock unsupported FPS options"
text: qsTr("Unlock unsupported FPS options")
font.pointSize: 12
checked: StreamingPreferences.unsupportedFps
onCheckedChanged: {
@ -838,7 +838,7 @@ Flickable {
CheckBox {
id: enableMdns
width: parent.width
text: "Automatically find PCs on the local network (Recommended)"
text: qsTr("Automatically find PCs on the local network (Recommended)")
font.pointSize: 12
checked: StreamingPreferences.enableMdns
onCheckedChanged: {
@ -863,7 +863,7 @@ Flickable {
CheckBox {
id: detectNetworkBlocking
width: parent.width
text: "Automatically detect blocked connections (Recommended)"
text: qsTr("Automatically detect blocked connections (Recommended)")
font.pointSize: 12
checked: StreamingPreferences.detectNetworkBlocking
onCheckedChanged: {

View file

@ -8,19 +8,19 @@ import Session 1.0
Item {
property Session session
property string appName
property string stageText : "Starting " + appName + "..."
property string stageText : qsTr("Starting " + appName + "...")
property bool quitAfter : false
function stageStarting(stage)
{
// Update the spinner text
stageText = "Starting " + stage + "..."
stageText = qsTr("Starting " + stage + "...")
}
function stageFailed(stage, errorCode)
{
// Display the error dialog after Session::exec() returns
streamSegueErrorDialog.text = "Starting " + stage + " failed: Error " + errorCode
streamSegueErrorDialog.text = qsTr("Starting " + stage + " failed: Error " + errorCode)
}
function connectionStarted()
@ -65,7 +65,7 @@ Item {
function sessionFinished(portTestResult)
{
if (portTestResult !== 0 && portTestResult !== -1 && streamSegueErrorDialog.text) {
streamSegueErrorDialog.text += "\n\nThis PC's Internet connection is blocking Moonlight. Streaming over the Internet may not work while connected to this network."
streamSegueErrorDialog.text += qsTr("\n\nThis PC's Internet connection is blocking Moonlight. Streaming over the Internet may not work while connected to this network.")
}
// Enable GUI gamepad usage now
@ -148,8 +148,8 @@ Item {
// with Session.exec() which requires no concurrent
// gamepad usage.
hintText.text = SdlGamepadKeyNavigation.getConnectedGamepads() > 0 ?
"Tip: Press Start+Select+L1+R1 to disconnect your session" :
"Tip: Press Ctrl+Alt+Shift+Q to disconnect your session"
qsTr("Tip: Press Start+Select+L1+R1 to disconnect your session") :
qsTr("Tip: Press Ctrl+Alt+Shift+Q to disconnect your session")
// Stop GUI gamepad usage now
SdlGamepadKeyNavigation.disable()

View file

@ -223,7 +223,7 @@ ApplicationWindow {
Label {
id: versionLabel
visible: stackView.currentItem.objectName === "Settings"
visible: stackView.currentItem.objectName === qsTr("Settings")
text: "Version " + SystemProperties.versionString
font.pointSize: 12
horizontalAlignment: Qt.AlignRight
@ -233,14 +233,14 @@ ApplicationWindow {
NavigableToolButton {
id: discordButton
visible: SystemProperties.hasBrowser &&
stackView.currentItem.objectName === "Settings"
stackView.currentItem.objectName === qsTr("Settings")
iconSource: "qrc:/res/Discord-Logo-White.svg"
ToolTip.delay: 1000
ToolTip.timeout: 3000
ToolTip.visible: hovered
ToolTip.text: "Join our community on Discord"
ToolTip.text: qsTr("Join our community on Discord")
// TODO need to make sure browser is brought to foreground.
onClicked: Qt.openUrlExternally("https://moonlight-stream.org/discord");
@ -252,14 +252,14 @@ ApplicationWindow {
NavigableToolButton {
id: addPcButton
visible: stackView.currentItem.objectName === "Computers"
visible: stackView.currentItem.objectName === qsTr("Computers")
iconSource: "qrc:/res/ic_add_to_queue_white_48px.svg"
ToolTip.delay: 1000
ToolTip.timeout: 3000
ToolTip.visible: hovered
ToolTip.text: "Add PC manually" + (newPcShortcut.nativeText ? (" ("+newPcShortcut.nativeText+")") : "")
ToolTip.text: qsTr("Add PC manually") + (newPcShortcut.nativeText ? (" ("+newPcShortcut.nativeText+")") : "")
Shortcut {
id: newPcShortcut
@ -299,7 +299,7 @@ ApplicationWindow {
function updateAvailable(version, url)
{
ToolTip.text = "Update available for Moonlight: Version " + version
ToolTip.text = qsTr("Update available for Moonlight: Version ") + version
updateButton.browserUrl = url
updateButton.visible = true
}
@ -323,7 +323,7 @@ ApplicationWindow {
ToolTip.delay: 1000
ToolTip.timeout: 3000
ToolTip.visible: hovered
ToolTip.text: "Help" + (helpShortcut.nativeText ? (" ("+helpShortcut.nativeText+")") : "")
ToolTip.text: qsTr("Help") + (helpShortcut.nativeText ? (" ("+helpShortcut.nativeText+")") : "")
Shortcut {
id: helpShortcut
@ -362,7 +362,7 @@ ApplicationWindow {
iconSource: "qrc:/res/settings.svg"
onClicked: navigateTo("qrc:/gui/SettingsView.qml", "Settings")
onClicked: navigateTo("qrc:/gui/SettingsView.qml", qsTr("Settings"))
Keys.onDownPressed: {
stackView.currentItem.forceActiveFocus(Qt.TabFocus)
@ -377,31 +377,31 @@ ApplicationWindow {
ToolTip.delay: 1000
ToolTip.timeout: 3000
ToolTip.visible: hovered
ToolTip.text: "Settings" + (settingsShortcut.nativeText ? (" ("+settingsShortcut.nativeText+")") : "")
ToolTip.text: qsTr("Settings") + (settingsShortcut.nativeText ? (" ("+settingsShortcut.nativeText+")") : "")
}
}
}
ErrorMessageDialog {
id: noHwDecoderDialog
text: "No functioning hardware accelerated H.264 video decoder was detected by Moonlight. " +
"Your streaming performance may be severely degraded in this configuration."
helpText: "Click the Help button for more information on solving this problem."
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.")
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: "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: "Click the Help button for more information."
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.")
helpText: qsTr("Click the Help button for more information.")
helpUrl: "https://github.com/moonlight-stream/moonlight-docs/wiki/Fixing-Hardware-Decoding-Problems"
}
NavigableMessageDialog {
id: wow64Dialog
standardButtons: Dialog.Ok | Dialog.Cancel
text: "This PC is running a 64-bit version of Windows. Please download the x64 version of Moonlight for the best streaming performance."
text: qsTr("This PC is running a 64-bit version of Windows. Please download the x64 version of Moonlight for the best streaming performance.")
onAccepted: {
Qt.openUrlExternally("https://github.com/moonlight-stream/moonlight-qt/releases");
}
@ -410,9 +410,9 @@ ApplicationWindow {
ErrorMessageDialog {
id: unmappedGamepadDialog
property string unmappedGamepads : ""
text: "Moonlight detected gamepads without a mapping:\n" + unmappedGamepads
text: qsTr("Moonlight detected gamepads without a mapping:\n") + unmappedGamepads
helpTextSeparator: "\n\n"
helpText: "Click the Help button for information on how to map your gamepads."
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"
}
@ -420,7 +420,7 @@ ApplicationWindow {
NavigableMessageDialog {
id: quitConfirmationDialog
standardButtons: Dialog.Yes | Dialog.No
text: "Are you sure you want to quit?"
text: qsTr("Are you sure you want to quit?")
// For keyboard/gamepad navigation
onAccepted: Qt.quit()
}
@ -450,7 +450,7 @@ ApplicationWindow {
NavigableDialog {
id: addPcDialog
property string label: "Enter the IP address of your GameStream PC:"
property string label: qsTr("Enter the IP address of your GameStream PC:")
standardButtons: Dialog.Ok | Dialog.Cancel

View file

@ -11,6 +11,7 @@
#include <QCursor>
#include <QElapsedTimer>
#include <QFile>
#include<QTranslator>
// Don't let SDL hook our main function, since Qt is already
// doing the same thing. This needs to be before any headers
@ -419,6 +420,10 @@ int main(int argc, char *argv[])
QGuiApplication app(argc, argv);
QTranslator translator;
qDebug() <<"loaded: " <<translator.load(QString(":/languages/qml_") + QLocale::system().name());
app.installTranslator(&translator);
// After the QGuiApplication is created, the platform stuff will be initialized
// and we can set the SDL video driver to match Qt.
if (WMUtils::isRunningWayland() && QGuiApplication::platformName() == "xcb") {
@ -553,7 +558,6 @@ int main(int argc, char *argv[])
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

View file

@ -17,6 +17,8 @@
<file>res/baseline-error_outline-24px.svg</file>
<file>res/baseline-check_circle_outline-24px.svg</file>
<file>res/Discord-Logo-White.svg</file>
<file>../languages/qml_fr.ts</file>
<file>../languages/qml_fr.qm</file>
</qresource>
<qresource prefix="/data">
<file alias="gamecontrollerdb.txt">SDL_GameControllerDB/gamecontrollerdb.txt</file>

BIN
languages/qml_fr.qm Normal file

Binary file not shown.

563
languages/qml_fr.ts Normal file
View file

@ -0,0 +1,563 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="fr_FR">
<context>
<name>AppView</name>
<message>
<location filename="../app/gui/AppView.qml" line="118"/>
<location filename="../app/gui/AppView.qml" line="245"/>
<source>Resume Game</source>
<translation>Reprendre le jeu</translation>
</message>
<message>
<location filename="../app/gui/AppView.qml" line="146"/>
<location filename="../app/gui/AppView.qml" line="250"/>
<source>Quit Game</source>
<translation>Quitter le jeu</translation>
</message>
<message>
<location filename="../app/gui/AppView.qml" line="245"/>
<source>Launch Game</source>
<translation>Lancer le jeu</translation>
</message>
<message>
<location filename="../app/gui/AppView.qml" line="258"/>
<source>Hide Game</source>
<translation>Cacher le jeu</translation>
</message>
</context>
<context>
<name>CliQuitStreamSegue</name>
<message>
<location filename="../app/gui/CliQuitStreamSegue.qml" line="9"/>
<source>Establishing connection to PC...</source>
<translation>connexion au PC...</translation>
</message>
<message>
<location filename="../app/gui/CliQuitStreamSegue.qml" line="13"/>
<source>Quitting app...</source>
<translation>Fermeture de l&apos;app...</translation>
</message>
</context>
<context>
<name>CliStartStreamSegue</name>
<message>
<location filename="../app/gui/CliStartStreamSegue.qml" line="9"/>
<source>Establishing connection to PC...</source>
<translation>connexion au PC...</translation>
</message>
<message>
<location filename="../app/gui/CliStartStreamSegue.qml" line="13"/>
<source>Loading app list...</source>
<translation>Chargement de la liste des applications...</translation>
</message>
</context>
<context>
<name>PcView</name>
<message>
<location filename="../app/gui/PcView.qml" line="20"/>
<source>Computers</source>
<translation>Ordinateurs</translation>
</message>
<message>
<location filename="../app/gui/PcView.qml" line="67"/>
<source>Unable to connect to the specified PC.</source>
<translation>Impossible de se connecter au PC spécifié.</translation>
</message>
<message>
<location filename="../app/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 lorsqu&apos;il est connecté à ce réseau.</translation>
</message>
<message>
<location filename="../app/gui/PcView.qml" line="73"/>
<source>Click the Help button for possible solutions.</source>
<translation>Cliquez sur le bouton Aide pour connaître les solutions possibles.</translation>
</message>
<message>
<location filename="../app/gui/PcView.qml" line="102"/>
<source>Searching for PCs with NVIDIA GameStream enabled...</source>
<translation>La recherche de PC avec NVIDIA GameStream activé...</translation>
</message>
<message>
<location filename="../app/gui/PcView.qml" line="103"/>
<source>Automatic PC discovery is disabled. Add your PC manually.</source>
<translation>La découverte automatique des PC est désactivée. Ajoutez votre PC manuellement.</translation>
</message>
<message>
<location filename="../app/gui/PcView.qml" line="167"/>
<source>View Apps</source>
<translation>Voir les applications</translation>
</message>
<message>
<location filename="../app/gui/PcView.qml" line="177"/>
<source>View Hidden Apps</source>
<translation>Voir les applications cachées</translation>
</message>
<message>
<location filename="../app/gui/PcView.qml" line="187"/>
<source>Wake PC</source>
<translation>Réveiller le PC</translation>
</message>
<message>
<location filename="../app/gui/PcView.qml" line="193"/>
<source>Test Network</source>
<translation>Test Réseau</translation>
</message>
<message>
<location filename="../app/gui/PcView.qml" line="202"/>
<source>Rename PC</source>
<translation>Renommer le PC</translation>
</message>
<message>
<location filename="../app/gui/PcView.qml" line="211"/>
<source>Delete PC</source>
<translation>Supprimer le PC</translation>
</message>
<message>
<location filename="../app/gui/PcView.qml" line="241"/>
<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>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="../app/gui/PcView.qml" line="307"/>
<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="../app/gui/PcView.qml" line="324"/>
<source>Moonlight is testing your network connection to determine if NVIDIA GameStream is blocked.
This may take a few seconds</source>
<translation>Moonlight teste votre connexion réseau pour déterminer si NVIDIA GameStream est bloqué
This may take a few seconds</translation>
</message>
<message>
<location filename="../app/gui/PcView.qml" line="331"/>
<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>
<message>
<location filename="../app/gui/PcView.qml" line="335"/>
<source>This network does not appear to be blocking Moonlight. If you still have trouble connecting, check your PC&apos;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&apos;s Internet connection.</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.
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="../app/gui/PcView.qml" line="339"/>
<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.
The following network ports were blocked:
</source>
<translation>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 é bloqués :
</translation>
</message>
<message>
<location filename="../app/gui/PcView.qml" line="351"/>
<source>Enter the new name for this PC:</source>
<translation>Saisissez le nouveau nom de ce PC :</translation>
</message>
</context>
<context>
<name>SettingsView</name>
<message>
<location filename="../app/gui/SettingsView.qml" line="11"/>
<source>Settings</source>
<translation>Paramètres</translation>
</message>
<message>
<location filename="../app/gui/SettingsView.qml" line="53"/>
<source>&lt;font color=&quot;skyblue&quot;&gt;Basic Settings&lt;/font&gt;</source>
<translation>&lt;font color=&quot;skyblue&quot;&gt;Paramètres de base&lt;/font&gt;</translation>
</message>
<message>
<location filename="../app/gui/SettingsView.qml" line="63"/>
<source>Resolution and FPS</source>
<translation>Résolution et FPS</translation>
</message>
<message>
<location filename="../app/gui/SettingsView.qml" line="71"/>
<source>Setting values too high for your PC or network connection may cause lag, stuttering, or errors.</source>
<translation>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.</translation>
</message>
<message>
<location filename="../app/gui/SettingsView.qml" line="218"/>
<source>30 FPS</source>
<translation>30 FPS</translation>
</message>
<message>
<location filename="../app/gui/SettingsView.qml" line="219"/>
<source>60 FPS</source>
<translation>60 FPS</translation>
</message>
<message>
<location filename="../app/gui/SettingsView.qml" line="224"/>
<location filename="../app/gui/SettingsView.qml" line="249"/>
<source>90 FPS (Unsupported)</source>
<translation>90 FPS (Non supporté)</translation>
</message>
<message>
<location filename="../app/gui/SettingsView.qml" line="227"/>
<location filename="../app/gui/SettingsView.qml" line="252"/>
<source>120 FPS (Unsupported)</source>
<translation>120 FPS (Non supporté)</translation>
</message>
<message>
<location filename="../app/gui/SettingsView.qml" line="236"/>
<source> FPS (Unsupported)</source>
<translation> FPS (Non supporté)</translation>
</message>
<message>
<location filename="../app/gui/SettingsView.qml" line="305"/>
<source>Video bitrate: </source>
<translation>Bitrate vidéo : </translation>
</message>
<message>
<location filename="../app/gui/SettingsView.qml" line="313"/>
<source>Lower the bitrate on slower connections. Raise the bitrate to increase image quality.</source>
<translation>Baissez le débit binaire sur les connexions plus lentes. Augmentez le débit binaire pour améliorer la qualité de l&apos;image.</translation>
</message>
<message>
<location filename="../app/gui/SettingsView.qml" line="339"/>
<source>Display mode</source>
<translation>Mode d&apos;affichage</translation>
</message>
<message>
<location filename="../app/gui/SettingsView.qml" line="351"/>
<source> (Recommended)</source>
<translation> (Recommandé)</translation>
</message>
<message>
<location filename="../app/gui/SettingsView.qml" line="380"/>
<source>Full-screen</source>
<translation>Plein écran</translation>
</message>
<message>
<location filename="../app/gui/SettingsView.qml" line="384"/>
<source>Borderless windowed</source>
<translation>fenêtré sans bordure</translation>
</message>
<message>
<location filename="../app/gui/SettingsView.qml" line="388"/>
<source>Windowed</source>
<translation>Fenêtré</translation>
</message>
<message>
<location filename="../app/gui/SettingsView.qml" line="399"/>
<source>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.</source>
<translation>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="../app/gui/SettingsView.qml" line="416"/>
<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="../app/gui/SettingsView.qml" line="423"/>
<source>Frame pacing</source>
<translation>Frame pacing</translation>
</message>
<message>
<location filename="../app/gui/SettingsView.qml" line="433"/>
<source>Frame pacing reduces micro-stutter by delaying frames that come in too early</source>
<translation>Frame pacing réduit les micro-bégaiements en retardant les images qui arrivent trop tôt</translation>
</message>
<message>
<location filename="../app/gui/SettingsView.qml" line="443"/>
<source>&lt;font color=&quot;skyblue&quot;&gt;Audio Settings&lt;/font&gt;</source>
<translation>&lt;font color=&quot;skyblue&quot;&gt;Réglages audio&lt;/font&gt;</translation>
</message>
<message>
<location filename="../app/gui/SettingsView.qml" line="453"/>
<source>Audio configuration</source>
<translation>Configuration audio</translation>
</message>
<message>
<location filename="../app/gui/SettingsView.qml" line="503"/>
<source>&lt;font color=&quot;skyblue&quot;&gt;UI Settings&lt;/font&gt;</source>
<translation>&lt;font color=&quot;skyblue&quot;&gt;Réglages de l&apos;interface utilisateur&lt;/font&gt;</translation>
</message>
<message>
<location filename="../app/gui/SettingsView.qml" line="513"/>
<source>Maximize Moonlight window on startup</source>
<translation>Maximiser la fenêtre Moonlight au démarrage</translation>
</message>
<message>
<location filename="../app/gui/SettingsView.qml" line="525"/>
<source>Show connection quality warnings</source>
<translation>Afficher les avertissements sur la qualité de la connexion</translation>
</message>
<message>
<location filename="../app/gui/SettingsView.qml" line="537"/>
<source>Discord Rich Presence integration</source>
<translation>Intégration de la présence Discord Rich</translation>
</message>
<message>
<location filename="../app/gui/SettingsView.qml" line="547"/>
<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>
<message>
<location filename="../app/gui/SettingsView.qml" line="565"/>
<source>&lt;font color=&quot;skyblue&quot;&gt;Input Settings&lt;/font&gt;</source>
<translation>&lt;font color=&quot;skyblue&quot;&gt;Paramètres d&apos;entrée&lt;/font&gt;</translation>
</message>
<message>
<location filename="../app/gui/SettingsView.qml" line="575"/>
<source>Force gamepad #1 always present</source>
<translation>Forcé la manette de jeu Force #1 à être toujours présente</translation>
</message>
<message>
<location filename="../app/gui/SettingsView.qml" line="585"/>
<source>Forces a single gamepad to always stay connected to the host, even if no gamepads are actually connected to this PC.
</source>
<translation>Forces a single gamepad to always stay connected to the host, even if no gamepads are actually connected to this PC.
</translation>
</message>
<message>
<location filename="../app/gui/SettingsView.qml" line="586"/>
<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="../app/gui/SettingsView.qml" line="593"/>
<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>
<message>
<location filename="../app/gui/SettingsView.qml" line="604"/>
<source>This enables mouse control without capturing the client&apos;s mouse cursor. It will not work in most games.
You can toggle this while streaming using Ctrl+Alt+Shift+M.</source>
<translation>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.</translation>
</message>
<message>
<location filename="../app/gui/SettingsView.qml" line="612"/>
<source>Use touchscreen as a trackpad</source>
<translation>Utiliser l&apos;écran tactile comme trackpad</translation>
</message>
<message>
<location filename="../app/gui/SettingsView.qml" line="622"/>
<source>When checked, the touchscreen acts like a trackpad. When unchecked, the touchscreen will directly control the mouse pointer.</source>
<translation>Lorsqu&apos;on le vérifie, 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>
<message>
<location filename="../app/gui/SettingsView.qml" line="629"/>
<source>Gamepad mouse mode support</source>
<translation>Prise en charge du mode souris de la manette de jeu</translation>
</message>
<message>
<location filename="../app/gui/SettingsView.qml" line="639"/>
<source>When enabled, holding the Start button will toggle mouse mode</source>
<translation>Lorsqu&apos;il est activé, le maintien du bouton &quot;Start&quot; permet de passer en mode souris</translation>
</message>
<message>
<location filename="../app/gui/SettingsView.qml" line="646"/>
<source>Swap mouse buttons</source>
<translation>Échanger les boutons de la souris</translation>
</message>
<message>
<location filename="../app/gui/SettingsView.qml" line="656"/>
<source>When checked, swap the left and right mouse buttons</source>
<translation>Lorsque la case est cochée, permuter les boutons gauche et droit de la souris</translation>
</message>
<message>
<location filename="../app/gui/SettingsView.qml" line="665"/>
<source>&lt;font color=&quot;skyblue&quot;&gt;Host Settings&lt;/font&gt;</source>
<translation>&lt;font color=&quot;skyblue&quot;&gt;Paramètres de l&apos;hôte&lt;/font&gt;</translation>
</message>
<message>
<location filename="../app/gui/SettingsView.qml" line="675"/>
<source>Optimize game settings for streaming</source>
<translation>Optimiser les paramètres du jeu pour la diffusion en continu</translation>
</message>
<message>
<location filename="../app/gui/SettingsView.qml" line="686"/>
<source>Play audio on host PC</source>
<translation>Lecture audio sur le PC hôte</translation>
</message>
<message>
<location filename="../app/gui/SettingsView.qml" line="697"/>
<source>Quit app on host PC after ending stream</source>
<translation>Quitter l&apos;application sur le PC hôte après avoir terminé le flux</translation>
</message>
<message>
<location filename="../app/gui/SettingsView.qml" line="707"/>
<source>This will close the app or game you are streaming when you end your stream. You will lose any unsaved progress!</source>
<translation>Cela 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="../app/gui/SettingsView.qml" line="716"/>
<source>&lt;font color=&quot;skyblue&quot;&gt;Advanced Settings&lt;/font&gt;</source>
<translation>&lt;font color=&quot;skyblue&quot;&gt;Paramètres avancés&lt;/font&gt;</translation>
</message>
<message>
<location filename="../app/gui/SettingsView.qml" line="726"/>
<source>Video decoder</source>
<translation>Décodeur vidéo</translation>
</message>
<message>
<location filename="../app/gui/SettingsView.qml" line="751"/>
<location filename="../app/gui/SettingsView.qml" line="797"/>
<source>Automatic (Recommended)</source>
<translation>Automatique (recommandé)</translation>
</message>
<message>
<location filename="../app/gui/SettingsView.qml" line="755"/>
<source>Force software decoding</source>
<translation>Forcer le décodage des logiciels</translation>
</message>
<message>
<location filename="../app/gui/SettingsView.qml" line="759"/>
<source>Force hardware decoding</source>
<translation>Forcer le décodage du matériel</translation>
</message>
<message>
<location filename="../app/gui/SettingsView.qml" line="772"/>
<source>Video codec</source>
<translation>Codec vidéo</translation>
</message>
<message>
<location filename="../app/gui/SettingsView.qml" line="822"/>
<source>Unlock unsupported FPS options</source>
<translation>Débloquer les options non supportées du FPS</translation>
</message>
<message>
<location filename="../app/gui/SettingsView.qml" line="841"/>
<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="../app/gui/SettingsView.qml" line="866"/>
<source>Automatically detect blocked connections (Recommended)</source>
<translation>Détecter automatiquement les connexions bloquées (recommandé)</translation>
</message>
</context>
<context>
<name>StreamSegue</name>
<message>
<location filename="../app/gui/StreamSegue.qml" line="68"/>
<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 lorsqu&apos;il est connecté à ce réseau.</translation>
</message>
<message>
<location filename="../app/gui/StreamSegue.qml" line="151"/>
<source>Tip: Press Start+Select+L1+R1 to disconnect your session</source>
<translation>Tip: Appuyez sur Start+Select+L1+R1 pour déconnecter votre session</translation>
</message>
<message>
<location filename="../app/gui/StreamSegue.qml" line="152"/>
<source>Tip: Press Ctrl+Alt+Shift+Q to disconnect your session</source>
<translation>Tip: Appuyez sur Ctrl + Alt + Shift + Q pour déconnecter votre session</translation>
</message>
</context>
<context>
<name>main</name>
<message>
<location filename="../app/gui/main.qml" line="226"/>
<location filename="../app/gui/main.qml" line="236"/>
<location filename="../app/gui/main.qml" line="365"/>
<location filename="../app/gui/main.qml" line="380"/>
<source>Settings</source>
<translation>Paramètres</translation>
</message>
<message>
<location filename="../app/gui/main.qml" line="243"/>
<source>Join our community on Discord</source>
<translation>Rejoignez notre communauté sur Discord</translation>
</message>
<message>
<location filename="../app/gui/main.qml" line="255"/>
<source>Computers</source>
<translation>Ordinateurs</translation>
</message>
<message>
<location filename="../app/gui/main.qml" line="262"/>
<source>Add PC manually</source>
<translation>Ajouter un PC manuellement</translation>
</message>
<message>
<location filename="../app/gui/main.qml" line="302"/>
<source>Update available for Moonlight: Version </source>
<translation>Mise à jour disponible pour Moonlight : Version </translation>
</message>
<message>
<location filename="../app/gui/main.qml" line="326"/>
<source>Help</source>
<translation>Aide</translation>
</message>
<message>
<location filename="../app/gui/main.qml" line="387"/>
<source>No functioning hardware accelerated H.264 video decoder was detected by Moonlight. </source>
<translation>Aucun décodeur vidéo H.264 accéléré par le matériel n&apos;a é détecté par Moonlight. </translation>
</message>
<message>
<location filename="../app/gui/main.qml" line="388"/>
<source>Your streaming performance may be severely degraded in this configuration.</source>
<translation>Dans cette configuration, les performances de votre streaming peuvent être fortement dégradées.</translation>
</message>
<message>
<location filename="../app/gui/main.qml" line="389"/>
<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="../app/gui/main.qml" line="395"/>
<source>Hardware acceleration doesn&apos;t work on XWayland. Continuing on XWayland may result in poor streaming performance. </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. </translation>
</message>
<message>
<location filename="../app/gui/main.qml" line="396"/>
<source>Try running with QT_QPA_PLATFORM=wayland or switch to X11.</source>
<translation>Essayez de fonctionner avec QT_QPA_PLATFORM=wayland ou passez à X11.</translation>
</message>
<message>
<location filename="../app/gui/main.qml" line="397"/>
<source>Click the Help button for more information.</source>
<translation>Cliquez sur le bouton Aide pour plus d&apos;informations.</translation>
</message>
<message>
<location filename="../app/gui/main.qml" line="404"/>
<source>This PC is running a 64-bit version of Windows. Please download the x64 version of Moonlight for the best streaming performance.</source>
<translation>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="../app/gui/main.qml" line="413"/>
<source>Moonlight detected gamepads without a mapping:
</source>
<translation>Moonlight a détecté des manettes de jeu san configuration:
</translation>
</message>
<message>
<location filename="../app/gui/main.qml" line="415"/>
<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="../app/gui/main.qml" line="423"/>
<source>Are you sure you want to quit?</source>
<translation>Vous êtes sûr de vouloir quitter?</translation>
</message>
<message>
<location filename="../app/gui/main.qml" line="453"/>
<source>Enter the IP address of your GameStream PC:</source>
<translation>Saisissez l&apos;adresse IP de votre PC GameStream :</translation>
</message>
</context>
</TS>

View file

@ -1,3 +1,4 @@
TRANSLATIONS += languages/qml_fr.ts
TEMPLATE = subdirs
SUBDIRS = \
moonlight-common-c \