[vlc-commits] qml: use i18n.qtr for translation instead of qsTr

Pierre Lamot git at videolan.org
Fri Jan 10 15:06:18 CET 2020


vlc | branch: master | Pierre Lamot <pierre at videolabs.io> | Tue Dec  3 16:17:53 2019 +0100| [8e88b390a65d7547380d1ec2a15d0cd061963d2a] | committer: Jean-Baptiste Kempf

qml: use i18n.qtr for translation instead of qsTr

Signed-off-by: Jean-Baptiste Kempf <jb at videolan.org>

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=8e88b390a65d7547380d1ec2a15d0cd061963d2a
---

 modules/gui/qt/dialogs/dialogs/qml/Dialogs.qml     |  10 +-
 modules/gui/qt/dialogs/help/qml/About.qml          |  10 +-
 .../gui/qt/dialogs/toolbar/qml/ToolbarEditor.qml   |   6 +-
 modules/gui/qt/maininterface/qml/BannerSources.qml |  10 +-
 modules/gui/qt/maininterface/qml/MainInterface.qml |   2 +-
 .../gui/qt/medialibrary/qml/ArtistTopBanner.qml    |   2 +-
 modules/gui/qt/medialibrary/qml/AudioGridItem.qml  |   4 +-
 modules/gui/qt/medialibrary/qml/MainDisplay.qml    |   6 +-
 .../gui/qt/medialibrary/qml/MusicAlbumsDisplay.qml |   6 +-
 .../qml/MusicAlbumsGridExpandDelegate.qml          |  10 +-
 .../qt/medialibrary/qml/MusicArtistsDisplay.qml    |   4 +-
 modules/gui/qt/medialibrary/qml/MusicDisplay.qml   |   8 +-
 .../gui/qt/medialibrary/qml/MusicGenresDisplay.qml |   2 +-
 .../qt/medialibrary/qml/MusicTrackListDisplay.qml  |   2 +-
 modules/gui/qt/medialibrary/qml/VideoDisplay.qml   |   6 +-
 modules/gui/qt/medialibrary/qml/VideoGridItem.qml  |   2 +-
 .../qt/medialibrary/qml/VideoInfoExpandPanel.qml   |  20 ++--
 modules/gui/qt/menus/qml/AudioMenu.qml             |  14 +--
 modules/gui/qt/menus/qml/HelpMenu.qml              |   6 +-
 modules/gui/qt/menus/qml/MainDropdownMenu.qml      |  16 +--
 modules/gui/qt/menus/qml/MainMenubar.qml           |  16 +--
 modules/gui/qt/menus/qml/MediaMenu.qml             |  30 ++---
 modules/gui/qt/menus/qml/PlaybackMenu.qml          |  40 +++----
 modules/gui/qt/menus/qml/PopupMenu.qml             |  28 ++---
 modules/gui/qt/menus/qml/SubtitleMenu.qml          |   4 +-
 modules/gui/qt/menus/qml/ToolsMenu.qml             |  18 +--
 modules/gui/qt/menus/qml/VideoMenu.qml             |  20 ++--
 modules/gui/qt/menus/qml/ViewMenu.qml              |  14 +--
 .../gui/qt/network/qml/NetworkBrowseDisplay.qml    |  10 +-
 modules/gui/qt/network/qml/NetworkGridItem.qml     |   2 +-
 modules/gui/qt/network/qml/NetworkHomeDisplay.qml  |   6 +-
 modules/gui/qt/network/qml/NetworkListItem.qml     |   2 +-
 modules/gui/qt/player/qml/ControlButtons.qml       | 122 ++++++++++-----------
 modules/gui/qt/player/qml/TeletextWidget.qml       |  14 +--
 modules/gui/qt/player/qml/TopBar.qml               |   4 +-
 modules/gui/qt/player/qml/VolumeWidget.qml         |   4 +-
 modules/gui/qt/playlist/qml/PlaylistListView.qml   |  40 +++----
 modules/gui/qt/playlist/qml/PlaylistToolbar.qml    |   6 +-
 modules/gui/qt/widgets/qml/DNDLabel.qml            |   2 +-
 modules/gui/qt/widgets/qml/ListItem.qml            |   6 +-
 modules/gui/qt/widgets/qml/SearchBox.qml           |   4 +-
 modules/gui/qt/widgets/qml/SortControl.qml         |   2 +-
 42 files changed, 270 insertions(+), 270 deletions(-)

diff --git a/modules/gui/qt/dialogs/dialogs/qml/Dialogs.qml b/modules/gui/qt/dialogs/dialogs/qml/Dialogs.qml
index c8275a7c9a..08df8c67c4 100644
--- a/modules/gui/qt/dialogs/dialogs/qml/Dialogs.qml
+++ b/modules/gui/qt/dialogs/dialogs/qml/Dialogs.qml
@@ -106,7 +106,7 @@ Item {
             columns: 2
 
             Text {
-                text: qsTr("User")
+                text: i18n.qtr("User")
                 color: VLCStyle.colors.text
                 font.pixelSize: VLCStyle.fontSize_normal
             }
@@ -121,7 +121,7 @@ Item {
             }
 
             Text {
-                text: qsTr("Password")
+                text: i18n.qtr("Password")
                 color: VLCStyle.colors.text
                 font.pixelSize: VLCStyle.fontSize_normal
             }
@@ -135,7 +135,7 @@ Item {
             }
 
             Text {
-                text: qsTr("Save password")
+                text: i18n.qtr("Save password")
                 color: VLCStyle.colors.text
                 font.pixelSize: VLCStyle.fontSize_normal
             }
@@ -159,7 +159,7 @@ Item {
                     Widgets.TextToolButton {
                         id: loginCancel
                         Layout.fillWidth: true
-                        text: qsTr("cancel")
+                        text: i18n.qtr("cancel")
                         KeyNavigation.up: savePassword
                         KeyNavigation.right: loginOk
                         onClicked: {
@@ -172,7 +172,7 @@ Item {
                     Widgets.TextToolButton {
                         id: loginOk
                         Layout.fillWidth: true
-                        text: qsTr("Ok")
+                        text: i18n.qtr("Ok")
                         focus: true
                         KeyNavigation.up: savePassword
                         onClicked: {
diff --git a/modules/gui/qt/dialogs/help/qml/About.qml b/modules/gui/qt/dialogs/help/qml/About.qml
index 191800ee16..c4522740b1 100644
--- a/modules/gui/qt/dialogs/help/qml/About.qml
+++ b/modules/gui/qt/dialogs/help/qml/About.qml
@@ -53,7 +53,7 @@ Widgets.NavigableFocusScope {
 
                 Widgets.TextToolButton {
                     id: authorsBtn
-                    text: qsTr("Authors")
+                    text: i18n.qtr("Authors")
                     Layout.alignment: Qt.AlignLeft | Qt.AlignTop
                     onClicked: {
                         checked = true
@@ -66,7 +66,7 @@ Widgets.NavigableFocusScope {
 
                 Widgets.TextToolButton {
                     id: licenseBtn
-                    text: qsTr("License")
+                    text: i18n.qtr("License")
                     Layout.alignment: Qt.AlignLeft | Qt.AlignTop
                     onClicked: textArea.text = about.license
                     KeyNavigation.down: creditBtn
@@ -75,7 +75,7 @@ Widgets.NavigableFocusScope {
 
                 Widgets.TextToolButton {
                     id: creditBtn
-                    text: qsTr("Credit")
+                    text: i18n.qtr("Credit")
                     Layout.alignment: Qt.AlignLeft | Qt.AlignTop
                     KeyNavigation.down: backBtn
                     KeyNavigation.right: textScroll
@@ -94,7 +94,7 @@ Widgets.NavigableFocusScope {
                     id: backBtn
                     size: VLCStyle.icon_large
                     iconText: VLCIcons.exit
-                    text: qsTr("Back")
+                    text: i18n.qtr("Back")
                     Layout.alignment: Qt.AlignLeft | Qt.AlignBottom
                     KeyNavigation.right: textScroll
 
@@ -121,7 +121,7 @@ Widgets.NavigableFocusScope {
 
                 Text {
                     id: text1
-                    text: qsTr("VLC Media Player")
+                    text: i18n.qtr("VLC Media Player")
                     color: VLCStyle.colors.text
                     font.pixelSize: VLCStyle.fontSize_xxxlarge
                 }
diff --git a/modules/gui/qt/dialogs/toolbar/qml/ToolbarEditor.qml b/modules/gui/qt/dialogs/toolbar/qml/ToolbarEditor.qml
index 00b871ed5a..709816d66a 100644
--- a/modules/gui/qt/dialogs/toolbar/qml/ToolbarEditor.qml
+++ b/modules/gui/qt/dialogs/toolbar/qml/ToolbarEditor.qml
@@ -40,13 +40,13 @@ Rectangle{
             EditorTabButton {
                 id: mainPlayerTab
                 index: 0
-                text: qsTr("Mainplayer")
+                text: i18n.qtr("Mainplayer")
             }
 
             EditorTabButton {
                 id: miniPlayerTab
                 index: 1
-                text: qsTr("Miniplayer")
+                text: i18n.qtr("Miniplayer")
             }
         }
         Rectangle{
@@ -88,7 +88,7 @@ Rectangle{
 
                 Text {
                     Layout.margins: VLCStyle.margin_xxsmall
-                    text: qsTr("Drag items below to add them above: ")
+                    text: i18n.qtr("Drag items below to add them above: ")
                     font.pointSize: VLCStyle.fontHeight_xsmall
                     color: VLCStyle.colors.buttonText
                 }
diff --git a/modules/gui/qt/maininterface/qml/BannerSources.qml b/modules/gui/qt/maininterface/qml/BannerSources.qml
index 6f5f504161..7fdce97cb2 100644
--- a/modules/gui/qt/maininterface/qml/BannerSources.qml
+++ b/modules/gui/qt/maininterface/qml/BannerSources.qml
@@ -98,7 +98,7 @@ Widgets.NavigableFocusScope {
                             id: history_back
                             size: VLCStyle.icon_normal
                             iconText: VLCIcons.topbar_previous
-                            text: qsTr("Previous")
+                            text: i18n.qtr("Previous")
                             onClicked: history.previous(History.Go)
                             enabled: !history.previousEmpty
                         }
@@ -107,7 +107,7 @@ Widgets.NavigableFocusScope {
                             id: history_next
                             size: VLCStyle.icon_normal
                             iconText: VLCIcons.topbar_next
-                            text: qsTr("Next")
+                            text: i18n.qtr("Next")
                             onClicked: history.next(History.Go)
                             enabled: !history.nextEmpty
                         }
@@ -164,7 +164,7 @@ Widgets.NavigableFocusScope {
 
                             size: VLCStyle.icon_normal
                             iconText: VLCIcons.menu
-                            text: qsTr("Menu")
+                            text: i18n.qtr("Menu")
 
                             onClicked: mainMenu.openBelow(this)
 
@@ -206,7 +206,7 @@ Widgets.NavigableFocusScope {
                             id: list_grid_btn
                             size: VLCStyle.icon_normal
                             iconText: medialib.gridView ? VLCIcons.list : VLCIcons.grid
-                            text: qsTr("List/Grid")
+                            text: i18n.qtr("List/Grid")
                             onClicked: medialib.gridView = !medialib.gridView
                         }
 
@@ -288,7 +288,7 @@ Widgets.NavigableFocusScope {
 
                             size: VLCStyle.icon_normal
                             iconText: VLCIcons.playlist
-                            text: qsTr("Playlist")
+                            text: i18n.qtr("Playlist")
 
                             onClicked:  rootWindow.playlistVisible = !rootWindow.playlistVisible
                         }
diff --git a/modules/gui/qt/maininterface/qml/MainInterface.qml b/modules/gui/qt/maininterface/qml/MainInterface.qml
index 84b436ad17..8349f76086 100644
--- a/modules/gui/qt/maininterface/qml/MainInterface.qml
+++ b/modules/gui/qt/maininterface/qml/MainInterface.qml
@@ -41,7 +41,7 @@ Rectangle {
         active: !rootWindow.playlistDocked && rootWindow.playlistVisible
         sourceComponent: Window {
             visible: true
-            title: qsTr("Playlist")
+            title: i18n.qtr("Playlist")
             color: VLCStyle.colors.bg
             onClosing: rootWindow.playlistVisible = false
             PL.PlaylistListView {
diff --git a/modules/gui/qt/medialibrary/qml/ArtistTopBanner.qml b/modules/gui/qt/medialibrary/qml/ArtistTopBanner.qml
index 6e48df3622..f687417d99 100644
--- a/modules/gui/qt/medialibrary/qml/ArtistTopBanner.qml
+++ b/modules/gui/qt/medialibrary/qml/ArtistTopBanner.qml
@@ -66,7 +66,7 @@ Rectangle {
 
     Text {
         id: artistName
-        text: artist.name || qsTr("No artist")
+        text: artist.name || i18n.qtr("No artist")
 
         anchors {
             verticalCenter: parent.verticalCenter
diff --git a/modules/gui/qt/medialibrary/qml/AudioGridItem.qml b/modules/gui/qt/medialibrary/qml/AudioGridItem.qml
index 7478d12411..ebd0d472b4 100644
--- a/modules/gui/qt/medialibrary/qml/AudioGridItem.qml
+++ b/modules/gui/qt/medialibrary/qml/AudioGridItem.qml
@@ -25,8 +25,8 @@ import "qrc:///style/"
 Widgets.GridItem {
     property var model: ({})
     image: model.cover || VLCStyle.noArtAlbum
-    title: model.title || qsTr("Unknown title")
-    subtitle: model.main_artist || qsTr("Unknown artist")
+    title: model.title || i18n.qtr("Unknown title")
+    subtitle: model.main_artist || i18n.qtr("Unknown artist")
     isVideo: false
     pictureWidth: VLCStyle.cover_normal
     pictureHeight: VLCStyle.cover_normal
diff --git a/modules/gui/qt/medialibrary/qml/MainDisplay.qml b/modules/gui/qt/medialibrary/qml/MainDisplay.qml
index ef1135185b..b5a1f38aca 100644
--- a/modules/gui/qt/medialibrary/qml/MainDisplay.qml
+++ b/modules/gui/qt/medialibrary/qml/MainDisplay.qml
@@ -96,17 +96,17 @@ Widgets.NavigableFocusScope {
 
     readonly property var pageModel: [
         {
-            displayText: qsTr("Video"),
+            displayText: i18n.qtr("Video"),
             icon: VLCIcons.topbar_video,
             name: "video",
             component: videoComp
         }, {
-            displayText: qsTr("Music"),
+            displayText: i18n.qtr("Music"),
             icon: VLCIcons.topbar_music,
             name: "music",
             component: musicComp
         }, {
-            displayText: qsTr("Network"),
+            displayText: i18n.qtr("Network"),
             icon: VLCIcons.topbar_network,
             name: "network",
             component: networkComp
diff --git a/modules/gui/qt/medialibrary/qml/MusicAlbumsDisplay.qml b/modules/gui/qt/medialibrary/qml/MusicAlbumsDisplay.qml
index 12edfd5534..accc5b9e8e 100644
--- a/modules/gui/qt/medialibrary/qml/MusicAlbumsDisplay.qml
+++ b/modules/gui/qt/medialibrary/qml/MusicAlbumsDisplay.qml
@@ -67,8 +67,8 @@ Widgets.NavigableFocusScope {
                     source: model.cover || VLCStyle.noArtAlbum
                     sourceSize: Qt.size(width, height)
                 }
-                line1: (model.title || qsTr("Unknown title"))+" ["+model.duration+"]"
-                line2: model.main_artist || qsTr("Unknown artist")
+                line1: (model.title || i18n.qtr("Unknown title"))+" ["+model.duration+"]"
+                line2: model.main_artist || i18n.qtr("Unknown artist")
 
                 onItemClicked : {
                     delegateModel.updateSelection( modifier, view.currentItem.currentIndex, index )
@@ -212,6 +212,6 @@ Widgets.NavigableFocusScope {
         visible: delegateModel.items.count === 0
         font.pixelSize: VLCStyle.fontHeight_xxlarge
         color: root.activeFocus ? VLCStyle.colors.accent : VLCStyle.colors.text
-        text: qsTr("No albums found")
+        text: i18n.qtr("No albums found")
     }
 }
diff --git a/modules/gui/qt/medialibrary/qml/MusicAlbumsGridExpandDelegate.qml b/modules/gui/qt/medialibrary/qml/MusicAlbumsGridExpandDelegate.qml
index 54b3ace2e5..c46df982e7 100644
--- a/modules/gui/qt/medialibrary/qml/MusicAlbumsGridExpandDelegate.qml
+++ b/modules/gui/qt/medialibrary/qml/MusicAlbumsGridExpandDelegate.qml
@@ -85,7 +85,7 @@ Widgets.NavigableFocusScope {
                         Layout.alignment: Qt.AlignHCenter
 
                         iconText: VLCIcons.add
-                        text: qsTr("Enqueue")
+                        text: i18n.qtr("Enqueue")
 
                         onClicked: medialib.addToPlaylist(model.id)
 
@@ -100,7 +100,7 @@ Widgets.NavigableFocusScope {
                         size: VLCStyle.icon_normal
 
                         iconText: VLCIcons.play
-                        text: qsTr("Play")
+                        text: i18n.qtr("Play")
 
                         onClicked: medialib.addAndPlay(model.id)
 
@@ -141,7 +141,7 @@ Widgets.NavigableFocusScope {
                 color: "transparent"
                 Text {
                     id: expand_infos_title_id
-                    text: "<b>"+(model.title || qsTr("Unknown title") )+"</b>"
+                    text: "<b>"+(model.title || i18n.qtr("Unknown title") )+"</b>"
                     font.pixelSize: VLCStyle.fontSize_xxlarge
                     color: VLCStyle.colors.text
                 }
@@ -161,8 +161,8 @@ Widgets.NavigableFocusScope {
                 color: "transparent"
                 Text {
                     id: expand_infos_subtitle_id
-                    text: qsTr("By %1 - %2 - %3")
-                    .arg(model.main_artist || qsTr("Unknown title"))
+                    text: i18n.qtr("By %1 - %2 - %3")
+                    .arg(model.main_artist || i18n.qtr("Unknown title"))
                     .arg(model.release_year || "")
                     .arg(model.duration || "")
                     font.pixelSize: VLCStyle.fontSize_large
diff --git a/modules/gui/qt/medialibrary/qml/MusicArtistsDisplay.qml b/modules/gui/qt/medialibrary/qml/MusicArtistsDisplay.qml
index bb37460f98..89cd31781d 100644
--- a/modules/gui/qt/medialibrary/qml/MusicArtistsDisplay.qml
+++ b/modules/gui/qt/medialibrary/qml/MusicArtistsDisplay.qml
@@ -63,7 +63,7 @@ Widgets.NavigableFocusScope {
                     source: model.cover || VLCStyle.noArtArtistSmall
                 }
             }
-            line1: model.name || qsTr("Unknown artist")
+            line1: model.name || i18n.qtr("Unknown artist")
 
             onItemClicked: {
                 artistId = model.id
@@ -169,6 +169,6 @@ Widgets.NavigableFocusScope {
         visible: delegateModel.items.count === 0
         font.pixelSize: VLCStyle.fontHeight_xxlarge
         color: root.activeFocus ? VLCStyle.colors.accent : VLCStyle.colors.text
-        text: qsTr("No artists found")
+        text: i18n.qtr("No artists found")
     }
 }
diff --git a/modules/gui/qt/medialibrary/qml/MusicDisplay.qml b/modules/gui/qt/medialibrary/qml/MusicDisplay.qml
index c40d609bb6..9662d04334 100644
--- a/modules/gui/qt/medialibrary/qml/MusicDisplay.qml
+++ b/modules/gui/qt/medialibrary/qml/MusicDisplay.qml
@@ -65,19 +65,19 @@ Widgets.NavigableFocusScope {
     Component { id: tracksComp; MusicTrackListDisplay{  navigationParent: root } }
 
     readonly property var pageModel: [{
-            displayText: qsTr("Albums"),
+            displayText: i18n.qtr("Albums"),
             name: "albums",
             component: albumComp
         }, {
-            displayText: qsTr("Artists"),
+            displayText: i18n.qtr("Artists"),
             name: "artists",
             component: artistComp
         }, {
-            displayText: qsTr("Genres"),
+            displayText: i18n.qtr("Genres"),
             name: "genres" ,
             component: genresComp
         }, {
-            displayText: qsTr("Tracks"),
+            displayText: i18n.qtr("Tracks"),
             name: "tracks" ,
             component: tracksComp
         }
diff --git a/modules/gui/qt/medialibrary/qml/MusicGenresDisplay.qml b/modules/gui/qt/medialibrary/qml/MusicGenresDisplay.qml
index fc2987b3d6..7580daf6ed 100644
--- a/modules/gui/qt/medialibrary/qml/MusicGenresDisplay.qml
+++ b/modules/gui/qt/medialibrary/qml/MusicGenresDisplay.qml
@@ -190,6 +190,6 @@ Widgets.NavigableFocusScope {
         visible: delegateModel.items.count === 0
         font.pixelSize: VLCStyle.fontHeight_xxlarge
         color: root.activeFocus ? VLCStyle.colors.accent : VLCStyle.colors.text
-        text: qsTr("No genres found")
+        text: i18n.qtr("No genres found")
     }
 }
diff --git a/modules/gui/qt/medialibrary/qml/MusicTrackListDisplay.qml b/modules/gui/qt/medialibrary/qml/MusicTrackListDisplay.qml
index 9bbd5f2af3..60d955dea8 100644
--- a/modules/gui/qt/medialibrary/qml/MusicTrackListDisplay.qml
+++ b/modules/gui/qt/medialibrary/qml/MusicTrackListDisplay.qml
@@ -96,6 +96,6 @@ Widgets.KeyNavigableTableView {
         visible: delegateModel.items.count === 0
         font.pixelSize: VLCStyle.fontHeight_xxlarge
         color: root.activeFocus ? VLCStyle.colors.accent : VLCStyle.colors.text
-        text: qsTr("No tracks found")
+        text: i18n.qtr("No tracks found")
     }
 }
diff --git a/modules/gui/qt/medialibrary/qml/VideoDisplay.qml b/modules/gui/qt/medialibrary/qml/VideoDisplay.qml
index 752d8b6ec3..bfedf4fda7 100644
--- a/modules/gui/qt/medialibrary/qml/VideoDisplay.qml
+++ b/modules/gui/qt/medialibrary/qml/VideoDisplay.qml
@@ -34,7 +34,7 @@ Widgets.NavigableFocusScope {
     DG.ModalDialog {
         id: deleteDialog
         rootWindow: root
-        title: qsTr("Are you sure you want to delete?")
+        title: i18n.qtr("Are you sure you want to delete?")
         standardButtons: Dialog.Yes | Dialog.No
 
         onAccepted: console.log("Ok clicked")
@@ -118,7 +118,7 @@ Widgets.NavigableFocusScope {
             headerDelegate: Widgets.LabelSeparator {
                 id: videosSeparator
                 width: videosGV.width
-                text: qsTr("Videos")
+                text: i18n.qtr("Videos")
             }
 
 
@@ -218,6 +218,6 @@ Widgets.NavigableFocusScope {
         visible: videosDelegate.items.count === 0
         font.pixelSize: VLCStyle.fontHeight_xxlarge
         color: root.activeFocus ? VLCStyle.colors.accent : VLCStyle.colors.text
-        text: qsTr("No tracks found")
+        text: i18n.qtr("No tracks found")
     }
 }
diff --git a/modules/gui/qt/medialibrary/qml/VideoGridItem.qml b/modules/gui/qt/medialibrary/qml/VideoGridItem.qml
index db96508590..50715ddef0 100644
--- a/modules/gui/qt/medialibrary/qml/VideoGridItem.qml
+++ b/modules/gui/qt/medialibrary/qml/VideoGridItem.qml
@@ -25,7 +25,7 @@ import "qrc:///style/"
 Widgets.GridItem {
     property var model: ({})
     image: model.thumbnail || VLCStyle.noArtCover
-    title: model.title || qsTr("Unknown title")
+    title: model.title || i18n.qtr("Unknown title")
     infoLeft: model.duration || ""
     resolution: model.resolution_name || ""
     channel: model.channel || ""
diff --git a/modules/gui/qt/medialibrary/qml/VideoInfoExpandPanel.qml b/modules/gui/qt/medialibrary/qml/VideoInfoExpandPanel.qml
index b0452fad41..e76f610064 100644
--- a/modules/gui/qt/medialibrary/qml/VideoInfoExpandPanel.qml
+++ b/modules/gui/qt/medialibrary/qml/VideoInfoExpandPanel.qml
@@ -145,13 +145,13 @@ Widgets.NavigableFocusScope {
                         id: infoInnerCol
                         spacing: VLCStyle.margin_xsmall
                         model: [
-                            {text: qsTr("File Name"),    data: expandRect.model.title, bold: true},
-                            {text: qsTr("Path"),         data: expandRect.model.mrl},
-                            {text: qsTr("Length"),       data: expandRect.model.duration},
-                            {text: qsTr("File size"),    data: ""},
-                            {text: qsTr("Times played"), data: expandRect.model.playcount},
-                            {text: qsTr("Video track"),  data: expandRect.model.videoDesc},
-                            {text: qsTr("Audio track"),  data: expandRect.model.audioDesc},
+                            {text: i18n.qtr("File Name"),    data: expandRect.model.title, bold: true},
+                            {text: i18n.qtr("Path"),         data: expandRect.model.mrl},
+                            {text: i18n.qtr("Length"),       data: expandRect.model.duration},
+                            {text: i18n.qtr("File size"),    data: ""},
+                            {text: i18n.qtr("Times played"), data: expandRect.model.playcount},
+                            {text: i18n.qtr("Video track"),  data: expandRect.model.videoDesc},
+                            {text: i18n.qtr("Audio track"),  data: expandRect.model.audioDesc},
                         ]
                         delegate: Label {
                             font.bold: Boolean(modelData.bold)
@@ -230,14 +230,14 @@ Widgets.NavigableFocusScope {
                     Widgets.TabButtonExt {
                         id: playActionBtn
                         iconTxt: VLCIcons.play
-                        text: qsTr("Play")
+                        text: i18n.qtr("Play")
                         onClicked: medialib.addAndPlay( expandRect.model.id )
                     }
 
                     Widgets.TabButtonExt {
                         id: enqueueActionBtn
                         iconTxt: VLCIcons.add
-                        text: qsTr("Enqueue")
+                        text: i18n.qtr("Enqueue")
                         onClicked: medialib.addToPlaylist( expandRect.model.id )
                     }
                 }
@@ -260,7 +260,7 @@ Widgets.NavigableFocusScope {
 
                     size: VLCStyle.icon_normal
                     iconText: VLCIcons.close
-                    text: qsTr("Close")
+                    text: i18n.qtr("Close")
                     color: VLCStyle.colors.lightText
 
                     focus: true
diff --git a/modules/gui/qt/menus/qml/AudioMenu.qml b/modules/gui/qt/menus/qml/AudioMenu.qml
index aa8277d374..6b8f7ffca8 100644
--- a/modules/gui/qt/menus/qml/AudioMenu.qml
+++ b/modules/gui/qt/menus/qml/AudioMenu.qml
@@ -22,18 +22,18 @@ import "qrc:///widgets/" as Widgets
 
 Widgets.MenuExt {
     CheckableModelSubMenu {
-        title: qsTr("Audio &Track");
+        title: i18n.qtr("Audio &Track");
         enabled: player.isPlaying
         model: player.audioTracks
     }
 
     CheckableModelSubMenu {
-        title: qsTr("Audio &Device")
+        title: i18n.qtr("Audio &Device")
         model: player.audioDevices
     }
 
     CheckableModelSubMenu {
-        title: qsTr("&Stereo Mode");
+        title: i18n.qtr("&Stereo Mode");
         enabled: player.isPlaying
         model: player.audioStereoMode
     }
@@ -41,14 +41,14 @@ Widgets.MenuExt {
     MenuSeparator { }
 
     CheckableModelSubMenu {
-        title: qsTr("&Visualizations");
+        title: i18n.qtr("&Visualizations");
         enabled: player.isPlaying
         model: player.audioVisualization
     }
 
     MenuSeparator { }
 
-    Action { text: qsTr("Increase Volume"); enabled: player.isPlaying; onTriggered: player.setVolumeUp();   icon.source: "qrc:/toolbar/volume-high.svg";  }
-    Action { text: qsTr("Decrease Volume"); enabled: player.isPlaying; onTriggered: player.setVolumeDown(); icon.source: "qrc:/toolbar/volume-low.svg";   }
-    Action { text: qsTr("Mute");            enabled: player.isPlaying; onTriggered: player.toggleMuted();   icon.source: "qrc:/toolbar/volume-muted.svg"; }
+    Action { text: i18n.qtr("Increase Volume"); enabled: player.isPlaying; onTriggered: player.setVolumeUp();   icon.source: "qrc:/toolbar/volume-high.svg";  }
+    Action { text: i18n.qtr("Decrease Volume"); enabled: player.isPlaying; onTriggered: player.setVolumeDown(); icon.source: "qrc:/toolbar/volume-low.svg";   }
+    Action { text: i18n.qtr("Mute");            enabled: player.isPlaying; onTriggered: player.toggleMuted();   icon.source: "qrc:/toolbar/volume-muted.svg"; }
 }
diff --git a/modules/gui/qt/menus/qml/HelpMenu.qml b/modules/gui/qt/menus/qml/HelpMenu.qml
index 213235d73e..f92c6dd13c 100644
--- a/modules/gui/qt/menus/qml/HelpMenu.qml
+++ b/modules/gui/qt/menus/qml/HelpMenu.qml
@@ -22,7 +22,7 @@ import org.videolan.vlc 0.1
 import "qrc:///widgets/" as Widgets
 
 Widgets.MenuExt {
-    Action { text: qsTr("&Help");                 onTriggered: dialogProvider.helpDialog();   icon.source: "qrc:/menu/help.svg"; shortcut: "F1"              }
-    Action { text: qsTr("Check for &Updates..."); onTriggered: dialogProvider.updateDialog();                                                                }
-    Action { text: qsTr("&About");                onTriggered: history.push(["about"], History.Go);  icon.source: "qrc:/menu/info.svg"; shortcut: "Shift+F1" }
+    Action { text: i18n.qtr("&Help");                 onTriggered: dialogProvider.helpDialog();   icon.source: "qrc:/menu/help.svg"; shortcut: "F1"              }
+    Action { text: i18n.qtr("Check for &Updates..."); onTriggered: dialogProvider.updateDialog();                                                                }
+    Action { text: i18n.qtr("&About");                onTriggered: history.push(["about"], History.Go);  icon.source: "qrc:/menu/info.svg"; shortcut: "Shift+F1" }
 }
diff --git a/modules/gui/qt/menus/qml/MainDropdownMenu.qml b/modules/gui/qt/menus/qml/MainDropdownMenu.qml
index 639e2e8fe6..5f7df078c1 100644
--- a/modules/gui/qt/menus/qml/MainDropdownMenu.qml
+++ b/modules/gui/qt/menus/qml/MainDropdownMenu.qml
@@ -28,14 +28,14 @@ Widgets.MenuExt {
     closePolicy: Popup.CloseOnPressOutside | Popup.CloseOnEscape
 
 
-    MediaMenu { title: qsTr("&Media") }
-    PlaybackMenu { title: qsTr("&Playback") }
-    AudioMenu { title: qsTr("&Audio") }
-    VideoMenu { title: qsTr("&Video") }
-    SubtitleMenu { title: qsTr("&Subtitle") }
-    ToolsMenu { title: qsTr("&Tools") }
-    ViewMenu { title: qsTr("V&iew") }
-    HelpMenu { title: qsTr("&Help") }
+    MediaMenu { title: i18n.qtr("&Media") }
+    PlaybackMenu { title: i18n.qtr("&Playback") }
+    AudioMenu { title: i18n.qtr("&Audio") }
+    VideoMenu { title: i18n.qtr("&Video") }
+    SubtitleMenu { title: i18n.qtr("&Subtitle") }
+    ToolsMenu { title: i18n.qtr("&Tools") }
+    ViewMenu { title: i18n.qtr("V&iew") }
+    HelpMenu { title: i18n.qtr("&Help") }
 
     function openBelow(obj) {
         this.x = (obj.x + obj.width / 2) - this.width / 2
diff --git a/modules/gui/qt/menus/qml/MainMenubar.qml b/modules/gui/qt/menus/qml/MainMenubar.qml
index abd1cfc3bf..25c426c55a 100644
--- a/modules/gui/qt/menus/qml/MainMenubar.qml
+++ b/modules/gui/qt/menus/qml/MainMenubar.qml
@@ -22,12 +22,12 @@ import "qrc:///widgets/" as Widgets
 
 //main menus as a MenuBar
 MenuBar {
-    MediaMenu { title: qsTr("&Media") }
-    PlaybackMenu { title: qsTr("&Playback") }
-    AudioMenu { title: qsTr("&Audio") }
-    VideoMenu { title: qsTr("&Video") }
-    SubtitleMenu { title: qsTr("&Subtitle") }
-    ToolsMenu { title: qsTr("&Tools") }
-    ViewMenu { title: qsTr("V&iew") }
-    HelpMenu { title: qsTr("&Help") }
+    MediaMenu { title: i18n.qtr("&Media") }
+    PlaybackMenu { title: i18n.qtr("&Playback") }
+    AudioMenu { title: i18n.qtr("&Audio") }
+    VideoMenu { title: i18n.qtr("&Video") }
+    SubtitleMenu { title: i18n.qtr("&Subtitle") }
+    ToolsMenu { title: i18n.qtr("&Tools") }
+    ViewMenu { title: i18n.qtr("V&iew") }
+    HelpMenu { title: i18n.qtr("&Help") }
 }
diff --git a/modules/gui/qt/menus/qml/MediaMenu.qml b/modules/gui/qt/menus/qml/MediaMenu.qml
index 26c25a3124..fe0432cbfc 100644
--- a/modules/gui/qt/menus/qml/MediaMenu.qml
+++ b/modules/gui/qt/menus/qml/MediaMenu.qml
@@ -23,19 +23,19 @@ import "qrc:///widgets/" as Widgets
 Widgets.MenuExt {
     id: mediaMenu
 
-    Action { text: qsTr("Open &File..." ) ;               onTriggered: dialogProvider.simpleOpenDialog();          icon.source:"qrc:/type/file-asym.svg"                        }
-    Action { text: qsTr( "&Open Multiple Files..." );     onTriggered: dialogProvider.openFileDialog();            icon.source:"qrc:/type/file-asym.svg";                       }
-    Action { text: qsTr( "Open D&irectory" );             onTriggered: dialogProvider.PLOpenDir();                 icon.source:"qrc:/type/folder-grey.svg";  shortcut: "Ctrl+F" }
+    Action { text: i18n.qtr("Open &File..." ) ;               onTriggered: dialogProvider.simpleOpenDialog();          icon.source:"qrc:/type/file-asym.svg"                        }
+    Action { text: i18n.qtr( "&Open Multiple Files..." );     onTriggered: dialogProvider.openFileDialog();            icon.source:"qrc:/type/file-asym.svg";                       }
+    Action { text: i18n.qtr( "Open D&irectory" );             onTriggered: dialogProvider.PLOpenDir();                 icon.source:"qrc:/type/folder-grey.svg";  shortcut: "Ctrl+F" }
 
-    Action { text: qsTr("Open &Disc...");                 onTriggered: dialogProvider.openDiscDialog();            icon.source:"qrc:/type/disc.svg";         shortcut: "Ctrl+D" }
-    Action { text: qsTr("Open &Network Stream...");       onTriggered: dialogProvider.openNetDialog();             icon.source:"qrc:/type/network.svg";      shortcut: "Ctrl+N" }
-    Action { text: qsTr("Open &Capture Device...");       onTriggered: dialogProvider.openCaptureDialog();         icon.source:"qrc:/type/capture-card.svg"; shortcut: "Ctrl+C" }
-    Action { text: qsTr("Open &Location from clipboard"); onTriggered: dialogProvider.openUrlDialog();                                                       shortcut: "Ctrl+V" }
+    Action { text: i18n.qtr("Open &Disc...");                 onTriggered: dialogProvider.openDiscDialog();            icon.source:"qrc:/type/disc.svg";         shortcut: "Ctrl+D" }
+    Action { text: i18n.qtr("Open &Network Stream...");       onTriggered: dialogProvider.openNetDialog();             icon.source:"qrc:/type/network.svg";      shortcut: "Ctrl+N" }
+    Action { text: i18n.qtr("Open &Capture Device...");       onTriggered: dialogProvider.openCaptureDialog();         icon.source:"qrc:/type/capture-card.svg"; shortcut: "Ctrl+C" }
+    Action { text: i18n.qtr("Open &Location from clipboard"); onTriggered: dialogProvider.openUrlDialog();                                                       shortcut: "Ctrl+V" }
 
 
     Widgets.MenuExt {
         id: recentsMenu
-        title: qsTr("Open &Recent Media")
+        title: i18n.qtr("Open &Recent Media")
         property bool hasData: true
         onAboutToShow:{
             recentsMenu.hasData = Boolean(recentsMedias.rowCount())
@@ -86,17 +86,17 @@ Widgets.MenuExt {
 
         Widgets.MenuItemExt {
             id: clearAction
-            text: qsTr("Clear")
+            text: i18n.qtr("Clear")
             enabled: recentsMenu.hasData
             onTriggered:recentsMedias.clear()
         }
     }
 
-    Action { text: qsTr("Save Playlist to &File...");     onTriggered: dialogProvider.savePlayingToPlaylist();     icon.source: "";                      shortcut: "Ctrl+Y" }
-    Action { text: qsTr("Conve&rt / Save..." );           onTriggered: dialogProvider.openAndTranscodingDialogs(); icon.source: "";                      shortcut: "Ctrl+R" }
-    Action { text: qsTr("&Stream..." );                   onTriggered: dialogProvider.openAndStreamingDialogs();   icon.source: "qrc:/menu/stream.svg";  shortcut: "Ctrl+S" }
+    Action { text: i18n.qtr("Save Playlist to &File...");     onTriggered: dialogProvider.savePlayingToPlaylist();     icon.source: "";                      shortcut: "Ctrl+Y" }
+    Action { text: i18n.qtr("Conve&rt / Save..." );           onTriggered: dialogProvider.openAndTranscodingDialogs(); icon.source: "";                      shortcut: "Ctrl+R" }
+    Action { text: i18n.qtr("&Stream..." );                   onTriggered: dialogProvider.openAndStreamingDialogs();   icon.source: "qrc:/menu/stream.svg";  shortcut: "Ctrl+S" }
 
-    //Action { text: qsTr( "&close to systray" );           onTriggered: dialogprovider.closeToSystray();                                                                     }
-    Action { text: qsTr( "Quit at the end of playlist" ); onTriggered: console.warn("FIXME");                                                            shortcut: "Ctrl+Q"; checkable: true; checked: true; }
-    Action { text: qsTr( "&Quit" );                       onTriggered: dialogProvider.quit();                      icon.source:"qrc:/menu/exit.svg";     shortcut: "Ctrl+Q" }
+    //Action { text: i18n.qtr( "&close to systray" );           onTriggered: dialogprovider.closeToSystray();                                                                     }
+    Action { text: i18n.qtr( "Quit at the end of playlist" ); onTriggered: console.warn("FIXME");                                                            shortcut: "Ctrl+Q"; checkable: true; checked: true; }
+    Action { text: i18n.qtr( "&Quit" );                       onTriggered: dialogProvider.quit();                      icon.source:"qrc:/menu/exit.svg";     shortcut: "Ctrl+Q" }
 }
diff --git a/modules/gui/qt/menus/qml/PlaybackMenu.qml b/modules/gui/qt/menus/qml/PlaybackMenu.qml
index a28a524f33..20acebd326 100644
--- a/modules/gui/qt/menus/qml/PlaybackMenu.qml
+++ b/modules/gui/qt/menus/qml/PlaybackMenu.qml
@@ -27,20 +27,20 @@ Widgets.MenuExt {
 
 
     CheckableModelSubMenu {
-        title: qsTr("Title")
+        title: i18n.qtr("Title")
         enabled: player.isPlaying
         model: player.titles
     }
 
 
     CheckableModelSubMenu {
-        title: qsTr("Chapters");
+        title: i18n.qtr("Chapters");
         enabled: player.isPlaying
         model: player.chapters
     }
 
     CheckableModelSubMenu {
-        title: qsTr("Program");
+        title: i18n.qtr("Program");
         enabled: player.isPlaying
         model: player.programs
     }
@@ -48,7 +48,7 @@ Widgets.MenuExt {
     /*
     //FIXME unimplemented
     Menu {
-        title: qsTr("Custom Bookmarks");
+        title: i18n.qtr("Custom Bookmarks");
         enabled: isPlaying
     }
     */
@@ -56,33 +56,33 @@ Widgets.MenuExt {
     MenuSeparator { }
 
     Widgets.MenuExt {
-        title: qsTr("Renderer");
+        title: i18n.qtr("Renderer");
     }
 
     MenuSeparator { }
 
     Widgets.MenuExt {
-        title: qsTr("Speed");
+        title: i18n.qtr("Speed");
         enabled: isPlaying
-        Action { text: qsTr("&Faster");         onTriggered: player.faster();       icon.source: "qrc:/toolbar/faster2.svg";    }
-        Action { text: qsTr("&Faster (fine)");  onTriggered: player.littlefaster(); icon.source: "qrc:/toolbar/faster2.svg";    }
-        Action { text: qsTr("N&ormal Speed");   onTriggered: player.normalRate();                                               }
-        Action { text: qsTr("Slo&wer");         onTriggered: player.slower();       icon.source: "qrc:/toolbar/slower2.svg";    }
-        Action { text: qsTr("Slo&wer (fine)");  onTriggered: player.littleslower(); icon.source: "qrc:/toolbar/slower2.svg";    }
+        Action { text: i18n.qtr("&Faster");         onTriggered: player.faster();       icon.source: "qrc:/toolbar/faster2.svg";    }
+        Action { text: i18n.qtr("&Faster (fine)");  onTriggered: player.littlefaster(); icon.source: "qrc:/toolbar/faster2.svg";    }
+        Action { text: i18n.qtr("N&ormal Speed");   onTriggered: player.normalRate();                                               }
+        Action { text: i18n.qtr("Slo&wer");         onTriggered: player.slower();       icon.source: "qrc:/toolbar/slower2.svg";    }
+        Action { text: i18n.qtr("Slo&wer (fine)");  onTriggered: player.littleslower(); icon.source: "qrc:/toolbar/slower2.svg";    }
     }
 
     MenuSeparator { }
 
-    Action { text: qsTr("&Jump Forward");          enabled: player.isPlaying; onTriggered: player.jumpFwd();                icon.source: "qrc:/toolbar/skip_fw.svg";   }
-    Action { text: qsTr("Jump Bac&kward");         enabled: player.isPlaying; onTriggered: player.jumpBwd();                icon.source: "qrc:/toolbar/skip_back.svg"; }
-    Action { text: qsTr("Jump to Specific &Time"); enabled: player.isPlaying; onTriggered: dialogProvider.gotoTimeDialog();                                    }
+    Action { text: i18n.qtr("&Jump Forward");          enabled: player.isPlaying; onTriggered: player.jumpFwd();                icon.source: "qrc:/toolbar/skip_fw.svg";   }
+    Action { text: i18n.qtr("Jump Bac&kward");         enabled: player.isPlaying; onTriggered: player.jumpBwd();                icon.source: "qrc:/toolbar/skip_back.svg"; }
+    Action { text: i18n.qtr("Jump to Specific &Time"); enabled: player.isPlaying; onTriggered: dialogProvider.gotoTimeDialog();                                    }
 
     MenuSeparator { }
 
-    Action { text: qsTr("Play");     enabled: player.isPlaying ; onTriggered: mainPlaylistController.play();     icon.source: "qrc:/toolbar/play_b.svg";     }
-    Action { text: qsTr("Pause");    enabled: player.isPlaying ; onTriggered: mainPlaylistController.pause();    icon.source: "qrc:/toolbar/pause_b.svg";    }
-    Action { text: qsTr("Stop");     enabled: player.isPlaying ; onTriggered: mainPlaylistController.stop();     icon.source: "qrc:/toolbar/stop_b.svg";     }
-    Action { text: qsTr("Previous"); enabled: player.isPlaying ; onTriggered: mainPlaylistController.previous(); icon.source: "qrc:/toolbar/previous_b.svg"; }
-    Action { text: qsTr("Next");     enabled: player.isPlaying ; onTriggered: mainPlaylistController.next();     icon.source: "qrc:/toolbar/next_b.svg";     }
-    Action { text: qsTr("Record");   enabled: player.isPlaying ; onTriggered: player.toggleRecord();         icon.source: "qrc:/toolbar/record.svg";     }
+    Action { text: i18n.qtr("Play");     enabled: player.isPlaying ; onTriggered: mainPlaylistController.play();     icon.source: "qrc:/toolbar/play_b.svg";     }
+    Action { text: i18n.qtr("Pause");    enabled: player.isPlaying ; onTriggered: mainPlaylistController.pause();    icon.source: "qrc:/toolbar/pause_b.svg";    }
+    Action { text: i18n.qtr("Stop");     enabled: player.isPlaying ; onTriggered: mainPlaylistController.stop();     icon.source: "qrc:/toolbar/stop_b.svg";     }
+    Action { text: i18n.qtr("Previous"); enabled: player.isPlaying ; onTriggered: mainPlaylistController.previous(); icon.source: "qrc:/toolbar/previous_b.svg"; }
+    Action { text: i18n.qtr("Next");     enabled: player.isPlaying ; onTriggered: mainPlaylistController.next();     icon.source: "qrc:/toolbar/next_b.svg";     }
+    Action { text: i18n.qtr("Record");   enabled: player.isPlaying ; onTriggered: player.toggleRecord();         icon.source: "qrc:/toolbar/record.svg";     }
 }
diff --git a/modules/gui/qt/menus/qml/PopupMenu.qml b/modules/gui/qt/menus/qml/PopupMenu.qml
index 481cd70a93..0e439816d5 100644
--- a/modules/gui/qt/menus/qml/PopupMenu.qml
+++ b/modules/gui/qt/menus/qml/PopupMenu.qml
@@ -28,27 +28,27 @@ Widgets.MenuExt {
     modal: true
     closePolicy: Popup.CloseOnPressOutside | Popup.CloseOnEscape
 
-    Action { text: qsTr("Play");     enabled: player.isPlaying ; onTriggered: mainPlaylistController.play();     icon.source: "qrc:/toolbar/play_b.svg";     }
-    Action { text: qsTr("Pause");    enabled: player.isPlaying ; onTriggered: mainPlaylistController.pause();    icon.source: "qrc:/toolbar/pause_b.svg";    }
-    Action { text: qsTr("Stop");     enabled: player.isPlaying ; onTriggered: mainPlaylistController.stop();     icon.source: "qrc:/toolbar/stop_b.svg";     }
-    Action { text: qsTr("Previous"); enabled: player.isPlaying ; onTriggered: mainPlaylistController.previous(); icon.source: "qrc:/toolbar/previous_b.svg"; }
-    Action { text: qsTr("Next");     enabled: player.isPlaying ; onTriggered: mainPlaylistController.next();     icon.source: "qrc:/toolbar/next_b.svg";     }
-    Action { text: qsTr("Record");   enabled: player.isPlaying ; onTriggered: player.toggleRecord();         icon.source: "qrc:/toolbar/record.svg";     }
+    Action { text: i18n.qtr("Play");     enabled: player.isPlaying ; onTriggered: mainPlaylistController.play();     icon.source: "qrc:/toolbar/play_b.svg";     }
+    Action { text: i18n.qtr("Pause");    enabled: player.isPlaying ; onTriggered: mainPlaylistController.pause();    icon.source: "qrc:/toolbar/pause_b.svg";    }
+    Action { text: i18n.qtr("Stop");     enabled: player.isPlaying ; onTriggered: mainPlaylistController.stop();     icon.source: "qrc:/toolbar/stop_b.svg";     }
+    Action { text: i18n.qtr("Previous"); enabled: player.isPlaying ; onTriggered: mainPlaylistController.previous(); icon.source: "qrc:/toolbar/previous_b.svg"; }
+    Action { text: i18n.qtr("Next");     enabled: player.isPlaying ; onTriggered: mainPlaylistController.next();     icon.source: "qrc:/toolbar/next_b.svg";     }
+    Action { text: i18n.qtr("Record");   enabled: player.isPlaying ; onTriggered: player.toggleRecord();         icon.source: "qrc:/toolbar/record.svg";     }
 
     MenuSeparator {}
-    Action { text: qsTr("&Fullscreen Interface"); checkable: true; checked: rootWindow.interfaceFullScreen;  onTriggered: rootWindow.interfaceFullScreen = !rootWindow.interfaceFullScreen }
+    Action { text: i18n.qtr("&Fullscreen Interface"); checkable: true; checked: rootWindow.interfaceFullScreen;  onTriggered: rootWindow.interfaceFullScreen = !rootWindow.interfaceFullScreen }
 
     MenuSeparator {}
-    AudioMenu { title: qsTr("&Audio") }
-    VideoMenu { title: qsTr("&Video") }
-    SubtitleMenu { title: qsTr("&Subtitle") }
-    PlaybackMenu { title: qsTr("&Playback") }
+    AudioMenu { title: i18n.qtr("&Audio") }
+    VideoMenu { title: i18n.qtr("&Video") }
+    SubtitleMenu { title: i18n.qtr("&Subtitle") }
+    PlaybackMenu { title: i18n.qtr("&Playback") }
 
     MenuSeparator {}
 
-    ViewMenu { title: qsTr("V&iew") }
-    ToolsMenu { title: qsTr("&Tools") }
-    MediaMenu { title: qsTr("&Media") }
+    ViewMenu { title: i18n.qtr("V&iew") }
+    ToolsMenu { title: i18n.qtr("&Tools") }
+    MediaMenu { title: i18n.qtr("&Media") }
 
     function openBelow(obj) {
         this.x = (obj.x + obj.width / 2) - this.width / 2
diff --git a/modules/gui/qt/menus/qml/SubtitleMenu.qml b/modules/gui/qt/menus/qml/SubtitleMenu.qml
index f19b1bc969..e2d96856b5 100644
--- a/modules/gui/qt/menus/qml/SubtitleMenu.qml
+++ b/modules/gui/qt/menus/qml/SubtitleMenu.qml
@@ -22,13 +22,13 @@ import "qrc:///widgets/" as Widgets
 
 Widgets.MenuExt {
     Action {
-        text: qsTr("Add Subtitle File...")
+        text: i18n.qtr("Add Subtitle File...")
         enabled: player.isPlaying
         onTriggered: dialogProvider.loadSubtitlesFile();
     }
 
     CheckableModelSubMenu {
-        title: qsTr("Sub Track");
+        title: i18n.qtr("Sub Track");
         enabled: player.isPlaying
         model: player.subtitleTracks
     }
diff --git a/modules/gui/qt/menus/qml/ToolsMenu.qml b/modules/gui/qt/menus/qml/ToolsMenu.qml
index ab11236c4d..4e5f4f51ec 100644
--- a/modules/gui/qt/menus/qml/ToolsMenu.qml
+++ b/modules/gui/qt/menus/qml/ToolsMenu.qml
@@ -21,14 +21,14 @@ import QtQuick.Controls 2.4
 import "qrc:///widgets/" as Widgets
 
 Widgets.MenuExt {
-    Action { text: qsTr("&Effects and Filters");    onTriggered: dialogProvider.extendedDialog();   icon.source: "qrc:/menu/settings.svg";    shortcut: "Ctrl+E" }
-    Action { text: qsTr("&Track Synchronization");  onTriggered: dialogProvider.synchroDialog();    icon.source: "qrc:/menu/settings.svg";                       }
-    Action { text: qsTr("Media &Information") ;     onTriggered: dialogProvider.mediaInfoDialog();  icon.source: "qrc:/menu/info.svg";        shortcut: "Ctrl+I" }
-    Action { text: qsTr("&Codec Information") ;     onTriggered: dialogProvider.mediaCodecDialog(); icon.source: "qrc:/menu/info.svg";        shortcut: "Ctrl+J" }
-    Action { text: qsTr("Program Guide");           onTriggered: dialogProvider.epgDialog();                                                                     }
-    Action { text: qsTr("&Messages");               onTriggered: dialogProvider.messagesDialog();   icon.source: "qrc:/menu/messages.svg";    shortcut: "Ctrl+M" }
-    Action { text: qsTr("Plu&gins and extensions"); onTriggered: dialogProvider.pluginDialog();                                                                  }
+    Action { text: i18n.qtr("&Effects and Filters");    onTriggered: dialogProvider.extendedDialog();   icon.source: "qrc:/menu/settings.svg";    shortcut: "Ctrl+E" }
+    Action { text: i18n.qtr("&Track Synchronization");  onTriggered: dialogProvider.synchroDialog();    icon.source: "qrc:/menu/settings.svg";                       }
+    Action { text: i18n.qtr("Media &Information") ;     onTriggered: dialogProvider.mediaInfoDialog();  icon.source: "qrc:/menu/info.svg";        shortcut: "Ctrl+I" }
+    Action { text: i18n.qtr("&Codec Information") ;     onTriggered: dialogProvider.mediaCodecDialog(); icon.source: "qrc:/menu/info.svg";        shortcut: "Ctrl+J" }
+    Action { text: i18n.qtr("Program Guide");           onTriggered: dialogProvider.epgDialog();                                                                     }
+    Action { text: i18n.qtr("&Messages");               onTriggered: dialogProvider.messagesDialog();   icon.source: "qrc:/menu/messages.svg";    shortcut: "Ctrl+M" }
+    Action { text: i18n.qtr("Plu&gins and extensions"); onTriggered: dialogProvider.pluginDialog();                                                                  }
     MenuSeparator {}
-    Action { text: qsTr("Customise Interface");     onTriggered: dialogProvider.toolbarDialog();    icon.source: "qrc:/menu/preferences.svg";}
-    Action { text: qsTr("&Preferences");            onTriggered: dialogProvider.prefsDialog();      icon.source: "qrc:/menu/preferences.svg"; shortcut: "Ctrl+P" }
+    Action { text: i18n.qtr("Customise Interface");     onTriggered: dialogProvider.toolbarDialog();    icon.source: "qrc:/menu/preferences.svg";}
+    Action { text: i18n.qtr("&Preferences");            onTriggered: dialogProvider.prefsDialog();      icon.source: "qrc:/menu/preferences.svg"; shortcut: "Ctrl+P" }
 }
diff --git a/modules/gui/qt/menus/qml/VideoMenu.qml b/modules/gui/qt/menus/qml/VideoMenu.qml
index a4bcb7b6b6..1a01824cda 100644
--- a/modules/gui/qt/menus/qml/VideoMenu.qml
+++ b/modules/gui/qt/menus/qml/VideoMenu.qml
@@ -22,7 +22,7 @@ import "qrc:///widgets/" as Widgets
 
 Widgets.MenuExt {
     CheckableModelSubMenu {
-        title: qsTr("Video Track");
+        title: i18n.qtr("Video Track");
         enabled: player.isPlaying
         model: player.videoTracks
     }
@@ -30,7 +30,7 @@ Widgets.MenuExt {
     MenuSeparator { }
 
     Action {
-        text: qsTr("Fullscreen")
+        text: i18n.qtr("Fullscreen")
         enabled: player.isPlaying
         checkable: true
         checked: player.fullscreen
@@ -38,7 +38,7 @@ Widgets.MenuExt {
     }
 
     Action {
-        text: qsTr("Always Fit Window")
+        text: i18n.qtr("Always Fit Window")
         enabled: player.isPlaying
         checkable: true
         checked: player.autoscale
@@ -46,7 +46,7 @@ Widgets.MenuExt {
     }
 
     Action {
-        text: qsTr("Set as Wallpaper")
+        text: i18n.qtr("Set as Wallpaper")
         enabled: player.isPlaying
         checkable: true
         checked: player.wallpaperMode
@@ -56,19 +56,19 @@ Widgets.MenuExt {
     MenuSeparator { }
 
     CheckableModelSubMenu {
-        title: qsTr("Zoom")
+        title: i18n.qtr("Zoom")
         enabled: player.isPlaying
         model: player.zoom
     }
 
     CheckableModelSubMenu {
-        title: qsTr("Aspect Ratio")
+        title: i18n.qtr("Aspect Ratio")
         enabled: player.isPlaying
         model: player.aspectRatio
     }
 
     CheckableModelSubMenu {
-        title: qsTr("Crop")
+        title: i18n.qtr("Crop")
         enabled: player.isPlaying
         model: player.crop
     }
@@ -76,13 +76,13 @@ Widgets.MenuExt {
     MenuSeparator { }
 
     CheckableModelSubMenu {
-        title: qsTr("Deinterlace")
+        title: i18n.qtr("Deinterlace")
         enabled: player.isPlaying
         model: player.deinterlace
     }
 
     CheckableModelSubMenu {
-        title: qsTr("Deinterlace Mode");
+        title: i18n.qtr("Deinterlace Mode");
         enabled: player.isPlaying
         model: player.deinterlaceMode
     }
@@ -90,7 +90,7 @@ Widgets.MenuExt {
     MenuSeparator { }
 
     Action {
-        text: qsTr("Take snapshot");
+        text: i18n.qtr("Take snapshot");
         enabled: player.isPlaying
         onTriggered: player.snapshot();
     }
diff --git a/modules/gui/qt/menus/qml/ViewMenu.qml b/modules/gui/qt/menus/qml/ViewMenu.qml
index b66fbba92d..031543e613 100644
--- a/modules/gui/qt/menus/qml/ViewMenu.qml
+++ b/modules/gui/qt/menus/qml/ViewMenu.qml
@@ -24,24 +24,24 @@ import "qrc:///widgets/" as Widgets
 Widgets.MenuExt {
     id: viewMenu
     Action {
-        text: qsTr("Play&list")
+        text: i18n.qtr("Play&list")
         onTriggered: rootWindow.playlistVisible = !rootWindow.playlistVisible
     }
     Action {
-        text: qsTr("Docked Playlist")
+        text: i18n.qtr("Docked Playlist")
         checkable: true
         checked: rootWindow.playlistDocked
         onTriggered: rootWindow.playlistDocked = !rootWindow.playlistDocked
     }
     Action {
-        text: qsTr("&Always on Top")
+        text: i18n.qtr("&Always on Top")
         checkable: true
         checked: rootWindow.interfaceAlwaysOnTop
         onTriggered: rootWindow.interfaceAlwaysOnTop = !rootWindow.interfaceAlwaysOnTop
     }
 
     Action {
-        text: qsTr("&Fullscreen Interface")
+        text: i18n.qtr("&Fullscreen Interface")
         checkable: true
         checked: rootWindow.interfaceFullScreen
         onTriggered: rootWindow.interfaceFullScreen = !rootWindow.interfaceFullScreen
@@ -50,7 +50,7 @@ Widgets.MenuExt {
     Loader {
         active: medialib !== null
         sourceComponent:  Widgets.MenuItemExt {
-            text: qsTr("&View Items as Grid")
+            text: i18n.qtr("&View Items as Grid")
             checkable: true
             checked: medialib.gridView
             onTriggered: medialib.gridView = !medialib.gridView
@@ -58,7 +58,7 @@ Widgets.MenuExt {
     }
 
     Widgets.MenuExt {
-        title: qsTr("Color Scheme")
+        title: i18n.qtr("Color Scheme")
         Repeater {
             model: VLCStyle.colors.colorSchemes
             Widgets.MenuItemExt {
@@ -73,7 +73,7 @@ Widgets.MenuExt {
     MenuSeparator {}
 
     CheckableModelSubMenu{
-        title: qsTr("Add Interface")
+        title: i18n.qtr("Add Interface")
         model: rootWindow.extraInterfaces
     }
 
diff --git a/modules/gui/qt/network/qml/NetworkBrowseDisplay.qml b/modules/gui/qt/network/qml/NetworkBrowseDisplay.qml
index b84ea131f9..65758d8503 100644
--- a/modules/gui/qt/network/qml/NetworkBrowseDisplay.qml
+++ b/modules/gui/qt/network/qml/NetworkBrowseDisplay.qml
@@ -33,7 +33,7 @@ Widgets.NavigableFocusScope {
 
     property var extraLocalActions: ObjectModel {
         Widgets.TabButtonExt {
-            text:  providerModel.indexed ?  qsTr("Remove from medialibrary") : qsTr("Add to medialibrary")
+            text:  providerModel.indexed ?  i18n.qtr("Remove from medialibrary") : i18n.qtr("Add to medialibrary")
             visible: !providerModel.is_on_provider_list && providerModel.canBeIndexed
             onClicked: providerModel.indexed = !providerModel.indexed
         }
@@ -94,15 +94,15 @@ Widgets.NavigableFocusScope {
 
             model: [{
                     active: true,
-                    text: qsTr("Play"),
+                    text: i18n.qtr("Play"),
                     action: "play"
                 }, {
                     active: true,
-                    text: qsTr("Enqueue"),
+                    text: i18n.qtr("Enqueue"),
                     action: "enqueue"
                 }, {
                     active:  contextMenu.model && !!contextMenu.model.can_index,
-                    text: contextMenu.model && contextMenu.model.indexed ? qsTr("Remove from Media Library") : qsTr("Add to Media Library") ,
+                    text: contextMenu.model && contextMenu.model.indexed ? i18n.qtr("Remove from Media Library") : i18n.qtr("Add to Media Library") ,
                     action: "index"
                 }
             ]
@@ -163,7 +163,7 @@ Widgets.NavigableFocusScope {
                     }
                 }
                 subtitle: model.mrl || ""
-                title: model.name || qsTr("Unknown share")
+                title: model.name || i18n.qtr("Unknown share")
                 showContextButton: true
 
                 onItemClicked : {
diff --git a/modules/gui/qt/network/qml/NetworkGridItem.qml b/modules/gui/qt/network/qml/NetworkGridItem.qml
index 21248eec5c..f7086bf74c 100644
--- a/modules/gui/qt/network/qml/NetworkGridItem.qml
+++ b/modules/gui/qt/network/qml/NetworkGridItem.qml
@@ -47,6 +47,6 @@ Widgets.GridItem {
         }
     }
     subtitle: model.mrl
-    title: model.name || qsTr("Unknown share")
+    title: model.name || i18n.qtr("Unknown share")
     showContextButton: true
 }
diff --git a/modules/gui/qt/network/qml/NetworkHomeDisplay.qml b/modules/gui/qt/network/qml/NetworkHomeDisplay.qml
index 9681ea9b88..aa13f613c2 100644
--- a/modules/gui/qt/network/qml/NetworkHomeDisplay.qml
+++ b/modules/gui/qt/network/qml/NetworkHomeDisplay.qml
@@ -34,7 +34,7 @@ Widgets.NavigableFocusScope {
         visible: (machineDM.items.count === 0 && lanDM.items.count === 0 )
         font.pixelSize: VLCStyle.fontHeight_xxlarge
         color: topFocusScope.activeFocus ? VLCStyle.colors.accent : VLCStyle.colors.text
-        text: qsTr("No network shares found")
+        text: i18n.qtr("No network shares found")
     }
 
     NetworksSectionSelectableDM{
@@ -68,7 +68,7 @@ Widgets.NavigableFocusScope {
             spacing: VLCStyle.margin_normal
 
             Widgets.LabelSeparator {
-                text: qsTr("Devices")
+                text: i18n.qtr("Devices")
                 width: flickable.width
                 visible: machineDM.items.count !== 0
             }
@@ -96,7 +96,7 @@ Widgets.NavigableFocusScope {
             }
 
             Widgets.LabelSeparator {
-                text: qsTr("LAN")
+                text: i18n.qtr("LAN")
                 width: flickable.width
                 visible: lanDM.items.count !== 0
             }
diff --git a/modules/gui/qt/network/qml/NetworkListItem.qml b/modules/gui/qt/network/qml/NetworkListItem.qml
index b28a65c361..75a0af7950 100644
--- a/modules/gui/qt/network/qml/NetworkListItem.qml
+++ b/modules/gui/qt/network/qml/NetworkListItem.qml
@@ -55,7 +55,7 @@ Widgets.ListItem {
             }
         }
     }
-    line1: model.name || qsTr("Unknown share")
+    line1: model.name || i18n.qtr("Unknown share")
     line2: model.mrl
     imageText: (model.type !== NetworkMediaModel.TYPE_DIRECTORY && model.type !== NetworkMediaModel.TYPE_NODE) ? model.protocol : ""
 
diff --git a/modules/gui/qt/player/qml/ControlButtons.qml b/modules/gui/qt/player/qml/ControlButtons.qml
index c77eb5ba4e..4143a811b9 100644
--- a/modules/gui/qt/player/qml/ControlButtons.qml
+++ b/modules/gui/qt/player/qml/ControlButtons.qml
@@ -28,36 +28,36 @@ import "qrc:///style/"
 
 Item{
     property var buttonL: [
-        { id:  PlayerControlBarModel.PLAY_BUTTON, label: VLCIcons.play, text: qsTr("Play")},
-        { id:  PlayerControlBarModel.STOP_BUTTON, label: VLCIcons.stop, text: qsTr("Stop")},
-        { id:  PlayerControlBarModel.OPEN_BUTTON, label: VLCIcons.eject, text: qsTr("Open")},
-        { id:  PlayerControlBarModel.PREVIOUS_BUTTON, label: VLCIcons.previous, text: qsTr("Previous")},
-        { id:  PlayerControlBarModel.NEXT_BUTTON, label: VLCIcons.next, text: qsTr("Next")},
-        { id:  PlayerControlBarModel.SLOWER_BUTTON, label: VLCIcons.slower, text: qsTr("Slower")},
-        { id:  PlayerControlBarModel.FASTER_BUTTON, label: VLCIcons.faster, text: qsTr("Faster")},
-        { id:  PlayerControlBarModel.FULLSCREEN_BUTTON, label: VLCIcons.fullscreen, text: qsTr("Fullscreen")},
-        { id:  PlayerControlBarModel.EXTENDED_BUTTON, label: VLCIcons.extended, text: qsTr("Extended panel")},
-        { id:  PlayerControlBarModel.PLAYLIST_BUTTON, label: VLCIcons.playlist, text: qsTr("Playlist")},
-        { id:  PlayerControlBarModel.SNAPSHOT_BUTTON, label: VLCIcons.snapshot, text: qsTr("Snapshot")},
-        { id:  PlayerControlBarModel.RECORD_BUTTON, label: VLCIcons.record, text: qsTr("Record")},
-        { id:  PlayerControlBarModel.ATOB_BUTTON, label: VLCIcons.atob, text: qsTr("A-B Loop")},
-        { id:  PlayerControlBarModel.FRAME_BUTTON, label: VLCIcons.frame_by_frame, text: qsTr("Frame By Frame")},
-        { id:  PlayerControlBarModel.SKIP_BACK_BUTTON, label: VLCIcons.skip_back, text: qsTr("Step backward")},
-        { id:  PlayerControlBarModel.SKIP_FW_BUTTON, label: VLCIcons.skip_for, text: qsTr("Step forward")},
-        { id:  PlayerControlBarModel.QUIT_BUTTON, label: VLCIcons.clear, text: qsTr("Quit")},
-        { id:  PlayerControlBarModel.RANDOM_BUTTON, label: VLCIcons.shuffle_on, text: qsTr("Random")},
-        { id:  PlayerControlBarModel.LOOP_BUTTON, label: VLCIcons.repeat_all, text: qsTr("Loop")},
-        { id:  PlayerControlBarModel.INFO_BUTTON, label: VLCIcons.info, text: qsTr("Information")},
-        { id:  PlayerControlBarModel.LANG_BUTTON, label: VLCIcons.audiosub, text: qsTr("Open subtitles")},
-        { id:  PlayerControlBarModel.MENU_BUTTON, label: VLCIcons.menu, text: qsTr("Menu Button")},
-        { id:  PlayerControlBarModel.BACK_BUTTON, label: VLCIcons.exit, text: qsTr("Back Button")},
-        { id:  PlayerControlBarModel.CHAPTER_PREVIOUS_BUTTON, label: VLCIcons.dvd_prev, text: qsTr("Previous chapter")},
-        { id:  PlayerControlBarModel.CHAPTER_NEXT_BUTTON, label: VLCIcons.dvd_next, text: qsTr("Next chapter")},
-        { id:  PlayerControlBarModel.VOLUME, label: VLCIcons.volume_high, text: qsTr("Volume Widget")},
-        { id:  PlayerControlBarModel.TELETEXT_BUTTONS, label: VLCIcons.tvtelx, text: qsTr("Teletext")},
-        { id:  PlayerControlBarModel.ASPECT_RATIO_COMBOBOX, label: VLCIcons.aspect_ratio, text: qsTr("Aspect Ratio")},
-        { id:  PlayerControlBarModel.WIDGET_SPACER, label: VLCIcons.space, text: qsTr("Spacer")},
-        { id:  PlayerControlBarModel.WIDGET_SPACER_EXTEND, label: VLCIcons.space, text: qsTr("Expanding Spacer")}
+        { id:  PlayerControlBarModel.PLAY_BUTTON, label: VLCIcons.play, text: i18n.qtr("Play")},
+        { id:  PlayerControlBarModel.STOP_BUTTON, label: VLCIcons.stop, text: i18n.qtr("Stop")},
+        { id:  PlayerControlBarModel.OPEN_BUTTON, label: VLCIcons.eject, text: i18n.qtr("Open")},
+        { id:  PlayerControlBarModel.PREVIOUS_BUTTON, label: VLCIcons.previous, text: i18n.qtr("Previous")},
+        { id:  PlayerControlBarModel.NEXT_BUTTON, label: VLCIcons.next, text: i18n.qtr("Next")},
+        { id:  PlayerControlBarModel.SLOWER_BUTTON, label: VLCIcons.slower, text: i18n.qtr("Slower")},
+        { id:  PlayerControlBarModel.FASTER_BUTTON, label: VLCIcons.faster, text: i18n.qtr("Faster")},
+        { id:  PlayerControlBarModel.FULLSCREEN_BUTTON, label: VLCIcons.fullscreen, text: i18n.qtr("Fullscreen")},
+        { id:  PlayerControlBarModel.EXTENDED_BUTTON, label: VLCIcons.extended, text: i18n.qtr("Extended panel")},
+        { id:  PlayerControlBarModel.PLAYLIST_BUTTON, label: VLCIcons.playlist, text: i18n.qtr("Playlist")},
+        { id:  PlayerControlBarModel.SNAPSHOT_BUTTON, label: VLCIcons.snapshot, text: i18n.qtr("Snapshot")},
+        { id:  PlayerControlBarModel.RECORD_BUTTON, label: VLCIcons.record, text: i18n.qtr("Record")},
+        { id:  PlayerControlBarModel.ATOB_BUTTON, label: VLCIcons.atob, text: i18n.qtr("A-B Loop")},
+        { id:  PlayerControlBarModel.FRAME_BUTTON, label: VLCIcons.frame_by_frame, text: i18n.qtr("Frame By Frame")},
+        { id:  PlayerControlBarModel.SKIP_BACK_BUTTON, label: VLCIcons.skip_back, text: i18n.qtr("Step backward")},
+        { id:  PlayerControlBarModel.SKIP_FW_BUTTON, label: VLCIcons.skip_for, text: i18n.qtr("Step forward")},
+        { id:  PlayerControlBarModel.QUIT_BUTTON, label: VLCIcons.clear, text: i18n.qtr("Quit")},
+        { id:  PlayerControlBarModel.RANDOM_BUTTON, label: VLCIcons.shuffle_on, text: i18n.qtr("Random")},
+        { id:  PlayerControlBarModel.LOOP_BUTTON, label: VLCIcons.repeat_all, text: i18n.qtr("Loop")},
+        { id:  PlayerControlBarModel.INFO_BUTTON, label: VLCIcons.info, text: i18n.qtr("Information")},
+        { id:  PlayerControlBarModel.LANG_BUTTON, label: VLCIcons.audiosub, text: i18n.qtr("Open subtitles")},
+        { id:  PlayerControlBarModel.MENU_BUTTON, label: VLCIcons.menu, text: i18n.qtr("Menu Button")},
+        { id:  PlayerControlBarModel.BACK_BUTTON, label: VLCIcons.exit, text: i18n.qtr("Back Button")},
+        { id:  PlayerControlBarModel.CHAPTER_PREVIOUS_BUTTON, label: VLCIcons.dvd_prev, text: i18n.qtr("Previous chapter")},
+        { id:  PlayerControlBarModel.CHAPTER_NEXT_BUTTON, label: VLCIcons.dvd_next, text: i18n.qtr("Next chapter")},
+        { id:  PlayerControlBarModel.VOLUME, label: VLCIcons.volume_high, text: i18n.qtr("Volume Widget")},
+        { id:  PlayerControlBarModel.TELETEXT_BUTTONS, label: VLCIcons.tvtelx, text: i18n.qtr("Teletext")},
+        { id:  PlayerControlBarModel.ASPECT_RATIO_COMBOBOX, label: VLCIcons.aspect_ratio, text: i18n.qtr("Aspect Ratio")},
+        { id:  PlayerControlBarModel.WIDGET_SPACER, label: VLCIcons.space, text: i18n.qtr("Spacer")},
+        { id:  PlayerControlBarModel.WIDGET_SPACER_EXTEND, label: VLCIcons.space, text: i18n.qtr("Expanding Spacer")}
     ]
 
     function returnbuttondelegate(inpID){
@@ -103,7 +103,7 @@ Item{
             id: backBtn
             size: VLCStyle.icon_medium
             iconText: VLCIcons.exit
-            text: qsTr("Back")
+            text: i18n.qtr("Back")
             onClicked: history.previous(History.Go)
             property bool acceptFocus: true
         }
@@ -118,7 +118,7 @@ Item{
             iconText: VLCIcons.shuffle_on
             onClicked: mainPlaylistController.toggleRandom()
             property bool acceptFocus: true
-            text: qsTr("Random")
+            text: i18n.qtr("Random")
         }
     }
 
@@ -130,7 +130,7 @@ Item{
             iconText: VLCIcons.previous
             onClicked: mainPlaylistController.prev()
             property bool acceptFocus: true
-            text: qsTr("Previous")
+            text: i18n.qtr("Previous")
         }
     }
 
@@ -147,8 +147,8 @@ Item{
             property bool acceptFocus: true
             text: (player.playingState !== PlayerController.PLAYING_STATE_PAUSED
                    && player.playingState !== PlayerController.PLAYING_STATE_STOPPED)
-                  ? qsTr("Pause")
-                  : qsTr("Play")
+                  ? i18n.qtr("Pause")
+                  : i18n.qtr("Play")
         }
     }
 
@@ -160,7 +160,7 @@ Item{
             iconText: VLCIcons.next
             onClicked: mainPlaylistController.next()
             property bool acceptFocus: true
-            text: qsTr("Next")
+            text: i18n.qtr("Next")
         }
     }
 
@@ -175,7 +175,7 @@ Item{
             visible: player.hasChapters
             enabled: visible
             property bool acceptFocus: visible
-            text: qsTr("Previous chapter")
+            text: i18n.qtr("Previous chapter")
         }
     }
 
@@ -191,7 +191,7 @@ Item{
             visible: player.hasChapters
             enabled: visible
             property bool acceptFocus: visible
-            text: qsTr("Next chapter")
+            text: i18n.qtr("Next chapter")
         }
     }
 
@@ -207,7 +207,7 @@ Item{
                   : VLCIcons.repeat_all
             onClicked: mainPlaylistController.toggleRepeatMode()
             property bool acceptFocus: true
-            text: qsTr("Repeat")
+            text: i18n.qtr("Repeat")
         }
     }
 
@@ -223,7 +223,7 @@ Item{
                 langMenu.open()
             }
 
-            text: qsTr("Languages and tracks")
+            text: i18n.qtr("Languages and tracks")
 
             PlayerMenu {
                 id: langMenu
@@ -236,7 +236,7 @@ Item{
                 }
                 focus: true
 
-                title: qsTr("Languages and Tracks")
+                title: i18n.qtr("Languages and Tracks")
 
 
                 Connections {
@@ -253,7 +253,7 @@ Item{
                     id: subtrackMenu
                     onOpened: rootPlayer._menu = subtrackMenu
                     parentMenu: langMenu
-                    title: qsTr("Subtitle Track")
+                    title: i18n.qtr("Subtitle Track")
                     enabled: player.isPlaying && player.subtitleTracks.count > 0
                     Repeater {
                         model: player.subtitleTracks
@@ -270,7 +270,7 @@ Item{
 
                 PlayerMenu {
                     id: audiotrackMenu
-                    title: qsTr("Audio Track")
+                    title: i18n.qtr("Audio Track")
 
                     parentMenu: langMenu
                     onOpened: rootPlayer._menu = audiotrackMenu
@@ -292,7 +292,7 @@ Item{
 
                 PlayerMenu {
                     id: videotrackMenu
-                    title: qsTr("Video Track")
+                    title: i18n.qtr("Video Track")
                     parentMenu: langMenu
                     onOpened: rootPlayer._menu = videotrackMenu
                     enabled: player.isPlaying && player.videoTracks.count > 0
@@ -327,7 +327,7 @@ Item{
                 }
             }
             property bool acceptFocus: true
-            text: qsTr("Playlist")
+            text: i18n.qtr("Playlist")
         }
 
     }
@@ -351,7 +351,7 @@ Item{
                 }
             }
             property bool acceptFocus: true
-            text: qsTr("Menu")
+            text: i18n.qtr("Menu")
         }
     }
 
@@ -420,7 +420,7 @@ Item{
             iconText: rootWindow.interfaceFullScreen ?VLCIcons.defullscreen :VLCIcons.fullscreen
             onClicked: rootWindow.interfaceFullScreen = !rootWindow.interfaceFullScreen
             property bool acceptFocus: true
-            text: qsTr("fullscreen")
+            text: i18n.qtr("fullscreen")
         }
     }
 
@@ -434,7 +434,7 @@ Item{
             checked: player.isRecording
             onClicked: player.toggleRecord()
             property bool acceptFocus: true
-            text: qsTr("record")
+            text: i18n.qtr("record")
         }
     }
 
@@ -458,7 +458,7 @@ Item{
             color: VLCStyle.colors.buttonText
             colorOverlay: VLCStyle.colors.banner
             property bool acceptFocus: true
-            text: qsTr("A to B")
+            text: i18n.qtr("A to B")
         }
     }
 
@@ -471,7 +471,7 @@ Item{
             iconText: VLCIcons.snapshot
             onClicked: player.snapshot()
             property bool acceptFocus: true
-            text: qsTr("Snapshot")
+            text: i18n.qtr("Snapshot")
         }
     }
 
@@ -485,7 +485,7 @@ Item{
             iconText: VLCIcons.stop
             onClicked: mainPlaylistController.stop()
             property bool acceptFocus: true
-            text: qsTr("Stop")
+            text: i18n.qtr("Stop")
         }
     }
 
@@ -498,7 +498,7 @@ Item{
             iconText: VLCIcons.info
             onClicked: dialogProvider.mediaInfoDialog()
             property bool acceptFocus: true
-            text: qsTr("Informations")
+            text: i18n.qtr("Informations")
         }
     }
 
@@ -512,7 +512,7 @@ Item{
             iconText: VLCIcons.frame_by_frame
             onClicked: player.frameNext()
             property bool acceptFocus: true
-            text: qsTr("Next frame")
+            text: i18n.qtr("Next frame")
         }
     }
 
@@ -525,7 +525,7 @@ Item{
             iconText: VLCIcons.faster
             onClicked: player.faster()
             property bool acceptFocus: true
-            text: qsTr("Faster")
+            text: i18n.qtr("Faster")
         }
     }
 
@@ -538,7 +538,7 @@ Item{
             iconText: VLCIcons.slower
             onClicked: player.slower()
             property bool acceptFocus: true
-            text: qsTr("Slower")
+            text: i18n.qtr("Slower")
         }
     }
 
@@ -550,7 +550,7 @@ Item{
             iconText: VLCIcons.eject
             onClicked: dialogProvider.openDialog()
             property bool acceptFocus: true
-            text: qsTr("Open media")
+            text: i18n.qtr("Open media")
         }
     }
 
@@ -562,7 +562,7 @@ Item{
             text: VLCIcons.extended
             onClicked: dialogProvider.extendedDialog()
             property bool acceptFocus: true
-            Accessible.name: qsTr("Extended settings")
+            Accessible.name: i18n.qtr("Extended settings")
         }
     }
 
@@ -574,7 +574,7 @@ Item{
             iconText: VLCIcons.skip_for
             onClicked: player.jumpFwd()
             property bool acceptFocus: true
-            text: qsTr("Step forward")
+            text: i18n.qtr("Step forward")
         }
     }
 
@@ -586,7 +586,7 @@ Item{
             iconText: VLCIcons.skip_back
             onClicked: player.jumpBwd()
             property bool acceptFocus: true
-            text: qsTr("Step back")
+            text: i18n.qtr("Step back")
         }
     }
 
@@ -598,7 +598,7 @@ Item{
             iconText: VLCIcons.clear
             onClicked: rootWindow.close()
             property bool acceptFocus: true
-            text: qsTr("Quit")
+            text: i18n.qtr("Quit")
         }
     }
 
@@ -615,7 +615,7 @@ Item{
             currentIndex: -1
             onCurrentIndexChanged: model.toggleIndex(currentIndex)
             property bool acceptFocus: true
-            Accessible.name: qsTr("Aspect ratio")
+            Accessible.name: i18n.qtr("Aspect ratio")
         }
     }
 
diff --git a/modules/gui/qt/player/qml/TeletextWidget.qml b/modules/gui/qt/player/qml/TeletextWidget.qml
index 3bf47e3798..28c177e73b 100644
--- a/modules/gui/qt/player/qml/TeletextWidget.qml
+++ b/modules/gui/qt/player/qml/TeletextWidget.qml
@@ -50,7 +50,7 @@ FocusScope{
             id: teleActivateBtn
             paintOnly: widgetfscope.paintOnly
             iconText: VLCIcons.tv
-            text: qsTr("Teletext activate")
+            text: i18n.qtr("Teletext activate")
             size: VLCStyle.icon_normal
             onClicked: player.teletextEnabled = !player.teletextEnabled
             color: widgetfscope.color
@@ -64,7 +64,7 @@ FocusScope{
             id: teleTransparencyBtn
             paintOnly: widgetfscope.paintOnly
             iconText: VLCIcons.tvtelx
-            text: qsTr("Teletext transparency")
+            text: i18n.qtr("Teletext transparency")
             size: VLCStyle.icon_normal
             opacity: 0.5
             enabled: player.teletextEnabled
@@ -91,7 +91,7 @@ FocusScope{
             enabled: player.teletextEnabled
             size: VLCStyle.icon_normal
             iconText: VLCIcons.record
-            text: qsTr("Index key")
+            text: i18n.qtr("Index key")
             onClicked: player.teletextPage = PlayerController.TELE_INDEX
             color: "grey"
             colorDisabled: "grey"
@@ -103,7 +103,7 @@ FocusScope{
             enabled: player.teletextEnabled
             size: VLCStyle.icon_normal
             iconText: VLCIcons.record
-            text: qsTr("Red key")
+            text: i18n.qtr("Red key")
             onClicked: player.teletextPage = PlayerController.TELE_RED
             color: "red"
             colorDisabled: "grey"
@@ -115,7 +115,7 @@ FocusScope{
             enabled: player.teletextEnabled
             size: VLCStyle.icon_normal
             iconText: VLCIcons.record
-            text: qsTr("Green key")
+            text: i18n.qtr("Green key")
             onClicked: player.teletextPage = PlayerController.TELE_GREEN
             color: "green"
             colorDisabled: "grey"
@@ -127,7 +127,7 @@ FocusScope{
             enabled: player.teletextEnabled
             size: VLCStyle.icon_normal
             iconText: VLCIcons.record
-            text: qsTr("Yellow key")
+            text: i18n.qtr("Yellow key")
             onClicked: player.teletextPage = PlayerController.TELE_YELLOW
             color: "yellow"
             colorDisabled: "grey"
@@ -139,7 +139,7 @@ FocusScope{
             enabled: player.teletextEnabled
             size: VLCStyle.icon_normal
             iconText: VLCIcons.record
-            text: qsTr("Blue key")
+            text: i18n.qtr("Blue key")
             onClicked: player.teletextPage = PlayerController.TELE_BLUE
             color: "blue"
             colorDisabled: "grey"
diff --git a/modules/gui/qt/player/qml/TopBar.qml b/modules/gui/qt/player/qml/TopBar.qml
index f5aa6f36d2..bd10233b21 100644
--- a/modules/gui/qt/player/qml/TopBar.qml
+++ b/modules/gui/qt/player/qml/TopBar.qml
@@ -69,7 +69,7 @@ Widgets.NavigableFocusScope{
                     objectName: "IconToolButton"
                     size: VLCStyle.icon_normal
                     iconText: VLCIcons.exit
-                    text: qsTr("Back")
+                    text: i18n.qtr("Back")
                     color: VLCStyle.colors.playerFg
                     onClicked: {
                         if (player.playingState === PlayerController.PLAYING_STATE_PAUSED) {
@@ -90,7 +90,7 @@ Widgets.NavigableFocusScope{
                     objectName: PlayerControlBarModel.PLAYLIST_BUTTON
                     size: VLCStyle.icon_normal
                     iconText: VLCIcons.playlist
-                    text: qsTr("Playlist")
+                    text: i18n.qtr("Playlist")
                     color: VLCStyle.colors.playerFg
                     onClicked: togglePlaylistVisiblity()
                     property bool acceptFocus: true
diff --git a/modules/gui/qt/player/qml/VolumeWidget.qml b/modules/gui/qt/player/qml/VolumeWidget.qml
index 45ae581f7f..4b73f38d15 100644
--- a/modules/gui/qt/player/qml/VolumeWidget.qml
+++ b/modules/gui/qt/player/qml/VolumeWidget.qml
@@ -53,7 +53,7 @@ FocusScope{
                     VLCIcons.volume_medium
                 else
                     VLCIcons.volume_high
-            text: qsTr("Mute")
+            text: i18n.qtr("Mute")
             color: widgetfscope.color
             onClicked: player.muted = !player.muted
             KeyNavigation.right: volControl
@@ -73,7 +73,7 @@ FocusScope{
             opacity: player.muted ? 0.5 : 1
             focus: true
 
-            Accessible.name: qsTr("Volume")
+            Accessible.name: i18n.qtr("Volume")
 
             Keys.onReleased: {
                 if (event.accepted)
diff --git a/modules/gui/qt/playlist/qml/PlaylistListView.qml b/modules/gui/qt/playlist/qml/PlaylistListView.qml
index 6daf6849f8..e8c8ae1437 100644
--- a/modules/gui/qt/playlist/qml/PlaylistListView.qml
+++ b/modules/gui/qt/playlist/qml/PlaylistListView.qml
@@ -53,38 +53,38 @@ Widgets.NavigableFocusScope {
         rightPadding: root.rightPadding
 
         //rootmenu
-        Action { id:playAction;         text: qsTr("Play");             onTriggered: view.onPlay(); icon.source: "qrc:///toolbar/play_b.svg" }
-        Action { id:deleteAction;       text: qsTr("Delete");           onTriggered: view.onDelete() }
-        Action { id:clearAllAction;     text: qsTr("Clear Playlist");   onTriggered: mainPlaylistController.clear() }
-        Action { id:selectAllAction;    text: qsTr("Select All");       onTriggered: root.plmodel.selectAll() }
-        Action { id:shuffleAction;      text: qsTr("Suffle playlist");  onTriggered: mainPlaylistController.shuffle(); icon.source: "qrc:///buttons/playlist/shuffle_on.svg" }
-        Action { id:sortAction;         text: qsTr("Sort");             property string subMenu: "sortmenu"}
-        Action { id:selectTracksAction; text: qsTr("Select Tracks");    onTriggered: view.mode = "select" }
-        Action { id:moveTracksAction;   text: qsTr("Move Selection");   onTriggered: view.mode = "move" }
+        Action { id:playAction;         text: i18n.qtr("Play");             onTriggered: view.onPlay(); icon.source: "qrc:///toolbar/play_b.svg" }
+        Action { id:deleteAction;       text: i18n.qtr("Delete");           onTriggered: view.onDelete() }
+        Action { id:clearAllAction;     text: i18n.qtr("Clear Playlist");   onTriggered: mainPlaylistController.clear() }
+        Action { id:selectAllAction;    text: i18n.qtr("Select All");       onTriggered: root.plmodel.selectAll() }
+        Action { id:shuffleAction;      text: i18n.qtr("Shuffle Playlist");  onTriggered: mainPlaylistController.shuffle(); icon.source: "qrc:///buttons/playlist/shuffle_on.svg" }
+        Action { id:sortAction;         text: i18n.qtr("Sort");             property string subMenu: "sortmenu"}
+        Action { id:selectTracksAction; text: i18n.qtr("Select Tracks");    onTriggered: view.mode = "select" }
+        Action { id:moveTracksAction;   text: i18n.qtr("Move Selection");   onTriggered: view.mode = "move" }
 
         //sortmenu
-        Action { id: sortTitleAction;   text: qsTr("Tile");
+        Action { id: sortTitleAction;   text: i18n.qtr("Tile");
             onTriggered: mainPlaylistController.sort(PlaylistControllerModel.SORT_KEY_TITLE, PlaylistControllerModel.SORT_ORDER_ASC)}
-        Action { id: sortDurationAction;text: qsTr("Duration");
+        Action { id: sortDurationAction;text: i18n.qtr("Duration");
             onTriggered: mainPlaylistController.sort(PlaylistControllerModel.SORT_KEY_DURATION, PlaylistControllerModel.SORT_ORDER_ASC)}
-        Action { id: sortArtistAction;  text: qsTr("Artist");
+        Action { id: sortArtistAction;  text: i18n.qtr("Artist");
             onTriggered: mainPlaylistController.sort(PlaylistControllerModel.SORT_KEY_ARTIST, PlaylistControllerModel.SORT_ORDER_ASC)}
-        Action { id: sortAlbumAction;   text: qsTr("Album");
+        Action { id: sortAlbumAction;   text: i18n.qtr("Album");
             onTriggered: mainPlaylistController.sort(PlaylistControllerModel.SORT_KEY_ALBUM, PlaylistControllerModel.SORT_ORDER_ASC)}
-        Action { id: sortGenreAction;   text: qsTr("Genre");
+        Action { id: sortGenreAction;   text: i18n.qtr("Genre");
             onTriggered: mainPlaylistController.sort(PlaylistControllerModel.SORT_KEY_GENRE, PlaylistControllerModel.SORT_ORDER_ASC)}
-        Action { id: sortDateAction;    text: qsTr("Date");
+        Action { id: sortDateAction;    text: i18n.qtr("Date");
             onTriggered: mainPlaylistController.sort(PlaylistControllerModel.SORT_KEY_DATE, PlaylistControllerModel.SORT_ORDER_ASC)}
-        Action { id: sortTrackAction;   text: qsTr("Track number");
+        Action { id: sortTrackAction;   text: i18n.qtr("Track Number");
             onTriggered: mainPlaylistController.sort(PlaylistControllerModel.SORT_KEY_TRACK_NUMBER, PlaylistControllerModel.SORT_ORDER_ASC)}
-        Action { id: sortURLAction;     text: qsTr("URL");
+        Action { id: sortURLAction;     text: i18n.qtr("URL");
             onTriggered: mainPlaylistController.sort(PlaylistControllerModel.SORT_KEY_URL, PlaylistControllerModel.SORT_ORDER_ASC)}
-        Action { id: sortRatingAction;  text: qsTr("Rating");
+        Action { id: sortRatingAction;  text: i18n.qtr("Rating");
             onTriggered: mainPlaylistController.sort(PlaylistControllerModel.SORT_KEY_RATIN, PlaylistControllerModel.SORT_ORDER_ASC)}
 
         models: {
             "rootmenu" : {
-                title: qsTr("Playlist"),
+                title: i18n.qtr("Playlist"),
                 entries: [
                     playAction,
                     deleteAction,
@@ -97,7 +97,7 @@ Widgets.NavigableFocusScope {
                 ]
             },
             "sortmenu" :{
-                title: qsTr("Sort Playlist"),
+                title: i18n.qtr("Sort Playlist"),
                 entries:  [
                     sortTitleAction,
                     sortDurationAction,
@@ -323,7 +323,7 @@ Widgets.NavigableFocusScope {
             visible: plmodel.count === 0
             font.pixelSize: VLCStyle.fontHeight_xxlarge
             color: view.activeFocus ? VLCStyle.colors.accent : VLCStyle.colors.text
-            text: qsTr("playlist is empty")
+            text: i18n.qtr("playlist is empty")
         }
     }
 
diff --git a/modules/gui/qt/playlist/qml/PlaylistToolbar.qml b/modules/gui/qt/playlist/qml/PlaylistToolbar.qml
index 4a95c745d3..d08378f34a 100644
--- a/modules/gui/qt/playlist/qml/PlaylistToolbar.qml
+++ b/modules/gui/qt/playlist/qml/PlaylistToolbar.qml
@@ -73,10 +73,10 @@ Widgets.NavigableFocusScope {
                 Layout.alignment: Qt.AlignHCenter
                 horizontalAlignment: Text.AlignHCenter
                 text: (view.mode === "select")
-                        ? qsTr("Select tracks (%1)").arg(plmodel.selectedCount)
+                        ? i18n.qtr("Select tracks (%1)").arg(plmodel.selectedCount)
                     : (view.mode === "move")
-                        ? qsTr("Move tracks (%1)").arg(plmodel.selectedCount)
-                    : qsTr("%1 tracks").arg(plmodel.count)
+                        ? i18n.qtr("Move tracks (%1)").arg(plmodel.selectedCount)
+                    : i18n.qtr("%1 tracks").arg(plmodel.count)
                 font.pixelSize: VLCStyle.fontSize_normal
                 color: VLCStyle.colors.text
                 elide: Text.ElideRight
diff --git a/modules/gui/qt/widgets/qml/DNDLabel.qml b/modules/gui/qt/widgets/qml/DNDLabel.qml
index d8f78c72d6..1f90f9e03f 100644
--- a/modules/gui/qt/widgets/qml/DNDLabel.qml
+++ b/modules/gui/qt/widgets/qml/DNDLabel.qml
@@ -42,6 +42,6 @@ Rectangle {
         id: label
         font.pixelSize: VLCStyle.fontSize_normal
         color: VLCStyle.colors.text
-        text: qsTr("%1 tracks selected").arg(count)
+        text: i18n.qtr("%1 tracks selected").arg(count)
     }
 }
diff --git a/modules/gui/qt/widgets/qml/ListItem.qml b/modules/gui/qt/widgets/qml/ListItem.qml
index 5522f62af7..7837d0961d 100644
--- a/modules/gui/qt/widgets/qml/ListItem.qml
+++ b/modules/gui/qt/widgets/qml/ListItem.qml
@@ -52,7 +52,7 @@ NavigableFocusScope {
         IconToolButton {
             size: VLCStyle.icon_normal
             iconText: VLCIcons.add
-            text: qsTr("Enqueue")
+            text: i18n.qtr("Enqueue")
 
             focus: true
 
@@ -74,7 +74,7 @@ NavigableFocusScope {
             size: VLCStyle.icon_normal
             //visible: mouse.containsMouse  || root.activeFocus
             iconText: VLCIcons.play
-            text: qsTr("Play")
+            text: i18n.qtr("Play")
 
             focus: true
 
@@ -201,7 +201,7 @@ NavigableFocusScope {
                                 id: contextButton
                                 size: VLCStyle.icon_normal
                                 iconText: VLCIcons.ellipsis
-                                text: qsTr("More")
+                                text: i18n.qtr("More")
 
                                 visible: root.showContextButton
                                 focus: actionButtons.length == toolButtons.focusIndex
diff --git a/modules/gui/qt/widgets/qml/SearchBox.qml b/modules/gui/qt/widgets/qml/SearchBox.qml
index ebf02957ab..ab313c5ced 100644
--- a/modules/gui/qt/widgets/qml/SearchBox.qml
+++ b/modules/gui/qt/widgets/qml/SearchBox.qml
@@ -59,7 +59,7 @@ Widgets.NavigableFocusScope {
         duration: 200
         to: VLCStyle.widthSearchInput
         onStopped: {
-            searchBox.placeholderText = qsTr("filter")
+            searchBox.placeholderText = i18n.qtr("filter")
         }
     }
 
@@ -98,7 +98,7 @@ Widgets.NavigableFocusScope {
 
                 size: VLCStyle.icon_normal
                 iconText: VLCIcons.topbar_filter
-                text: qsTr("Filter")
+                text: i18n.qtr("Filter")
 
                 focus: true
 
diff --git a/modules/gui/qt/widgets/qml/SortControl.qml b/modules/gui/qt/widgets/qml/SortControl.qml
index 2ad91afa49..15854e5edb 100644
--- a/modules/gui/qt/widgets/qml/SortControl.qml
+++ b/modules/gui/qt/widgets/qml/SortControl.qml
@@ -53,7 +53,7 @@ Widgets.NavigableFocusScope {
 
         size: VLCStyle.icon_normal
         iconText: VLCIcons.topbar_sort
-        text: qsTr("Sort")
+        text: i18n.qtr("Sort")
 
         focus: true
 



More information about the vlc-commits mailing list