diff --git a/app/gui/AppView.qml b/app/gui/AppView.qml
index 6397f313..67e8ee65 100644
--- a/app/gui/AppView.qml
+++ b/app/gui/AppView.qml
@@ -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() {
diff --git a/app/gui/CliQuitStreamSegue.qml b/app/gui/CliQuitStreamSegue.qml
index 27e03974..2a964fe0 100644
--- a/app/gui/CliQuitStreamSegue.qml
+++ b/app/gui/CliQuitStreamSegue.qml
@@ -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) {
diff --git a/app/gui/CliStartStreamSegue.qml b/app/gui/CliStartStreamSegue.qml
index 9f0570b6..ce796b02 100644
--- a/app/gui/CliStartStreamSegue.qml
+++ b/app/gui/CliStartStreamSegue.qml
@@ -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 : ""
diff --git a/app/gui/PcView.qml b/app/gui/PcView.qml
index af5fddf9..314f80a4 100644
--- a/app/gui/PcView.qml
+++ b/app/gui/PcView.qml
@@ -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;
diff --git a/app/gui/QuitSegue.qml b/app/gui/QuitSegue.qml
index 068a5760..4896fe37 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 : "Quitting " + appName + "..."
+ property string stageText : qsTr("Quitting " + appName + "...")
function quitAppCompleted(error)
{
diff --git a/app/gui/SettingsView.qml b/app/gui/SettingsView.qml
index 7f7f3ae6..a0c80f2b 100644
--- a/app/gui/SettingsView.qml
+++ b/app/gui/SettingsView.qml
@@ -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: "Basic Settings"
+ title: qsTr("Basic Settings")
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: "Audio Settings"
+ title: qsTr("Audio Settings")
font.pointSize: 12
Column {
@@ -500,7 +500,7 @@ Flickable {
id: uiSettingsGroupBox
width: (parent.width - (parent.leftPadding + parent.rightPadding))
padding: 12
- title: "UI Settings"
+ title: qsTr("UI Settings")
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: "Input Settings"
+ title: qsTr("Input Settings")
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: "Host Settings"
+ title: qsTr("Host Settings")
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: "Advanced Settings"
+ title: qsTr("Advanced Settings")
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: {
diff --git a/app/gui/StreamSegue.qml b/app/gui/StreamSegue.qml
index 47a8155b..784094af 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 : "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()
diff --git a/app/gui/main.qml b/app/gui/main.qml
index 12d73066..0b8492aa 100644
--- a/app/gui/main.qml
+++ b/app/gui/main.qml
@@ -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
diff --git a/app/main.cpp b/app/main.cpp
index 326c8988..8e2c7769 100644
--- a/app/main.cpp
+++ b/app/main.cpp
@@ -11,6 +11,7 @@
#include
#include
#include
+#include
// 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: " <res/baseline-error_outline-24px.svg
res/baseline-check_circle_outline-24px.svgres/Discord-Logo-White.svg
+ ../languages/qml_fr.ts
+ ../languages/qml_fr.qmSDL_GameControllerDB/gamecontrollerdb.txt
diff --git a/languages/qml_fr.qm b/languages/qml_fr.qm
new file mode 100644
index 00000000..9de44f6b
Binary files /dev/null and b/languages/qml_fr.qm differ
diff --git a/languages/qml_fr.ts b/languages/qml_fr.ts
new file mode 100644
index 00000000..df6aa473
--- /dev/null
+++ b/languages/qml_fr.ts
@@ -0,0 +1,563 @@
+
+
+
+
+ AppView
+
+
+
+
+ Reprendre le jeu
+
+
+
+
+
+ Quitter le jeu
+
+
+
+
+ Lancer le jeu
+
+
+
+
+ Cacher le jeu
+
+
+
+ CliQuitStreamSegue
+
+
+
+ connexion au PC...
+
+
+
+
+ Fermeture de l'app...
+
+
+
+ CliStartStreamSegue
+
+
+
+ connexion au PC...
+
+
+
+
+ Chargement de la liste des applications...
+
+
+
+ PcView
+
+
+
+ Ordinateurs
+
+
+
+
+ Impossible de se connecter au PC spécifié.
+
+
+
+
+
+
+La connexion Internet de ce PC bloque Moonlight. Le streaming sur Internet peut ne pas fonctionner lorsqu'il est connecté à ce réseau.
+
+
+
+
+ Cliquez sur le bouton Aide pour connaître les solutions possibles.
+
+
+
+
+ La recherche de PC avec NVIDIA GameStream activé...
+
+
+
+
+ La découverte automatique des PC est désactivée. Ajoutez votre PC manuellement.
+
+
+
+
+ Voir les applications
+
+
+
+
+ Voir les applications cachées
+
+
+
+
+ Réveiller le PC
+
+
+
+
+ Test Réseau
+
+
+
+
+ Renommer le PC
+
+
+
+
+ Supprimer le PC
+
+
+
+
+ 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.
+
+
+
+
+ Êtes-vous sûr de vouloir supprimer ce PC ?
+
+
+
+
+ Moonlight teste votre connexion réseau pour déterminer si NVIDIA GameStream est bloqué
+
+This may take a few seconds…
+
+
+
+
+ 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.
+
+
+
+
+ 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.
+
+
+
+
+ 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 :
+
+
+
+
+
+ Saisissez le nouveau nom de ce PC :
+
+
+
+ SettingsView
+
+
+
+ Paramètres
+
+
+
+
+ <font color="skyblue">Paramètres de base</font>
+
+
+
+
+ Résolution et FPS
+
+
+
+
+ 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
+
+
+
+
+ 60 FPS
+
+
+
+
+
+ 90 FPS (Non supporté)
+
+
+
+
+
+ 120 FPS (Non supporté)
+
+
+
+
+ FPS (Non supporté)
+
+
+
+
+ Bitrate vidéo :
+
+
+
+
+ Baissez le débit binaire sur les connexions plus lentes. Augmentez le débit binaire pour améliorer la qualité de l'image.
+
+
+
+
+ Mode d'affichage
+
+
+
+
+ (Recommandé)
+
+
+
+
+ Plein écran
+
+
+
+
+ fenêtré sans bordure
+
+
+
+
+ Fenêtré
+
+
+
+
+ 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.
+
+
+
+
+ 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 réduit les micro-bégaiements en retardant les images qui arrivent trop tôt
+
+
+
+
+ <font color="skyblue">Réglages audio</font>
+
+
+
+
+ Configuration audio
+
+
+
+
+ <font color="skyblue">Réglages de l'interface utilisateur</font>
+
+
+
+
+ Maximiser la fenêtre Moonlight au démarrage
+
+
+
+
+ Afficher les avertissements sur la qualité de la connexion
+
+
+
+
+ Intégration de la présence Discord Rich
+
+
+
+
+ Met à jour votre statut Discord pour afficher le nom du jeu que vous diffusez en continu.
+
+
+
+
+ <font color="skyblue">Paramètres d'entrée</font>
+
+
+
+
+ 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.
+
+
+
+
+
+ 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.
+
+
+
+
+ Optimiser la souris pour le bureau à distance plutôt que pour les jeux
+
+
+
+
+ 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.
+
+
+
+
+ Utiliser l'écran tactile comme trackpad
+
+
+
+
+ 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.
+
+
+
+
+ Prise en charge du mode souris de la manette de jeu
+
+
+
+
+ Lorsqu'il est activé, le maintien du bouton "Start" permet de passer en mode souris
+
+
+
+
+ Échanger les boutons de la souris
+
+
+
+
+ Lorsque la case est cochée, permuter les boutons gauche et droit de la souris
+
+
+
+
+ <font color="skyblue">Paramètres de l'hôte</font>
+
+
+
+
+ Optimiser les paramètres du jeu pour la diffusion en continu
+
+
+
+
+ Lecture audio sur le PC hôte
+
+
+
+
+ Quitter l'application sur le PC hôte après avoir terminé le flux
+
+
+
+
+ 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">Paramètres avancés</font>
+
+
+
+
+ Décodeur vidéo
+
+
+
+
+
+ Automatique (recommandé)
+
+
+
+
+ Forcer le décodage des logiciels
+
+
+
+
+ Forcer le décodage du matériel
+
+
+
+
+ Codec vidéo
+
+
+
+
+ Débloquer les options non supportées du FPS
+
+
+
+
+ Trouver automatiquement les PC sur le réseau local (recommandé)
+
+
+
+
+ Détecter automatiquement les connexions bloquées (recommandé)
+
+
+
+ StreamSegue
+
+
+
+
+
+La connexion Internet de ce PC bloque Moonlight. Le streaming sur Internet peut ne pas fonctionner lorsqu'il est connecté à ce réseau.
+
+
+
+
+ Tip: Appuyez sur Start+Select+L1+R1 pour déconnecter votre session
+
+
+
+
+ Tip: Appuyez sur Ctrl + Alt + Shift + Q pour déconnecter votre session
+
+
+
+ main
+
+
+
+
+
+
+ Paramètres
+
+
+
+
+ Rejoignez notre communauté sur Discord
+
+
+
+
+ Ordinateurs
+
+
+
+
+ Ajouter un PC manuellement
+
+
+
+
+ Mise à jour disponible pour Moonlight : Version
+
+
+
+
+ Aide
+
+
+
+
+ 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.
+
+
+
+
+ Cliquez sur le bouton Aide pour obtenir plus d'informations sur la manière de résoudre ce problème.
+
+
+
+
+ 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.
+
+
+
+
+ Cliquez sur le bouton Aide pour plus d'informations.
+
+
+
+
+ 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 a détecté des manettes de jeu san configuration:
+
+
+
+
+
+ Cliquez sur le bouton Aide pour obtenir des informations sur la configuration de vos manettes de jeu.
+
+
+
+
+ Vous êtes sûr de vouloir quitter?
+
+
+
+
+ Saisissez l'adresse IP de votre PC GameStream :
+
+
+
diff --git a/moonlight-qt.pro b/moonlight-qt.pro
index a13627df..d05cd196 100644
--- a/moonlight-qt.pro
+++ b/moonlight-qt.pro
@@ -1,3 +1,4 @@
+TRANSLATIONS += languages/qml_fr.ts
TEMPLATE = subdirs
SUBDIRS = \
moonlight-common-c \