Compare commits
12
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1337323a7c | ||
|
|
a5a0caa328 | ||
|
|
96516e1590 | ||
|
|
f7a4788e73 | ||
|
|
15425c7b01 | ||
|
|
96c2a505a7 | ||
|
|
b58e3fc2d4 | ||
|
|
4b1cbf11ad | ||
|
|
1037ac8c02 | ||
|
|
572f3c4c94 | ||
|
|
e48d6c8bb6 | ||
|
|
d717e7dff9 |
No files matched your search
+29
-24
@@ -6,7 +6,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: audiotube\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2022-05-23 00:47+0000\n"
|
||||
"POT-Creation-Date: 2022-05-25 00:46+0000\n"
|
||||
"PO-Revision-Date: 2022-01-21 22:52+0400\n"
|
||||
"Last-Translator: Zayed Al-Saidi <[email protected]>\n"
|
||||
"Language-Team: ar\n"
|
||||
@@ -28,8 +28,7 @@ msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr "[email protected]"
|
||||
|
||||
#: contents/ui/AlbumPage.qml:19 contents/ui/PlayerFooter.qml:192
|
||||
#: contents/ui/PlaylistPage.qml:19
|
||||
#: contents/ui/AlbumPage.qml:19 contents/ui/PlaylistPage.qml:19
|
||||
#, kde-format
|
||||
msgid "Play"
|
||||
msgstr "شغّل"
|
||||
@@ -93,40 +92,37 @@ msgstr ""
|
||||
msgid "Most played"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/main.qml:94
|
||||
#: contents/ui/main.qml:93
|
||||
#, kde-format
|
||||
msgid "AudioTube"
|
||||
msgstr "تيوب الصوتي"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:124
|
||||
#: contents/ui/MaximizedPlayerPage.qml:86
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "No media playing"
|
||||
msgid "Now Playing"
|
||||
msgstr "لا يوجد وسائط تعمل"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:112
|
||||
#, kde-format
|
||||
msgid "Queue"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:224
|
||||
#, kde-format
|
||||
msgid "Remove Track"
|
||||
msgstr "أزل المسار"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:141
|
||||
#, kde-format
|
||||
msgid "Clear"
|
||||
msgstr "امسح"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:146 contents/ui/PlaylistPage.qml:26
|
||||
#, kde-format
|
||||
msgid "Shuffle"
|
||||
msgstr "اخلط"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:192
|
||||
#, kde-format
|
||||
msgid "Pause"
|
||||
msgstr "ألبث"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:222
|
||||
#: contents/ui/MaximizedPlayerPage.qml:244
|
||||
#: contents/ui/MinimizedPlayerControls.qml:96
|
||||
#, kde-format
|
||||
msgid "No media playing"
|
||||
msgstr "لا يوجد وسائط تعمل"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:266
|
||||
#: contents/ui/PlaylistPage.qml:26
|
||||
#, kde-format
|
||||
msgid "Expand"
|
||||
msgstr "وسع"
|
||||
msgid "Shuffle"
|
||||
msgstr "اخلط"
|
||||
|
||||
#: contents/ui/SearchPage.qml:27
|
||||
#, kde-format
|
||||
@@ -162,3 +158,12 @@ msgstr "اعثر على موسيقى على موسيقى يوتيوب"
|
||||
#, kde-format
|
||||
msgid "Search"
|
||||
msgstr "ابحث"
|
||||
|
||||
#~ msgid "Clear"
|
||||
#~ msgstr "امسح"
|
||||
|
||||
#~ msgid "Pause"
|
||||
#~ msgstr "ألبث"
|
||||
|
||||
#~ msgid "Expand"
|
||||
#~ msgstr "وسع"
|
||||
+29
-24
@@ -6,7 +6,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: audiotube\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2022-05-23 00:47+0000\n"
|
||||
"POT-Creation-Date: 2022-05-25 00:46+0000\n"
|
||||
"PO-Revision-Date: 2022-04-22 18:44+0400\n"
|
||||
"Last-Translator: Kheyyam Gojayev <[email protected]>\n"
|
||||
"Language-Team: Azerbaijani <[email protected]>\n"
|
||||
@@ -27,8 +27,7 @@ msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr "[email protected]"
|
||||
|
||||
#: contents/ui/AlbumPage.qml:19 contents/ui/PlayerFooter.qml:192
|
||||
#: contents/ui/PlaylistPage.qml:19
|
||||
#: contents/ui/AlbumPage.qml:19 contents/ui/PlaylistPage.qml:19
|
||||
#, kde-format
|
||||
msgid "Play"
|
||||
msgstr "Başladın"
|
||||
@@ -94,40 +93,37 @@ msgstr ""
|
||||
msgid "Most played"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/main.qml:94
|
||||
#: contents/ui/main.qml:93
|
||||
#, kde-format
|
||||
msgid "AudioTube"
|
||||
msgstr "AudioTube"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:124
|
||||
#: contents/ui/MaximizedPlayerPage.qml:86
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "No media playing"
|
||||
msgid "Now Playing"
|
||||
msgstr "Media faylı oynadılmır"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:112
|
||||
#, kde-format
|
||||
msgid "Queue"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:224
|
||||
#, kde-format
|
||||
msgid "Remove Track"
|
||||
msgstr "Mahnını silin"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:141
|
||||
#, kde-format
|
||||
msgid "Clear"
|
||||
msgstr "Təmizləyin"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:146 contents/ui/PlaylistPage.qml:26
|
||||
#, kde-format
|
||||
msgid "Shuffle"
|
||||
msgstr "Qarışıq"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:192
|
||||
#, kde-format
|
||||
msgid "Pause"
|
||||
msgstr "Fasilə"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:222
|
||||
#: contents/ui/MaximizedPlayerPage.qml:244
|
||||
#: contents/ui/MinimizedPlayerControls.qml:96
|
||||
#, kde-format
|
||||
msgid "No media playing"
|
||||
msgstr "Media faylı oynadılmır"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:266
|
||||
#: contents/ui/PlaylistPage.qml:26
|
||||
#, kde-format
|
||||
msgid "Expand"
|
||||
msgstr "Açmaq"
|
||||
msgid "Shuffle"
|
||||
msgstr "Qarışıq"
|
||||
|
||||
#: contents/ui/SearchPage.qml:27
|
||||
#, kde-format
|
||||
@@ -163,3 +159,12 @@ msgstr "Musiqini YouTube Musiqi-də tapın"
|
||||
#, kde-format
|
||||
msgid "Search"
|
||||
msgstr "Axtarın"
|
||||
|
||||
#~ msgid "Clear"
|
||||
#~ msgstr "Təmizləyin"
|
||||
|
||||
#~ msgid "Pause"
|
||||
#~ msgstr "Fasilə"
|
||||
|
||||
#~ msgid "Expand"
|
||||
#~ msgstr "Açmaq"
|
||||
+26
-33
@@ -1,23 +1,24 @@
|
||||
# Translation of audiotube.po to Catalan
|
||||
# Copyright (C) 2021 This_file_is_part_of_KDE
|
||||
# Copyright (C) 2021-2022 This_file_is_part_of_KDE
|
||||
# This file is distributed under the license LGPL version 2.1 or
|
||||
# version 3 or later versions approved by the membership of KDE e.V.
|
||||
#
|
||||
# Antoni Bella Pérez <[email protected]>, 2021.
|
||||
# Josep M. Ferrer <[email protected]>, 2022.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: audiotube\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2022-05-23 00:47+0000\n"
|
||||
"PO-Revision-Date: 2021-12-05 16:03+0100\n"
|
||||
"Last-Translator: Antoni Bella Pérez <antonibella5@yahoo.com>\n"
|
||||
"POT-Creation-Date: 2022-05-25 00:46+0000\n"
|
||||
"PO-Revision-Date: 2022-05-24 08:45+0200\n"
|
||||
"Last-Translator: Josep M. Ferrer <txemaq@gmail.com>\n"
|
||||
"Language-Team: Catalan <[email protected]>\n"
|
||||
"Language: ca\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Lokalize 21.11.90\n"
|
||||
"X-Generator: Lokalize 20.12.0\n"
|
||||
|
||||
#, kde-format
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
@@ -29,8 +30,7 @@ msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr "[email protected]"
|
||||
|
||||
#: contents/ui/AlbumPage.qml:19 contents/ui/PlayerFooter.qml:192
|
||||
#: contents/ui/PlaylistPage.qml:19
|
||||
#: contents/ui/AlbumPage.qml:19 contents/ui/PlaylistPage.qml:19
|
||||
#, kde-format
|
||||
msgid "Play"
|
||||
msgstr "Reprodueix"
|
||||
@@ -89,47 +89,43 @@ msgstr "Cancel·la"
|
||||
#: contents/ui/LibraryPage.qml:15
|
||||
#, kde-format
|
||||
msgid "Favourites"
|
||||
msgstr ""
|
||||
msgstr "Preferides"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:67
|
||||
#, kde-format
|
||||
msgid "Most played"
|
||||
msgstr ""
|
||||
msgstr "Les més reproduïdes"
|
||||
|
||||
#: contents/ui/main.qml:94
|
||||
#: contents/ui/main.qml:93
|
||||
#, kde-format
|
||||
msgid "AudioTube"
|
||||
msgstr "AudioTube"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:124
|
||||
#: contents/ui/MaximizedPlayerPage.qml:86
|
||||
#, kde-format
|
||||
msgid "Now Playing"
|
||||
msgstr "Ara s'està reproduint"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:112
|
||||
#, kde-format
|
||||
msgid "Queue"
|
||||
msgstr "Cua"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:224
|
||||
#, kde-format
|
||||
msgid "Remove Track"
|
||||
msgstr "Elimina la pista"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:141
|
||||
#, kde-format
|
||||
msgid "Clear"
|
||||
msgstr "Neteja"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:146 contents/ui/PlaylistPage.qml:26
|
||||
#, kde-format
|
||||
msgid "Shuffle"
|
||||
msgstr "Barreja"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:192
|
||||
#, kde-format
|
||||
msgid "Pause"
|
||||
msgstr "Pausa"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:222
|
||||
#: contents/ui/MaximizedPlayerPage.qml:244
|
||||
#: contents/ui/MinimizedPlayerControls.qml:96
|
||||
#, kde-format
|
||||
msgid "No media playing"
|
||||
msgstr "No s'està reproduint cap suport"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:266
|
||||
#: contents/ui/PlaylistPage.qml:26
|
||||
#, kde-format
|
||||
msgid "Expand"
|
||||
msgstr "Expandeix"
|
||||
msgid "Shuffle"
|
||||
msgstr "Barreja"
|
||||
|
||||
#: contents/ui/SearchPage.qml:27
|
||||
#, kde-format
|
||||
@@ -165,6 +161,3 @@ msgstr "Cerca a la Música de Youtube"
|
||||
#, kde-format
|
||||
msgid "Search"
|
||||
msgstr "Cerca"
|
||||
|
||||
#~ msgid "Play only Audio"
|
||||
#~ msgstr "Reprodueix només l'àudio"
|
||||
+29
-24
@@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: audiotube\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2022-05-23 00:47+0000\n"
|
||||
"POT-Creation-Date: 2022-05-25 00:46+0000\n"
|
||||
"PO-Revision-Date: 2021-12-05 16:03+0100\n"
|
||||
"Last-Translator: Antoni Bella Pérez <[email protected]>\n"
|
||||
"Language-Team: Catalan <[email protected]>\n"
|
||||
@@ -29,8 +29,7 @@ msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr "[email protected]"
|
||||
|
||||
#: contents/ui/AlbumPage.qml:19 contents/ui/PlayerFooter.qml:192
|
||||
#: contents/ui/PlaylistPage.qml:19
|
||||
#: contents/ui/AlbumPage.qml:19 contents/ui/PlaylistPage.qml:19
|
||||
#, kde-format
|
||||
msgid "Play"
|
||||
msgstr "Reprodueix"
|
||||
@@ -96,40 +95,37 @@ msgstr ""
|
||||
msgid "Most played"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/main.qml:94
|
||||
#: contents/ui/main.qml:93
|
||||
#, kde-format
|
||||
msgid "AudioTube"
|
||||
msgstr "AudioTube"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:124
|
||||
#: contents/ui/MaximizedPlayerPage.qml:86
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "No media playing"
|
||||
msgid "Now Playing"
|
||||
msgstr "No s'està reproduint cap suport"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:112
|
||||
#, kde-format
|
||||
msgid "Queue"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:224
|
||||
#, kde-format
|
||||
msgid "Remove Track"
|
||||
msgstr "Elimina la pista"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:141
|
||||
#, kde-format
|
||||
msgid "Clear"
|
||||
msgstr "Neteja"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:146 contents/ui/PlaylistPage.qml:26
|
||||
#, kde-format
|
||||
msgid "Shuffle"
|
||||
msgstr "Barreja"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:192
|
||||
#, kde-format
|
||||
msgid "Pause"
|
||||
msgstr "Pausa"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:222
|
||||
#: contents/ui/MaximizedPlayerPage.qml:244
|
||||
#: contents/ui/MinimizedPlayerControls.qml:96
|
||||
#, kde-format
|
||||
msgid "No media playing"
|
||||
msgstr "No s'està reproduint cap suport"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:266
|
||||
#: contents/ui/PlaylistPage.qml:26
|
||||
#, kde-format
|
||||
msgid "Expand"
|
||||
msgstr "Expandeix"
|
||||
msgid "Shuffle"
|
||||
msgstr "Barreja"
|
||||
|
||||
#: contents/ui/SearchPage.qml:27
|
||||
#, kde-format
|
||||
@@ -165,3 +161,12 @@ msgstr "Busca a la Música de Youtube"
|
||||
#, kde-format
|
||||
msgid "Search"
|
||||
msgstr "Busca"
|
||||
|
||||
#~ msgid "Clear"
|
||||
#~ msgstr "Neteja"
|
||||
|
||||
#~ msgid "Pause"
|
||||
#~ msgstr "Pausa"
|
||||
|
||||
#~ msgid "Expand"
|
||||
#~ msgstr "Expandeix"
|
||||
+29
-24
@@ -6,7 +6,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: audiotube\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2022-05-23 00:47+0000\n"
|
||||
"POT-Creation-Date: 2022-05-25 00:46+0000\n"
|
||||
"PO-Revision-Date: 2022-01-11 17:36+0100\n"
|
||||
"Last-Translator: Vit Pelcak <[email protected]>\n"
|
||||
"Language-Team: Czech <[email protected]>\n"
|
||||
@@ -27,8 +27,7 @@ msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr "[email protected]"
|
||||
|
||||
#: contents/ui/AlbumPage.qml:19 contents/ui/PlayerFooter.qml:192
|
||||
#: contents/ui/PlaylistPage.qml:19
|
||||
#: contents/ui/AlbumPage.qml:19 contents/ui/PlaylistPage.qml:19
|
||||
#, kde-format
|
||||
msgid "Play"
|
||||
msgstr "Přehrát"
|
||||
@@ -94,40 +93,37 @@ msgstr ""
|
||||
msgid "Most played"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/main.qml:94
|
||||
#: contents/ui/main.qml:93
|
||||
#, kde-format
|
||||
msgid "AudioTube"
|
||||
msgstr "AudioTube"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:124
|
||||
#: contents/ui/MaximizedPlayerPage.qml:86
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "No media playing"
|
||||
msgid "Now Playing"
|
||||
msgstr "Nepřehrává se žádné médium"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:112
|
||||
#, kde-format
|
||||
msgid "Queue"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:224
|
||||
#, kde-format
|
||||
msgid "Remove Track"
|
||||
msgstr "Odstranit skladbu"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:141
|
||||
#, kde-format
|
||||
msgid "Clear"
|
||||
msgstr "Vyprázdnit"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:146 contents/ui/PlaylistPage.qml:26
|
||||
#, kde-format
|
||||
msgid "Shuffle"
|
||||
msgstr "Zamíchat"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:192
|
||||
#, kde-format
|
||||
msgid "Pause"
|
||||
msgstr "Pozastavit"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:222
|
||||
#: contents/ui/MaximizedPlayerPage.qml:244
|
||||
#: contents/ui/MinimizedPlayerControls.qml:96
|
||||
#, kde-format
|
||||
msgid "No media playing"
|
||||
msgstr "Nepřehrává se žádné médium"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:266
|
||||
#: contents/ui/PlaylistPage.qml:26
|
||||
#, kde-format
|
||||
msgid "Expand"
|
||||
msgstr "Rozvinout"
|
||||
msgid "Shuffle"
|
||||
msgstr "Zamíchat"
|
||||
|
||||
#: contents/ui/SearchPage.qml:27
|
||||
#, kde-format
|
||||
@@ -163,3 +159,12 @@ msgstr "Najít hudbu na Hudba YouTube"
|
||||
#, kde-format
|
||||
msgid "Search"
|
||||
msgstr "Hledat"
|
||||
|
||||
#~ msgid "Clear"
|
||||
#~ msgstr "Vyprázdnit"
|
||||
|
||||
#~ msgid "Pause"
|
||||
#~ msgstr "Pozastavit"
|
||||
|
||||
#~ msgid "Expand"
|
||||
#~ msgstr "Rozvinout"
|
||||
+29
-24
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: audiotube\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2022-05-23 00:47+0000\n"
|
||||
"POT-Creation-Date: 2022-05-25 00:46+0000\n"
|
||||
"PO-Revision-Date: 2022-02-20 10:37+0100\n"
|
||||
"Last-Translator: Frederik Schwarzer <[email protected]>\n"
|
||||
"Language-Team: German <[email protected]>\n"
|
||||
@@ -28,8 +28,7 @@ msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr "[email protected]"
|
||||
|
||||
#: contents/ui/AlbumPage.qml:19 contents/ui/PlayerFooter.qml:192
|
||||
#: contents/ui/PlaylistPage.qml:19
|
||||
#: contents/ui/AlbumPage.qml:19 contents/ui/PlaylistPage.qml:19
|
||||
#, kde-format
|
||||
msgid "Play"
|
||||
msgstr "Wiedergabe"
|
||||
@@ -95,40 +94,37 @@ msgstr ""
|
||||
msgid "Most played"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/main.qml:94
|
||||
#: contents/ui/main.qml:93
|
||||
#, kde-format
|
||||
msgid "AudioTube"
|
||||
msgstr "AudioTube"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:124
|
||||
#: contents/ui/MaximizedPlayerPage.qml:86
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "No media playing"
|
||||
msgid "Now Playing"
|
||||
msgstr "Es werden keine Medien wiedergegeben"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:112
|
||||
#, kde-format
|
||||
msgid "Queue"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:224
|
||||
#, kde-format
|
||||
msgid "Remove Track"
|
||||
msgstr "Stück entfernen"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:141
|
||||
#, kde-format
|
||||
msgid "Clear"
|
||||
msgstr "Löschen"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:146 contents/ui/PlaylistPage.qml:26
|
||||
#, kde-format
|
||||
msgid "Shuffle"
|
||||
msgstr "Zufällig"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:192
|
||||
#, kde-format
|
||||
msgid "Pause"
|
||||
msgstr "Pause"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:222
|
||||
#: contents/ui/MaximizedPlayerPage.qml:244
|
||||
#: contents/ui/MinimizedPlayerControls.qml:96
|
||||
#, kde-format
|
||||
msgid "No media playing"
|
||||
msgstr "Es werden keine Medien wiedergegeben"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:266
|
||||
#: contents/ui/PlaylistPage.qml:26
|
||||
#, kde-format
|
||||
msgid "Expand"
|
||||
msgstr "Erweitern"
|
||||
msgid "Shuffle"
|
||||
msgstr "Zufällig"
|
||||
|
||||
#: contents/ui/SearchPage.qml:27
|
||||
#, kde-format
|
||||
@@ -165,5 +161,14 @@ msgstr "Musik auf YouTube suchen"
|
||||
msgid "Search"
|
||||
msgstr "Suchen"
|
||||
|
||||
#~ msgid "Clear"
|
||||
#~ msgstr "Löschen"
|
||||
|
||||
#~ msgid "Pause"
|
||||
#~ msgstr "Pause"
|
||||
|
||||
#~ msgid "Expand"
|
||||
#~ msgstr "Erweitern"
|
||||
|
||||
#~ msgid "Play only Audio"
|
||||
#~ msgstr "Nur Audio abspielen"
|
||||
+29
-24
@@ -6,7 +6,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: audiotube\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2022-05-23 00:47+0000\n"
|
||||
"POT-Creation-Date: 2022-05-25 00:46+0000\n"
|
||||
"PO-Revision-Date: 2022-01-01 15:21+0000\n"
|
||||
"Last-Translator: Steve Allewell <[email protected]>\n"
|
||||
"Language-Team: British English <[email protected]>\n"
|
||||
@@ -27,8 +27,7 @@ msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr "[email protected]"
|
||||
|
||||
#: contents/ui/AlbumPage.qml:19 contents/ui/PlayerFooter.qml:192
|
||||
#: contents/ui/PlaylistPage.qml:19
|
||||
#: contents/ui/AlbumPage.qml:19 contents/ui/PlaylistPage.qml:19
|
||||
#, kde-format
|
||||
msgid "Play"
|
||||
msgstr "Play"
|
||||
@@ -94,40 +93,37 @@ msgstr ""
|
||||
msgid "Most played"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/main.qml:94
|
||||
#: contents/ui/main.qml:93
|
||||
#, kde-format
|
||||
msgid "AudioTube"
|
||||
msgstr "AudioTube"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:124
|
||||
#: contents/ui/MaximizedPlayerPage.qml:86
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "No media playing"
|
||||
msgid "Now Playing"
|
||||
msgstr "No media playing"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:112
|
||||
#, kde-format
|
||||
msgid "Queue"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:224
|
||||
#, kde-format
|
||||
msgid "Remove Track"
|
||||
msgstr "Remove Track"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:141
|
||||
#, kde-format
|
||||
msgid "Clear"
|
||||
msgstr "Clear"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:146 contents/ui/PlaylistPage.qml:26
|
||||
#, kde-format
|
||||
msgid "Shuffle"
|
||||
msgstr "Shuffle"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:192
|
||||
#, kde-format
|
||||
msgid "Pause"
|
||||
msgstr "Pause"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:222
|
||||
#: contents/ui/MaximizedPlayerPage.qml:244
|
||||
#: contents/ui/MinimizedPlayerControls.qml:96
|
||||
#, kde-format
|
||||
msgid "No media playing"
|
||||
msgstr "No media playing"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:266
|
||||
#: contents/ui/PlaylistPage.qml:26
|
||||
#, kde-format
|
||||
msgid "Expand"
|
||||
msgstr "Expand"
|
||||
msgid "Shuffle"
|
||||
msgstr "Shuffle"
|
||||
|
||||
#: contents/ui/SearchPage.qml:27
|
||||
#, kde-format
|
||||
@@ -164,5 +160,14 @@ msgstr "Find music on YouTube Music"
|
||||
msgid "Search"
|
||||
msgstr "Search"
|
||||
|
||||
#~ msgid "Clear"
|
||||
#~ msgstr "Clear"
|
||||
|
||||
#~ msgid "Pause"
|
||||
#~ msgstr "Pause"
|
||||
|
||||
#~ msgid "Expand"
|
||||
#~ msgstr "Expand"
|
||||
|
||||
#~ msgid "Play only Audio"
|
||||
#~ msgstr "Play only Audio"
|
||||
+33
-29
@@ -3,13 +3,13 @@
|
||||
# This file is distributed under the same license as the audiotube package.
|
||||
#
|
||||
# Automatically generated, 2021.
|
||||
# Eloy Cuadra <[email protected]>, 2021.
|
||||
# Eloy Cuadra <[email protected]>, 2021, 2022.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: audiotube\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2022-05-23 00:47+0000\n"
|
||||
"PO-Revision-Date: 2021-12-06 00:36+0100\n"
|
||||
"POT-Creation-Date: 2022-05-25 00:46+0000\n"
|
||||
"PO-Revision-Date: 2022-05-25 00:18+0200\n"
|
||||
"Last-Translator: Eloy Cuadra <[email protected]>\n"
|
||||
"Language-Team: Spanish <[email protected]>\n"
|
||||
"Language: es\n"
|
||||
@@ -17,7 +17,7 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Lokalize 21.11.90\n"
|
||||
"X-Generator: Lokalize 22.04.1\n"
|
||||
|
||||
#, kde-format
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
@@ -29,8 +29,7 @@ msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr "[email protected]"
|
||||
|
||||
#: contents/ui/AlbumPage.qml:19 contents/ui/PlayerFooter.qml:192
|
||||
#: contents/ui/PlaylistPage.qml:19
|
||||
#: contents/ui/AlbumPage.qml:19 contents/ui/PlaylistPage.qml:19
|
||||
#, kde-format
|
||||
msgid "Play"
|
||||
msgstr "Reproducir"
|
||||
@@ -89,47 +88,43 @@ msgstr "Cancelar"
|
||||
#: contents/ui/LibraryPage.qml:15
|
||||
#, kde-format
|
||||
msgid "Favourites"
|
||||
msgstr ""
|
||||
msgstr "Favoritos"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:67
|
||||
#, kde-format
|
||||
msgid "Most played"
|
||||
msgstr ""
|
||||
msgstr "Más reproducidos"
|
||||
|
||||
#: contents/ui/main.qml:94
|
||||
#: contents/ui/main.qml:93
|
||||
#, kde-format
|
||||
msgid "AudioTube"
|
||||
msgstr "AudioTube"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:124
|
||||
#: contents/ui/MaximizedPlayerPage.qml:86
|
||||
#, kde-format
|
||||
msgid "Now Playing"
|
||||
msgstr "Reproduciendo"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:112
|
||||
#, kde-format
|
||||
msgid "Queue"
|
||||
msgstr "Cola"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:224
|
||||
#, kde-format
|
||||
msgid "Remove Track"
|
||||
msgstr "Eliminar pista"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:141
|
||||
#, kde-format
|
||||
msgid "Clear"
|
||||
msgstr "Borrar todo"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:146 contents/ui/PlaylistPage.qml:26
|
||||
#, kde-format
|
||||
msgid "Shuffle"
|
||||
msgstr "Desordenar"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:192
|
||||
#, kde-format
|
||||
msgid "Pause"
|
||||
msgstr "Pausar"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:222
|
||||
#: contents/ui/MaximizedPlayerPage.qml:244
|
||||
#: contents/ui/MinimizedPlayerControls.qml:96
|
||||
#, kde-format
|
||||
msgid "No media playing"
|
||||
msgstr "Ningún medio en reproducción"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:266
|
||||
#: contents/ui/PlaylistPage.qml:26
|
||||
#, kde-format
|
||||
msgid "Expand"
|
||||
msgstr "Expandir"
|
||||
msgid "Shuffle"
|
||||
msgstr "Desordenar"
|
||||
|
||||
#: contents/ui/SearchPage.qml:27
|
||||
#, kde-format
|
||||
@@ -166,5 +161,14 @@ msgstr "Encuentre música en YouTube Music"
|
||||
msgid "Search"
|
||||
msgstr "Buscar"
|
||||
|
||||
#~ msgid "Clear"
|
||||
#~ msgstr "Borrar todo"
|
||||
|
||||
#~ msgid "Pause"
|
||||
#~ msgstr "Pausar"
|
||||
|
||||
#~ msgid "Expand"
|
||||
#~ msgstr "Expandir"
|
||||
|
||||
#~ msgid "Play only Audio"
|
||||
#~ msgstr "Reproducir solo el sonido"
|
||||
+29
-24
@@ -9,7 +9,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: audiotube\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2022-05-23 00:47+0000\n"
|
||||
"POT-Creation-Date: 2022-05-25 00:46+0000\n"
|
||||
"PO-Revision-Date: 2022-02-21 18:58+0100\n"
|
||||
"Last-Translator: Iñigo Salvador Azurmendi <[email protected]>\n"
|
||||
"Language-Team: Basque <[email protected]>\n"
|
||||
@@ -30,8 +30,7 @@ msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr "[email protected]"
|
||||
|
||||
#: contents/ui/AlbumPage.qml:19 contents/ui/PlayerFooter.qml:192
|
||||
#: contents/ui/PlaylistPage.qml:19
|
||||
#: contents/ui/AlbumPage.qml:19 contents/ui/PlaylistPage.qml:19
|
||||
#, kde-format
|
||||
msgid "Play"
|
||||
msgstr "Jo"
|
||||
@@ -97,40 +96,37 @@ msgstr ""
|
||||
msgid "Most played"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/main.qml:94
|
||||
#: contents/ui/main.qml:93
|
||||
#, kde-format
|
||||
msgid "AudioTube"
|
||||
msgstr "AudioTube"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:124
|
||||
#: contents/ui/MaximizedPlayerPage.qml:86
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "No media playing"
|
||||
msgid "Now Playing"
|
||||
msgstr "Ez da euskarririk jotzen ari"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:112
|
||||
#, kde-format
|
||||
msgid "Queue"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:224
|
||||
#, kde-format
|
||||
msgid "Remove Track"
|
||||
msgstr "Kendu pista"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:141
|
||||
#, kde-format
|
||||
msgid "Clear"
|
||||
msgstr "Garbitu"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:146 contents/ui/PlaylistPage.qml:26
|
||||
#, kde-format
|
||||
msgid "Shuffle"
|
||||
msgstr "Nahastu"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:192
|
||||
#, kde-format
|
||||
msgid "Pause"
|
||||
msgstr "Eten"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:222
|
||||
#: contents/ui/MaximizedPlayerPage.qml:244
|
||||
#: contents/ui/MinimizedPlayerControls.qml:96
|
||||
#, kde-format
|
||||
msgid "No media playing"
|
||||
msgstr "Ez da euskarririk jotzen ari"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:266
|
||||
#: contents/ui/PlaylistPage.qml:26
|
||||
#, kde-format
|
||||
msgid "Expand"
|
||||
msgstr "Zabaldu"
|
||||
msgid "Shuffle"
|
||||
msgstr "Nahastu"
|
||||
|
||||
#: contents/ui/SearchPage.qml:27
|
||||
#, kde-format
|
||||
@@ -167,5 +163,14 @@ msgstr "Aurkitu musika «Youtube Music»en"
|
||||
msgid "Search"
|
||||
msgstr "Bilatu"
|
||||
|
||||
#~ msgid "Clear"
|
||||
#~ msgstr "Garbitu"
|
||||
|
||||
#~ msgid "Pause"
|
||||
#~ msgstr "Eten"
|
||||
|
||||
#~ msgid "Expand"
|
||||
#~ msgstr "Zabaldu"
|
||||
|
||||
#~ msgid "Play only Audio"
|
||||
#~ msgstr "Audio bakarrik jo"
|
||||
+29
-24
@@ -6,7 +6,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: audiotube\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2022-05-23 00:47+0000\n"
|
||||
"POT-Creation-Date: 2022-05-25 00:46+0000\n"
|
||||
"PO-Revision-Date: 2022-01-11 22:47+0200\n"
|
||||
"Last-Translator: Tommi Nieminen <[email protected]>\n"
|
||||
"Language-Team: Finnish <[email protected]>\n"
|
||||
@@ -27,8 +27,7 @@ msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr "[email protected]"
|
||||
|
||||
#: contents/ui/AlbumPage.qml:19 contents/ui/PlayerFooter.qml:192
|
||||
#: contents/ui/PlaylistPage.qml:19
|
||||
#: contents/ui/AlbumPage.qml:19 contents/ui/PlaylistPage.qml:19
|
||||
#, kde-format
|
||||
msgid "Play"
|
||||
msgstr "Toista"
|
||||
@@ -93,40 +92,37 @@ msgstr ""
|
||||
msgid "Most played"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/main.qml:94
|
||||
#: contents/ui/main.qml:93
|
||||
#, kde-format
|
||||
msgid "AudioTube"
|
||||
msgstr "AudioTube"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:124
|
||||
#: contents/ui/MaximizedPlayerPage.qml:86
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "No media playing"
|
||||
msgid "Now Playing"
|
||||
msgstr "Mitään ei toisteta"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:112
|
||||
#, kde-format
|
||||
msgid "Queue"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:224
|
||||
#, kde-format
|
||||
msgid "Remove Track"
|
||||
msgstr "Poista raita"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:141
|
||||
#, kde-format
|
||||
msgid "Clear"
|
||||
msgstr "Tyhjennä"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:146 contents/ui/PlaylistPage.qml:26
|
||||
#, kde-format
|
||||
msgid "Shuffle"
|
||||
msgstr "Sekoita"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:192
|
||||
#, kde-format
|
||||
msgid "Pause"
|
||||
msgstr "Tauko"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:222
|
||||
#: contents/ui/MaximizedPlayerPage.qml:244
|
||||
#: contents/ui/MinimizedPlayerControls.qml:96
|
||||
#, kde-format
|
||||
msgid "No media playing"
|
||||
msgstr "Mitään ei toisteta"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:266
|
||||
#: contents/ui/PlaylistPage.qml:26
|
||||
#, kde-format
|
||||
msgid "Expand"
|
||||
msgstr "Laajenna"
|
||||
msgid "Shuffle"
|
||||
msgstr "Sekoita"
|
||||
|
||||
#: contents/ui/SearchPage.qml:27
|
||||
#, kde-format
|
||||
@@ -163,5 +159,14 @@ msgstr "Etsi musiikkia Youtube Musicista"
|
||||
msgid "Search"
|
||||
msgstr "Etsi"
|
||||
|
||||
#~ msgid "Clear"
|
||||
#~ msgstr "Tyhjennä"
|
||||
|
||||
#~ msgid "Pause"
|
||||
#~ msgstr "Tauko"
|
||||
|
||||
#~ msgid "Expand"
|
||||
#~ msgstr "Laajenna"
|
||||
|
||||
#~ msgid "Play only Audio"
|
||||
#~ msgstr "Toista vain ääni"
|
||||
+34
-29
@@ -1,10 +1,10 @@
|
||||
# Xavier Besnard <[email protected]>, 2021.
|
||||
# Xavier Besnard <[email protected]>, 2021, 2022.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: audiotube\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2022-05-23 00:47+0000\n"
|
||||
"PO-Revision-Date: 2021-12-06 10:18+0100\n"
|
||||
"POT-Creation-Date: 2022-05-25 00:46+0000\n"
|
||||
"PO-Revision-Date: 2022-05-23 20:05+0200\n"
|
||||
"Last-Translator: Xavier Besnard <[email protected]>\n"
|
||||
"Language-Team: French <[email protected]>\n"
|
||||
"Language: fr\n"
|
||||
@@ -12,7 +12,7 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||
"X-Generator: Lokalize 21.11.90\n"
|
||||
"X-Generator: Lokalize 22.04.1\n"
|
||||
|
||||
#, kde-format
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
@@ -24,8 +24,7 @@ msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr "[email protected]"
|
||||
|
||||
#: contents/ui/AlbumPage.qml:19 contents/ui/PlayerFooter.qml:192
|
||||
#: contents/ui/PlaylistPage.qml:19
|
||||
#: contents/ui/AlbumPage.qml:19 contents/ui/PlaylistPage.qml:19
|
||||
#, kde-format
|
||||
msgid "Play"
|
||||
msgstr "Lire"
|
||||
@@ -84,47 +83,44 @@ msgstr "Annuler"
|
||||
#: contents/ui/LibraryPage.qml:15
|
||||
#, kde-format
|
||||
msgid "Favourites"
|
||||
msgstr ""
|
||||
msgstr "Favoris"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:67
|
||||
#, kde-format
|
||||
msgid "Most played"
|
||||
msgstr ""
|
||||
msgstr "Les plus lus"
|
||||
|
||||
#: contents/ui/main.qml:94
|
||||
#: contents/ui/main.qml:93
|
||||
#, kde-format
|
||||
msgid "AudioTube"
|
||||
msgstr "AudioTube"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:124
|
||||
#: contents/ui/MaximizedPlayerPage.qml:86
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "No media playing"
|
||||
msgid "Now Playing"
|
||||
msgstr "Aucun média en lecture"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:112
|
||||
#, kde-format
|
||||
msgid "Queue"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:224
|
||||
#, kde-format
|
||||
msgid "Remove Track"
|
||||
msgstr "Supprimer une piste"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:141
|
||||
#, kde-format
|
||||
msgid "Clear"
|
||||
msgstr "Effacer"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:146 contents/ui/PlaylistPage.qml:26
|
||||
#, kde-format
|
||||
msgid "Shuffle"
|
||||
msgstr "Mélanger"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:192
|
||||
#, kde-format
|
||||
msgid "Pause"
|
||||
msgstr "Pause"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:222
|
||||
#: contents/ui/MaximizedPlayerPage.qml:244
|
||||
#: contents/ui/MinimizedPlayerControls.qml:96
|
||||
#, kde-format
|
||||
msgid "No media playing"
|
||||
msgstr "Aucun média en lecture"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:266
|
||||
#: contents/ui/PlaylistPage.qml:26
|
||||
#, kde-format
|
||||
msgid "Expand"
|
||||
msgstr "Développer"
|
||||
msgid "Shuffle"
|
||||
msgstr "Mélanger"
|
||||
|
||||
#: contents/ui/SearchPage.qml:27
|
||||
#, kde-format
|
||||
@@ -161,5 +157,14 @@ msgstr "Rechercher de la musique sur « YouTube Music »"
|
||||
msgid "Search"
|
||||
msgstr "Rechercher"
|
||||
|
||||
#~ msgid "Clear"
|
||||
#~ msgstr "Effacer"
|
||||
|
||||
#~ msgid "Pause"
|
||||
#~ msgstr "Pause"
|
||||
|
||||
#~ msgid "Expand"
|
||||
#~ msgstr "Développer"
|
||||
|
||||
#~ msgid "Play only Audio"
|
||||
#~ msgstr "Ne lire que l'audio"
|
||||
+29
-24
@@ -6,7 +6,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: audiotube\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2022-05-23 00:47+0000\n"
|
||||
"POT-Creation-Date: 2022-05-25 00:46+0000\n"
|
||||
"PO-Revision-Date: 2021-09-17 20:09+0530\n"
|
||||
"Last-Translator: Raghavendra Kamath <[email protected]>\n"
|
||||
"Language-Team: kde-hindi\n"
|
||||
@@ -27,8 +27,7 @@ msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr "[email protected]"
|
||||
|
||||
#: contents/ui/AlbumPage.qml:19 contents/ui/PlayerFooter.qml:192
|
||||
#: contents/ui/PlaylistPage.qml:19
|
||||
#: contents/ui/AlbumPage.qml:19 contents/ui/PlaylistPage.qml:19
|
||||
#, kde-format
|
||||
msgid "Play"
|
||||
msgstr "बजाएँ"
|
||||
@@ -93,40 +92,37 @@ msgstr ""
|
||||
msgid "Most played"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/main.qml:94
|
||||
#: contents/ui/main.qml:93
|
||||
#, kde-format
|
||||
msgid "AudioTube"
|
||||
msgstr "ओडियो-ट्यूब"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:124
|
||||
#: contents/ui/MaximizedPlayerPage.qml:86
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "No media playing"
|
||||
msgid "Now Playing"
|
||||
msgstr "कोई मीडिया नहीं बजा रहा है"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:112
|
||||
#, kde-format
|
||||
msgid "Queue"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:224
|
||||
#, kde-format
|
||||
msgid "Remove Track"
|
||||
msgstr "गाना हटाएँ"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:141
|
||||
#, kde-format
|
||||
msgid "Clear"
|
||||
msgstr "साफ करें"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:146 contents/ui/PlaylistPage.qml:26
|
||||
#, kde-format
|
||||
msgid "Shuffle"
|
||||
msgstr "फेंटें"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:192
|
||||
#, kde-format
|
||||
msgid "Pause"
|
||||
msgstr "रोकें"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:222
|
||||
#: contents/ui/MaximizedPlayerPage.qml:244
|
||||
#: contents/ui/MinimizedPlayerControls.qml:96
|
||||
#, kde-format
|
||||
msgid "No media playing"
|
||||
msgstr "कोई मीडिया नहीं बजा रहा है"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:266
|
||||
#: contents/ui/PlaylistPage.qml:26
|
||||
#, kde-format
|
||||
msgid "Expand"
|
||||
msgstr "विस्तृत करें"
|
||||
msgid "Shuffle"
|
||||
msgstr "फेंटें"
|
||||
|
||||
#: contents/ui/SearchPage.qml:27
|
||||
#, kde-format
|
||||
@@ -163,5 +159,14 @@ msgstr "यूट्यूब संगीत पर संगीत ढूं
|
||||
msgid "Search"
|
||||
msgstr "खोजें"
|
||||
|
||||
#~ msgid "Clear"
|
||||
#~ msgstr "साफ करें"
|
||||
|
||||
#~ msgid "Pause"
|
||||
#~ msgstr "रोकें"
|
||||
|
||||
#~ msgid "Expand"
|
||||
#~ msgstr "विस्तृत करें"
|
||||
|
||||
#~ msgid "Play only Audio"
|
||||
#~ msgstr "केवल ध्वनी चलाएँ"
|
||||
+29
-24
@@ -6,7 +6,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: audiotube\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2022-05-23 00:47+0000\n"
|
||||
"POT-Creation-Date: 2022-05-25 00:46+0000\n"
|
||||
"PO-Revision-Date: 2021-12-06 02:46+0100\n"
|
||||
"Last-Translator: Vincenzo Reale <[email protected]>\n"
|
||||
"Language-Team: Italian <[email protected]>\n"
|
||||
@@ -27,8 +27,7 @@ msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr "[email protected]"
|
||||
|
||||
#: contents/ui/AlbumPage.qml:19 contents/ui/PlayerFooter.qml:192
|
||||
#: contents/ui/PlaylistPage.qml:19
|
||||
#: contents/ui/AlbumPage.qml:19 contents/ui/PlaylistPage.qml:19
|
||||
#, kde-format
|
||||
msgid "Play"
|
||||
msgstr "Riproduci"
|
||||
@@ -94,40 +93,37 @@ msgstr ""
|
||||
msgid "Most played"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/main.qml:94
|
||||
#: contents/ui/main.qml:93
|
||||
#, kde-format
|
||||
msgid "AudioTube"
|
||||
msgstr "AudioTube"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:124
|
||||
#: contents/ui/MaximizedPlayerPage.qml:86
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "No media playing"
|
||||
msgid "Now Playing"
|
||||
msgstr "Nessun supporto in riproduzione"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:112
|
||||
#, kde-format
|
||||
msgid "Queue"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:224
|
||||
#, kde-format
|
||||
msgid "Remove Track"
|
||||
msgstr "Rimuovi traccia"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:141
|
||||
#, kde-format
|
||||
msgid "Clear"
|
||||
msgstr "Pulisci"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:146 contents/ui/PlaylistPage.qml:26
|
||||
#, kde-format
|
||||
msgid "Shuffle"
|
||||
msgstr "Mescola"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:192
|
||||
#, kde-format
|
||||
msgid "Pause"
|
||||
msgstr "Pausa"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:222
|
||||
#: contents/ui/MaximizedPlayerPage.qml:244
|
||||
#: contents/ui/MinimizedPlayerControls.qml:96
|
||||
#, kde-format
|
||||
msgid "No media playing"
|
||||
msgstr "Nessun supporto in riproduzione"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:266
|
||||
#: contents/ui/PlaylistPage.qml:26
|
||||
#, kde-format
|
||||
msgid "Expand"
|
||||
msgstr "Espandi"
|
||||
msgid "Shuffle"
|
||||
msgstr "Mescola"
|
||||
|
||||
#: contents/ui/SearchPage.qml:27
|
||||
#, kde-format
|
||||
@@ -164,5 +160,14 @@ msgstr "Trova musica su Youtube Music"
|
||||
msgid "Search"
|
||||
msgstr "Cerca"
|
||||
|
||||
#~ msgid "Clear"
|
||||
#~ msgstr "Pulisci"
|
||||
|
||||
#~ msgid "Pause"
|
||||
#~ msgstr "Pausa"
|
||||
|
||||
#~ msgid "Expand"
|
||||
#~ msgstr "Espandi"
|
||||
|
||||
#~ msgid "Play only Audio"
|
||||
#~ msgstr "Riproduci solo l'audio"
|
||||
+29
-24
@@ -6,7 +6,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: audiotube\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2022-05-23 00:47+0000\n"
|
||||
"POT-Creation-Date: 2022-05-25 00:46+0000\n"
|
||||
"PO-Revision-Date: 2021-12-08 00:45+0100\n"
|
||||
"Last-Translator: Shinjo Park <[email protected]>\n"
|
||||
"Language-Team: Korean <[email protected]>\n"
|
||||
@@ -27,8 +27,7 @@ msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr "[email protected]"
|
||||
|
||||
#: contents/ui/AlbumPage.qml:19 contents/ui/PlayerFooter.qml:192
|
||||
#: contents/ui/PlaylistPage.qml:19
|
||||
#: contents/ui/AlbumPage.qml:19 contents/ui/PlaylistPage.qml:19
|
||||
#, kde-format
|
||||
msgid "Play"
|
||||
msgstr "재생"
|
||||
@@ -92,40 +91,37 @@ msgstr ""
|
||||
msgid "Most played"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/main.qml:94
|
||||
#: contents/ui/main.qml:93
|
||||
#, kde-format
|
||||
msgid "AudioTube"
|
||||
msgstr "AudioTube"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:124
|
||||
#: contents/ui/MaximizedPlayerPage.qml:86
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "No media playing"
|
||||
msgid "Now Playing"
|
||||
msgstr "재생 중인 미디어 없음"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:112
|
||||
#, kde-format
|
||||
msgid "Queue"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:224
|
||||
#, kde-format
|
||||
msgid "Remove Track"
|
||||
msgstr "트랙 삭제"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:141
|
||||
#, kde-format
|
||||
msgid "Clear"
|
||||
msgstr "지우기"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:146 contents/ui/PlaylistPage.qml:26
|
||||
#, kde-format
|
||||
msgid "Shuffle"
|
||||
msgstr "무순서 재생"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:192
|
||||
#, kde-format
|
||||
msgid "Pause"
|
||||
msgstr "일시 정지"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:222
|
||||
#: contents/ui/MaximizedPlayerPage.qml:244
|
||||
#: contents/ui/MinimizedPlayerControls.qml:96
|
||||
#, kde-format
|
||||
msgid "No media playing"
|
||||
msgstr "재생 중인 미디어 없음"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:266
|
||||
#: contents/ui/PlaylistPage.qml:26
|
||||
#, kde-format
|
||||
msgid "Expand"
|
||||
msgstr "확장"
|
||||
msgid "Shuffle"
|
||||
msgstr "무순서 재생"
|
||||
|
||||
#: contents/ui/SearchPage.qml:27
|
||||
#, kde-format
|
||||
@@ -162,5 +158,14 @@ msgstr "YouTube Music에서 음악 찾기"
|
||||
msgid "Search"
|
||||
msgstr "검색"
|
||||
|
||||
#~ msgid "Clear"
|
||||
#~ msgstr "지우기"
|
||||
|
||||
#~ msgid "Pause"
|
||||
#~ msgstr "일시 정지"
|
||||
|
||||
#~ msgid "Expand"
|
||||
#~ msgstr "확장"
|
||||
|
||||
#~ msgid "Play only Audio"
|
||||
#~ msgstr "오디오만 재생"
|
||||
+34
-30
@@ -1,13 +1,13 @@
|
||||
# Copyright (C) YEAR This file is copyright:
|
||||
# This file is distributed under the same license as the audiotube package.
|
||||
#
|
||||
# Freek de Kruijf <[email protected]>, 2021.
|
||||
# Freek de Kruijf <[email protected]>, 2021, 2022.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: audiotube\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2022-05-23 00:47+0000\n"
|
||||
"PO-Revision-Date: 2021-12-05 16:48+0100\n"
|
||||
"POT-Creation-Date: 2022-05-25 00:46+0000\n"
|
||||
"PO-Revision-Date: 2022-05-24 10:48+0200\n"
|
||||
"Last-Translator: Freek de Kruijf <[email protected]>\n"
|
||||
"Language-Team: \n"
|
||||
"Language: nl\n"
|
||||
@@ -15,20 +15,19 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Lokalize 21.08.3\n"
|
||||
"X-Generator: Lokalize 22.04.1\n"
|
||||
|
||||
#, kde-format
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
msgid "Your names"
|
||||
msgstr "Freek de Kruijf - 2021"
|
||||
msgstr "Freek de Kruijf - 2021 t/m 2022"
|
||||
|
||||
#, kde-format
|
||||
msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr "[email protected]"
|
||||
|
||||
#: contents/ui/AlbumPage.qml:19 contents/ui/PlayerFooter.qml:192
|
||||
#: contents/ui/PlaylistPage.qml:19
|
||||
#: contents/ui/AlbumPage.qml:19 contents/ui/PlaylistPage.qml:19
|
||||
#, kde-format
|
||||
msgid "Play"
|
||||
msgstr "Afspelen"
|
||||
@@ -87,47 +86,43 @@ msgstr "Annuleren"
|
||||
#: contents/ui/LibraryPage.qml:15
|
||||
#, kde-format
|
||||
msgid "Favourites"
|
||||
msgstr ""
|
||||
msgstr "Favorieten"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:67
|
||||
#, kde-format
|
||||
msgid "Most played"
|
||||
msgstr ""
|
||||
msgstr "Meest afgespeeld"
|
||||
|
||||
#: contents/ui/main.qml:94
|
||||
#: contents/ui/main.qml:93
|
||||
#, kde-format
|
||||
msgid "AudioTube"
|
||||
msgstr "AudioTube"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:124
|
||||
#: contents/ui/MaximizedPlayerPage.qml:86
|
||||
#, kde-format
|
||||
msgid "Now Playing"
|
||||
msgstr "Speelt nu"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:112
|
||||
#, kde-format
|
||||
msgid "Queue"
|
||||
msgstr "Wachtrij"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:224
|
||||
#, kde-format
|
||||
msgid "Remove Track"
|
||||
msgstr "Track verwijderen"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:141
|
||||
#, kde-format
|
||||
msgid "Clear"
|
||||
msgstr "Wissen"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:146 contents/ui/PlaylistPage.qml:26
|
||||
#, kde-format
|
||||
msgid "Shuffle"
|
||||
msgstr "Willekeurig afspelen"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:192
|
||||
#, kde-format
|
||||
msgid "Pause"
|
||||
msgstr "Pauzeren"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:222
|
||||
#: contents/ui/MaximizedPlayerPage.qml:244
|
||||
#: contents/ui/MinimizedPlayerControls.qml:96
|
||||
#, kde-format
|
||||
msgid "No media playing"
|
||||
msgstr "Er speelt geen medium"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:266
|
||||
#: contents/ui/PlaylistPage.qml:26
|
||||
#, kde-format
|
||||
msgid "Expand"
|
||||
msgstr "Uitbreiden"
|
||||
msgid "Shuffle"
|
||||
msgstr "Willekeurig afspelen"
|
||||
|
||||
#: contents/ui/SearchPage.qml:27
|
||||
#, kde-format
|
||||
@@ -164,5 +159,14 @@ msgstr "Muziek zoeken op YouTube Music"
|
||||
msgid "Search"
|
||||
msgstr "Zoeken"
|
||||
|
||||
#~ msgid "Clear"
|
||||
#~ msgstr "Wissen"
|
||||
|
||||
#~ msgid "Pause"
|
||||
#~ msgstr "Pauzeren"
|
||||
|
||||
#~ msgid "Expand"
|
||||
#~ msgstr "Uitbreiden"
|
||||
|
||||
#~ msgid "Play only Audio"
|
||||
#~ msgstr "Alleen geluid afspelen"
|
||||
+29
-24
@@ -6,7 +6,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: audiotube\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2022-05-23 00:47+0000\n"
|
||||
"POT-Creation-Date: 2022-05-25 00:46+0000\n"
|
||||
"PO-Revision-Date: 2022-01-01 09:11-0800\n"
|
||||
"Last-Translator: A S Alam <[email protected]>\n"
|
||||
"Language-Team: Punjabi <[email protected]>\n"
|
||||
@@ -27,8 +27,7 @@ msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr "alam yellow @ gmail.com"
|
||||
|
||||
#: contents/ui/AlbumPage.qml:19 contents/ui/PlayerFooter.qml:192
|
||||
#: contents/ui/PlaylistPage.qml:19
|
||||
#: contents/ui/AlbumPage.qml:19 contents/ui/PlaylistPage.qml:19
|
||||
#, kde-format
|
||||
msgid "Play"
|
||||
msgstr "ਚਲਾਓ"
|
||||
@@ -92,40 +91,37 @@ msgstr ""
|
||||
msgid "Most played"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/main.qml:94
|
||||
#: contents/ui/main.qml:93
|
||||
#, kde-format
|
||||
msgid "AudioTube"
|
||||
msgstr "ਆਡੀਓ-ਟਿਊਬ"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:124
|
||||
#: contents/ui/MaximizedPlayerPage.qml:86
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "No media playing"
|
||||
msgid "Now Playing"
|
||||
msgstr "ਕੋਈ ਮੀਡੀਆ ਨਹੀਂ ਚੱਲਦਾ"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:112
|
||||
#, kde-format
|
||||
msgid "Queue"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:224
|
||||
#, kde-format
|
||||
msgid "Remove Track"
|
||||
msgstr "ਟਰੈਕ ਨੂੰ ਹਟਾਓ"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:141
|
||||
#, kde-format
|
||||
msgid "Clear"
|
||||
msgstr "ਮਿਟਾਓ"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:146 contents/ui/PlaylistPage.qml:26
|
||||
#, kde-format
|
||||
msgid "Shuffle"
|
||||
msgstr "ਰਲਵੇਂ"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:192
|
||||
#, kde-format
|
||||
msgid "Pause"
|
||||
msgstr "ਵਿਰਾਮ"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:222
|
||||
#: contents/ui/MaximizedPlayerPage.qml:244
|
||||
#: contents/ui/MinimizedPlayerControls.qml:96
|
||||
#, kde-format
|
||||
msgid "No media playing"
|
||||
msgstr "ਕੋਈ ਮੀਡੀਆ ਨਹੀਂ ਚੱਲਦਾ"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:266
|
||||
#: contents/ui/PlaylistPage.qml:26
|
||||
#, kde-format
|
||||
msgid "Expand"
|
||||
msgstr "ਫੈਲਾਓ"
|
||||
msgid "Shuffle"
|
||||
msgstr "ਰਲਵੇਂ"
|
||||
|
||||
#: contents/ui/SearchPage.qml:27
|
||||
#, kde-format
|
||||
@@ -162,5 +158,14 @@ msgstr "ਯੂਟਿਊਬ ਸੰਗੀਤ ਉੱਤੇ ਸੰਗੀਤ ਲੱ
|
||||
msgid "Search"
|
||||
msgstr "ਖੋਜੋ"
|
||||
|
||||
#~ msgid "Clear"
|
||||
#~ msgstr "ਮਿਟਾਓ"
|
||||
|
||||
#~ msgid "Pause"
|
||||
#~ msgstr "ਵਿਰਾਮ"
|
||||
|
||||
#~ msgid "Expand"
|
||||
#~ msgstr "ਫੈਲਾਓ"
|
||||
|
||||
#~ msgid "Play only Audio"
|
||||
#~ msgstr "ਸਿਰਫ਼ ਆਡੀਓ ਹੀ ਚਲਾਓ"
|
||||
+29
-24
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: audiotube\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2022-05-23 00:47+0000\n"
|
||||
"POT-Creation-Date: 2022-05-25 00:46+0000\n"
|
||||
"PO-Revision-Date: 2021-12-30 12:38+0100\n"
|
||||
"Last-Translator: Łukasz Wojniłowicz <[email protected]>\n"
|
||||
"Language-Team: Polish <[email protected]>\n"
|
||||
@@ -29,8 +29,7 @@ msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr "[email protected], [email protected]"
|
||||
|
||||
#: contents/ui/AlbumPage.qml:19 contents/ui/PlayerFooter.qml:192
|
||||
#: contents/ui/PlaylistPage.qml:19
|
||||
#: contents/ui/AlbumPage.qml:19 contents/ui/PlaylistPage.qml:19
|
||||
#, kde-format
|
||||
msgid "Play"
|
||||
msgstr "Odtwórz"
|
||||
@@ -96,40 +95,37 @@ msgstr ""
|
||||
msgid "Most played"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/main.qml:94
|
||||
#: contents/ui/main.qml:93
|
||||
#, kde-format
|
||||
msgid "AudioTube"
|
||||
msgstr "AudioTube"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:124
|
||||
#: contents/ui/MaximizedPlayerPage.qml:86
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "No media playing"
|
||||
msgid "Now Playing"
|
||||
msgstr "Nic nie jest odtwarzane"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:112
|
||||
#, kde-format
|
||||
msgid "Queue"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:224
|
||||
#, kde-format
|
||||
msgid "Remove Track"
|
||||
msgstr "Usuń utwór"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:141
|
||||
#, kde-format
|
||||
msgid "Clear"
|
||||
msgstr "Wyczyść"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:146 contents/ui/PlaylistPage.qml:26
|
||||
#, kde-format
|
||||
msgid "Shuffle"
|
||||
msgstr "Wymieszaj"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:192
|
||||
#, kde-format
|
||||
msgid "Pause"
|
||||
msgstr "Wstrzymaj"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:222
|
||||
#: contents/ui/MaximizedPlayerPage.qml:244
|
||||
#: contents/ui/MinimizedPlayerControls.qml:96
|
||||
#, kde-format
|
||||
msgid "No media playing"
|
||||
msgstr "Nic nie jest odtwarzane"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:266
|
||||
#: contents/ui/PlaylistPage.qml:26
|
||||
#, kde-format
|
||||
msgid "Expand"
|
||||
msgstr "Rozwiń"
|
||||
msgid "Shuffle"
|
||||
msgstr "Wymieszaj"
|
||||
|
||||
#: contents/ui/SearchPage.qml:27
|
||||
#, kde-format
|
||||
@@ -166,5 +162,14 @@ msgstr "Znajdź muzykę w serwisie YouTube Music"
|
||||
msgid "Search"
|
||||
msgstr "Szukaj"
|
||||
|
||||
#~ msgid "Clear"
|
||||
#~ msgstr "Wyczyść"
|
||||
|
||||
#~ msgid "Pause"
|
||||
#~ msgstr "Wstrzymaj"
|
||||
|
||||
#~ msgid "Expand"
|
||||
#~ msgstr "Rozwiń"
|
||||
|
||||
#~ msgid "Play only Audio"
|
||||
#~ msgstr "Odtwórz tylko dźwięk"
|
||||
+29
-24
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: audiotube\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2022-05-23 00:47+0000\n"
|
||||
"POT-Creation-Date: 2022-05-25 00:46+0000\n"
|
||||
"PO-Revision-Date: 2021-09-04 18:29+0100\n"
|
||||
"Last-Translator: José Nuno Coelho Pires <[email protected]>\n"
|
||||
"Language-Team: Portuguese <[email protected]>\n"
|
||||
@@ -29,8 +29,7 @@ msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr "[email protected]"
|
||||
|
||||
#: contents/ui/AlbumPage.qml:19 contents/ui/PlayerFooter.qml:192
|
||||
#: contents/ui/PlaylistPage.qml:19
|
||||
#: contents/ui/AlbumPage.qml:19 contents/ui/PlaylistPage.qml:19
|
||||
#, kde-format
|
||||
msgid "Play"
|
||||
msgstr "Reproduzir"
|
||||
@@ -96,40 +95,37 @@ msgstr ""
|
||||
msgid "Most played"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/main.qml:94
|
||||
#: contents/ui/main.qml:93
|
||||
#, kde-format
|
||||
msgid "AudioTube"
|
||||
msgstr "AudioTube"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:124
|
||||
#: contents/ui/MaximizedPlayerPage.qml:86
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "No media playing"
|
||||
msgid "Now Playing"
|
||||
msgstr "Nada em reprodução"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:112
|
||||
#, kde-format
|
||||
msgid "Queue"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:224
|
||||
#, kde-format
|
||||
msgid "Remove Track"
|
||||
msgstr "Remover a Faixa"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:141
|
||||
#, kde-format
|
||||
msgid "Clear"
|
||||
msgstr "Limpar"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:146 contents/ui/PlaylistPage.qml:26
|
||||
#, kde-format
|
||||
msgid "Shuffle"
|
||||
msgstr "Baralhar"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:192
|
||||
#, kde-format
|
||||
msgid "Pause"
|
||||
msgstr "Pausa"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:222
|
||||
#: contents/ui/MaximizedPlayerPage.qml:244
|
||||
#: contents/ui/MinimizedPlayerControls.qml:96
|
||||
#, kde-format
|
||||
msgid "No media playing"
|
||||
msgstr "Nada em reprodução"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:266
|
||||
#: contents/ui/PlaylistPage.qml:26
|
||||
#, kde-format
|
||||
msgid "Expand"
|
||||
msgstr "Expandir"
|
||||
msgid "Shuffle"
|
||||
msgstr "Baralhar"
|
||||
|
||||
#: contents/ui/SearchPage.qml:27
|
||||
#, kde-format
|
||||
@@ -166,5 +162,14 @@ msgstr "Procurar música no YouTube Music"
|
||||
msgid "Search"
|
||||
msgstr "Procurar"
|
||||
|
||||
#~ msgid "Clear"
|
||||
#~ msgstr "Limpar"
|
||||
|
||||
#~ msgid "Pause"
|
||||
#~ msgstr "Pausa"
|
||||
|
||||
#~ msgid "Expand"
|
||||
#~ msgstr "Expandir"
|
||||
|
||||
#~ msgid "Play only Audio"
|
||||
#~ msgstr "Reproduzir só o Áudio"
|
||||
+29
-24
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: audiotube\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2022-05-23 00:47+0000\n"
|
||||
"POT-Creation-Date: 2022-05-25 00:46+0000\n"
|
||||
"PO-Revision-Date: 2021-12-09 10:13-0300\n"
|
||||
"Last-Translator: Luiz Fernando Ranghetti <[email protected]>\n"
|
||||
"Language-Team: Portuguese <[email protected]>\n"
|
||||
@@ -28,8 +28,7 @@ msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr "[email protected]"
|
||||
|
||||
#: contents/ui/AlbumPage.qml:19 contents/ui/PlayerFooter.qml:192
|
||||
#: contents/ui/PlaylistPage.qml:19
|
||||
#: contents/ui/AlbumPage.qml:19 contents/ui/PlaylistPage.qml:19
|
||||
#, kde-format
|
||||
msgid "Play"
|
||||
msgstr "Reproduzir"
|
||||
@@ -95,40 +94,37 @@ msgstr ""
|
||||
msgid "Most played"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/main.qml:94
|
||||
#: contents/ui/main.qml:93
|
||||
#, kde-format
|
||||
msgid "AudioTube"
|
||||
msgstr "AudioTube"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:124
|
||||
#: contents/ui/MaximizedPlayerPage.qml:86
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "No media playing"
|
||||
msgid "Now Playing"
|
||||
msgstr "Nenhuma mídia em reprodução"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:112
|
||||
#, kde-format
|
||||
msgid "Queue"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:224
|
||||
#, kde-format
|
||||
msgid "Remove Track"
|
||||
msgstr "Remover faixa"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:141
|
||||
#, kde-format
|
||||
msgid "Clear"
|
||||
msgstr "Limpar"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:146 contents/ui/PlaylistPage.qml:26
|
||||
#, kde-format
|
||||
msgid "Shuffle"
|
||||
msgstr "Embaralhar"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:192
|
||||
#, kde-format
|
||||
msgid "Pause"
|
||||
msgstr "Pausar"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:222
|
||||
#: contents/ui/MaximizedPlayerPage.qml:244
|
||||
#: contents/ui/MinimizedPlayerControls.qml:96
|
||||
#, kde-format
|
||||
msgid "No media playing"
|
||||
msgstr "Nenhuma mídia em reprodução"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:266
|
||||
#: contents/ui/PlaylistPage.qml:26
|
||||
#, kde-format
|
||||
msgid "Expand"
|
||||
msgstr "Expandir"
|
||||
msgid "Shuffle"
|
||||
msgstr "Embaralhar"
|
||||
|
||||
#: contents/ui/SearchPage.qml:27
|
||||
#, kde-format
|
||||
@@ -165,5 +161,14 @@ msgstr "Encontre músicas no YouTube Music"
|
||||
msgid "Search"
|
||||
msgstr "Pesquisar"
|
||||
|
||||
#~ msgid "Clear"
|
||||
#~ msgstr "Limpar"
|
||||
|
||||
#~ msgid "Pause"
|
||||
#~ msgstr "Pausar"
|
||||
|
||||
#~ msgid "Expand"
|
||||
#~ msgstr "Expandir"
|
||||
|
||||
#~ msgid "Play only Audio"
|
||||
#~ msgstr "Reproduzir apenas áudio"
|
||||
+25
-24
@@ -6,7 +6,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: audiotube\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2022-05-23 00:47+0000\n"
|
||||
"POT-Creation-Date: 2022-05-25 00:46+0000\n"
|
||||
"PO-Revision-Date: 2022-05-10 21:39+0300\n"
|
||||
"Last-Translator: Alexander Yavorsky <[email protected]>\n"
|
||||
"Language-Team: Russian <[email protected]>\n"
|
||||
@@ -28,8 +28,7 @@ msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr "[email protected]"
|
||||
|
||||
#: contents/ui/AlbumPage.qml:19 contents/ui/PlayerFooter.qml:192
|
||||
#: contents/ui/PlaylistPage.qml:19
|
||||
#: contents/ui/AlbumPage.qml:19 contents/ui/PlaylistPage.qml:19
|
||||
#, kde-format
|
||||
msgid "Play"
|
||||
msgstr "Воспроизвести"
|
||||
@@ -93,40 +92,36 @@ msgstr ""
|
||||
msgid "Most played"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/main.qml:94
|
||||
#: contents/ui/main.qml:93
|
||||
#, kde-format
|
||||
msgid "AudioTube"
|
||||
msgstr "AudioTube"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:124
|
||||
#: contents/ui/MaximizedPlayerPage.qml:86
|
||||
#, kde-format
|
||||
msgid "Now Playing"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:112
|
||||
#, kde-format
|
||||
msgid "Queue"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:224
|
||||
#, kde-format
|
||||
msgid "Remove Track"
|
||||
msgstr "Удалить дорожку"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:141
|
||||
#, kde-format
|
||||
msgid "Clear"
|
||||
msgstr "Очистить"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:146 contents/ui/PlaylistPage.qml:26
|
||||
#, kde-format
|
||||
msgid "Shuffle"
|
||||
msgstr "Перемешать"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:192
|
||||
#, kde-format
|
||||
msgid "Pause"
|
||||
msgstr "Приостановить"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:222
|
||||
#: contents/ui/MaximizedPlayerPage.qml:244
|
||||
#: contents/ui/MinimizedPlayerControls.qml:96
|
||||
#, kde-format
|
||||
msgid "No media playing"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:266
|
||||
#: contents/ui/PlaylistPage.qml:26
|
||||
#, kde-format
|
||||
msgid "Expand"
|
||||
msgstr ""
|
||||
msgid "Shuffle"
|
||||
msgstr "Перемешать"
|
||||
|
||||
#: contents/ui/SearchPage.qml:27
|
||||
#, kde-format
|
||||
@@ -162,3 +157,9 @@ msgstr ""
|
||||
#, kde-format
|
||||
msgid "Search"
|
||||
msgstr "Поиск"
|
||||
|
||||
#~ msgid "Clear"
|
||||
#~ msgstr "Очистить"
|
||||
|
||||
#~ msgid "Pause"
|
||||
#~ msgstr "Приостановить"
|
||||
+29
-24
@@ -4,7 +4,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: audiotube\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2022-05-23 00:47+0000\n"
|
||||
"POT-Creation-Date: 2022-05-25 00:46+0000\n"
|
||||
"PO-Revision-Date: 2022-04-07 18:01+0200\n"
|
||||
"Last-Translator: Roman Paholik <[email protected]>\n"
|
||||
"Language-Team: Slovak <[email protected]>\n"
|
||||
@@ -25,8 +25,7 @@ msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr "[email protected]"
|
||||
|
||||
#: contents/ui/AlbumPage.qml:19 contents/ui/PlayerFooter.qml:192
|
||||
#: contents/ui/PlaylistPage.qml:19
|
||||
#: contents/ui/AlbumPage.qml:19 contents/ui/PlaylistPage.qml:19
|
||||
#, kde-format
|
||||
msgid "Play"
|
||||
msgstr "Prehrať"
|
||||
@@ -91,40 +90,37 @@ msgstr ""
|
||||
msgid "Most played"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/main.qml:94
|
||||
#: contents/ui/main.qml:93
|
||||
#, kde-format
|
||||
msgid "AudioTube"
|
||||
msgstr "AudioTube"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:124
|
||||
#: contents/ui/MaximizedPlayerPage.qml:86
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "No media playing"
|
||||
msgid "Now Playing"
|
||||
msgstr "Neprehráva sa žiadne médium"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:112
|
||||
#, kde-format
|
||||
msgid "Queue"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:224
|
||||
#, kde-format
|
||||
msgid "Remove Track"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:141
|
||||
#, kde-format
|
||||
msgid "Clear"
|
||||
msgstr "Vyčistiť"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:146 contents/ui/PlaylistPage.qml:26
|
||||
#, kde-format
|
||||
msgid "Shuffle"
|
||||
msgstr "Zamiešať"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:192
|
||||
#, kde-format
|
||||
msgid "Pause"
|
||||
msgstr "Pozastaviť"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:222
|
||||
#: contents/ui/MaximizedPlayerPage.qml:244
|
||||
#: contents/ui/MinimizedPlayerControls.qml:96
|
||||
#, kde-format
|
||||
msgid "No media playing"
|
||||
msgstr "Neprehráva sa žiadne médium"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:266
|
||||
#: contents/ui/PlaylistPage.qml:26
|
||||
#, kde-format
|
||||
msgid "Expand"
|
||||
msgstr "Rozvinúť"
|
||||
msgid "Shuffle"
|
||||
msgstr "Zamiešať"
|
||||
|
||||
#: contents/ui/SearchPage.qml:27
|
||||
#, kde-format
|
||||
@@ -160,3 +156,12 @@ msgstr ""
|
||||
#, kde-format
|
||||
msgid "Search"
|
||||
msgstr "Hľadať"
|
||||
|
||||
#~ msgid "Clear"
|
||||
#~ msgstr "Vyčistiť"
|
||||
|
||||
#~ msgid "Pause"
|
||||
#~ msgstr "Pozastaviť"
|
||||
|
||||
#~ msgid "Expand"
|
||||
#~ msgstr "Rozvinúť"
|
||||
+33
-29
@@ -1,20 +1,20 @@
|
||||
# Copyright (C) YEAR This file is copyright:
|
||||
# This file is distributed under the same license as the audiotube package.
|
||||
#
|
||||
# Matjaž Jeran <[email protected]>, 2021.
|
||||
# Matjaž Jeran <[email protected]>, 2021, 2022.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: audiotube\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2022-05-23 00:47+0000\n"
|
||||
"PO-Revision-Date: 2021-12-09 13:26+0100\n"
|
||||
"POT-Creation-Date: 2022-05-25 00:46+0000\n"
|
||||
"PO-Revision-Date: 2022-05-24 07:26+0200\n"
|
||||
"Last-Translator: Matjaž Jeran <[email protected]>\n"
|
||||
"Language-Team: Slovenian <[email protected]>\n"
|
||||
"Language: sl\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: Lokalize 21.04.3\n"
|
||||
"X-Generator: Lokalize 21.12.2\n"
|
||||
"Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || n"
|
||||
"%100==4 ? 3 : 0);\n"
|
||||
|
||||
@@ -28,8 +28,7 @@ msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr "[email protected]"
|
||||
|
||||
#: contents/ui/AlbumPage.qml:19 contents/ui/PlayerFooter.qml:192
|
||||
#: contents/ui/PlaylistPage.qml:19
|
||||
#: contents/ui/AlbumPage.qml:19 contents/ui/PlaylistPage.qml:19
|
||||
#, kde-format
|
||||
msgid "Play"
|
||||
msgstr "Predvajaj"
|
||||
@@ -86,47 +85,43 @@ msgstr "Prekliči"
|
||||
#: contents/ui/LibraryPage.qml:15
|
||||
#, kde-format
|
||||
msgid "Favourites"
|
||||
msgstr ""
|
||||
msgstr "Priljubljeni"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:67
|
||||
#, kde-format
|
||||
msgid "Most played"
|
||||
msgstr ""
|
||||
msgstr "Največkrat predvajani"
|
||||
|
||||
#: contents/ui/main.qml:94
|
||||
#: contents/ui/main.qml:93
|
||||
#, kde-format
|
||||
msgid "AudioTube"
|
||||
msgstr "AudioTube"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:124
|
||||
#: contents/ui/MaximizedPlayerPage.qml:86
|
||||
#, kde-format
|
||||
msgid "Now Playing"
|
||||
msgstr "Pravkar predvajano"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:112
|
||||
#, kde-format
|
||||
msgid "Queue"
|
||||
msgstr "Čakalna vrsta"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:224
|
||||
#, kde-format
|
||||
msgid "Remove Track"
|
||||
msgstr "Odstrani sled"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:141
|
||||
#, kde-format
|
||||
msgid "Clear"
|
||||
msgstr "Očisti"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:146 contents/ui/PlaylistPage.qml:26
|
||||
#, kde-format
|
||||
msgid "Shuffle"
|
||||
msgstr "Premešaj"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:192
|
||||
#, kde-format
|
||||
msgid "Pause"
|
||||
msgstr "Premor"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:222
|
||||
#: contents/ui/MaximizedPlayerPage.qml:244
|
||||
#: contents/ui/MinimizedPlayerControls.qml:96
|
||||
#, kde-format
|
||||
msgid "No media playing"
|
||||
msgstr "Niče se ne predvaja"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:266
|
||||
#: contents/ui/PlaylistPage.qml:26
|
||||
#, kde-format
|
||||
msgid "Expand"
|
||||
msgstr "Razširi"
|
||||
msgid "Shuffle"
|
||||
msgstr "Premešaj"
|
||||
|
||||
#: contents/ui/SearchPage.qml:27
|
||||
#, kde-format
|
||||
@@ -163,5 +158,14 @@ msgstr "Najdi glasbo na Youtube Music"
|
||||
msgid "Search"
|
||||
msgstr "Išči"
|
||||
|
||||
#~ msgid "Clear"
|
||||
#~ msgstr "Očisti"
|
||||
|
||||
#~ msgid "Pause"
|
||||
#~ msgstr "Premor"
|
||||
|
||||
#~ msgid "Expand"
|
||||
#~ msgstr "Razširi"
|
||||
|
||||
#~ msgid "Play only Audio"
|
||||
#~ msgstr "Predvajaj samo zvok"
|
||||
+33
-28
@@ -1,13 +1,13 @@
|
||||
# Copyright (C) YEAR This file is copyright:
|
||||
# This file is distributed under the same license as the audiotube package.
|
||||
#
|
||||
# Stefan Asserhäll <[email protected]>, 2021.
|
||||
# Stefan Asserhäll <[email protected]>, 2021, 2022.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: audiotube\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2022-05-23 00:47+0000\n"
|
||||
"PO-Revision-Date: 2021-12-05 11:41+0100\n"
|
||||
"POT-Creation-Date: 2022-05-25 00:46+0000\n"
|
||||
"PO-Revision-Date: 2022-05-23 17:51+0200\n"
|
||||
"Last-Translator: Stefan Asserhäll <[email protected]>\n"
|
||||
"Language-Team: Swedish <[email protected]>\n"
|
||||
"Language: sv\n"
|
||||
@@ -27,8 +27,7 @@ msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr "[email protected]"
|
||||
|
||||
#: contents/ui/AlbumPage.qml:19 contents/ui/PlayerFooter.qml:192
|
||||
#: contents/ui/PlaylistPage.qml:19
|
||||
#: contents/ui/AlbumPage.qml:19 contents/ui/PlaylistPage.qml:19
|
||||
#, kde-format
|
||||
msgid "Play"
|
||||
msgstr "Spela"
|
||||
@@ -85,47 +84,44 @@ msgstr "Avbryt"
|
||||
#: contents/ui/LibraryPage.qml:15
|
||||
#, kde-format
|
||||
msgid "Favourites"
|
||||
msgstr ""
|
||||
msgstr "Favoriter"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:67
|
||||
#, kde-format
|
||||
msgid "Most played"
|
||||
msgstr ""
|
||||
msgstr "Mest spelade"
|
||||
|
||||
#: contents/ui/main.qml:94
|
||||
#: contents/ui/main.qml:93
|
||||
#, kde-format
|
||||
msgid "AudioTube"
|
||||
msgstr "AudioTube"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:124
|
||||
#: contents/ui/MaximizedPlayerPage.qml:86
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "No media playing"
|
||||
msgid "Now Playing"
|
||||
msgstr "Inga media spelar"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:112
|
||||
#, kde-format
|
||||
msgid "Queue"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:224
|
||||
#, kde-format
|
||||
msgid "Remove Track"
|
||||
msgstr "Ta bort spår"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:141
|
||||
#, kde-format
|
||||
msgid "Clear"
|
||||
msgstr "Rensa"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:146 contents/ui/PlaylistPage.qml:26
|
||||
#, kde-format
|
||||
msgid "Shuffle"
|
||||
msgstr "Blanda"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:192
|
||||
#, kde-format
|
||||
msgid "Pause"
|
||||
msgstr "Paus"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:222
|
||||
#: contents/ui/MaximizedPlayerPage.qml:244
|
||||
#: contents/ui/MinimizedPlayerControls.qml:96
|
||||
#, kde-format
|
||||
msgid "No media playing"
|
||||
msgstr "Inga media spelar"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:266
|
||||
#: contents/ui/PlaylistPage.qml:26
|
||||
#, kde-format
|
||||
msgid "Expand"
|
||||
msgstr "Expandera"
|
||||
msgid "Shuffle"
|
||||
msgstr "Blanda"
|
||||
|
||||
#: contents/ui/SearchPage.qml:27
|
||||
#, kde-format
|
||||
@@ -162,5 +158,14 @@ msgstr "Sök efter musik på YouTube musik"
|
||||
msgid "Search"
|
||||
msgstr "Sök"
|
||||
|
||||
#~ msgid "Clear"
|
||||
#~ msgstr "Rensa"
|
||||
|
||||
#~ msgid "Pause"
|
||||
#~ msgstr "Paus"
|
||||
|
||||
#~ msgid "Expand"
|
||||
#~ msgstr "Expandera"
|
||||
|
||||
#~ msgid "Play only Audio"
|
||||
#~ msgstr "Spela bara ljud"
|
||||
+32
-28
@@ -6,8 +6,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: audiotube\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2022-05-23 00:47+0000\n"
|
||||
"PO-Revision-Date: 2022-04-15 14:41+0300\n"
|
||||
"POT-Creation-Date: 2022-05-25 00:46+0000\n"
|
||||
"PO-Revision-Date: 2022-05-24 11:59+0300\n"
|
||||
"Last-Translator: Emir SARI <[email protected]>\n"
|
||||
"Language-Team: Turkish <[email protected]>\n"
|
||||
"Language: tr\n"
|
||||
@@ -15,7 +15,7 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||
"X-Generator: Lokalize 21.12.3\n"
|
||||
"X-Generator: Lokalize 22.04.0\n"
|
||||
|
||||
#, kde-format
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
@@ -27,8 +27,7 @@ msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr "[email protected]"
|
||||
|
||||
#: contents/ui/AlbumPage.qml:19 contents/ui/PlayerFooter.qml:192
|
||||
#: contents/ui/PlaylistPage.qml:19
|
||||
#: contents/ui/AlbumPage.qml:19 contents/ui/PlaylistPage.qml:19
|
||||
#, kde-format
|
||||
msgid "Play"
|
||||
msgstr "Çal"
|
||||
@@ -87,47 +86,43 @@ msgstr "İptal"
|
||||
#: contents/ui/LibraryPage.qml:15
|
||||
#, kde-format
|
||||
msgid "Favourites"
|
||||
msgstr ""
|
||||
msgstr "Beğeniler"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:67
|
||||
#, kde-format
|
||||
msgid "Most played"
|
||||
msgstr ""
|
||||
msgstr "En Çok Çalınanlar"
|
||||
|
||||
#: contents/ui/main.qml:94
|
||||
#: contents/ui/main.qml:93
|
||||
#, kde-format
|
||||
msgid "AudioTube"
|
||||
msgstr "AudioTube"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:124
|
||||
#: contents/ui/MaximizedPlayerPage.qml:86
|
||||
#, kde-format
|
||||
msgid "Now Playing"
|
||||
msgstr "Şimdi Çalınıyor"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:112
|
||||
#, kde-format
|
||||
msgid "Queue"
|
||||
msgstr "Kuyruk"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:224
|
||||
#, kde-format
|
||||
msgid "Remove Track"
|
||||
msgstr "Parçayı Kaldır"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:141
|
||||
#, kde-format
|
||||
msgid "Clear"
|
||||
msgstr "Temizle"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:146 contents/ui/PlaylistPage.qml:26
|
||||
#, kde-format
|
||||
msgid "Shuffle"
|
||||
msgstr "Karıştır"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:192
|
||||
#, kde-format
|
||||
msgid "Pause"
|
||||
msgstr "Duraklat"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:222
|
||||
#: contents/ui/MaximizedPlayerPage.qml:244
|
||||
#: contents/ui/MinimizedPlayerControls.qml:96
|
||||
#, kde-format
|
||||
msgid "No media playing"
|
||||
msgstr "Ortam çalmıyor"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:266
|
||||
#: contents/ui/PlaylistPage.qml:26
|
||||
#, kde-format
|
||||
msgid "Expand"
|
||||
msgstr "Genişlet"
|
||||
msgid "Shuffle"
|
||||
msgstr "Karıştır"
|
||||
|
||||
#: contents/ui/SearchPage.qml:27
|
||||
#, kde-format
|
||||
@@ -163,3 +158,12 @@ msgstr "YouTube Müzik'te müzik bul"
|
||||
#, kde-format
|
||||
msgid "Search"
|
||||
msgstr "Ara"
|
||||
|
||||
#~ msgid "Clear"
|
||||
#~ msgstr "Temizle"
|
||||
|
||||
#~ msgid "Pause"
|
||||
#~ msgstr "Duraklat"
|
||||
|
||||
#~ msgid "Expand"
|
||||
#~ msgstr "Genişlet"
|
||||
+32
-28
@@ -1,13 +1,13 @@
|
||||
# Copyright (C) YEAR This file is copyright:
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
#
|
||||
# Yuri Chornoivan <[email protected]>, 2021.
|
||||
# Yuri Chornoivan <[email protected]>, 2021, 2022.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2022-05-23 00:47+0000\n"
|
||||
"PO-Revision-Date: 2021-12-05 08:42+0200\n"
|
||||
"POT-Creation-Date: 2022-05-25 00:46+0000\n"
|
||||
"PO-Revision-Date: 2022-05-24 08:21+0300\n"
|
||||
"Last-Translator: Yuri Chornoivan <[email protected]>\n"
|
||||
"Language-Team: Ukrainian <[email protected]>\n"
|
||||
"Language: uk\n"
|
||||
@@ -28,8 +28,7 @@ msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr "[email protected]"
|
||||
|
||||
#: contents/ui/AlbumPage.qml:19 contents/ui/PlayerFooter.qml:192
|
||||
#: contents/ui/PlaylistPage.qml:19
|
||||
#: contents/ui/AlbumPage.qml:19 contents/ui/PlaylistPage.qml:19
|
||||
#, kde-format
|
||||
msgid "Play"
|
||||
msgstr "Відтворити"
|
||||
@@ -88,47 +87,43 @@ msgstr "Скасувати"
|
||||
#: contents/ui/LibraryPage.qml:15
|
||||
#, kde-format
|
||||
msgid "Favourites"
|
||||
msgstr ""
|
||||
msgstr "Улюблені"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:67
|
||||
#, kde-format
|
||||
msgid "Most played"
|
||||
msgstr ""
|
||||
msgstr "Часто слухали"
|
||||
|
||||
#: contents/ui/main.qml:94
|
||||
#: contents/ui/main.qml:93
|
||||
#, kde-format
|
||||
msgid "AudioTube"
|
||||
msgstr "AudioTube"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:124
|
||||
#: contents/ui/MaximizedPlayerPage.qml:86
|
||||
#, kde-format
|
||||
msgid "Now Playing"
|
||||
msgstr "Зараз відтворюємо"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:112
|
||||
#, kde-format
|
||||
msgid "Queue"
|
||||
msgstr "Додати до черги"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:224
|
||||
#, kde-format
|
||||
msgid "Remove Track"
|
||||
msgstr "Вилучити композицію"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:141
|
||||
#, kde-format
|
||||
msgid "Clear"
|
||||
msgstr "Спорожнити"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:146 contents/ui/PlaylistPage.qml:26
|
||||
#, kde-format
|
||||
msgid "Shuffle"
|
||||
msgstr "Перемішати"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:192
|
||||
#, kde-format
|
||||
msgid "Pause"
|
||||
msgstr "Призупинити"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:222
|
||||
#: contents/ui/MaximizedPlayerPage.qml:244
|
||||
#: contents/ui/MinimizedPlayerControls.qml:96
|
||||
#, kde-format
|
||||
msgid "No media playing"
|
||||
msgstr "Відтворення не відбувається"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:266
|
||||
#: contents/ui/PlaylistPage.qml:26
|
||||
#, kde-format
|
||||
msgid "Expand"
|
||||
msgstr "Розгорнути"
|
||||
msgid "Shuffle"
|
||||
msgstr "Перемішати"
|
||||
|
||||
#: contents/ui/SearchPage.qml:27
|
||||
#, kde-format
|
||||
@@ -165,5 +160,14 @@ msgstr "Шукати музику на сайті «Музика Youtube»"
|
||||
msgid "Search"
|
||||
msgstr "Пошук"
|
||||
|
||||
#~ msgid "Clear"
|
||||
#~ msgstr "Спорожнити"
|
||||
|
||||
#~ msgid "Pause"
|
||||
#~ msgstr "Призупинити"
|
||||
|
||||
#~ msgid "Expand"
|
||||
#~ msgstr "Розгорнути"
|
||||
|
||||
#~ msgid "Play only Audio"
|
||||
#~ msgstr "Відтворити лише звук"
|
||||
+20
-25
@@ -7,8 +7,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: audiotube\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2022-05-23 00:47+0000\n"
|
||||
"PO-Revision-Date: 2022-05-23 01:48+0000\n"
|
||||
"POT-Creation-Date: 2022-05-25 00:46+0000\n"
|
||||
"PO-Revision-Date: 2022-05-24 01:49+0000\n"
|
||||
"Last-Translator: transxx.py program <[email protected]>\n"
|
||||
"Language-Team: KDE Test Language <[email protected]>\n"
|
||||
"Language: x-test\n"
|
||||
@@ -27,8 +27,7 @@ msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr "xxYour emailsxx"
|
||||
|
||||
#: contents/ui/AlbumPage.qml:19 contents/ui/PlayerFooter.qml:192
|
||||
#: contents/ui/PlaylistPage.qml:19
|
||||
#: contents/ui/AlbumPage.qml:19 contents/ui/PlaylistPage.qml:19
|
||||
#, kde-format
|
||||
msgid "Play"
|
||||
msgstr "xxPlayxx"
|
||||
@@ -94,40 +93,36 @@ msgstr "xxFavouritesxx"
|
||||
msgid "Most played"
|
||||
msgstr "xxMost playedxx"
|
||||
|
||||
#: contents/ui/main.qml:94
|
||||
#: contents/ui/main.qml:93
|
||||
#, kde-format
|
||||
msgid "AudioTube"
|
||||
msgstr "xxAudioTubexx"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:124
|
||||
#: contents/ui/MaximizedPlayerPage.qml:86
|
||||
#, kde-format
|
||||
msgid "Now Playing"
|
||||
msgstr "xxNow Playingxx"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:112
|
||||
#, kde-format
|
||||
msgid "Queue"
|
||||
msgstr "xxQueuexx"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:224
|
||||
#, kde-format
|
||||
msgid "Remove Track"
|
||||
msgstr "xxRemove Trackxx"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:141
|
||||
#, kde-format
|
||||
msgid "Clear"
|
||||
msgstr "xxClearxx"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:146 contents/ui/PlaylistPage.qml:26
|
||||
#, kde-format
|
||||
msgid "Shuffle"
|
||||
msgstr "xxShufflexx"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:192
|
||||
#, kde-format
|
||||
msgid "Pause"
|
||||
msgstr "xxPausexx"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:222
|
||||
#: contents/ui/MaximizedPlayerPage.qml:244
|
||||
#: contents/ui/MinimizedPlayerControls.qml:96
|
||||
#, kde-format
|
||||
msgid "No media playing"
|
||||
msgstr "xxNo media playingxx"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:266
|
||||
#: contents/ui/PlaylistPage.qml:26
|
||||
#, kde-format
|
||||
msgid "Expand"
|
||||
msgstr "xxExpandxx"
|
||||
msgid "Shuffle"
|
||||
msgstr "xxShufflexx"
|
||||
|
||||
#: contents/ui/SearchPage.qml:27
|
||||
#, kde-format
|
||||
|
||||
+29
-24
@@ -2,7 +2,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: kdeorg\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2022-05-23 00:47+0000\n"
|
||||
"POT-Creation-Date: 2022-05-25 00:46+0000\n"
|
||||
"PO-Revision-Date: 2022-05-15 15:46\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Chinese Simplified\n"
|
||||
@@ -27,8 +27,7 @@ msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr "[email protected], [email protected]"
|
||||
|
||||
#: contents/ui/AlbumPage.qml:19 contents/ui/PlayerFooter.qml:192
|
||||
#: contents/ui/PlaylistPage.qml:19
|
||||
#: contents/ui/AlbumPage.qml:19 contents/ui/PlaylistPage.qml:19
|
||||
#, kde-format
|
||||
msgid "Play"
|
||||
msgstr "播放"
|
||||
@@ -92,40 +91,37 @@ msgstr ""
|
||||
msgid "Most played"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/main.qml:94
|
||||
#: contents/ui/main.qml:93
|
||||
#, kde-format
|
||||
msgid "AudioTube"
|
||||
msgstr "AudioTube"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:124
|
||||
#: contents/ui/MaximizedPlayerPage.qml:86
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "No media playing"
|
||||
msgid "Now Playing"
|
||||
msgstr "没有正在播放的媒体"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:112
|
||||
#, kde-format
|
||||
msgid "Queue"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:224
|
||||
#, kde-format
|
||||
msgid "Remove Track"
|
||||
msgstr "移除曲目"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:141
|
||||
#, kde-format
|
||||
msgid "Clear"
|
||||
msgstr "清除"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:146 contents/ui/PlaylistPage.qml:26
|
||||
#, kde-format
|
||||
msgid "Shuffle"
|
||||
msgstr "随机播放"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:192
|
||||
#, kde-format
|
||||
msgid "Pause"
|
||||
msgstr "暂停"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:222
|
||||
#: contents/ui/MaximizedPlayerPage.qml:244
|
||||
#: contents/ui/MinimizedPlayerControls.qml:96
|
||||
#, kde-format
|
||||
msgid "No media playing"
|
||||
msgstr "没有正在播放的媒体"
|
||||
|
||||
#: contents/ui/PlayerFooter.qml:266
|
||||
#: contents/ui/PlaylistPage.qml:26
|
||||
#, kde-format
|
||||
msgid "Expand"
|
||||
msgstr "展开"
|
||||
msgid "Shuffle"
|
||||
msgstr "随机播放"
|
||||
|
||||
#: contents/ui/SearchPage.qml:27
|
||||
#, kde-format
|
||||
@@ -161,3 +157,12 @@ msgstr "查找 YouTube Music 中的音乐"
|
||||
#, kde-format
|
||||
msgid "Search"
|
||||
msgstr "搜索"
|
||||
|
||||
#~ msgid "Clear"
|
||||
#~ msgstr "清除"
|
||||
|
||||
#~ msgid "Pause"
|
||||
#~ msgstr "暂停"
|
||||
|
||||
#~ msgid "Expand"
|
||||
#~ msgstr "展开"
|
||||
+3
-1
@@ -35,6 +35,8 @@ add_executable(audiotube
|
||||
abstractytmusicmodel.cpp
|
||||
multiiterableview.h
|
||||
library.cpp
|
||||
localplaylistmodel.cpp
|
||||
localplaylistsmodel.cpp
|
||||
resources.qrc
|
||||
)
|
||||
|
||||
@@ -52,6 +54,6 @@ target_link_libraries(audiotube
|
||||
asyncdatabase
|
||||
)
|
||||
|
||||
target_compile_definitions(audiotube PRIVATE -DQT_NO_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_QML_DEBUG)
|
||||
target_compile_definitions(audiotube PRIVATE -DQT_NO_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING)
|
||||
|
||||
install(TARGETS audiotube ${KDE_INSTALL_TARGETS_DEFAULT_ARGS})
|
||||
@@ -120,7 +120,7 @@ struct AsyncSqlDatabasePrivate {
|
||||
// Internal asynchronous database class
|
||||
QFuture<void> AsyncSqlDatabase::establishConnection(const DatabaseConfiguration &configuration)
|
||||
{
|
||||
return runAsync<void>([=, this] {
|
||||
return runAsync([=, this] {
|
||||
d->database = QSqlDatabase::addDatabase(configuration.type());
|
||||
if (configuration.databaseName()) {
|
||||
d->database.setDatabaseName(*configuration.databaseName());
|
||||
|
||||
@@ -98,7 +98,7 @@ public:
|
||||
|
||||
template <typename T, typename ...Args>
|
||||
auto getResults(const QString &sqlQuery, Args... args) -> QFuture<std::vector<T>> {
|
||||
return runAsync<std::vector<T>>([=, this] {
|
||||
return runAsync([=, this] {
|
||||
auto query = executeQuery(sqlQuery, args...);
|
||||
const auto rows = parseRows<typename T::ColumnTypes>(retrieveRows(query));
|
||||
|
||||
@@ -110,7 +110,7 @@ public:
|
||||
|
||||
template <typename T, typename ...Args>
|
||||
auto getResult(const QString &sqlQuery, Args... args) -> QFuture<std::optional<T>> {
|
||||
return runAsync<std::optional<T>>([=, this]() -> std::optional<T> {
|
||||
return runAsync([=, this]() -> std::optional<T> {
|
||||
auto query = executeQuery(sqlQuery, args...);
|
||||
if (const auto row = retrieveOptionalRow(query)) {
|
||||
return T::fromSql(parseRow<typename T::ColumnTypes>(*row));
|
||||
@@ -122,13 +122,13 @@ public:
|
||||
|
||||
template <typename ...Args>
|
||||
auto execute(const QString &sqlQuery, Args... args) -> QFuture<void> {
|
||||
return runAsync<void>([=, this] {
|
||||
return runAsync([=, this] {
|
||||
executeQuery(sqlQuery, args...);
|
||||
});
|
||||
}
|
||||
|
||||
auto runMigrations(const QString &migrationDirectory) -> QFuture<void> {
|
||||
return runAsync<void>([=, this] {
|
||||
return runAsync([=, this] {
|
||||
runDatabaseMigrations(db(), migrationDirectory);
|
||||
});
|
||||
}
|
||||
@@ -149,11 +149,12 @@ private:
|
||||
return runQuery(query);
|
||||
}
|
||||
|
||||
template <typename T, typename Functor>
|
||||
QFuture<T> runAsync(Functor func) {
|
||||
auto interface = std::make_shared<QFutureInterface<T>>();
|
||||
template <typename Functor>
|
||||
QFuture<std::invoke_result_t<Functor>> runAsync(Functor func) {
|
||||
using ReturnType = std::invoke_result_t<Functor>;
|
||||
auto interface = std::make_shared<QFutureInterface<ReturnType>>();
|
||||
QMetaObject::invokeMethod(this, [interface, func] {
|
||||
if constexpr (!std::is_same_v<T, void>) {
|
||||
if constexpr (!std::is_same_v<ReturnType, void>) {
|
||||
auto result = func();
|
||||
interface->reportResult(result);
|
||||
} else {
|
||||
|
||||
+12
-12
@@ -23,8 +23,8 @@ namespace py = pybind11;
|
||||
#include <type_traits>
|
||||
#include <memory>
|
||||
|
||||
template <typename R, typename T, typename OP>
|
||||
std::optional<R> map_optional(const std::optional<T> &optional, OP op) {
|
||||
template <typename T, typename OP>
|
||||
std::optional<std::invoke_result_t<OP, T>> mapOptional(const std::optional<T> &optional, OP op) {
|
||||
if (optional.has_value()) {
|
||||
if constexpr (std::is_member_function_pointer<OP>::value) {
|
||||
return (&optional.value()->*op)();
|
||||
@@ -61,7 +61,7 @@ AsyncYTMusic::AsyncYTMusic(QObject *parent)
|
||||
//
|
||||
QFuture<std::vector<search::SearchResultItem>> AsyncYTMusic::search(const QString &query)
|
||||
{
|
||||
return invokeAndCatchOnThread<std::vector<search::SearchResultItem>>([=, this]() {
|
||||
return invokeAndCatchOnThread([=, this]() {
|
||||
return m_ytm->search(query.toStdString());
|
||||
});
|
||||
}
|
||||
@@ -71,7 +71,7 @@ QFuture<std::vector<search::SearchResultItem>> AsyncYTMusic::search(const QStrin
|
||||
//
|
||||
QFuture<artist::Artist> AsyncYTMusic::fetchArtist(const QString &channelId)
|
||||
{
|
||||
return invokeAndCatchOnThread<artist::Artist>([=, this]() {
|
||||
return invokeAndCatchOnThread([=, this]() {
|
||||
return m_ytm->get_artist(channelId.toStdString());
|
||||
});
|
||||
}
|
||||
@@ -81,7 +81,7 @@ QFuture<artist::Artist> AsyncYTMusic::fetchArtist(const QString &channelId)
|
||||
//
|
||||
QFuture<album::Album> AsyncYTMusic::fetchAlbum(const QString &browseId)
|
||||
{
|
||||
return invokeAndCatchOnThread<album::Album>([=, this]() {
|
||||
return invokeAndCatchOnThread([=, this]() {
|
||||
return m_ytm->get_album(browseId.toStdString());
|
||||
});
|
||||
}
|
||||
@@ -91,7 +91,7 @@ QFuture<album::Album> AsyncYTMusic::fetchAlbum(const QString &browseId)
|
||||
//
|
||||
QFuture<std::optional<song::Song>> AsyncYTMusic::fetchSong(const QString &videoId)
|
||||
{
|
||||
return invokeAndCatchOnThread<std::optional<song::Song>>([=, this]() {
|
||||
return invokeAndCatchOnThread([=, this]() {
|
||||
return m_ytm->get_song(videoId.toStdString());
|
||||
});
|
||||
}
|
||||
@@ -100,7 +100,7 @@ QFuture<std::optional<song::Song>> AsyncYTMusic::fetchSong(const QString &videoI
|
||||
// fetchPlaylist
|
||||
//
|
||||
QFuture<playlist::Playlist> AsyncYTMusic::fetchPlaylist(const QString &playlistId) {
|
||||
return invokeAndCatchOnThread<playlist::Playlist>([=, this]() {
|
||||
return invokeAndCatchOnThread([=, this]() {
|
||||
return m_ytm->get_playlist(playlistId.toStdString());
|
||||
});
|
||||
}
|
||||
@@ -110,7 +110,7 @@ QFuture<playlist::Playlist> AsyncYTMusic::fetchPlaylist(const QString &playlistI
|
||||
//
|
||||
QFuture<std::vector<artist::Artist::Album>> AsyncYTMusic::fetchArtistAlbums(const QString &channelId, const QString ¶ms)
|
||||
{
|
||||
return invokeAndCatchOnThread<std::vector<artist::Artist::Album>>([=, this]() {
|
||||
return invokeAndCatchOnThread([=, this]() {
|
||||
return m_ytm->get_artist_albums(channelId.toStdString(), params.toStdString());
|
||||
});
|
||||
}
|
||||
@@ -120,7 +120,7 @@ QFuture<std::vector<artist::Artist::Album>> AsyncYTMusic::fetchArtistAlbums(cons
|
||||
//
|
||||
QFuture<video_info::VideoInfo> AsyncYTMusic::extractVideoInfo(const QString &videoId)
|
||||
{
|
||||
return invokeAndCatchOnThread<video_info::VideoInfo>([=, this]() {
|
||||
return invokeAndCatchOnThread([=, this]() {
|
||||
return m_ytm->extract_video_info(videoId.toStdString());
|
||||
});
|
||||
}
|
||||
@@ -130,10 +130,10 @@ QFuture<video_info::VideoInfo> AsyncYTMusic::extractVideoInfo(const QString &vid
|
||||
//
|
||||
QFuture<watch::Playlist> AsyncYTMusic::fetchWatchPlaylist(const std::optional<QString> &videoId, const std::optional<QString> &playlistId)
|
||||
{
|
||||
return invokeAndCatchOnThread<watch::Playlist>([=, this]() {
|
||||
return invokeAndCatchOnThread([=, this]() {
|
||||
return m_ytm->get_watch_playlist(
|
||||
map_optional<std::string>(videoId, &QString::toStdString),
|
||||
map_optional<std::string>(playlistId, &QString::toStdString)
|
||||
mapOptional(videoId, &QString::toStdString),
|
||||
mapOptional(playlistId, &QString::toStdString)
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
+7
-5
@@ -75,12 +75,13 @@ void connectFuture(const QFuture<T> &future, QObjectDerivedType *self, const Fun
|
||||
/// Applies a function to a the contained value of a QFuture once it finishes.
|
||||
/// @returns a QFuture that finishes once the future given as first argument finished
|
||||
///
|
||||
template <typename T, typename U, typename Func>
|
||||
QFuture<U> mapFuture(const QFuture<T> &future, Func mapFunction) {
|
||||
template <typename T, typename Func>
|
||||
QFuture<std::invoke_result_t<Func, T>> mapFuture(const QFuture<T> &future, Func mapFunction) {
|
||||
using ReturnType = std::invoke_result_t<Func, T>;
|
||||
auto watcher = std::make_shared<QFutureWatcher<T>>();
|
||||
watcher->setFuture(future);
|
||||
|
||||
auto interface = std::make_shared<QFutureInterface<U>>();
|
||||
auto interface = std::make_shared<QFutureInterface<ReturnType>>();
|
||||
QObject::connect(watcher.get(), &QFutureWatcherBase::finished, watcher.get(), [interface, watcher, mapFunction] {
|
||||
auto result = watcher->result();
|
||||
auto mapped = mapFunction(std::move(result));
|
||||
@@ -123,8 +124,9 @@ protected:
|
||||
|
||||
private:
|
||||
/// Invokes the given function on the thread of the YTMusic object, and handles exceptions that occur while invoking it.
|
||||
template <typename ReturnType>
|
||||
QFuture<ReturnType> invokeAndCatchOnThread(const std::function<ReturnType()> &fun) {
|
||||
template <typename Func>
|
||||
QFuture<std::invoke_result_t<Func>> invokeAndCatchOnThread(Func fun) {
|
||||
using ReturnType = std::invoke_result_t<Func>;
|
||||
auto interface = std::make_shared<QFutureInterface<ReturnType>>();
|
||||
QMetaObject::invokeMethod(this, [=, this]() {
|
||||
try {
|
||||
|
||||
@@ -21,6 +21,13 @@ Kirigami.ScrollablePage {
|
||||
applicationWindow().playPlaylist(albumModel.playlistId)
|
||||
}
|
||||
}
|
||||
right: Kirigami.Action {
|
||||
icon.name: "media-playlist-shuffle"
|
||||
text: i18n("Shuffle")
|
||||
onTriggered: {
|
||||
applicationWindow().playShufflePlaylist(albumModel.playlistId)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ListView {
|
||||
|
||||
@@ -5,25 +5,55 @@
|
||||
import QtQuick 2.1
|
||||
import QtQuick.Controls 2.12 as Controls
|
||||
import QtQuick.Layouts 1.3
|
||||
import org.kde.kirigami 2.14 as Kirigami
|
||||
import org.kde.kirigami 2.19 as Kirigami
|
||||
|
||||
import org.kde.ytmusic 1.0
|
||||
|
||||
Kirigami.ScrollablePage {
|
||||
|
||||
globalToolBarStyle: Kirigami.ApplicationHeaderStyle.None
|
||||
|
||||
// so that there is still a separator, since the header style is none
|
||||
Kirigami.Separator {
|
||||
anchors.top: parent.top
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
}
|
||||
|
||||
ColumnLayout {
|
||||
Kirigami.Heading {
|
||||
text: i18n("Favourites")
|
||||
RowLayout {
|
||||
Layout.fillWidth: true
|
||||
Kirigami.Heading {
|
||||
text: i18n("Favourites")
|
||||
Layout.alignment: Qt.AlignLeft
|
||||
}
|
||||
|
||||
// Spacer
|
||||
Item {
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
|
||||
Controls.ToolButton {
|
||||
text: i18n("Show All")
|
||||
Layout.alignment: Qt.AlignRight
|
||||
icon.name: "arrow-right"
|
||||
onClicked: pageStack.layers.push("qrc:/PlaybackHistory.qml", {
|
||||
"dataModel": Library.favourites,
|
||||
"title": i18n("Favourite Songs")
|
||||
})
|
||||
}
|
||||
}
|
||||
Controls.ScrollView {
|
||||
Layout.fillWidth: true
|
||||
RowLayout {
|
||||
spacing: 20
|
||||
Repeater {
|
||||
Layout.fillWidth: true
|
||||
model: Library.favourites
|
||||
delegate: ColumnLayout {
|
||||
id: delegateItem
|
||||
required property string title
|
||||
required property string artist
|
||||
required property string artists
|
||||
required property string videoId
|
||||
|
||||
Layout.fillWidth: false
|
||||
@@ -63,19 +93,40 @@ Kirigami.ScrollablePage {
|
||||
}
|
||||
}
|
||||
}
|
||||
Kirigami.Heading {
|
||||
text: i18n("Most played")
|
||||
RowLayout {
|
||||
Layout.fillWidth: true
|
||||
Kirigami.Heading {
|
||||
text: i18n("Most played")
|
||||
Layout.alignment: Qt.AlignLeft
|
||||
}
|
||||
|
||||
// Spacer
|
||||
Item {
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
|
||||
Controls.ToolButton {
|
||||
text: i18n("Show All")
|
||||
Layout.alignment: Qt.AlignRight
|
||||
icon.name: "arrow-right"
|
||||
onClicked: pageStack.layers.push("qrc:/PlaybackHistory.qml", {
|
||||
"dataModel": Library.playbackHistory,
|
||||
"title": i18n("Played Songs")
|
||||
})
|
||||
}
|
||||
}
|
||||
Controls.ScrollView {
|
||||
Layout.fillWidth: true
|
||||
RowLayout {
|
||||
spacing: 20
|
||||
|
||||
Repeater {
|
||||
Layout.fillWidth: true
|
||||
model: Library.mostPlayed
|
||||
delegate: ColumnLayout {
|
||||
id: mpdelegateItem
|
||||
required property string title
|
||||
required property string artist
|
||||
required property string artists
|
||||
required property string videoId
|
||||
|
||||
Layout.fillWidth: false
|
||||
@@ -107,5 +158,94 @@ Kirigami.ScrollablePage {
|
||||
}
|
||||
}
|
||||
}
|
||||
RowLayout {
|
||||
Layout.fillWidth: true
|
||||
Kirigami.Heading {
|
||||
text: i18n("Playlists")
|
||||
Layout.alignment: Qt.AlignLeft
|
||||
}
|
||||
|
||||
// Spacer
|
||||
Item {
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
|
||||
Controls.ToolButton {
|
||||
text: i18n("Add")
|
||||
Layout.alignment: Qt.AlignRight
|
||||
icon.name: "list-add"
|
||||
onClicked: addPlaylistDialog.open()
|
||||
}
|
||||
Controls.ToolButton {
|
||||
text: i18n("Show All")
|
||||
Layout.alignment: Qt.AlignRight
|
||||
icon.name: "arrow-right"
|
||||
}
|
||||
}
|
||||
|
||||
Kirigami.PromptDialog {
|
||||
id: addPlaylistDialog
|
||||
title: i18n("Add playlist")
|
||||
standardButtons: Kirigami.Dialog.Ok | Kirigami.Dialog.Cancel
|
||||
|
||||
mainItem: Kirigami.FormLayout {
|
||||
Controls.TextField {
|
||||
id: titleField
|
||||
|
||||
Kirigami.FormData.label: i18n("Playlist Title")
|
||||
}
|
||||
Controls.TextField {
|
||||
id: descriptionField
|
||||
|
||||
Kirigami.FormData.label: i18n("Playlist Description")
|
||||
}
|
||||
}
|
||||
|
||||
onAccepted: Library.addPlaylist(titleField.text, descriptionField.text)
|
||||
}
|
||||
|
||||
Controls.ScrollView {
|
||||
Layout.fillWidth: true
|
||||
RowLayout {
|
||||
spacing: 20
|
||||
|
||||
Repeater {
|
||||
Layout.fillWidth: true
|
||||
model: LocalPlaylistsModel {
|
||||
}
|
||||
|
||||
delegate: ColumnLayout {
|
||||
id: playlistDelegate
|
||||
required property string playlistId
|
||||
required property string title
|
||||
required property string description
|
||||
required property date createdOn
|
||||
|
||||
Layout.fillWidth: false
|
||||
Layout.maximumWidth: 200
|
||||
Kirigami.Card {
|
||||
Layout.preferredHeight: 200
|
||||
|
||||
header: Image {
|
||||
sourceSize: "200x200"
|
||||
source: ""
|
||||
fillMode: Image.PreserveAspectCrop
|
||||
asynchronous: true
|
||||
}
|
||||
|
||||
onClicked: pageStack.layers.push("qrc:/LocalPlaylistPage.qml", {
|
||||
"playlistId": playlistDelegate.playlistId,
|
||||
"title": playlistDelegate.title
|
||||
})
|
||||
}
|
||||
Controls.Label {
|
||||
Layout.maximumWidth: 200
|
||||
elide: Qt.ElideRight
|
||||
text: playlistDelegate.title
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
import QtQuick 2.15
|
||||
|
||||
import org.kde.kirigami 2.19 as Kirigami
|
||||
|
||||
import org.kde.ytmusic 1.0
|
||||
|
||||
Kirigami.ScrollablePage {
|
||||
property alias playlistId: playlistModel.playlistId
|
||||
|
||||
ListView {
|
||||
Kirigami.PlaceholderMessage {
|
||||
text: i18n("This playlist is still empty")
|
||||
anchors.centerIn: parent
|
||||
visible: parent.count < 1
|
||||
}
|
||||
|
||||
model: LocalPlaylistModel {
|
||||
id: playlistModel
|
||||
}
|
||||
|
||||
delegate: Kirigami.BasicListItem {
|
||||
required property string title
|
||||
|
||||
text: title
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -155,7 +155,7 @@ Item {
|
||||
Item {
|
||||
height: swipeView.width
|
||||
width: swipeView.height
|
||||
|
||||
|
||||
Image {
|
||||
anchors.centerIn: parent
|
||||
width: swipeView.specWidth
|
||||
@@ -347,6 +347,48 @@ Item {
|
||||
Kirigami.Theme.colorSet: Kirigami.Theme.Complementary
|
||||
Kirigami.Theme.inherit: false
|
||||
}
|
||||
|
||||
Kirigami.PromptDialog {
|
||||
id: playlistsDialog
|
||||
|
||||
property string videoId
|
||||
|
||||
mainItem: ListView {
|
||||
implicitHeight: 200
|
||||
model: LocalPlaylistsModel {
|
||||
}
|
||||
|
||||
delegate: Kirigami.BasicListItem {
|
||||
required property string title
|
||||
required property int playlistId
|
||||
|
||||
text: title
|
||||
|
||||
onClicked: Library.addPlaylistEntry(playlistId, playlistsDialog.videoId, info.title)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ToolButton {
|
||||
id: addToPlaylistButton
|
||||
Layout.alignment: Qt.AlignRight | Qt.AlignVCenter
|
||||
Layout.preferredHeight: Kirigami.Units.gridUnit * 2.5
|
||||
Layout.maximumWidth: height
|
||||
Layout.preferredWidth: height
|
||||
|
||||
onClicked: {
|
||||
playlistsDialog.videoId = info.videoId
|
||||
playlistsDialog.open()
|
||||
}
|
||||
|
||||
icon.name: "media-playlist-append"
|
||||
icon.width: Kirigami.Units.gridUnit * 1.5
|
||||
icon.height: Kirigami.Units.gridUnit * 1.5
|
||||
icon.color: "white"
|
||||
|
||||
Kirigami.Theme.colorSet: Kirigami.Theme.Complementary
|
||||
Kirigami.Theme.inherit: false
|
||||
}
|
||||
|
||||
ToolButton {
|
||||
id: skipBackwardButton
|
||||
|
||||
@@ -65,6 +65,8 @@ Item {
|
||||
Image {
|
||||
id: mainIcon
|
||||
anchors.fill: parent
|
||||
|
||||
visible: !loadingIndicator.visible
|
||||
asynchronous: true
|
||||
mipmap: true
|
||||
|
||||
@@ -74,6 +76,14 @@ Item {
|
||||
sourceSize.height: 512
|
||||
fillMode: Image.PreserveAspectCrop
|
||||
}
|
||||
|
||||
BusyIndicator {
|
||||
id: loadingIndicator
|
||||
anchors.centerIn: parent
|
||||
visible: UserPlaylistModel.loading
|
||||
Kirigami.Theme.colorSet: Kirigami.Theme.Complementary
|
||||
Kirigami.Theme.inherit: false
|
||||
}
|
||||
}
|
||||
|
||||
// track information
|
||||
|
||||
@@ -0,0 +1,84 @@
|
||||
// SPDX-FileCopyrightText: 2022 Jonah Brüchert <[email protected]>
|
||||
//
|
||||
// SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
|
||||
|
||||
import QtQuick 2.15
|
||||
import QtQuick.Layouts 1.15
|
||||
import QtQuick.Controls 2.15 as Controls
|
||||
|
||||
import org.kde.kirigami 2.15 as Kirigami
|
||||
|
||||
import org.kde.ytmusic 1.0
|
||||
|
||||
Kirigami.ScrollablePage {
|
||||
id: playbackHistoryPage
|
||||
title: i18n("Unknown list of songs")
|
||||
|
||||
property QtObject dataModel
|
||||
|
||||
ListView {
|
||||
id: listView
|
||||
reuseItems: true
|
||||
|
||||
Kirigami.PlaceholderMessage {
|
||||
visible: listView.count < 1
|
||||
text: i18n("No songs here yet")
|
||||
anchors.centerIn: parent
|
||||
}
|
||||
|
||||
model: playbackHistoryPage.dataModel
|
||||
|
||||
delegate: Kirigami.SwipeListItem {
|
||||
id: delegateItem
|
||||
required property string title
|
||||
required property string videoId
|
||||
required property string artists
|
||||
|
||||
onClicked: {
|
||||
play(videoId)
|
||||
}
|
||||
|
||||
RowLayout {
|
||||
ThumbnailSource {
|
||||
id: thumbnailSource
|
||||
|
||||
videoId: delegateItem.videoId
|
||||
}
|
||||
|
||||
Item {
|
||||
width: Kirigami.Units.gridUnit * 3
|
||||
height: Kirigami.Units.gridUnit * 3
|
||||
|
||||
Image {
|
||||
sourceSize: "200x200"
|
||||
source: thumbnailSource.cachedPath
|
||||
fillMode: Image.PreserveAspectCrop
|
||||
|
||||
width: Kirigami.Units.gridUnit * 3
|
||||
height: Kirigami.Units.gridUnit * 3
|
||||
|
||||
Layout.alignment: Qt.AlignLeft
|
||||
}
|
||||
}
|
||||
|
||||
Controls.Label {
|
||||
text: delegateItem.title
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
}
|
||||
|
||||
actions: [
|
||||
Kirigami.Action {
|
||||
icon.name: "go-next"
|
||||
text: i18n("Play Next")
|
||||
onTriggered: UserPlaylistModel.playNext(delegateItem.videoId, delegateItem.title, [])
|
||||
},
|
||||
Kirigami.Action {
|
||||
icon.name: "media-playlist-append"
|
||||
text: i18n("Add to Playlist")
|
||||
onTriggered: UserPlaylistModel.append(delegateItem.videoId, delegateItem.title, [])
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
+110
-58
@@ -12,7 +12,10 @@ import org.kde.ytmusic 1.0
|
||||
Kirigami.ApplicationWindow {
|
||||
id: root
|
||||
|
||||
property alias searchField: searchField
|
||||
property alias searchField: searchLoader.item // TODO
|
||||
|
||||
property bool wideScreen: width >= 600
|
||||
property bool showSearch: false // only applicable if not widescreen
|
||||
|
||||
header: Controls.Control {
|
||||
padding: Kirigami.Units.largeSpacing
|
||||
@@ -25,67 +28,56 @@ Kirigami.ApplicationWindow {
|
||||
Kirigami.Theme.colorSet: Kirigami.Theme.Header
|
||||
color: Kirigami.Theme.backgroundColor
|
||||
}
|
||||
contentItem: RowLayout{
|
||||
Item {
|
||||
Layout.fillWidth: true
|
||||
|
||||
contentItem: RowLayout {
|
||||
Controls.ToolButton {
|
||||
id: searchBack
|
||||
Layout.alignment: Qt.AlignLeft
|
||||
visible:
|
||||
(!root.wideScreen && root.showSearch && root.searchField.text === "")
|
||||
|| pageStack.layers.depth > 1
|
||||
text: i18n("Back")
|
||||
icon.name: "go-previous-view"
|
||||
display: Controls.ToolButton.IconOnly
|
||||
onClicked: if (root.showSearch)
|
||||
root.showSearch = false
|
||||
else
|
||||
pageStack.layers.pop()
|
||||
}
|
||||
Kirigami.SearchField {
|
||||
id: searchField
|
||||
delaySearch: true
|
||||
selectByMouse: true
|
||||
|
||||
Kirigami.Heading {
|
||||
Layout.alignment: Qt.AlignLeft
|
||||
Layout.leftMargin: Kirigami.Units.largeSpacing
|
||||
level: 1
|
||||
text: "AudioTube"
|
||||
visible: !root.wideScreen && !root.showSearch
|
||||
}
|
||||
|
||||
// spacer
|
||||
Item {
|
||||
Layout.fillWidth: !root.wideScreen
|
||||
}
|
||||
|
||||
Loader {
|
||||
id: searchLoader
|
||||
visible: root.wideScreen || root.showSearch
|
||||
Layout.alignment: Qt.AlignHCenter
|
||||
Layout.fillWidth: true
|
||||
Layout.maximumWidth: 400
|
||||
onPressed: {
|
||||
popup.open()
|
||||
}
|
||||
|
||||
Controls.Popup {
|
||||
id: popup
|
||||
x: searchField.y
|
||||
y: searchField.y + searchField.height
|
||||
visible: true
|
||||
width: searchField.width
|
||||
height: completionList
|
||||
? Math.min(completionList.count * Kirigami.Units.gridUnit * 2 + Kirigami.Units.gridUnit * 2, Kirigami.Units.gridUnit * 20)
|
||||
: Kirigami.Units.gridUnit * 20
|
||||
|
||||
contentItem: Controls.ScrollView {
|
||||
Controls.ScrollBar.horizontal.policy: Controls.ScrollBar.AlwaysOff
|
||||
ListView {
|
||||
id: completionList
|
||||
model: Library.searches
|
||||
delegate: Controls.ItemDelegate {
|
||||
Kirigami.Theme.colorSet: Kirigami.Theme.Window
|
||||
Kirigami.Theme.inherit: false
|
||||
id: completionDelegate
|
||||
width: parent.width
|
||||
height: Kirigami.Units.gridUnit * 2
|
||||
text: model.display
|
||||
onClicked: {
|
||||
searchField.text = model.display
|
||||
searchField.accepted()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
onAccepted: {
|
||||
pageStack.clear()
|
||||
|
||||
if (text) {
|
||||
Library.addSearch(text)
|
||||
pageStack.push("qrc:/SearchPage.qml", {
|
||||
"searchQuery": text})
|
||||
} else {
|
||||
pageStack.replace("qrc:/LibraryPage.qml")
|
||||
}
|
||||
|
||||
popup.close()
|
||||
}
|
||||
sourceComponent: searchFieldComponent
|
||||
}
|
||||
Item {
|
||||
Layout.fillWidth: true
|
||||
|
||||
Controls.ToolButton {
|
||||
Layout.alignment: Qt.AlignRight
|
||||
visible: !root.wideScreen && !root.showSearch
|
||||
text: i18n("Search")
|
||||
icon.name: "search"
|
||||
display: Controls.ToolButton.TextBesideIcon
|
||||
onClicked: {
|
||||
root.showSearch = true
|
||||
root.searchField.forceActiveFocus();
|
||||
root.searchField.popup.open();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -120,6 +112,66 @@ Kirigami.ApplicationWindow {
|
||||
}
|
||||
}
|
||||
|
||||
Component {
|
||||
id: searchFieldComponent
|
||||
|
||||
Kirigami.SearchField {
|
||||
id: searchField
|
||||
delaySearch: true
|
||||
selectByMouse: true
|
||||
onPressed: {
|
||||
popup.open()
|
||||
}
|
||||
|
||||
property alias popup: popup
|
||||
|
||||
Controls.Popup {
|
||||
id: popup
|
||||
x: searchField.y
|
||||
y: searchField.y + searchField.height
|
||||
width: searchField.width
|
||||
height: completionList
|
||||
? Math.min(completionList.count * Kirigami.Units.gridUnit * 2 + Kirigami.Units.gridUnit * 2, Kirigami.Units.gridUnit * 20)
|
||||
: Kirigami.Units.gridUnit * 20
|
||||
|
||||
contentItem: Controls.ScrollView {
|
||||
Controls.ScrollBar.horizontal.policy: Controls.ScrollBar.AlwaysOff
|
||||
ListView {
|
||||
id: completionList
|
||||
model: Library.searches
|
||||
delegate: Controls.ItemDelegate {
|
||||
Kirigami.Theme.colorSet: Kirigami.Theme.Window
|
||||
Kirigami.Theme.inherit: false
|
||||
id: completionDelegate
|
||||
width: parent.width
|
||||
height: Kirigami.Units.gridUnit * 2
|
||||
text: model.display
|
||||
onClicked: {
|
||||
searchField.text = model.display
|
||||
searchField.accepted()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
onAccepted: {
|
||||
pageStack.clear()
|
||||
pageStack.layers.clear()
|
||||
|
||||
if (text) {
|
||||
Library.addSearch(text)
|
||||
pageStack.push("qrc:/SearchPage.qml", {
|
||||
"searchQuery": text})
|
||||
} else {
|
||||
pageStack.replace("qrc:/LibraryPage.qml")
|
||||
}
|
||||
|
||||
popup.close()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
pageStack.anchors.bottomMargin: playerFooter.minimizedPlayerHeight + 1
|
||||
|
||||
// media player
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
|
||||
int main() {
|
||||
const auto ytm = YTMusic();
|
||||
const auto results = ytm.search("Another one bites the dust");
|
||||
const auto results = ytm.search("Leoniden");
|
||||
|
||||
std::cout << "Found " << results.size() << " results." << std::endl;
|
||||
|
||||
|
||||
+16
-2
@@ -89,6 +89,20 @@ void Library::addPlaybackHistoryItem(const QString &videoId, const QString &titl
|
||||
});
|
||||
}
|
||||
|
||||
void Library::addPlaylist(const QString &title, const QString &description)
|
||||
{
|
||||
connectFuture(m_database->execute("insert into playlists (title, description) values (?, ?)", title, description), this, &Library::playlistsChanged);
|
||||
}
|
||||
|
||||
void Library::addPlaylistEntry(qint64 playlistId, const QString &videoId, const QString &title)
|
||||
{
|
||||
connectFuture(addSong(videoId, title), this, [=, this] {
|
||||
connectFuture(m_database->execute("insert into playlist_entries (playlist_id, video_id) values (?, ?)", playlistId, videoId), this, [=, this] {
|
||||
Q_EMIT playlistEntriesChanged(playlistId);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
PlaybackHistoryModel *Library::mostPlayed()
|
||||
{
|
||||
auto future = m_database->getResults<PlayedSong>("select * from played_songs natural join songs order by plays desc limit 10");
|
||||
@@ -148,7 +162,7 @@ QHash<int, QByteArray> PlaybackHistoryModel::roleNames() const {
|
||||
return {
|
||||
{Roles::VideoId, "videoId"},
|
||||
{Roles::Title, "title"},
|
||||
{Roles::Artist, "artist"},
|
||||
{Roles::Artist, "artists"},
|
||||
{Roles::Plays, "plays"}
|
||||
};
|
||||
}
|
||||
@@ -186,7 +200,7 @@ QHash<int, QByteArray> FavouritesModel::roleNames() const {
|
||||
return {
|
||||
{Roles::VideoId, "videoId"},
|
||||
{Roles::Title, "title"},
|
||||
{Roles::Artist, "artist"}
|
||||
{Roles::Artist, "artists"}
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -126,6 +126,11 @@ public:
|
||||
Q_SIGNAL void playbackHistoryChanged();
|
||||
Q_INVOKABLE void addPlaybackHistoryItem(const QString &videoId, const QString &title);
|
||||
|
||||
Q_SIGNAL void playlistsChanged();
|
||||
Q_INVOKABLE void addPlaylist(const QString &title, const QString &description);
|
||||
Q_INVOKABLE void addPlaylistEntry(qint64 playlistId, const QString &videoId, const QString &title);
|
||||
Q_SIGNAL void playlistEntriesChanged(quint64 playlistId);
|
||||
|
||||
PlaybackHistoryModel *mostPlayed();
|
||||
|
||||
QNetworkAccessManager &nam();
|
||||
|
||||
@@ -0,0 +1,67 @@
|
||||
// SPDX-FileCopyrightText: 2022 Jonah Brüchert <[email protected]>
|
||||
//
|
||||
// SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
|
||||
|
||||
#include "localplaylistmodel.h"
|
||||
|
||||
#include "library.h"
|
||||
|
||||
LocalPlaylistModel::LocalPlaylistModel(QObject *parent)
|
||||
: QAbstractListModel(parent)
|
||||
{
|
||||
connect(this, &LocalPlaylistModel::playlistIdChanged,
|
||||
this, &LocalPlaylistModel::refreshModel);
|
||||
connect(&Library::instance(), &Library::playlistEntriesChanged,
|
||||
this, &LocalPlaylistModel::refreshModel);
|
||||
}
|
||||
|
||||
int LocalPlaylistModel::rowCount(const QModelIndex &index) const
|
||||
{
|
||||
return index.isValid() ? 0 : m_entries.size();
|
||||
}
|
||||
|
||||
QHash<int, QByteArray> LocalPlaylistModel::roleNames() const
|
||||
{
|
||||
return {
|
||||
{ Roles::VideoId, "videoId" },
|
||||
{ Roles::Title, "title" }
|
||||
};
|
||||
}
|
||||
|
||||
QVariant LocalPlaylistModel::data(const QModelIndex &index, int role) const
|
||||
{
|
||||
switch (role) {
|
||||
case Roles::Title:
|
||||
return m_entries[index.row()].title;
|
||||
case Roles::VideoId:
|
||||
return m_entries[index.row()].videoId;
|
||||
}
|
||||
|
||||
Q_UNREACHABLE();
|
||||
}
|
||||
|
||||
QString LocalPlaylistModel::playlistId() const
|
||||
{
|
||||
return m_playlistId;
|
||||
}
|
||||
|
||||
void LocalPlaylistModel::setPlaylistId(const QString &playlistId)
|
||||
{
|
||||
m_playlistId = playlistId;
|
||||
Q_EMIT playlistIdChanged();
|
||||
}
|
||||
|
||||
void LocalPlaylistModel::refreshModel()
|
||||
{
|
||||
auto future = Library::instance()
|
||||
.database()
|
||||
.getResults<PlaylistEntry>(
|
||||
"select video_id, title from "
|
||||
"playlist_entries natural join songs where playlist_id = ?", m_playlistId);
|
||||
|
||||
connectFuture(future, this, [this](auto entries) {
|
||||
beginResetModel();
|
||||
m_entries = entries;
|
||||
endResetModel();
|
||||
});
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
// SPDX-FileCopyrightText: 2022 Jonah Brüchert <[email protected]>
|
||||
//
|
||||
// SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <QAbstractListModel>
|
||||
|
||||
#include <vector>
|
||||
|
||||
struct PlaylistEntry {
|
||||
using ColumnTypes = std::tuple<QString, QString>;
|
||||
|
||||
static PlaylistEntry fromSql(ColumnTypes tuple) {
|
||||
auto [videoId, title] = tuple;
|
||||
return PlaylistEntry { videoId, title };
|
||||
}
|
||||
|
||||
QString videoId;
|
||||
QString title;
|
||||
};
|
||||
|
||||
class LocalPlaylistModel : public QAbstractListModel
|
||||
{
|
||||
Q_OBJECT
|
||||
Q_PROPERTY(QString playlistId READ playlistId WRITE setPlaylistId NOTIFY playlistIdChanged)
|
||||
|
||||
enum Roles {
|
||||
VideoId = Qt::UserRole + 1,
|
||||
Title
|
||||
};
|
||||
|
||||
public:
|
||||
LocalPlaylistModel(QObject *parent = nullptr);
|
||||
int rowCount(const QModelIndex &index) const override;
|
||||
QHash<int, QByteArray> roleNames() const override;
|
||||
QVariant data(const QModelIndex &index, int role) const override;
|
||||
|
||||
QString playlistId() const;
|
||||
void setPlaylistId(const QString &playlistId);
|
||||
Q_SIGNAL void playlistIdChanged();
|
||||
|
||||
void refreshModel();
|
||||
|
||||
private:
|
||||
QString m_playlistId;
|
||||
std::vector<PlaylistEntry> m_entries;
|
||||
};
|
||||
|
||||
@@ -0,0 +1,55 @@
|
||||
// SPDX-FileCopyrightText: 2022 Jonah Brüchert <[email protected]>
|
||||
//
|
||||
// SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
|
||||
|
||||
#include "localplaylistsmodel.h"
|
||||
|
||||
#include "library.h"
|
||||
|
||||
LocalPlaylistsModel::LocalPlaylistsModel(QObject *parent)
|
||||
: QAbstractListModel(parent)
|
||||
{
|
||||
connect(&Library::instance(), &Library::playlistsChanged,
|
||||
this, &LocalPlaylistsModel::refreshModel);
|
||||
refreshModel();
|
||||
}
|
||||
|
||||
int LocalPlaylistsModel::rowCount(const QModelIndex &index) const
|
||||
{
|
||||
return index.isValid() ? 0 : m_playlists.size();
|
||||
}
|
||||
|
||||
QHash<int, QByteArray> LocalPlaylistsModel::roleNames() const
|
||||
{
|
||||
return {
|
||||
{Roles::PlaylistId, "playlistId"},
|
||||
{Roles::Title, "title"},
|
||||
{Roles::Description, "description"},
|
||||
{Roles::CreatedOn, "createdOn"}
|
||||
};
|
||||
}
|
||||
|
||||
QVariant LocalPlaylistsModel::data(const QModelIndex &index, int role) const
|
||||
{
|
||||
switch (role) {
|
||||
case Roles::PlaylistId:
|
||||
return m_playlists[index.row()].playlistId;
|
||||
case Roles::Title:
|
||||
return m_playlists[index.row()].title;
|
||||
case Roles::Description:
|
||||
return m_playlists[index.row()].description;
|
||||
case Roles::CreatedOn:
|
||||
return m_playlists[index.row()].createdOn;
|
||||
}
|
||||
|
||||
Q_UNREACHABLE();
|
||||
}
|
||||
|
||||
void LocalPlaylistsModel::refreshModel()
|
||||
{
|
||||
connectFuture(Library::instance().database().getResults<Playlist>("select * from playlists"), this, [this](auto playlists) {
|
||||
beginResetModel();
|
||||
m_playlists = playlists;
|
||||
endResetModel();
|
||||
});
|
||||
}
|
||||
@@ -0,0 +1,47 @@
|
||||
// SPDX-FileCopyrightText: 2022 Jonah Brüchert <[email protected]>
|
||||
//
|
||||
// SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <QAbstractListModel>
|
||||
#include <QDateTime>
|
||||
|
||||
struct Playlist {
|
||||
using ColumnTypes = std::tuple<QString, QString, QString, QDateTime>;
|
||||
|
||||
Playlist static fromSql(ColumnTypes tuple) {
|
||||
auto [playlistId, title, description, createdOn] = tuple;
|
||||
return Playlist { playlistId, title, description, createdOn };
|
||||
}
|
||||
|
||||
QString playlistId;
|
||||
QString title;
|
||||
QString description;
|
||||
QDateTime createdOn;
|
||||
};
|
||||
|
||||
class LocalPlaylistsModel : public QAbstractListModel
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
enum Roles {
|
||||
PlaylistId,
|
||||
Title,
|
||||
Description,
|
||||
CreatedOn
|
||||
};
|
||||
|
||||
public:
|
||||
LocalPlaylistsModel(QObject *parent = nullptr);
|
||||
|
||||
int rowCount(const QModelIndex &index) const override;
|
||||
QHash<int, QByteArray> roleNames() const override;
|
||||
QVariant data(const QModelIndex &index, int role) const override;
|
||||
|
||||
void refreshModel();
|
||||
|
||||
private:
|
||||
std::vector<Playlist> m_playlists;
|
||||
};
|
||||
|
||||
@@ -20,6 +20,8 @@
|
||||
#include "playlistmodel.h"
|
||||
#include "playerutils.h"
|
||||
#include "library.h"
|
||||
#include "localplaylistmodel.h"
|
||||
#include "localplaylistsmodel.h"
|
||||
|
||||
#include "asyncdatabase.h"
|
||||
|
||||
@@ -45,6 +47,8 @@ Q_DECL_EXPORT int main(int argc, char *argv[])
|
||||
qmlRegisterType<VideoInfoExtractor>(URI, 1, 0, "VideoInfoExtractor");
|
||||
qmlRegisterType<ArtistModel>(URI, 1, 0, "ArtistModel");
|
||||
qmlRegisterType<PlaylistModel>(URI, 1, 0, "PlaylistModel");
|
||||
qmlRegisterType<LocalPlaylistModel>(URI, 1, 0, "LocalPlaylistModel");
|
||||
qmlRegisterType<LocalPlaylistsModel>(URI, 1, 0, "LocalPlaylistsModel");
|
||||
qmlRegisterSingletonType<UserPlaylistModel>(URI, 1, 0, "UserPlaylistModel", [](QQmlEngine *, QJSEngine *) {
|
||||
return new UserPlaylistModel();
|
||||
});
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
drop table playlists;
|
||||
drop table playlist_entries;
|
||||
@@ -0,0 +1,14 @@
|
||||
create table playlists (
|
||||
playlist_id Integer primary key autoincrement not null,
|
||||
title Text not null,
|
||||
description Text,
|
||||
created_on Timestamp not null default current_timestamp
|
||||
);
|
||||
|
||||
create table playlist_entries (
|
||||
playlist_id Integer not null,
|
||||
video_id Text not null,
|
||||
primary key (playlist_id, video_id)
|
||||
foreign key (video_id) references songs(video_id),
|
||||
foreign key (playlist_id) references playlists(playlist_id)
|
||||
);
|
||||
+4
-6
@@ -1,9 +1,3 @@
|
||||
<!--
|
||||
SPDX-FileCopyrightText: 2021 Jonah Brüchert <[email protected]>
|
||||
|
||||
SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
|
||||
-->
|
||||
|
||||
<RCC>
|
||||
<qresource prefix="/">
|
||||
<file alias="main.qml">contents/ui/main.qml</file>
|
||||
@@ -18,5 +12,9 @@ SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted
|
||||
<file alias="MaximizedPlayerPage.qml">contents/ui/MaximizedPlayerPage.qml</file>
|
||||
<file>migrations/2022-05-20-194850_init/down.sql</file>
|
||||
<file>migrations/2022-05-20-194850_init/up.sql</file>
|
||||
<file alias="PlaybackHistory.qml">contents/ui/PlaybackHistory.qml</file>
|
||||
<file>migrations/2022-05-25-212054_playlists/down.sql</file>
|
||||
<file>migrations/2022-05-25-212054_playlists/up.sql</file>
|
||||
<file alias="LocalPlaylistPage.qml">contents/ui/LocalPlaylistPage.qml</file>
|
||||
</qresource>
|
||||
</RCC>
|
||||
+2
-1
@@ -353,12 +353,13 @@ std::vector<search::SearchResultItem> YTMusic::search(
|
||||
artist::Artist YTMusic::get_artist(const std::string &channel_id) const
|
||||
{
|
||||
const auto artist = d->get_ytmusic().attr("get_artist")(channel_id);
|
||||
pyPrintPretty(artist);
|
||||
return artist::Artist {
|
||||
optional_key<std::string>(artist, "description"),
|
||||
artist["views"].cast<std::optional<std::string>>(),
|
||||
artist["name"].cast<std::string>(),
|
||||
artist["channelId"].cast<std::string>(),
|
||||
artist["subscribers"].cast<std::string>(),
|
||||
artist["subscribers"].cast<std::optional<std::string>>(),
|
||||
artist["subscribed"].cast<bool>(),
|
||||
extract_py_list<meta::Thumbnail>(artist["thumbnails"]),
|
||||
extract_artist_section<artist::Artist::Song>(artist, "songs"),
|
||||
|
||||
+1
-1
@@ -131,7 +131,7 @@ struct Artist {
|
||||
std::optional<std::string> views;
|
||||
std::string name;
|
||||
std::string channel_id;
|
||||
std::string subscribers;
|
||||
std::optional<std::string> subscribers;
|
||||
bool subscribed;
|
||||
std::vector<meta::Thumbnail> thumbnails;
|
||||
std::optional<Section<Song>> songs;
|
||||
|
||||
Reference in new issue
Block a user