Compare commits

..
58 changed files with 1446 additions and 2782 deletions

No files matched your search

+1 -4
View File
@@ -8,7 +8,7 @@ project(audiotube)
include(FeatureSummary)
set(PROJECT_VERSION "22.06")
set(PROJECT_VERSION "22.04")
set(QT5_MIN_VERSION 5.15)
set(KF5_MIN_VERSION 5.81)
@@ -32,15 +32,12 @@ ecm_setup_version(${PROJECT_VERSION}
)
kde_enable_exceptions()
add_compile_options(-fsanitize=address)
add_link_options(-fsanitize=address)
find_package(Qt5 ${QT5_MIN_VERSION} REQUIRED COMPONENTS Core Gui Qml QuickControls2 Svg Sql)
find_package(KF5 ${KF5_MIN_VERSION} REQUIRED COMPONENTS Kirigami2 I18n CoreAddons Crash)
find_package(pybind11 REQUIRED)
find_package(Ytdlp REQUIRED RUNTIME)
find_package(YTMusicAPI REQUIRED RUNTIME)
find_package(QCoro5 REQUIRED COMPONENTS Core Qml Network)
ki18n_install(po)
+12 -12
View File
@@ -5,6 +5,16 @@
"pip3 install --verbose --exists-action=i --no-index --find-links=\"file://${PWD}\" --prefix=${FLATPAK_DEST} \"yt-dlp\" --no-build-isolation"
],
"sources": [
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/9a/bf/1bc7e3096ddc2c398b3d04176530a9c02efe08546d9730c9eef0b07a0a43/yt_dlp-2022.5.18-py2.py3-none-any.whl",
"sha256": "deec1009442312c1e2ee5298966842194d0e950b433f0d4fc844ef464b9c32a7"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/11/dd/e015f3780f42dd9af62cf0107b44ea1298926627ecd70c17b0e484e95bcd/certifi-2022.5.18.1-py3-none-any.whl",
"sha256": "f1d53542ee8cbedbe2118b5686372fb33c297fcd6379b050cca0ef13a597382a"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/f8/a3/622d9acbfb9a71144b5d7609906bc648c62e3ca5fdbb1c8cca222949d82c/websockets-10.3.tar.gz",
@@ -22,18 +32,8 @@
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/e9/06/d3d367b7af6305b16f0d28ae2aaeb86154fa91f144f036c2d5002a5a202b/certifi-2022.6.15-py3-none-any.whl",
"sha256": "fe86415d55e84719d75f8b69414f6438ac3547d2078ab91b67e779ef69378412"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/1f/13/b1f7b4e44b11584a5f077af87895961b57911217a629efb8d3a9efd2a491/yt_dlp-2022.7.18-py2.py3-none-any.whl",
"sha256": "d7d1f81d230756f094b4d9ee59b37b2c13b2e63ff5fb72cda53625edb072cdae"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/52/0d/6cc95a83f6961a1ca041798d222240890af79b381e97eda3b9b538dba16f/pycryptodomex-3.15.0.tar.gz",
"sha256": "7341f1bb2dadb0d1a0047f34c3a58208a92423cdbd3244d998e4b28df5eac0ed"
"url": "https://files.pythonhosted.org/packages/24/40/e249ac3845a2333ce50f1bb02299ffb766babdfe80ca9d31e0158ad06afd/pycryptodomex-3.14.1.tar.gz",
"sha256": "2ce76ed0081fd6ac8c74edc75b9d14eca2064173af79843c24fa62573263c1f2"
}
]
}
+11 -11
View File
@@ -7,18 +7,23 @@
"sources": [
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/94/69/64b11e8c2fb21f08634468caef885112e682b0ebe2908e74d3616eb1c113/charset_normalizer-2.1.0-py3-none-any.whl",
"sha256": "5189b6f22b01957427f35b6a08d9a0bc45b46d3788ef5a92e978433c7a35f8a5"
"url": "https://files.pythonhosted.org/packages/ec/03/062e6444ce4baf1eac17a6a0ebfe36bb1ad05e1df0e20b110de59c278498/urllib3-1.26.9-py2.py3-none-any.whl",
"sha256": "44ece4d53fb1706f667c9bd1c648f5469a2ec925fcf3a776667042d645472c14"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/68/47/93d3d28e97c7577f563903907912f4b3804054e4877a5ba6651f7182c53b/urllib3-1.26.10-py2.py3-none-any.whl",
"sha256": "8298d6d56d39be0e3bc13c1c97d133f9b45d797169a0e11cdd0e0489d786f7ec"
"url": "https://files.pythonhosted.org/packages/11/dd/e015f3780f42dd9af62cf0107b44ea1298926627ecd70c17b0e484e95bcd/certifi-2022.5.18.1-py3-none-any.whl",
"sha256": "f1d53542ee8cbedbe2118b5686372fb33c297fcd6379b050cca0ef13a597382a"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/ca/91/6d9b8ccacd0412c08820f72cebaa4f0c0441b5cda699c90f618b6f8a1b42/requests-2.28.1-py3-none-any.whl",
"sha256": "8fefa2a1a1365bf5520aac41836fbee479da67864514bdb821f31ce07ce65349"
"url": "https://files.pythonhosted.org/packages/06/b3/24afc8868eba069a7f03650ac750a778862dc34941a4bebeb58706715726/charset_normalizer-2.0.12-py3-none-any.whl",
"sha256": "6881edbebdb17b39b4eaaa821b438bf6eddffb4468cf344f09f89def34a8b1df"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/2d/61/08076519c80041bc0ffa1a8af0cbd3bf3e2b62af10435d269a9d0f40564d/requests-2.27.1-py2.py3-none-any.whl",
"sha256": "f22fa1e554c9ddfd16e6e41ac79759e17be9e492b3587efa038054674760e72d"
},
{
"type": "file",
@@ -29,11 +34,6 @@
"type": "file",
"url": "https://files.pythonhosted.org/packages/04/a2/d918dcd22354d8958fe113e1a3630137e0fc8b44859ade3063982eacd2a4/idna-3.3-py3-none-any.whl",
"sha256": "84d9dd047ffa80596e0f246e2eab0b391788b0503584e8945f2368256d2735ff"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/e9/06/d3d367b7af6305b16f0d28ae2aaeb86154fa91f144f036c2d5002a5a202b/certifi-2022.6.15-py3-none-any.whl",
"sha256": "fe86415d55e84719d75f8b69414f6438ac3547d2078ab91b67e779ef69378412"
}
]
}
+1 -18
View File
@@ -22,7 +22,6 @@ SPDX-License-Identifier: CC0-1.0
<name xml:lang="it">AudioTube</name>
<name xml:lang="ko">AudioTube</name>
<name xml:lang="nl">AudioTube</name>
<name xml:lang="nn">AudioTube</name>
<name xml:lang="pa">ਆਡੀਓ-ਟਿਊਬ</name>
<name xml:lang="pl">AudioTube</name>
<name xml:lang="pt">AudioTube</name>
@@ -50,7 +49,6 @@ SPDX-License-Identifier: CC0-1.0
<summary xml:lang="it">Client YouTube Music convergente</summary>
<summary xml:lang="ko">올인원 YouTube Music 클라이언트</summary>
<summary xml:lang="nl">Convergente muziekclient van YouTube</summary>
<summary xml:lang="nn">YouTube Music-klient, tilpassa ulike brukarflater</summary>
<summary xml:lang="pl">Adaptacyjny program do YouTube Music</summary>
<summary xml:lang="pt">Cliente de música do YouTube convergente</summary>
<summary xml:lang="pt-BR">Um cliente convergente para o YouTube Music</summary>
@@ -79,7 +77,6 @@ SPDX-License-Identifier: CC0-1.0
<developer_name xml:lang="it">Comunità KDE</developer_name>
<developer_name xml:lang="ko">KDE 커뮤니티</developer_name>
<developer_name xml:lang="nl">KDE-gemeenschap</developer_name>
<developer_name xml:lang="nn">KDE-fellesskapet</developer_name>
<developer_name xml:lang="pa">ਕੇਡੀਈ ਕਮਿਊਨਟੀ</developer_name>
<developer_name xml:lang="pl">Społeczność KDE</developer_name>
<developer_name xml:lang="pt">Comunidade do KDE</developer_name>
@@ -95,16 +92,6 @@ SPDX-License-Identifier: CC0-1.0
<content_rating type="oars-1.0"/>
<url type="homepage">https://apps.kde.org/en/audiotube</url>
<releases>
<release version="22.06" date="2022-06-24">
<url>https://www.plasma-mobile.org/2022/06/28/plasma-mobile-gear-22-06/</url>
<description>
<ul>
<li>Add library page which shows favourites and most played songs</li>
<li>Improve layout of the search popup</li>
<li>General performance improvements including startup</li>
</ul>
</description>
</release>
<release version="22.04" date="2022-04-26">
<url>https://www.plasma-mobile.org/2022/04/26/plasma-mobile-gear-22-04/</url>
<description>
@@ -132,14 +119,11 @@ SPDX-License-Identifier: CC0-1.0
<launchable type="desktop-id">org.kde.audiotube.desktop</launchable>
<screenshots>
<screenshot>
<image>https://cdn.kde.org/screenshots/audiotube/library.png</image>
<image>https://cdn.kde.org/screenshots/audiotube/desktop.png</image>
</screenshot>
<screenshot>
<image>https://cdn.kde.org/screenshots/audiotube/mobile_playlist.png</image>
</screenshot>
<screenshot>
<image>https://cdn.kde.org/screenshots/audiotube/desktop.png</image>
</screenshot>
</screenshots>
<recommends>
<control>pointing</control>
@@ -162,7 +146,6 @@ SPDX-License-Identifier: CC0-1.0
<p xml:lang="it">AudioTube può eseguire ricerche su YouTube Music, elencare album e artisti, riprodurre scalette e album generati automaticamente e ti consente di creare la tua scaletta.</p>
<p xml:lang="ko">AudioTube는 YouTube Music을 검색하고, 앨범과 아티스트를 표시하고, 자동 생성된 재생 목록, 앨범을 재생하고, 사용자 정의 재생 목록을 만들 수 있습니다.</p>
<p xml:lang="nl">AudioTube kan in YouTube Music zoeken, een lijst maken van albums en artiesten, automatically gegenereerde afspeellijsten, albums afspelen en biedt u het samenstellen van uw eigen afspeellijst.</p>
<p xml:lang="nn">Med AudioTube kan du søkja på YouTube Music, visa album og artistar, spela automatiske genererte spelelister og album samt laga eigne spelelister.</p>
<p xml:lang="pl">AudioTube może przeszukiwać serwis YouTube Music, wypisać albumy i wykonawców, odtwarzać samoczynnie utworzone listy odtwarzania, albumy oraz umożliwia tworzenie własnych list odtwarzania.</p>
<p xml:lang="pt">O AudioTube consegue pesquisar no YouTube Music, enumerar os álbuns e artistas, reproduzir listas geradas automaticamente, álbuns e permite-lhe reproduzir as suas próprias listas de reprodução.</p>
<p xml:lang="pt-BR">O AudioTube pode pesquisar no YouTube Music, listar álbuns e artistas, rodar listas de reprodução geradas automaticamente, álbuns inteiros, e criar a sua própria lista de reprodução.</p>
-2
View File
@@ -15,7 +15,6 @@ Name[hi]=ओडियो-ट्यूब
Name[it]=AudioTube
Name[ko]=AudioTube
Name[nl]=AudioTube
Name[nn]=AudioTube
Name[pa]=ਆਡੀਓ-ਟਿਊਬ
Name[pl]=AudioTube
Name[pt]=AudioTube
@@ -44,7 +43,6 @@ Comment[hi]=यूट्यूब संगीत क्लाएंट
Comment[it]=Client YouTube Music
Comment[ko]=YouTube Music 클라이언트
Comment[nl]=Muziekclient van YouTube
Comment[nn]=YouTube Music-klient
Comment[pa]=ਯੂਟਿਊਬ ਸੰਗੀਤ ਕਲਾਈਂਟ
Comment[pl]=Program do YouTube Music
Comment[pt]=Cliente do YouTube Music
+38 -73
View File
@@ -6,10 +6,10 @@ msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2022-07-12 00:48+0000\n"
"PO-Revision-Date: 2022-05-28 23:09+0400\n"
"POT-Creation-Date: 2022-05-23 00:47+0000\n"
"PO-Revision-Date: 2022-01-21 22:52+0400\n"
"Last-Translator: Zayed Al-Saidi <[email protected]>\n"
"Language-Team: Arabic <[email protected]>\n"
"Language-Team: ar\n"
"Language: ar\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -28,25 +28,20 @@ msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails"
msgstr "[email protected]"
#: contents/ui/AlbumPage.qml:19 contents/ui/PlaylistPage.qml:19
#: contents/ui/AlbumPage.qml:19 contents/ui/PlayerFooter.qml:192
#: contents/ui/PlaylistPage.qml:19
#, kde-format
msgid "Play"
msgstr "شغّل"
#: contents/ui/AlbumPage.qml:26 contents/ui/PlaylistPage.qml:26
#, kde-format
msgid "Shuffle"
msgstr "اخلط"
#: contents/ui/AlbumPage.qml:68 contents/ui/ArtistPage.qml:101
#: contents/ui/PlaybackHistory.qml:74 contents/ui/PlaylistPage.qml:67
#: contents/ui/AlbumPage.qml:61 contents/ui/ArtistPage.qml:101
#: contents/ui/PlaylistPage.qml:67
#, kde-format
msgid "Play Next"
msgstr "شغل التالي"
#: contents/ui/AlbumPage.qml:73 contents/ui/ArtistPage.qml:107
#: contents/ui/PlaybackHistory.qml:79 contents/ui/PlaylistPage.qml:72
#: contents/ui/SearchPage.qml:123
#: contents/ui/AlbumPage.qml:66 contents/ui/ArtistPage.qml:107
#: contents/ui/PlaylistPage.qml:72 contents/ui/SearchPage.qml:123
#, kde-format
msgid "Add to Playlist"
msgstr "أضف إلى قائمة التّشغيل"
@@ -88,76 +83,50 @@ msgstr "حسنًا"
msgid "Cancel"
msgstr "ألغِ"
#: contents/ui/LibraryPage.qml:27
#: contents/ui/LibraryPage.qml:15
#, kde-format
msgid "Favourites"
msgstr "المفضلة"
msgstr ""
#: contents/ui/LibraryPage.qml:37 contents/ui/LibraryPage.qml:108
#, kde-format
msgid "Show All"
msgstr "أظهر الكلّ"
#: contents/ui/LibraryPage.qml:42
#, kde-format
msgid "Favourite Songs"
msgstr "الأغاني المفضّلة"
#: contents/ui/LibraryPage.qml:98
#: contents/ui/LibraryPage.qml:67
#, kde-format
msgid "Most played"
msgstr "الأكثر تشغيلا"
msgstr ""
#: contents/ui/LibraryPage.qml:113
#, kde-format
msgid "Played Songs"
msgstr "الأغاني المشغلة"
#: contents/ui/main.qml:39
#, kde-format
msgid "Back"
msgstr "عُد"
#: contents/ui/main.qml:73 contents/ui/SearchPage.qml:150
#, kde-format
msgid "Search"
msgstr "ابحث"
#: contents/ui/main.qml:85
#: contents/ui/main.qml:94
#, kde-format
msgid "AudioTube"
msgstr "تيوب الصوتي"
#: contents/ui/MaximizedPlayerPage.qml:92
#, kde-format
msgid "Now Playing"
msgstr "المشغل الآن"
#: contents/ui/MaximizedPlayerPage.qml:117
#, kde-format
msgid "Queue"
msgstr "صُفّ"
#: contents/ui/MaximizedPlayerPage.qml:222
#: contents/ui/PlayerFooter.qml:124
#, kde-format
msgid "Remove Track"
msgstr "أزل المسار"
#: contents/ui/MaximizedPlayerPage.qml:242
#: contents/ui/MinimizedPlayerControls.qml:96
#: 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
#, kde-format
msgid "No media playing"
msgstr "لا يوجد وسائط تعمل"
#: contents/ui/PlaybackHistory.qml:15
#: contents/ui/PlayerFooter.qml:266
#, kde-format
msgid "Unknown list of songs"
msgstr "قائمة غير معروفة من الأغاني"
#: contents/ui/PlaybackHistory.qml:25
#, kde-format
msgid "No songs here yet"
msgstr "لا يوجد أي أغنية بعد"
msgid "Expand"
msgstr "وسع"
#: contents/ui/SearchPage.qml:27
#, kde-format
@@ -189,11 +158,7 @@ msgstr "راديو"
msgid "Find music on YouTube Music"
msgstr "اعثر على موسيقى على موسيقى يوتيوب"
#~ msgid "Clear"
#~ msgstr "امسح"
#~ msgid "Pause"
#~ msgstr "ألبث"
#~ msgid "Expand"
#~ msgstr "وسع"
#: contents/ui/SearchPage.qml:150
#, kde-format
msgid "Search"
msgstr "ابحث"
+39 -74
View File
@@ -6,16 +6,16 @@ msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2022-07-12 00:48+0000\n"
"PO-Revision-Date: 2022-06-19 12:16+0400\n"
"Last-Translator: Kheyyam <[email protected]>\n"
"POT-Creation-Date: 2022-05-23 00:47+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"
"Language: az\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 22.04.2\n"
"X-Generator: Lokalize 21.12.3\n"
#, kde-format
msgctxt "NAME OF TRANSLATORS"
@@ -27,25 +27,20 @@ msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails"
msgstr "[email protected]"
#: contents/ui/AlbumPage.qml:19 contents/ui/PlaylistPage.qml:19
#: contents/ui/AlbumPage.qml:19 contents/ui/PlayerFooter.qml:192
#: contents/ui/PlaylistPage.qml:19
#, kde-format
msgid "Play"
msgstr "Başladın"
#: contents/ui/AlbumPage.qml:26 contents/ui/PlaylistPage.qml:26
#, kde-format
msgid "Shuffle"
msgstr "Qarışıq"
#: contents/ui/AlbumPage.qml:68 contents/ui/ArtistPage.qml:101
#: contents/ui/PlaybackHistory.qml:74 contents/ui/PlaylistPage.qml:67
#: contents/ui/AlbumPage.qml:61 contents/ui/ArtistPage.qml:101
#: contents/ui/PlaylistPage.qml:67
#, kde-format
msgid "Play Next"
msgstr "Sonrakını oxudun"
#: contents/ui/AlbumPage.qml:73 contents/ui/ArtistPage.qml:107
#: contents/ui/PlaybackHistory.qml:79 contents/ui/PlaylistPage.qml:72
#: contents/ui/SearchPage.qml:123
#: contents/ui/AlbumPage.qml:66 contents/ui/ArtistPage.qml:107
#: contents/ui/PlaylistPage.qml:72 contents/ui/SearchPage.qml:123
#, kde-format
msgid "Add to Playlist"
msgstr "Mahnı siyahısına əlavə edin"
@@ -89,76 +84,50 @@ msgstr "OLDU"
msgid "Cancel"
msgstr "İmtina"
#: contents/ui/LibraryPage.qml:27
#: contents/ui/LibraryPage.qml:15
#, kde-format
msgid "Favourites"
msgstr "Süçilmişlər"
msgstr ""
#: contents/ui/LibraryPage.qml:37 contents/ui/LibraryPage.qml:108
#, kde-format
msgid "Show All"
msgstr "Hamısı göstərilsin"
#: contents/ui/LibraryPage.qml:42
#, kde-format
msgid "Favourite Songs"
msgstr "Seçilmiş mahnılar"
#: contents/ui/LibraryPage.qml:98
#: contents/ui/LibraryPage.qml:67
#, kde-format
msgid "Most played"
msgstr "Daha çox dinlənilən"
msgstr ""
#: contents/ui/LibraryPage.qml:113
#, kde-format
msgid "Played Songs"
msgstr "Oxudulan mahnılar"
#: contents/ui/main.qml:39
#, kde-format
msgid "Back"
msgstr "Geriyə"
#: contents/ui/main.qml:73 contents/ui/SearchPage.qml:150
#, kde-format
msgid "Search"
msgstr "Axtarın"
#: contents/ui/main.qml:85
#: contents/ui/main.qml:94
#, kde-format
msgid "AudioTube"
msgstr "AudioTube"
#: contents/ui/MaximizedPlayerPage.qml:92
#, kde-format
msgid "Now Playing"
msgstr "İndi səslənir"
#: contents/ui/MaximizedPlayerPage.qml:117
#, kde-format
msgid "Queue"
msgstr "Növbə"
#: contents/ui/MaximizedPlayerPage.qml:222
#: contents/ui/PlayerFooter.qml:124
#, kde-format
msgid "Remove Track"
msgstr "Mahnını silin"
#: contents/ui/MaximizedPlayerPage.qml:242
#: contents/ui/MinimizedPlayerControls.qml:96
#: 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
#, kde-format
msgid "No media playing"
msgstr "Media faylı oynadılmır"
#: contents/ui/PlaybackHistory.qml:15
#: contents/ui/PlayerFooter.qml:266
#, kde-format
msgid "Unknown list of songs"
msgstr "Naməlum mahnı siyahısı"
#: contents/ui/PlaybackHistory.qml:25
#, kde-format
msgid "No songs here yet"
msgstr "Hələlik burada mahnılar yoxdur"
msgid "Expand"
msgstr "Açmaq"
#: contents/ui/SearchPage.qml:27
#, kde-format
@@ -190,11 +159,7 @@ msgstr "Radio"
msgid "Find music on YouTube Music"
msgstr "Musiqini YouTube Musiqi-də tapın"
#~ msgid "Clear"
#~ msgstr "Təmizləyin"
#~ msgid "Pause"
#~ msgstr "Fasilə"
#~ msgid "Expand"
#~ msgstr "Açmaq"
#: contents/ui/SearchPage.qml:150
#, kde-format
msgid "Search"
msgstr "Axtarın"
+44 -68
View File
@@ -1,24 +1,23 @@
# Translation of audiotube.po to Catalan
# Copyright (C) 2021-2022 This_file_is_part_of_KDE
# Copyright (C) 2021 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-07-12 00:48+0000\n"
"PO-Revision-Date: 2022-05-26 09:09+0200\n"
"Last-Translator: Josep M. Ferrer <txemaq@gmail.com>\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"
"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 20.12.0\n"
"X-Generator: Lokalize 21.11.90\n"
#, kde-format
msgctxt "NAME OF TRANSLATORS"
@@ -30,25 +29,20 @@ msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails"
msgstr "[email protected]"
#: contents/ui/AlbumPage.qml:19 contents/ui/PlaylistPage.qml:19
#: contents/ui/AlbumPage.qml:19 contents/ui/PlayerFooter.qml:192
#: contents/ui/PlaylistPage.qml:19
#, kde-format
msgid "Play"
msgstr "Reprodueix"
#: contents/ui/AlbumPage.qml:26 contents/ui/PlaylistPage.qml:26
#, kde-format
msgid "Shuffle"
msgstr "Barreja"
#: contents/ui/AlbumPage.qml:68 contents/ui/ArtistPage.qml:101
#: contents/ui/PlaybackHistory.qml:74 contents/ui/PlaylistPage.qml:67
#: contents/ui/AlbumPage.qml:61 contents/ui/ArtistPage.qml:101
#: contents/ui/PlaylistPage.qml:67
#, kde-format
msgid "Play Next"
msgstr "Reprodueix el següent"
#: contents/ui/AlbumPage.qml:73 contents/ui/ArtistPage.qml:107
#: contents/ui/PlaybackHistory.qml:79 contents/ui/PlaylistPage.qml:72
#: contents/ui/SearchPage.qml:123
#: contents/ui/AlbumPage.qml:66 contents/ui/ArtistPage.qml:107
#: contents/ui/PlaylistPage.qml:72 contents/ui/SearchPage.qml:123
#, kde-format
msgid "Add to Playlist"
msgstr "Afegeix a la llista de reproducció"
@@ -92,76 +86,50 @@ msgstr "D'acord"
msgid "Cancel"
msgstr "Cancel·la"
#: contents/ui/LibraryPage.qml:27
#: contents/ui/LibraryPage.qml:15
#, kde-format
msgid "Favourites"
msgstr "Preferides"
msgstr ""
#: contents/ui/LibraryPage.qml:37 contents/ui/LibraryPage.qml:108
#, kde-format
msgid "Show All"
msgstr "Mostra-ho tot"
#: contents/ui/LibraryPage.qml:42
#, kde-format
msgid "Favourite Songs"
msgstr "Cançons preferides"
#: contents/ui/LibraryPage.qml:98
#: contents/ui/LibraryPage.qml:67
#, kde-format
msgid "Most played"
msgstr "Les més reproduïdes"
msgstr ""
#: contents/ui/LibraryPage.qml:113
#, kde-format
msgid "Played Songs"
msgstr "Cançons reproduïdes"
#: contents/ui/main.qml:39
#, kde-format
msgid "Back"
msgstr "Enrere"
#: contents/ui/main.qml:73 contents/ui/SearchPage.qml:150
#, kde-format
msgid "Search"
msgstr "Cerca"
#: contents/ui/main.qml:85
#: contents/ui/main.qml:94
#, kde-format
msgid "AudioTube"
msgstr "AudioTube"
#: contents/ui/MaximizedPlayerPage.qml:92
#, kde-format
msgid "Now Playing"
msgstr "Ara s'està reproduint"
#: contents/ui/MaximizedPlayerPage.qml:117
#, kde-format
msgid "Queue"
msgstr "Cua"
#: contents/ui/MaximizedPlayerPage.qml:222
#: contents/ui/PlayerFooter.qml:124
#, kde-format
msgid "Remove Track"
msgstr "Elimina la pista"
#: contents/ui/MaximizedPlayerPage.qml:242
#: contents/ui/MinimizedPlayerControls.qml:96
#: 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
#, kde-format
msgid "No media playing"
msgstr "No s'està reproduint cap suport"
#: contents/ui/PlaybackHistory.qml:15
#: contents/ui/PlayerFooter.qml:266
#, kde-format
msgid "Unknown list of songs"
msgstr "Llista desconeguda de cançons"
#: contents/ui/PlaybackHistory.qml:25
#, kde-format
msgid "No songs here yet"
msgstr "Encara no hi ha cap cançó"
msgid "Expand"
msgstr "Expandeix"
#: contents/ui/SearchPage.qml:27
#, kde-format
@@ -192,3 +160,11 @@ msgstr "Ràdio"
#, kde-format
msgid "Find music on YouTube Music"
msgstr "Cerca a la Música de Youtube"
#: contents/ui/SearchPage.qml:150
#, kde-format
msgid "Search"
msgstr "Cerca"
#~ msgid "Play only Audio"
#~ msgstr "Reprodueix només l'àudio"
+44 -71
View File
@@ -1,24 +1,23 @@
# Translation of audiotube.po to Catalan (Valencian)
# Copyright (C) 2021-2022 This_file_is_part_of_KDE
# Copyright (C) 2021 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-07-12 00:48+0000\n"
"PO-Revision-Date: 2022-05-26 09:09+0200\n"
"Last-Translator: Josep M. Ferrer <txemaq@gmail.com>\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"
"Language-Team: Catalan <[email protected]>\n"
"Language: ca@valencia\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 20.12.0\n"
"X-Generator: Lokalize 21.11.90\n"
#, kde-format
msgctxt "NAME OF TRANSLATORS"
@@ -30,25 +29,20 @@ msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails"
msgstr "[email protected]"
#: contents/ui/AlbumPage.qml:19 contents/ui/PlaylistPage.qml:19
#: contents/ui/AlbumPage.qml:19 contents/ui/PlayerFooter.qml:192
#: contents/ui/PlaylistPage.qml:19
#, kde-format
msgid "Play"
msgstr "Reproduïx"
msgstr "Reprodueix"
#: contents/ui/AlbumPage.qml:26 contents/ui/PlaylistPage.qml:26
#, kde-format
msgid "Shuffle"
msgstr "Barreja"
#: contents/ui/AlbumPage.qml:68 contents/ui/ArtistPage.qml:101
#: contents/ui/PlaybackHistory.qml:74 contents/ui/PlaylistPage.qml:67
#: contents/ui/AlbumPage.qml:61 contents/ui/ArtistPage.qml:101
#: contents/ui/PlaylistPage.qml:67
#, kde-format
msgid "Play Next"
msgstr "Reproduïx el següent"
msgstr "Reprodueix el següent"
#: contents/ui/AlbumPage.qml:73 contents/ui/ArtistPage.qml:107
#: contents/ui/PlaybackHistory.qml:79 contents/ui/PlaylistPage.qml:72
#: contents/ui/SearchPage.qml:123
#: contents/ui/AlbumPage.qml:66 contents/ui/ArtistPage.qml:107
#: contents/ui/PlaylistPage.qml:72 contents/ui/SearchPage.qml:123
#, kde-format
msgid "Add to Playlist"
msgstr "Afig a la llista de reproducció"
@@ -92,76 +86,50 @@ msgstr "D'acord"
msgid "Cancel"
msgstr "Cancel·la"
#: contents/ui/LibraryPage.qml:27
#: contents/ui/LibraryPage.qml:15
#, kde-format
msgid "Favourites"
msgstr "Preferides"
msgstr ""
#: contents/ui/LibraryPage.qml:37 contents/ui/LibraryPage.qml:108
#, kde-format
msgid "Show All"
msgstr "Mostra-ho tot"
#: contents/ui/LibraryPage.qml:42
#, kde-format
msgid "Favourite Songs"
msgstr "Cançons preferides"
#: contents/ui/LibraryPage.qml:98
#: contents/ui/LibraryPage.qml:67
#, kde-format
msgid "Most played"
msgstr "Les més reproduïdes"
msgstr ""
#: contents/ui/LibraryPage.qml:113
#, kde-format
msgid "Played Songs"
msgstr "Cançons reproduïdes"
#: contents/ui/main.qml:39
#, kde-format
msgid "Back"
msgstr "Arrere"
#: contents/ui/main.qml:73 contents/ui/SearchPage.qml:150
#, kde-format
msgid "Search"
msgstr "Busca"
#: contents/ui/main.qml:85
#: contents/ui/main.qml:94
#, kde-format
msgid "AudioTube"
msgstr "AudioTube"
#: contents/ui/MaximizedPlayerPage.qml:92
#, kde-format
msgid "Now Playing"
msgstr "Ara s'està reproduint"
#: contents/ui/MaximizedPlayerPage.qml:117
#, kde-format
msgid "Queue"
msgstr "Cua"
#: contents/ui/MaximizedPlayerPage.qml:222
#: contents/ui/PlayerFooter.qml:124
#, kde-format
msgid "Remove Track"
msgstr "Elimina la pista"
#: contents/ui/MaximizedPlayerPage.qml:242
#: contents/ui/MinimizedPlayerControls.qml:96
#: 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
#, kde-format
msgid "No media playing"
msgstr "No s'està reproduint cap suport"
#: contents/ui/PlaybackHistory.qml:15
#: contents/ui/PlayerFooter.qml:266
#, kde-format
msgid "Unknown list of songs"
msgstr "Llista desconeguda de cançons"
#: contents/ui/PlaybackHistory.qml:25
#, kde-format
msgid "No songs here yet"
msgstr "Encara no hi ha cap cançó"
msgid "Expand"
msgstr "Expandeix"
#: contents/ui/SearchPage.qml:27
#, kde-format
@@ -181,7 +149,7 @@ msgstr "Desconeguda"
#: contents/ui/SearchPage.qml:117
#, kde-format
msgid "Play next"
msgstr "Reproduïx el següent"
msgstr "Reprodueix el següent"
#: contents/ui/SearchPage.qml:129
#, kde-format
@@ -192,3 +160,8 @@ msgstr "Ràdio"
#, kde-format
msgid "Find music on YouTube Music"
msgstr "Busca a la Música de Youtube"
#: contents/ui/SearchPage.qml:150
#, kde-format
msgid "Search"
msgstr "Busca"
+39 -65
View File
@@ -6,8 +6,8 @@ msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2022-07-12 00:48+0000\n"
"PO-Revision-Date: 2022-06-28 13:58+0200\n"
"POT-Creation-Date: 2022-05-23 00:47+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"
"Language: cs\n"
@@ -15,7 +15,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
"X-Generator: Lokalize 22.04.2\n"
"X-Generator: Lokalize 21.12.0\n"
#, kde-format
msgctxt "NAME OF TRANSLATORS"
@@ -27,25 +27,20 @@ msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails"
msgstr "[email protected]"
#: contents/ui/AlbumPage.qml:19 contents/ui/PlaylistPage.qml:19
#: contents/ui/AlbumPage.qml:19 contents/ui/PlayerFooter.qml:192
#: contents/ui/PlaylistPage.qml:19
#, kde-format
msgid "Play"
msgstr "Přehrát"
#: contents/ui/AlbumPage.qml:26 contents/ui/PlaylistPage.qml:26
#, kde-format
msgid "Shuffle"
msgstr "Zamíchat"
#: contents/ui/AlbumPage.qml:68 contents/ui/ArtistPage.qml:101
#: contents/ui/PlaybackHistory.qml:74 contents/ui/PlaylistPage.qml:67
#: contents/ui/AlbumPage.qml:61 contents/ui/ArtistPage.qml:101
#: contents/ui/PlaylistPage.qml:67
#, kde-format
msgid "Play Next"
msgstr "Přehrát následující"
#: contents/ui/AlbumPage.qml:73 contents/ui/ArtistPage.qml:107
#: contents/ui/PlaybackHistory.qml:79 contents/ui/PlaylistPage.qml:72
#: contents/ui/SearchPage.qml:123
#: contents/ui/AlbumPage.qml:66 contents/ui/ArtistPage.qml:107
#: contents/ui/PlaylistPage.qml:72 contents/ui/SearchPage.qml:123
#, kde-format
msgid "Add to Playlist"
msgstr "Přidat do seznamu skladeb"
@@ -89,76 +84,50 @@ msgstr "OK"
msgid "Cancel"
msgstr "Zrušit"
#: contents/ui/LibraryPage.qml:27
#: contents/ui/LibraryPage.qml:15
#, kde-format
msgid "Favourites"
msgstr "Oblíbené"
msgstr ""
#: contents/ui/LibraryPage.qml:37 contents/ui/LibraryPage.qml:108
#, kde-format
msgid "Show All"
msgstr "Zobrazit vše"
#: contents/ui/LibraryPage.qml:42
#, kde-format
msgid "Favourite Songs"
msgstr "Oblíbené skladby"
#: contents/ui/LibraryPage.qml:98
#: contents/ui/LibraryPage.qml:67
#, kde-format
msgid "Most played"
msgstr "Nejčastěji hrané"
msgstr ""
#: contents/ui/LibraryPage.qml:113
#, kde-format
msgid "Played Songs"
msgstr "Přehrané skladby"
#: contents/ui/main.qml:39
#, kde-format
msgid "Back"
msgstr "Zpět"
#: contents/ui/main.qml:73 contents/ui/SearchPage.qml:150
#, kde-format
msgid "Search"
msgstr "Hledat"
#: contents/ui/main.qml:85
#: contents/ui/main.qml:94
#, kde-format
msgid "AudioTube"
msgstr "AudioTube"
#: contents/ui/MaximizedPlayerPage.qml:92
#, kde-format
msgid "Now Playing"
msgstr "Nyní přehrávám"
#: contents/ui/MaximizedPlayerPage.qml:117
#, kde-format
msgid "Queue"
msgstr "Fronta"
#: contents/ui/MaximizedPlayerPage.qml:222
#: contents/ui/PlayerFooter.qml:124
#, kde-format
msgid "Remove Track"
msgstr "Odstranit skladbu"
#: contents/ui/MaximizedPlayerPage.qml:242
#: contents/ui/MinimizedPlayerControls.qml:96
#: 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
#, kde-format
msgid "No media playing"
msgstr "Nepřehrává se žádné médium"
#: contents/ui/PlaybackHistory.qml:15
#: contents/ui/PlayerFooter.qml:266
#, kde-format
msgid "Unknown list of songs"
msgstr "Neznámý seznam skladeb"
#: contents/ui/PlaybackHistory.qml:25
#, kde-format
msgid "No songs here yet"
msgstr "Zatím zde nejsou žádné skladby"
msgid "Expand"
msgstr "Rozvinout"
#: contents/ui/SearchPage.qml:27
#, kde-format
@@ -189,3 +158,8 @@ msgstr "Rádio"
#, kde-format
msgid "Find music on YouTube Music"
msgstr "Najít hudbu na Hudba YouTube"
#: contents/ui/SearchPage.qml:150
#, kde-format
msgid "Search"
msgstr "Hledat"
+39 -74
View File
@@ -7,16 +7,16 @@ msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2022-07-12 00:48+0000\n"
"PO-Revision-Date: 2022-07-02 12:04+0200\n"
"POT-Creation-Date: 2022-05-23 00:47+0000\n"
"PO-Revision-Date: 2022-02-20 10:37+0100\n"
"Last-Translator: Frederik Schwarzer <[email protected]>\n"
"Language-Team: German <kde-i18n-de@kde.org>\n"
"Language-Team: German <kde-i18n-doc@kde.org>\n"
"Language: de\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 22.04.1\n"
"X-Generator: Lokalize 21.08.0\n"
#, kde-format
msgctxt "NAME OF TRANSLATORS"
@@ -28,25 +28,20 @@ msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails"
msgstr "[email protected]"
#: contents/ui/AlbumPage.qml:19 contents/ui/PlaylistPage.qml:19
#: contents/ui/AlbumPage.qml:19 contents/ui/PlayerFooter.qml:192
#: contents/ui/PlaylistPage.qml:19
#, kde-format
msgid "Play"
msgstr "Wiedergabe"
#: contents/ui/AlbumPage.qml:26 contents/ui/PlaylistPage.qml:26
#, kde-format
msgid "Shuffle"
msgstr "Zufällig"
#: contents/ui/AlbumPage.qml:68 contents/ui/ArtistPage.qml:101
#: contents/ui/PlaybackHistory.qml:74 contents/ui/PlaylistPage.qml:67
#: contents/ui/AlbumPage.qml:61 contents/ui/ArtistPage.qml:101
#: contents/ui/PlaylistPage.qml:67
#, kde-format
msgid "Play Next"
msgstr "Nächste Wiedergabe"
#: contents/ui/AlbumPage.qml:73 contents/ui/ArtistPage.qml:107
#: contents/ui/PlaybackHistory.qml:79 contents/ui/PlaylistPage.qml:72
#: contents/ui/SearchPage.qml:123
#: contents/ui/AlbumPage.qml:66 contents/ui/ArtistPage.qml:107
#: contents/ui/PlaylistPage.qml:72 contents/ui/SearchPage.qml:123
#, kde-format
msgid "Add to Playlist"
msgstr "Zur Wiedergabeliste hinzufügen"
@@ -90,76 +85,50 @@ msgstr "OK"
msgid "Cancel"
msgstr "Abbrechen"
#: contents/ui/LibraryPage.qml:27
#: contents/ui/LibraryPage.qml:15
#, kde-format
msgid "Favourites"
msgstr "Favoriten"
msgstr ""
#: contents/ui/LibraryPage.qml:37 contents/ui/LibraryPage.qml:108
#, kde-format
msgid "Show All"
msgstr "Alle anzeigen"
#: contents/ui/LibraryPage.qml:42
#, kde-format
msgid "Favourite Songs"
msgstr "Lieblingsstücke"
#: contents/ui/LibraryPage.qml:98
#: contents/ui/LibraryPage.qml:67
#, kde-format
msgid "Most played"
msgstr "Am meisten abgespielt"
msgstr ""
#: contents/ui/LibraryPage.qml:113
#, kde-format
msgid "Played Songs"
msgstr "Abgespielte Stücke"
#: contents/ui/main.qml:39
#, kde-format
msgid "Back"
msgstr "Zurück"
#: contents/ui/main.qml:73 contents/ui/SearchPage.qml:150
#, kde-format
msgid "Search"
msgstr "Suchen"
#: contents/ui/main.qml:85
#: contents/ui/main.qml:94
#, kde-format
msgid "AudioTube"
msgstr "AudioTube"
#: contents/ui/MaximizedPlayerPage.qml:92
#, kde-format
msgid "Now Playing"
msgstr "Aktueller Titel"
#: contents/ui/MaximizedPlayerPage.qml:117
#, kde-format
msgid "Queue"
msgstr "Warteschlange"
#: contents/ui/MaximizedPlayerPage.qml:222
#: contents/ui/PlayerFooter.qml:124
#, kde-format
msgid "Remove Track"
msgstr "Stück entfernen"
#: contents/ui/MaximizedPlayerPage.qml:242
#: contents/ui/MinimizedPlayerControls.qml:96
#: 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
#, kde-format
msgid "No media playing"
msgstr "Es werden keine Medien wiedergegeben"
#: contents/ui/PlaybackHistory.qml:15
#: contents/ui/PlayerFooter.qml:266
#, kde-format
msgid "Unknown list of songs"
msgstr "Unbekannte Liste von Liedern"
#: contents/ui/PlaybackHistory.qml:25
#, kde-format
msgid "No songs here yet"
msgstr "Bisher keine Lieder hier"
msgid "Expand"
msgstr "Erweitern"
#: contents/ui/SearchPage.qml:27
#, kde-format
@@ -191,14 +160,10 @@ msgstr "Radio"
msgid "Find music on YouTube Music"
msgstr "Musik auf YouTube suchen"
#~ msgid "Clear"
#~ msgstr "Löschen"
#~ msgid "Pause"
#~ msgstr "Pause"
#~ msgid "Expand"
#~ msgstr "Erweitern"
#: contents/ui/SearchPage.qml:150
#, kde-format
msgid "Search"
msgstr "Suchen"
#~ msgid "Play only Audio"
#~ msgstr "Nur Audio abspielen"
+38 -73
View File
@@ -6,8 +6,8 @@ msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2022-07-12 00:48+0000\n"
"PO-Revision-Date: 2022-07-22 15:55+0100\n"
"POT-Creation-Date: 2022-05-23 00:47+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"
"Language: en_GB\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 22.04.3\n"
"X-Generator: Lokalize 21.12.0\n"
#, kde-format
msgctxt "NAME OF TRANSLATORS"
@@ -27,25 +27,20 @@ msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails"
msgstr "[email protected]"
#: contents/ui/AlbumPage.qml:19 contents/ui/PlaylistPage.qml:19
#: contents/ui/AlbumPage.qml:19 contents/ui/PlayerFooter.qml:192
#: contents/ui/PlaylistPage.qml:19
#, kde-format
msgid "Play"
msgstr "Play"
#: contents/ui/AlbumPage.qml:26 contents/ui/PlaylistPage.qml:26
#, kde-format
msgid "Shuffle"
msgstr "Shuffle"
#: contents/ui/AlbumPage.qml:68 contents/ui/ArtistPage.qml:101
#: contents/ui/PlaybackHistory.qml:74 contents/ui/PlaylistPage.qml:67
#: contents/ui/AlbumPage.qml:61 contents/ui/ArtistPage.qml:101
#: contents/ui/PlaylistPage.qml:67
#, kde-format
msgid "Play Next"
msgstr "Play Next"
#: contents/ui/AlbumPage.qml:73 contents/ui/ArtistPage.qml:107
#: contents/ui/PlaybackHistory.qml:79 contents/ui/PlaylistPage.qml:72
#: contents/ui/SearchPage.qml:123
#: contents/ui/AlbumPage.qml:66 contents/ui/ArtistPage.qml:107
#: contents/ui/PlaylistPage.qml:72 contents/ui/SearchPage.qml:123
#, kde-format
msgid "Add to Playlist"
msgstr "Add to Playlist"
@@ -89,76 +84,50 @@ msgstr "OK"
msgid "Cancel"
msgstr "Cancel"
#: contents/ui/LibraryPage.qml:27
#: contents/ui/LibraryPage.qml:15
#, kde-format
msgid "Favourites"
msgstr "Favourites"
msgstr ""
#: contents/ui/LibraryPage.qml:37 contents/ui/LibraryPage.qml:108
#, kde-format
msgid "Show All"
msgstr "Show All"
#: contents/ui/LibraryPage.qml:42
#, kde-format
msgid "Favourite Songs"
msgstr "Favourite Songs"
#: contents/ui/LibraryPage.qml:98
#: contents/ui/LibraryPage.qml:67
#, kde-format
msgid "Most played"
msgstr "Most played"
msgstr ""
#: contents/ui/LibraryPage.qml:113
#, kde-format
msgid "Played Songs"
msgstr "Played Songs"
#: contents/ui/main.qml:39
#, kde-format
msgid "Back"
msgstr "Back"
#: contents/ui/main.qml:73 contents/ui/SearchPage.qml:150
#, kde-format
msgid "Search"
msgstr "Search"
#: contents/ui/main.qml:85
#: contents/ui/main.qml:94
#, kde-format
msgid "AudioTube"
msgstr "AudioTube"
#: contents/ui/MaximizedPlayerPage.qml:92
#, kde-format
msgid "Now Playing"
msgstr "Now Playing"
#: contents/ui/MaximizedPlayerPage.qml:117
#, kde-format
msgid "Queue"
msgstr "Queue"
#: contents/ui/MaximizedPlayerPage.qml:222
#: contents/ui/PlayerFooter.qml:124
#, kde-format
msgid "Remove Track"
msgstr "Remove Track"
#: contents/ui/MaximizedPlayerPage.qml:242
#: contents/ui/MinimizedPlayerControls.qml:96
#: 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
#, kde-format
msgid "No media playing"
msgstr "No media playing"
#: contents/ui/PlaybackHistory.qml:15
#: contents/ui/PlayerFooter.qml:266
#, kde-format
msgid "Unknown list of songs"
msgstr "Unknown list of songs"
#: contents/ui/PlaybackHistory.qml:25
#, kde-format
msgid "No songs here yet"
msgstr "No songs here yet"
msgid "Expand"
msgstr "Expand"
#: contents/ui/SearchPage.qml:27
#, kde-format
@@ -190,14 +159,10 @@ msgstr "Radio"
msgid "Find music on YouTube Music"
msgstr "Find music on YouTube Music"
#~ msgid "Clear"
#~ msgstr "Clear"
#~ msgid "Pause"
#~ msgstr "Pause"
#~ msgid "Expand"
#~ msgstr "Expand"
#: contents/ui/SearchPage.qml:150
#, kde-format
msgid "Search"
msgstr "Search"
#~ msgid "Play only Audio"
#~ msgstr "Play only Audio"
+39 -74
View File
@@ -3,13 +3,13 @@
# This file is distributed under the same license as the audiotube package.
#
# Automatically generated, 2021.
# Eloy Cuadra <[email protected]>, 2021, 2022.
# Eloy Cuadra <[email protected]>, 2021.
msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2022-07-12 00:48+0000\n"
"PO-Revision-Date: 2022-05-27 12:34+0200\n"
"POT-Creation-Date: 2022-05-23 00:47+0000\n"
"PO-Revision-Date: 2021-12-06 00:36+0100\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 22.04.1\n"
"X-Generator: Lokalize 21.11.90\n"
#, kde-format
msgctxt "NAME OF TRANSLATORS"
@@ -29,25 +29,20 @@ msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails"
msgstr "[email protected]"
#: contents/ui/AlbumPage.qml:19 contents/ui/PlaylistPage.qml:19
#: contents/ui/AlbumPage.qml:19 contents/ui/PlayerFooter.qml:192
#: contents/ui/PlaylistPage.qml:19
#, kde-format
msgid "Play"
msgstr "Reproducir"
#: contents/ui/AlbumPage.qml:26 contents/ui/PlaylistPage.qml:26
#, kde-format
msgid "Shuffle"
msgstr "Desordenar"
#: contents/ui/AlbumPage.qml:68 contents/ui/ArtistPage.qml:101
#: contents/ui/PlaybackHistory.qml:74 contents/ui/PlaylistPage.qml:67
#: contents/ui/AlbumPage.qml:61 contents/ui/ArtistPage.qml:101
#: contents/ui/PlaylistPage.qml:67
#, kde-format
msgid "Play Next"
msgstr "Reproducir siguiente"
#: contents/ui/AlbumPage.qml:73 contents/ui/ArtistPage.qml:107
#: contents/ui/PlaybackHistory.qml:79 contents/ui/PlaylistPage.qml:72
#: contents/ui/SearchPage.qml:123
#: contents/ui/AlbumPage.qml:66 contents/ui/ArtistPage.qml:107
#: contents/ui/PlaylistPage.qml:72 contents/ui/SearchPage.qml:123
#, kde-format
msgid "Add to Playlist"
msgstr "Añadir a la lista de reproducción"
@@ -91,76 +86,50 @@ msgstr "Aceptar"
msgid "Cancel"
msgstr "Cancelar"
#: contents/ui/LibraryPage.qml:27
#: contents/ui/LibraryPage.qml:15
#, kde-format
msgid "Favourites"
msgstr "Favoritas"
msgstr ""
#: contents/ui/LibraryPage.qml:37 contents/ui/LibraryPage.qml:108
#, kde-format
msgid "Show All"
msgstr "Mostrar todas"
#: contents/ui/LibraryPage.qml:42
#, kde-format
msgid "Favourite Songs"
msgstr "Canciones favoritas"
#: contents/ui/LibraryPage.qml:98
#: contents/ui/LibraryPage.qml:67
#, kde-format
msgid "Most played"
msgstr "Más reproducidas"
msgstr ""
#: contents/ui/LibraryPage.qml:113
#, kde-format
msgid "Played Songs"
msgstr "Canciones reproducidas"
#: contents/ui/main.qml:39
#, kde-format
msgid "Back"
msgstr "Volver"
#: contents/ui/main.qml:73 contents/ui/SearchPage.qml:150
#, kde-format
msgid "Search"
msgstr "Buscar"
#: contents/ui/main.qml:85
#: contents/ui/main.qml:94
#, kde-format
msgid "AudioTube"
msgstr "AudioTube"
#: contents/ui/MaximizedPlayerPage.qml:92
#, kde-format
msgid "Now Playing"
msgstr "Reproduciendo"
#: contents/ui/MaximizedPlayerPage.qml:117
#, kde-format
msgid "Queue"
msgstr "Cola"
#: contents/ui/MaximizedPlayerPage.qml:222
#: contents/ui/PlayerFooter.qml:124
#, kde-format
msgid "Remove Track"
msgstr "Eliminar pista"
#: contents/ui/MaximizedPlayerPage.qml:242
#: contents/ui/MinimizedPlayerControls.qml:96
#: 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
#, kde-format
msgid "No media playing"
msgstr "Ningún medio en reproducción"
#: contents/ui/PlaybackHistory.qml:15
#: contents/ui/PlayerFooter.qml:266
#, kde-format
msgid "Unknown list of songs"
msgstr "Lista de canciones desconocida"
#: contents/ui/PlaybackHistory.qml:25
#, kde-format
msgid "No songs here yet"
msgstr "Todavía no contiene canciones"
msgid "Expand"
msgstr "Expandir"
#: contents/ui/SearchPage.qml:27
#, kde-format
@@ -192,14 +161,10 @@ msgstr "Radio"
msgid "Find music on YouTube Music"
msgstr "Encuentre música en YouTube Music"
#~ msgid "Clear"
#~ msgstr "Borrar todo"
#~ msgid "Pause"
#~ msgstr "Pausar"
#~ msgid "Expand"
#~ msgstr "Expandir"
#: contents/ui/SearchPage.qml:150
#, kde-format
msgid "Search"
msgstr "Buscar"
#~ msgid "Play only Audio"
#~ msgstr "Reproducir solo el sonido"
+38 -73
View File
@@ -9,8 +9,8 @@ msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2022-07-12 00:48+0000\n"
"PO-Revision-Date: 2022-07-18 22:37+0200\n"
"POT-Creation-Date: 2022-05-23 00:47+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"
"Language: eu\n"
@@ -18,7 +18,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 22.04.3\n"
"X-Generator: Lokalize 21.12.2\n"
#, kde-format
msgctxt "NAME OF TRANSLATORS"
@@ -30,25 +30,20 @@ msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails"
msgstr "[email protected]"
#: contents/ui/AlbumPage.qml:19 contents/ui/PlaylistPage.qml:19
#: contents/ui/AlbumPage.qml:19 contents/ui/PlayerFooter.qml:192
#: contents/ui/PlaylistPage.qml:19
#, kde-format
msgid "Play"
msgstr "Jo"
#: contents/ui/AlbumPage.qml:26 contents/ui/PlaylistPage.qml:26
#, kde-format
msgid "Shuffle"
msgstr "Nahastu"
#: contents/ui/AlbumPage.qml:68 contents/ui/ArtistPage.qml:101
#: contents/ui/PlaybackHistory.qml:74 contents/ui/PlaylistPage.qml:67
#: contents/ui/AlbumPage.qml:61 contents/ui/ArtistPage.qml:101
#: contents/ui/PlaylistPage.qml:67
#, kde-format
msgid "Play Next"
msgstr "Jo hurrengoa"
#: contents/ui/AlbumPage.qml:73 contents/ui/ArtistPage.qml:107
#: contents/ui/PlaybackHistory.qml:79 contents/ui/PlaylistPage.qml:72
#: contents/ui/SearchPage.qml:123
#: contents/ui/AlbumPage.qml:66 contents/ui/ArtistPage.qml:107
#: contents/ui/PlaylistPage.qml:72 contents/ui/SearchPage.qml:123
#, kde-format
msgid "Add to Playlist"
msgstr "Gehitu jotze-zerrendara"
@@ -92,76 +87,50 @@ msgstr "Ados"
msgid "Cancel"
msgstr "Utzi"
#: contents/ui/LibraryPage.qml:27
#: contents/ui/LibraryPage.qml:15
#, kde-format
msgid "Favourites"
msgstr "Gogokoak"
msgstr ""
#: contents/ui/LibraryPage.qml:37 contents/ui/LibraryPage.qml:108
#, kde-format
msgid "Show All"
msgstr "Erakutsi denak"
#: contents/ui/LibraryPage.qml:42
#, kde-format
msgid "Favourite Songs"
msgstr "Gogoko abestiak"
#: contents/ui/LibraryPage.qml:98
#: contents/ui/LibraryPage.qml:67
#, kde-format
msgid "Most played"
msgstr "Gehien jotakoa"
msgstr ""
#: contents/ui/LibraryPage.qml:113
#, kde-format
msgid "Played Songs"
msgstr "Jotako abestiak"
#: contents/ui/main.qml:39
#, kde-format
msgid "Back"
msgstr "Atzera"
#: contents/ui/main.qml:73 contents/ui/SearchPage.qml:150
#, kde-format
msgid "Search"
msgstr "Bilatu"
#: contents/ui/main.qml:85
#: contents/ui/main.qml:94
#, kde-format
msgid "AudioTube"
msgstr "AudioTube"
#: contents/ui/MaximizedPlayerPage.qml:92
#, kde-format
msgid "Now Playing"
msgstr "Orain jotzen"
#: contents/ui/MaximizedPlayerPage.qml:117
#, kde-format
msgid "Queue"
msgstr "Ilara"
#: contents/ui/MaximizedPlayerPage.qml:222
#: contents/ui/PlayerFooter.qml:124
#, kde-format
msgid "Remove Track"
msgstr "Kendu pista"
#: contents/ui/MaximizedPlayerPage.qml:242
#: contents/ui/MinimizedPlayerControls.qml:96
#: 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
#, kde-format
msgid "No media playing"
msgstr "Ez da euskarririk jotzen ari"
#: contents/ui/PlaybackHistory.qml:15
#: contents/ui/PlayerFooter.qml:266
#, kde-format
msgid "Unknown list of songs"
msgstr "Abesti zerrenda ezezaguna"
#: contents/ui/PlaybackHistory.qml:25
#, kde-format
msgid "No songs here yet"
msgstr "Hemen oraindik ez dago abestirik"
msgid "Expand"
msgstr "Zabaldu"
#: contents/ui/SearchPage.qml:27
#, kde-format
@@ -193,14 +162,10 @@ msgstr "Irratia"
msgid "Find music on YouTube Music"
msgstr "Aurkitu musika «Youtube Music»en"
#~ msgid "Clear"
#~ msgstr "Garbitu"
#~ msgid "Pause"
#~ msgstr "Eten"
#~ msgid "Expand"
#~ msgstr "Zabaldu"
#: contents/ui/SearchPage.qml:150
#, kde-format
msgid "Search"
msgstr "Bilatu"
#~ msgid "Play only Audio"
#~ msgstr "Audio bakarrik jo"
+38 -73
View File
@@ -6,8 +6,8 @@ msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2022-07-12 00:48+0000\n"
"PO-Revision-Date: 2022-06-13 19:11+0300\n"
"POT-Creation-Date: 2022-05-23 00:47+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"
"Language: fi\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 20.04.2\n"
#, kde-format
msgctxt "NAME OF TRANSLATORS"
@@ -27,25 +27,20 @@ msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails"
msgstr "[email protected]"
#: contents/ui/AlbumPage.qml:19 contents/ui/PlaylistPage.qml:19
#: contents/ui/AlbumPage.qml:19 contents/ui/PlayerFooter.qml:192
#: contents/ui/PlaylistPage.qml:19
#, kde-format
msgid "Play"
msgstr "Toista"
#: contents/ui/AlbumPage.qml:26 contents/ui/PlaylistPage.qml:26
#, kde-format
msgid "Shuffle"
msgstr "Sekoita"
#: contents/ui/AlbumPage.qml:68 contents/ui/ArtistPage.qml:101
#: contents/ui/PlaybackHistory.qml:74 contents/ui/PlaylistPage.qml:67
#: contents/ui/AlbumPage.qml:61 contents/ui/ArtistPage.qml:101
#: contents/ui/PlaylistPage.qml:67
#, kde-format
msgid "Play Next"
msgstr "Toista seuraava"
#: contents/ui/AlbumPage.qml:73 contents/ui/ArtistPage.qml:107
#: contents/ui/PlaybackHistory.qml:79 contents/ui/PlaylistPage.qml:72
#: contents/ui/SearchPage.qml:123
#: contents/ui/AlbumPage.qml:66 contents/ui/ArtistPage.qml:107
#: contents/ui/PlaylistPage.qml:72 contents/ui/SearchPage.qml:123
#, kde-format
msgid "Add to Playlist"
msgstr "Lisää soittolistaan"
@@ -88,76 +83,50 @@ msgstr "OK"
msgid "Cancel"
msgstr "Peru"
#: contents/ui/LibraryPage.qml:27
#: contents/ui/LibraryPage.qml:15
#, kde-format
msgid "Favourites"
msgstr "Suosikit"
msgstr ""
#: contents/ui/LibraryPage.qml:37 contents/ui/LibraryPage.qml:108
#, kde-format
msgid "Show All"
msgstr "Näytä kaikki"
#: contents/ui/LibraryPage.qml:42
#, kde-format
msgid "Favourite Songs"
msgstr "Suosikkikappaleet"
#: contents/ui/LibraryPage.qml:98
#: contents/ui/LibraryPage.qml:67
#, kde-format
msgid "Most played"
msgstr "Soitetuimmat"
msgstr ""
#: contents/ui/LibraryPage.qml:113
#, kde-format
msgid "Played Songs"
msgstr "Soitetut kappaleet"
#: contents/ui/main.qml:39
#, kde-format
msgid "Back"
msgstr "Takaisin"
#: contents/ui/main.qml:73 contents/ui/SearchPage.qml:150
#, kde-format
msgid "Search"
msgstr "Etsi"
#: contents/ui/main.qml:85
#: contents/ui/main.qml:94
#, kde-format
msgid "AudioTube"
msgstr "AudioTube"
#: contents/ui/MaximizedPlayerPage.qml:92
#, kde-format
msgid "Now Playing"
msgstr "Nyt soi"
#: contents/ui/MaximizedPlayerPage.qml:117
#, kde-format
msgid "Queue"
msgstr "Jono"
#: contents/ui/MaximizedPlayerPage.qml:222
#: contents/ui/PlayerFooter.qml:124
#, kde-format
msgid "Remove Track"
msgstr "Poista raita"
#: contents/ui/MaximizedPlayerPage.qml:242
#: contents/ui/MinimizedPlayerControls.qml:96
#: 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
#, kde-format
msgid "No media playing"
msgstr "Mitään ei toisteta"
#: contents/ui/PlaybackHistory.qml:15
#: contents/ui/PlayerFooter.qml:266
#, kde-format
msgid "Unknown list of songs"
msgstr "Tuntematon kappaleluettelo"
#: contents/ui/PlaybackHistory.qml:25
#, kde-format
msgid "No songs here yet"
msgstr "Ei vielä kappaleita"
msgid "Expand"
msgstr "Laajenna"
#: contents/ui/SearchPage.qml:27
#, kde-format
@@ -189,14 +158,10 @@ msgstr "Radio"
msgid "Find music on YouTube Music"
msgstr "Etsi musiikkia Youtube Musicista"
#~ msgid "Clear"
#~ msgstr "Tyhjennä"
#~ msgid "Pause"
#~ msgstr "Tauko"
#~ msgid "Expand"
#~ msgstr "Laajenna"
#: contents/ui/SearchPage.qml:150
#, kde-format
msgid "Search"
msgstr "Etsi"
#~ msgid "Play only Audio"
#~ msgstr "Toista vain ääni"
+39 -74
View File
@@ -1,10 +1,10 @@
# Xavier Besnard <[email protected]>, 2021, 2022.
# Xavier Besnard <[email protected]>, 2021.
msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2022-07-12 00:48+0000\n"
"PO-Revision-Date: 2022-06-05 18:56+0200\n"
"POT-Creation-Date: 2022-05-23 00:47+0000\n"
"PO-Revision-Date: 2021-12-06 10:18+0100\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 22.04.1\n"
"X-Generator: Lokalize 21.11.90\n"
#, kde-format
msgctxt "NAME OF TRANSLATORS"
@@ -24,25 +24,20 @@ msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails"
msgstr "[email protected]"
#: contents/ui/AlbumPage.qml:19 contents/ui/PlaylistPage.qml:19
#: contents/ui/AlbumPage.qml:19 contents/ui/PlayerFooter.qml:192
#: contents/ui/PlaylistPage.qml:19
#, kde-format
msgid "Play"
msgstr "Lire"
#: contents/ui/AlbumPage.qml:26 contents/ui/PlaylistPage.qml:26
#, kde-format
msgid "Shuffle"
msgstr "Mélanger"
#: contents/ui/AlbumPage.qml:68 contents/ui/ArtistPage.qml:101
#: contents/ui/PlaybackHistory.qml:74 contents/ui/PlaylistPage.qml:67
#: contents/ui/AlbumPage.qml:61 contents/ui/ArtistPage.qml:101
#: contents/ui/PlaylistPage.qml:67
#, kde-format
msgid "Play Next"
msgstr "Lire le suivant"
#: contents/ui/AlbumPage.qml:73 contents/ui/ArtistPage.qml:107
#: contents/ui/PlaybackHistory.qml:79 contents/ui/PlaylistPage.qml:72
#: contents/ui/SearchPage.qml:123
#: contents/ui/AlbumPage.qml:66 contents/ui/ArtistPage.qml:107
#: contents/ui/PlaylistPage.qml:72 contents/ui/SearchPage.qml:123
#, kde-format
msgid "Add to Playlist"
msgstr "Ajouter à la liste de lecture"
@@ -86,76 +81,50 @@ msgstr "Ok"
msgid "Cancel"
msgstr "Annuler"
#: contents/ui/LibraryPage.qml:27
#: contents/ui/LibraryPage.qml:15
#, kde-format
msgid "Favourites"
msgstr "Favoris"
msgstr ""
#: contents/ui/LibraryPage.qml:37 contents/ui/LibraryPage.qml:108
#, kde-format
msgid "Show All"
msgstr "Tout afficher"
#: contents/ui/LibraryPage.qml:42
#, kde-format
msgid "Favourite Songs"
msgstr "Titres favoris"
#: contents/ui/LibraryPage.qml:98
#: contents/ui/LibraryPage.qml:67
#, kde-format
msgid "Most played"
msgstr "Les plus lus"
msgstr ""
#: contents/ui/LibraryPage.qml:113
#, kde-format
msgid "Played Songs"
msgstr "Titres lus"
#: contents/ui/main.qml:39
#, kde-format
msgid "Back"
msgstr "En arrière"
#: contents/ui/main.qml:73 contents/ui/SearchPage.qml:150
#, kde-format
msgid "Search"
msgstr "Rechercher"
#: contents/ui/main.qml:85
#: contents/ui/main.qml:94
#, kde-format
msgid "AudioTube"
msgstr "AudioTube"
#: contents/ui/MaximizedPlayerPage.qml:92
#, kde-format
msgid "Now Playing"
msgstr "En cours de lecture"
#: contents/ui/MaximizedPlayerPage.qml:117
#, kde-format
msgid "Queue"
msgstr "Mettre en file d'attente"
#: contents/ui/MaximizedPlayerPage.qml:222
#: contents/ui/PlayerFooter.qml:124
#, kde-format
msgid "Remove Track"
msgstr "Supprimer une piste"
#: contents/ui/MaximizedPlayerPage.qml:242
#: contents/ui/MinimizedPlayerControls.qml:96
#: 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
#, kde-format
msgid "No media playing"
msgstr "Aucun média en lecture"
#: contents/ui/PlaybackHistory.qml:15
#: contents/ui/PlayerFooter.qml:266
#, kde-format
msgid "Unknown list of songs"
msgstr "Liste inconnue de titres"
#: contents/ui/PlaybackHistory.qml:25
#, kde-format
msgid "No songs here yet"
msgstr "Aucun titre ici encore"
msgid "Expand"
msgstr "Développer"
#: contents/ui/SearchPage.qml:27
#, kde-format
@@ -187,14 +156,10 @@ msgstr "Radio"
msgid "Find music on YouTube Music"
msgstr "Rechercher de la musique sur « YouTube Music »"
#~ msgid "Clear"
#~ msgstr "Effacer"
#~ msgid "Pause"
#~ msgstr "Pause"
#~ msgid "Expand"
#~ msgstr "Développer"
#: contents/ui/SearchPage.qml:150
#, kde-format
msgid "Search"
msgstr "Rechercher"
#~ msgid "Play only Audio"
#~ msgstr "Ne lire que l'audio"
+34 -70
View File
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2022-07-12 00:48+0000\n"
"POT-Creation-Date: 2022-05-23 00:47+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,25 +27,20 @@ msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails"
msgstr "[email protected]"
#: contents/ui/AlbumPage.qml:19 contents/ui/PlaylistPage.qml:19
#: contents/ui/AlbumPage.qml:19 contents/ui/PlayerFooter.qml:192
#: contents/ui/PlaylistPage.qml:19
#, kde-format
msgid "Play"
msgstr "बजाएँ"
#: contents/ui/AlbumPage.qml:26 contents/ui/PlaylistPage.qml:26
#, kde-format
msgid "Shuffle"
msgstr "फेंटें"
#: contents/ui/AlbumPage.qml:68 contents/ui/ArtistPage.qml:101
#: contents/ui/PlaybackHistory.qml:74 contents/ui/PlaylistPage.qml:67
#: contents/ui/AlbumPage.qml:61 contents/ui/ArtistPage.qml:101
#: contents/ui/PlaylistPage.qml:67
#, kde-format
msgid "Play Next"
msgstr "अगला बजाएँ"
#: contents/ui/AlbumPage.qml:73 contents/ui/ArtistPage.qml:107
#: contents/ui/PlaybackHistory.qml:79 contents/ui/PlaylistPage.qml:72
#: contents/ui/SearchPage.qml:123
#: contents/ui/AlbumPage.qml:66 contents/ui/ArtistPage.qml:107
#: contents/ui/PlaylistPage.qml:72 contents/ui/SearchPage.qml:123
#, kde-format
msgid "Add to Playlist"
msgstr "गीत-सूची में जोड़ें"
@@ -88,77 +83,50 @@ msgstr ""
msgid "Cancel"
msgstr ""
#: contents/ui/LibraryPage.qml:27
#: contents/ui/LibraryPage.qml:15
#, kde-format
msgid "Favourites"
msgstr ""
#: contents/ui/LibraryPage.qml:37 contents/ui/LibraryPage.qml:108
#, kde-format
msgid "Show All"
msgstr ""
#: contents/ui/LibraryPage.qml:42
#, kde-format
msgid "Favourite Songs"
msgstr ""
#: contents/ui/LibraryPage.qml:98
#: contents/ui/LibraryPage.qml:67
#, kde-format
msgid "Most played"
msgstr ""
#: contents/ui/LibraryPage.qml:113
#, kde-format
msgid "Played Songs"
msgstr ""
#: contents/ui/main.qml:39
#, kde-format
msgid "Back"
msgstr ""
#: contents/ui/main.qml:73 contents/ui/SearchPage.qml:150
#, kde-format
msgid "Search"
msgstr "खोजें"
#: contents/ui/main.qml:85
#: contents/ui/main.qml:94
#, kde-format
msgid "AudioTube"
msgstr "ओडियो-ट्यूब"
#: contents/ui/MaximizedPlayerPage.qml:92
#, fuzzy, kde-format
#| msgid "No media playing"
msgid "Now Playing"
msgstr "कोई मीडिया नहीं बजा रहा है"
#: contents/ui/MaximizedPlayerPage.qml:117
#, kde-format
msgid "Queue"
msgstr ""
#: contents/ui/MaximizedPlayerPage.qml:222
#: contents/ui/PlayerFooter.qml:124
#, kde-format
msgid "Remove Track"
msgstr "गाना हटाएँ"
#: contents/ui/MaximizedPlayerPage.qml:242
#: contents/ui/MinimizedPlayerControls.qml:96
#: 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
#, kde-format
msgid "No media playing"
msgstr "कोई मीडिया नहीं बजा रहा है"
#: contents/ui/PlaybackHistory.qml:15
#: contents/ui/PlayerFooter.qml:266
#, kde-format
msgid "Unknown list of songs"
msgstr ""
#: contents/ui/PlaybackHistory.qml:25
#, kde-format
msgid "No songs here yet"
msgstr ""
msgid "Expand"
msgstr "विस्तृत करें"
#: contents/ui/SearchPage.qml:27
#, kde-format
@@ -190,14 +158,10 @@ msgstr "रेडियो"
msgid "Find music on YouTube Music"
msgstr "यूट्यूब संगीत पर संगीत ढूंढें"
#~ msgid "Clear"
#~ msgstr "साफ करें"
#~ msgid "Pause"
#~ msgstr "रोकें"
#~ msgid "Expand"
#~ msgstr "विस्तृत करें"
#: contents/ui/SearchPage.qml:150
#, kde-format
msgid "Search"
msgstr "खोजें"
#~ msgid "Play only Audio"
#~ msgstr "केवल ध्वनी चलाएँ"
+39 -74
View File
@@ -1,13 +1,13 @@
# Copyright (C) YEAR This file is copyright:
# This file is distributed under the same license as the audiotube package.
# Vincenzo Reale <[email protected]>, 2021, 2022.
# Vincenzo Reale <[email protected]>, 2021.
#
msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2022-07-12 00:48+0000\n"
"PO-Revision-Date: 2022-05-26 14:13+0200\n"
"POT-Creation-Date: 2022-05-23 00:47+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"
"Language: it\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 22.04.1\n"
"X-Generator: Lokalize 21.08.3\n"
#, kde-format
msgctxt "NAME OF TRANSLATORS"
@@ -27,25 +27,20 @@ msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails"
msgstr "[email protected]"
#: contents/ui/AlbumPage.qml:19 contents/ui/PlaylistPage.qml:19
#: contents/ui/AlbumPage.qml:19 contents/ui/PlayerFooter.qml:192
#: contents/ui/PlaylistPage.qml:19
#, kde-format
msgid "Play"
msgstr "Riproduci"
#: contents/ui/AlbumPage.qml:26 contents/ui/PlaylistPage.qml:26
#, kde-format
msgid "Shuffle"
msgstr "Mescola"
#: contents/ui/AlbumPage.qml:68 contents/ui/ArtistPage.qml:101
#: contents/ui/PlaybackHistory.qml:74 contents/ui/PlaylistPage.qml:67
#: contents/ui/AlbumPage.qml:61 contents/ui/ArtistPage.qml:101
#: contents/ui/PlaylistPage.qml:67
#, kde-format
msgid "Play Next"
msgstr "Riproduci successivo"
#: contents/ui/AlbumPage.qml:73 contents/ui/ArtistPage.qml:107
#: contents/ui/PlaybackHistory.qml:79 contents/ui/PlaylistPage.qml:72
#: contents/ui/SearchPage.qml:123
#: contents/ui/AlbumPage.qml:66 contents/ui/ArtistPage.qml:107
#: contents/ui/PlaylistPage.qml:72 contents/ui/SearchPage.qml:123
#, kde-format
msgid "Add to Playlist"
msgstr "Aggiungi alla scaletta"
@@ -89,76 +84,50 @@ msgstr "OK"
msgid "Cancel"
msgstr "Annulla"
#: contents/ui/LibraryPage.qml:27
#: contents/ui/LibraryPage.qml:15
#, kde-format
msgid "Favourites"
msgstr "Preferiti"
msgstr ""
#: contents/ui/LibraryPage.qml:37 contents/ui/LibraryPage.qml:108
#, kde-format
msgid "Show All"
msgstr "Mostra tutto"
#: contents/ui/LibraryPage.qml:42
#, kde-format
msgid "Favourite Songs"
msgstr "Brani preferiti"
#: contents/ui/LibraryPage.qml:98
#: contents/ui/LibraryPage.qml:67
#, kde-format
msgid "Most played"
msgstr "Più riprodotti"
msgstr ""
#: contents/ui/LibraryPage.qml:113
#, kde-format
msgid "Played Songs"
msgstr "Brani riprodotti"
#: contents/ui/main.qml:39
#, kde-format
msgid "Back"
msgstr "Indietro"
#: contents/ui/main.qml:73 contents/ui/SearchPage.qml:150
#, kde-format
msgid "Search"
msgstr "Cerca"
#: contents/ui/main.qml:85
#: contents/ui/main.qml:94
#, kde-format
msgid "AudioTube"
msgstr "AudioTube"
#: contents/ui/MaximizedPlayerPage.qml:92
#, kde-format
msgid "Now Playing"
msgstr "In riproduzione"
#: contents/ui/MaximizedPlayerPage.qml:117
#, kde-format
msgid "Queue"
msgstr "Coda"
#: contents/ui/MaximizedPlayerPage.qml:222
#: contents/ui/PlayerFooter.qml:124
#, kde-format
msgid "Remove Track"
msgstr "Rimuovi traccia"
#: contents/ui/MaximizedPlayerPage.qml:242
#: contents/ui/MinimizedPlayerControls.qml:96
#: 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
#, kde-format
msgid "No media playing"
msgstr "Nessun supporto in riproduzione"
#: contents/ui/PlaybackHistory.qml:15
#: contents/ui/PlayerFooter.qml:266
#, kde-format
msgid "Unknown list of songs"
msgstr "Elenco di brani sconosciuto"
#: contents/ui/PlaybackHistory.qml:25
#, kde-format
msgid "No songs here yet"
msgstr "Non c'è ancora alcun brano"
msgid "Expand"
msgstr "Espandi"
#: contents/ui/SearchPage.qml:27
#, kde-format
@@ -190,14 +159,10 @@ msgstr "Radio"
msgid "Find music on YouTube Music"
msgstr "Trova musica su Youtube Music"
#~ msgid "Clear"
#~ msgstr "Pulisci"
#~ msgid "Pause"
#~ msgstr "Pausa"
#~ msgid "Expand"
#~ msgstr "Espandi"
#: contents/ui/SearchPage.qml:150
#, kde-format
msgid "Search"
msgstr "Cerca"
#~ msgid "Play only Audio"
#~ msgstr "Riproduci solo l'audio"
+39 -74
View File
@@ -1,13 +1,13 @@
# Copyright (C) YEAR This file is copyright:
# This file is distributed under the same license as the audiotube package.
# Shinjo Park <[email protected]>, 2021, 2022.
# Shinjo Park <[email protected]>, 2021.
#
msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2022-07-12 00:48+0000\n"
"PO-Revision-Date: 2022-07-13 15:34+0200\n"
"POT-Creation-Date: 2022-05-23 00:47+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"
"Language: ko\n"
@@ -15,7 +15,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Lokalize 21.12.3\n"
"X-Generator: Lokalize 21.08.1\n"
#, kde-format
msgctxt "NAME OF TRANSLATORS"
@@ -27,25 +27,20 @@ msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails"
msgstr "[email protected]"
#: contents/ui/AlbumPage.qml:19 contents/ui/PlaylistPage.qml:19
#: contents/ui/AlbumPage.qml:19 contents/ui/PlayerFooter.qml:192
#: contents/ui/PlaylistPage.qml:19
#, kde-format
msgid "Play"
msgstr "재생"
#: contents/ui/AlbumPage.qml:26 contents/ui/PlaylistPage.qml:26
#, kde-format
msgid "Shuffle"
msgstr "무순서 재생"
#: contents/ui/AlbumPage.qml:68 contents/ui/ArtistPage.qml:101
#: contents/ui/PlaybackHistory.qml:74 contents/ui/PlaylistPage.qml:67
#: contents/ui/AlbumPage.qml:61 contents/ui/ArtistPage.qml:101
#: contents/ui/PlaylistPage.qml:67
#, kde-format
msgid "Play Next"
msgstr "다음 재생"
#: contents/ui/AlbumPage.qml:73 contents/ui/ArtistPage.qml:107
#: contents/ui/PlaybackHistory.qml:79 contents/ui/PlaylistPage.qml:72
#: contents/ui/SearchPage.qml:123
#: contents/ui/AlbumPage.qml:66 contents/ui/ArtistPage.qml:107
#: contents/ui/PlaylistPage.qml:72 contents/ui/SearchPage.qml:123
#, kde-format
msgid "Add to Playlist"
msgstr "재생 목록에 추가"
@@ -87,76 +82,50 @@ msgstr "확인"
msgid "Cancel"
msgstr "취소"
#: contents/ui/LibraryPage.qml:27
#: contents/ui/LibraryPage.qml:15
#, kde-format
msgid "Favourites"
msgstr "책갈피"
msgstr ""
#: contents/ui/LibraryPage.qml:37 contents/ui/LibraryPage.qml:108
#, kde-format
msgid "Show All"
msgstr "모두 표시"
#: contents/ui/LibraryPage.qml:42
#, kde-format
msgid "Favourite Songs"
msgstr "책갈피에 등록된 노래"
#: contents/ui/LibraryPage.qml:98
#: contents/ui/LibraryPage.qml:67
#, kde-format
msgid "Most played"
msgstr "가장 많이 재생됨"
msgstr ""
#: contents/ui/LibraryPage.qml:113
#, kde-format
msgid "Played Songs"
msgstr "재생한 노래"
#: contents/ui/main.qml:39
#, kde-format
msgid "Back"
msgstr "뒤로"
#: contents/ui/main.qml:73 contents/ui/SearchPage.qml:150
#, kde-format
msgid "Search"
msgstr "검색"
#: contents/ui/main.qml:85
#: contents/ui/main.qml:94
#, kde-format
msgid "AudioTube"
msgstr "AudioTube"
#: contents/ui/MaximizedPlayerPage.qml:92
#, kde-format
msgid "Now Playing"
msgstr "지금 재생 중"
#: contents/ui/MaximizedPlayerPage.qml:117
#, kde-format
msgid "Queue"
msgstr "대기열에 추가"
#: contents/ui/MaximizedPlayerPage.qml:222
#: contents/ui/PlayerFooter.qml:124
#, kde-format
msgid "Remove Track"
msgstr "트랙 삭제"
#: contents/ui/MaximizedPlayerPage.qml:242
#: contents/ui/MinimizedPlayerControls.qml:96
#: 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
#, kde-format
msgid "No media playing"
msgstr "재생 중인 미디어 없음"
#: contents/ui/PlaybackHistory.qml:15
#: contents/ui/PlayerFooter.qml:266
#, kde-format
msgid "Unknown list of songs"
msgstr "알 수 없는 노래 목록"
#: contents/ui/PlaybackHistory.qml:25
#, kde-format
msgid "No songs here yet"
msgstr "목록에 등록된 곡 없음"
msgid "Expand"
msgstr "확장"
#: contents/ui/SearchPage.qml:27
#, kde-format
@@ -188,14 +157,10 @@ msgstr "라디오"
msgid "Find music on YouTube Music"
msgstr "YouTube Music에서 음악 찾기"
#~ msgid "Clear"
#~ msgstr "지우기"
#~ msgid "Pause"
#~ msgstr "일시 정지"
#~ msgid "Expand"
#~ msgstr "확장"
#: contents/ui/SearchPage.qml:150
#, kde-format
msgid "Search"
msgstr "검색"
#~ msgid "Play only Audio"
#~ msgstr "오디오만 재생"
+40 -75
View File
@@ -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, 2022.
# Freek de Kruijf <[email protected]>, 2021.
msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2022-07-12 00:48+0000\n"
"PO-Revision-Date: 2022-05-26 13:17+0200\n"
"POT-Creation-Date: 2022-05-23 00:47+0000\n"
"PO-Revision-Date: 2021-12-05 16:48+0100\n"
"Last-Translator: Freek de Kruijf <[email protected]>\n"
"Language-Team: \n"
"Language: nl\n"
@@ -15,37 +15,32 @@ 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 22.04.1\n"
"X-Generator: Lokalize 21.08.3\n"
#, kde-format
msgctxt "NAME OF TRANSLATORS"
msgid "Your names"
msgstr "Freek de Kruijf - 2021 t/m 2022"
msgstr "Freek de Kruijf - 2021"
#, kde-format
msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails"
msgstr "[email protected]"
#: contents/ui/AlbumPage.qml:19 contents/ui/PlaylistPage.qml:19
#: contents/ui/AlbumPage.qml:19 contents/ui/PlayerFooter.qml:192
#: contents/ui/PlaylistPage.qml:19
#, kde-format
msgid "Play"
msgstr "Afspelen"
#: contents/ui/AlbumPage.qml:26 contents/ui/PlaylistPage.qml:26
#, kde-format
msgid "Shuffle"
msgstr "Willekeurig afspelen"
#: contents/ui/AlbumPage.qml:68 contents/ui/ArtistPage.qml:101
#: contents/ui/PlaybackHistory.qml:74 contents/ui/PlaylistPage.qml:67
#: contents/ui/AlbumPage.qml:61 contents/ui/ArtistPage.qml:101
#: contents/ui/PlaylistPage.qml:67
#, kde-format
msgid "Play Next"
msgstr "Volgende afspelen"
#: contents/ui/AlbumPage.qml:73 contents/ui/ArtistPage.qml:107
#: contents/ui/PlaybackHistory.qml:79 contents/ui/PlaylistPage.qml:72
#: contents/ui/SearchPage.qml:123
#: contents/ui/AlbumPage.qml:66 contents/ui/ArtistPage.qml:107
#: contents/ui/PlaylistPage.qml:72 contents/ui/SearchPage.qml:123
#, kde-format
msgid "Add to Playlist"
msgstr "Aan afspeellijst toevoegen"
@@ -89,76 +84,50 @@ msgstr "OK"
msgid "Cancel"
msgstr "Annuleren"
#: contents/ui/LibraryPage.qml:27
#: contents/ui/LibraryPage.qml:15
#, kde-format
msgid "Favourites"
msgstr "Favorieten"
msgstr ""
#: contents/ui/LibraryPage.qml:37 contents/ui/LibraryPage.qml:108
#, kde-format
msgid "Show All"
msgstr "Alles tonen"
#: contents/ui/LibraryPage.qml:42
#, kde-format
msgid "Favourite Songs"
msgstr "Favoriete songs"
#: contents/ui/LibraryPage.qml:98
#: contents/ui/LibraryPage.qml:67
#, kde-format
msgid "Most played"
msgstr "Meest afgespeeld"
msgstr ""
#: contents/ui/LibraryPage.qml:113
#, kde-format
msgid "Played Songs"
msgstr "Afgespeelde songs"
#: contents/ui/main.qml:39
#, kde-format
msgid "Back"
msgstr "Terug"
#: contents/ui/main.qml:73 contents/ui/SearchPage.qml:150
#, kde-format
msgid "Search"
msgstr "Zoeken"
#: contents/ui/main.qml:85
#: contents/ui/main.qml:94
#, kde-format
msgid "AudioTube"
msgstr "AudioTube"
#: contents/ui/MaximizedPlayerPage.qml:92
#, kde-format
msgid "Now Playing"
msgstr "Speelt nu"
#: contents/ui/MaximizedPlayerPage.qml:117
#, kde-format
msgid "Queue"
msgstr "Wachtrij"
#: contents/ui/MaximizedPlayerPage.qml:222
#: contents/ui/PlayerFooter.qml:124
#, kde-format
msgid "Remove Track"
msgstr "Track verwijderen"
#: contents/ui/MaximizedPlayerPage.qml:242
#: contents/ui/MinimizedPlayerControls.qml:96
#: 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
#, kde-format
msgid "No media playing"
msgstr "Er speelt geen medium"
#: contents/ui/PlaybackHistory.qml:15
#: contents/ui/PlayerFooter.qml:266
#, kde-format
msgid "Unknown list of songs"
msgstr "Onbekende lijst met songs"
#: contents/ui/PlaybackHistory.qml:25
#, kde-format
msgid "No songs here yet"
msgstr "Er zijn hier nog geen songs"
msgid "Expand"
msgstr "Uitbreiden"
#: contents/ui/SearchPage.qml:27
#, kde-format
@@ -190,14 +159,10 @@ msgstr "Radio"
msgid "Find music on YouTube Music"
msgstr "Muziek zoeken op YouTube Music"
#~ msgid "Clear"
#~ msgstr "Wissen"
#~ msgid "Pause"
#~ msgstr "Pauzeren"
#~ msgid "Expand"
#~ msgstr "Uitbreiden"
#: contents/ui/SearchPage.qml:150
#, kde-format
msgid "Search"
msgstr "Zoeken"
#~ msgid "Play only Audio"
#~ msgstr "Alleen geluid afspelen"
-192
View File
@@ -1,192 +0,0 @@
# Translation of audiotube to Norwegian Nynorsk
#
# Øystein Steffensen-Alværvik <[email protected]>, 2022.
# Karl Ove Hufthammer <[email protected]>, 2022.
msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2022-07-12 00:48+0000\n"
"PO-Revision-Date: 2022-08-07 12:08+0200\n"
"Last-Translator: Karl Ove Hufthammer <[email protected]>\n"
"Language-Team: Norwegian Nynorsk <[email protected]>\n"
"Language: nn\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 22.04.3\n"
"X-Environment: kde\n"
"X-Accelerator-Marker: &\n"
"X-Text-Markup: kde4\n"
#, kde-format
msgctxt "NAME OF TRANSLATORS"
msgid "Your names"
msgstr "Øystein Steffensen-Alværvik"
#, kde-format
msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails"
msgstr "[email protected]"
#: contents/ui/AlbumPage.qml:19 contents/ui/PlaylistPage.qml:19
#, kde-format
msgid "Play"
msgstr "Spel av"
#: contents/ui/AlbumPage.qml:26 contents/ui/PlaylistPage.qml:26
#, kde-format
msgid "Shuffle"
msgstr "Stokk om"
#: contents/ui/AlbumPage.qml:68 contents/ui/ArtistPage.qml:101
#: contents/ui/PlaybackHistory.qml:74 contents/ui/PlaylistPage.qml:67
#, kde-format
msgid "Play Next"
msgstr "Spel som neste"
#: contents/ui/AlbumPage.qml:73 contents/ui/ArtistPage.qml:107
#: contents/ui/PlaybackHistory.qml:79 contents/ui/PlaylistPage.qml:72
#: contents/ui/SearchPage.qml:123
#, kde-format
msgid "Add to Playlist"
msgstr "Legg til speleliste"
#: contents/ui/ArtistPage.qml:39 contents/ui/SearchPage.qml:67
#, kde-format
msgid ""
"Video playback is not supported yet. Do you want to play only the audio of "
"\"%1\"?"
msgstr "Videoavspeling er endå ikkje støtta. Vil du spela av lyden til «%1»?"
#: contents/ui/ArtistPage.qml:55 contents/ui/SearchPage.qml:25
#, kde-format
msgid "Albums"
msgstr "Album"
#: contents/ui/ArtistPage.qml:57
#, kde-format
msgid "Singles"
msgstr "Singelplater"
#: contents/ui/ArtistPage.qml:59 contents/ui/SearchPage.qml:31
#, kde-format
msgid "Songs"
msgstr "Songar"
#: contents/ui/ArtistPage.qml:61 contents/ui/SearchPage.qml:33
#, kde-format
msgid "Videos"
msgstr "Videoar"
#: contents/ui/ConfirmationMessage.qml:16
#, kde-format
msgid "OK"
msgstr "OK"
#: contents/ui/ConfirmationMessage.qml:21
#, kde-format
msgid "Cancel"
msgstr "Avbryt"
#: contents/ui/LibraryPage.qml:27
#, kde-format
msgid "Favourites"
msgstr "Favorittar"
#: contents/ui/LibraryPage.qml:37 contents/ui/LibraryPage.qml:108
#, kde-format
msgid "Show All"
msgstr "Vis alle"
#: contents/ui/LibraryPage.qml:42
#, kde-format
msgid "Favourite Songs"
msgstr "Favorittsongar"
#: contents/ui/LibraryPage.qml:98
#, kde-format
msgid "Most played"
msgstr "Oftast avspela"
#: contents/ui/LibraryPage.qml:113
#, kde-format
msgid "Played Songs"
msgstr "Avspela songar"
#: contents/ui/main.qml:39
#, kde-format
msgid "Back"
msgstr "Tilbake"
#: contents/ui/main.qml:73 contents/ui/SearchPage.qml:150
#, kde-format
msgid "Search"
msgstr "Søk"
#: contents/ui/main.qml:85
#, kde-format
msgid "AudioTube"
msgstr "AudioTube"
#: contents/ui/MaximizedPlayerPage.qml:92
#, kde-format
msgid "Now Playing"
msgstr "Spelar no"
#: contents/ui/MaximizedPlayerPage.qml:117
#, kde-format
msgid "Queue"
msgstr "Kø"
#: contents/ui/MaximizedPlayerPage.qml:222
#, kde-format
msgid "Remove Track"
msgstr "Fjern spor"
#: contents/ui/MaximizedPlayerPage.qml:242
#: contents/ui/MinimizedPlayerControls.qml:96
#, kde-format
msgid "No media playing"
msgstr "Inkje medium vert spela"
#: contents/ui/PlaybackHistory.qml:15
#, kde-format
msgid "Unknown list of songs"
msgstr "Ukjend songliste"
#: contents/ui/PlaybackHistory.qml:25
#, kde-format
msgid "No songs here yet"
msgstr "Ingen songar enno"
#: contents/ui/SearchPage.qml:27
#, kde-format
msgid "Artists"
msgstr "Artistar"
#: contents/ui/SearchPage.qml:29
#, kde-format
msgid "Playlists"
msgstr "Spelelister"
#: contents/ui/SearchPage.qml:36
#, kde-format
msgid "Unknown"
msgstr "Ukjend"
#: contents/ui/SearchPage.qml:117
#, kde-format
msgid "Play next"
msgstr "Spel som neste"
#: contents/ui/SearchPage.qml:129
#, kde-format
msgid "Radio"
msgstr "Radio"
#: contents/ui/SearchPage.qml:147
#, kde-format
msgid "Find music on YouTube Music"
msgstr "Søk etter musikk på YouTube Music"
+34 -70
View File
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2022-07-12 00:48+0000\n"
"POT-Creation-Date: 2022-05-23 00:47+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,25 +27,20 @@ msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails"
msgstr "alam yellow @ gmail.com"
#: contents/ui/AlbumPage.qml:19 contents/ui/PlaylistPage.qml:19
#: contents/ui/AlbumPage.qml:19 contents/ui/PlayerFooter.qml:192
#: contents/ui/PlaylistPage.qml:19
#, kde-format
msgid "Play"
msgstr "ਚਲਾਓ"
#: contents/ui/AlbumPage.qml:26 contents/ui/PlaylistPage.qml:26
#, kde-format
msgid "Shuffle"
msgstr "ਰਲਵੇਂ"
#: contents/ui/AlbumPage.qml:68 contents/ui/ArtistPage.qml:101
#: contents/ui/PlaybackHistory.qml:74 contents/ui/PlaylistPage.qml:67
#: contents/ui/AlbumPage.qml:61 contents/ui/ArtistPage.qml:101
#: contents/ui/PlaylistPage.qml:67
#, kde-format
msgid "Play Next"
msgstr "ਅਗਲਾ ਚਲਾਓ"
#: contents/ui/AlbumPage.qml:73 contents/ui/ArtistPage.qml:107
#: contents/ui/PlaybackHistory.qml:79 contents/ui/PlaylistPage.qml:72
#: contents/ui/SearchPage.qml:123
#: contents/ui/AlbumPage.qml:66 contents/ui/ArtistPage.qml:107
#: contents/ui/PlaylistPage.qml:72 contents/ui/SearchPage.qml:123
#, kde-format
msgid "Add to Playlist"
msgstr "ਪਲੇਅਲਿਸਟ ਵਿੱਚ ਜੋੜੋ"
@@ -87,77 +82,50 @@ msgstr "ਠੀਕ ਹੈ"
msgid "Cancel"
msgstr "ਰੱਦ ਕਰੋ"
#: contents/ui/LibraryPage.qml:27
#: contents/ui/LibraryPage.qml:15
#, kde-format
msgid "Favourites"
msgstr ""
#: contents/ui/LibraryPage.qml:37 contents/ui/LibraryPage.qml:108
#, kde-format
msgid "Show All"
msgstr ""
#: contents/ui/LibraryPage.qml:42
#, kde-format
msgid "Favourite Songs"
msgstr ""
#: contents/ui/LibraryPage.qml:98
#: contents/ui/LibraryPage.qml:67
#, kde-format
msgid "Most played"
msgstr ""
#: contents/ui/LibraryPage.qml:113
#, kde-format
msgid "Played Songs"
msgstr ""
#: contents/ui/main.qml:39
#, kde-format
msgid "Back"
msgstr ""
#: contents/ui/main.qml:73 contents/ui/SearchPage.qml:150
#, kde-format
msgid "Search"
msgstr "ਖੋਜੋ"
#: contents/ui/main.qml:85
#: contents/ui/main.qml:94
#, kde-format
msgid "AudioTube"
msgstr "ਆਡੀਓ-ਟਿਊਬ"
#: contents/ui/MaximizedPlayerPage.qml:92
#, fuzzy, kde-format
#| msgid "No media playing"
msgid "Now Playing"
msgstr "ਕੋਈ ਮੀਡੀਆ ਨਹੀਂ ਚੱਲਦਾ"
#: contents/ui/MaximizedPlayerPage.qml:117
#, kde-format
msgid "Queue"
msgstr ""
#: contents/ui/MaximizedPlayerPage.qml:222
#: contents/ui/PlayerFooter.qml:124
#, kde-format
msgid "Remove Track"
msgstr "ਟਰੈਕ ਨੂੰ ਹਟਾਓ"
#: contents/ui/MaximizedPlayerPage.qml:242
#: contents/ui/MinimizedPlayerControls.qml:96
#: 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
#, kde-format
msgid "No media playing"
msgstr "ਕੋਈ ਮੀਡੀਆ ਨਹੀਂ ਚੱਲਦਾ"
#: contents/ui/PlaybackHistory.qml:15
#: contents/ui/PlayerFooter.qml:266
#, kde-format
msgid "Unknown list of songs"
msgstr ""
#: contents/ui/PlaybackHistory.qml:25
#, kde-format
msgid "No songs here yet"
msgstr ""
msgid "Expand"
msgstr "ਫੈਲਾਓ"
#: contents/ui/SearchPage.qml:27
#, kde-format
@@ -189,14 +157,10 @@ msgstr "ਰੇਡੀਓ"
msgid "Find music on YouTube Music"
msgstr "ਯੂਟਿਊਬ ਸੰਗੀਤ ਉੱਤੇ ਸੰਗੀਤ ਲੱਭੋ"
#~ msgid "Clear"
#~ msgstr "ਮਿਟਾਓ"
#~ msgid "Pause"
#~ msgstr "ਵਿਰਾਮ"
#~ msgid "Expand"
#~ msgstr "ਫੈਲਾਓ"
#: contents/ui/SearchPage.qml:150
#, kde-format
msgid "Search"
msgstr "ਖੋਜੋ"
#~ msgid "Play only Audio"
#~ msgstr "ਸਿਰਫ਼ ਆਡੀਓ ਹੀ ਚਲਾਓ"
+38 -73
View File
@@ -1,14 +1,14 @@
# Copyright (C) YEAR This file is copyright:
# This file is distributed under the same license as the audiotube package.
#
# Łukasz Wojniłowicz <[email protected]>, 2021, 2022.
# Łukasz Wojniłowicz <[email protected]>, 2021.
# Ignacy Kajdan <[email protected]>, 2021.
msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2022-07-12 00:48+0000\n"
"PO-Revision-Date: 2022-06-26 20:24+0200\n"
"POT-Creation-Date: 2022-05-23 00:47+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"
"Language: pl\n"
@@ -29,25 +29,20 @@ msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails"
msgstr "[email protected], [email protected]"
#: contents/ui/AlbumPage.qml:19 contents/ui/PlaylistPage.qml:19
#: contents/ui/AlbumPage.qml:19 contents/ui/PlayerFooter.qml:192
#: contents/ui/PlaylistPage.qml:19
#, kde-format
msgid "Play"
msgstr "Odtwórz"
#: contents/ui/AlbumPage.qml:26 contents/ui/PlaylistPage.qml:26
#, kde-format
msgid "Shuffle"
msgstr "Wymieszaj"
#: contents/ui/AlbumPage.qml:68 contents/ui/ArtistPage.qml:101
#: contents/ui/PlaybackHistory.qml:74 contents/ui/PlaylistPage.qml:67
#: contents/ui/AlbumPage.qml:61 contents/ui/ArtistPage.qml:101
#: contents/ui/PlaylistPage.qml:67
#, kde-format
msgid "Play Next"
msgstr "Odtwórz następny"
#: contents/ui/AlbumPage.qml:73 contents/ui/ArtistPage.qml:107
#: contents/ui/PlaybackHistory.qml:79 contents/ui/PlaylistPage.qml:72
#: contents/ui/SearchPage.qml:123
#: contents/ui/AlbumPage.qml:66 contents/ui/ArtistPage.qml:107
#: contents/ui/PlaylistPage.qml:72 contents/ui/SearchPage.qml:123
#, kde-format
msgid "Add to Playlist"
msgstr "Dodaj do listy odtwarzania"
@@ -91,76 +86,50 @@ msgstr "OK"
msgid "Cancel"
msgstr "Anuluj"
#: contents/ui/LibraryPage.qml:27
#: contents/ui/LibraryPage.qml:15
#, kde-format
msgid "Favourites"
msgstr "Ulubione"
msgstr ""
#: contents/ui/LibraryPage.qml:37 contents/ui/LibraryPage.qml:108
#, kde-format
msgid "Show All"
msgstr "Pokaż wszystkie"
#: contents/ui/LibraryPage.qml:42
#, kde-format
msgid "Favourite Songs"
msgstr "Ulubione utwory"
#: contents/ui/LibraryPage.qml:98
#: contents/ui/LibraryPage.qml:67
#, kde-format
msgid "Most played"
msgstr "Najczęściej odtwarzane"
msgstr ""
#: contents/ui/LibraryPage.qml:113
#, kde-format
msgid "Played Songs"
msgstr "Odtwarzane utwory"
#: contents/ui/main.qml:39
#, kde-format
msgid "Back"
msgstr "Wstecz"
#: contents/ui/main.qml:73 contents/ui/SearchPage.qml:150
#, kde-format
msgid "Search"
msgstr "Szukaj"
#: contents/ui/main.qml:85
#: contents/ui/main.qml:94
#, kde-format
msgid "AudioTube"
msgstr "AudioTube"
#: contents/ui/MaximizedPlayerPage.qml:92
#, kde-format
msgid "Now Playing"
msgstr "Teraz odtwarzany"
#: contents/ui/MaximizedPlayerPage.qml:117
#, kde-format
msgid "Queue"
msgstr "Kolejka"
#: contents/ui/MaximizedPlayerPage.qml:222
#: contents/ui/PlayerFooter.qml:124
#, kde-format
msgid "Remove Track"
msgstr "Usuń utwór"
#: contents/ui/MaximizedPlayerPage.qml:242
#: contents/ui/MinimizedPlayerControls.qml:96
#: 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
#, kde-format
msgid "No media playing"
msgstr "Nic nie jest odtwarzane"
#: contents/ui/PlaybackHistory.qml:15
#: contents/ui/PlayerFooter.qml:266
#, kde-format
msgid "Unknown list of songs"
msgstr "Nieznana lista utworów"
#: contents/ui/PlaybackHistory.qml:25
#, kde-format
msgid "No songs here yet"
msgstr "Jeszcze nie ma tutaj utworów"
msgid "Expand"
msgstr "Rozwiń"
#: contents/ui/SearchPage.qml:27
#, kde-format
@@ -192,14 +161,10 @@ msgstr "Radio"
msgid "Find music on YouTube Music"
msgstr "Znajdź muzykę w serwisie YouTube Music"
#~ msgid "Clear"
#~ msgstr "Wyczyść"
#~ msgid "Pause"
#~ msgstr "Wstrzymaj"
#~ msgid "Expand"
#~ msgstr "Rozwiń"
#: contents/ui/SearchPage.qml:150
#, kde-format
msgid "Search"
msgstr "Szukaj"
#~ msgid "Play only Audio"
#~ msgstr "Odtwórz tylko dźwięk"
+41 -64
View File
@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2022-07-12 00:48+0000\n"
"PO-Revision-Date: 2022-06-03 17:36+0100\n"
"POT-Creation-Date: 2022-05-23 00:47+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"
"Language: pt\n"
@@ -29,25 +29,20 @@ msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails"
msgstr "[email protected]"
#: contents/ui/AlbumPage.qml:19 contents/ui/PlaylistPage.qml:19
#: contents/ui/AlbumPage.qml:19 contents/ui/PlayerFooter.qml:192
#: contents/ui/PlaylistPage.qml:19
#, kde-format
msgid "Play"
msgstr "Reproduzir"
#: contents/ui/AlbumPage.qml:26 contents/ui/PlaylistPage.qml:26
#, kde-format
msgid "Shuffle"
msgstr "Baralhar"
#: contents/ui/AlbumPage.qml:68 contents/ui/ArtistPage.qml:101
#: contents/ui/PlaybackHistory.qml:74 contents/ui/PlaylistPage.qml:67
#: contents/ui/AlbumPage.qml:61 contents/ui/ArtistPage.qml:101
#: contents/ui/PlaylistPage.qml:67
#, kde-format
msgid "Play Next"
msgstr "Reproduzir o Seguinte"
#: contents/ui/AlbumPage.qml:73 contents/ui/ArtistPage.qml:107
#: contents/ui/PlaybackHistory.qml:79 contents/ui/PlaylistPage.qml:72
#: contents/ui/SearchPage.qml:123
#: contents/ui/AlbumPage.qml:66 contents/ui/ArtistPage.qml:107
#: contents/ui/PlaylistPage.qml:72 contents/ui/SearchPage.qml:123
#, kde-format
msgid "Add to Playlist"
msgstr "Adicionar à Lista de Reprodução"
@@ -91,76 +86,50 @@ msgstr "OK"
msgid "Cancel"
msgstr "Cancelar"
#: contents/ui/LibraryPage.qml:27
#: contents/ui/LibraryPage.qml:15
#, kde-format
msgid "Favourites"
msgstr "Favoritos"
msgstr ""
#: contents/ui/LibraryPage.qml:37 contents/ui/LibraryPage.qml:108
#, kde-format
msgid "Show All"
msgstr "Mostrar Tudo"
#: contents/ui/LibraryPage.qml:42
#, kde-format
msgid "Favourite Songs"
msgstr "Músicas Favoritas"
#: contents/ui/LibraryPage.qml:98
#: contents/ui/LibraryPage.qml:67
#, kde-format
msgid "Most played"
msgstr "Mais Tocadas"
msgstr ""
#: contents/ui/LibraryPage.qml:113
#, kde-format
msgid "Played Songs"
msgstr "Músicas Tocadas"
#: contents/ui/main.qml:39
#, kde-format
msgid "Back"
msgstr "Recuar"
#: contents/ui/main.qml:73 contents/ui/SearchPage.qml:150
#, kde-format
msgid "Search"
msgstr "Procurar"
#: contents/ui/main.qml:85
#: contents/ui/main.qml:94
#, kde-format
msgid "AudioTube"
msgstr "AudioTube"
#: contents/ui/MaximizedPlayerPage.qml:92
#, kde-format
msgid "Now Playing"
msgstr "Agora a Ouvir"
#: contents/ui/MaximizedPlayerPage.qml:117
#, kde-format
msgid "Queue"
msgstr "Fila"
#: contents/ui/MaximizedPlayerPage.qml:222
#: contents/ui/PlayerFooter.qml:124
#, kde-format
msgid "Remove Track"
msgstr "Remover a Faixa"
#: contents/ui/MaximizedPlayerPage.qml:242
#: contents/ui/MinimizedPlayerControls.qml:96
#: 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
#, kde-format
msgid "No media playing"
msgstr "Nada em reprodução"
#: contents/ui/PlaybackHistory.qml:15
#: contents/ui/PlayerFooter.qml:266
#, kde-format
msgid "Unknown list of songs"
msgstr "Lista de músicas desconhecida"
#: contents/ui/PlaybackHistory.qml:25
#, kde-format
msgid "No songs here yet"
msgstr "Ainda sem músicas aqui"
msgid "Expand"
msgstr "Expandir"
#: contents/ui/SearchPage.qml:27
#, kde-format
@@ -191,3 +160,11 @@ msgstr "Rádio"
#, kde-format
msgid "Find music on YouTube Music"
msgstr "Procurar música no YouTube Music"
#: contents/ui/SearchPage.qml:150
#, kde-format
msgid "Search"
msgstr "Procurar"
#~ msgid "Play only Audio"
#~ msgstr "Reproduzir só o Áudio"
+39 -74
View File
@@ -1,14 +1,14 @@
# Copyright (C) YEAR This file is copyright:
# This file is distributed under the same license as the audiotube package.
#
# Luiz Fernando Ranghetti <[email protected]>, 2021, 2022.
# Luiz Fernando Ranghetti <[email protected]>, 2021.
# Thiago Masato Costa Sueto <[email protected]>, 2021.
msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2022-07-12 00:48+0000\n"
"PO-Revision-Date: 2022-07-13 14:59-0300\n"
"POT-Creation-Date: 2022-05-23 00:47+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"
"Language: pt_BR\n"
@@ -16,7 +16,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 20.04.2\n"
#, kde-format
msgctxt "NAME OF TRANSLATORS"
@@ -28,25 +28,20 @@ msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails"
msgstr "[email protected]"
#: contents/ui/AlbumPage.qml:19 contents/ui/PlaylistPage.qml:19
#: contents/ui/AlbumPage.qml:19 contents/ui/PlayerFooter.qml:192
#: contents/ui/PlaylistPage.qml:19
#, kde-format
msgid "Play"
msgstr "Reproduzir"
#: contents/ui/AlbumPage.qml:26 contents/ui/PlaylistPage.qml:26
#, kde-format
msgid "Shuffle"
msgstr "Embaralhar"
#: contents/ui/AlbumPage.qml:68 contents/ui/ArtistPage.qml:101
#: contents/ui/PlaybackHistory.qml:74 contents/ui/PlaylistPage.qml:67
#: contents/ui/AlbumPage.qml:61 contents/ui/ArtistPage.qml:101
#: contents/ui/PlaylistPage.qml:67
#, kde-format
msgid "Play Next"
msgstr "Reproduzir próxima"
#: contents/ui/AlbumPage.qml:73 contents/ui/ArtistPage.qml:107
#: contents/ui/PlaybackHistory.qml:79 contents/ui/PlaylistPage.qml:72
#: contents/ui/SearchPage.qml:123
#: contents/ui/AlbumPage.qml:66 contents/ui/ArtistPage.qml:107
#: contents/ui/PlaylistPage.qml:72 contents/ui/SearchPage.qml:123
#, kde-format
msgid "Add to Playlist"
msgstr "Adicionar à lista de reprodução"
@@ -90,76 +85,50 @@ msgstr "OK"
msgid "Cancel"
msgstr "Cancelar"
#: contents/ui/LibraryPage.qml:27
#: contents/ui/LibraryPage.qml:15
#, kde-format
msgid "Favourites"
msgstr "Favoritos"
msgstr ""
#: contents/ui/LibraryPage.qml:37 contents/ui/LibraryPage.qml:108
#, kde-format
msgid "Show All"
msgstr "Mostrar tudo"
#: contents/ui/LibraryPage.qml:42
#, kde-format
msgid "Favourite Songs"
msgstr "Músicas favoritas"
#: contents/ui/LibraryPage.qml:98
#: contents/ui/LibraryPage.qml:67
#, kde-format
msgid "Most played"
msgstr "Mais reproduzidas"
msgstr ""
#: contents/ui/LibraryPage.qml:113
#, kde-format
msgid "Played Songs"
msgstr "Músicas reproduzidas"
#: contents/ui/main.qml:39
#, kde-format
msgid "Back"
msgstr "Voltar"
#: contents/ui/main.qml:73 contents/ui/SearchPage.qml:150
#, kde-format
msgid "Search"
msgstr "Pesquisar"
#: contents/ui/main.qml:85
#: contents/ui/main.qml:94
#, kde-format
msgid "AudioTube"
msgstr "AudioTube"
#: contents/ui/MaximizedPlayerPage.qml:92
#, kde-format
msgid "Now Playing"
msgstr "Reproduzindo agora"
#: contents/ui/MaximizedPlayerPage.qml:117
#, kde-format
msgid "Queue"
msgstr "Fila"
#: contents/ui/MaximizedPlayerPage.qml:222
#: contents/ui/PlayerFooter.qml:124
#, kde-format
msgid "Remove Track"
msgstr "Remover faixa"
#: contents/ui/MaximizedPlayerPage.qml:242
#: contents/ui/MinimizedPlayerControls.qml:96
#: 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
#, kde-format
msgid "No media playing"
msgstr "Nenhuma mídia em reprodução"
#: contents/ui/PlaybackHistory.qml:15
#: contents/ui/PlayerFooter.qml:266
#, kde-format
msgid "Unknown list of songs"
msgstr "Lista de músicas desconhecida"
#: contents/ui/PlaybackHistory.qml:25
#, kde-format
msgid "No songs here yet"
msgstr "Nenhuma música ainda"
msgid "Expand"
msgstr "Expandir"
#: contents/ui/SearchPage.qml:27
#, kde-format
@@ -191,14 +160,10 @@ msgstr "Rádio"
msgid "Find music on YouTube Music"
msgstr "Encontre músicas no YouTube Music"
#~ msgid "Clear"
#~ msgstr "Limpar"
#~ msgid "Pause"
#~ msgstr "Pausar"
#~ msgid "Expand"
#~ msgstr "Expandir"
#: contents/ui/SearchPage.qml:150
#, kde-format
msgid "Search"
msgstr "Pesquisar"
#~ msgid "Play only Audio"
#~ msgstr "Reproduzir apenas áudio"
+33 -65
View File
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2022-07-12 00:48+0000\n"
"POT-Creation-Date: 2022-05-23 00:47+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,25 +28,20 @@ msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails"
msgstr "[email protected]"
#: contents/ui/AlbumPage.qml:19 contents/ui/PlaylistPage.qml:19
#: contents/ui/AlbumPage.qml:19 contents/ui/PlayerFooter.qml:192
#: contents/ui/PlaylistPage.qml:19
#, kde-format
msgid "Play"
msgstr "Воспроизвести"
#: contents/ui/AlbumPage.qml:26 contents/ui/PlaylistPage.qml:26
#, kde-format
msgid "Shuffle"
msgstr "Перемешать"
#: contents/ui/AlbumPage.qml:68 contents/ui/ArtistPage.qml:101
#: contents/ui/PlaybackHistory.qml:74 contents/ui/PlaylistPage.qml:67
#: contents/ui/AlbumPage.qml:61 contents/ui/ArtistPage.qml:101
#: contents/ui/PlaylistPage.qml:67
#, kde-format
msgid "Play Next"
msgstr "Воспроизвести следующий"
#: contents/ui/AlbumPage.qml:73 contents/ui/ArtistPage.qml:107
#: contents/ui/PlaybackHistory.qml:79 contents/ui/PlaylistPage.qml:72
#: contents/ui/SearchPage.qml:123
#: contents/ui/AlbumPage.qml:66 contents/ui/ArtistPage.qml:107
#: contents/ui/PlaylistPage.qml:72 contents/ui/SearchPage.qml:123
#, kde-format
msgid "Add to Playlist"
msgstr ""
@@ -88,75 +83,49 @@ msgstr "ОК"
msgid "Cancel"
msgstr "Отмена"
#: contents/ui/LibraryPage.qml:27
#: contents/ui/LibraryPage.qml:15
#, kde-format
msgid "Favourites"
msgstr ""
#: contents/ui/LibraryPage.qml:37 contents/ui/LibraryPage.qml:108
#, kde-format
msgid "Show All"
msgstr ""
#: contents/ui/LibraryPage.qml:42
#, kde-format
msgid "Favourite Songs"
msgstr ""
#: contents/ui/LibraryPage.qml:98
#: contents/ui/LibraryPage.qml:67
#, kde-format
msgid "Most played"
msgstr ""
#: contents/ui/LibraryPage.qml:113
#, kde-format
msgid "Played Songs"
msgstr ""
#: contents/ui/main.qml:39
#, kde-format
msgid "Back"
msgstr ""
#: contents/ui/main.qml:73 contents/ui/SearchPage.qml:150
#, kde-format
msgid "Search"
msgstr "Поиск"
#: contents/ui/main.qml:85
#: contents/ui/main.qml:94
#, kde-format
msgid "AudioTube"
msgstr "AudioTube"
#: contents/ui/MaximizedPlayerPage.qml:92
#, kde-format
msgid "Now Playing"
msgstr ""
#: contents/ui/MaximizedPlayerPage.qml:117
#, kde-format
msgid "Queue"
msgstr ""
#: contents/ui/MaximizedPlayerPage.qml:222
#: contents/ui/PlayerFooter.qml:124
#, kde-format
msgid "Remove Track"
msgstr "Удалить дорожку"
#: contents/ui/MaximizedPlayerPage.qml:242
#: contents/ui/MinimizedPlayerControls.qml:96
#: 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
#, kde-format
msgid "No media playing"
msgstr ""
#: contents/ui/PlaybackHistory.qml:15
#: contents/ui/PlayerFooter.qml:266
#, kde-format
msgid "Unknown list of songs"
msgstr ""
#: contents/ui/PlaybackHistory.qml:25
#, kde-format
msgid "No songs here yet"
msgid "Expand"
msgstr ""
#: contents/ui/SearchPage.qml:27
@@ -189,8 +158,7 @@ msgstr "Радио"
msgid "Find music on YouTube Music"
msgstr ""
#~ msgid "Clear"
#~ msgstr "Очистить"
#~ msgid "Pause"
#~ msgstr "Приостановить"
#: contents/ui/SearchPage.qml:150
#, kde-format
msgid "Search"
msgstr "Поиск"
+34 -70
View File
@@ -4,7 +4,7 @@ msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2022-07-12 00:48+0000\n"
"POT-Creation-Date: 2022-05-23 00:47+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,26 +25,21 @@ msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails"
msgstr "[email protected]"
#: contents/ui/AlbumPage.qml:19 contents/ui/PlaylistPage.qml:19
#: contents/ui/AlbumPage.qml:19 contents/ui/PlayerFooter.qml:192
#: contents/ui/PlaylistPage.qml:19
#, kde-format
msgid "Play"
msgstr "Prehrať"
#: contents/ui/AlbumPage.qml:26 contents/ui/PlaylistPage.qml:26
#, kde-format
msgid "Shuffle"
msgstr "Zamiešať"
#: contents/ui/AlbumPage.qml:68 contents/ui/ArtistPage.qml:101
#: contents/ui/PlaybackHistory.qml:74 contents/ui/PlaylistPage.qml:67
#: contents/ui/AlbumPage.qml:61 contents/ui/ArtistPage.qml:101
#: contents/ui/PlaylistPage.qml:67
#, fuzzy, kde-format
#| msgid "Play"
msgid "Play Next"
msgstr "Prehrať"
#: contents/ui/AlbumPage.qml:73 contents/ui/ArtistPage.qml:107
#: contents/ui/PlaybackHistory.qml:79 contents/ui/PlaylistPage.qml:72
#: contents/ui/SearchPage.qml:123
#: contents/ui/AlbumPage.qml:66 contents/ui/ArtistPage.qml:107
#: contents/ui/PlaylistPage.qml:72 contents/ui/SearchPage.qml:123
#, kde-format
msgid "Add to Playlist"
msgstr "Pridať do zoznamu skladieb"
@@ -86,77 +81,50 @@ msgstr "OK"
msgid "Cancel"
msgstr "Zrušiť"
#: contents/ui/LibraryPage.qml:27
#: contents/ui/LibraryPage.qml:15
#, kde-format
msgid "Favourites"
msgstr ""
#: contents/ui/LibraryPage.qml:37 contents/ui/LibraryPage.qml:108
#, kde-format
msgid "Show All"
msgstr ""
#: contents/ui/LibraryPage.qml:42
#, kde-format
msgid "Favourite Songs"
msgstr ""
#: contents/ui/LibraryPage.qml:98
#: contents/ui/LibraryPage.qml:67
#, kde-format
msgid "Most played"
msgstr ""
#: contents/ui/LibraryPage.qml:113
#, kde-format
msgid "Played Songs"
msgstr ""
#: contents/ui/main.qml:39
#, kde-format
msgid "Back"
msgstr ""
#: contents/ui/main.qml:73 contents/ui/SearchPage.qml:150
#, kde-format
msgid "Search"
msgstr "Hľadať"
#: contents/ui/main.qml:85
#: contents/ui/main.qml:94
#, kde-format
msgid "AudioTube"
msgstr "AudioTube"
#: contents/ui/MaximizedPlayerPage.qml:92
#, fuzzy, kde-format
#| msgid "No media playing"
msgid "Now Playing"
msgstr "Neprehráva sa žiadne médium"
#: contents/ui/MaximizedPlayerPage.qml:117
#, kde-format
msgid "Queue"
msgstr ""
#: contents/ui/MaximizedPlayerPage.qml:222
#: contents/ui/PlayerFooter.qml:124
#, kde-format
msgid "Remove Track"
msgstr ""
#: contents/ui/MaximizedPlayerPage.qml:242
#: contents/ui/MinimizedPlayerControls.qml:96
#: 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
#, kde-format
msgid "No media playing"
msgstr "Neprehráva sa žiadne médium"
#: contents/ui/PlaybackHistory.qml:15
#: contents/ui/PlayerFooter.qml:266
#, kde-format
msgid "Unknown list of songs"
msgstr ""
#: contents/ui/PlaybackHistory.qml:25
#, kde-format
msgid "No songs here yet"
msgstr ""
msgid "Expand"
msgstr "Rozvinúť"
#: contents/ui/SearchPage.qml:27
#, kde-format
@@ -188,11 +156,7 @@ msgstr "Rádio"
msgid "Find music on YouTube Music"
msgstr ""
#~ msgid "Clear"
#~ msgstr "Vyčistiť"
#~ msgid "Pause"
#~ msgstr "Pozastaviť"
#~ msgid "Expand"
#~ msgstr "Rozvinúť"
#: contents/ui/SearchPage.qml:150
#, kde-format
msgid "Search"
msgstr "Hľadať"
+39 -74
View File
@@ -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, 2022.
# Matjaž Jeran <[email protected]>, 2021.
msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2022-07-12 00:48+0000\n"
"PO-Revision-Date: 2022-05-27 07:50+0200\n"
"POT-Creation-Date: 2022-05-23 00:47+0000\n"
"PO-Revision-Date: 2021-12-09 13:26+0100\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.12.2\n"
"X-Generator: Lokalize 21.04.3\n"
"Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || n"
"%100==4 ? 3 : 0);\n"
@@ -28,25 +28,20 @@ msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails"
msgstr "[email protected]"
#: contents/ui/AlbumPage.qml:19 contents/ui/PlaylistPage.qml:19
#: contents/ui/AlbumPage.qml:19 contents/ui/PlayerFooter.qml:192
#: contents/ui/PlaylistPage.qml:19
#, kde-format
msgid "Play"
msgstr "Predvajaj"
#: contents/ui/AlbumPage.qml:26 contents/ui/PlaylistPage.qml:26
#, kde-format
msgid "Shuffle"
msgstr "Premešaj"
#: contents/ui/AlbumPage.qml:68 contents/ui/ArtistPage.qml:101
#: contents/ui/PlaybackHistory.qml:74 contents/ui/PlaylistPage.qml:67
#: contents/ui/AlbumPage.qml:61 contents/ui/ArtistPage.qml:101
#: contents/ui/PlaylistPage.qml:67
#, kde-format
msgid "Play Next"
msgstr "Predvajaj naslednjo"
#: contents/ui/AlbumPage.qml:73 contents/ui/ArtistPage.qml:107
#: contents/ui/PlaybackHistory.qml:79 contents/ui/PlaylistPage.qml:72
#: contents/ui/SearchPage.qml:123
#: contents/ui/AlbumPage.qml:66 contents/ui/ArtistPage.qml:107
#: contents/ui/PlaylistPage.qml:72 contents/ui/SearchPage.qml:123
#, kde-format
msgid "Add to Playlist"
msgstr "Dodaj v seznam predvajanja"
@@ -88,76 +83,50 @@ msgstr "V redu"
msgid "Cancel"
msgstr "Prekliči"
#: contents/ui/LibraryPage.qml:27
#: contents/ui/LibraryPage.qml:15
#, kde-format
msgid "Favourites"
msgstr "Priljubljene"
msgstr ""
#: contents/ui/LibraryPage.qml:37 contents/ui/LibraryPage.qml:108
#, kde-format
msgid "Show All"
msgstr "Prikaži vse"
#: contents/ui/LibraryPage.qml:42
#, kde-format
msgid "Favourite Songs"
msgstr "Priljubljene pesmi"
#: contents/ui/LibraryPage.qml:98
#: contents/ui/LibraryPage.qml:67
#, kde-format
msgid "Most played"
msgstr "Največkrat predvajane"
msgstr ""
#: contents/ui/LibraryPage.qml:113
#, kde-format
msgid "Played Songs"
msgstr "Predvajane pesmi"
#: contents/ui/main.qml:39
#, kde-format
msgid "Back"
msgstr "Nazaj"
#: contents/ui/main.qml:73 contents/ui/SearchPage.qml:150
#, kde-format
msgid "Search"
msgstr "Išči"
#: contents/ui/main.qml:85
#: contents/ui/main.qml:94
#, kde-format
msgid "AudioTube"
msgstr "AudioTube"
#: contents/ui/MaximizedPlayerPage.qml:92
#, kde-format
msgid "Now Playing"
msgstr "Pravkar predvajano"
#: contents/ui/MaximizedPlayerPage.qml:117
#, kde-format
msgid "Queue"
msgstr "Čakalna vrsta"
#: contents/ui/MaximizedPlayerPage.qml:222
#: contents/ui/PlayerFooter.qml:124
#, kde-format
msgid "Remove Track"
msgstr "Odstrani sled"
#: contents/ui/MaximizedPlayerPage.qml:242
#: contents/ui/MinimizedPlayerControls.qml:96
#: 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
#, kde-format
msgid "No media playing"
msgstr "Niče se ne predvaja"
#: contents/ui/PlaybackHistory.qml:15
#: contents/ui/PlayerFooter.qml:266
#, kde-format
msgid "Unknown list of songs"
msgstr "Neznan seznam pesmi"
#: contents/ui/PlaybackHistory.qml:25
#, kde-format
msgid "No songs here yet"
msgstr "Tu še ni nobene pesmi"
msgid "Expand"
msgstr "Razširi"
#: contents/ui/SearchPage.qml:27
#, kde-format
@@ -189,14 +158,10 @@ msgstr "Radio"
msgid "Find music on YouTube Music"
msgstr "Najdi glasbo na Youtube Music"
#~ msgid "Clear"
#~ msgstr "Očisti"
#~ msgid "Pause"
#~ msgstr "Premor"
#~ msgid "Expand"
#~ msgstr "Razširi"
#: contents/ui/SearchPage.qml:150
#, kde-format
msgid "Search"
msgstr "Išči"
#~ msgid "Play only Audio"
#~ msgstr "Predvajaj samo zvok"
+38 -73
View File
@@ -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, 2022.
# Stefan Asserhäll <[email protected]>, 2021.
msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2022-07-12 00:48+0000\n"
"PO-Revision-Date: 2022-05-26 10:40+0200\n"
"POT-Creation-Date: 2022-05-23 00:47+0000\n"
"PO-Revision-Date: 2021-12-05 11:41+0100\n"
"Last-Translator: Stefan Asserhäll <[email protected]>\n"
"Language-Team: Swedish <[email protected]>\n"
"Language: sv\n"
@@ -27,25 +27,20 @@ msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails"
msgstr "[email protected]"
#: contents/ui/AlbumPage.qml:19 contents/ui/PlaylistPage.qml:19
#: contents/ui/AlbumPage.qml:19 contents/ui/PlayerFooter.qml:192
#: contents/ui/PlaylistPage.qml:19
#, kde-format
msgid "Play"
msgstr "Spela"
#: contents/ui/AlbumPage.qml:26 contents/ui/PlaylistPage.qml:26
#, kde-format
msgid "Shuffle"
msgstr "Blanda"
#: contents/ui/AlbumPage.qml:68 contents/ui/ArtistPage.qml:101
#: contents/ui/PlaybackHistory.qml:74 contents/ui/PlaylistPage.qml:67
#: contents/ui/AlbumPage.qml:61 contents/ui/ArtistPage.qml:101
#: contents/ui/PlaylistPage.qml:67
#, kde-format
msgid "Play Next"
msgstr "Spela nästa"
#: contents/ui/AlbumPage.qml:73 contents/ui/ArtistPage.qml:107
#: contents/ui/PlaybackHistory.qml:79 contents/ui/PlaylistPage.qml:72
#: contents/ui/SearchPage.qml:123
#: contents/ui/AlbumPage.qml:66 contents/ui/ArtistPage.qml:107
#: contents/ui/PlaylistPage.qml:72 contents/ui/SearchPage.qml:123
#, kde-format
msgid "Add to Playlist"
msgstr "Lägg till i spellista"
@@ -87,76 +82,50 @@ msgstr "Ok"
msgid "Cancel"
msgstr "Avbryt"
#: contents/ui/LibraryPage.qml:27
#: contents/ui/LibraryPage.qml:15
#, kde-format
msgid "Favourites"
msgstr "Favoriter"
msgstr ""
#: contents/ui/LibraryPage.qml:37 contents/ui/LibraryPage.qml:108
#, kde-format
msgid "Show All"
msgstr "Visa alla"
#: contents/ui/LibraryPage.qml:42
#, kde-format
msgid "Favourite Songs"
msgstr "Favoritlåtar"
#: contents/ui/LibraryPage.qml:98
#: contents/ui/LibraryPage.qml:67
#, kde-format
msgid "Most played"
msgstr "Mest spelade"
msgstr ""
#: contents/ui/LibraryPage.qml:113
#, kde-format
msgid "Played Songs"
msgstr "Spelade låtar"
#: contents/ui/main.qml:39
#, kde-format
msgid "Back"
msgstr "Bakåt"
#: contents/ui/main.qml:73 contents/ui/SearchPage.qml:150
#, kde-format
msgid "Search"
msgstr "Sök"
#: contents/ui/main.qml:85
#: contents/ui/main.qml:94
#, kde-format
msgid "AudioTube"
msgstr "AudioTube"
#: contents/ui/MaximizedPlayerPage.qml:92
#, kde-format
msgid "Now Playing"
msgstr "Spelar nu"
#: contents/ui/MaximizedPlayerPage.qml:117
#, kde-format
msgid "Queue"
msgstr "Köa"
#: contents/ui/MaximizedPlayerPage.qml:222
#: contents/ui/PlayerFooter.qml:124
#, kde-format
msgid "Remove Track"
msgstr "Ta bort spår"
#: contents/ui/MaximizedPlayerPage.qml:242
#: contents/ui/MinimizedPlayerControls.qml:96
#: 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
#, kde-format
msgid "No media playing"
msgstr "Inga media spelar"
#: contents/ui/PlaybackHistory.qml:15
#: contents/ui/PlayerFooter.qml:266
#, kde-format
msgid "Unknown list of songs"
msgstr "Okänd låtlista"
#: contents/ui/PlaybackHistory.qml:25
#, kde-format
msgid "No songs here yet"
msgstr "Inga låtar här ännu"
msgid "Expand"
msgstr "Expandera"
#: contents/ui/SearchPage.qml:27
#, kde-format
@@ -188,14 +157,10 @@ msgstr "Radio"
msgid "Find music on YouTube Music"
msgstr "Sök efter musik på YouTube musik"
#~ msgid "Clear"
#~ msgstr "Rensa"
#~ msgid "Pause"
#~ msgstr "Paus"
#~ msgid "Expand"
#~ msgstr "Expandera"
#: contents/ui/SearchPage.qml:150
#, kde-format
msgid "Search"
msgstr "Sök"
#~ msgid "Play only Audio"
#~ msgstr "Spela bara ljud"
+38 -73
View File
@@ -6,8 +6,8 @@ msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2022-07-12 00:48+0000\n"
"PO-Revision-Date: 2022-05-26 10:29+0300\n"
"POT-Creation-Date: 2022-05-23 00:47+0000\n"
"PO-Revision-Date: 2022-04-15 14:41+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 22.04.0\n"
"X-Generator: Lokalize 21.12.3\n"
#, kde-format
msgctxt "NAME OF TRANSLATORS"
@@ -27,25 +27,20 @@ msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails"
msgstr "[email protected]"
#: contents/ui/AlbumPage.qml:19 contents/ui/PlaylistPage.qml:19
#: contents/ui/AlbumPage.qml:19 contents/ui/PlayerFooter.qml:192
#: contents/ui/PlaylistPage.qml:19
#, kde-format
msgid "Play"
msgstr "Çal"
#: contents/ui/AlbumPage.qml:26 contents/ui/PlaylistPage.qml:26
#, kde-format
msgid "Shuffle"
msgstr "Karıştır"
#: contents/ui/AlbumPage.qml:68 contents/ui/ArtistPage.qml:101
#: contents/ui/PlaybackHistory.qml:74 contents/ui/PlaylistPage.qml:67
#: contents/ui/AlbumPage.qml:61 contents/ui/ArtistPage.qml:101
#: contents/ui/PlaylistPage.qml:67
#, kde-format
msgid "Play Next"
msgstr "Sonrakini Çal"
#: contents/ui/AlbumPage.qml:73 contents/ui/ArtistPage.qml:107
#: contents/ui/PlaybackHistory.qml:79 contents/ui/PlaylistPage.qml:72
#: contents/ui/SearchPage.qml:123
#: contents/ui/AlbumPage.qml:66 contents/ui/ArtistPage.qml:107
#: contents/ui/PlaylistPage.qml:72 contents/ui/SearchPage.qml:123
#, kde-format
msgid "Add to Playlist"
msgstr "Çalma Listesine Ekle"
@@ -89,76 +84,50 @@ msgstr "Tamam"
msgid "Cancel"
msgstr "İptal"
#: contents/ui/LibraryPage.qml:27
#: contents/ui/LibraryPage.qml:15
#, kde-format
msgid "Favourites"
msgstr "Beğeniler"
msgstr ""
#: contents/ui/LibraryPage.qml:37 contents/ui/LibraryPage.qml:108
#, kde-format
msgid "Show All"
msgstr "Tümünü Göster"
#: contents/ui/LibraryPage.qml:42
#, kde-format
msgid "Favourite Songs"
msgstr "Beğenilen Şarkılar"
#: contents/ui/LibraryPage.qml:98
#: contents/ui/LibraryPage.qml:67
#, kde-format
msgid "Most played"
msgstr "En Çok Çalınanlar"
msgstr ""
#: contents/ui/LibraryPage.qml:113
#, kde-format
msgid "Played Songs"
msgstr "Çalınan Şarkılar"
#: contents/ui/main.qml:39
#, kde-format
msgid "Back"
msgstr "Geri"
#: contents/ui/main.qml:73 contents/ui/SearchPage.qml:150
#, kde-format
msgid "Search"
msgstr "Ara"
#: contents/ui/main.qml:85
#: contents/ui/main.qml:94
#, kde-format
msgid "AudioTube"
msgstr "AudioTube"
#: contents/ui/MaximizedPlayerPage.qml:92
#, kde-format
msgid "Now Playing"
msgstr "Şimdi Çalınıyor"
#: contents/ui/MaximizedPlayerPage.qml:117
#, kde-format
msgid "Queue"
msgstr "Kuyruk"
#: contents/ui/MaximizedPlayerPage.qml:222
#: contents/ui/PlayerFooter.qml:124
#, kde-format
msgid "Remove Track"
msgstr "Parçayı Kaldır"
#: contents/ui/MaximizedPlayerPage.qml:242
#: contents/ui/MinimizedPlayerControls.qml:96
#: 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
#, kde-format
msgid "No media playing"
msgstr "Ortam çalmıyor"
#: contents/ui/PlaybackHistory.qml:15
#: contents/ui/PlayerFooter.qml:266
#, kde-format
msgid "Unknown list of songs"
msgstr "Bilinmeyen şarkılar listesi"
#: contents/ui/PlaybackHistory.qml:25
#, kde-format
msgid "No songs here yet"
msgstr "Burada henüz şarkı yok"
msgid "Expand"
msgstr "Genişlet"
#: contents/ui/SearchPage.qml:27
#, kde-format
@@ -190,11 +159,7 @@ msgstr "Radyo"
msgid "Find music on YouTube Music"
msgstr "YouTube Müzik'te müzik bul"
#~ msgid "Clear"
#~ msgstr "Temizle"
#~ msgid "Pause"
#~ msgstr "Duraklat"
#~ msgid "Expand"
#~ msgstr "Genişlet"
#: contents/ui/SearchPage.qml:150
#, kde-format
msgid "Search"
msgstr "Ara"
+38 -73
View File
@@ -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, 2022.
# Yuri Chornoivan <[email protected]>, 2021.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2022-07-12 00:48+0000\n"
"PO-Revision-Date: 2022-05-26 08:15+0300\n"
"POT-Creation-Date: 2022-05-23 00:47+0000\n"
"PO-Revision-Date: 2021-12-05 08:42+0200\n"
"Last-Translator: Yuri Chornoivan <[email protected]>\n"
"Language-Team: Ukrainian <[email protected]>\n"
"Language: uk\n"
@@ -28,25 +28,20 @@ msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails"
msgstr "[email protected]"
#: contents/ui/AlbumPage.qml:19 contents/ui/PlaylistPage.qml:19
#: contents/ui/AlbumPage.qml:19 contents/ui/PlayerFooter.qml:192
#: contents/ui/PlaylistPage.qml:19
#, kde-format
msgid "Play"
msgstr "Відтворити"
#: contents/ui/AlbumPage.qml:26 contents/ui/PlaylistPage.qml:26
#, kde-format
msgid "Shuffle"
msgstr "Перемішати"
#: contents/ui/AlbumPage.qml:68 contents/ui/ArtistPage.qml:101
#: contents/ui/PlaybackHistory.qml:74 contents/ui/PlaylistPage.qml:67
#: contents/ui/AlbumPage.qml:61 contents/ui/ArtistPage.qml:101
#: contents/ui/PlaylistPage.qml:67
#, kde-format
msgid "Play Next"
msgstr "Відтворити наступну"
#: contents/ui/AlbumPage.qml:73 contents/ui/ArtistPage.qml:107
#: contents/ui/PlaybackHistory.qml:79 contents/ui/PlaylistPage.qml:72
#: contents/ui/SearchPage.qml:123
#: contents/ui/AlbumPage.qml:66 contents/ui/ArtistPage.qml:107
#: contents/ui/PlaylistPage.qml:72 contents/ui/SearchPage.qml:123
#, kde-format
msgid "Add to Playlist"
msgstr "Додати до списку відтворення"
@@ -90,76 +85,50 @@ msgstr "Гаразд"
msgid "Cancel"
msgstr "Скасувати"
#: contents/ui/LibraryPage.qml:27
#: contents/ui/LibraryPage.qml:15
#, kde-format
msgid "Favourites"
msgstr "Улюблені"
msgstr ""
#: contents/ui/LibraryPage.qml:37 contents/ui/LibraryPage.qml:108
#, kde-format
msgid "Show All"
msgstr "Показати всі"
#: contents/ui/LibraryPage.qml:42
#, kde-format
msgid "Favourite Songs"
msgstr "Улюблені композиції"
#: contents/ui/LibraryPage.qml:98
#: contents/ui/LibraryPage.qml:67
#, kde-format
msgid "Most played"
msgstr "Часто слухали"
msgstr ""
#: contents/ui/LibraryPage.qml:113
#, kde-format
msgid "Played Songs"
msgstr "Відтворені композиції"
#: contents/ui/main.qml:39
#, kde-format
msgid "Back"
msgstr "Назад"
#: contents/ui/main.qml:73 contents/ui/SearchPage.qml:150
#, kde-format
msgid "Search"
msgstr "Пошук"
#: contents/ui/main.qml:85
#: contents/ui/main.qml:94
#, kde-format
msgid "AudioTube"
msgstr "AudioTube"
#: contents/ui/MaximizedPlayerPage.qml:92
#, kde-format
msgid "Now Playing"
msgstr "Зараз відтворюємо"
#: contents/ui/MaximizedPlayerPage.qml:117
#, kde-format
msgid "Queue"
msgstr "Додати до черги"
#: contents/ui/MaximizedPlayerPage.qml:222
#: contents/ui/PlayerFooter.qml:124
#, kde-format
msgid "Remove Track"
msgstr "Вилучити композицію"
#: contents/ui/MaximizedPlayerPage.qml:242
#: contents/ui/MinimizedPlayerControls.qml:96
#: 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
#, kde-format
msgid "No media playing"
msgstr "Відтворення не відбувається"
#: contents/ui/PlaybackHistory.qml:15
#: contents/ui/PlayerFooter.qml:266
#, kde-format
msgid "Unknown list of songs"
msgstr "Невідомий список композицій"
#: contents/ui/PlaybackHistory.qml:25
#, kde-format
msgid "No songs here yet"
msgstr "Тут ще немає композицій"
msgid "Expand"
msgstr "Розгорнути"
#: contents/ui/SearchPage.qml:27
#, kde-format
@@ -191,14 +160,10 @@ msgstr "Радіо"
msgid "Find music on YouTube Music"
msgstr "Шукати музику на сайті «Музика Youtube»"
#~ msgid "Clear"
#~ msgstr "Спорожнити"
#~ msgid "Pause"
#~ msgstr "Призупинити"
#~ msgid "Expand"
#~ msgstr "Розгорнути"
#: contents/ui/SearchPage.qml:150
#, kde-format
msgid "Search"
msgstr "Пошук"
#~ msgid "Play only Audio"
#~ msgstr "Відтворити лише звук"
+165
View File
@@ -0,0 +1,165 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR This file is copyright:
# This file is distributed under the same license as the audiotube package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
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"
"Last-Translator: transxx.py program <[email protected]>\n"
"Language-Team: KDE Test Language <[email protected]>\n"
"Language: x-test\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
#, kde-format
msgctxt "NAME OF TRANSLATORS"
msgid "Your names"
msgstr "xxYour namesxx"
#, kde-format
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
#, kde-format
msgid "Play"
msgstr "xxPlayxx"
#: contents/ui/AlbumPage.qml:61 contents/ui/ArtistPage.qml:101
#: contents/ui/PlaylistPage.qml:67
#, kde-format
msgid "Play Next"
msgstr "xxPlay Nextxx"
#: contents/ui/AlbumPage.qml:66 contents/ui/ArtistPage.qml:107
#: contents/ui/PlaylistPage.qml:72 contents/ui/SearchPage.qml:123
#, kde-format
msgid "Add to Playlist"
msgstr "xxAdd to Playlistxx"
#: contents/ui/ArtistPage.qml:39 contents/ui/SearchPage.qml:67
#, kde-format
msgid ""
"Video playback is not supported yet. Do you want to play only the audio of "
"\"%1\"?"
msgstr ""
"xxVideo playback is not supported yet. Do you want to play only the audio of "
"\"%1\"?xx"
#: contents/ui/ArtistPage.qml:55 contents/ui/SearchPage.qml:25
#, kde-format
msgid "Albums"
msgstr "xxAlbumsxx"
#: contents/ui/ArtistPage.qml:57
#, kde-format
msgid "Singles"
msgstr "xxSinglesxx"
#: contents/ui/ArtistPage.qml:59 contents/ui/SearchPage.qml:31
#, kde-format
msgid "Songs"
msgstr "xxSongsxx"
#: contents/ui/ArtistPage.qml:61 contents/ui/SearchPage.qml:33
#, kde-format
msgid "Videos"
msgstr "xxVideosxx"
#: contents/ui/ConfirmationMessage.qml:16
#, kde-format
msgid "OK"
msgstr "xxOKxx"
#: contents/ui/ConfirmationMessage.qml:21
#, kde-format
msgid "Cancel"
msgstr "xxCancelxx"
#: contents/ui/LibraryPage.qml:15
#, kde-format
msgid "Favourites"
msgstr "xxFavouritesxx"
#: contents/ui/LibraryPage.qml:67
#, kde-format
msgid "Most played"
msgstr "xxMost playedxx"
#: contents/ui/main.qml:94
#, kde-format
msgid "AudioTube"
msgstr "xxAudioTubexx"
#: contents/ui/PlayerFooter.qml:124
#, 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
#, kde-format
msgid "No media playing"
msgstr "xxNo media playingxx"
#: contents/ui/PlayerFooter.qml:266
#, kde-format
msgid "Expand"
msgstr "xxExpandxx"
#: contents/ui/SearchPage.qml:27
#, kde-format
msgid "Artists"
msgstr "xxArtistsxx"
#: contents/ui/SearchPage.qml:29
#, kde-format
msgid "Playlists"
msgstr "xxPlaylistsxx"
#: contents/ui/SearchPage.qml:36
#, kde-format
msgid "Unknown"
msgstr "xxUnknownxx"
#: contents/ui/SearchPage.qml:117
#, kde-format
msgid "Play next"
msgstr "xxPlay nextxx"
#: contents/ui/SearchPage.qml:129
#, kde-format
msgid "Radio"
msgstr "xxRadioxx"
#: contents/ui/SearchPage.qml:147
#, kde-format
msgid "Find music on YouTube Music"
msgstr "xxFind music on YouTube Musicxx"
#: contents/ui/SearchPage.qml:150
#, kde-format
msgid "Search"
msgstr "xxSearchxx"
+36 -62
View File
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: kdeorg\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2022-07-12 00:48+0000\n"
"PO-Revision-Date: 2022-08-13 03:53\n"
"POT-Creation-Date: 2022-05-23 00:47+0000\n"
"PO-Revision-Date: 2022-05-15 15:46\n"
"Last-Translator: \n"
"Language-Team: Chinese Simplified\n"
"Language: zh_CN\n"
@@ -27,25 +27,20 @@ msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails"
msgstr "[email protected], [email protected]"
#: contents/ui/AlbumPage.qml:19 contents/ui/PlaylistPage.qml:19
#: contents/ui/AlbumPage.qml:19 contents/ui/PlayerFooter.qml:192
#: contents/ui/PlaylistPage.qml:19
#, kde-format
msgid "Play"
msgstr "播放"
#: contents/ui/AlbumPage.qml:26 contents/ui/PlaylistPage.qml:26
#, kde-format
msgid "Shuffle"
msgstr "随机播放"
#: contents/ui/AlbumPage.qml:68 contents/ui/ArtistPage.qml:101
#: contents/ui/PlaybackHistory.qml:74 contents/ui/PlaylistPage.qml:67
#: contents/ui/AlbumPage.qml:61 contents/ui/ArtistPage.qml:101
#: contents/ui/PlaylistPage.qml:67
#, kde-format
msgid "Play Next"
msgstr "播放下一首"
#: contents/ui/AlbumPage.qml:73 contents/ui/ArtistPage.qml:107
#: contents/ui/PlaybackHistory.qml:79 contents/ui/PlaylistPage.qml:72
#: contents/ui/SearchPage.qml:123
#: contents/ui/AlbumPage.qml:66 contents/ui/ArtistPage.qml:107
#: contents/ui/PlaylistPage.qml:72 contents/ui/SearchPage.qml:123
#, kde-format
msgid "Add to Playlist"
msgstr "添加到播放列表"
@@ -87,76 +82,50 @@ msgstr "确定"
msgid "Cancel"
msgstr "取消"
#: contents/ui/LibraryPage.qml:27
#: contents/ui/LibraryPage.qml:15
#, kde-format
msgid "Favourites"
msgstr ""
#: contents/ui/LibraryPage.qml:37 contents/ui/LibraryPage.qml:108
#, kde-format
msgid "Show All"
msgstr ""
#: contents/ui/LibraryPage.qml:42
#, kde-format
msgid "Favourite Songs"
msgstr ""
#: contents/ui/LibraryPage.qml:98
#: contents/ui/LibraryPage.qml:67
#, kde-format
msgid "Most played"
msgstr ""
#: contents/ui/LibraryPage.qml:113
#, kde-format
msgid "Played Songs"
msgstr ""
#: contents/ui/main.qml:39
#, kde-format
msgid "Back"
msgstr ""
#: contents/ui/main.qml:73 contents/ui/SearchPage.qml:150
#, kde-format
msgid "Search"
msgstr "搜索"
#: contents/ui/main.qml:85
#: contents/ui/main.qml:94
#, kde-format
msgid "AudioTube"
msgstr "AudioTube"
#: contents/ui/MaximizedPlayerPage.qml:92
#, kde-format
msgid "Now Playing"
msgstr ""
#: contents/ui/MaximizedPlayerPage.qml:117
#, kde-format
msgid "Queue"
msgstr ""
#: contents/ui/MaximizedPlayerPage.qml:222
#: contents/ui/PlayerFooter.qml:124
#, kde-format
msgid "Remove Track"
msgstr "移除曲目"
#: contents/ui/MaximizedPlayerPage.qml:242
#: contents/ui/MinimizedPlayerControls.qml:96
#: 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
#, kde-format
msgid "No media playing"
msgstr "没有正在播放的媒体"
#: contents/ui/PlaybackHistory.qml:15
#: contents/ui/PlayerFooter.qml:266
#, kde-format
msgid "Unknown list of songs"
msgstr ""
#: contents/ui/PlaybackHistory.qml:25
#, kde-format
msgid "No songs here yet"
msgstr ""
msgid "Expand"
msgstr "展开"
#: contents/ui/SearchPage.qml:27
#, kde-format
@@ -187,3 +156,8 @@ msgstr "电台"
#, kde-format
msgid "Find music on YouTube Music"
msgstr "查找 YouTube Music 中的音乐"
#: contents/ui/SearchPage.qml:150
#, kde-format
msgid "Search"
msgstr "搜索"
-190
View File
@@ -1,190 +0,0 @@
# Chinese translations for audiotube package
# audiotube 套件的正體中文翻譯.
# Copyright (C) 2022 This file is copyright:
# This file is distributed under the same license as the audiotube package.
# Automatically generated, 2022.
#
msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2022-07-12 00:48+0000\n"
"PO-Revision-Date: 2022-05-30 00:47+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
"Language: zh_TW\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
#, kde-format
msgctxt "NAME OF TRANSLATORS"
msgid "Your names"
msgstr ""
#, kde-format
msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails"
msgstr ""
#: contents/ui/AlbumPage.qml:19 contents/ui/PlaylistPage.qml:19
#, kde-format
msgid "Play"
msgstr ""
#: contents/ui/AlbumPage.qml:26 contents/ui/PlaylistPage.qml:26
#, kde-format
msgid "Shuffle"
msgstr ""
#: contents/ui/AlbumPage.qml:68 contents/ui/ArtistPage.qml:101
#: contents/ui/PlaybackHistory.qml:74 contents/ui/PlaylistPage.qml:67
#, kde-format
msgid "Play Next"
msgstr ""
#: contents/ui/AlbumPage.qml:73 contents/ui/ArtistPage.qml:107
#: contents/ui/PlaybackHistory.qml:79 contents/ui/PlaylistPage.qml:72
#: contents/ui/SearchPage.qml:123
#, kde-format
msgid "Add to Playlist"
msgstr ""
#: contents/ui/ArtistPage.qml:39 contents/ui/SearchPage.qml:67
#, kde-format
msgid ""
"Video playback is not supported yet. Do you want to play only the audio of "
"\"%1\"?"
msgstr ""
#: contents/ui/ArtistPage.qml:55 contents/ui/SearchPage.qml:25
#, kde-format
msgid "Albums"
msgstr ""
#: contents/ui/ArtistPage.qml:57
#, kde-format
msgid "Singles"
msgstr ""
#: contents/ui/ArtistPage.qml:59 contents/ui/SearchPage.qml:31
#, kde-format
msgid "Songs"
msgstr ""
#: contents/ui/ArtistPage.qml:61 contents/ui/SearchPage.qml:33
#, kde-format
msgid "Videos"
msgstr ""
#: contents/ui/ConfirmationMessage.qml:16
#, kde-format
msgid "OK"
msgstr ""
#: contents/ui/ConfirmationMessage.qml:21
#, kde-format
msgid "Cancel"
msgstr ""
#: contents/ui/LibraryPage.qml:27
#, kde-format
msgid "Favourites"
msgstr ""
#: contents/ui/LibraryPage.qml:37 contents/ui/LibraryPage.qml:108
#, kde-format
msgid "Show All"
msgstr ""
#: contents/ui/LibraryPage.qml:42
#, kde-format
msgid "Favourite Songs"
msgstr ""
#: contents/ui/LibraryPage.qml:98
#, kde-format
msgid "Most played"
msgstr ""
#: contents/ui/LibraryPage.qml:113
#, kde-format
msgid "Played Songs"
msgstr ""
#: contents/ui/main.qml:39
#, kde-format
msgid "Back"
msgstr ""
#: contents/ui/main.qml:73 contents/ui/SearchPage.qml:150
#, kde-format
msgid "Search"
msgstr ""
#: contents/ui/main.qml:85
#, kde-format
msgid "AudioTube"
msgstr ""
#: contents/ui/MaximizedPlayerPage.qml:92
#, kde-format
msgid "Now Playing"
msgstr ""
#: contents/ui/MaximizedPlayerPage.qml:117
#, kde-format
msgid "Queue"
msgstr ""
#: contents/ui/MaximizedPlayerPage.qml:222
#, kde-format
msgid "Remove Track"
msgstr ""
#: contents/ui/MaximizedPlayerPage.qml:242
#: contents/ui/MinimizedPlayerControls.qml:96
#, kde-format
msgid "No media playing"
msgstr ""
#: contents/ui/PlaybackHistory.qml:15
#, kde-format
msgid "Unknown list of songs"
msgstr ""
#: contents/ui/PlaybackHistory.qml:25
#, kde-format
msgid "No songs here yet"
msgstr ""
#: contents/ui/SearchPage.qml:27
#, kde-format
msgid "Artists"
msgstr ""
#: contents/ui/SearchPage.qml:29
#, kde-format
msgid "Playlists"
msgstr ""
#: contents/ui/SearchPage.qml:36
#, kde-format
msgid "Unknown"
msgstr ""
#: contents/ui/SearchPage.qml:117
#, kde-format
msgid "Play next"
msgstr ""
#: contents/ui/SearchPage.qml:129
#, kde-format
msgid "Radio"
msgstr ""
#: contents/ui/SearchPage.qml:147
#, kde-format
msgid "Find music on YouTube Music"
msgstr ""
+1 -4
View File
@@ -48,13 +48,10 @@ target_link_libraries(audiotube
KF5::I18n
KF5::CoreAddons
KF5::Crash
QCoro5::Core
QCoro5::Qml
QCoro5::Network
ytm
asyncdatabase
)
target_compile_definitions(audiotube PRIVATE -DQT_NO_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING)
target_compile_definitions(audiotube PRIVATE -DQT_NO_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_QML_DEBUG)
install(TARGETS audiotube ${KDE_INSTALL_TARGETS_DEFAULT_ARGS})
+13 -30
View File
@@ -4,43 +4,26 @@
#include "albummodel.h"
#include <QCoro/QCoroFuture>
#include <QCoro/QCoroTask>
#define AWAIT(coroutine) \
({ \
bool __abort = false; \
connect(this, &QObject::destroyed, [&]() { \
__abort = true; \
}); \
auto val = co_await coroutine; \
if (abort) { \
co_return; \
} \
val; \
})
#include <QDebug>
AlbumModel::AlbumModel(QObject *parent)
: AbstractYTMusicModel(parent)
{
connect(this, &AlbumModel::browseIdChanged, this, [this]() -> QCoro::Task<> {
connect(this, &AlbumModel::browseIdChanged, this, [this] {
setLoading(true);
auto future = YTMusicThread::instance()->fetchAlbum(m_browseId);
connectFuture(future, this, [=, this](const album::Album &album) {
setLoading(false);
auto album = co_await YTMusicThread::instance()->fetchAlbum(m_browseId).withContext(this);
beginResetModel();
m_album = album;
endResetModel();
std::sort(m_album.thumbnails.begin(), m_album.thumbnails.end());
setLoading(false);
beginResetModel();
m_album = album;
endResetModel();
std::sort(m_album.thumbnails.begin(), m_album.thumbnails.end());
Q_EMIT titleChanged();
Q_EMIT thumbnailUrlChanged();
Q_EMIT playlistIdChanged();
Q_EMIT titleChanged();
Q_EMIT thumbnailUrlChanged();
Q_EMIT playlistIdChanged();
});
});
connect(&YTMusicThread::instance().get(), &AsyncYTMusic::errorOccurred, this, [=, this] {
+18 -19
View File
@@ -6,38 +6,37 @@
#include <asyncytmusic.h>
#include <QCoro/QCoroTask>
#include <QCoro/QCoroFuture>
ArtistModel::ArtistModel(QObject *parent)
: AbstractYTMusicModel(parent)
, m_view(albums, singles, songs, videos)
{
connect(this, &ArtistModel::channelIdChanged, this, [this]() -> QCoro::Task<> {
connect(this, &ArtistModel::channelIdChanged, this, [this] {
if (m_channelId.isEmpty()) {
co_return;
return;
}
setLoading(true);
auto artist = co_await YTMusicThread::instance()->fetchArtist(m_channelId);
setLoading(false);
auto future = YTMusicThread::instance()->fetchArtist(m_channelId);
connectFuture(future, this, [=, this](const artist::Artist &artist) {
setLoading(false);
beginResetModel();
m_artist = artist;
std::sort(m_artist.thumbnails.begin(), m_artist.thumbnails.end());
beginResetModel();
m_artist = artist;
std::sort(m_artist.thumbnails.begin(), m_artist.thumbnails.end());
albums = m_artist.albums ? m_artist.albums->results : std::vector<artist::Artist::Album>();
singles = m_artist.singles ? m_artist.singles->results : std::vector<artist::Artist::Single>();
songs = m_artist.songs ? m_artist.songs->results : std::vector<artist::Artist::Song>();
videos = m_artist.videos ? m_artist.videos->results : std::vector<artist::Artist::Video>();
albums = m_artist.albums ? m_artist.albums->results : std::vector<artist::Artist::Album>();
singles = m_artist.singles ? m_artist.singles->results : std::vector<artist::Artist::Single>();
songs = m_artist.songs ? m_artist.songs->results : std::vector<artist::Artist::Song>();
videos = m_artist.videos ? m_artist.videos->results : std::vector<artist::Artist::Video>();
// std::span can't know if the data pointer underneath it was changed, so re-create
m_view = MultiIterableView(albums, singles, songs, videos);
endResetModel();
// std::span can't know if the data pointer underneath it was changed, so re-create
m_view = MultiIterableView(albums, singles, songs, videos);
endResetModel();
Q_EMIT titleChanged();
Q_EMIT thumbnailUrlChanged();
Q_EMIT titleChanged();
Q_EMIT thumbnailUrlChanged();
});
});
connect(&YTMusicThread::instance().get(), &AsyncYTMusic::errorOccurred, this, [this] {
setLoading(false);
+1 -1
View File
@@ -120,7 +120,7 @@ struct AsyncSqlDatabasePrivate {
// Internal asynchronous database class
QFuture<void> AsyncSqlDatabase::establishConnection(const DatabaseConfiguration &configuration)
{
return runAsync([=, this] {
return runAsync<void>([=, this] {
d->database = QSqlDatabase::addDatabase(configuration.type());
if (configuration.databaseName()) {
d->database.setDatabaseName(*configuration.databaseName());
+41 -3
View File
@@ -10,6 +10,10 @@ class QSqlDatabase;
#include <QString>
#include <QObject>
#include <QFuture>
#include <QFutureWatcher>
#include <QSqlQuery>
#include <QDebug>
#include <QThread>
#include <QSharedDataPointer>
#include <memory>
@@ -19,6 +23,9 @@ class QSqlDatabase;
#include "asyncdatabase_p.h"
using Row = std::vector<QVariant>;
using Rows = std::vector<Row>;
struct DatabaseConfigurationPrivate;
///
@@ -59,6 +66,37 @@ private:
///
const QString DATABASE_TYPE_SQLITE = QStringLiteral("QSQLITE");
///
/// Parse the row into a tuple of the given types.
/// The types need to be deserializable from QVariant.
///
template <typename RowTypesTuple>
auto parseRow(const Row &row) -> RowTypesTuple
{
auto tuple = RowTypesTuple();
int i = 0;
asyncdatabase_private::iterate_tuple(tuple, [&](auto &elem) {
elem = row.at(i).value<std::decay_t<decltype(elem)>>();
i++;
});
return tuple;
}
///
/// Parse the rows into a list of tuples of the given types.
/// The types need to be deserializable from QVariant.
///
template <typename RowTypesTuple>
auto parseRows(const Rows &rows) -> std::vector<RowTypesTuple> {
std::vector<RowTypesTuple> parsedRows;
parsedRows.reserve(rows.size());
for (const auto &row : rows) {
parsedRows.push_back(parseRow<RowTypesTuple>(row));
}
return parsedRows;
}
template <typename T>
concept FromSql = requires(T v, typename T::ColumnTypes row)
{
@@ -85,7 +123,7 @@ public:
/// \return
///
template <typename ...Args>
requires std::conjunction_v<std::is_convertible<Args, QVariant>...>
requires std::conjunction_v<std::is_convertible<Args, Args>...>
auto execute(const QString &sqlQuery, Args... args) -> QFuture<void> {
return db().execute(sqlQuery, args...);
}
@@ -113,7 +151,7 @@ public:
/// and a `static T fromSql(ColumnTypes tuple)` deserialization method.
///
template <typename T, typename ...Args>
requires FromSql<T> && std::conjunction_v<std::is_convertible<Args, QVariant>...>
requires FromSql<T> && std::conjunction_v<std::is_convertible<Args, Args>...>
auto getResults(const QString &sqlQuery, Args... args) -> QFuture<std::vector<T>> {
return db().getResults<T, Args...>(sqlQuery, args...);
}
@@ -122,7 +160,7 @@ public:
/// \brief Like getResults, but for retrieving just one row.
///
template <typename T, typename ...Args>
requires FromSql<T> && std::conjunction_v<std::is_convertible<Args, QVariant>...>
requires FromSql<T> && std::conjunction_v<std::is_convertible<Args, Args>...>
auto getResult(const QString &sqlQuery, Args... args) -> QFuture<std::optional<T>> {
return db().getResult<T, Args...>(sqlQuery, args...);
}
+8 -29
View File
@@ -60,26 +60,6 @@ void connectFuture(const QFuture<T> &future, QObjectDerivedType *self, const Fun
using Row = std::vector<QVariant>;
using Rows = std::vector<Row>;
template <typename RowTypesTuple>
auto parseRow(const Row &row) -> RowTypesTuple
{
auto tuple = RowTypesTuple();
int i = 0;
asyncdatabase_private::iterate_tuple(tuple, [&](auto &elem) {
elem = row.at(i).value<std::decay_t<decltype(elem)>>();
i++;
});
return tuple;
}
template <typename RowTypesTuple>
auto parseRows(const Rows &rows) -> std::vector<RowTypesTuple> {
std::vector<RowTypesTuple> parsedRows;
parsedRows.reserve(rows.size());
std::ranges::transform(rows, std::back_inserter(parsedRows), parseRow<RowTypesTuple>);
return parsedRows;
}
void runDatabaseMigrations(QSqlDatabase &database, const QString &migrationDirectory);
void printSqlError(const QSqlQuery &query);
@@ -98,7 +78,7 @@ public:
template <typename T, typename ...Args>
auto getResults(const QString &sqlQuery, Args... args) -> QFuture<std::vector<T>> {
return runAsync([=, this] {
return runAsync<std::vector<T>>([=, this] {
auto query = executeQuery(sqlQuery, args...);
const auto rows = parseRows<typename T::ColumnTypes>(retrieveRows(query));
@@ -110,7 +90,7 @@ public:
template <typename T, typename ...Args>
auto getResult(const QString &sqlQuery, Args... args) -> QFuture<std::optional<T>> {
return runAsync([=, this]() -> std::optional<T> {
return runAsync<std::optional<T>>([=, 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 +102,13 @@ public:
template <typename ...Args>
auto execute(const QString &sqlQuery, Args... args) -> QFuture<void> {
return runAsync([=, this] {
return runAsync<void>([=, this] {
executeQuery(sqlQuery, args...);
});
}
auto runMigrations(const QString &migrationDirectory) -> QFuture<void> {
return runAsync([=, this] {
return runAsync<void>([=, this] {
runDatabaseMigrations(db(), migrationDirectory);
});
}
@@ -149,12 +129,11 @@ private:
return runQuery(query);
}
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>>();
template <typename T, typename Functor>
QFuture<T> runAsync(Functor func) {
auto interface = std::make_shared<QFutureInterface<T>>();
QMetaObject::invokeMethod(this, [interface, func] {
if constexpr (!std::is_same_v<ReturnType, void>) {
if constexpr (!std::is_same_v<T, void>) {
auto result = func();
interface->reportResult(result);
} else {
+23 -26
View File
@@ -9,7 +9,6 @@
#include <QJsonObject>
#include <QJsonArray>
#include <QFutureInterface>
#include <QCoreApplication>
#include <pybind11/embed.h>
@@ -24,8 +23,8 @@ namespace py = pybind11;
#include <type_traits>
#include <memory>
template <typename T, typename OP>
std::optional<std::invoke_result_t<OP, T>> mapOptional(const std::optional<T> &optional, OP op) {
template <typename R, typename T, typename OP>
std::optional<R> map_optional(const std::optional<T> &optional, OP op) {
if (optional.has_value()) {
if constexpr (std::is_member_function_pointer<OP>::value) {
return (&optional.value()->*op)();
@@ -60,9 +59,9 @@ AsyncYTMusic::AsyncYTMusic(QObject *parent)
//
// search
//
QCoro::Task<std::vector<search::SearchResultItem>> AsyncYTMusic::search(const QString &query)
QFuture<std::vector<search::SearchResultItem>> AsyncYTMusic::search(const QString &query)
{
return invokeAndCatchOnThread([=, this]() {
return invokeAndCatchOnThread<std::vector<search::SearchResultItem>>([=, this]() {
return m_ytm->search(query.toStdString());
});
}
@@ -70,9 +69,9 @@ QCoro::Task<std::vector<search::SearchResultItem>> AsyncYTMusic::search(const QS
//
// fetchArtist
//
QCoro::Task<artist::Artist> AsyncYTMusic::fetchArtist(const QString &channelId)
QFuture<artist::Artist> AsyncYTMusic::fetchArtist(const QString &channelId)
{
return invokeAndCatchOnThread([=, this]() {
return invokeAndCatchOnThread<artist::Artist>([=, this]() {
return m_ytm->get_artist(channelId.toStdString());
});
}
@@ -80,9 +79,9 @@ QCoro::Task<artist::Artist> AsyncYTMusic::fetchArtist(const QString &channelId)
//
// fetchAlbum
//
QCoro::Task<album::Album> AsyncYTMusic::fetchAlbum(const QString &browseId)
QFuture<album::Album> AsyncYTMusic::fetchAlbum(const QString &browseId)
{
return invokeAndCatchOnThread([=, this]() {
return invokeAndCatchOnThread<album::Album>([=, this]() {
return m_ytm->get_album(browseId.toStdString());
});
}
@@ -90,9 +89,9 @@ QCoro::Task<album::Album> AsyncYTMusic::fetchAlbum(const QString &browseId)
//
// fetchSong
//
QCoro::Task<std::optional<song::Song>> AsyncYTMusic::fetchSong(const QString &videoId)
QFuture<std::optional<song::Song>> AsyncYTMusic::fetchSong(const QString &videoId)
{
return invokeAndCatchOnThread([=, this]() {
return invokeAndCatchOnThread<std::optional<song::Song>>([=, this]() {
return m_ytm->get_song(videoId.toStdString());
});
}
@@ -100,8 +99,8 @@ QCoro::Task<std::optional<song::Song>> AsyncYTMusic::fetchSong(const QString &vi
//
// fetchPlaylist
//
QCoro::Task<playlist::Playlist> AsyncYTMusic::fetchPlaylist(const QString &playlistId) {
return invokeAndCatchOnThread([=, this]() {
QFuture<playlist::Playlist> AsyncYTMusic::fetchPlaylist(const QString &playlistId) {
return invokeAndCatchOnThread<playlist::Playlist>([=, this]() {
return m_ytm->get_playlist(playlistId.toStdString());
});
}
@@ -109,9 +108,9 @@ QCoro::Task<playlist::Playlist> AsyncYTMusic::fetchPlaylist(const QString &playl
//
// fetchArtistAlbum
//
QCoro::Task<std::vector<artist::Artist::Album>> AsyncYTMusic::fetchArtistAlbums(const QString &channelId, const QString &params)
QFuture<std::vector<artist::Artist::Album>> AsyncYTMusic::fetchArtistAlbums(const QString &channelId, const QString &params)
{
return invokeAndCatchOnThread([=, this]() {
return invokeAndCatchOnThread<std::vector<artist::Artist::Album>>([=, this]() {
return m_ytm->get_artist_albums(channelId.toStdString(), params.toStdString());
});
}
@@ -119,9 +118,9 @@ QCoro::Task<std::vector<artist::Artist::Album>> AsyncYTMusic::fetchArtistAlbums(
//
// extractVideoInfo
//
QCoro::Task<video_info::VideoInfo> AsyncYTMusic::extractVideoInfo(const QString &videoId)
QFuture<video_info::VideoInfo> AsyncYTMusic::extractVideoInfo(const QString &videoId)
{
return invokeAndCatchOnThread([=, this]() {
return invokeAndCatchOnThread<video_info::VideoInfo>([=, this]() {
return m_ytm->extract_video_info(videoId.toStdString());
});
}
@@ -129,12 +128,12 @@ QCoro::Task<video_info::VideoInfo> AsyncYTMusic::extractVideoInfo(const QString
//
// fetchWatchPlaylist
//
QCoro::Task<watch::Playlist> AsyncYTMusic::fetchWatchPlaylist(const std::optional<QString> &videoId, const std::optional<QString> &playlistId)
QFuture<watch::Playlist> AsyncYTMusic::fetchWatchPlaylist(const std::optional<QString> &videoId, const std::optional<QString> &playlistId)
{
return invokeAndCatchOnThread([=, this]() {
return invokeAndCatchOnThread<watch::Playlist>([=, this]() {
return m_ytm->get_watch_playlist(
mapOptional(videoId, &QString::toStdString),
mapOptional(playlistId, &QString::toStdString)
map_optional<std::string>(videoId, &QString::toStdString),
map_optional<std::string>(playlistId, &QString::toStdString)
);
});
}
@@ -153,19 +152,17 @@ YTMusicThread::~YTMusicThread()
AsyncYTMusic *YTMusicThread::operator->()
{
return m_ytm;
return &m_ytm;
}
AsyncYTMusic &YTMusicThread::get()
{
return *m_ytm;
return m_ytm;
}
YTMusicThread::YTMusicThread()
: m_ytm(new AsyncYTMusic())
{
connect(QCoreApplication::instance(), &QCoreApplication::aboutToQuit, m_ytm, &QObject::deleteLater);
setObjectName(QStringLiteral("YTMusicAPI"));
m_ytm->moveToThread(this);
m_ytm.moveToThread(this);
start();
}
+15 -20
View File
@@ -9,9 +9,6 @@
#include <QFuture>
#include <QFutureWatcher>
#include <QCoroFuture>
#include <QCoroTask>
#include <vector>
#include <ytmusic.h>
@@ -78,13 +75,12 @@ 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 Func>
QFuture<std::invoke_result_t<Func, T>> mapFuture(const QFuture<T> &future, Func mapFunction) {
using ReturnType = std::invoke_result_t<Func, T>;
template <typename T, typename U, typename Func>
QFuture<U> mapFuture(const QFuture<T> &future, Func mapFunction) {
auto watcher = std::make_shared<QFutureWatcher<T>>();
watcher->setFuture(future);
auto interface = std::make_shared<QFutureInterface<ReturnType>>();
auto interface = std::make_shared<QFutureInterface<U>>();
QObject::connect(watcher.get(), &QFutureWatcherBase::finished, watcher.get(), [interface, watcher, mapFunction] {
auto result = watcher->result();
auto mapped = mapFunction(std::move(result));
@@ -103,21 +99,21 @@ class AsyncYTMusic : public QObject
public:
// public functions need to be thread safe
QCoro::Task<std::vector<search::SearchResultItem>> search(const QString &query);
QFuture<std::vector<search::SearchResultItem>> search(const QString &query);
QCoro::Task<artist::Artist> fetchArtist(const QString &channelId);
QFuture<artist::Artist> fetchArtist(const QString &channelId);
QCoro::Task<album::Album> fetchAlbum(const QString &browseId);
QFuture<album::Album> fetchAlbum(const QString &browseId);
QCoro::Task<std::optional<song::Song> > fetchSong(const QString &videoId);
QFuture<std::optional<song::Song> > fetchSong(const QString &videoId);
QCoro::Task<playlist::Playlist> fetchPlaylist(const QString &playlistId);
QFuture<playlist::Playlist> fetchPlaylist(const QString &playlistId);
QCoro::Task<std::vector<artist::Artist::Album>> fetchArtistAlbums(const QString &channelId, const QString &params);
QFuture<std::vector<artist::Artist::Album>> fetchArtistAlbums(const QString &channelId, const QString &params);
QCoro::Task<video_info::VideoInfo> extractVideoInfo(const QString &videoId);
QFuture<video_info::VideoInfo> extractVideoInfo(const QString &videoId);
QCoro::Task<watch::Playlist> fetchWatchPlaylist(const std::optional<QString> &videoId = std::nullopt ,
QFuture<watch::Playlist> fetchWatchPlaylist(const std::optional<QString> &videoId = std::nullopt ,
const std::optional<QString> &playlistId = std::nullopt);
Q_SIGNAL void errorOccurred(const QString &error);
@@ -127,9 +123,8 @@ protected:
private:
/// Invokes the given function on the thread of the YTMusic object, and handles exceptions that occur while invoking it.
template <typename Func>
QCoro::Task<std::invoke_result_t<Func>> invokeAndCatchOnThread(Func fun) {
using ReturnType = std::invoke_result_t<Func>;
template <typename ReturnType>
QFuture<ReturnType> invokeAndCatchOnThread(const std::function<ReturnType()> &fun) {
auto interface = std::make_shared<QFutureInterface<ReturnType>>();
QMetaObject::invokeMethod(this, [=, this]() {
try {
@@ -141,7 +136,7 @@ private:
Q_EMIT errorOccurred(QString::fromLocal8Bit(err.what()));
}
});
co_return co_await interface->future();
return interface->future();
}
// Python interpreter will be initialized from the thread calling the methods
@@ -159,5 +154,5 @@ public:
private:
YTMusicThread();
AsyncYTMusic *m_ytm;
AsyncYTMusic m_ytm;
};
-7
View File
@@ -21,13 +21,6 @@ Kirigami.ScrollablePage {
applicationWindow().playPlaylist(albumModel.playlistId)
}
}
right: Kirigami.Action {
icon.name: "media-playlist-shuffle"
text: i18n("Shuffle")
onTriggered: {
applicationWindow().playShufflePlaylist(albumModel.playlistId)
}
}
}
ListView {
+6 -54
View File
@@ -10,38 +10,9 @@ import org.kde.kirigami 2.14 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 {
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")
})
}
Kirigami.Heading {
text: i18n("Favourites")
}
Controls.ScrollView {
Layout.fillWidth: true
@@ -52,7 +23,7 @@ Kirigami.ScrollablePage {
delegate: ColumnLayout {
id: delegateItem
required property string title
required property string artists
required property string artist
required property string videoId
Layout.fillWidth: false
@@ -92,27 +63,8 @@ Kirigami.ScrollablePage {
}
}
}
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")
})
}
Kirigami.Heading {
text: i18n("Most played")
}
Controls.ScrollView {
Layout.fillWidth: true
@@ -123,7 +75,7 @@ Kirigami.ScrollablePage {
delegate: ColumnLayout {
id: mpdelegateItem
required property string title
required property string artists
required property string artist
required property string videoId
Layout.fillWidth: false
+8 -6
View File
@@ -28,7 +28,7 @@ Item {
anchors.fill: parent
color: Qt.rgba(25, 25, 30, 1)
}
Image {
anchors.fill: parent
asynchronous: true
@@ -83,13 +83,14 @@ Item {
ToolButton {
id: nowPlayingTab
text: i18n("Now Playing")
padding: Kirigami.Units.largeSpacing
onClicked: swipeView.setCurrentIndex(0)
Layout.preferredHeight: Kirigami.Units.gridUnit * 2
Layout.preferredWidth: Kirigami.Units.gridUnit * 9
contentItem: Label {
text: i18n("Now Playing")
text: nowPlayingTab.text
horizontalAlignment: Text.AlignHCenter
verticalAlignment: Text.AlignVCenter
elide: Text.ElideRight
@@ -108,13 +109,14 @@ Item {
}
ToolButton {
id: queueTab
text: i18n("Queue")
padding: Kirigami.Units.largeSpacing
onClicked: swipeView.setCurrentIndex(1)
Layout.preferredHeight: Kirigami.Units.gridUnit * 2
Layout.preferredWidth: Kirigami.Units.gridUnit * 9
contentItem: Label {
text: i18n("Queue")
text: queueTab.text
horizontalAlignment: Text.AlignHCenter
verticalAlignment: Text.AlignVCenter
elide: Text.ElideRight
@@ -153,7 +155,7 @@ Item {
Item {
height: swipeView.width
width: swipeView.height
Image {
anchors.centerIn: parent
width: swipeView.specWidth
@@ -169,7 +171,7 @@ Item {
height: 512
}
fillMode: Image.PreserveAspectCrop
fillMode: Image.PreserveAspectFit
}
}
+1 -11
View File
@@ -65,8 +65,6 @@ Item {
Image {
id: mainIcon
anchors.fill: parent
visible: !loadingIndicator.visible
asynchronous: true
mipmap: true
@@ -74,15 +72,7 @@ Item {
sourceSize.width: 512
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
fillMode: Image.PreserveAspectFit
}
}
-85
View File
@@ -1,85 +0,0 @@
// 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
asynchronous: true
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, [])
}
]
}
}
}
+57 -109
View File
@@ -12,10 +12,7 @@ import org.kde.ytmusic 1.0
Kirigami.ApplicationWindow {
id: root
property alias searchField: searchLoader.item // TODO
property bool wideScreen: width >= 600
property bool showSearch: false // only applicable if not widescreen
property alias searchField: searchField
header: Controls.Control {
padding: Kirigami.Units.largeSpacing
@@ -28,56 +25,67 @@ Kirigami.ApplicationWindow {
Kirigami.Theme.colorSet: Kirigami.Theme.Header
color: Kirigami.Theme.backgroundColor
}
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.Heading {
Layout.alignment: Qt.AlignLeft
Layout.leftMargin: Kirigami.Units.largeSpacing
level: 1
text: "AudioTube"
visible: !root.wideScreen && !root.showSearch
}
// spacer
contentItem: RowLayout{
Item {
Layout.fillWidth: !root.wideScreen
Layout.fillWidth: true
}
Loader {
id: searchLoader
visible: root.wideScreen || root.showSearch
Layout.alignment: Qt.AlignHCenter
Kirigami.SearchField {
id: searchField
delaySearch: true
selectByMouse: true
Layout.fillWidth: true
Layout.maximumWidth: 400
sourceComponent: searchFieldComponent
}
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();
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()
}
}
Item {
Layout.fillWidth: true
}
}
}
@@ -112,66 +120,6 @@ 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
+46 -61
View File
@@ -12,18 +12,8 @@
#include "asyncdatabase.h"
#include <QCoroTask>
#include <QCoroFuture>
#include <QCoroQmlTask>
#include <QCoroNetworkReply>
namespace ranges = std::ranges;
template <typename T>
QCoro::Task<T> toTask(QFuture<T> &&future) {
co_return co_await future;
}
Library::Library(QObject *parent)
: QObject{parent}
, m_database(ThreadedDatabase::establishConnection([]() -> DatabaseConfiguration {
@@ -51,23 +41,19 @@ Library &Library::instance()
FavouritesModel *Library::favourites()
{
auto future = m_database->getResults<Song>("select * from favourites natural join songs");
return new FavouritesModel(toTask(std::move(future)), this);
return new FavouritesModel(std::move(future), this);
}
QCoro::QmlTask Library::addFavourite(const QString &videoId, const QString &title)
void Library::addFavourite(const QString &videoId, const QString &title)
{
return [=, this]() -> QCoro::Task<> {
co_await addSong(videoId, title);
co_await m_database->execute("insert or ignore into favourites (video_id) values (?)", videoId);
}();
connectFuture(addSong(videoId, title), this, [=, this] {
connectFuture(m_database->execute("insert or ignore into favourites (video_id) values (?)", videoId), this, &Library::favouritesChanged);
});
}
QCoro::QmlTask Library::removeFavourite(const QString &videoId)
void Library::removeFavourite(const QString &videoId)
{
return [=, this]() -> QCoro::Task<> {
co_await m_database->execute("delete from favourites where video_id = ?", videoId);
Library::favouritesChanged();
}();
connectFuture(m_database->execute("delete from favourites where video_id = ?", videoId), this, &Library::favouritesChanged);
}
FavouriteWatcher *Library::favouriteWatcher(const QString &videoId)
@@ -80,7 +66,7 @@ FavouriteWatcher *Library::favouriteWatcher(const QString &videoId)
SearchHistoryModel *Library::searches()
{
return new SearchHistoryModel(toTask(m_database->getResults<SingleValue<QString>>("select (search_query) from searches order by search_id desc")), this);
return new SearchHistoryModel(m_database->getResults<SingleValue<QString>>("select (search_query) from searches order by search_id desc"), this);
}
void Library::addSearch(const QString &text)
@@ -91,22 +77,22 @@ void Library::addSearch(const QString &text)
PlaybackHistoryModel *Library::playbackHistory()
{
auto future = m_database->getResults<PlayedSong>("select * from played_songs natural join songs");
return new PlaybackHistoryModel(toTask(std::move(future)), this);
return new PlaybackHistoryModel(std::move(future), this);
}
QCoro::QmlTask Library::addPlaybackHistoryItem(const QString videoId, const QString title)
void Library::addPlaybackHistoryItem(const QString &videoId, const QString &title)
{
return [=, this]() -> QCoro::Task<> {
co_await addSong(videoId, title);
co_await m_database->execute("insert or ignore into played_songs (video_id, plays) values (?, ?)", videoId, 0);
co_await m_database->execute("update played_songs set plays = plays + 1 where video_id = ? ", videoId);
}();
connectFuture(addSong(videoId, title), this, [=, this] {
connectFuture(m_database->execute("insert or ignore into played_songs (video_id, plays) values (?, ?)", videoId, 0), this, [=, this] {
connectFuture(m_database->execute("update played_songs set plays = plays + 1 where video_id = ? ", videoId), this, &Library::playbackHistoryChanged);
});
});
}
PlaybackHistoryModel *Library::mostPlayed()
{
auto future = m_database->getResults<PlayedSong>("select * from played_songs natural join songs order by plays desc limit 10");
return new PlaybackHistoryModel(toTask(std::move(future)), this);
return new PlaybackHistoryModel(std::move(future), this);
}
QNetworkAccessManager &Library::nam()
@@ -114,14 +100,14 @@ QNetworkAccessManager &Library::nam()
return m_networkImageCacher;
}
QCoro::Task<> Library::addSong(const QString videoId, const QString title)
QFuture<void> Library::addSong(const QString &videoId, const QString &title)
{
co_await m_database->execute("insert or ignore into songs (video_id, title, artist, album) values (?, ?, null, null)", videoId, title);
return m_database->execute("insert or ignore into songs (video_id, title, artist, album) values (?, ?, null, null)", videoId, title);
}
QCoro::Task<> ThumbnailSource::setVideoId(const QString &id) {
void ThumbnailSource::setVideoId(const QString &id) {
if (m_videoId == id) {
co_return;
return;
}
m_videoId = id;
@@ -133,21 +119,25 @@ QCoro::Task<> ThumbnailSource::setVideoId(const QString &id) {
if (QFile::exists(cacheLocation)) {
setCachedPath(QUrl::fromLocalFile(cacheLocation));
co_return;
return;
}
auto info = co_await YTMusicThread::instance()->extractVideoInfo(id);
auto *reply = co_await Library::instance().nam().get(QNetworkRequest(QUrl(QString::fromStdString(info.thumbnail))));
QFile file(cacheLocation);
file.open(QFile::WriteOnly);
file.write(reply->readAll());
setCachedPath(QUrl::fromLocalFile(cacheLocation));
auto future = YTMusicThread::instance()->extractVideoInfo(id);
connectFuture(future, this, [this, id, cacheLocation](video_info::VideoInfo &&info) {
auto *reply = Library::instance().nam().get(QNetworkRequest(QUrl(QString::fromStdString(info.thumbnail))));
connect(reply, &QNetworkReply::finished, this, [id, reply, this, cacheLocation]() {
QFile file(cacheLocation);
file.open(QFile::WriteOnly);
file.write(reply->readAll());
setCachedPath(QUrl::fromLocalFile(cacheLocation));
});
});
}
PlaybackHistoryModel::PlaybackHistoryModel(QCoro::Task<std::vector<PlayedSong> > &&songs, QObject *parent)
PlaybackHistoryModel::PlaybackHistoryModel(QFuture<std::vector<PlayedSong> > &&songs, QObject *parent)
: QAbstractListModel(parent)
{
songs.then([this](const auto songs) {
connectFuture(songs, this, [this](const auto songs) {
beginResetModel();
m_playedSongs = songs;
endResetModel();
@@ -158,7 +148,7 @@ QHash<int, QByteArray> PlaybackHistoryModel::roleNames() const {
return {
{Roles::VideoId, "videoId"},
{Roles::Title, "title"},
{Roles::Artist, "artists"},
{Roles::Artist, "artist"},
{Roles::Plays, "plays"}
};
}
@@ -182,10 +172,10 @@ QVariant PlaybackHistoryModel::data(const QModelIndex &index, int role) const {
Q_UNREACHABLE();
}
FavouritesModel::FavouritesModel(QCoro::Task<std::vector<Song>> &&songs, QObject *parent)
FavouritesModel::FavouritesModel(QFuture<std::vector<Song>> &&songs, QObject *parent)
: QAbstractListModel(parent)
{
songs.then([this](const auto songs) {
connectFuture(songs, this, [this](const auto songs) {
beginResetModel();
m_favouriteSongs = songs;
endResetModel();
@@ -196,7 +186,7 @@ QHash<int, QByteArray> FavouritesModel::roleNames() const {
return {
{Roles::VideoId, "videoId"},
{Roles::Title, "title"},
{Roles::Artist, "artists"}
{Roles::Artist, "artist"}
};
}
@@ -217,21 +207,16 @@ QVariant FavouritesModel::data(const QModelIndex &index, int role) const {
Q_UNREACHABLE();
}
template <typename T>
QCoro::Task<T> toTask(QFuture<T> &future) {
auto result = co_await future;
co_return result;
}
FavouriteWatcher::FavouriteWatcher(Library *library, const QString &videoId)
: QObject(library), m_videoId(videoId), m_library(library)
{
auto update = [this]() -> QCoro::Task<> {
auto count = co_await toTask(m_library->database().getResult<SingleValue<bool>>("select count(*) > 0 from favourites where video_id = ?", m_videoId)).withContext(this);
if (count) {
m_isFavourite = count->value;
Q_EMIT isFavouriteChanged();
}
auto update = [this] {
connectFuture(m_library->database().getResult<SingleValue<int>>("select count(*) from favourites where video_id = ?", m_videoId), this, [this](auto count) {
if (count) {
m_isFavourite = count->value > 0;
Q_EMIT isFavouriteChanged();
}
});
};
update();
connect(library, &Library::favouritesChanged, this, update);
@@ -241,10 +226,10 @@ bool FavouriteWatcher::isFavourite() const {
return m_isFavourite;
}
SearchHistoryModel::SearchHistoryModel(QCoro::Task<std::vector<SingleValue<QString>>> &&historyFuture, QObject *parent)
SearchHistoryModel::SearchHistoryModel(QFuture<std::vector<SingleValue<QString>>> &&historyFuture, QObject *parent)
: QAbstractListModel(parent)
{
historyFuture.then([this](const auto history) {
connectFuture(historyFuture, this, [this](const auto history) {
beginResetModel();
m_history = history;
endResetModel();
+8 -10
View File
@@ -9,8 +9,6 @@
#include <QNetworkAccessManager>
#include <QAbstractListModel>
#include <QCoroQmlTask>
#include <memory>
#include "asyncytmusic.h"
@@ -42,7 +40,7 @@ class FavouritesModel : public QAbstractListModel {
};
public:
FavouritesModel(QCoro::Task<std::vector<Song>> &&songs, QObject *parent = nullptr);
FavouritesModel(QFuture<std::vector<Song>> &&songs, QObject *parent = nullptr);
QHash<int, QByteArray> roleNames() const override;
int rowCount(const QModelIndex &parent) const override;
@@ -78,7 +76,7 @@ class PlaybackHistoryModel : public QAbstractListModel {
};
public:
PlaybackHistoryModel(QCoro::Task<std::vector<PlayedSong>> &&songs, QObject *parent = nullptr);
PlaybackHistoryModel(QFuture<std::vector<PlayedSong>> &&songs, QObject *parent = nullptr);
QHash<int, QByteArray> roleNames() const override;
int rowCount(const QModelIndex &parent) const override;
@@ -92,7 +90,7 @@ class SearchHistoryModel : public QAbstractListModel {
Q_OBJECT
public:
SearchHistoryModel(QCoro::Task<std::vector<SingleValue<QString>>> &&historyFuture, QObject *parent = nullptr);
SearchHistoryModel(QFuture<std::vector<SingleValue<QString>>> &&historyFuture, QObject *parent = nullptr);
int rowCount(const QModelIndex &parent) const override;
QVariant data(const QModelIndex &index, int role) const override;
@@ -116,8 +114,8 @@ public:
FavouritesModel *favourites();
Q_SIGNAL void favouritesChanged();
Q_INVOKABLE QCoro::QmlTask addFavourite(const QString &videoId, const QString &title);
Q_INVOKABLE QCoro::QmlTask removeFavourite(const QString &videoId);
Q_INVOKABLE void addFavourite(const QString &videoId, const QString &title);
Q_INVOKABLE void removeFavourite(const QString &videoId);
Q_INVOKABLE FavouriteWatcher *favouriteWatcher(const QString &videoId);
SearchHistoryModel *searches();
@@ -126,7 +124,7 @@ public:
PlaybackHistoryModel *playbackHistory();
Q_SIGNAL void playbackHistoryChanged();
Q_INVOKABLE QCoro::QmlTask addPlaybackHistoryItem(const QString videoId, const QString title);
Q_INVOKABLE void addPlaybackHistoryItem(const QString &videoId, const QString &title);
PlaybackHistoryModel *mostPlayed();
@@ -136,7 +134,7 @@ public:
}
private:
QCoro::Task<> addSong(const QString videoId, const QString title);
QFuture<void> addSong(const QString &videoId, const QString &title);
QNetworkAccessManager m_networkImageCacher;
std::unique_ptr<ThreadedDatabase> m_database;
@@ -152,7 +150,7 @@ class ThumbnailSource : public QObject {
QString videoId() const {
return m_videoId;
}
QCoro::Task<> setVideoId(const QString &id);
void setVideoId(const QString &id);
Q_SIGNAL void videoIdChanged();
QUrl cachedPath() const {
-4
View File
@@ -11,8 +11,6 @@
#include <KCrash>
#include <KAboutData>
#include <QCoroQml>
#include "searchmodel.h"
#include "albummodel.h"
#include "videoinfoextractor.h"
@@ -40,8 +38,6 @@ Q_DECL_EXPORT int main(int argc, char *argv[])
KAboutData::setApplicationData(KAboutData(QStringLiteral("audiotube"), QStringLiteral("AudioTube")));
KCrash::initialize();
QCoro::Qml::registerTypes();
QQmlApplicationEngine engine;
qmlRegisterType<SearchModel>(URI, 1, 0, "SearchModel");
+1 -1
View File
@@ -16,7 +16,7 @@ PlaylistModel::PlaylistModel(QObject *parent)
connect(this, &PlaylistModel::playlistIdChanged, this, [=, this] {
setLoading(true);
auto future = YTMusicThread::instance()->fetchPlaylist(m_playlistId);
future.then(this, [=, this](const playlist::Playlist &playlist) {
connectFuture(future, this, [=, this](const playlist::Playlist &playlist) {
setLoading(false);
beginResetModel();
m_playlist = playlist;
-1
View File
@@ -18,6 +18,5 @@ 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>
</qresource>
</RCC>
+9 -10
View File
@@ -4,26 +4,25 @@
#include "searchmodel.h"
#include <QCoroFuture>
#include <QCoroTask>
SearchModel::SearchModel(QObject *parent)
: AbstractYTMusicModel(parent)
{
connect(this, &SearchModel::searchQueryChanged, this, [this]() -> QCoro::Task<> {
connect(this, &SearchModel::searchQueryChanged, this, [this] {
if (m_searchQuery.isEmpty()) {
beginResetModel();
m_searchResults.clear();
endResetModel();
co_return;
return;
}
setLoading(true);
auto results = co_await YTMusicThread::instance()->search(m_searchQuery);
beginResetModel();
setLoading(false);
m_searchResults = results;
endResetModel();
auto future = YTMusicThread::instance()->search(m_searchQuery);
connectFuture(future, this, [=, this](const std::vector<search::SearchResultItem> &results) {
beginResetModel();
setLoading(false);
m_searchResults = results;
endResetModel();
});
});
connect(&YTMusicThread::instance().get(), &AsyncYTMusic::errorOccurred, this, [this] {
setLoading(false);
+2 -2
View File
@@ -41,7 +41,7 @@ UserPlaylistModel::UserPlaylistModel(QObject *parent)
setLoading(true);
auto future = YTMusicThread::instance()->fetchWatchPlaylist(m_initialVideoId);
future.then(this, handleResult);
connectFuture(future, this, handleResult);
});
connect(this, &UserPlaylistModel::playlistIdChanged, this, [=, this] {
if (m_playlistId.isEmpty()) {
@@ -50,7 +50,7 @@ UserPlaylistModel::UserPlaylistModel(QObject *parent)
setLoading(true);
auto future = YTMusicThread::instance()->fetchWatchPlaylist(std::nullopt, m_playlistId);
future.then(this, handleResult);
connectFuture(future, this, handleResult);;
});
connect(&YTMusicThread::instance().get(), &AsyncYTMusic::errorOccurred, this, [this] {
setLoading(false);
+1 -1
View File
@@ -27,7 +27,7 @@ VideoInfoExtractor::VideoInfoExtractor(QObject *parent)
setLoading(true);
auto future = YTMusicThread::instance()->extractVideoInfo(QString::fromStdString(m_videoId.toStdString()));
future.then(this, [this](const video_info::VideoInfo &videoInfo) {
connectFuture(future, this, [this](const video_info::VideoInfo &videoInfo) {
m_videoInfo = videoInfo;
setLoading(false);
Q_EMIT audioUrlChanged();
+1 -2
View File
@@ -5,7 +5,6 @@
#include "ytmusic.h"
#include <algorithm>
#include <iostream>
#include <pybind11/embed.h>
#include <pybind11/stl.h>
@@ -359,7 +358,7 @@ artist::Artist YTMusic::get_artist(const std::string &channel_id) const
artist["views"].cast<std::optional<std::string>>(),
artist["name"].cast<std::string>(),
artist["channelId"].cast<std::string>(),
artist["subscribers"].cast<std::optional<std::string>>(),
artist["subscribers"].cast<std::string>(),
artist["subscribed"].cast<bool>(),
extract_py_list<meta::Thumbnail>(artist["thumbnails"]),
extract_artist_section<artist::Artist::Song>(artist, "songs"),
+1 -1
View File
@@ -131,7 +131,7 @@ struct Artist {
std::optional<std::string> views;
std::string name;
std::string channel_id;
std::optional<std::string> subscribers;
std::string subscribers;
bool subscribed;
std::vector<meta::Thumbnail> thumbnails;
std::optional<Section<Song>> songs;