Compare commits
65
Commits
v22.09
...
work/wip/ytmx
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9440629b68 | ||
|
|
634ccf7835 | ||
|
|
da6363d6cc | ||
|
|
0447eb3ca2 | ||
|
|
d49addb1ae | ||
|
|
bade37f9f2 | ||
|
|
5581c9f8e9 | ||
|
|
342984283c | ||
|
|
d313c4b79b | ||
|
|
eb3bb80669 | ||
|
|
c56bbb68f6 | ||
|
|
f5a54fc7e7 | ||
|
|
f2f653815b | ||
|
|
4edfc8db71 | ||
|
|
f368c8fd8c | ||
|
|
a0f7854c52 | ||
|
|
fb9e17621f | ||
|
|
d5b2c2c45c | ||
|
|
0e6abff8ff | ||
|
|
a762edafc7 | ||
|
|
d1bf0c711c | ||
|
|
996322c335 | ||
|
|
54d7c276bf | ||
|
|
234f364b33 | ||
|
|
0d019b9499 | ||
|
|
f4d144d53e | ||
|
|
49bff407ad | ||
|
|
1e2df2d6d8 | ||
|
|
7c3d83704b | ||
|
|
2796d9be83 | ||
|
|
4233a323b7 | ||
|
|
cf5d8df35d | ||
|
|
86f16fc7af | ||
|
|
7024e1526f | ||
|
|
d2b256f943 | ||
|
|
dcf1b9df98 | ||
|
|
0f0e8a5974 | ||
|
|
f703f1e357 | ||
|
|
3815759cd3 | ||
|
|
72242e328c | ||
|
|
c38805fa92 | ||
|
|
1ae12c868e | ||
|
|
9f3789eac5 | ||
|
|
a956177d6a | ||
|
|
b900c44188 | ||
|
|
e521c07102 | ||
|
|
e696298bc9 | ||
|
|
b65fbe83f4 | ||
|
|
ce6782a131 | ||
|
|
a37746440a | ||
|
|
eaf62c2770 | ||
|
|
147392f317 | ||
|
|
63d56acd88 | ||
|
|
28d07b370f | ||
|
|
d648ba9c93 | ||
|
|
a82dae6251 | ||
|
|
f99a17339b | ||
|
|
198266c081 | ||
|
|
756c2f8b56 | ||
|
|
abdba9922a | ||
|
|
7ca4095571 | ||
|
|
c3128c9855 | ||
|
|
20ae6c37cb | ||
|
|
3c2fdca5fc | ||
|
|
395c7ad140 |
No files matched your search
+1
-1
@@ -33,7 +33,7 @@ ecm_setup_version(${PROJECT_VERSION}
|
||||
|
||||
kde_enable_exceptions()
|
||||
|
||||
find_package(Qt5 ${QT5_MIN_VERSION} REQUIRED COMPONENTS Core Gui Qml QuickControls2 Svg Sql)
|
||||
find_package(Qt${QT_MAJOR_VERSION} ${QT5_MIN_VERSION} REQUIRED COMPONENTS Core Gui Qml QuickControls2 Svg Sql Widgets)
|
||||
find_package(KF5 ${KF5_MIN_VERSION} REQUIRED COMPONENTS Kirigami2 I18n CoreAddons Crash)
|
||||
find_package(pybind11 REQUIRED)
|
||||
find_package(Ytdlp REQUIRED RUNTIME)
|
||||
|
||||
@@ -2,6 +2,12 @@
|
||||
|
||||
AudioTube is a client for YouTube Music.
|
||||
|
||||
<a href='https://flathub.org/apps/details/org.kde.audiotube'><img width='190px' alt='Download on Flathub' src='https://flathub.org/assets/badges/flathub-badge-i-en.png'/></a>
|
||||
|
||||
## Links
|
||||
* Project page: https://invent.kde.org/plasma-mobile/audiotube
|
||||
* File issues: https://bugs.kde.org/describecomponents.cgi?product=audiotube
|
||||
|
||||
# Dependencies
|
||||
|
||||
It depends on Qt, Kirigami, KI18n, KCoreAddons and KCrash in addition to a few python packages:
|
||||
|
||||
+17
-17
@@ -5,21 +5,6 @@
|
||||
"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/10/a5/6e8b3a3f9caa535543f342254ee15e711cb26e974b54f998e90e17e1fe09/yt_dlp-2022.9.1-py2.py3-none-any.whl",
|
||||
"sha256": "af3721ecb286a95272008add3b9bebde4f370fb3bdd1bb6402727af9e2e3aa2b"
|
||||
},
|
||||
{
|
||||
"type": "file",
|
||||
"url": "https://files.pythonhosted.org/packages/f8/a3/622d9acbfb9a71144b5d7609906bc648c62e3ca5fdbb1c8cca222949d82c/websockets-10.3.tar.gz",
|
||||
"sha256": "fc06cc8073c8e87072138ba1e431300e2d408f054b27047d047b549455066ff4"
|
||||
},
|
||||
{
|
||||
"type": "file",
|
||||
"url": "https://files.pythonhosted.org/packages/16/b3/f7aa8edf2ff4495116f95fd442b2a346aa55d1d46313143c8814886dbcdb/mutagen-1.45.1-py3-none-any.whl",
|
||||
"sha256": "9c9f243fcec7f410f138cb12c21c84c64fde4195481a30c9bfb05b5f003adfed"
|
||||
},
|
||||
{
|
||||
"type": "file",
|
||||
"url": "https://files.pythonhosted.org/packages/2a/18/70c32fe9357f3eea18598b23aa9ed29b1711c3001835f7cf99a9818985d0/Brotli-1.0.9.zip",
|
||||
@@ -27,13 +12,28 @@
|
||||
},
|
||||
{
|
||||
"type": "file",
|
||||
"url": "https://files.pythonhosted.org/packages/e9/06/d3d367b7af6305b16f0d28ae2aaeb86154fa91f144f036c2d5002a5a202b/certifi-2022.6.15-py3-none-any.whl",
|
||||
"sha256": "fe86415d55e84719d75f8b69414f6438ac3547d2078ab91b67e779ef69378412"
|
||||
"url": "https://files.pythonhosted.org/packages/1d/38/fa96a426e0c0e68aabc68e896584b83ad1eec779265a028e156ce509630e/certifi-2022.9.24-py3-none-any.whl",
|
||||
"sha256": "90c1a32f1d68f940488354e36370f6cca89f0f106db09518524c88d6ed83f382"
|
||||
},
|
||||
{
|
||||
"type": "file",
|
||||
"url": "https://files.pythonhosted.org/packages/03/ee/114d7016d2e34f341e212fefb5e7bd87785077ebcfff0ad23a497c70eea1/mutagen-1.46.0-py3-none-any.whl",
|
||||
"sha256": "8af0728aa2d5c3ee5a727e28d0627966641fddfe804c23eabb5926a4d770aed5"
|
||||
},
|
||||
{
|
||||
"type": "file",
|
||||
"url": "https://files.pythonhosted.org/packages/52/0d/6cc95a83f6961a1ca041798d222240890af79b381e97eda3b9b538dba16f/pycryptodomex-3.15.0.tar.gz",
|
||||
"sha256": "7341f1bb2dadb0d1a0047f34c3a58208a92423cdbd3244d998e4b28df5eac0ed"
|
||||
},
|
||||
{
|
||||
"type": "file",
|
||||
"url": "https://files.pythonhosted.org/packages/85/dc/549a807a53c13fd4a8dac286f117a7a71260defea9ec0c05d6027f2ae273/websockets-10.4.tar.gz",
|
||||
"sha256": "eef610b23933c54d5d921c92578ae5f89813438fded840c2e9809d378dc765d3"
|
||||
},
|
||||
{
|
||||
"type": "file",
|
||||
"url": "https://files.pythonhosted.org/packages/2b/8c/6382d335662361fe06bea1ca96a189982cc050c2f9946dcd320b8c26a833/yt_dlp-2022.10.4-py2.py3-none-any.whl",
|
||||
"sha256": "cc21d91048b275bda7018bdc3103374882261ccf29720206d61b10e168c8b719"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -5,6 +5,11 @@
|
||||
"pip3 install --verbose --exists-action=i --no-index --find-links=\"file://${PWD}\" --prefix=${FLATPAK_DEST} \"ytmusicapi\" --no-build-isolation"
|
||||
],
|
||||
"sources": [
|
||||
{
|
||||
"type": "file",
|
||||
"url": "https://files.pythonhosted.org/packages/1d/38/fa96a426e0c0e68aabc68e896584b83ad1eec779265a028e156ce509630e/certifi-2022.9.24-py3-none-any.whl",
|
||||
"sha256": "90c1a32f1d68f940488354e36370f6cca89f0f106db09518524c88d6ed83f382"
|
||||
},
|
||||
{
|
||||
"type": "file",
|
||||
"url": "https://files.pythonhosted.org/packages/db/51/a507c856293ab05cdc1db77ff4bc1268ddd39f29e7dc4919aa497f0adbec/charset_normalizer-2.1.1-py3-none-any.whl",
|
||||
@@ -12,8 +17,8 @@
|
||||
},
|
||||
{
|
||||
"type": "file",
|
||||
"url": "https://files.pythonhosted.org/packages/6f/de/5be2e3eed8426f871b170663333a0f627fc2924cc386cd41be065e7ea870/urllib3-1.26.12-py2.py3-none-any.whl",
|
||||
"sha256": "b930dd878d5a8afb066a637fbb35144fe7901e3b209d1cd4f524bd0e9deee997"
|
||||
"url": "https://files.pythonhosted.org/packages/fc/34/3030de6f1370931b9dbb4dad48f6ab1015ab1d32447850b9fc94e60097be/idna-3.4-py3-none-any.whl",
|
||||
"sha256": "90b77e79eaa3eba6de819a0c442c0b4ceefc341a7a2ab77d7562bf49f425c5c2"
|
||||
},
|
||||
{
|
||||
"type": "file",
|
||||
@@ -22,18 +27,13 @@
|
||||
},
|
||||
{
|
||||
"type": "file",
|
||||
"url": "https://files.pythonhosted.org/packages/0e/5a/4a5316bddbb697d4b1787159291edfeffd10f73c08b59c7248b15291b601/ytmusicapi-0.22.0-py3-none-any.whl",
|
||||
"sha256": "d042520f3f76eac2c1498130dbc4e8a4af21ca73496590a5ff054fc4da0af1d8"
|
||||
"url": "https://files.pythonhosted.org/packages/6f/de/5be2e3eed8426f871b170663333a0f627fc2924cc386cd41be065e7ea870/urllib3-1.26.12-py2.py3-none-any.whl",
|
||||
"sha256": "b930dd878d5a8afb066a637fbb35144fe7901e3b209d1cd4f524bd0e9deee997"
|
||||
},
|
||||
{
|
||||
"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"
|
||||
"url": "https://files.pythonhosted.org/packages/74/5f/929784007a6777272b3bd51dc7a13e39d5192d64b3831535e83776cd825d/ytmusicapi-0.24.0-py3-none-any.whl",
|
||||
"sha256": "ac25baec1314274030e422c841932d94119394f54c7e70c64a2be1f26be69c2b"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -19,7 +19,9 @@ SPDX-License-Identifier: CC0-1.0
|
||||
<name xml:lang="fi">AudioTube</name>
|
||||
<name xml:lang="fr">AudioTube</name>
|
||||
<name xml:lang="hi">ओडियो-ट्यूब</name>
|
||||
<name xml:lang="id">AudioTube</name>
|
||||
<name xml:lang="it">AudioTube</name>
|
||||
<name xml:lang="ka">AudioTube</name>
|
||||
<name xml:lang="ko">AudioTube</name>
|
||||
<name xml:lang="nl">AudioTube</name>
|
||||
<name xml:lang="nn">AudioTube</name>
|
||||
@@ -47,7 +49,9 @@ SPDX-License-Identifier: CC0-1.0
|
||||
<summary xml:lang="fi">Mukautuva YouTube Music -asiakas</summary>
|
||||
<summary xml:lang="fr">Client convergent pour musique sur YouTube</summary>
|
||||
<summary xml:lang="hi">अभिसृत यूट्यूब संगीत क्लाएंट</summary>
|
||||
<summary xml:lang="id">Klien YouTube Music konvergen</summary>
|
||||
<summary xml:lang="it">Client YouTube Music convergente</summary>
|
||||
<summary xml:lang="ka">YouTube Music -ის კონვერგენტული კლიენტი</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>
|
||||
@@ -76,7 +80,9 @@ SPDX-License-Identifier: CC0-1.0
|
||||
<developer_name xml:lang="fi">KDE-yhteisö</developer_name>
|
||||
<developer_name xml:lang="fr">Communauté de KDE</developer_name>
|
||||
<developer_name xml:lang="hi">केडीई समुदाय</developer_name>
|
||||
<developer_name xml:lang="id">Komunitas KDE</developer_name>
|
||||
<developer_name xml:lang="it">Comunità KDE</developer_name>
|
||||
<developer_name xml:lang="ka">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>
|
||||
@@ -162,7 +168,9 @@ SPDX-License-Identifier: CC0-1.0
|
||||
<p xml:lang="fi">AudioTube osaa etsiä YouTube Music -haun, albumien ja artistien luettelun, luotujen soittolistojen automaattisen toiston ja omien soittolistojen kokoamisen.</p>
|
||||
<p xml:lang="fr">AudioTube peut effectuer des recherches de musiques sur YouTube Music, établir une liste d'albums et d'artistes, lire des listes de lecture générées automatiquement, des albums et permet de composer sa propre liste de lecture.</p>
|
||||
<p xml:lang="hi">ऑडियोट्यूब यूट्यूब संगीत खोज सकता है, एल्बम और कलाकारों की सूची बना सकता है, स्वचालित रूप से उत्पन्न की गई गीतसूची, एल्बम बजा सकता है और आपकी अपनी खुद की प्लेलिस्ट को एक साथ रखने में मदद करता है।</p>
|
||||
<p xml:lang="id">AudioTube dapat menelusuri YouTube Music, daftarkan album dan artis, putar daftar putar dan yang dibuat secara otomatis dan album, dan memungkinkan Anda untuk membuat daftar putar Anda sendiri.</p>
|
||||
<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="ka">AudioTube -ს შეუძლია მოძებნოს მუსიკა YouTube-ზე, გაჩვენოთ ალბომებისა და შემსრულებლების სია, დაუკრას დაგენერირებული დასაკრავი სიები, ალბომები და საშუალებას გაძლევთ, თქვენი დასაკრავი სია შექმნათ.</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>
|
||||
|
||||
@@ -12,7 +12,9 @@ Name[eu]=AudioTube
|
||||
Name[fi]=AudioTube
|
||||
Name[fr]=AudioTube
|
||||
Name[hi]=ओडियो-ट्यूब
|
||||
Name[id]=AudioTube
|
||||
Name[it]=AudioTube
|
||||
Name[ka]=AudioTube
|
||||
Name[ko]=AudioTube
|
||||
Name[nl]=AudioTube
|
||||
Name[nn]=AudioTube
|
||||
@@ -41,7 +43,9 @@ Comment[eu]=YouTube Music bezeroa
|
||||
Comment[fi]=YouTube Music -asiakas
|
||||
Comment[fr]=Client de musique sur Youtube
|
||||
Comment[hi]=यूट्यूब संगीत क्लाएंट
|
||||
Comment[id]=Klien YouTube Music
|
||||
Comment[it]=Client YouTube Music
|
||||
Comment[ka]=YouTube Music -ის კლიენტი
|
||||
Comment[ko]=YouTube Music 클라이언트
|
||||
Comment[nl]=Muziekclient van YouTube
|
||||
Comment[nn]=YouTube Music-klient
|
||||
|
||||
+29
-24
@@ -6,17 +6,17 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: audiotube\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2022-08-27 00:50+0000\n"
|
||||
"PO-Revision-Date: 2022-08-28 22:19+0400\n"
|
||||
"POT-Creation-Date: 2022-11-23 00:50+0000\n"
|
||||
"PO-Revision-Date: 2022-11-07 19:04+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"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 "
|
||||
"&& n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n"
|
||||
"X-Generator: Lokalize 21.07.70\n"
|
||||
"X-Generator: Lokalize 21.12.3\n"
|
||||
|
||||
#, kde-format
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
@@ -43,15 +43,15 @@ msgstr "اخلط"
|
||||
msgid "Open in Browser"
|
||||
msgstr "افتح في المتصفّح"
|
||||
|
||||
#: contents/ui/AlbumPage.qml:77 contents/ui/ArtistPage.qml:109
|
||||
#: contents/ui/PlaybackHistory.qml:74 contents/ui/PlaylistPage.qml:67
|
||||
#: contents/ui/AlbumPage.qml:78 contents/ui/ArtistPage.qml:100
|
||||
#: contents/ui/PlaybackHistory.qml:74 contents/ui/PlaylistPage.qml:68
|
||||
#, kde-format
|
||||
msgid "Play Next"
|
||||
msgstr "شغل التالي"
|
||||
|
||||
#: contents/ui/AlbumPage.qml:82 contents/ui/ArtistPage.qml:115
|
||||
#: contents/ui/PlaybackHistory.qml:79 contents/ui/PlaylistPage.qml:72
|
||||
#: contents/ui/SearchPage.qml:123
|
||||
#: contents/ui/AlbumPage.qml:83 contents/ui/ArtistPage.qml:106
|
||||
#: contents/ui/PlaybackHistory.qml:79 contents/ui/PlaylistPage.qml:73
|
||||
#: contents/ui/SearchPage.qml:122
|
||||
#, kde-format
|
||||
msgid "Add to Playlist"
|
||||
msgstr "أضف إلى قائمة التّشغيل"
|
||||
@@ -93,62 +93,67 @@ msgstr "حسنًا"
|
||||
msgid "Cancel"
|
||||
msgstr "ألغِ"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:27
|
||||
#: contents/ui/LibraryPage.qml:21
|
||||
#, kde-format
|
||||
msgid "Favourites"
|
||||
msgstr "المفضلة"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:37 contents/ui/LibraryPage.qml:108
|
||||
#: contents/ui/LibraryPage.qml:31 contents/ui/LibraryPage.qml:187
|
||||
#, kde-format
|
||||
msgid "Show All"
|
||||
msgstr "أظهر الكلّ"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:42
|
||||
#: contents/ui/LibraryPage.qml:36
|
||||
#, kde-format
|
||||
msgid "Favourite Songs"
|
||||
msgstr "الأغاني المفضّلة"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:98
|
||||
#: contents/ui/LibraryPage.qml:177
|
||||
#, kde-format
|
||||
msgid "Most played"
|
||||
msgstr "الأكثر تشغيلا"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:113
|
||||
#: contents/ui/LibraryPage.qml:192
|
||||
#, kde-format
|
||||
msgid "Played Songs"
|
||||
msgstr "الأغاني المشغلة"
|
||||
|
||||
#: contents/ui/main.qml:39
|
||||
#: contents/ui/main.qml:49
|
||||
#, kde-format
|
||||
msgid "Back"
|
||||
msgstr "عُد"
|
||||
|
||||
#: contents/ui/main.qml:73 contents/ui/SearchPage.qml:150
|
||||
#: contents/ui/main.qml:83 contents/ui/SearchPage.qml:149
|
||||
#, kde-format
|
||||
msgid "Search"
|
||||
msgstr "ابحث"
|
||||
|
||||
#: contents/ui/main.qml:85
|
||||
#: contents/ui/main.qml:95
|
||||
#, kde-format
|
||||
msgid "AudioTube"
|
||||
msgstr "تيوب الصوتي"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:92
|
||||
#: contents/ui/MaximizedPlayerPage.qml:105
|
||||
#, kde-format
|
||||
msgid "Now Playing"
|
||||
msgstr "المشغل الآن"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:117
|
||||
#: contents/ui/MaximizedPlayerPage.qml:130
|
||||
#, kde-format
|
||||
msgid "Queue"
|
||||
msgstr "صُفّ"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:222
|
||||
#: contents/ui/MaximizedPlayerPage.qml:155
|
||||
#, kde-format
|
||||
msgid "Lyrics"
|
||||
msgstr "الكلمات"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:292
|
||||
#, kde-format
|
||||
msgid "Remove Track"
|
||||
msgstr "أزل المسار"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:242
|
||||
#: contents/ui/MaximizedPlayerPage.qml:334
|
||||
#: contents/ui/MinimizedPlayerControls.qml:96
|
||||
#, kde-format
|
||||
msgid "No media playing"
|
||||
@@ -179,17 +184,17 @@ msgstr "قوائم التّشغيل"
|
||||
msgid "Unknown"
|
||||
msgstr "مجهول"
|
||||
|
||||
#: contents/ui/SearchPage.qml:117
|
||||
#: contents/ui/SearchPage.qml:116
|
||||
#, kde-format
|
||||
msgid "Play next"
|
||||
msgstr "شغل التالي"
|
||||
|
||||
#: contents/ui/SearchPage.qml:129
|
||||
#: contents/ui/SearchPage.qml:128
|
||||
#, kde-format
|
||||
msgid "Radio"
|
||||
msgstr "راديو"
|
||||
|
||||
#: contents/ui/SearchPage.qml:147
|
||||
#: contents/ui/SearchPage.qml:146
|
||||
#, kde-format
|
||||
msgid "Find music on YouTube Music"
|
||||
msgstr "اعثر على موسيقى على موسيقى يوتيوب"
|
||||
|
||||
+26
-21
@@ -6,7 +6,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: audiotube\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2022-08-27 00:50+0000\n"
|
||||
"POT-Creation-Date: 2022-11-23 00:50+0000\n"
|
||||
"PO-Revision-Date: 2022-06-19 12:16+0400\n"
|
||||
"Last-Translator: Kheyyam <[email protected]>\n"
|
||||
"Language-Team: Azerbaijani <[email protected]>\n"
|
||||
@@ -42,15 +42,15 @@ msgstr "Qarışıq"
|
||||
msgid "Open in Browser"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/AlbumPage.qml:77 contents/ui/ArtistPage.qml:109
|
||||
#: contents/ui/PlaybackHistory.qml:74 contents/ui/PlaylistPage.qml:67
|
||||
#: contents/ui/AlbumPage.qml:78 contents/ui/ArtistPage.qml:100
|
||||
#: contents/ui/PlaybackHistory.qml:74 contents/ui/PlaylistPage.qml:68
|
||||
#, kde-format
|
||||
msgid "Play Next"
|
||||
msgstr "Sonrakını oxudun"
|
||||
|
||||
#: contents/ui/AlbumPage.qml:82 contents/ui/ArtistPage.qml:115
|
||||
#: contents/ui/PlaybackHistory.qml:79 contents/ui/PlaylistPage.qml:72
|
||||
#: contents/ui/SearchPage.qml:123
|
||||
#: contents/ui/AlbumPage.qml:83 contents/ui/ArtistPage.qml:106
|
||||
#: contents/ui/PlaybackHistory.qml:79 contents/ui/PlaylistPage.qml:73
|
||||
#: contents/ui/SearchPage.qml:122
|
||||
#, kde-format
|
||||
msgid "Add to Playlist"
|
||||
msgstr "Mahnı siyahısına əlavə edin"
|
||||
@@ -94,62 +94,67 @@ msgstr "OLDU"
|
||||
msgid "Cancel"
|
||||
msgstr "İmtina"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:27
|
||||
#: contents/ui/LibraryPage.qml:21
|
||||
#, kde-format
|
||||
msgid "Favourites"
|
||||
msgstr "Süçilmişlər"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:37 contents/ui/LibraryPage.qml:108
|
||||
#: contents/ui/LibraryPage.qml:31 contents/ui/LibraryPage.qml:187
|
||||
#, kde-format
|
||||
msgid "Show All"
|
||||
msgstr "Hamısı göstərilsin"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:42
|
||||
#: contents/ui/LibraryPage.qml:36
|
||||
#, kde-format
|
||||
msgid "Favourite Songs"
|
||||
msgstr "Seçilmiş mahnılar"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:98
|
||||
#: contents/ui/LibraryPage.qml:177
|
||||
#, kde-format
|
||||
msgid "Most played"
|
||||
msgstr "Daha çox dinlənilən"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:113
|
||||
#: contents/ui/LibraryPage.qml:192
|
||||
#, kde-format
|
||||
msgid "Played Songs"
|
||||
msgstr "Oxudulan mahnılar"
|
||||
|
||||
#: contents/ui/main.qml:39
|
||||
#: contents/ui/main.qml:49
|
||||
#, kde-format
|
||||
msgid "Back"
|
||||
msgstr "Geriyə"
|
||||
|
||||
#: contents/ui/main.qml:73 contents/ui/SearchPage.qml:150
|
||||
#: contents/ui/main.qml:83 contents/ui/SearchPage.qml:149
|
||||
#, kde-format
|
||||
msgid "Search"
|
||||
msgstr "Axtarın"
|
||||
|
||||
#: contents/ui/main.qml:85
|
||||
#: contents/ui/main.qml:95
|
||||
#, kde-format
|
||||
msgid "AudioTube"
|
||||
msgstr "AudioTube"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:92
|
||||
#: contents/ui/MaximizedPlayerPage.qml:105
|
||||
#, kde-format
|
||||
msgid "Now Playing"
|
||||
msgstr "İndi səslənir"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:117
|
||||
#: contents/ui/MaximizedPlayerPage.qml:130
|
||||
#, kde-format
|
||||
msgid "Queue"
|
||||
msgstr "Növbə"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:222
|
||||
#: contents/ui/MaximizedPlayerPage.qml:155
|
||||
#, kde-format
|
||||
msgid "Lyrics"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:292
|
||||
#, kde-format
|
||||
msgid "Remove Track"
|
||||
msgstr "Mahnını silin"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:242
|
||||
#: contents/ui/MaximizedPlayerPage.qml:334
|
||||
#: contents/ui/MinimizedPlayerControls.qml:96
|
||||
#, kde-format
|
||||
msgid "No media playing"
|
||||
@@ -180,17 +185,17 @@ msgstr "Mahnı siyahıları"
|
||||
msgid "Unknown"
|
||||
msgstr "Bilinməyən"
|
||||
|
||||
#: contents/ui/SearchPage.qml:117
|
||||
#: contents/ui/SearchPage.qml:116
|
||||
#, kde-format
|
||||
msgid "Play next"
|
||||
msgstr "Sonrakını başladın"
|
||||
|
||||
#: contents/ui/SearchPage.qml:129
|
||||
#: contents/ui/SearchPage.qml:128
|
||||
#, kde-format
|
||||
msgid "Radio"
|
||||
msgstr "Radio"
|
||||
|
||||
#: contents/ui/SearchPage.qml:147
|
||||
#: contents/ui/SearchPage.qml:146
|
||||
#, kde-format
|
||||
msgid "Find music on YouTube Music"
|
||||
msgstr "Musiqini YouTube Musiqi-də tapın"
|
||||
|
||||
+27
-22
@@ -9,8 +9,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: audiotube\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2022-08-27 00:50+0000\n"
|
||||
"PO-Revision-Date: 2022-08-27 10:31+0200\n"
|
||||
"POT-Creation-Date: 2022-11-23 00:50+0000\n"
|
||||
"PO-Revision-Date: 2022-11-06 10:41+0100\n"
|
||||
"Last-Translator: Josep M. Ferrer <[email protected]>\n"
|
||||
"Language-Team: Catalan <[email protected]>\n"
|
||||
"Language: ca\n"
|
||||
@@ -45,15 +45,15 @@ msgstr "Barreja"
|
||||
msgid "Open in Browser"
|
||||
msgstr "Obre en el navegador"
|
||||
|
||||
#: contents/ui/AlbumPage.qml:77 contents/ui/ArtistPage.qml:109
|
||||
#: contents/ui/PlaybackHistory.qml:74 contents/ui/PlaylistPage.qml:67
|
||||
#: contents/ui/AlbumPage.qml:78 contents/ui/ArtistPage.qml:100
|
||||
#: contents/ui/PlaybackHistory.qml:74 contents/ui/PlaylistPage.qml:68
|
||||
#, kde-format
|
||||
msgid "Play Next"
|
||||
msgstr "Reprodueix el següent"
|
||||
|
||||
#: contents/ui/AlbumPage.qml:82 contents/ui/ArtistPage.qml:115
|
||||
#: contents/ui/PlaybackHistory.qml:79 contents/ui/PlaylistPage.qml:72
|
||||
#: contents/ui/SearchPage.qml:123
|
||||
#: contents/ui/AlbumPage.qml:83 contents/ui/ArtistPage.qml:106
|
||||
#: contents/ui/PlaybackHistory.qml:79 contents/ui/PlaylistPage.qml:73
|
||||
#: contents/ui/SearchPage.qml:122
|
||||
#, kde-format
|
||||
msgid "Add to Playlist"
|
||||
msgstr "Afegeix a la llista de reproducció"
|
||||
@@ -97,62 +97,67 @@ msgstr "D'acord"
|
||||
msgid "Cancel"
|
||||
msgstr "Cancel·la"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:27
|
||||
#: contents/ui/LibraryPage.qml:21
|
||||
#, kde-format
|
||||
msgid "Favourites"
|
||||
msgstr "Preferides"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:37 contents/ui/LibraryPage.qml:108
|
||||
#: contents/ui/LibraryPage.qml:31 contents/ui/LibraryPage.qml:187
|
||||
#, kde-format
|
||||
msgid "Show All"
|
||||
msgstr "Mostra-ho tot"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:42
|
||||
#: contents/ui/LibraryPage.qml:36
|
||||
#, kde-format
|
||||
msgid "Favourite Songs"
|
||||
msgstr "Cançons preferides"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:98
|
||||
#: contents/ui/LibraryPage.qml:177
|
||||
#, kde-format
|
||||
msgid "Most played"
|
||||
msgstr "Les més reproduïdes"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:113
|
||||
#: contents/ui/LibraryPage.qml:192
|
||||
#, kde-format
|
||||
msgid "Played Songs"
|
||||
msgstr "Cançons reproduïdes"
|
||||
|
||||
#: contents/ui/main.qml:39
|
||||
#: contents/ui/main.qml:49
|
||||
#, kde-format
|
||||
msgid "Back"
|
||||
msgstr "Enrere"
|
||||
|
||||
#: contents/ui/main.qml:73 contents/ui/SearchPage.qml:150
|
||||
#: contents/ui/main.qml:83 contents/ui/SearchPage.qml:149
|
||||
#, kde-format
|
||||
msgid "Search"
|
||||
msgstr "Cerca"
|
||||
|
||||
#: contents/ui/main.qml:85
|
||||
#: contents/ui/main.qml:95
|
||||
#, kde-format
|
||||
msgid "AudioTube"
|
||||
msgstr "AudioTube"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:92
|
||||
#: contents/ui/MaximizedPlayerPage.qml:105
|
||||
#, kde-format
|
||||
msgid "Now Playing"
|
||||
msgstr "Ara s'està reproduint"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:117
|
||||
#: contents/ui/MaximizedPlayerPage.qml:130
|
||||
#, kde-format
|
||||
msgid "Queue"
|
||||
msgstr "Cua"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:222
|
||||
#: contents/ui/MaximizedPlayerPage.qml:155
|
||||
#, kde-format
|
||||
msgid "Lyrics"
|
||||
msgstr "Lletra"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:292
|
||||
#, kde-format
|
||||
msgid "Remove Track"
|
||||
msgstr "Elimina la pista"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:242
|
||||
#: contents/ui/MaximizedPlayerPage.qml:334
|
||||
#: contents/ui/MinimizedPlayerControls.qml:96
|
||||
#, kde-format
|
||||
msgid "No media playing"
|
||||
@@ -183,17 +188,17 @@ msgstr "Llistes de reproducció"
|
||||
msgid "Unknown"
|
||||
msgstr "Desconeguda"
|
||||
|
||||
#: contents/ui/SearchPage.qml:117
|
||||
#: contents/ui/SearchPage.qml:116
|
||||
#, kde-format
|
||||
msgid "Play next"
|
||||
msgstr "Reprodueix el següent"
|
||||
|
||||
#: contents/ui/SearchPage.qml:129
|
||||
#: contents/ui/SearchPage.qml:128
|
||||
#, kde-format
|
||||
msgid "Radio"
|
||||
msgstr "Ràdio"
|
||||
|
||||
#: contents/ui/SearchPage.qml:147
|
||||
#: contents/ui/SearchPage.qml:146
|
||||
#, kde-format
|
||||
msgid "Find music on YouTube Music"
|
||||
msgstr "Cerca a la Música de Youtube"
|
||||
+27
-22
@@ -9,8 +9,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: audiotube\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2022-08-27 00:50+0000\n"
|
||||
"PO-Revision-Date: 2022-08-27 10:31+0200\n"
|
||||
"POT-Creation-Date: 2022-11-23 00:50+0000\n"
|
||||
"PO-Revision-Date: 2022-11-06 10:41+0100\n"
|
||||
"Last-Translator: Josep M. Ferrer <[email protected]>\n"
|
||||
"Language-Team: Catalan <[email protected]>\n"
|
||||
"Language: ca@valencia\n"
|
||||
@@ -45,15 +45,15 @@ msgstr "Barreja"
|
||||
msgid "Open in Browser"
|
||||
msgstr "Obri en el navegador"
|
||||
|
||||
#: contents/ui/AlbumPage.qml:77 contents/ui/ArtistPage.qml:109
|
||||
#: contents/ui/PlaybackHistory.qml:74 contents/ui/PlaylistPage.qml:67
|
||||
#: contents/ui/AlbumPage.qml:78 contents/ui/ArtistPage.qml:100
|
||||
#: contents/ui/PlaybackHistory.qml:74 contents/ui/PlaylistPage.qml:68
|
||||
#, kde-format
|
||||
msgid "Play Next"
|
||||
msgstr "Reproduïx el següent"
|
||||
|
||||
#: contents/ui/AlbumPage.qml:82 contents/ui/ArtistPage.qml:115
|
||||
#: contents/ui/PlaybackHistory.qml:79 contents/ui/PlaylistPage.qml:72
|
||||
#: contents/ui/SearchPage.qml:123
|
||||
#: contents/ui/AlbumPage.qml:83 contents/ui/ArtistPage.qml:106
|
||||
#: contents/ui/PlaybackHistory.qml:79 contents/ui/PlaylistPage.qml:73
|
||||
#: contents/ui/SearchPage.qml:122
|
||||
#, kde-format
|
||||
msgid "Add to Playlist"
|
||||
msgstr "Afig a la llista de reproducció"
|
||||
@@ -97,62 +97,67 @@ msgstr "D'acord"
|
||||
msgid "Cancel"
|
||||
msgstr "Cancel·la"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:27
|
||||
#: contents/ui/LibraryPage.qml:21
|
||||
#, kde-format
|
||||
msgid "Favourites"
|
||||
msgstr "Preferides"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:37 contents/ui/LibraryPage.qml:108
|
||||
#: contents/ui/LibraryPage.qml:31 contents/ui/LibraryPage.qml:187
|
||||
#, kde-format
|
||||
msgid "Show All"
|
||||
msgstr "Mostra-ho tot"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:42
|
||||
#: contents/ui/LibraryPage.qml:36
|
||||
#, kde-format
|
||||
msgid "Favourite Songs"
|
||||
msgstr "Cançons preferides"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:98
|
||||
#: contents/ui/LibraryPage.qml:177
|
||||
#, kde-format
|
||||
msgid "Most played"
|
||||
msgstr "Les més reproduïdes"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:113
|
||||
#: contents/ui/LibraryPage.qml:192
|
||||
#, kde-format
|
||||
msgid "Played Songs"
|
||||
msgstr "Cançons reproduïdes"
|
||||
|
||||
#: contents/ui/main.qml:39
|
||||
#: contents/ui/main.qml:49
|
||||
#, kde-format
|
||||
msgid "Back"
|
||||
msgstr "Arrere"
|
||||
|
||||
#: contents/ui/main.qml:73 contents/ui/SearchPage.qml:150
|
||||
#: contents/ui/main.qml:83 contents/ui/SearchPage.qml:149
|
||||
#, kde-format
|
||||
msgid "Search"
|
||||
msgstr "Busca"
|
||||
|
||||
#: contents/ui/main.qml:85
|
||||
#: contents/ui/main.qml:95
|
||||
#, kde-format
|
||||
msgid "AudioTube"
|
||||
msgstr "AudioTube"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:92
|
||||
#: contents/ui/MaximizedPlayerPage.qml:105
|
||||
#, kde-format
|
||||
msgid "Now Playing"
|
||||
msgstr "Ara s'està reproduint"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:117
|
||||
#: contents/ui/MaximizedPlayerPage.qml:130
|
||||
#, kde-format
|
||||
msgid "Queue"
|
||||
msgstr "Cua"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:222
|
||||
#: contents/ui/MaximizedPlayerPage.qml:155
|
||||
#, kde-format
|
||||
msgid "Lyrics"
|
||||
msgstr "Lletra"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:292
|
||||
#, kde-format
|
||||
msgid "Remove Track"
|
||||
msgstr "Elimina la pista"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:242
|
||||
#: contents/ui/MaximizedPlayerPage.qml:334
|
||||
#: contents/ui/MinimizedPlayerControls.qml:96
|
||||
#, kde-format
|
||||
msgid "No media playing"
|
||||
@@ -183,17 +188,17 @@ msgstr "Llistes de reproducció"
|
||||
msgid "Unknown"
|
||||
msgstr "Desconeguda"
|
||||
|
||||
#: contents/ui/SearchPage.qml:117
|
||||
#: contents/ui/SearchPage.qml:116
|
||||
#, kde-format
|
||||
msgid "Play next"
|
||||
msgstr "Reproduïx el següent"
|
||||
|
||||
#: contents/ui/SearchPage.qml:129
|
||||
#: contents/ui/SearchPage.qml:128
|
||||
#, kde-format
|
||||
msgid "Radio"
|
||||
msgstr "Ràdio"
|
||||
|
||||
#: contents/ui/SearchPage.qml:147
|
||||
#: contents/ui/SearchPage.qml:146
|
||||
#, kde-format
|
||||
msgid "Find music on YouTube Music"
|
||||
msgstr "Busca en la Música de Youtube"
|
||||
+26
-21
@@ -6,7 +6,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: audiotube\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2022-08-27 00:50+0000\n"
|
||||
"POT-Creation-Date: 2022-11-23 00:50+0000\n"
|
||||
"PO-Revision-Date: 2022-06-28 13:58+0200\n"
|
||||
"Last-Translator: Vit Pelcak <[email protected]>\n"
|
||||
"Language-Team: Czech <[email protected]>\n"
|
||||
@@ -42,15 +42,15 @@ msgstr "Zamíchat"
|
||||
msgid "Open in Browser"
|
||||
msgstr "Otevřít v prohlížeči"
|
||||
|
||||
#: contents/ui/AlbumPage.qml:77 contents/ui/ArtistPage.qml:109
|
||||
#: contents/ui/PlaybackHistory.qml:74 contents/ui/PlaylistPage.qml:67
|
||||
#: contents/ui/AlbumPage.qml:78 contents/ui/ArtistPage.qml:100
|
||||
#: contents/ui/PlaybackHistory.qml:74 contents/ui/PlaylistPage.qml:68
|
||||
#, kde-format
|
||||
msgid "Play Next"
|
||||
msgstr "Přehrát následující"
|
||||
|
||||
#: contents/ui/AlbumPage.qml:82 contents/ui/ArtistPage.qml:115
|
||||
#: contents/ui/PlaybackHistory.qml:79 contents/ui/PlaylistPage.qml:72
|
||||
#: contents/ui/SearchPage.qml:123
|
||||
#: contents/ui/AlbumPage.qml:83 contents/ui/ArtistPage.qml:106
|
||||
#: contents/ui/PlaybackHistory.qml:79 contents/ui/PlaylistPage.qml:73
|
||||
#: contents/ui/SearchPage.qml:122
|
||||
#, kde-format
|
||||
msgid "Add to Playlist"
|
||||
msgstr "Přidat do seznamu skladeb"
|
||||
@@ -94,62 +94,67 @@ msgstr "OK"
|
||||
msgid "Cancel"
|
||||
msgstr "Zrušit"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:27
|
||||
#: contents/ui/LibraryPage.qml:21
|
||||
#, kde-format
|
||||
msgid "Favourites"
|
||||
msgstr "Oblíbené"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:37 contents/ui/LibraryPage.qml:108
|
||||
#: contents/ui/LibraryPage.qml:31 contents/ui/LibraryPage.qml:187
|
||||
#, kde-format
|
||||
msgid "Show All"
|
||||
msgstr "Zobrazit vše"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:42
|
||||
#: contents/ui/LibraryPage.qml:36
|
||||
#, kde-format
|
||||
msgid "Favourite Songs"
|
||||
msgstr "Oblíbené skladby"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:98
|
||||
#: contents/ui/LibraryPage.qml:177
|
||||
#, kde-format
|
||||
msgid "Most played"
|
||||
msgstr "Nejčastěji hrané"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:113
|
||||
#: contents/ui/LibraryPage.qml:192
|
||||
#, kde-format
|
||||
msgid "Played Songs"
|
||||
msgstr "Přehrané skladby"
|
||||
|
||||
#: contents/ui/main.qml:39
|
||||
#: contents/ui/main.qml:49
|
||||
#, kde-format
|
||||
msgid "Back"
|
||||
msgstr "Zpět"
|
||||
|
||||
#: contents/ui/main.qml:73 contents/ui/SearchPage.qml:150
|
||||
#: contents/ui/main.qml:83 contents/ui/SearchPage.qml:149
|
||||
#, kde-format
|
||||
msgid "Search"
|
||||
msgstr "Hledat"
|
||||
|
||||
#: contents/ui/main.qml:85
|
||||
#: contents/ui/main.qml:95
|
||||
#, kde-format
|
||||
msgid "AudioTube"
|
||||
msgstr "AudioTube"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:92
|
||||
#: contents/ui/MaximizedPlayerPage.qml:105
|
||||
#, kde-format
|
||||
msgid "Now Playing"
|
||||
msgstr "Nyní přehrávám"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:117
|
||||
#: contents/ui/MaximizedPlayerPage.qml:130
|
||||
#, kde-format
|
||||
msgid "Queue"
|
||||
msgstr "Fronta"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:222
|
||||
#: contents/ui/MaximizedPlayerPage.qml:155
|
||||
#, kde-format
|
||||
msgid "Lyrics"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:292
|
||||
#, kde-format
|
||||
msgid "Remove Track"
|
||||
msgstr "Odstranit skladbu"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:242
|
||||
#: contents/ui/MaximizedPlayerPage.qml:334
|
||||
#: contents/ui/MinimizedPlayerControls.qml:96
|
||||
#, kde-format
|
||||
msgid "No media playing"
|
||||
@@ -180,17 +185,17 @@ msgstr "Seznamy skladeb"
|
||||
msgid "Unknown"
|
||||
msgstr "Neznámý"
|
||||
|
||||
#: contents/ui/SearchPage.qml:117
|
||||
#: contents/ui/SearchPage.qml:116
|
||||
#, kde-format
|
||||
msgid "Play next"
|
||||
msgstr "Přehrát následující"
|
||||
|
||||
#: contents/ui/SearchPage.qml:129
|
||||
#: contents/ui/SearchPage.qml:128
|
||||
#, kde-format
|
||||
msgid "Radio"
|
||||
msgstr "Rádio"
|
||||
|
||||
#: contents/ui/SearchPage.qml:147
|
||||
#: contents/ui/SearchPage.qml:146
|
||||
#, kde-format
|
||||
msgid "Find music on YouTube Music"
|
||||
msgstr "Najít hudbu na Hudba YouTube"
|
||||
+31
-25
@@ -2,21 +2,22 @@
|
||||
# This file is distributed under the same license as the audiotube package.
|
||||
# Burkhard Lück <[email protected]>, 2021.
|
||||
# Frederik Schwarzer <[email protected]>, 2021, 2022.
|
||||
# Frank Steinmetzger <[email protected]>, 2022.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: audiotube\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2022-08-27 00:50+0000\n"
|
||||
"PO-Revision-Date: 2022-07-02 12:04+0200\n"
|
||||
"Last-Translator: Frederik Schwarzer <[email protected]>\n"
|
||||
"POT-Creation-Date: 2022-11-23 00:50+0000\n"
|
||||
"PO-Revision-Date: 2022-11-10 20:16+0100\n"
|
||||
"Last-Translator: Frank Steinmetzger <[email protected]>\n"
|
||||
"Language-Team: German <[email protected]>\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 22.08.3\n"
|
||||
|
||||
#, kde-format
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
@@ -41,17 +42,17 @@ msgstr "Zufällig"
|
||||
#: contents/ui/AlbumPage.qml:35 contents/ui/ArtistPage.qml:19
|
||||
#, kde-format
|
||||
msgid "Open in Browser"
|
||||
msgstr ""
|
||||
msgstr "In Browser öffnen"
|
||||
|
||||
#: contents/ui/AlbumPage.qml:77 contents/ui/ArtistPage.qml:109
|
||||
#: contents/ui/PlaybackHistory.qml:74 contents/ui/PlaylistPage.qml:67
|
||||
#: contents/ui/AlbumPage.qml:78 contents/ui/ArtistPage.qml:100
|
||||
#: contents/ui/PlaybackHistory.qml:74 contents/ui/PlaylistPage.qml:68
|
||||
#, kde-format
|
||||
msgid "Play Next"
|
||||
msgstr "Nächste Wiedergabe"
|
||||
|
||||
#: contents/ui/AlbumPage.qml:82 contents/ui/ArtistPage.qml:115
|
||||
#: contents/ui/PlaybackHistory.qml:79 contents/ui/PlaylistPage.qml:72
|
||||
#: contents/ui/SearchPage.qml:123
|
||||
#: contents/ui/AlbumPage.qml:83 contents/ui/ArtistPage.qml:106
|
||||
#: contents/ui/PlaybackHistory.qml:79 contents/ui/PlaylistPage.qml:73
|
||||
#: contents/ui/SearchPage.qml:122
|
||||
#, kde-format
|
||||
msgid "Add to Playlist"
|
||||
msgstr "Zur Wiedergabeliste hinzufügen"
|
||||
@@ -95,62 +96,67 @@ msgstr "OK"
|
||||
msgid "Cancel"
|
||||
msgstr "Abbrechen"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:27
|
||||
#: contents/ui/LibraryPage.qml:21
|
||||
#, kde-format
|
||||
msgid "Favourites"
|
||||
msgstr "Favoriten"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:37 contents/ui/LibraryPage.qml:108
|
||||
#: contents/ui/LibraryPage.qml:31 contents/ui/LibraryPage.qml:187
|
||||
#, kde-format
|
||||
msgid "Show All"
|
||||
msgstr "Alle anzeigen"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:42
|
||||
#: contents/ui/LibraryPage.qml:36
|
||||
#, kde-format
|
||||
msgid "Favourite Songs"
|
||||
msgstr "Lieblingsstücke"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:98
|
||||
#: contents/ui/LibraryPage.qml:177
|
||||
#, kde-format
|
||||
msgid "Most played"
|
||||
msgstr "Am meisten abgespielt"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:113
|
||||
#: contents/ui/LibraryPage.qml:192
|
||||
#, kde-format
|
||||
msgid "Played Songs"
|
||||
msgstr "Abgespielte Stücke"
|
||||
|
||||
#: contents/ui/main.qml:39
|
||||
#: contents/ui/main.qml:49
|
||||
#, kde-format
|
||||
msgid "Back"
|
||||
msgstr "Zurück"
|
||||
|
||||
#: contents/ui/main.qml:73 contents/ui/SearchPage.qml:150
|
||||
#: contents/ui/main.qml:83 contents/ui/SearchPage.qml:149
|
||||
#, kde-format
|
||||
msgid "Search"
|
||||
msgstr "Suchen"
|
||||
|
||||
#: contents/ui/main.qml:85
|
||||
#: contents/ui/main.qml:95
|
||||
#, kde-format
|
||||
msgid "AudioTube"
|
||||
msgstr "AudioTube"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:92
|
||||
#: contents/ui/MaximizedPlayerPage.qml:105
|
||||
#, kde-format
|
||||
msgid "Now Playing"
|
||||
msgstr "Aktueller Titel"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:117
|
||||
#: contents/ui/MaximizedPlayerPage.qml:130
|
||||
#, kde-format
|
||||
msgid "Queue"
|
||||
msgstr "Warteschlange"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:222
|
||||
#: contents/ui/MaximizedPlayerPage.qml:155
|
||||
#, kde-format
|
||||
msgid "Lyrics"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:292
|
||||
#, kde-format
|
||||
msgid "Remove Track"
|
||||
msgstr "Stück entfernen"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:242
|
||||
#: contents/ui/MaximizedPlayerPage.qml:334
|
||||
#: contents/ui/MinimizedPlayerControls.qml:96
|
||||
#, kde-format
|
||||
msgid "No media playing"
|
||||
@@ -181,17 +187,17 @@ msgstr "Wiedergabelisten"
|
||||
msgid "Unknown"
|
||||
msgstr "Unbekannt"
|
||||
|
||||
#: contents/ui/SearchPage.qml:117
|
||||
#: contents/ui/SearchPage.qml:116
|
||||
#, kde-format
|
||||
msgid "Play next"
|
||||
msgstr "Nächste Wiedergabe"
|
||||
|
||||
#: contents/ui/SearchPage.qml:129
|
||||
#: contents/ui/SearchPage.qml:128
|
||||
#, kde-format
|
||||
msgid "Radio"
|
||||
msgstr "Radio"
|
||||
|
||||
#: contents/ui/SearchPage.qml:147
|
||||
#: contents/ui/SearchPage.qml:146
|
||||
#, kde-format
|
||||
msgid "Find music on YouTube Music"
|
||||
msgstr "Musik auf YouTube suchen"
|
||||
|
||||
+26
-21
@@ -6,7 +6,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: audiotube\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2022-08-27 00:50+0000\n"
|
||||
"POT-Creation-Date: 2022-11-23 00:50+0000\n"
|
||||
"PO-Revision-Date: 2022-08-29 12:04+0100\n"
|
||||
"Last-Translator: Steve Allewell <[email protected]>\n"
|
||||
"Language-Team: British English <[email protected]>\n"
|
||||
@@ -42,15 +42,15 @@ msgstr "Shuffle"
|
||||
msgid "Open in Browser"
|
||||
msgstr "Open in Browser"
|
||||
|
||||
#: contents/ui/AlbumPage.qml:77 contents/ui/ArtistPage.qml:109
|
||||
#: contents/ui/PlaybackHistory.qml:74 contents/ui/PlaylistPage.qml:67
|
||||
#: contents/ui/AlbumPage.qml:78 contents/ui/ArtistPage.qml:100
|
||||
#: contents/ui/PlaybackHistory.qml:74 contents/ui/PlaylistPage.qml:68
|
||||
#, kde-format
|
||||
msgid "Play Next"
|
||||
msgstr "Play Next"
|
||||
|
||||
#: contents/ui/AlbumPage.qml:82 contents/ui/ArtistPage.qml:115
|
||||
#: contents/ui/PlaybackHistory.qml:79 contents/ui/PlaylistPage.qml:72
|
||||
#: contents/ui/SearchPage.qml:123
|
||||
#: contents/ui/AlbumPage.qml:83 contents/ui/ArtistPage.qml:106
|
||||
#: contents/ui/PlaybackHistory.qml:79 contents/ui/PlaylistPage.qml:73
|
||||
#: contents/ui/SearchPage.qml:122
|
||||
#, kde-format
|
||||
msgid "Add to Playlist"
|
||||
msgstr "Add to Playlist"
|
||||
@@ -94,62 +94,67 @@ msgstr "OK"
|
||||
msgid "Cancel"
|
||||
msgstr "Cancel"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:27
|
||||
#: contents/ui/LibraryPage.qml:21
|
||||
#, kde-format
|
||||
msgid "Favourites"
|
||||
msgstr "Favourites"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:37 contents/ui/LibraryPage.qml:108
|
||||
#: contents/ui/LibraryPage.qml:31 contents/ui/LibraryPage.qml:187
|
||||
#, kde-format
|
||||
msgid "Show All"
|
||||
msgstr "Show All"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:42
|
||||
#: contents/ui/LibraryPage.qml:36
|
||||
#, kde-format
|
||||
msgid "Favourite Songs"
|
||||
msgstr "Favourite Songs"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:98
|
||||
#: contents/ui/LibraryPage.qml:177
|
||||
#, kde-format
|
||||
msgid "Most played"
|
||||
msgstr "Most played"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:113
|
||||
#: contents/ui/LibraryPage.qml:192
|
||||
#, kde-format
|
||||
msgid "Played Songs"
|
||||
msgstr "Played Songs"
|
||||
|
||||
#: contents/ui/main.qml:39
|
||||
#: contents/ui/main.qml:49
|
||||
#, kde-format
|
||||
msgid "Back"
|
||||
msgstr "Back"
|
||||
|
||||
#: contents/ui/main.qml:73 contents/ui/SearchPage.qml:150
|
||||
#: contents/ui/main.qml:83 contents/ui/SearchPage.qml:149
|
||||
#, kde-format
|
||||
msgid "Search"
|
||||
msgstr "Search"
|
||||
|
||||
#: contents/ui/main.qml:85
|
||||
#: contents/ui/main.qml:95
|
||||
#, kde-format
|
||||
msgid "AudioTube"
|
||||
msgstr "AudioTube"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:92
|
||||
#: contents/ui/MaximizedPlayerPage.qml:105
|
||||
#, kde-format
|
||||
msgid "Now Playing"
|
||||
msgstr "Now Playing"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:117
|
||||
#: contents/ui/MaximizedPlayerPage.qml:130
|
||||
#, kde-format
|
||||
msgid "Queue"
|
||||
msgstr "Queue"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:222
|
||||
#: contents/ui/MaximizedPlayerPage.qml:155
|
||||
#, kde-format
|
||||
msgid "Lyrics"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:292
|
||||
#, kde-format
|
||||
msgid "Remove Track"
|
||||
msgstr "Remove Track"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:242
|
||||
#: contents/ui/MaximizedPlayerPage.qml:334
|
||||
#: contents/ui/MinimizedPlayerControls.qml:96
|
||||
#, kde-format
|
||||
msgid "No media playing"
|
||||
@@ -180,17 +185,17 @@ msgstr "Playlists"
|
||||
msgid "Unknown"
|
||||
msgstr "Unknown"
|
||||
|
||||
#: contents/ui/SearchPage.qml:117
|
||||
#: contents/ui/SearchPage.qml:116
|
||||
#, kde-format
|
||||
msgid "Play next"
|
||||
msgstr "Play next"
|
||||
|
||||
#: contents/ui/SearchPage.qml:129
|
||||
#: contents/ui/SearchPage.qml:128
|
||||
#, kde-format
|
||||
msgid "Radio"
|
||||
msgstr "Radio"
|
||||
|
||||
#: contents/ui/SearchPage.qml:147
|
||||
#: contents/ui/SearchPage.qml:146
|
||||
#, kde-format
|
||||
msgid "Find music on YouTube Music"
|
||||
msgstr "Find music on YouTube Music"
|
||||
|
||||
+28
-23
@@ -8,8 +8,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: audiotube\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2022-08-27 00:50+0000\n"
|
||||
"PO-Revision-Date: 2022-08-30 04:36+0200\n"
|
||||
"POT-Creation-Date: 2022-11-23 00:50+0000\n"
|
||||
"PO-Revision-Date: 2022-11-06 15:13+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.08.0\n"
|
||||
"X-Generator: Lokalize 22.08.3\n"
|
||||
|
||||
#, kde-format
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
@@ -44,15 +44,15 @@ msgstr "Desordenar"
|
||||
msgid "Open in Browser"
|
||||
msgstr "Abrir en el navegador"
|
||||
|
||||
#: contents/ui/AlbumPage.qml:77 contents/ui/ArtistPage.qml:109
|
||||
#: contents/ui/PlaybackHistory.qml:74 contents/ui/PlaylistPage.qml:67
|
||||
#: contents/ui/AlbumPage.qml:78 contents/ui/ArtistPage.qml:100
|
||||
#: contents/ui/PlaybackHistory.qml:74 contents/ui/PlaylistPage.qml:68
|
||||
#, kde-format
|
||||
msgid "Play Next"
|
||||
msgstr "Reproducir siguiente"
|
||||
|
||||
#: contents/ui/AlbumPage.qml:82 contents/ui/ArtistPage.qml:115
|
||||
#: contents/ui/PlaybackHistory.qml:79 contents/ui/PlaylistPage.qml:72
|
||||
#: contents/ui/SearchPage.qml:123
|
||||
#: contents/ui/AlbumPage.qml:83 contents/ui/ArtistPage.qml:106
|
||||
#: contents/ui/PlaybackHistory.qml:79 contents/ui/PlaylistPage.qml:73
|
||||
#: contents/ui/SearchPage.qml:122
|
||||
#, kde-format
|
||||
msgid "Add to Playlist"
|
||||
msgstr "Añadir a la lista de reproducción"
|
||||
@@ -96,62 +96,67 @@ msgstr "Aceptar"
|
||||
msgid "Cancel"
|
||||
msgstr "Cancelar"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:27
|
||||
#: contents/ui/LibraryPage.qml:21
|
||||
#, kde-format
|
||||
msgid "Favourites"
|
||||
msgstr "Favoritas"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:37 contents/ui/LibraryPage.qml:108
|
||||
#: contents/ui/LibraryPage.qml:31 contents/ui/LibraryPage.qml:187
|
||||
#, kde-format
|
||||
msgid "Show All"
|
||||
msgstr "Mostrar todas"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:42
|
||||
#: contents/ui/LibraryPage.qml:36
|
||||
#, kde-format
|
||||
msgid "Favourite Songs"
|
||||
msgstr "Canciones favoritas"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:98
|
||||
#: contents/ui/LibraryPage.qml:177
|
||||
#, kde-format
|
||||
msgid "Most played"
|
||||
msgstr "Más reproducidas"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:113
|
||||
#: contents/ui/LibraryPage.qml:192
|
||||
#, kde-format
|
||||
msgid "Played Songs"
|
||||
msgstr "Canciones reproducidas"
|
||||
|
||||
#: contents/ui/main.qml:39
|
||||
#: contents/ui/main.qml:49
|
||||
#, kde-format
|
||||
msgid "Back"
|
||||
msgstr "Volver"
|
||||
|
||||
#: contents/ui/main.qml:73 contents/ui/SearchPage.qml:150
|
||||
#: contents/ui/main.qml:83 contents/ui/SearchPage.qml:149
|
||||
#, kde-format
|
||||
msgid "Search"
|
||||
msgstr "Buscar"
|
||||
|
||||
#: contents/ui/main.qml:85
|
||||
#: contents/ui/main.qml:95
|
||||
#, kde-format
|
||||
msgid "AudioTube"
|
||||
msgstr "AudioTube"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:92
|
||||
#: contents/ui/MaximizedPlayerPage.qml:105
|
||||
#, kde-format
|
||||
msgid "Now Playing"
|
||||
msgstr "Reproduciendo"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:117
|
||||
#: contents/ui/MaximizedPlayerPage.qml:130
|
||||
#, kde-format
|
||||
msgid "Queue"
|
||||
msgstr "Cola"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:222
|
||||
#: contents/ui/MaximizedPlayerPage.qml:155
|
||||
#, kde-format
|
||||
msgid "Lyrics"
|
||||
msgstr "Letra"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:292
|
||||
#, kde-format
|
||||
msgid "Remove Track"
|
||||
msgstr "Eliminar pista"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:242
|
||||
#: contents/ui/MaximizedPlayerPage.qml:334
|
||||
#: contents/ui/MinimizedPlayerControls.qml:96
|
||||
#, kde-format
|
||||
msgid "No media playing"
|
||||
@@ -182,17 +187,17 @@ msgstr "Listas de reproducción"
|
||||
msgid "Unknown"
|
||||
msgstr "Desconocido"
|
||||
|
||||
#: contents/ui/SearchPage.qml:117
|
||||
#: contents/ui/SearchPage.qml:116
|
||||
#, kde-format
|
||||
msgid "Play next"
|
||||
msgstr "Reproducir siguiente"
|
||||
|
||||
#: contents/ui/SearchPage.qml:129
|
||||
#: contents/ui/SearchPage.qml:128
|
||||
#, kde-format
|
||||
msgid "Radio"
|
||||
msgstr "Radio"
|
||||
|
||||
#: contents/ui/SearchPage.qml:147
|
||||
#: contents/ui/SearchPage.qml:146
|
||||
#, kde-format
|
||||
msgid "Find music on YouTube Music"
|
||||
msgstr "Encuentre música en YouTube Music"
|
||||
|
||||
+29
-24
@@ -1,5 +1,5 @@
|
||||
# Translation for audiotube.po to Euskara/Basque (eu).
|
||||
# Copyright (C) 2021-2022, This file is copyright:
|
||||
# Copyright (C) 2021-2022 This file is copyright:
|
||||
# This file is distributed under the same license as the audiotube package.
|
||||
# KDE euskaratzeko proiektuko arduraduna <[email protected]>.
|
||||
#
|
||||
@@ -9,8 +9,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: audiotube\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2022-08-27 00:50+0000\n"
|
||||
"PO-Revision-Date: 2022-08-27 07:27+0200\n"
|
||||
"POT-Creation-Date: 2022-11-23 00:50+0000\n"
|
||||
"PO-Revision-Date: 2022-11-06 06:34+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 22.08.3\n"
|
||||
|
||||
#, kde-format
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
@@ -45,15 +45,15 @@ msgstr "Nahastu"
|
||||
msgid "Open in Browser"
|
||||
msgstr "Ireki arakatzailean"
|
||||
|
||||
#: contents/ui/AlbumPage.qml:77 contents/ui/ArtistPage.qml:109
|
||||
#: contents/ui/PlaybackHistory.qml:74 contents/ui/PlaylistPage.qml:67
|
||||
#: contents/ui/AlbumPage.qml:78 contents/ui/ArtistPage.qml:100
|
||||
#: contents/ui/PlaybackHistory.qml:74 contents/ui/PlaylistPage.qml:68
|
||||
#, kde-format
|
||||
msgid "Play Next"
|
||||
msgstr "Jo hurrengoa"
|
||||
|
||||
#: contents/ui/AlbumPage.qml:82 contents/ui/ArtistPage.qml:115
|
||||
#: contents/ui/PlaybackHistory.qml:79 contents/ui/PlaylistPage.qml:72
|
||||
#: contents/ui/SearchPage.qml:123
|
||||
#: contents/ui/AlbumPage.qml:83 contents/ui/ArtistPage.qml:106
|
||||
#: contents/ui/PlaybackHistory.qml:79 contents/ui/PlaylistPage.qml:73
|
||||
#: contents/ui/SearchPage.qml:122
|
||||
#, kde-format
|
||||
msgid "Add to Playlist"
|
||||
msgstr "Gehitu jotze-zerrendara"
|
||||
@@ -97,62 +97,67 @@ msgstr "Ados"
|
||||
msgid "Cancel"
|
||||
msgstr "Utzi"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:27
|
||||
#: contents/ui/LibraryPage.qml:21
|
||||
#, kde-format
|
||||
msgid "Favourites"
|
||||
msgstr "Gogokoak"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:37 contents/ui/LibraryPage.qml:108
|
||||
#: contents/ui/LibraryPage.qml:31 contents/ui/LibraryPage.qml:187
|
||||
#, kde-format
|
||||
msgid "Show All"
|
||||
msgstr "Erakutsi denak"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:42
|
||||
#: contents/ui/LibraryPage.qml:36
|
||||
#, kde-format
|
||||
msgid "Favourite Songs"
|
||||
msgstr "Gogoko abestiak"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:98
|
||||
#: contents/ui/LibraryPage.qml:177
|
||||
#, kde-format
|
||||
msgid "Most played"
|
||||
msgstr "Gehien jotakoa"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:113
|
||||
#: contents/ui/LibraryPage.qml:192
|
||||
#, kde-format
|
||||
msgid "Played Songs"
|
||||
msgstr "Jotako abestiak"
|
||||
|
||||
#: contents/ui/main.qml:39
|
||||
#: contents/ui/main.qml:49
|
||||
#, kde-format
|
||||
msgid "Back"
|
||||
msgstr "Atzera"
|
||||
|
||||
#: contents/ui/main.qml:73 contents/ui/SearchPage.qml:150
|
||||
#: contents/ui/main.qml:83 contents/ui/SearchPage.qml:149
|
||||
#, kde-format
|
||||
msgid "Search"
|
||||
msgstr "Bilatu"
|
||||
|
||||
#: contents/ui/main.qml:85
|
||||
#: contents/ui/main.qml:95
|
||||
#, kde-format
|
||||
msgid "AudioTube"
|
||||
msgstr "AudioTube"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:92
|
||||
#: contents/ui/MaximizedPlayerPage.qml:105
|
||||
#, kde-format
|
||||
msgid "Now Playing"
|
||||
msgstr "Orain jotzen"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:117
|
||||
#: contents/ui/MaximizedPlayerPage.qml:130
|
||||
#, kde-format
|
||||
msgid "Queue"
|
||||
msgstr "Ilara"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:222
|
||||
#: contents/ui/MaximizedPlayerPage.qml:155
|
||||
#, kde-format
|
||||
msgid "Lyrics"
|
||||
msgstr "Hitzak"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:292
|
||||
#, kde-format
|
||||
msgid "Remove Track"
|
||||
msgstr "Kendu pista"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:242
|
||||
#: contents/ui/MaximizedPlayerPage.qml:334
|
||||
#: contents/ui/MinimizedPlayerControls.qml:96
|
||||
#, kde-format
|
||||
msgid "No media playing"
|
||||
@@ -183,17 +188,17 @@ msgstr "Jotze-zerrendak"
|
||||
msgid "Unknown"
|
||||
msgstr "Ezezaguna"
|
||||
|
||||
#: contents/ui/SearchPage.qml:117
|
||||
#: contents/ui/SearchPage.qml:116
|
||||
#, kde-format
|
||||
msgid "Play next"
|
||||
msgstr "Jo hurrengoa"
|
||||
|
||||
#: contents/ui/SearchPage.qml:129
|
||||
#: contents/ui/SearchPage.qml:128
|
||||
#, kde-format
|
||||
msgid "Radio"
|
||||
msgstr "Irratia"
|
||||
|
||||
#: contents/ui/SearchPage.qml:147
|
||||
#: contents/ui/SearchPage.qml:146
|
||||
#, kde-format
|
||||
msgid "Find music on YouTube Music"
|
||||
msgstr "Aurkitu musika «Youtube Music»en"
|
||||
|
||||
+29
-24
@@ -6,8 +6,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: audiotube\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2022-08-27 00:50+0000\n"
|
||||
"PO-Revision-Date: 2022-06-13 19:11+0300\n"
|
||||
"POT-Creation-Date: 2022-11-23 00:50+0000\n"
|
||||
"PO-Revision-Date: 2022-10-24 07:57+0300\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.12.0\n"
|
||||
|
||||
#, kde-format
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
@@ -40,17 +40,17 @@ msgstr "Sekoita"
|
||||
#: contents/ui/AlbumPage.qml:35 contents/ui/ArtistPage.qml:19
|
||||
#, kde-format
|
||||
msgid "Open in Browser"
|
||||
msgstr ""
|
||||
msgstr "Avaa selaimeen"
|
||||
|
||||
#: contents/ui/AlbumPage.qml:77 contents/ui/ArtistPage.qml:109
|
||||
#: contents/ui/PlaybackHistory.qml:74 contents/ui/PlaylistPage.qml:67
|
||||
#: contents/ui/AlbumPage.qml:78 contents/ui/ArtistPage.qml:100
|
||||
#: contents/ui/PlaybackHistory.qml:74 contents/ui/PlaylistPage.qml:68
|
||||
#, kde-format
|
||||
msgid "Play Next"
|
||||
msgstr "Toista seuraava"
|
||||
|
||||
#: contents/ui/AlbumPage.qml:82 contents/ui/ArtistPage.qml:115
|
||||
#: contents/ui/PlaybackHistory.qml:79 contents/ui/PlaylistPage.qml:72
|
||||
#: contents/ui/SearchPage.qml:123
|
||||
#: contents/ui/AlbumPage.qml:83 contents/ui/ArtistPage.qml:106
|
||||
#: contents/ui/PlaybackHistory.qml:79 contents/ui/PlaylistPage.qml:73
|
||||
#: contents/ui/SearchPage.qml:122
|
||||
#, kde-format
|
||||
msgid "Add to Playlist"
|
||||
msgstr "Lisää soittolistaan"
|
||||
@@ -93,62 +93,67 @@ msgstr "OK"
|
||||
msgid "Cancel"
|
||||
msgstr "Peru"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:27
|
||||
#: contents/ui/LibraryPage.qml:21
|
||||
#, kde-format
|
||||
msgid "Favourites"
|
||||
msgstr "Suosikit"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:37 contents/ui/LibraryPage.qml:108
|
||||
#: contents/ui/LibraryPage.qml:31 contents/ui/LibraryPage.qml:187
|
||||
#, kde-format
|
||||
msgid "Show All"
|
||||
msgstr "Näytä kaikki"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:42
|
||||
#: contents/ui/LibraryPage.qml:36
|
||||
#, kde-format
|
||||
msgid "Favourite Songs"
|
||||
msgstr "Suosikkikappaleet"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:98
|
||||
#: contents/ui/LibraryPage.qml:177
|
||||
#, kde-format
|
||||
msgid "Most played"
|
||||
msgstr "Soitetuimmat"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:113
|
||||
#: contents/ui/LibraryPage.qml:192
|
||||
#, kde-format
|
||||
msgid "Played Songs"
|
||||
msgstr "Soitetut kappaleet"
|
||||
|
||||
#: contents/ui/main.qml:39
|
||||
#: contents/ui/main.qml:49
|
||||
#, kde-format
|
||||
msgid "Back"
|
||||
msgstr "Takaisin"
|
||||
|
||||
#: contents/ui/main.qml:73 contents/ui/SearchPage.qml:150
|
||||
#: contents/ui/main.qml:83 contents/ui/SearchPage.qml:149
|
||||
#, kde-format
|
||||
msgid "Search"
|
||||
msgstr "Etsi"
|
||||
|
||||
#: contents/ui/main.qml:85
|
||||
#: contents/ui/main.qml:95
|
||||
#, kde-format
|
||||
msgid "AudioTube"
|
||||
msgstr "AudioTube"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:92
|
||||
#: contents/ui/MaximizedPlayerPage.qml:105
|
||||
#, kde-format
|
||||
msgid "Now Playing"
|
||||
msgstr "Nyt soi"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:117
|
||||
#: contents/ui/MaximizedPlayerPage.qml:130
|
||||
#, kde-format
|
||||
msgid "Queue"
|
||||
msgstr "Jono"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:222
|
||||
#: contents/ui/MaximizedPlayerPage.qml:155
|
||||
#, kde-format
|
||||
msgid "Lyrics"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:292
|
||||
#, kde-format
|
||||
msgid "Remove Track"
|
||||
msgstr "Poista raita"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:242
|
||||
#: contents/ui/MaximizedPlayerPage.qml:334
|
||||
#: contents/ui/MinimizedPlayerControls.qml:96
|
||||
#, kde-format
|
||||
msgid "No media playing"
|
||||
@@ -179,17 +184,17 @@ msgstr "Soittolistat"
|
||||
msgid "Unknown"
|
||||
msgstr "Tuntematon"
|
||||
|
||||
#: contents/ui/SearchPage.qml:117
|
||||
#: contents/ui/SearchPage.qml:116
|
||||
#, kde-format
|
||||
msgid "Play next"
|
||||
msgstr "Toista seuraava"
|
||||
|
||||
#: contents/ui/SearchPage.qml:129
|
||||
#: contents/ui/SearchPage.qml:128
|
||||
#, kde-format
|
||||
msgid "Radio"
|
||||
msgstr "Radio"
|
||||
|
||||
#: contents/ui/SearchPage.qml:147
|
||||
#: contents/ui/SearchPage.qml:146
|
||||
#, kde-format
|
||||
msgid "Find music on YouTube Music"
|
||||
msgstr "Etsi musiikkia Youtube Musicista"
|
||||
|
||||
+28
-23
@@ -3,8 +3,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: audiotube\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2022-08-27 00:50+0000\n"
|
||||
"PO-Revision-Date: 2022-08-29 12:39+0200\n"
|
||||
"POT-Creation-Date: 2022-11-23 00:50+0000\n"
|
||||
"PO-Revision-Date: 2022-11-07 14:29+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.08.0\n"
|
||||
"X-Generator: Lokalize 22.08.2\n"
|
||||
|
||||
#, kde-format
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
@@ -39,15 +39,15 @@ msgstr "Mélanger"
|
||||
msgid "Open in Browser"
|
||||
msgstr "Ouvrir dans un navigateur"
|
||||
|
||||
#: contents/ui/AlbumPage.qml:77 contents/ui/ArtistPage.qml:109
|
||||
#: contents/ui/PlaybackHistory.qml:74 contents/ui/PlaylistPage.qml:67
|
||||
#: contents/ui/AlbumPage.qml:78 contents/ui/ArtistPage.qml:100
|
||||
#: contents/ui/PlaybackHistory.qml:74 contents/ui/PlaylistPage.qml:68
|
||||
#, kde-format
|
||||
msgid "Play Next"
|
||||
msgstr "Lire le suivant"
|
||||
|
||||
#: contents/ui/AlbumPage.qml:82 contents/ui/ArtistPage.qml:115
|
||||
#: contents/ui/PlaybackHistory.qml:79 contents/ui/PlaylistPage.qml:72
|
||||
#: contents/ui/SearchPage.qml:123
|
||||
#: contents/ui/AlbumPage.qml:83 contents/ui/ArtistPage.qml:106
|
||||
#: contents/ui/PlaybackHistory.qml:79 contents/ui/PlaylistPage.qml:73
|
||||
#: contents/ui/SearchPage.qml:122
|
||||
#, kde-format
|
||||
msgid "Add to Playlist"
|
||||
msgstr "Ajouter à la liste de lecture"
|
||||
@@ -91,62 +91,67 @@ msgstr "Ok"
|
||||
msgid "Cancel"
|
||||
msgstr "Annuler"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:27
|
||||
#: contents/ui/LibraryPage.qml:21
|
||||
#, kde-format
|
||||
msgid "Favourites"
|
||||
msgstr "Favoris"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:37 contents/ui/LibraryPage.qml:108
|
||||
#: contents/ui/LibraryPage.qml:31 contents/ui/LibraryPage.qml:187
|
||||
#, kde-format
|
||||
msgid "Show All"
|
||||
msgstr "Tout afficher"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:42
|
||||
#: contents/ui/LibraryPage.qml:36
|
||||
#, kde-format
|
||||
msgid "Favourite Songs"
|
||||
msgstr "Titres favoris"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:98
|
||||
#: contents/ui/LibraryPage.qml:177
|
||||
#, kde-format
|
||||
msgid "Most played"
|
||||
msgstr "Les plus lus"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:113
|
||||
#: contents/ui/LibraryPage.qml:192
|
||||
#, kde-format
|
||||
msgid "Played Songs"
|
||||
msgstr "Titres lus"
|
||||
|
||||
#: contents/ui/main.qml:39
|
||||
#: contents/ui/main.qml:49
|
||||
#, kde-format
|
||||
msgid "Back"
|
||||
msgstr "En arrière"
|
||||
|
||||
#: contents/ui/main.qml:73 contents/ui/SearchPage.qml:150
|
||||
#: contents/ui/main.qml:83 contents/ui/SearchPage.qml:149
|
||||
#, kde-format
|
||||
msgid "Search"
|
||||
msgstr "Rechercher"
|
||||
|
||||
#: contents/ui/main.qml:85
|
||||
#: contents/ui/main.qml:95
|
||||
#, kde-format
|
||||
msgid "AudioTube"
|
||||
msgstr "AudioTube"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:92
|
||||
#: contents/ui/MaximizedPlayerPage.qml:105
|
||||
#, kde-format
|
||||
msgid "Now Playing"
|
||||
msgstr "En cours de lecture"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:117
|
||||
#: contents/ui/MaximizedPlayerPage.qml:130
|
||||
#, kde-format
|
||||
msgid "Queue"
|
||||
msgstr "Mettre en file d'attente"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:222
|
||||
#: contents/ui/MaximizedPlayerPage.qml:155
|
||||
#, kde-format
|
||||
msgid "Lyrics"
|
||||
msgstr "Paroles"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:292
|
||||
#, kde-format
|
||||
msgid "Remove Track"
|
||||
msgstr "Supprimer une piste"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:242
|
||||
#: contents/ui/MaximizedPlayerPage.qml:334
|
||||
#: contents/ui/MinimizedPlayerControls.qml:96
|
||||
#, kde-format
|
||||
msgid "No media playing"
|
||||
@@ -177,17 +182,17 @@ msgstr "Listes de lecture"
|
||||
msgid "Unknown"
|
||||
msgstr "Inconnu"
|
||||
|
||||
#: contents/ui/SearchPage.qml:117
|
||||
#: contents/ui/SearchPage.qml:116
|
||||
#, kde-format
|
||||
msgid "Play next"
|
||||
msgstr "Lire le suivant"
|
||||
|
||||
#: contents/ui/SearchPage.qml:129
|
||||
#: contents/ui/SearchPage.qml:128
|
||||
#, kde-format
|
||||
msgid "Radio"
|
||||
msgstr "Radio"
|
||||
|
||||
#: contents/ui/SearchPage.qml:147
|
||||
#: contents/ui/SearchPage.qml:146
|
||||
#, kde-format
|
||||
msgid "Find music on YouTube Music"
|
||||
msgstr "Rechercher de la musique sur « YouTube Music »"
|
||||
|
||||
+26
-21
@@ -6,7 +6,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: audiotube\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2022-08-27 00:50+0000\n"
|
||||
"POT-Creation-Date: 2022-11-23 00:50+0000\n"
|
||||
"PO-Revision-Date: 2021-09-17 20:09+0530\n"
|
||||
"Last-Translator: Raghavendra Kamath <[email protected]>\n"
|
||||
"Language-Team: kde-hindi\n"
|
||||
@@ -42,15 +42,15 @@ msgstr "फेंटें"
|
||||
msgid "Open in Browser"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/AlbumPage.qml:77 contents/ui/ArtistPage.qml:109
|
||||
#: contents/ui/PlaybackHistory.qml:74 contents/ui/PlaylistPage.qml:67
|
||||
#: contents/ui/AlbumPage.qml:78 contents/ui/ArtistPage.qml:100
|
||||
#: contents/ui/PlaybackHistory.qml:74 contents/ui/PlaylistPage.qml:68
|
||||
#, kde-format
|
||||
msgid "Play Next"
|
||||
msgstr "अगला बजाएँ"
|
||||
|
||||
#: contents/ui/AlbumPage.qml:82 contents/ui/ArtistPage.qml:115
|
||||
#: contents/ui/PlaybackHistory.qml:79 contents/ui/PlaylistPage.qml:72
|
||||
#: contents/ui/SearchPage.qml:123
|
||||
#: contents/ui/AlbumPage.qml:83 contents/ui/ArtistPage.qml:106
|
||||
#: contents/ui/PlaybackHistory.qml:79 contents/ui/PlaylistPage.qml:73
|
||||
#: contents/ui/SearchPage.qml:122
|
||||
#, kde-format
|
||||
msgid "Add to Playlist"
|
||||
msgstr "गीत-सूची में जोड़ें"
|
||||
@@ -93,63 +93,68 @@ msgstr ""
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/LibraryPage.qml:27
|
||||
#: contents/ui/LibraryPage.qml:21
|
||||
#, kde-format
|
||||
msgid "Favourites"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/LibraryPage.qml:37 contents/ui/LibraryPage.qml:108
|
||||
#: contents/ui/LibraryPage.qml:31 contents/ui/LibraryPage.qml:187
|
||||
#, kde-format
|
||||
msgid "Show All"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/LibraryPage.qml:42
|
||||
#: contents/ui/LibraryPage.qml:36
|
||||
#, kde-format
|
||||
msgid "Favourite Songs"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/LibraryPage.qml:98
|
||||
#: contents/ui/LibraryPage.qml:177
|
||||
#, kde-format
|
||||
msgid "Most played"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/LibraryPage.qml:113
|
||||
#: contents/ui/LibraryPage.qml:192
|
||||
#, kde-format
|
||||
msgid "Played Songs"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/main.qml:39
|
||||
#: contents/ui/main.qml:49
|
||||
#, kde-format
|
||||
msgid "Back"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/main.qml:73 contents/ui/SearchPage.qml:150
|
||||
#: contents/ui/main.qml:83 contents/ui/SearchPage.qml:149
|
||||
#, kde-format
|
||||
msgid "Search"
|
||||
msgstr "खोजें"
|
||||
|
||||
#: contents/ui/main.qml:85
|
||||
#: contents/ui/main.qml:95
|
||||
#, kde-format
|
||||
msgid "AudioTube"
|
||||
msgstr "ओडियो-ट्यूब"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:92
|
||||
#: contents/ui/MaximizedPlayerPage.qml:105
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "No media playing"
|
||||
msgid "Now Playing"
|
||||
msgstr "कोई मीडिया नहीं बजा रहा है"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:117
|
||||
#: contents/ui/MaximizedPlayerPage.qml:130
|
||||
#, kde-format
|
||||
msgid "Queue"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:222
|
||||
#: contents/ui/MaximizedPlayerPage.qml:155
|
||||
#, kde-format
|
||||
msgid "Lyrics"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:292
|
||||
#, kde-format
|
||||
msgid "Remove Track"
|
||||
msgstr "गाना हटाएँ"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:242
|
||||
#: contents/ui/MaximizedPlayerPage.qml:334
|
||||
#: contents/ui/MinimizedPlayerControls.qml:96
|
||||
#, kde-format
|
||||
msgid "No media playing"
|
||||
@@ -180,17 +185,17 @@ msgstr "गीत-सूचीयाँ"
|
||||
msgid "Unknown"
|
||||
msgstr "अज्ञात"
|
||||
|
||||
#: contents/ui/SearchPage.qml:117
|
||||
#: contents/ui/SearchPage.qml:116
|
||||
#, kde-format
|
||||
msgid "Play next"
|
||||
msgstr "अगला बजाएँ"
|
||||
|
||||
#: contents/ui/SearchPage.qml:129
|
||||
#: contents/ui/SearchPage.qml:128
|
||||
#, kde-format
|
||||
msgid "Radio"
|
||||
msgstr "रेडियो"
|
||||
|
||||
#: contents/ui/SearchPage.qml:147
|
||||
#: contents/ui/SearchPage.qml:146
|
||||
#, kde-format
|
||||
msgid "Find music on YouTube Music"
|
||||
msgstr "यूट्यूब संगीत पर संगीत ढूंढें"
|
||||
|
||||
@@ -0,0 +1,201 @@
|
||||
# Copyright (C) YEAR This file is copyright:
|
||||
# This file is distributed under the same license as the audiotube package.
|
||||
# Linerly <[email protected]>, 2022.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: audiotube\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2022-11-23 00:50+0000\n"
|
||||
"PO-Revision-Date: 2022-09-20 19:34+0700\n"
|
||||
"Last-Translator: Linerly <[email protected]>\n"
|
||||
"Language-Team: Indonesian <[email protected]>\n"
|
||||
"Language: id\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.08.1\n"
|
||||
|
||||
#, kde-format
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
msgid "Your names"
|
||||
msgstr "Linerly"
|
||||
|
||||
#, 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 "Putar"
|
||||
|
||||
#: contents/ui/AlbumPage.qml:26 contents/ui/PlaylistPage.qml:26
|
||||
#, kde-format
|
||||
msgid "Shuffle"
|
||||
msgstr "Acak"
|
||||
|
||||
#: contents/ui/AlbumPage.qml:35 contents/ui/ArtistPage.qml:19
|
||||
#, kde-format
|
||||
msgid "Open in Browser"
|
||||
msgstr "Buka di Peramban"
|
||||
|
||||
#: contents/ui/AlbumPage.qml:78 contents/ui/ArtistPage.qml:100
|
||||
#: contents/ui/PlaybackHistory.qml:74 contents/ui/PlaylistPage.qml:68
|
||||
#, kde-format
|
||||
msgid "Play Next"
|
||||
msgstr "Putar Berikutnya"
|
||||
|
||||
#: contents/ui/AlbumPage.qml:83 contents/ui/ArtistPage.qml:106
|
||||
#: contents/ui/PlaybackHistory.qml:79 contents/ui/PlaylistPage.qml:73
|
||||
#: contents/ui/SearchPage.qml:122
|
||||
#, kde-format
|
||||
msgid "Add to Playlist"
|
||||
msgstr "Tambahkan ke Daftar Putar"
|
||||
|
||||
#: contents/ui/ArtistPage.qml:47 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 ""
|
||||
"Pemutaran video belum didukung. Apakah Anda ingin memutar audionya dari "
|
||||
"\"%1\" saja?"
|
||||
|
||||
#: contents/ui/ArtistPage.qml:63 contents/ui/SearchPage.qml:25
|
||||
#, kde-format
|
||||
msgid "Albums"
|
||||
msgstr "Album"
|
||||
|
||||
#: contents/ui/ArtistPage.qml:65
|
||||
#, kde-format
|
||||
msgid "Singles"
|
||||
msgstr "Single"
|
||||
|
||||
#: contents/ui/ArtistPage.qml:67 contents/ui/SearchPage.qml:31
|
||||
#, kde-format
|
||||
msgid "Songs"
|
||||
msgstr "Lagu"
|
||||
|
||||
#: contents/ui/ArtistPage.qml:69 contents/ui/SearchPage.qml:33
|
||||
#, kde-format
|
||||
msgid "Videos"
|
||||
msgstr "Video"
|
||||
|
||||
#: contents/ui/ConfirmationMessage.qml:16
|
||||
#, kde-format
|
||||
msgid "OK"
|
||||
msgstr "Oke"
|
||||
|
||||
#: contents/ui/ConfirmationMessage.qml:21
|
||||
#, kde-format
|
||||
msgid "Cancel"
|
||||
msgstr "Batalkan"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:21
|
||||
#, kde-format
|
||||
msgid "Favourites"
|
||||
msgstr "Favorit"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:31 contents/ui/LibraryPage.qml:187
|
||||
#, kde-format
|
||||
msgid "Show All"
|
||||
msgstr "Tampilkan Semua"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:36
|
||||
#, kde-format
|
||||
msgid "Favourite Songs"
|
||||
msgstr "Lagu Favorit"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:177
|
||||
#, kde-format
|
||||
msgid "Most played"
|
||||
msgstr "Paling banyak diputar"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:192
|
||||
#, kde-format
|
||||
msgid "Played Songs"
|
||||
msgstr "Lagu yang telah diputar"
|
||||
|
||||
#: contents/ui/main.qml:49
|
||||
#, kde-format
|
||||
msgid "Back"
|
||||
msgstr "Kembali"
|
||||
|
||||
#: contents/ui/main.qml:83 contents/ui/SearchPage.qml:149
|
||||
#, kde-format
|
||||
msgid "Search"
|
||||
msgstr "Cari"
|
||||
|
||||
#: contents/ui/main.qml:95
|
||||
#, kde-format
|
||||
msgid "AudioTube"
|
||||
msgstr "AudioTube"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:105
|
||||
#, kde-format
|
||||
msgid "Now Playing"
|
||||
msgstr "Sekarang Diputarkan"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:130
|
||||
#, kde-format
|
||||
msgid "Queue"
|
||||
msgstr "Antrean"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:155
|
||||
#, kde-format
|
||||
msgid "Lyrics"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:292
|
||||
#, kde-format
|
||||
msgid "Remove Track"
|
||||
msgstr "Hapus Trek"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:334
|
||||
#: contents/ui/MinimizedPlayerControls.qml:96
|
||||
#, kde-format
|
||||
msgid "No media playing"
|
||||
msgstr "Tidak ada media yang diputarkan"
|
||||
|
||||
#: contents/ui/PlaybackHistory.qml:15
|
||||
#, kde-format
|
||||
msgid "Unknown list of songs"
|
||||
msgstr "Daftar lagu yang tidak diketahui"
|
||||
|
||||
#: contents/ui/PlaybackHistory.qml:25
|
||||
#, kde-format
|
||||
msgid "No songs here yet"
|
||||
msgstr "Belum ada lagu di sini"
|
||||
|
||||
#: contents/ui/SearchPage.qml:27
|
||||
#, kde-format
|
||||
msgid "Artists"
|
||||
msgstr "Artis"
|
||||
|
||||
#: contents/ui/SearchPage.qml:29
|
||||
#, kde-format
|
||||
msgid "Playlists"
|
||||
msgstr "Daftar Putar"
|
||||
|
||||
#: contents/ui/SearchPage.qml:36
|
||||
#, kde-format
|
||||
msgid "Unknown"
|
||||
msgstr "Tidak diketahui"
|
||||
|
||||
#: contents/ui/SearchPage.qml:116
|
||||
#, kde-format
|
||||
msgid "Play next"
|
||||
msgstr "Putar berikutnya"
|
||||
|
||||
#: contents/ui/SearchPage.qml:128
|
||||
#, kde-format
|
||||
msgid "Radio"
|
||||
msgstr "Radio"
|
||||
|
||||
#: contents/ui/SearchPage.qml:146
|
||||
#, kde-format
|
||||
msgid "Find music on YouTube Music"
|
||||
msgstr "Cari musik di YouTube Music"
|
||||
+28
-23
@@ -6,8 +6,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: audiotube\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2022-08-27 00:50+0000\n"
|
||||
"PO-Revision-Date: 2022-08-29 15:18+0200\n"
|
||||
"POT-Creation-Date: 2022-11-23 00:50+0000\n"
|
||||
"PO-Revision-Date: 2022-11-09 18:16+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.08.0\n"
|
||||
"X-Generator: Lokalize 22.08.3\n"
|
||||
|
||||
#, kde-format
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
@@ -42,15 +42,15 @@ msgstr "Mescola"
|
||||
msgid "Open in Browser"
|
||||
msgstr "Apri nel browser"
|
||||
|
||||
#: contents/ui/AlbumPage.qml:77 contents/ui/ArtistPage.qml:109
|
||||
#: contents/ui/PlaybackHistory.qml:74 contents/ui/PlaylistPage.qml:67
|
||||
#: contents/ui/AlbumPage.qml:78 contents/ui/ArtistPage.qml:100
|
||||
#: contents/ui/PlaybackHistory.qml:74 contents/ui/PlaylistPage.qml:68
|
||||
#, kde-format
|
||||
msgid "Play Next"
|
||||
msgstr "Riproduci successivo"
|
||||
|
||||
#: contents/ui/AlbumPage.qml:82 contents/ui/ArtistPage.qml:115
|
||||
#: contents/ui/PlaybackHistory.qml:79 contents/ui/PlaylistPage.qml:72
|
||||
#: contents/ui/SearchPage.qml:123
|
||||
#: contents/ui/AlbumPage.qml:83 contents/ui/ArtistPage.qml:106
|
||||
#: contents/ui/PlaybackHistory.qml:79 contents/ui/PlaylistPage.qml:73
|
||||
#: contents/ui/SearchPage.qml:122
|
||||
#, kde-format
|
||||
msgid "Add to Playlist"
|
||||
msgstr "Aggiungi alla scaletta"
|
||||
@@ -94,62 +94,67 @@ msgstr "OK"
|
||||
msgid "Cancel"
|
||||
msgstr "Annulla"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:27
|
||||
#: contents/ui/LibraryPage.qml:21
|
||||
#, kde-format
|
||||
msgid "Favourites"
|
||||
msgstr "Preferiti"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:37 contents/ui/LibraryPage.qml:108
|
||||
#: contents/ui/LibraryPage.qml:31 contents/ui/LibraryPage.qml:187
|
||||
#, kde-format
|
||||
msgid "Show All"
|
||||
msgstr "Mostra tutto"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:42
|
||||
#: contents/ui/LibraryPage.qml:36
|
||||
#, kde-format
|
||||
msgid "Favourite Songs"
|
||||
msgstr "Brani preferiti"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:98
|
||||
#: contents/ui/LibraryPage.qml:177
|
||||
#, kde-format
|
||||
msgid "Most played"
|
||||
msgstr "Più riprodotti"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:113
|
||||
#: contents/ui/LibraryPage.qml:192
|
||||
#, kde-format
|
||||
msgid "Played Songs"
|
||||
msgstr "Brani riprodotti"
|
||||
|
||||
#: contents/ui/main.qml:39
|
||||
#: contents/ui/main.qml:49
|
||||
#, kde-format
|
||||
msgid "Back"
|
||||
msgstr "Indietro"
|
||||
|
||||
#: contents/ui/main.qml:73 contents/ui/SearchPage.qml:150
|
||||
#: contents/ui/main.qml:83 contents/ui/SearchPage.qml:149
|
||||
#, kde-format
|
||||
msgid "Search"
|
||||
msgstr "Cerca"
|
||||
|
||||
#: contents/ui/main.qml:85
|
||||
#: contents/ui/main.qml:95
|
||||
#, kde-format
|
||||
msgid "AudioTube"
|
||||
msgstr "AudioTube"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:92
|
||||
#: contents/ui/MaximizedPlayerPage.qml:105
|
||||
#, kde-format
|
||||
msgid "Now Playing"
|
||||
msgstr "In riproduzione"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:117
|
||||
#: contents/ui/MaximizedPlayerPage.qml:130
|
||||
#, kde-format
|
||||
msgid "Queue"
|
||||
msgstr "Coda"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:222
|
||||
#: contents/ui/MaximizedPlayerPage.qml:155
|
||||
#, kde-format
|
||||
msgid "Lyrics"
|
||||
msgstr "Testi"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:292
|
||||
#, kde-format
|
||||
msgid "Remove Track"
|
||||
msgstr "Rimuovi traccia"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:242
|
||||
#: contents/ui/MaximizedPlayerPage.qml:334
|
||||
#: contents/ui/MinimizedPlayerControls.qml:96
|
||||
#, kde-format
|
||||
msgid "No media playing"
|
||||
@@ -180,17 +185,17 @@ msgstr "Scalette"
|
||||
msgid "Unknown"
|
||||
msgstr "Sconosciuto"
|
||||
|
||||
#: contents/ui/SearchPage.qml:117
|
||||
#: contents/ui/SearchPage.qml:116
|
||||
#, kde-format
|
||||
msgid "Play next"
|
||||
msgstr "Riproduci successivo"
|
||||
|
||||
#: contents/ui/SearchPage.qml:129
|
||||
#: contents/ui/SearchPage.qml:128
|
||||
#, kde-format
|
||||
msgid "Radio"
|
||||
msgstr "Radio"
|
||||
|
||||
#: contents/ui/SearchPage.qml:147
|
||||
#: contents/ui/SearchPage.qml:146
|
||||
#, kde-format
|
||||
msgid "Find music on YouTube Music"
|
||||
msgstr "Trova musica su Youtube Music"
|
||||
|
||||
@@ -0,0 +1,196 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: audiotube\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2022-11-23 00:50+0000\n"
|
||||
"PO-Revision-Date: 2021-05-29 19:15-0700\n"
|
||||
"Last-Translator: Japanese KDE translation team <[email protected]>\n"
|
||||
"Language-Team: Japanese <[email protected]>\n"
|
||||
"Language: ja\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-Accelerator-Marker: &\n"
|
||||
"X-Text-Markup: kde4\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:35 contents/ui/ArtistPage.qml:19
|
||||
#, kde-format
|
||||
msgid "Open in Browser"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/AlbumPage.qml:78 contents/ui/ArtistPage.qml:100
|
||||
#: contents/ui/PlaybackHistory.qml:74 contents/ui/PlaylistPage.qml:68
|
||||
#, kde-format
|
||||
msgid "Play Next"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/AlbumPage.qml:83 contents/ui/ArtistPage.qml:106
|
||||
#: contents/ui/PlaybackHistory.qml:79 contents/ui/PlaylistPage.qml:73
|
||||
#: contents/ui/SearchPage.qml:122
|
||||
#, kde-format
|
||||
msgid "Add to Playlist"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/ArtistPage.qml:47 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:63 contents/ui/SearchPage.qml:25
|
||||
#, kde-format
|
||||
msgid "Albums"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/ArtistPage.qml:65
|
||||
#, kde-format
|
||||
msgid "Singles"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/ArtistPage.qml:67 contents/ui/SearchPage.qml:31
|
||||
#, kde-format
|
||||
msgid "Songs"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/ArtistPage.qml:69 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:21
|
||||
#, kde-format
|
||||
msgid "Favourites"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/LibraryPage.qml:31 contents/ui/LibraryPage.qml:187
|
||||
#, kde-format
|
||||
msgid "Show All"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/LibraryPage.qml:36
|
||||
#, kde-format
|
||||
msgid "Favourite Songs"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/LibraryPage.qml:177
|
||||
#, kde-format
|
||||
msgid "Most played"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/LibraryPage.qml:192
|
||||
#, kde-format
|
||||
msgid "Played Songs"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/main.qml:49
|
||||
#, kde-format
|
||||
msgid "Back"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/main.qml:83 contents/ui/SearchPage.qml:149
|
||||
#, kde-format
|
||||
msgid "Search"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/main.qml:95
|
||||
#, kde-format
|
||||
msgid "AudioTube"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:105
|
||||
#, kde-format
|
||||
msgid "Now Playing"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:130
|
||||
#, kde-format
|
||||
msgid "Queue"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:155
|
||||
#, kde-format
|
||||
msgid "Lyrics"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:292
|
||||
#, kde-format
|
||||
msgid "Remove Track"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:334
|
||||
#: 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:116
|
||||
#, kde-format
|
||||
msgid "Play next"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/SearchPage.qml:128
|
||||
#, kde-format
|
||||
msgid "Radio"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/SearchPage.qml:146
|
||||
#, kde-format
|
||||
msgid "Find music on YouTube Music"
|
||||
msgstr ""
|
||||
@@ -0,0 +1,201 @@
|
||||
# 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-11-23 00:50+0000\n"
|
||||
"PO-Revision-Date: 2022-11-20 07:22+0100\n"
|
||||
"Last-Translator: Temuri Doghonadze <[email protected]>\n"
|
||||
"Language-Team: Georgian <[email protected]>\n"
|
||||
"Language: ka\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: Poedit 3.2\n"
|
||||
|
||||
#, kde-format
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
msgid "Your names"
|
||||
msgstr "Temuri Doghonadze"
|
||||
|
||||
#, 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 "დაკვრა"
|
||||
|
||||
#: contents/ui/AlbumPage.qml:26 contents/ui/PlaylistPage.qml:26
|
||||
#, kde-format
|
||||
msgid "Shuffle"
|
||||
msgstr "შემთხვევით"
|
||||
|
||||
#: contents/ui/AlbumPage.qml:35 contents/ui/ArtistPage.qml:19
|
||||
#, kde-format
|
||||
msgid "Open in Browser"
|
||||
msgstr "ბრაუზერში გახსნა"
|
||||
|
||||
#: contents/ui/AlbumPage.qml:78 contents/ui/ArtistPage.qml:100
|
||||
#: contents/ui/PlaybackHistory.qml:74 contents/ui/PlaylistPage.qml:68
|
||||
#, kde-format
|
||||
msgid "Play Next"
|
||||
msgstr "შემდეგის დაკვრა"
|
||||
|
||||
#: contents/ui/AlbumPage.qml:83 contents/ui/ArtistPage.qml:106
|
||||
#: contents/ui/PlaybackHistory.qml:79 contents/ui/PlaylistPage.qml:73
|
||||
#: contents/ui/SearchPage.qml:122
|
||||
#, kde-format
|
||||
msgid "Add to Playlist"
|
||||
msgstr "დასაკრავი სიაში დამატება"
|
||||
|
||||
#: contents/ui/ArtistPage.qml:47 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 ""
|
||||
"ვიდეოს დაკვრა ჯერ მხარდაჭერილი არაა. გნებავთ \"%1\"-ის მხოლოდ ხმა დავუკრა?"
|
||||
|
||||
#: contents/ui/ArtistPage.qml:63 contents/ui/SearchPage.qml:25
|
||||
#, kde-format
|
||||
msgid "Albums"
|
||||
msgstr "ალბომები"
|
||||
|
||||
#: contents/ui/ArtistPage.qml:65
|
||||
#, kde-format
|
||||
msgid "Singles"
|
||||
msgstr "სინგლები"
|
||||
|
||||
#: contents/ui/ArtistPage.qml:67 contents/ui/SearchPage.qml:31
|
||||
#, kde-format
|
||||
msgid "Songs"
|
||||
msgstr "სიმღერები"
|
||||
|
||||
#: contents/ui/ArtistPage.qml:69 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:21
|
||||
#, kde-format
|
||||
msgid "Favourites"
|
||||
msgstr "რჩეულები"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:31 contents/ui/LibraryPage.qml:187
|
||||
#, kde-format
|
||||
msgid "Show All"
|
||||
msgstr "ყველას ჩვენება"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:36
|
||||
#, kde-format
|
||||
msgid "Favourite Songs"
|
||||
msgstr "რჩეული სიმღერები"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:177
|
||||
#, kde-format
|
||||
msgid "Most played"
|
||||
msgstr "ხშირად დაკრულები"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:192
|
||||
#, kde-format
|
||||
msgid "Played Songs"
|
||||
msgstr "დაკრული სიმღერები"
|
||||
|
||||
#: contents/ui/main.qml:49
|
||||
#, kde-format
|
||||
msgid "Back"
|
||||
msgstr "უკან"
|
||||
|
||||
#: contents/ui/main.qml:83 contents/ui/SearchPage.qml:149
|
||||
#, kde-format
|
||||
msgid "Search"
|
||||
msgstr "ძებნა"
|
||||
|
||||
#: contents/ui/main.qml:95
|
||||
#, kde-format
|
||||
msgid "AudioTube"
|
||||
msgstr "AudioTube"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:105
|
||||
#, kde-format
|
||||
msgid "Now Playing"
|
||||
msgstr "მიმდინარეობს დაკვრა"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:130
|
||||
#, kde-format
|
||||
msgid "Queue"
|
||||
msgstr "რიგი"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:155
|
||||
#, kde-format
|
||||
msgid "Lyrics"
|
||||
msgstr "ლირიკა"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:292
|
||||
#, kde-format
|
||||
msgid "Remove Track"
|
||||
msgstr "აუდიობილიკის წაშლა"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:334
|
||||
#: 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:116
|
||||
#, kde-format
|
||||
msgid "Play next"
|
||||
msgstr "შემდეგის დაკვრა"
|
||||
|
||||
#: contents/ui/SearchPage.qml:128
|
||||
#, kde-format
|
||||
msgid "Radio"
|
||||
msgstr "რადიო"
|
||||
|
||||
#: contents/ui/SearchPage.qml:146
|
||||
#, kde-format
|
||||
msgid "Find music on YouTube Music"
|
||||
msgstr "იპოვეთ მუსიკა YouTube Music-ზე"
|
||||
+29
-24
@@ -6,10 +6,10 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: audiotube\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2022-08-27 00:50+0000\n"
|
||||
"PO-Revision-Date: 2022-07-13 15:34+0200\n"
|
||||
"POT-Creation-Date: 2022-11-23 00:50+0000\n"
|
||||
"PO-Revision-Date: 2022-10-03 14:20+0200\n"
|
||||
"Last-Translator: Shinjo Park <[email protected]>\n"
|
||||
"Language-Team: Korean <kde-kr@kde.org>\n"
|
||||
"Language-Team: Korean <kde-i18n-doc@kde.org>\n"
|
||||
"Language: ko\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
@@ -40,17 +40,17 @@ msgstr "무순서 재생"
|
||||
#: contents/ui/AlbumPage.qml:35 contents/ui/ArtistPage.qml:19
|
||||
#, kde-format
|
||||
msgid "Open in Browser"
|
||||
msgstr ""
|
||||
msgstr "브라우저로 열기"
|
||||
|
||||
#: contents/ui/AlbumPage.qml:77 contents/ui/ArtistPage.qml:109
|
||||
#: contents/ui/PlaybackHistory.qml:74 contents/ui/PlaylistPage.qml:67
|
||||
#: contents/ui/AlbumPage.qml:78 contents/ui/ArtistPage.qml:100
|
||||
#: contents/ui/PlaybackHistory.qml:74 contents/ui/PlaylistPage.qml:68
|
||||
#, kde-format
|
||||
msgid "Play Next"
|
||||
msgstr "다음 재생"
|
||||
|
||||
#: contents/ui/AlbumPage.qml:82 contents/ui/ArtistPage.qml:115
|
||||
#: contents/ui/PlaybackHistory.qml:79 contents/ui/PlaylistPage.qml:72
|
||||
#: contents/ui/SearchPage.qml:123
|
||||
#: contents/ui/AlbumPage.qml:83 contents/ui/ArtistPage.qml:106
|
||||
#: contents/ui/PlaybackHistory.qml:79 contents/ui/PlaylistPage.qml:73
|
||||
#: contents/ui/SearchPage.qml:122
|
||||
#, kde-format
|
||||
msgid "Add to Playlist"
|
||||
msgstr "재생 목록에 추가"
|
||||
@@ -92,62 +92,67 @@ msgstr "확인"
|
||||
msgid "Cancel"
|
||||
msgstr "취소"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:27
|
||||
#: contents/ui/LibraryPage.qml:21
|
||||
#, kde-format
|
||||
msgid "Favourites"
|
||||
msgstr "책갈피"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:37 contents/ui/LibraryPage.qml:108
|
||||
#: contents/ui/LibraryPage.qml:31 contents/ui/LibraryPage.qml:187
|
||||
#, kde-format
|
||||
msgid "Show All"
|
||||
msgstr "모두 표시"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:42
|
||||
#: contents/ui/LibraryPage.qml:36
|
||||
#, kde-format
|
||||
msgid "Favourite Songs"
|
||||
msgstr "책갈피에 등록된 노래"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:98
|
||||
#: contents/ui/LibraryPage.qml:177
|
||||
#, kde-format
|
||||
msgid "Most played"
|
||||
msgstr "가장 많이 재생됨"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:113
|
||||
#: contents/ui/LibraryPage.qml:192
|
||||
#, kde-format
|
||||
msgid "Played Songs"
|
||||
msgstr "재생한 노래"
|
||||
|
||||
#: contents/ui/main.qml:39
|
||||
#: contents/ui/main.qml:49
|
||||
#, kde-format
|
||||
msgid "Back"
|
||||
msgstr "뒤로"
|
||||
|
||||
#: contents/ui/main.qml:73 contents/ui/SearchPage.qml:150
|
||||
#: contents/ui/main.qml:83 contents/ui/SearchPage.qml:149
|
||||
#, kde-format
|
||||
msgid "Search"
|
||||
msgstr "검색"
|
||||
|
||||
#: contents/ui/main.qml:85
|
||||
#: contents/ui/main.qml:95
|
||||
#, kde-format
|
||||
msgid "AudioTube"
|
||||
msgstr "AudioTube"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:92
|
||||
#: contents/ui/MaximizedPlayerPage.qml:105
|
||||
#, kde-format
|
||||
msgid "Now Playing"
|
||||
msgstr "지금 재생 중"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:117
|
||||
#: contents/ui/MaximizedPlayerPage.qml:130
|
||||
#, kde-format
|
||||
msgid "Queue"
|
||||
msgstr "대기열에 추가"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:222
|
||||
#: contents/ui/MaximizedPlayerPage.qml:155
|
||||
#, kde-format
|
||||
msgid "Lyrics"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:292
|
||||
#, kde-format
|
||||
msgid "Remove Track"
|
||||
msgstr "트랙 삭제"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:242
|
||||
#: contents/ui/MaximizedPlayerPage.qml:334
|
||||
#: contents/ui/MinimizedPlayerControls.qml:96
|
||||
#, kde-format
|
||||
msgid "No media playing"
|
||||
@@ -178,17 +183,17 @@ msgstr "재생 목록"
|
||||
msgid "Unknown"
|
||||
msgstr "알 수 없음"
|
||||
|
||||
#: contents/ui/SearchPage.qml:117
|
||||
#: contents/ui/SearchPage.qml:116
|
||||
#, kde-format
|
||||
msgid "Play next"
|
||||
msgstr "다음 재생"
|
||||
|
||||
#: contents/ui/SearchPage.qml:129
|
||||
#: contents/ui/SearchPage.qml:128
|
||||
#, kde-format
|
||||
msgid "Radio"
|
||||
msgstr "라디오"
|
||||
|
||||
#: contents/ui/SearchPage.qml:147
|
||||
#: contents/ui/SearchPage.qml:146
|
||||
#, kde-format
|
||||
msgid "Find music on YouTube Music"
|
||||
msgstr "YouTube Music에서 음악 찾기"
|
||||
|
||||
+28
-23
@@ -6,8 +6,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: audiotube\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2022-08-27 00:50+0000\n"
|
||||
"PO-Revision-Date: 2022-08-27 16:52+0200\n"
|
||||
"POT-Creation-Date: 2022-11-23 00:50+0000\n"
|
||||
"PO-Revision-Date: 2022-11-06 15:09-0400\n"
|
||||
"Last-Translator: Freek de Kruijf <[email protected]>\n"
|
||||
"Language-Team: \n"
|
||||
"Language: nl\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.08.0\n"
|
||||
"X-Generator: Lokalize 22.08.1\n"
|
||||
|
||||
#, kde-format
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
@@ -42,15 +42,15 @@ msgstr "Willekeurig afspelen"
|
||||
msgid "Open in Browser"
|
||||
msgstr "In browser openen"
|
||||
|
||||
#: contents/ui/AlbumPage.qml:77 contents/ui/ArtistPage.qml:109
|
||||
#: contents/ui/PlaybackHistory.qml:74 contents/ui/PlaylistPage.qml:67
|
||||
#: contents/ui/AlbumPage.qml:78 contents/ui/ArtistPage.qml:100
|
||||
#: contents/ui/PlaybackHistory.qml:74 contents/ui/PlaylistPage.qml:68
|
||||
#, kde-format
|
||||
msgid "Play Next"
|
||||
msgstr "Volgende afspelen"
|
||||
|
||||
#: contents/ui/AlbumPage.qml:82 contents/ui/ArtistPage.qml:115
|
||||
#: contents/ui/PlaybackHistory.qml:79 contents/ui/PlaylistPage.qml:72
|
||||
#: contents/ui/SearchPage.qml:123
|
||||
#: contents/ui/AlbumPage.qml:83 contents/ui/ArtistPage.qml:106
|
||||
#: contents/ui/PlaybackHistory.qml:79 contents/ui/PlaylistPage.qml:73
|
||||
#: contents/ui/SearchPage.qml:122
|
||||
#, kde-format
|
||||
msgid "Add to Playlist"
|
||||
msgstr "Aan afspeellijst toevoegen"
|
||||
@@ -94,62 +94,67 @@ msgstr "OK"
|
||||
msgid "Cancel"
|
||||
msgstr "Annuleren"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:27
|
||||
#: contents/ui/LibraryPage.qml:21
|
||||
#, kde-format
|
||||
msgid "Favourites"
|
||||
msgstr "Favorieten"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:37 contents/ui/LibraryPage.qml:108
|
||||
#: contents/ui/LibraryPage.qml:31 contents/ui/LibraryPage.qml:187
|
||||
#, kde-format
|
||||
msgid "Show All"
|
||||
msgstr "Alles tonen"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:42
|
||||
#: contents/ui/LibraryPage.qml:36
|
||||
#, kde-format
|
||||
msgid "Favourite Songs"
|
||||
msgstr "Favoriete songs"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:98
|
||||
#: contents/ui/LibraryPage.qml:177
|
||||
#, kde-format
|
||||
msgid "Most played"
|
||||
msgstr "Meest afgespeeld"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:113
|
||||
#: contents/ui/LibraryPage.qml:192
|
||||
#, kde-format
|
||||
msgid "Played Songs"
|
||||
msgstr "Afgespeelde songs"
|
||||
|
||||
#: contents/ui/main.qml:39
|
||||
#: contents/ui/main.qml:49
|
||||
#, kde-format
|
||||
msgid "Back"
|
||||
msgstr "Terug"
|
||||
|
||||
#: contents/ui/main.qml:73 contents/ui/SearchPage.qml:150
|
||||
#: contents/ui/main.qml:83 contents/ui/SearchPage.qml:149
|
||||
#, kde-format
|
||||
msgid "Search"
|
||||
msgstr "Zoeken"
|
||||
|
||||
#: contents/ui/main.qml:85
|
||||
#: contents/ui/main.qml:95
|
||||
#, kde-format
|
||||
msgid "AudioTube"
|
||||
msgstr "AudioTube"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:92
|
||||
#: contents/ui/MaximizedPlayerPage.qml:105
|
||||
#, kde-format
|
||||
msgid "Now Playing"
|
||||
msgstr "Speelt nu"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:117
|
||||
#: contents/ui/MaximizedPlayerPage.qml:130
|
||||
#, kde-format
|
||||
msgid "Queue"
|
||||
msgstr "Wachtrij"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:222
|
||||
#: contents/ui/MaximizedPlayerPage.qml:155
|
||||
#, kde-format
|
||||
msgid "Lyrics"
|
||||
msgstr "Liedteksten"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:292
|
||||
#, kde-format
|
||||
msgid "Remove Track"
|
||||
msgstr "Track verwijderen"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:242
|
||||
#: contents/ui/MaximizedPlayerPage.qml:334
|
||||
#: contents/ui/MinimizedPlayerControls.qml:96
|
||||
#, kde-format
|
||||
msgid "No media playing"
|
||||
@@ -180,17 +185,17 @@ msgstr "Afspeellijsten"
|
||||
msgid "Unknown"
|
||||
msgstr "Onbekend"
|
||||
|
||||
#: contents/ui/SearchPage.qml:117
|
||||
#: contents/ui/SearchPage.qml:116
|
||||
#, kde-format
|
||||
msgid "Play next"
|
||||
msgstr "Volgende afspelen"
|
||||
|
||||
#: contents/ui/SearchPage.qml:129
|
||||
#: contents/ui/SearchPage.qml:128
|
||||
#, kde-format
|
||||
msgid "Radio"
|
||||
msgstr "Radio"
|
||||
|
||||
#: contents/ui/SearchPage.qml:147
|
||||
#: contents/ui/SearchPage.qml:146
|
||||
#, kde-format
|
||||
msgid "Find music on YouTube Music"
|
||||
msgstr "Muziek zoeken op YouTube Music"
|
||||
|
||||
+26
-21
@@ -6,7 +6,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: audiotube\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2022-08-27 00:50+0000\n"
|
||||
"POT-Creation-Date: 2022-11-23 00:50+0000\n"
|
||||
"PO-Revision-Date: 2022-09-11 19:45+0200\n"
|
||||
"Last-Translator: Karl Ove Hufthammer <[email protected]>\n"
|
||||
"Language-Team: Norwegian Nynorsk <[email protected]>\n"
|
||||
@@ -45,15 +45,15 @@ msgstr "Stokk om"
|
||||
msgid "Open in Browser"
|
||||
msgstr "Opna i nettlesar"
|
||||
|
||||
#: contents/ui/AlbumPage.qml:77 contents/ui/ArtistPage.qml:109
|
||||
#: contents/ui/PlaybackHistory.qml:74 contents/ui/PlaylistPage.qml:67
|
||||
#: contents/ui/AlbumPage.qml:78 contents/ui/ArtistPage.qml:100
|
||||
#: contents/ui/PlaybackHistory.qml:74 contents/ui/PlaylistPage.qml:68
|
||||
#, kde-format
|
||||
msgid "Play Next"
|
||||
msgstr "Spel som neste"
|
||||
|
||||
#: contents/ui/AlbumPage.qml:82 contents/ui/ArtistPage.qml:115
|
||||
#: contents/ui/PlaybackHistory.qml:79 contents/ui/PlaylistPage.qml:72
|
||||
#: contents/ui/SearchPage.qml:123
|
||||
#: contents/ui/AlbumPage.qml:83 contents/ui/ArtistPage.qml:106
|
||||
#: contents/ui/PlaybackHistory.qml:79 contents/ui/PlaylistPage.qml:73
|
||||
#: contents/ui/SearchPage.qml:122
|
||||
#, kde-format
|
||||
msgid "Add to Playlist"
|
||||
msgstr "Legg til speleliste"
|
||||
@@ -95,62 +95,67 @@ msgstr "OK"
|
||||
msgid "Cancel"
|
||||
msgstr "Avbryt"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:27
|
||||
#: contents/ui/LibraryPage.qml:21
|
||||
#, kde-format
|
||||
msgid "Favourites"
|
||||
msgstr "Favorittar"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:37 contents/ui/LibraryPage.qml:108
|
||||
#: contents/ui/LibraryPage.qml:31 contents/ui/LibraryPage.qml:187
|
||||
#, kde-format
|
||||
msgid "Show All"
|
||||
msgstr "Vis alle"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:42
|
||||
#: contents/ui/LibraryPage.qml:36
|
||||
#, kde-format
|
||||
msgid "Favourite Songs"
|
||||
msgstr "Favorittsongar"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:98
|
||||
#: contents/ui/LibraryPage.qml:177
|
||||
#, kde-format
|
||||
msgid "Most played"
|
||||
msgstr "Oftast avspela"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:113
|
||||
#: contents/ui/LibraryPage.qml:192
|
||||
#, kde-format
|
||||
msgid "Played Songs"
|
||||
msgstr "Avspela songar"
|
||||
|
||||
#: contents/ui/main.qml:39
|
||||
#: contents/ui/main.qml:49
|
||||
#, kde-format
|
||||
msgid "Back"
|
||||
msgstr "Tilbake"
|
||||
|
||||
#: contents/ui/main.qml:73 contents/ui/SearchPage.qml:150
|
||||
#: contents/ui/main.qml:83 contents/ui/SearchPage.qml:149
|
||||
#, kde-format
|
||||
msgid "Search"
|
||||
msgstr "Søk"
|
||||
|
||||
#: contents/ui/main.qml:85
|
||||
#: contents/ui/main.qml:95
|
||||
#, kde-format
|
||||
msgid "AudioTube"
|
||||
msgstr "AudioTube"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:92
|
||||
#: contents/ui/MaximizedPlayerPage.qml:105
|
||||
#, kde-format
|
||||
msgid "Now Playing"
|
||||
msgstr "Spelar no"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:117
|
||||
#: contents/ui/MaximizedPlayerPage.qml:130
|
||||
#, kde-format
|
||||
msgid "Queue"
|
||||
msgstr "Kø"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:222
|
||||
#: contents/ui/MaximizedPlayerPage.qml:155
|
||||
#, kde-format
|
||||
msgid "Lyrics"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:292
|
||||
#, kde-format
|
||||
msgid "Remove Track"
|
||||
msgstr "Fjern spor"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:242
|
||||
#: contents/ui/MaximizedPlayerPage.qml:334
|
||||
#: contents/ui/MinimizedPlayerControls.qml:96
|
||||
#, kde-format
|
||||
msgid "No media playing"
|
||||
@@ -181,17 +186,17 @@ msgstr "Spelelister"
|
||||
msgid "Unknown"
|
||||
msgstr "Ukjend"
|
||||
|
||||
#: contents/ui/SearchPage.qml:117
|
||||
#: contents/ui/SearchPage.qml:116
|
||||
#, kde-format
|
||||
msgid "Play next"
|
||||
msgstr "Spel som neste"
|
||||
|
||||
#: contents/ui/SearchPage.qml:129
|
||||
#: contents/ui/SearchPage.qml:128
|
||||
#, kde-format
|
||||
msgid "Radio"
|
||||
msgstr "Radio"
|
||||
|
||||
#: contents/ui/SearchPage.qml:147
|
||||
#: contents/ui/SearchPage.qml:146
|
||||
#, kde-format
|
||||
msgid "Find music on YouTube Music"
|
||||
msgstr "Søk etter musikk på YouTube Music"
|
||||
+26
-21
@@ -6,7 +6,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: audiotube\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2022-08-27 00:50+0000\n"
|
||||
"POT-Creation-Date: 2022-11-23 00:50+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"
|
||||
@@ -42,15 +42,15 @@ msgstr "ਰਲਵੇਂ"
|
||||
msgid "Open in Browser"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/AlbumPage.qml:77 contents/ui/ArtistPage.qml:109
|
||||
#: contents/ui/PlaybackHistory.qml:74 contents/ui/PlaylistPage.qml:67
|
||||
#: contents/ui/AlbumPage.qml:78 contents/ui/ArtistPage.qml:100
|
||||
#: contents/ui/PlaybackHistory.qml:74 contents/ui/PlaylistPage.qml:68
|
||||
#, kde-format
|
||||
msgid "Play Next"
|
||||
msgstr "ਅਗਲਾ ਚਲਾਓ"
|
||||
|
||||
#: contents/ui/AlbumPage.qml:82 contents/ui/ArtistPage.qml:115
|
||||
#: contents/ui/PlaybackHistory.qml:79 contents/ui/PlaylistPage.qml:72
|
||||
#: contents/ui/SearchPage.qml:123
|
||||
#: contents/ui/AlbumPage.qml:83 contents/ui/ArtistPage.qml:106
|
||||
#: contents/ui/PlaybackHistory.qml:79 contents/ui/PlaylistPage.qml:73
|
||||
#: contents/ui/SearchPage.qml:122
|
||||
#, kde-format
|
||||
msgid "Add to Playlist"
|
||||
msgstr "ਪਲੇਅਲਿਸਟ ਵਿੱਚ ਜੋੜੋ"
|
||||
@@ -92,63 +92,68 @@ msgstr "ਠੀਕ ਹੈ"
|
||||
msgid "Cancel"
|
||||
msgstr "ਰੱਦ ਕਰੋ"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:27
|
||||
#: contents/ui/LibraryPage.qml:21
|
||||
#, kde-format
|
||||
msgid "Favourites"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/LibraryPage.qml:37 contents/ui/LibraryPage.qml:108
|
||||
#: contents/ui/LibraryPage.qml:31 contents/ui/LibraryPage.qml:187
|
||||
#, kde-format
|
||||
msgid "Show All"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/LibraryPage.qml:42
|
||||
#: contents/ui/LibraryPage.qml:36
|
||||
#, kde-format
|
||||
msgid "Favourite Songs"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/LibraryPage.qml:98
|
||||
#: contents/ui/LibraryPage.qml:177
|
||||
#, kde-format
|
||||
msgid "Most played"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/LibraryPage.qml:113
|
||||
#: contents/ui/LibraryPage.qml:192
|
||||
#, kde-format
|
||||
msgid "Played Songs"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/main.qml:39
|
||||
#: contents/ui/main.qml:49
|
||||
#, kde-format
|
||||
msgid "Back"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/main.qml:73 contents/ui/SearchPage.qml:150
|
||||
#: contents/ui/main.qml:83 contents/ui/SearchPage.qml:149
|
||||
#, kde-format
|
||||
msgid "Search"
|
||||
msgstr "ਖੋਜੋ"
|
||||
|
||||
#: contents/ui/main.qml:85
|
||||
#: contents/ui/main.qml:95
|
||||
#, kde-format
|
||||
msgid "AudioTube"
|
||||
msgstr "ਆਡੀਓ-ਟਿਊਬ"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:92
|
||||
#: contents/ui/MaximizedPlayerPage.qml:105
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "No media playing"
|
||||
msgid "Now Playing"
|
||||
msgstr "ਕੋਈ ਮੀਡੀਆ ਨਹੀਂ ਚੱਲਦਾ"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:117
|
||||
#: contents/ui/MaximizedPlayerPage.qml:130
|
||||
#, kde-format
|
||||
msgid "Queue"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:222
|
||||
#: contents/ui/MaximizedPlayerPage.qml:155
|
||||
#, kde-format
|
||||
msgid "Lyrics"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:292
|
||||
#, kde-format
|
||||
msgid "Remove Track"
|
||||
msgstr "ਟਰੈਕ ਨੂੰ ਹਟਾਓ"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:242
|
||||
#: contents/ui/MaximizedPlayerPage.qml:334
|
||||
#: contents/ui/MinimizedPlayerControls.qml:96
|
||||
#, kde-format
|
||||
msgid "No media playing"
|
||||
@@ -179,17 +184,17 @@ msgstr "ਪਲੇਅਲਿਸਟਾਂ"
|
||||
msgid "Unknown"
|
||||
msgstr "ਅਣਪਛਾਤਾ"
|
||||
|
||||
#: contents/ui/SearchPage.qml:117
|
||||
#: contents/ui/SearchPage.qml:116
|
||||
#, kde-format
|
||||
msgid "Play next"
|
||||
msgstr "ਅਗਲਾ ਚਲਾਓ"
|
||||
|
||||
#: contents/ui/SearchPage.qml:129
|
||||
#: contents/ui/SearchPage.qml:128
|
||||
#, kde-format
|
||||
msgid "Radio"
|
||||
msgstr "ਰੇਡੀਓ"
|
||||
|
||||
#: contents/ui/SearchPage.qml:147
|
||||
#: contents/ui/SearchPage.qml:146
|
||||
#, kde-format
|
||||
msgid "Find music on YouTube Music"
|
||||
msgstr "ਯੂਟਿਊਬ ਸੰਗੀਤ ਉੱਤੇ ਸੰਗੀਤ ਲੱਭੋ"
|
||||
|
||||
+29
-24
@@ -7,8 +7,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: audiotube\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2022-08-27 00:50+0000\n"
|
||||
"PO-Revision-Date: 2022-06-26 20:24+0200\n"
|
||||
"POT-Creation-Date: 2022-11-23 00:50+0000\n"
|
||||
"PO-Revision-Date: 2022-10-18 18:06+0200\n"
|
||||
"Last-Translator: Łukasz Wojniłowicz <[email protected]>\n"
|
||||
"Language-Team: Polish <[email protected]>\n"
|
||||
"Language: pl\n"
|
||||
@@ -17,7 +17,7 @@ msgstr ""
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
|
||||
"|| n%100>=20) ? 1 : 2);\n"
|
||||
"X-Generator: Lokalize 22.03.70\n"
|
||||
"X-Generator: Lokalize 22.08.1\n"
|
||||
|
||||
#, kde-format
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
@@ -42,17 +42,17 @@ msgstr "Wymieszaj"
|
||||
#: contents/ui/AlbumPage.qml:35 contents/ui/ArtistPage.qml:19
|
||||
#, kde-format
|
||||
msgid "Open in Browser"
|
||||
msgstr ""
|
||||
msgstr "Otwórz w przeglądarce"
|
||||
|
||||
#: contents/ui/AlbumPage.qml:77 contents/ui/ArtistPage.qml:109
|
||||
#: contents/ui/PlaybackHistory.qml:74 contents/ui/PlaylistPage.qml:67
|
||||
#: contents/ui/AlbumPage.qml:78 contents/ui/ArtistPage.qml:100
|
||||
#: contents/ui/PlaybackHistory.qml:74 contents/ui/PlaylistPage.qml:68
|
||||
#, kde-format
|
||||
msgid "Play Next"
|
||||
msgstr "Odtwórz następny"
|
||||
|
||||
#: contents/ui/AlbumPage.qml:82 contents/ui/ArtistPage.qml:115
|
||||
#: contents/ui/PlaybackHistory.qml:79 contents/ui/PlaylistPage.qml:72
|
||||
#: contents/ui/SearchPage.qml:123
|
||||
#: contents/ui/AlbumPage.qml:83 contents/ui/ArtistPage.qml:106
|
||||
#: contents/ui/PlaybackHistory.qml:79 contents/ui/PlaylistPage.qml:73
|
||||
#: contents/ui/SearchPage.qml:122
|
||||
#, kde-format
|
||||
msgid "Add to Playlist"
|
||||
msgstr "Dodaj do listy odtwarzania"
|
||||
@@ -96,62 +96,67 @@ msgstr "OK"
|
||||
msgid "Cancel"
|
||||
msgstr "Anuluj"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:27
|
||||
#: contents/ui/LibraryPage.qml:21
|
||||
#, kde-format
|
||||
msgid "Favourites"
|
||||
msgstr "Ulubione"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:37 contents/ui/LibraryPage.qml:108
|
||||
#: contents/ui/LibraryPage.qml:31 contents/ui/LibraryPage.qml:187
|
||||
#, kde-format
|
||||
msgid "Show All"
|
||||
msgstr "Pokaż wszystkie"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:42
|
||||
#: contents/ui/LibraryPage.qml:36
|
||||
#, kde-format
|
||||
msgid "Favourite Songs"
|
||||
msgstr "Ulubione utwory"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:98
|
||||
#: contents/ui/LibraryPage.qml:177
|
||||
#, kde-format
|
||||
msgid "Most played"
|
||||
msgstr "Najczęściej odtwarzane"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:113
|
||||
#: contents/ui/LibraryPage.qml:192
|
||||
#, kde-format
|
||||
msgid "Played Songs"
|
||||
msgstr "Odtwarzane utwory"
|
||||
|
||||
#: contents/ui/main.qml:39
|
||||
#: contents/ui/main.qml:49
|
||||
#, kde-format
|
||||
msgid "Back"
|
||||
msgstr "Wstecz"
|
||||
|
||||
#: contents/ui/main.qml:73 contents/ui/SearchPage.qml:150
|
||||
#: contents/ui/main.qml:83 contents/ui/SearchPage.qml:149
|
||||
#, kde-format
|
||||
msgid "Search"
|
||||
msgstr "Szukaj"
|
||||
|
||||
#: contents/ui/main.qml:85
|
||||
#: contents/ui/main.qml:95
|
||||
#, kde-format
|
||||
msgid "AudioTube"
|
||||
msgstr "AudioTube"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:92
|
||||
#: contents/ui/MaximizedPlayerPage.qml:105
|
||||
#, kde-format
|
||||
msgid "Now Playing"
|
||||
msgstr "Teraz odtwarzany"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:117
|
||||
#: contents/ui/MaximizedPlayerPage.qml:130
|
||||
#, kde-format
|
||||
msgid "Queue"
|
||||
msgstr "Kolejka"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:222
|
||||
#: contents/ui/MaximizedPlayerPage.qml:155
|
||||
#, kde-format
|
||||
msgid "Lyrics"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:292
|
||||
#, kde-format
|
||||
msgid "Remove Track"
|
||||
msgstr "Usuń utwór"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:242
|
||||
#: contents/ui/MaximizedPlayerPage.qml:334
|
||||
#: contents/ui/MinimizedPlayerControls.qml:96
|
||||
#, kde-format
|
||||
msgid "No media playing"
|
||||
@@ -182,17 +187,17 @@ msgstr "Listy odtwarzania"
|
||||
msgid "Unknown"
|
||||
msgstr "Nieznany"
|
||||
|
||||
#: contents/ui/SearchPage.qml:117
|
||||
#: contents/ui/SearchPage.qml:116
|
||||
#, kde-format
|
||||
msgid "Play next"
|
||||
msgstr "Odtwórz następny"
|
||||
|
||||
#: contents/ui/SearchPage.qml:129
|
||||
#: contents/ui/SearchPage.qml:128
|
||||
#, kde-format
|
||||
msgid "Radio"
|
||||
msgstr "Radio"
|
||||
|
||||
#: contents/ui/SearchPage.qml:147
|
||||
#: contents/ui/SearchPage.qml:146
|
||||
#, kde-format
|
||||
msgid "Find music on YouTube Music"
|
||||
msgstr "Znajdź muzykę w serwisie YouTube Music"
|
||||
|
||||
+26
-21
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: audiotube\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2022-08-27 00:50+0000\n"
|
||||
"POT-Creation-Date: 2022-11-23 00:50+0000\n"
|
||||
"PO-Revision-Date: 2022-06-03 17:36+0100\n"
|
||||
"Last-Translator: José Nuno Coelho Pires <[email protected]>\n"
|
||||
"Language-Team: Portuguese <[email protected]>\n"
|
||||
@@ -44,15 +44,15 @@ msgstr "Baralhar"
|
||||
msgid "Open in Browser"
|
||||
msgstr "Abrir no Navegador"
|
||||
|
||||
#: contents/ui/AlbumPage.qml:77 contents/ui/ArtistPage.qml:109
|
||||
#: contents/ui/PlaybackHistory.qml:74 contents/ui/PlaylistPage.qml:67
|
||||
#: contents/ui/AlbumPage.qml:78 contents/ui/ArtistPage.qml:100
|
||||
#: contents/ui/PlaybackHistory.qml:74 contents/ui/PlaylistPage.qml:68
|
||||
#, kde-format
|
||||
msgid "Play Next"
|
||||
msgstr "Reproduzir o Seguinte"
|
||||
|
||||
#: contents/ui/AlbumPage.qml:82 contents/ui/ArtistPage.qml:115
|
||||
#: contents/ui/PlaybackHistory.qml:79 contents/ui/PlaylistPage.qml:72
|
||||
#: contents/ui/SearchPage.qml:123
|
||||
#: contents/ui/AlbumPage.qml:83 contents/ui/ArtistPage.qml:106
|
||||
#: contents/ui/PlaybackHistory.qml:79 contents/ui/PlaylistPage.qml:73
|
||||
#: contents/ui/SearchPage.qml:122
|
||||
#, kde-format
|
||||
msgid "Add to Playlist"
|
||||
msgstr "Adicionar à Lista de Reprodução"
|
||||
@@ -96,62 +96,67 @@ msgstr "OK"
|
||||
msgid "Cancel"
|
||||
msgstr "Cancelar"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:27
|
||||
#: contents/ui/LibraryPage.qml:21
|
||||
#, kde-format
|
||||
msgid "Favourites"
|
||||
msgstr "Favoritos"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:37 contents/ui/LibraryPage.qml:108
|
||||
#: contents/ui/LibraryPage.qml:31 contents/ui/LibraryPage.qml:187
|
||||
#, kde-format
|
||||
msgid "Show All"
|
||||
msgstr "Mostrar Tudo"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:42
|
||||
#: contents/ui/LibraryPage.qml:36
|
||||
#, kde-format
|
||||
msgid "Favourite Songs"
|
||||
msgstr "Músicas Favoritas"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:98
|
||||
#: contents/ui/LibraryPage.qml:177
|
||||
#, kde-format
|
||||
msgid "Most played"
|
||||
msgstr "Mais Tocadas"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:113
|
||||
#: contents/ui/LibraryPage.qml:192
|
||||
#, kde-format
|
||||
msgid "Played Songs"
|
||||
msgstr "Músicas Tocadas"
|
||||
|
||||
#: contents/ui/main.qml:39
|
||||
#: contents/ui/main.qml:49
|
||||
#, kde-format
|
||||
msgid "Back"
|
||||
msgstr "Recuar"
|
||||
|
||||
#: contents/ui/main.qml:73 contents/ui/SearchPage.qml:150
|
||||
#: contents/ui/main.qml:83 contents/ui/SearchPage.qml:149
|
||||
#, kde-format
|
||||
msgid "Search"
|
||||
msgstr "Procurar"
|
||||
|
||||
#: contents/ui/main.qml:85
|
||||
#: contents/ui/main.qml:95
|
||||
#, kde-format
|
||||
msgid "AudioTube"
|
||||
msgstr "AudioTube"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:92
|
||||
#: contents/ui/MaximizedPlayerPage.qml:105
|
||||
#, kde-format
|
||||
msgid "Now Playing"
|
||||
msgstr "Agora a Ouvir"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:117
|
||||
#: contents/ui/MaximizedPlayerPage.qml:130
|
||||
#, kde-format
|
||||
msgid "Queue"
|
||||
msgstr "Fila"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:222
|
||||
#: contents/ui/MaximizedPlayerPage.qml:155
|
||||
#, kde-format
|
||||
msgid "Lyrics"
|
||||
msgstr "Letras Musicais"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:292
|
||||
#, kde-format
|
||||
msgid "Remove Track"
|
||||
msgstr "Remover a Faixa"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:242
|
||||
#: contents/ui/MaximizedPlayerPage.qml:334
|
||||
#: contents/ui/MinimizedPlayerControls.qml:96
|
||||
#, kde-format
|
||||
msgid "No media playing"
|
||||
@@ -182,17 +187,17 @@ msgstr "Listas de Reprodução"
|
||||
msgid "Unknown"
|
||||
msgstr "Desconhecido"
|
||||
|
||||
#: contents/ui/SearchPage.qml:117
|
||||
#: contents/ui/SearchPage.qml:116
|
||||
#, kde-format
|
||||
msgid "Play next"
|
||||
msgstr "Reproduzir o seguinte"
|
||||
|
||||
#: contents/ui/SearchPage.qml:129
|
||||
#: contents/ui/SearchPage.qml:128
|
||||
#, kde-format
|
||||
msgid "Radio"
|
||||
msgstr "Rádio"
|
||||
|
||||
#: contents/ui/SearchPage.qml:147
|
||||
#: contents/ui/SearchPage.qml:146
|
||||
#, kde-format
|
||||
msgid "Find music on YouTube Music"
|
||||
msgstr "Procurar música no YouTube Music"
|
||||
+28
-23
@@ -7,8 +7,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: audiotube\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2022-08-27 00:50+0000\n"
|
||||
"PO-Revision-Date: 2022-07-13 14:59-0300\n"
|
||||
"POT-Creation-Date: 2022-11-23 00:50+0000\n"
|
||||
"PO-Revision-Date: 2022-10-19 15:40-0300\n"
|
||||
"Last-Translator: Luiz Fernando Ranghetti <[email protected]>\n"
|
||||
"Language-Team: Portuguese <[email protected]>\n"
|
||||
"Language: pt_BR\n"
|
||||
@@ -41,17 +41,17 @@ msgstr "Embaralhar"
|
||||
#: contents/ui/AlbumPage.qml:35 contents/ui/ArtistPage.qml:19
|
||||
#, kde-format
|
||||
msgid "Open in Browser"
|
||||
msgstr ""
|
||||
msgstr "Abrir no navegador"
|
||||
|
||||
#: contents/ui/AlbumPage.qml:77 contents/ui/ArtistPage.qml:109
|
||||
#: contents/ui/PlaybackHistory.qml:74 contents/ui/PlaylistPage.qml:67
|
||||
#: contents/ui/AlbumPage.qml:78 contents/ui/ArtistPage.qml:100
|
||||
#: contents/ui/PlaybackHistory.qml:74 contents/ui/PlaylistPage.qml:68
|
||||
#, kde-format
|
||||
msgid "Play Next"
|
||||
msgstr "Reproduzir próxima"
|
||||
|
||||
#: contents/ui/AlbumPage.qml:82 contents/ui/ArtistPage.qml:115
|
||||
#: contents/ui/PlaybackHistory.qml:79 contents/ui/PlaylistPage.qml:72
|
||||
#: contents/ui/SearchPage.qml:123
|
||||
#: contents/ui/AlbumPage.qml:83 contents/ui/ArtistPage.qml:106
|
||||
#: contents/ui/PlaybackHistory.qml:79 contents/ui/PlaylistPage.qml:73
|
||||
#: contents/ui/SearchPage.qml:122
|
||||
#, kde-format
|
||||
msgid "Add to Playlist"
|
||||
msgstr "Adicionar à lista de reprodução"
|
||||
@@ -95,62 +95,67 @@ msgstr "OK"
|
||||
msgid "Cancel"
|
||||
msgstr "Cancelar"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:27
|
||||
#: contents/ui/LibraryPage.qml:21
|
||||
#, kde-format
|
||||
msgid "Favourites"
|
||||
msgstr "Favoritos"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:37 contents/ui/LibraryPage.qml:108
|
||||
#: contents/ui/LibraryPage.qml:31 contents/ui/LibraryPage.qml:187
|
||||
#, kde-format
|
||||
msgid "Show All"
|
||||
msgstr "Mostrar tudo"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:42
|
||||
#: contents/ui/LibraryPage.qml:36
|
||||
#, kde-format
|
||||
msgid "Favourite Songs"
|
||||
msgstr "Músicas favoritas"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:98
|
||||
#: contents/ui/LibraryPage.qml:177
|
||||
#, kde-format
|
||||
msgid "Most played"
|
||||
msgstr "Mais reproduzidas"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:113
|
||||
#: contents/ui/LibraryPage.qml:192
|
||||
#, kde-format
|
||||
msgid "Played Songs"
|
||||
msgstr "Músicas reproduzidas"
|
||||
|
||||
#: contents/ui/main.qml:39
|
||||
#: contents/ui/main.qml:49
|
||||
#, kde-format
|
||||
msgid "Back"
|
||||
msgstr "Voltar"
|
||||
|
||||
#: contents/ui/main.qml:73 contents/ui/SearchPage.qml:150
|
||||
#: contents/ui/main.qml:83 contents/ui/SearchPage.qml:149
|
||||
#, kde-format
|
||||
msgid "Search"
|
||||
msgstr "Pesquisar"
|
||||
|
||||
#: contents/ui/main.qml:85
|
||||
#: contents/ui/main.qml:95
|
||||
#, kde-format
|
||||
msgid "AudioTube"
|
||||
msgstr "AudioTube"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:92
|
||||
#: contents/ui/MaximizedPlayerPage.qml:105
|
||||
#, kde-format
|
||||
msgid "Now Playing"
|
||||
msgstr "Reproduzindo agora"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:117
|
||||
#: contents/ui/MaximizedPlayerPage.qml:130
|
||||
#, kde-format
|
||||
msgid "Queue"
|
||||
msgstr "Fila"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:222
|
||||
#: contents/ui/MaximizedPlayerPage.qml:155
|
||||
#, kde-format
|
||||
msgid "Lyrics"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:292
|
||||
#, kde-format
|
||||
msgid "Remove Track"
|
||||
msgstr "Remover faixa"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:242
|
||||
#: contents/ui/MaximizedPlayerPage.qml:334
|
||||
#: contents/ui/MinimizedPlayerControls.qml:96
|
||||
#, kde-format
|
||||
msgid "No media playing"
|
||||
@@ -181,17 +186,17 @@ msgstr "Listas de músicas"
|
||||
msgid "Unknown"
|
||||
msgstr "Desconhecido"
|
||||
|
||||
#: contents/ui/SearchPage.qml:117
|
||||
#: contents/ui/SearchPage.qml:116
|
||||
#, kde-format
|
||||
msgid "Play next"
|
||||
msgstr "Reproduzir próxima"
|
||||
|
||||
#: contents/ui/SearchPage.qml:129
|
||||
#: contents/ui/SearchPage.qml:128
|
||||
#, kde-format
|
||||
msgid "Radio"
|
||||
msgstr "Rádio"
|
||||
|
||||
#: contents/ui/SearchPage.qml:147
|
||||
#: contents/ui/SearchPage.qml:146
|
||||
#, kde-format
|
||||
msgid "Find music on YouTube Music"
|
||||
msgstr "Encontre músicas no YouTube Music"
|
||||
|
||||
+26
-21
@@ -6,7 +6,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: audiotube\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2022-08-27 00:50+0000\n"
|
||||
"POT-Creation-Date: 2022-11-23 00:50+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"
|
||||
@@ -43,15 +43,15 @@ msgstr "Перемешать"
|
||||
msgid "Open in Browser"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/AlbumPage.qml:77 contents/ui/ArtistPage.qml:109
|
||||
#: contents/ui/PlaybackHistory.qml:74 contents/ui/PlaylistPage.qml:67
|
||||
#: contents/ui/AlbumPage.qml:78 contents/ui/ArtistPage.qml:100
|
||||
#: contents/ui/PlaybackHistory.qml:74 contents/ui/PlaylistPage.qml:68
|
||||
#, kde-format
|
||||
msgid "Play Next"
|
||||
msgstr "Воспроизвести следующий"
|
||||
|
||||
#: contents/ui/AlbumPage.qml:82 contents/ui/ArtistPage.qml:115
|
||||
#: contents/ui/PlaybackHistory.qml:79 contents/ui/PlaylistPage.qml:72
|
||||
#: contents/ui/SearchPage.qml:123
|
||||
#: contents/ui/AlbumPage.qml:83 contents/ui/ArtistPage.qml:106
|
||||
#: contents/ui/PlaybackHistory.qml:79 contents/ui/PlaylistPage.qml:73
|
||||
#: contents/ui/SearchPage.qml:122
|
||||
#, kde-format
|
||||
msgid "Add to Playlist"
|
||||
msgstr ""
|
||||
@@ -93,62 +93,67 @@ msgstr "ОК"
|
||||
msgid "Cancel"
|
||||
msgstr "Отмена"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:27
|
||||
#: contents/ui/LibraryPage.qml:21
|
||||
#, kde-format
|
||||
msgid "Favourites"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/LibraryPage.qml:37 contents/ui/LibraryPage.qml:108
|
||||
#: contents/ui/LibraryPage.qml:31 contents/ui/LibraryPage.qml:187
|
||||
#, kde-format
|
||||
msgid "Show All"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/LibraryPage.qml:42
|
||||
#: contents/ui/LibraryPage.qml:36
|
||||
#, kde-format
|
||||
msgid "Favourite Songs"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/LibraryPage.qml:98
|
||||
#: contents/ui/LibraryPage.qml:177
|
||||
#, kde-format
|
||||
msgid "Most played"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/LibraryPage.qml:113
|
||||
#: contents/ui/LibraryPage.qml:192
|
||||
#, kde-format
|
||||
msgid "Played Songs"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/main.qml:39
|
||||
#: contents/ui/main.qml:49
|
||||
#, kde-format
|
||||
msgid "Back"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/main.qml:73 contents/ui/SearchPage.qml:150
|
||||
#: contents/ui/main.qml:83 contents/ui/SearchPage.qml:149
|
||||
#, kde-format
|
||||
msgid "Search"
|
||||
msgstr "Поиск"
|
||||
|
||||
#: contents/ui/main.qml:85
|
||||
#: contents/ui/main.qml:95
|
||||
#, kde-format
|
||||
msgid "AudioTube"
|
||||
msgstr "AudioTube"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:92
|
||||
#: contents/ui/MaximizedPlayerPage.qml:105
|
||||
#, kde-format
|
||||
msgid "Now Playing"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:117
|
||||
#: contents/ui/MaximizedPlayerPage.qml:130
|
||||
#, kde-format
|
||||
msgid "Queue"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:222
|
||||
#: contents/ui/MaximizedPlayerPage.qml:155
|
||||
#, kde-format
|
||||
msgid "Lyrics"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:292
|
||||
#, kde-format
|
||||
msgid "Remove Track"
|
||||
msgstr "Удалить дорожку"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:242
|
||||
#: contents/ui/MaximizedPlayerPage.qml:334
|
||||
#: contents/ui/MinimizedPlayerControls.qml:96
|
||||
#, kde-format
|
||||
msgid "No media playing"
|
||||
@@ -179,17 +184,17 @@ msgstr ""
|
||||
msgid "Unknown"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/SearchPage.qml:117
|
||||
#: contents/ui/SearchPage.qml:116
|
||||
#, kde-format
|
||||
msgid "Play next"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/SearchPage.qml:129
|
||||
#: contents/ui/SearchPage.qml:128
|
||||
#, kde-format
|
||||
msgid "Radio"
|
||||
msgstr "Радио"
|
||||
|
||||
#: contents/ui/SearchPage.qml:147
|
||||
#: contents/ui/SearchPage.qml:146
|
||||
#, kde-format
|
||||
msgid "Find music on YouTube Music"
|
||||
msgstr ""
|
||||
|
||||
+26
-21
@@ -4,7 +4,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: audiotube\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2022-08-27 00:50+0000\n"
|
||||
"POT-Creation-Date: 2022-11-23 00:50+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"
|
||||
@@ -40,16 +40,16 @@ msgstr "Zamiešať"
|
||||
msgid "Open in Browser"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/AlbumPage.qml:77 contents/ui/ArtistPage.qml:109
|
||||
#: contents/ui/PlaybackHistory.qml:74 contents/ui/PlaylistPage.qml:67
|
||||
#: contents/ui/AlbumPage.qml:78 contents/ui/ArtistPage.qml:100
|
||||
#: contents/ui/PlaybackHistory.qml:74 contents/ui/PlaylistPage.qml:68
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Play"
|
||||
msgid "Play Next"
|
||||
msgstr "Prehrať"
|
||||
|
||||
#: contents/ui/AlbumPage.qml:82 contents/ui/ArtistPage.qml:115
|
||||
#: contents/ui/PlaybackHistory.qml:79 contents/ui/PlaylistPage.qml:72
|
||||
#: contents/ui/SearchPage.qml:123
|
||||
#: contents/ui/AlbumPage.qml:83 contents/ui/ArtistPage.qml:106
|
||||
#: contents/ui/PlaybackHistory.qml:79 contents/ui/PlaylistPage.qml:73
|
||||
#: contents/ui/SearchPage.qml:122
|
||||
#, kde-format
|
||||
msgid "Add to Playlist"
|
||||
msgstr "Pridať do zoznamu skladieb"
|
||||
@@ -91,63 +91,68 @@ msgstr "OK"
|
||||
msgid "Cancel"
|
||||
msgstr "Zrušiť"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:27
|
||||
#: contents/ui/LibraryPage.qml:21
|
||||
#, kde-format
|
||||
msgid "Favourites"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/LibraryPage.qml:37 contents/ui/LibraryPage.qml:108
|
||||
#: contents/ui/LibraryPage.qml:31 contents/ui/LibraryPage.qml:187
|
||||
#, kde-format
|
||||
msgid "Show All"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/LibraryPage.qml:42
|
||||
#: contents/ui/LibraryPage.qml:36
|
||||
#, kde-format
|
||||
msgid "Favourite Songs"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/LibraryPage.qml:98
|
||||
#: contents/ui/LibraryPage.qml:177
|
||||
#, kde-format
|
||||
msgid "Most played"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/LibraryPage.qml:113
|
||||
#: contents/ui/LibraryPage.qml:192
|
||||
#, kde-format
|
||||
msgid "Played Songs"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/main.qml:39
|
||||
#: contents/ui/main.qml:49
|
||||
#, kde-format
|
||||
msgid "Back"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/main.qml:73 contents/ui/SearchPage.qml:150
|
||||
#: contents/ui/main.qml:83 contents/ui/SearchPage.qml:149
|
||||
#, kde-format
|
||||
msgid "Search"
|
||||
msgstr "Hľadať"
|
||||
|
||||
#: contents/ui/main.qml:85
|
||||
#: contents/ui/main.qml:95
|
||||
#, kde-format
|
||||
msgid "AudioTube"
|
||||
msgstr "AudioTube"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:92
|
||||
#: contents/ui/MaximizedPlayerPage.qml:105
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "No media playing"
|
||||
msgid "Now Playing"
|
||||
msgstr "Neprehráva sa žiadne médium"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:117
|
||||
#: contents/ui/MaximizedPlayerPage.qml:130
|
||||
#, kde-format
|
||||
msgid "Queue"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:222
|
||||
#: contents/ui/MaximizedPlayerPage.qml:155
|
||||
#, kde-format
|
||||
msgid "Lyrics"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:292
|
||||
#, kde-format
|
||||
msgid "Remove Track"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:242
|
||||
#: contents/ui/MaximizedPlayerPage.qml:334
|
||||
#: contents/ui/MinimizedPlayerControls.qml:96
|
||||
#, kde-format
|
||||
msgid "No media playing"
|
||||
@@ -178,17 +183,17 @@ msgstr "Zoznamy skladieb"
|
||||
msgid "Unknown"
|
||||
msgstr "Neznáme"
|
||||
|
||||
#: contents/ui/SearchPage.qml:117
|
||||
#: contents/ui/SearchPage.qml:116
|
||||
#, kde-format
|
||||
msgid "Play next"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/SearchPage.qml:129
|
||||
#: contents/ui/SearchPage.qml:128
|
||||
#, kde-format
|
||||
msgid "Radio"
|
||||
msgstr "Rádio"
|
||||
|
||||
#: contents/ui/SearchPage.qml:147
|
||||
#: contents/ui/SearchPage.qml:146
|
||||
#, kde-format
|
||||
msgid "Find music on YouTube Music"
|
||||
msgstr ""
|
||||
|
||||
+28
-23
@@ -6,15 +6,15 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: audiotube\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2022-08-27 00:50+0000\n"
|
||||
"PO-Revision-Date: 2022-09-03 08:19+0200\n"
|
||||
"POT-Creation-Date: 2022-11-23 00:50+0000\n"
|
||||
"PO-Revision-Date: 2022-11-06 07:32+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 22.04.1\n"
|
||||
"X-Generator: Lokalize 22.08.1\n"
|
||||
"Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || n"
|
||||
"%100==4 ? 3 : 0);\n"
|
||||
|
||||
@@ -43,15 +43,15 @@ msgstr "Premešaj"
|
||||
msgid "Open in Browser"
|
||||
msgstr "Odpri v brskalniku"
|
||||
|
||||
#: contents/ui/AlbumPage.qml:77 contents/ui/ArtistPage.qml:109
|
||||
#: contents/ui/PlaybackHistory.qml:74 contents/ui/PlaylistPage.qml:67
|
||||
#: contents/ui/AlbumPage.qml:78 contents/ui/ArtistPage.qml:100
|
||||
#: contents/ui/PlaybackHistory.qml:74 contents/ui/PlaylistPage.qml:68
|
||||
#, kde-format
|
||||
msgid "Play Next"
|
||||
msgstr "Predvajaj naslednjo"
|
||||
|
||||
#: contents/ui/AlbumPage.qml:82 contents/ui/ArtistPage.qml:115
|
||||
#: contents/ui/PlaybackHistory.qml:79 contents/ui/PlaylistPage.qml:72
|
||||
#: contents/ui/SearchPage.qml:123
|
||||
#: contents/ui/AlbumPage.qml:83 contents/ui/ArtistPage.qml:106
|
||||
#: contents/ui/PlaybackHistory.qml:79 contents/ui/PlaylistPage.qml:73
|
||||
#: contents/ui/SearchPage.qml:122
|
||||
#, kde-format
|
||||
msgid "Add to Playlist"
|
||||
msgstr "Dodaj v seznam predvajanja"
|
||||
@@ -93,62 +93,67 @@ msgstr "V redu"
|
||||
msgid "Cancel"
|
||||
msgstr "Prekliči"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:27
|
||||
#: contents/ui/LibraryPage.qml:21
|
||||
#, kde-format
|
||||
msgid "Favourites"
|
||||
msgstr "Priljubljene"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:37 contents/ui/LibraryPage.qml:108
|
||||
#: contents/ui/LibraryPage.qml:31 contents/ui/LibraryPage.qml:187
|
||||
#, kde-format
|
||||
msgid "Show All"
|
||||
msgstr "Prikaži vse"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:42
|
||||
#: contents/ui/LibraryPage.qml:36
|
||||
#, kde-format
|
||||
msgid "Favourite Songs"
|
||||
msgstr "Priljubljene pesmi"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:98
|
||||
#: contents/ui/LibraryPage.qml:177
|
||||
#, kde-format
|
||||
msgid "Most played"
|
||||
msgstr "Največkrat predvajane"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:113
|
||||
#: contents/ui/LibraryPage.qml:192
|
||||
#, kde-format
|
||||
msgid "Played Songs"
|
||||
msgstr "Predvajane pesmi"
|
||||
|
||||
#: contents/ui/main.qml:39
|
||||
#: contents/ui/main.qml:49
|
||||
#, kde-format
|
||||
msgid "Back"
|
||||
msgstr "Nazaj"
|
||||
|
||||
#: contents/ui/main.qml:73 contents/ui/SearchPage.qml:150
|
||||
#: contents/ui/main.qml:83 contents/ui/SearchPage.qml:149
|
||||
#, kde-format
|
||||
msgid "Search"
|
||||
msgstr "Išči"
|
||||
|
||||
#: contents/ui/main.qml:85
|
||||
#: contents/ui/main.qml:95
|
||||
#, kde-format
|
||||
msgid "AudioTube"
|
||||
msgstr "AudioTube"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:92
|
||||
#: contents/ui/MaximizedPlayerPage.qml:105
|
||||
#, kde-format
|
||||
msgid "Now Playing"
|
||||
msgstr "Pravkar predvajano"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:117
|
||||
#: contents/ui/MaximizedPlayerPage.qml:130
|
||||
#, kde-format
|
||||
msgid "Queue"
|
||||
msgstr "Čakalna vrsta"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:222
|
||||
#: contents/ui/MaximizedPlayerPage.qml:155
|
||||
#, kde-format
|
||||
msgid "Lyrics"
|
||||
msgstr "Besedilo"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:292
|
||||
#, kde-format
|
||||
msgid "Remove Track"
|
||||
msgstr "Odstrani sled"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:242
|
||||
#: contents/ui/MaximizedPlayerPage.qml:334
|
||||
#: contents/ui/MinimizedPlayerControls.qml:96
|
||||
#, kde-format
|
||||
msgid "No media playing"
|
||||
@@ -179,17 +184,17 @@ msgstr "Seznami predvajanja"
|
||||
msgid "Unknown"
|
||||
msgstr "Neznano"
|
||||
|
||||
#: contents/ui/SearchPage.qml:117
|
||||
#: contents/ui/SearchPage.qml:116
|
||||
#, kde-format
|
||||
msgid "Play next"
|
||||
msgstr "Predvajaj naslednjo"
|
||||
|
||||
#: contents/ui/SearchPage.qml:129
|
||||
#: contents/ui/SearchPage.qml:128
|
||||
#, kde-format
|
||||
msgid "Radio"
|
||||
msgstr "Radio"
|
||||
|
||||
#: contents/ui/SearchPage.qml:147
|
||||
#: contents/ui/SearchPage.qml:146
|
||||
#, kde-format
|
||||
msgid "Find music on YouTube Music"
|
||||
msgstr "Najdi glasbo na Youtube Music"
|
||||
|
||||
+26
-21
@@ -6,7 +6,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: audiotube\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2022-08-27 00:50+0000\n"
|
||||
"POT-Creation-Date: 2022-11-23 00:50+0000\n"
|
||||
"PO-Revision-Date: 2022-09-24 14:57+0200\n"
|
||||
"Last-Translator: Stefan Asserhäll <[email protected]>\n"
|
||||
"Language-Team: Swedish <[email protected]>\n"
|
||||
@@ -42,15 +42,15 @@ msgstr "Blanda"
|
||||
msgid "Open in Browser"
|
||||
msgstr "Öppna i webbläsare"
|
||||
|
||||
#: contents/ui/AlbumPage.qml:77 contents/ui/ArtistPage.qml:109
|
||||
#: contents/ui/PlaybackHistory.qml:74 contents/ui/PlaylistPage.qml:67
|
||||
#: contents/ui/AlbumPage.qml:78 contents/ui/ArtistPage.qml:100
|
||||
#: contents/ui/PlaybackHistory.qml:74 contents/ui/PlaylistPage.qml:68
|
||||
#, kde-format
|
||||
msgid "Play Next"
|
||||
msgstr "Spela nästa"
|
||||
|
||||
#: contents/ui/AlbumPage.qml:82 contents/ui/ArtistPage.qml:115
|
||||
#: contents/ui/PlaybackHistory.qml:79 contents/ui/PlaylistPage.qml:72
|
||||
#: contents/ui/SearchPage.qml:123
|
||||
#: contents/ui/AlbumPage.qml:83 contents/ui/ArtistPage.qml:106
|
||||
#: contents/ui/PlaybackHistory.qml:79 contents/ui/PlaylistPage.qml:73
|
||||
#: contents/ui/SearchPage.qml:122
|
||||
#, kde-format
|
||||
msgid "Add to Playlist"
|
||||
msgstr "Lägg till i spellista"
|
||||
@@ -92,62 +92,67 @@ msgstr "Ok"
|
||||
msgid "Cancel"
|
||||
msgstr "Avbryt"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:27
|
||||
#: contents/ui/LibraryPage.qml:21
|
||||
#, kde-format
|
||||
msgid "Favourites"
|
||||
msgstr "Favoriter"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:37 contents/ui/LibraryPage.qml:108
|
||||
#: contents/ui/LibraryPage.qml:31 contents/ui/LibraryPage.qml:187
|
||||
#, kde-format
|
||||
msgid "Show All"
|
||||
msgstr "Visa alla"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:42
|
||||
#: contents/ui/LibraryPage.qml:36
|
||||
#, kde-format
|
||||
msgid "Favourite Songs"
|
||||
msgstr "Favoritlåtar"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:98
|
||||
#: contents/ui/LibraryPage.qml:177
|
||||
#, kde-format
|
||||
msgid "Most played"
|
||||
msgstr "Mest spelade"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:113
|
||||
#: contents/ui/LibraryPage.qml:192
|
||||
#, kde-format
|
||||
msgid "Played Songs"
|
||||
msgstr "Spelade låtar"
|
||||
|
||||
#: contents/ui/main.qml:39
|
||||
#: contents/ui/main.qml:49
|
||||
#, kde-format
|
||||
msgid "Back"
|
||||
msgstr "Bakåt"
|
||||
|
||||
#: contents/ui/main.qml:73 contents/ui/SearchPage.qml:150
|
||||
#: contents/ui/main.qml:83 contents/ui/SearchPage.qml:149
|
||||
#, kde-format
|
||||
msgid "Search"
|
||||
msgstr "Sök"
|
||||
|
||||
#: contents/ui/main.qml:85
|
||||
#: contents/ui/main.qml:95
|
||||
#, kde-format
|
||||
msgid "AudioTube"
|
||||
msgstr "AudioTube"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:92
|
||||
#: contents/ui/MaximizedPlayerPage.qml:105
|
||||
#, kde-format
|
||||
msgid "Now Playing"
|
||||
msgstr "Spelar nu"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:117
|
||||
#: contents/ui/MaximizedPlayerPage.qml:130
|
||||
#, kde-format
|
||||
msgid "Queue"
|
||||
msgstr "Köa"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:222
|
||||
#: contents/ui/MaximizedPlayerPage.qml:155
|
||||
#, kde-format
|
||||
msgid "Lyrics"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:292
|
||||
#, kde-format
|
||||
msgid "Remove Track"
|
||||
msgstr "Ta bort spår"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:242
|
||||
#: contents/ui/MaximizedPlayerPage.qml:334
|
||||
#: contents/ui/MinimizedPlayerControls.qml:96
|
||||
#, kde-format
|
||||
msgid "No media playing"
|
||||
@@ -178,17 +183,17 @@ msgstr "Spellistor"
|
||||
msgid "Unknown"
|
||||
msgstr "Okänd"
|
||||
|
||||
#: contents/ui/SearchPage.qml:117
|
||||
#: contents/ui/SearchPage.qml:116
|
||||
#, kde-format
|
||||
msgid "Play next"
|
||||
msgstr "Spela nästa"
|
||||
|
||||
#: contents/ui/SearchPage.qml:129
|
||||
#: contents/ui/SearchPage.qml:128
|
||||
#, kde-format
|
||||
msgid "Radio"
|
||||
msgstr "Radio"
|
||||
|
||||
#: contents/ui/SearchPage.qml:147
|
||||
#: contents/ui/SearchPage.qml:146
|
||||
#, kde-format
|
||||
msgid "Find music on YouTube Music"
|
||||
msgstr "Sök efter musik på YouTube musik"
|
||||
|
||||
+28
-23
@@ -6,8 +6,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: audiotube\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2022-08-27 00:50+0000\n"
|
||||
"PO-Revision-Date: 2022-08-27 05:01+0300\n"
|
||||
"POT-Creation-Date: 2022-11-23 00:50+0000\n"
|
||||
"PO-Revision-Date: 2022-11-06 10:53+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.3\n"
|
||||
"X-Generator: Lokalize 22.08.2\n"
|
||||
|
||||
#, kde-format
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
@@ -42,15 +42,15 @@ msgstr "Karıştır"
|
||||
msgid "Open in Browser"
|
||||
msgstr "Tarayıcıda Aç"
|
||||
|
||||
#: contents/ui/AlbumPage.qml:77 contents/ui/ArtistPage.qml:109
|
||||
#: contents/ui/PlaybackHistory.qml:74 contents/ui/PlaylistPage.qml:67
|
||||
#: contents/ui/AlbumPage.qml:78 contents/ui/ArtistPage.qml:100
|
||||
#: contents/ui/PlaybackHistory.qml:74 contents/ui/PlaylistPage.qml:68
|
||||
#, kde-format
|
||||
msgid "Play Next"
|
||||
msgstr "Sonrakini Çal"
|
||||
|
||||
#: contents/ui/AlbumPage.qml:82 contents/ui/ArtistPage.qml:115
|
||||
#: contents/ui/PlaybackHistory.qml:79 contents/ui/PlaylistPage.qml:72
|
||||
#: contents/ui/SearchPage.qml:123
|
||||
#: contents/ui/AlbumPage.qml:83 contents/ui/ArtistPage.qml:106
|
||||
#: contents/ui/PlaybackHistory.qml:79 contents/ui/PlaylistPage.qml:73
|
||||
#: contents/ui/SearchPage.qml:122
|
||||
#, kde-format
|
||||
msgid "Add to Playlist"
|
||||
msgstr "Çalma Listesine Ekle"
|
||||
@@ -94,62 +94,67 @@ msgstr "Tamam"
|
||||
msgid "Cancel"
|
||||
msgstr "İptal"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:27
|
||||
#: contents/ui/LibraryPage.qml:21
|
||||
#, kde-format
|
||||
msgid "Favourites"
|
||||
msgstr "Beğeniler"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:37 contents/ui/LibraryPage.qml:108
|
||||
#: contents/ui/LibraryPage.qml:31 contents/ui/LibraryPage.qml:187
|
||||
#, kde-format
|
||||
msgid "Show All"
|
||||
msgstr "Tümünü Göster"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:42
|
||||
#: contents/ui/LibraryPage.qml:36
|
||||
#, kde-format
|
||||
msgid "Favourite Songs"
|
||||
msgstr "Beğenilen Şarkılar"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:98
|
||||
#: contents/ui/LibraryPage.qml:177
|
||||
#, kde-format
|
||||
msgid "Most played"
|
||||
msgstr "En Çok Çalınanlar"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:113
|
||||
#: contents/ui/LibraryPage.qml:192
|
||||
#, kde-format
|
||||
msgid "Played Songs"
|
||||
msgstr "Çalınan Şarkılar"
|
||||
|
||||
#: contents/ui/main.qml:39
|
||||
#: contents/ui/main.qml:49
|
||||
#, kde-format
|
||||
msgid "Back"
|
||||
msgstr "Geri"
|
||||
|
||||
#: contents/ui/main.qml:73 contents/ui/SearchPage.qml:150
|
||||
#: contents/ui/main.qml:83 contents/ui/SearchPage.qml:149
|
||||
#, kde-format
|
||||
msgid "Search"
|
||||
msgstr "Ara"
|
||||
|
||||
#: contents/ui/main.qml:85
|
||||
#: contents/ui/main.qml:95
|
||||
#, kde-format
|
||||
msgid "AudioTube"
|
||||
msgstr "AudioTube"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:92
|
||||
#: contents/ui/MaximizedPlayerPage.qml:105
|
||||
#, kde-format
|
||||
msgid "Now Playing"
|
||||
msgstr "Şimdi Çalınıyor"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:117
|
||||
#: contents/ui/MaximizedPlayerPage.qml:130
|
||||
#, kde-format
|
||||
msgid "Queue"
|
||||
msgstr "Kuyruk"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:222
|
||||
#: contents/ui/MaximizedPlayerPage.qml:155
|
||||
#, kde-format
|
||||
msgid "Lyrics"
|
||||
msgstr "Şarkı Sözleri"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:292
|
||||
#, kde-format
|
||||
msgid "Remove Track"
|
||||
msgstr "Parçayı Kaldır"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:242
|
||||
#: contents/ui/MaximizedPlayerPage.qml:334
|
||||
#: contents/ui/MinimizedPlayerControls.qml:96
|
||||
#, kde-format
|
||||
msgid "No media playing"
|
||||
@@ -180,17 +185,17 @@ msgstr "Çalma Listeleri"
|
||||
msgid "Unknown"
|
||||
msgstr "Bilinmiyor"
|
||||
|
||||
#: contents/ui/SearchPage.qml:117
|
||||
#: contents/ui/SearchPage.qml:116
|
||||
#, kde-format
|
||||
msgid "Play next"
|
||||
msgstr "Sonrakini çal"
|
||||
|
||||
#: contents/ui/SearchPage.qml:129
|
||||
#: contents/ui/SearchPage.qml:128
|
||||
#, kde-format
|
||||
msgid "Radio"
|
||||
msgstr "Radyo"
|
||||
|
||||
#: contents/ui/SearchPage.qml:147
|
||||
#: contents/ui/SearchPage.qml:146
|
||||
#, kde-format
|
||||
msgid "Find music on YouTube Music"
|
||||
msgstr "YouTube Müzik'te müzik bul"
|
||||
|
||||
+27
-22
@@ -6,8 +6,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2022-08-27 00:50+0000\n"
|
||||
"PO-Revision-Date: 2022-08-27 09:13+0300\n"
|
||||
"POT-Creation-Date: 2022-11-23 00:50+0000\n"
|
||||
"PO-Revision-Date: 2022-11-06 10:00+0200\n"
|
||||
"Last-Translator: Yuri Chornoivan <[email protected]>\n"
|
||||
"Language-Team: Ukrainian <[email protected]>\n"
|
||||
"Language: uk\n"
|
||||
@@ -43,15 +43,15 @@ msgstr "Перемішати"
|
||||
msgid "Open in Browser"
|
||||
msgstr "Відкрити у переглядачі"
|
||||
|
||||
#: contents/ui/AlbumPage.qml:77 contents/ui/ArtistPage.qml:109
|
||||
#: contents/ui/PlaybackHistory.qml:74 contents/ui/PlaylistPage.qml:67
|
||||
#: contents/ui/AlbumPage.qml:78 contents/ui/ArtistPage.qml:100
|
||||
#: contents/ui/PlaybackHistory.qml:74 contents/ui/PlaylistPage.qml:68
|
||||
#, kde-format
|
||||
msgid "Play Next"
|
||||
msgstr "Відтворити наступну"
|
||||
|
||||
#: contents/ui/AlbumPage.qml:82 contents/ui/ArtistPage.qml:115
|
||||
#: contents/ui/PlaybackHistory.qml:79 contents/ui/PlaylistPage.qml:72
|
||||
#: contents/ui/SearchPage.qml:123
|
||||
#: contents/ui/AlbumPage.qml:83 contents/ui/ArtistPage.qml:106
|
||||
#: contents/ui/PlaybackHistory.qml:79 contents/ui/PlaylistPage.qml:73
|
||||
#: contents/ui/SearchPage.qml:122
|
||||
#, kde-format
|
||||
msgid "Add to Playlist"
|
||||
msgstr "Додати до списку відтворення"
|
||||
@@ -95,62 +95,67 @@ msgstr "Гаразд"
|
||||
msgid "Cancel"
|
||||
msgstr "Скасувати"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:27
|
||||
#: contents/ui/LibraryPage.qml:21
|
||||
#, kde-format
|
||||
msgid "Favourites"
|
||||
msgstr "Улюблені"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:37 contents/ui/LibraryPage.qml:108
|
||||
#: contents/ui/LibraryPage.qml:31 contents/ui/LibraryPage.qml:187
|
||||
#, kde-format
|
||||
msgid "Show All"
|
||||
msgstr "Показати всі"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:42
|
||||
#: contents/ui/LibraryPage.qml:36
|
||||
#, kde-format
|
||||
msgid "Favourite Songs"
|
||||
msgstr "Улюблені композиції"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:98
|
||||
#: contents/ui/LibraryPage.qml:177
|
||||
#, kde-format
|
||||
msgid "Most played"
|
||||
msgstr "Часто слухали"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:113
|
||||
#: contents/ui/LibraryPage.qml:192
|
||||
#, kde-format
|
||||
msgid "Played Songs"
|
||||
msgstr "Відтворені композиції"
|
||||
|
||||
#: contents/ui/main.qml:39
|
||||
#: contents/ui/main.qml:49
|
||||
#, kde-format
|
||||
msgid "Back"
|
||||
msgstr "Назад"
|
||||
|
||||
#: contents/ui/main.qml:73 contents/ui/SearchPage.qml:150
|
||||
#: contents/ui/main.qml:83 contents/ui/SearchPage.qml:149
|
||||
#, kde-format
|
||||
msgid "Search"
|
||||
msgstr "Пошук"
|
||||
|
||||
#: contents/ui/main.qml:85
|
||||
#: contents/ui/main.qml:95
|
||||
#, kde-format
|
||||
msgid "AudioTube"
|
||||
msgstr "AudioTube"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:92
|
||||
#: contents/ui/MaximizedPlayerPage.qml:105
|
||||
#, kde-format
|
||||
msgid "Now Playing"
|
||||
msgstr "Зараз відтворюємо"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:117
|
||||
#: contents/ui/MaximizedPlayerPage.qml:130
|
||||
#, kde-format
|
||||
msgid "Queue"
|
||||
msgstr "Додати до черги"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:222
|
||||
#: contents/ui/MaximizedPlayerPage.qml:155
|
||||
#, kde-format
|
||||
msgid "Lyrics"
|
||||
msgstr "Текст"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:292
|
||||
#, kde-format
|
||||
msgid "Remove Track"
|
||||
msgstr "Вилучити композицію"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:242
|
||||
#: contents/ui/MaximizedPlayerPage.qml:334
|
||||
#: contents/ui/MinimizedPlayerControls.qml:96
|
||||
#, kde-format
|
||||
msgid "No media playing"
|
||||
@@ -181,17 +186,17 @@ msgstr "Списки відтворення"
|
||||
msgid "Unknown"
|
||||
msgstr "Невідомий"
|
||||
|
||||
#: contents/ui/SearchPage.qml:117
|
||||
#: contents/ui/SearchPage.qml:116
|
||||
#, kde-format
|
||||
msgid "Play next"
|
||||
msgstr "Відтворити наступну"
|
||||
|
||||
#: contents/ui/SearchPage.qml:129
|
||||
#: contents/ui/SearchPage.qml:128
|
||||
#, kde-format
|
||||
msgid "Radio"
|
||||
msgstr "Радіо"
|
||||
|
||||
#: contents/ui/SearchPage.qml:147
|
||||
#: contents/ui/SearchPage.qml:146
|
||||
#, kde-format
|
||||
msgid "Find music on YouTube Music"
|
||||
msgstr "Шукати музику на сайті «Музика Youtube»"
|
||||
|
||||
+27
-22
@@ -2,8 +2,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: kdeorg\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2022-08-27 00:50+0000\n"
|
||||
"PO-Revision-Date: 2022-09-20 01:57\n"
|
||||
"POT-Creation-Date: 2022-11-23 00:50+0000\n"
|
||||
"PO-Revision-Date: 2022-11-19 14:49\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Chinese Simplified\n"
|
||||
"Language: zh_CN\n"
|
||||
@@ -42,15 +42,15 @@ msgstr "随机播放"
|
||||
msgid "Open in Browser"
|
||||
msgstr "在浏览器中打开"
|
||||
|
||||
#: contents/ui/AlbumPage.qml:77 contents/ui/ArtistPage.qml:109
|
||||
#: contents/ui/PlaybackHistory.qml:74 contents/ui/PlaylistPage.qml:67
|
||||
#: contents/ui/AlbumPage.qml:78 contents/ui/ArtistPage.qml:100
|
||||
#: contents/ui/PlaybackHistory.qml:74 contents/ui/PlaylistPage.qml:68
|
||||
#, kde-format
|
||||
msgid "Play Next"
|
||||
msgstr "播放下一首"
|
||||
|
||||
#: contents/ui/AlbumPage.qml:82 contents/ui/ArtistPage.qml:115
|
||||
#: contents/ui/PlaybackHistory.qml:79 contents/ui/PlaylistPage.qml:72
|
||||
#: contents/ui/SearchPage.qml:123
|
||||
#: contents/ui/AlbumPage.qml:83 contents/ui/ArtistPage.qml:106
|
||||
#: contents/ui/PlaybackHistory.qml:79 contents/ui/PlaylistPage.qml:73
|
||||
#: contents/ui/SearchPage.qml:122
|
||||
#, kde-format
|
||||
msgid "Add to Playlist"
|
||||
msgstr "添加到播放列表"
|
||||
@@ -92,62 +92,67 @@ msgstr "确定"
|
||||
msgid "Cancel"
|
||||
msgstr "取消"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:27
|
||||
#: contents/ui/LibraryPage.qml:21
|
||||
#, kde-format
|
||||
msgid "Favourites"
|
||||
msgstr "收藏夹"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:37 contents/ui/LibraryPage.qml:108
|
||||
#: contents/ui/LibraryPage.qml:31 contents/ui/LibraryPage.qml:187
|
||||
#, kde-format
|
||||
msgid "Show All"
|
||||
msgstr "显示全部"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:42
|
||||
#: contents/ui/LibraryPage.qml:36
|
||||
#, kde-format
|
||||
msgid "Favourite Songs"
|
||||
msgstr "收藏的歌曲"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:98
|
||||
#: contents/ui/LibraryPage.qml:177
|
||||
#, kde-format
|
||||
msgid "Most played"
|
||||
msgstr "最常播放"
|
||||
|
||||
#: contents/ui/LibraryPage.qml:113
|
||||
#: contents/ui/LibraryPage.qml:192
|
||||
#, kde-format
|
||||
msgid "Played Songs"
|
||||
msgstr "已播放歌曲"
|
||||
|
||||
#: contents/ui/main.qml:39
|
||||
#: contents/ui/main.qml:49
|
||||
#, kde-format
|
||||
msgid "Back"
|
||||
msgstr "返回"
|
||||
|
||||
#: contents/ui/main.qml:73 contents/ui/SearchPage.qml:150
|
||||
#: contents/ui/main.qml:83 contents/ui/SearchPage.qml:149
|
||||
#, kde-format
|
||||
msgid "Search"
|
||||
msgstr "搜索"
|
||||
|
||||
#: contents/ui/main.qml:85
|
||||
#: contents/ui/main.qml:95
|
||||
#, kde-format
|
||||
msgid "AudioTube"
|
||||
msgstr "AudioTube"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:92
|
||||
#: contents/ui/MaximizedPlayerPage.qml:105
|
||||
#, kde-format
|
||||
msgid "Now Playing"
|
||||
msgstr "正在播放"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:117
|
||||
#: contents/ui/MaximizedPlayerPage.qml:130
|
||||
#, kde-format
|
||||
msgid "Queue"
|
||||
msgstr "播放队列"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:222
|
||||
#: contents/ui/MaximizedPlayerPage.qml:155
|
||||
#, kde-format
|
||||
msgid "Lyrics"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:292
|
||||
#, kde-format
|
||||
msgid "Remove Track"
|
||||
msgstr "移除曲目"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:242
|
||||
#: contents/ui/MaximizedPlayerPage.qml:334
|
||||
#: contents/ui/MinimizedPlayerControls.qml:96
|
||||
#, kde-format
|
||||
msgid "No media playing"
|
||||
@@ -178,17 +183,17 @@ msgstr "播放列表"
|
||||
msgid "Unknown"
|
||||
msgstr "未知"
|
||||
|
||||
#: contents/ui/SearchPage.qml:117
|
||||
#: contents/ui/SearchPage.qml:116
|
||||
#, kde-format
|
||||
msgid "Play next"
|
||||
msgstr "播放下一首"
|
||||
|
||||
#: contents/ui/SearchPage.qml:129
|
||||
#: contents/ui/SearchPage.qml:128
|
||||
#, kde-format
|
||||
msgid "Radio"
|
||||
msgstr "电台"
|
||||
|
||||
#: contents/ui/SearchPage.qml:147
|
||||
#: contents/ui/SearchPage.qml:146
|
||||
#, kde-format
|
||||
msgid "Find music on YouTube Music"
|
||||
msgstr "查找 YouTube Music 中的音乐"
|
||||
+26
-21
@@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: audiotube\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2022-08-27 00:50+0000\n"
|
||||
"POT-Creation-Date: 2022-11-23 00:50+0000\n"
|
||||
"PO-Revision-Date: 2022-05-30 00:47+0000\n"
|
||||
"Last-Translator: Automatically generated\n"
|
||||
"Language-Team: none\n"
|
||||
@@ -43,15 +43,15 @@ msgstr ""
|
||||
msgid "Open in Browser"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/AlbumPage.qml:77 contents/ui/ArtistPage.qml:109
|
||||
#: contents/ui/PlaybackHistory.qml:74 contents/ui/PlaylistPage.qml:67
|
||||
#: contents/ui/AlbumPage.qml:78 contents/ui/ArtistPage.qml:100
|
||||
#: contents/ui/PlaybackHistory.qml:74 contents/ui/PlaylistPage.qml:68
|
||||
#, kde-format
|
||||
msgid "Play Next"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/AlbumPage.qml:82 contents/ui/ArtistPage.qml:115
|
||||
#: contents/ui/PlaybackHistory.qml:79 contents/ui/PlaylistPage.qml:72
|
||||
#: contents/ui/SearchPage.qml:123
|
||||
#: contents/ui/AlbumPage.qml:83 contents/ui/ArtistPage.qml:106
|
||||
#: contents/ui/PlaybackHistory.qml:79 contents/ui/PlaylistPage.qml:73
|
||||
#: contents/ui/SearchPage.qml:122
|
||||
#, kde-format
|
||||
msgid "Add to Playlist"
|
||||
msgstr ""
|
||||
@@ -93,62 +93,67 @@ msgstr ""
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/LibraryPage.qml:27
|
||||
#: contents/ui/LibraryPage.qml:21
|
||||
#, kde-format
|
||||
msgid "Favourites"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/LibraryPage.qml:37 contents/ui/LibraryPage.qml:108
|
||||
#: contents/ui/LibraryPage.qml:31 contents/ui/LibraryPage.qml:187
|
||||
#, kde-format
|
||||
msgid "Show All"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/LibraryPage.qml:42
|
||||
#: contents/ui/LibraryPage.qml:36
|
||||
#, kde-format
|
||||
msgid "Favourite Songs"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/LibraryPage.qml:98
|
||||
#: contents/ui/LibraryPage.qml:177
|
||||
#, kde-format
|
||||
msgid "Most played"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/LibraryPage.qml:113
|
||||
#: contents/ui/LibraryPage.qml:192
|
||||
#, kde-format
|
||||
msgid "Played Songs"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/main.qml:39
|
||||
#: contents/ui/main.qml:49
|
||||
#, kde-format
|
||||
msgid "Back"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/main.qml:73 contents/ui/SearchPage.qml:150
|
||||
#: contents/ui/main.qml:83 contents/ui/SearchPage.qml:149
|
||||
#, kde-format
|
||||
msgid "Search"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/main.qml:85
|
||||
#: contents/ui/main.qml:95
|
||||
#, kde-format
|
||||
msgid "AudioTube"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:92
|
||||
#: contents/ui/MaximizedPlayerPage.qml:105
|
||||
#, kde-format
|
||||
msgid "Now Playing"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:117
|
||||
#: contents/ui/MaximizedPlayerPage.qml:130
|
||||
#, kde-format
|
||||
msgid "Queue"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:222
|
||||
#: contents/ui/MaximizedPlayerPage.qml:155
|
||||
#, kde-format
|
||||
msgid "Lyrics"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:292
|
||||
#, kde-format
|
||||
msgid "Remove Track"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:242
|
||||
#: contents/ui/MaximizedPlayerPage.qml:334
|
||||
#: contents/ui/MinimizedPlayerControls.qml:96
|
||||
#, kde-format
|
||||
msgid "No media playing"
|
||||
@@ -179,17 +184,17 @@ msgstr ""
|
||||
msgid "Unknown"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/SearchPage.qml:117
|
||||
#: contents/ui/SearchPage.qml:116
|
||||
#, kde-format
|
||||
msgid "Play next"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/SearchPage.qml:129
|
||||
#: contents/ui/SearchPage.qml:128
|
||||
#, kde-format
|
||||
msgid "Radio"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/SearchPage.qml:147
|
||||
#: contents/ui/SearchPage.qml:146
|
||||
#, kde-format
|
||||
msgid "Find music on YouTube Music"
|
||||
msgstr ""
|
||||
+1
-1
@@ -3,5 +3,5 @@
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
|
||||
|
||||
ytmusicapi==0.22.0
|
||||
ytmusicapi==0.24.0
|
||||
yt-dlp
|
||||
+8
-7
@@ -16,7 +16,7 @@ add_library(asyncdatabase STATIC
|
||||
)
|
||||
|
||||
target_include_directories(asyncdatabase PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
|
||||
target_link_libraries(asyncdatabase PUBLIC Qt5::Sql)
|
||||
target_link_libraries(asyncdatabase PUBLIC Qt::Sql)
|
||||
|
||||
add_subdirectory(example)
|
||||
|
||||
@@ -39,12 +39,13 @@ add_executable(audiotube
|
||||
)
|
||||
|
||||
target_link_libraries(audiotube
|
||||
Qt5::Core
|
||||
Qt5::Gui
|
||||
Qt5::Qml
|
||||
Qt5::Quick
|
||||
Qt5::QuickControls2
|
||||
Qt5::Svg
|
||||
Qt::Core
|
||||
Qt::Gui
|
||||
Qt::Qml
|
||||
Qt::Quick
|
||||
Qt::QuickControls2
|
||||
Qt::Svg
|
||||
Qt::Widgets
|
||||
KF5::I18n
|
||||
KF5::CoreAddons
|
||||
KF5::Crash
|
||||
|
||||
+6
-1
@@ -45,6 +45,10 @@ QVariant AlbumModel::data(const QModelIndex &index, int role) const
|
||||
return QString::fromStdString(m_album.tracks[index.row()].video_id.value_or(std::string()));
|
||||
case Artists:
|
||||
return QVariant::fromValue(m_album.tracks[index.row()].artists);
|
||||
case ThumbnailUrl:
|
||||
if (!m_album.thumbnails.empty()) {
|
||||
return QString::fromStdString(m_album.thumbnails.front().url);
|
||||
}
|
||||
}
|
||||
|
||||
Q_UNREACHABLE();
|
||||
@@ -57,7 +61,8 @@ QHash<int, QByteArray> AlbumModel::roleNames() const
|
||||
return {
|
||||
{Title, "title"},
|
||||
{VideoId, "videoId"},
|
||||
{Artists, "artists"}
|
||||
{Artists, "artists"},
|
||||
{ThumbnailUrl, "thumbnailUrl"}
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
+2
-1
@@ -24,7 +24,8 @@ public:
|
||||
enum Role {
|
||||
Title = Qt::UserRole + 1,
|
||||
VideoId,
|
||||
Artists
|
||||
Artists,
|
||||
ThumbnailUrl,
|
||||
};
|
||||
|
||||
explicit AlbumModel(QObject *parent = nullptr);
|
||||
|
||||
+21
-1
@@ -28,9 +28,21 @@ ArtistModel::ArtistModel(QObject *parent)
|
||||
std::sort(m_artist.thumbnails.begin(), m_artist.thumbnails.end());
|
||||
|
||||
albums = m_artist.albums ? m_artist.albums->results : std::vector<artist::Artist::Album>();
|
||||
for (auto &album : albums) {
|
||||
std::sort(album.thumbnails.begin(), album.thumbnails.end());
|
||||
}
|
||||
singles = m_artist.singles ? m_artist.singles->results : std::vector<artist::Artist::Single>();
|
||||
for (auto &single : singles) {
|
||||
std::sort(single.thumbnails.begin(), single.thumbnails.end());
|
||||
}
|
||||
songs = m_artist.songs ? m_artist.songs->results : std::vector<artist::Artist::Song>();
|
||||
for (auto &song : songs) {
|
||||
std::sort(song.thumbnails.begin(), song.thumbnails.end());
|
||||
}
|
||||
videos = m_artist.videos ? m_artist.videos->results : std::vector<artist::Artist::Video>();
|
||||
for (auto &video : videos) {
|
||||
std::sort(video.thumbnails.begin(), video.thumbnails.end());
|
||||
}
|
||||
|
||||
// std::span can't know if the data pointer underneath it was changed, so re-create
|
||||
m_view = MultiIterableView(albums, singles, songs, videos);
|
||||
@@ -105,6 +117,13 @@ QVariant ArtistModel::data(const QModelIndex &index, int role) const
|
||||
|
||||
Q_UNREACHABLE();
|
||||
}, m_view[index.row()]);
|
||||
case ThumbnailUrl:
|
||||
return std::visit([&](auto&& item) {
|
||||
if (!item.thumbnails.empty()) {
|
||||
return QString::fromStdString(item.thumbnails.front().url);
|
||||
}
|
||||
return QString();
|
||||
}, m_view[index.row()]);
|
||||
}
|
||||
|
||||
Q_UNREACHABLE();
|
||||
@@ -118,7 +137,8 @@ QHash<int, QByteArray> ArtistModel::roleNames() const
|
||||
{Title, "title"},
|
||||
{Type, "type"},
|
||||
{Artists, "artists"},
|
||||
{VideoId, "videoId"}
|
||||
{VideoId, "videoId"},
|
||||
{ThumbnailUrl, "thumbnailUrl"}
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
+2
-1
@@ -38,7 +38,8 @@ public:
|
||||
Title,
|
||||
Type,
|
||||
Artists,
|
||||
VideoId
|
||||
VideoId,
|
||||
ThumbnailUrl
|
||||
};
|
||||
|
||||
explicit ArtistModel(QObject *parent = nullptr);
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
#include <QJsonArray>
|
||||
#include <QFutureInterface>
|
||||
#include <QCoreApplication>
|
||||
#include <QTimer>
|
||||
|
||||
#include <pybind11/embed.h>
|
||||
|
||||
@@ -55,6 +56,17 @@ AsyncYTMusic::AsyncYTMusic(QObject *parent)
|
||||
connect(this, &AsyncYTMusic::errorOccurred, this, [](const QString &err) {
|
||||
std::cerr << qPrintable(err);
|
||||
});
|
||||
|
||||
QTimer::singleShot(0, [this]() {
|
||||
qDebug() << "Downloading album";
|
||||
downloadPlaylist("https://music.youtube.com/watch?v=8rIjsa85UVk&list=RDAMVM8rIjsa85UVk", [](YtDlDownloadStatus status) {
|
||||
if (!status.finished && status.current_track) {
|
||||
std::cout << *status.current_track << std::endl;
|
||||
} else if (status.finished) {
|
||||
std::cout << "Download finished" << std::endl;
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
//
|
||||
@@ -139,6 +151,22 @@ QFuture<watch::Playlist> AsyncYTMusic::fetchWatchPlaylist(const std::optional<QS
|
||||
});
|
||||
}
|
||||
|
||||
QFuture<Lyrics> AsyncYTMusic::fetchLyrics(const QString &browseId)
|
||||
{
|
||||
return invokeAndCatchOnThread([=, this]() {
|
||||
return m_ytm->get_lyrics(
|
||||
browseId.toStdString()
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
QFuture<void> AsyncYTMusic::downloadPlaylist(const std::string &url, std::function<void (YtDlDownloadStatus)> progressHook)
|
||||
{
|
||||
return invokeAndCatchOnThread([=, this]() {
|
||||
m_ytm->download_playlist(url, progressHook);
|
||||
});
|
||||
}
|
||||
|
||||
YTMusicThread &YTMusicThread::instance()
|
||||
{
|
||||
static YTMusicThread thread;
|
||||
|
||||
+11
-3
@@ -56,7 +56,7 @@ template <typename T, typename QObjectDerivedType, typename Function>
|
||||
void connectFuture(const QFuture<T> &future, QObjectDerivedType *self, const Function &fun) {
|
||||
auto watcher = std::make_shared<QFutureWatcher<T>>();
|
||||
watcher->setFuture(future);
|
||||
QObject::connect(watcher.get(), &QFutureWatcherBase::finished, self, [self, watcher, fun, future] {
|
||||
QObject::connect(watcher.get(), &QFutureWatcherBase::finished, self, [self, watcher, fun, future]() {
|
||||
if constexpr (std::is_same_v<void, T>) {
|
||||
if constexpr (std::is_member_function_pointer_v<Function>) {
|
||||
(self->*fun)();
|
||||
@@ -121,6 +121,10 @@ public:
|
||||
QFuture<watch::Playlist> fetchWatchPlaylist(const std::optional<QString> &videoId = std::nullopt ,
|
||||
const std::optional<QString> &playlistId = std::nullopt);
|
||||
|
||||
QFuture<Lyrics> fetchLyrics(const QString &browseId);
|
||||
|
||||
QFuture<void> downloadPlaylist(const std::string &url, std::function<void(YtDlDownloadStatus)> progressHook);
|
||||
|
||||
Q_SIGNAL void errorOccurred(const QString &error);
|
||||
|
||||
protected:
|
||||
@@ -134,8 +138,12 @@ private:
|
||||
auto interface = std::make_shared<QFutureInterface<ReturnType>>();
|
||||
QMetaObject::invokeMethod(this, [=, this]() {
|
||||
try {
|
||||
ReturnType val = fun();
|
||||
interface->reportResult(val);
|
||||
if constexpr (!std::is_same_v<std::invoke_result_t<Func>, void>) {
|
||||
ReturnType val = fun();
|
||||
interface->reportResult(val);
|
||||
} else {
|
||||
fun();
|
||||
}
|
||||
interface->reportFinished();
|
||||
} catch (const std::exception &err) {
|
||||
interface->reportFinished();
|
||||
|
||||
@@ -56,12 +56,13 @@ Kirigami.ScrollablePage {
|
||||
required property string title
|
||||
required property string videoId
|
||||
required property var artists
|
||||
required property string thumbnailUrl
|
||||
|
||||
RowLayout {
|
||||
Layout.fillHeight: true
|
||||
Kirigami.Icon {
|
||||
Layout.fillHeight: true
|
||||
source: "emblem-music-symbolic"
|
||||
source: delegateItem.thumbnailUrl
|
||||
}
|
||||
|
||||
Controls.Label {
|
||||
|
||||
@@ -78,22 +78,13 @@ Kirigami.ScrollablePage {
|
||||
required property int index
|
||||
required property var artists
|
||||
required property string videoId
|
||||
required property string thumbnailUrl
|
||||
|
||||
RowLayout {
|
||||
Layout.fillHeight: true
|
||||
Kirigami.Icon {
|
||||
Layout.fillHeight: true
|
||||
source: {
|
||||
switch (type) {
|
||||
case ArtistModel.Album:
|
||||
return "media-album-cover"
|
||||
case ArtistModel.Single:
|
||||
case ArtistModel.Song:
|
||||
return "emblem-music-symbolic"
|
||||
case ArtistModel.Video:
|
||||
return "emblem-videos-symbolic"
|
||||
}
|
||||
}
|
||||
source: delegateItem.thumbnailUrl
|
||||
}
|
||||
|
||||
Controls.Label {
|
||||
|
||||
+202
-43
@@ -10,16 +10,10 @@ import org.kde.kirigami 2.14 as Kirigami
|
||||
import org.kde.ytmusic 1.0
|
||||
|
||||
Kirigami.ScrollablePage {
|
||||
|
||||
objectName: "libraryPage"
|
||||
|
||||
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
|
||||
@@ -46,6 +40,7 @@ Kirigami.ScrollablePage {
|
||||
Controls.ScrollView {
|
||||
Layout.fillWidth: true
|
||||
RowLayout {
|
||||
spacing: 20
|
||||
Repeater {
|
||||
Layout.fillWidth: true
|
||||
model: Library.favourites
|
||||
@@ -57,41 +52,125 @@ Kirigami.ScrollablePage {
|
||||
|
||||
Layout.fillWidth: false
|
||||
Layout.maximumWidth: 200
|
||||
Kirigami.Card {
|
||||
id: card
|
||||
Layout.preferredHeight: 200
|
||||
|
||||
onClicked: play(delegateItem.videoId)
|
||||
|
||||
ThumbnailSource {
|
||||
id: thumbnailSource
|
||||
videoId: delegateItem.videoId
|
||||
}
|
||||
|
||||
header: Image {
|
||||
sourceSize: "200x200"
|
||||
source: thumbnailSource.cachedPath
|
||||
fillMode: Image.PreserveAspectCrop
|
||||
asynchronous: true
|
||||
}
|
||||
|
||||
actions: [
|
||||
Kirigami.Action {
|
||||
icon.name: "delete"
|
||||
onTriggered: Library.removeFavourite(delegateItem.videoId)
|
||||
Kirigami.ShadowedRectangle {
|
||||
id: favCover
|
||||
MouseArea {
|
||||
id: favArea
|
||||
anchors.fill: parent
|
||||
onClicked: play(delegateItem.videoId)
|
||||
hoverEnabled: !Kirigami.Settings.hasTransientTouchInput
|
||||
onEntered: {
|
||||
if (!Kirigami.Settings.hasTransientTouchInput)
|
||||
favSelected.visible = true
|
||||
}
|
||||
|
||||
]
|
||||
onExited: favSelected.visible = false
|
||||
|
||||
}
|
||||
Layout.margins: 5
|
||||
|
||||
width: 200
|
||||
height: 200
|
||||
radius: 10
|
||||
shadow.size: 15
|
||||
shadow.xOffset: 5
|
||||
shadow.yOffset: 5
|
||||
shadow.color: Qt.rgba(0, 0, 0, 0.2)
|
||||
Rectangle {
|
||||
width: 200
|
||||
height: 200
|
||||
|
||||
color: "transparent"
|
||||
|
||||
//this Rectangle is needed to keep the source image's fillMode
|
||||
ThumbnailSource {
|
||||
id: thumbnailSource
|
||||
videoId: delegateItem.videoId
|
||||
}
|
||||
Rectangle {
|
||||
|
||||
id: imageSource
|
||||
|
||||
anchors.fill: parent
|
||||
Image {
|
||||
anchors.fill: parent
|
||||
source: thumbnailSource.cachedPath
|
||||
fillMode: Image.PreserveAspectCrop
|
||||
asynchronous: true
|
||||
}
|
||||
visible: false
|
||||
|
||||
layer.enabled: true
|
||||
}
|
||||
|
||||
RoundedMask {
|
||||
anchors.fill: parent
|
||||
colorSource: imageSource
|
||||
}
|
||||
|
||||
Controls.ToolButton {
|
||||
anchors.right: parent.right
|
||||
anchors.bottom: parent.bottom
|
||||
icon.name: "delete"
|
||||
onClicked: Library.removeFavourite(
|
||||
delegateItem.videoId)
|
||||
z: 2000
|
||||
}
|
||||
Rectangle {
|
||||
id: favSelected
|
||||
|
||||
Rectangle {
|
||||
anchors.fill: parent
|
||||
color: Kirigami.Theme.hoverColor
|
||||
radius: 10
|
||||
opacity: 0.2
|
||||
|
||||
}
|
||||
|
||||
Rectangle {
|
||||
height: 45
|
||||
width: 45
|
||||
radius: 50
|
||||
color: Kirigami.Theme.hoverColor
|
||||
opacity: 0.8
|
||||
anchors.centerIn: parent
|
||||
|
||||
|
||||
}
|
||||
Kirigami.Icon {
|
||||
x:100-0.43*height
|
||||
y:100-0.5*height
|
||||
color: "white"
|
||||
source: "media-playback-start"
|
||||
}
|
||||
visible: false
|
||||
anchors.fill: parent
|
||||
radius: 9
|
||||
border.color: Kirigami.Theme.hoverColor
|
||||
border.width: 2
|
||||
color: "transparent"
|
||||
}
|
||||
}
|
||||
}
|
||||
Controls.Label {
|
||||
Layout.maximumWidth: 200
|
||||
leftPadding: 5
|
||||
|
||||
text: delegateItem.title
|
||||
elide: Qt.ElideRight
|
||||
}
|
||||
Item {
|
||||
height: 5
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Item {
|
||||
height: 20
|
||||
}
|
||||
|
||||
RowLayout {
|
||||
Layout.fillWidth: true
|
||||
Kirigami.Heading {
|
||||
@@ -117,6 +196,7 @@ Kirigami.ScrollablePage {
|
||||
Controls.ScrollView {
|
||||
Layout.fillWidth: true
|
||||
RowLayout {
|
||||
spacing: 20
|
||||
Repeater {
|
||||
Layout.fillWidth: true
|
||||
model: Library.mostPlayed
|
||||
@@ -128,29 +208,108 @@ Kirigami.ScrollablePage {
|
||||
|
||||
Layout.fillWidth: false
|
||||
Layout.maximumWidth: 200
|
||||
Kirigami.Card {
|
||||
id: mpcard
|
||||
Layout.preferredHeight: 200
|
||||
|
||||
onClicked: play(mpdelegateItem.videoId)
|
||||
Kirigami.ShadowedRectangle {
|
||||
id: recCover
|
||||
MouseArea {
|
||||
id: recArea
|
||||
anchors.fill: parent
|
||||
onClicked: play(mpdelegateItem.videoId)
|
||||
hoverEnabled: !Kirigami.Settings.hasTransientTouchInput
|
||||
onEntered: {
|
||||
if (!Kirigami.Settings.hasTransientTouchInput)
|
||||
recSelected.visible = true
|
||||
}
|
||||
onExited: recSelected.visible = false
|
||||
|
||||
ThumbnailSource {
|
||||
id: mpthumbnailSource
|
||||
videoId: mpdelegateItem.videoId
|
||||
}
|
||||
Layout.margins: 5
|
||||
|
||||
header: Image {
|
||||
sourceSize: "200x200"
|
||||
source: mpthumbnailSource.cachedPath
|
||||
fillMode: Image.PreserveAspectCrop
|
||||
asynchronous: true
|
||||
width: 200
|
||||
height: 200
|
||||
radius: 10
|
||||
shadow.size: 15
|
||||
shadow.xOffset: 5
|
||||
shadow.yOffset: 5
|
||||
shadow.color: Qt.rgba(0, 0, 0, 0.2)
|
||||
Rectangle {
|
||||
width: 200
|
||||
height: 200
|
||||
|
||||
color: "transparent"
|
||||
|
||||
//this Rectangle is needed to keep the source image's fillMode
|
||||
|
||||
ThumbnailSource {
|
||||
id: mpthumbnailSource
|
||||
videoId: mpdelegateItem.videoId
|
||||
}
|
||||
Rectangle {
|
||||
|
||||
id: recImageSource
|
||||
|
||||
anchors.fill: parent
|
||||
Image {
|
||||
anchors.fill: parent
|
||||
source: mpthumbnailSource.cachedPath
|
||||
fillMode: Image.PreserveAspectCrop
|
||||
asynchronous: true
|
||||
}
|
||||
visible: false
|
||||
|
||||
layer.enabled: true
|
||||
}
|
||||
|
||||
RoundedMask {
|
||||
anchors.fill: parent
|
||||
colorSource: recImageSource
|
||||
}
|
||||
|
||||
Rectangle {
|
||||
id: recSelected
|
||||
|
||||
Rectangle {
|
||||
anchors.fill: parent
|
||||
color: Kirigami.Theme.hoverColor
|
||||
radius: 10
|
||||
opacity: 0.2
|
||||
}
|
||||
Rectangle {
|
||||
height: 45
|
||||
width: 45
|
||||
radius: 50
|
||||
color: Kirigami.Theme.hoverColor
|
||||
opacity: 0.8
|
||||
anchors.centerIn: parent
|
||||
|
||||
|
||||
}
|
||||
Kirigami.Icon {
|
||||
x:100-0.43*height
|
||||
y:100-0.5*height
|
||||
color: "white"
|
||||
source: "media-playback-start"
|
||||
}
|
||||
visible: false
|
||||
anchors.fill: parent
|
||||
|
||||
radius: 9
|
||||
|
||||
border.color: Kirigami.Theme.hoverColor
|
||||
border.width: 2
|
||||
color: "transparent"
|
||||
}
|
||||
}
|
||||
}
|
||||
Controls.Label {
|
||||
Layout.maximumWidth: 200
|
||||
leftPadding:5
|
||||
text: mpdelegateItem.title
|
||||
elide: Qt.ElideRight
|
||||
}
|
||||
Item {
|
||||
height: 5
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,15 +21,18 @@ Item {
|
||||
signal requestClose()
|
||||
|
||||
// background image
|
||||
|
||||
|
||||
Item {
|
||||
anchors.fill: parent
|
||||
|
||||
|
||||
Rectangle {
|
||||
anchors.fill: parent
|
||||
color: Qt.rgba(25, 25, 30, 1)
|
||||
}
|
||||
|
||||
Image {
|
||||
scale: 1.8
|
||||
anchors.fill: parent
|
||||
asynchronous: true
|
||||
|
||||
@@ -52,6 +55,16 @@ Item {
|
||||
cached: true
|
||||
radius: 100
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
Rectangle {
|
||||
anchors.fill: parent
|
||||
gradient: Gradient{
|
||||
GradientStop { position: 0.0; color: "transparent" }
|
||||
GradientStop { position: 1.1; color: "black" }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -131,9 +144,37 @@ Item {
|
||||
visible: swipeView.currentIndex == 1
|
||||
}
|
||||
}
|
||||
ToolButton {
|
||||
id: lyricsTab
|
||||
padding: Kirigami.Units.largeSpacing
|
||||
onClicked: swipeView.setCurrentIndex(2)
|
||||
Layout.preferredHeight: Kirigami.Units.gridUnit * 2
|
||||
Layout.preferredWidth: Kirigami.Units.gridUnit * 9
|
||||
|
||||
contentItem: Label {
|
||||
text: i18n("Lyrics")
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
verticalAlignment: Text.AlignVCenter
|
||||
elide: Text.ElideRight
|
||||
color: "white"
|
||||
}
|
||||
|
||||
// selection indicator
|
||||
Rectangle {
|
||||
anchors.top: parent.top
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
color: Kirigami.Theme.highlightColor
|
||||
height: 1
|
||||
visible: swipeView.currentIndex == 2
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// tabs
|
||||
Item {
|
||||
height: 30
|
||||
}
|
||||
SwipeView {
|
||||
id: swipeView
|
||||
property double specWidth: {
|
||||
@@ -151,84 +192,135 @@ Item {
|
||||
|
||||
// music art
|
||||
Item {
|
||||
|
||||
height: swipeView.width
|
||||
width: swipeView.height
|
||||
|
||||
Image {
|
||||
Kirigami.ShadowedRectangle {
|
||||
anchors.centerIn: parent
|
||||
width: swipeView.specWidth
|
||||
height: swipeView.specWidth
|
||||
width: swipeView.specWidth
|
||||
height: swipeView.specWidth
|
||||
|
||||
asynchronous: true
|
||||
mipmap: true
|
||||
|
||||
source: info.thumbnail
|
||||
color: "transparent"
|
||||
radius: 10
|
||||
shadow.size: 15
|
||||
shadow.xOffset: 5
|
||||
shadow.yOffset: 5
|
||||
shadow.color: Qt.rgba(0, 0, 0, 0.2)
|
||||
Rectangle {
|
||||
width: parent.width
|
||||
height: parent.height
|
||||
|
||||
sourceSize {
|
||||
width: 512
|
||||
height: 512
|
||||
color: "transparent"
|
||||
|
||||
//this Rectangle is needed to keep the source image's fillMode
|
||||
Rectangle {
|
||||
|
||||
id: imageSource
|
||||
|
||||
anchors.fill: parent
|
||||
Image {
|
||||
anchors.fill: parent
|
||||
source: info.thumbnail
|
||||
fillMode: Image.PreserveAspectCrop
|
||||
asynchronous: true
|
||||
}
|
||||
visible: false
|
||||
|
||||
layer.enabled: true
|
||||
}
|
||||
|
||||
RoundedMask {
|
||||
anchors.fill: parent
|
||||
colorSource: imageSource
|
||||
}
|
||||
}
|
||||
|
||||
fillMode: Image.PreserveAspectCrop
|
||||
}
|
||||
}
|
||||
|
||||
// playlist
|
||||
ListView {
|
||||
id: playlistView
|
||||
ColumnLayout{
|
||||
width: swipeView.width
|
||||
height: swipeView.height
|
||||
clip: true
|
||||
|
||||
Kirigami.Theme.colorSet: Kirigami.Theme.Complementary
|
||||
Kirigami.Theme.inherit: false
|
||||
ScrollView {
|
||||
Layout.maximumWidth: 900
|
||||
Layout.fillWidth: true
|
||||
Layout.fillHeight: true
|
||||
Layout.alignment: Qt.AlignHCenter
|
||||
|
||||
BusyIndicator {
|
||||
anchors.centerIn: parent
|
||||
visible: UserPlaylistModel.loading || UserPlaylistModel.loading
|
||||
}
|
||||
ListView {
|
||||
clip: true
|
||||
|
||||
model: UserPlaylistModel
|
||||
Kirigami.Theme.colorSet: Kirigami.Theme.Complementary
|
||||
Kirigami.Theme.inherit: false
|
||||
|
||||
delegate: Kirigami.SwipeListItem {
|
||||
id: delegateItem
|
||||
required property string title
|
||||
required property string videoId
|
||||
required property string artists
|
||||
required property bool isCurrent
|
||||
|
||||
backgroundColor: 'transparent'
|
||||
highlighted: isCurrent
|
||||
onClicked: UserPlaylistModel.skipTo(videoId)
|
||||
|
||||
ColumnLayout {
|
||||
Layout.fillWidth: true
|
||||
Kirigami.Heading {
|
||||
elide: Text.ElideRight
|
||||
Layout.fillWidth: true
|
||||
level: 2
|
||||
text: title
|
||||
BusyIndicator {
|
||||
anchors.centerIn: parent
|
||||
visible: UserPlaylistModel.loading || UserPlaylistModel.loading
|
||||
}
|
||||
|
||||
Label {
|
||||
elide: Text.ElideRight
|
||||
Layout.fillWidth: true
|
||||
text: artists
|
||||
model: UserPlaylistModel
|
||||
|
||||
delegate: Kirigami.SwipeListItem {
|
||||
id: delegateItem
|
||||
required property string title
|
||||
required property string videoId
|
||||
required property string artists
|
||||
required property bool isCurrent
|
||||
|
||||
backgroundColor: 'transparent'
|
||||
highlighted: isCurrent
|
||||
onClicked: UserPlaylistModel.skipTo(videoId)
|
||||
|
||||
ColumnLayout {
|
||||
Layout.fillWidth: true
|
||||
Kirigami.Heading {
|
||||
elide: Text.ElideRight
|
||||
Layout.fillWidth: true
|
||||
level: 2
|
||||
text: title
|
||||
}
|
||||
|
||||
Label {
|
||||
elide: Text.ElideRight
|
||||
Layout.fillWidth: true
|
||||
text: artists
|
||||
}
|
||||
}
|
||||
|
||||
actions: [
|
||||
Kirigami.Action {
|
||||
text: i18n("Remove Track")
|
||||
icon.name: "list-remove"
|
||||
icon.color: "white"
|
||||
onTriggered: UserPlaylistModel.remove(delegateItem.videoId)
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
ColumnLayout{
|
||||
width: swipeView.width
|
||||
height: swipeView.height
|
||||
ScrollView {
|
||||
Layout.maximumWidth: 900
|
||||
|
||||
actions: [
|
||||
Kirigami.Action {
|
||||
text: i18n("Remove Track")
|
||||
icon.name: "list-remove"
|
||||
icon.color: "white"
|
||||
onTriggered: UserPlaylistModel.remove(delegateItem.videoId)
|
||||
}
|
||||
]
|
||||
Layout.fillWidth: true
|
||||
Layout.fillHeight: true
|
||||
Layout.alignment: Qt.AlignHCenter
|
||||
clip: true
|
||||
|
||||
//contentY: audio.position / audio.duration
|
||||
|
||||
Label {
|
||||
padding: 20
|
||||
text: UserPlaylistModel.lyrics
|
||||
color: "white"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
ColumnLayout {
|
||||
id: bottomPlayerControls
|
||||
Layout.topMargin: Kirigami.Units.largeSpacing
|
||||
@@ -332,10 +424,21 @@ Item {
|
||||
Layout.maximumWidth: height
|
||||
Layout.preferredWidth: height
|
||||
|
||||
onClicked: if (favouriteWatcher)
|
||||
favouriteWatcher.isFavourite
|
||||
? Library.removeFavourite(info.videoId)
|
||||
: Library.addFavourite(info.videoId, info.title)
|
||||
onClicked: {
|
||||
if (favouriteWatcher) {
|
||||
if (favouriteWatcher.isFavourite) {
|
||||
Library.removeFavourite(info.videoId)
|
||||
// This would insert slightly ugly data into the database, but let's hope the song is already saved
|
||||
} else {
|
||||
let index = UserPlaylistModel.index(UserPlaylistModel.currentIndex, 0)
|
||||
let videoId = UserPlaylistModel.data(index, UserPlaylistModel.VideoId)
|
||||
let title = UserPlaylistModel.data(index, UserPlaylistModel.Title)
|
||||
let artist = UserPlaylistModel.data(index, UserPlaylistModel.Artists)
|
||||
let album = UserPlaylistModel.data(index, UserPlaylistModel.Album)
|
||||
Library.addFavourite(videoId, title, artist, album)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
icon.name: favouriteWatcher ? (favouriteWatcher.isFavourite ? "starred-symbolic" : "non-starred-symbolic") : ""
|
||||
icon.width: Kirigami.Units.gridUnit * 1.5
|
||||
|
||||
@@ -96,7 +96,14 @@ Flickable {
|
||||
|
||||
onSongChanged: audio.play()
|
||||
videoId: UserPlaylistModel.currentVideoId
|
||||
onTitleChanged: Library.addPlaybackHistoryItem(info.videoId, info.title)
|
||||
onTitleChanged: {
|
||||
let index = UserPlaylistModel.index(UserPlaylistModel.currentIndex, 0)
|
||||
let videoId = UserPlaylistModel.data(index, UserPlaylistModel.VideoId)
|
||||
let title = UserPlaylistModel.data(index, UserPlaylistModel.Title)
|
||||
let artist = UserPlaylistModel.data(index, UserPlaylistModel.Artists)
|
||||
let album = UserPlaylistModel.data(index, UserPlaylistModel.Album)
|
||||
Library.addPlaybackHistoryItem(videoId, title, artist, album)
|
||||
}
|
||||
}
|
||||
|
||||
property var audioPlayer: Audio {
|
||||
|
||||
@@ -46,12 +46,13 @@ Kirigami.ScrollablePage {
|
||||
required property string title
|
||||
required property string videoId
|
||||
required property var artists
|
||||
required property string thumbnailUrl
|
||||
|
||||
RowLayout {
|
||||
Layout.fillHeight: true
|
||||
Kirigami.Icon {
|
||||
Layout.fillHeight: true
|
||||
source: "emblem-music-symbolic"
|
||||
source: delegateItem.thumbnailUrl
|
||||
}
|
||||
|
||||
Controls.Label {
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
// SPDX-FileCopyrightText: Mathis Brüchert <mbb@kaidan.im>
|
||||
//
|
||||
// SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
|
||||
|
||||
import QtQuick 2.15
|
||||
|
||||
Rectangle {
|
||||
id: mask
|
||||
|
||||
radius: 10
|
||||
layer.enabled: true
|
||||
layer.samplerName: "maskSource"
|
||||
property var colorSource
|
||||
|
||||
layer.effect: ShaderEffect {
|
||||
property var colorSource: mask.colorSource
|
||||
fragmentShader: "
|
||||
uniform lowp sampler2D colorSource;
|
||||
uniform lowp sampler2D maskSource;
|
||||
uniform lowp float qt_Opacity;
|
||||
varying highp vec2 qt_TexCoord0;
|
||||
void main() {
|
||||
gl_FragColor = texture2D(colorSource, qt_TexCoord0) * texture2D(maskSource, qt_TexCoord0).a * qt_Opacity;
|
||||
}"
|
||||
}
|
||||
}
|
||||
@@ -82,32 +82,31 @@ Kirigami.ScrollablePage {
|
||||
required property int type
|
||||
required property string videoId
|
||||
required property var artists
|
||||
required property string artistsDisplayString
|
||||
required property string radioPlaylistId
|
||||
required property string thumbnailUrl
|
||||
|
||||
RowLayout {
|
||||
Layout.fillHeight: true
|
||||
Kirigami.Icon {
|
||||
Layout.fillHeight: true
|
||||
source: {
|
||||
switch (type) {
|
||||
case SearchModel.Artist:
|
||||
return "view-media-artist"
|
||||
case SearchModel.Album:
|
||||
return "media-album-cover"
|
||||
case SearchModel.Playlist:
|
||||
return "view-media-playlist"
|
||||
case SearchModel.Song:
|
||||
return "emblem-music-symbolic"
|
||||
case SearchModel.Video:
|
||||
return "emblem-videos-symbolic"
|
||||
}
|
||||
}
|
||||
source: delegateItem.thumbnailUrl
|
||||
|
||||
}
|
||||
|
||||
Controls.Label {
|
||||
Layout.fillWidth: true
|
||||
text: title
|
||||
elide: Qt.ElideRight
|
||||
ColumnLayout {
|
||||
Controls.Label {
|
||||
Layout.fillWidth: true
|
||||
text: title
|
||||
elide: Qt.ElideRight
|
||||
}
|
||||
|
||||
Controls.Label {
|
||||
Layout.fillWidth: true
|
||||
visible: delegateItem.artistsDisplayString
|
||||
color: Kirigami.Theme.disabledTextColor
|
||||
text: delegateItem.artistsDisplayString
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -115,13 +114,13 @@ Kirigami.ScrollablePage {
|
||||
Kirigami.Action {
|
||||
icon.name: "go-next"
|
||||
text: i18n("Play next")
|
||||
visible: delegateItem.type === SearchModel.Song || delegateItem.type == SearchModel.Video
|
||||
visible: delegateItem.type === SearchModel.Song || delegateItem.type === SearchModel.Video
|
||||
onTriggered: UserPlaylistModel.playNext(delegateItem.videoId, delegateItem.title, delegateItem.artists)
|
||||
},
|
||||
Kirigami.Action {
|
||||
icon.name: "media-playlist-append"
|
||||
text: i18n("Add to Playlist")
|
||||
visible: delegateItem.type === SearchModel.Song || delegateItem.type == SearchModel.Video
|
||||
visible: delegateItem.type === SearchModel.Song || delegateItem.type === SearchModel.Video
|
||||
onTriggered: UserPlaylistModel.append(delegateItem.videoId, delegateItem.title, delegateItem.artists)
|
||||
},
|
||||
Kirigami.Action {
|
||||
|
||||
+171
-17
@@ -17,6 +17,16 @@ Kirigami.ApplicationWindow {
|
||||
property bool wideScreen: width >= 600
|
||||
property bool showSearch: false // only applicable if not widescreen
|
||||
|
||||
// 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
|
||||
|
||||
visible: pageStack.currentItem.objectName == "libraryPage"
|
||||
&& pageStack.layers.depth == 1
|
||||
}
|
||||
|
||||
header: Controls.Control {
|
||||
padding: Kirigami.Units.largeSpacing
|
||||
|
||||
@@ -117,38 +127,182 @@ Kirigami.ApplicationWindow {
|
||||
|
||||
Kirigami.SearchField {
|
||||
id: searchField
|
||||
delaySearch: true
|
||||
|
||||
autoAccept: false
|
||||
selectByMouse: true
|
||||
onPressed: {
|
||||
popup.open()
|
||||
}
|
||||
|
||||
|
||||
property alias popup: popup
|
||||
|
||||
property var filterExpression: new RegExp(`.*${searchField.text}.*`, "i")
|
||||
|
||||
Controls.Popup {
|
||||
padding: 1
|
||||
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)
|
||||
? Math.min(completionList.count * Kirigami.Units.gridUnit * 2 + Kirigami.Units.gridUnit * 2 + recents.implicitHeight, 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()
|
||||
ColumnLayout {
|
||||
width: popup.width
|
||||
|
||||
Controls.ScrollView {
|
||||
id: recents
|
||||
|
||||
Layout.fillWidth: true
|
||||
Layout.maximumWidth: popup.width - 23
|
||||
|
||||
visible: searchField.text && recentsRepeater.count > 0
|
||||
|
||||
leftPadding: 10
|
||||
topPadding: 10
|
||||
Controls.ScrollBar.horizontal.policy: Controls.ScrollBar.AlwaysOff
|
||||
RowLayout {
|
||||
spacing: 15
|
||||
Layout.fillWidth: true
|
||||
Layout.maximumWidth: popup.width - 23
|
||||
|
||||
Repeater {
|
||||
id: recentsRepeater
|
||||
Layout.fillWidth: true
|
||||
model: SortFilterModel {
|
||||
filterRole: PlaybackHistoryModel.Title
|
||||
filterRegularExpression: searchField.filterExpression
|
||||
sourceModel: Library.playbackHistory
|
||||
}
|
||||
delegate: ColumnLayout {
|
||||
Layout.alignment: Qt.AlignTop
|
||||
id: mpdelegateItem
|
||||
required property string title
|
||||
required property string artists
|
||||
required property string videoId
|
||||
|
||||
width: 100
|
||||
Layout.maximumWidth: 70
|
||||
|
||||
Kirigami.ShadowedRectangle {
|
||||
id: recCover
|
||||
MouseArea {
|
||||
id: recArea
|
||||
anchors.fill: parent
|
||||
onClicked: play(mpdelegateItem.videoId)
|
||||
hoverEnabled: !Kirigami.Settings.hasTransientTouchInput
|
||||
onEntered: {
|
||||
if (!Kirigami.Settings.hasTransientTouchInput)
|
||||
recSelected.visible = true
|
||||
}
|
||||
onExited: recSelected.visible = false
|
||||
|
||||
}
|
||||
Layout.margins: 5
|
||||
|
||||
width: 70
|
||||
height: 70
|
||||
radius: 10
|
||||
shadow.size: 15
|
||||
shadow.xOffset: 5
|
||||
shadow.yOffset: 5
|
||||
shadow.color: Qt.rgba(0, 0, 0, 0.2)
|
||||
Rectangle {
|
||||
width: 70
|
||||
height: 70
|
||||
|
||||
color: "transparent"
|
||||
|
||||
//this Rectangle is needed to keep the source image's fillMode
|
||||
|
||||
ThumbnailSource {
|
||||
id: mpthumbnailSource
|
||||
videoId: mpdelegateItem.videoId
|
||||
}
|
||||
Rectangle {
|
||||
|
||||
id: recImageSource
|
||||
|
||||
anchors.fill: parent
|
||||
Image {
|
||||
anchors.fill: parent
|
||||
source: mpthumbnailSource.cachedPath
|
||||
fillMode: Image.PreserveAspectCrop
|
||||
asynchronous: true
|
||||
}
|
||||
visible: false
|
||||
|
||||
layer.enabled: true
|
||||
}
|
||||
|
||||
RoundedMask {
|
||||
anchors.fill: parent
|
||||
colorSource: recImageSource
|
||||
}
|
||||
|
||||
Rectangle {
|
||||
id: recSelected
|
||||
|
||||
Rectangle {
|
||||
anchors.fill: parent
|
||||
color: Kirigami.Theme.hoverColor
|
||||
radius: 10
|
||||
opacity: 0.2
|
||||
}
|
||||
|
||||
visible: false
|
||||
anchors.fill: parent
|
||||
|
||||
radius: 9
|
||||
|
||||
border.color: Kirigami.Theme.hoverColor
|
||||
border.width: 2
|
||||
color: "transparent"
|
||||
}
|
||||
}
|
||||
}
|
||||
Controls.Label {
|
||||
leftPadding:5
|
||||
Layout.maximumWidth: 70
|
||||
text: mpdelegateItem.title
|
||||
elide: Qt.ElideRight
|
||||
wrapMode: Text.WordWrap
|
||||
Layout.maximumHeight: 40
|
||||
}
|
||||
Item {
|
||||
height: 5
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Kirigami.Separator{
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
Repeater {
|
||||
Layout.fillWidth: true
|
||||
|
||||
id: completionList
|
||||
model: SortFilterModel {
|
||||
sourceModel: Library.searches
|
||||
filterRegularExpression: searchField.filterExpression
|
||||
}
|
||||
|
||||
delegate: Controls.ItemDelegate {
|
||||
Kirigami.Theme.colorSet: Kirigami.Theme.Window
|
||||
Kirigami.Theme.inherit: false
|
||||
Layout.fillWidth: true
|
||||
|
||||
id: completionDelegate
|
||||
width: parent.width
|
||||
height: Kirigami.Units.gridUnit * 2
|
||||
text: model.display
|
||||
onClicked: {
|
||||
searchField.text = model.display
|
||||
searchField.accepted()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+34
-16
@@ -44,9 +44,9 @@ FavouritesModel *Library::favourites()
|
||||
return new FavouritesModel(std::move(future), this);
|
||||
}
|
||||
|
||||
void Library::addFavourite(const QString &videoId, const QString &title)
|
||||
void Library::addFavourite(const QString &videoId, const QString &title, const QString &artist, const QString &album)
|
||||
{
|
||||
connectFuture(addSong(videoId, title), this, [=, this] {
|
||||
connectFuture(addSong(videoId, title, artist, album), this, [=, this] {
|
||||
connectFuture(m_database->execute("insert or ignore into favourites (video_id) values (?)", videoId), this, &Library::favouritesChanged);
|
||||
});
|
||||
}
|
||||
@@ -66,7 +66,7 @@ FavouriteWatcher *Library::favouriteWatcher(const QString &videoId)
|
||||
|
||||
SearchHistoryModel *Library::searches()
|
||||
{
|
||||
return new SearchHistoryModel(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 distinct (search_query) from searches order by search_id desc"), this);
|
||||
}
|
||||
|
||||
void Library::addSearch(const QString &text)
|
||||
@@ -80,9 +80,9 @@ PlaybackHistoryModel *Library::playbackHistory()
|
||||
return new PlaybackHistoryModel(std::move(future), this);
|
||||
}
|
||||
|
||||
void Library::addPlaybackHistoryItem(const QString &videoId, const QString &title)
|
||||
void Library::addPlaybackHistoryItem(const QString &videoId, const QString &title, const QString &artist, const QString &album)
|
||||
{
|
||||
connectFuture(addSong(videoId, title), this, [=, this] {
|
||||
connectFuture(addSong(videoId, title, artist, album), 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);
|
||||
});
|
||||
@@ -100,9 +100,10 @@ QNetworkAccessManager &Library::nam()
|
||||
return m_networkImageCacher;
|
||||
}
|
||||
|
||||
QFuture<void> Library::addSong(const QString &videoId, const QString &title)
|
||||
QFuture<void> Library::addSong(const QString &videoId, const QString &title, const QString &artist, const QString &album)
|
||||
{
|
||||
return m_database->execute("insert or ignore into songs (video_id, title, artist, album) values (?, ?, null, null)", videoId, title);
|
||||
// replace is used here to update songs from times when we didn't store artist and album
|
||||
return m_database->execute("insert or replace into songs (video_id, title, artist, album) values (?, ?, ?, ?)", videoId, title, artist, album);
|
||||
}
|
||||
|
||||
void ThumbnailSource::setVideoId(const QString &id) {
|
||||
@@ -122,15 +123,32 @@ void ThumbnailSource::setVideoId(const QString &id) {
|
||||
return;
|
||||
}
|
||||
|
||||
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));
|
||||
});
|
||||
auto *reply = Library::instance().nam().get(QNetworkRequest(QUrl("https://i.ytimg.com/vi_webp/" % m_videoId % "/maxresdefault.webp")));
|
||||
|
||||
auto storeResult = [this, cacheLocation](QNetworkReply *reply) {
|
||||
QFile file(cacheLocation);
|
||||
file.open(QFile::WriteOnly);
|
||||
file.write(reply->readAll());
|
||||
setCachedPath(QUrl::fromLocalFile(cacheLocation));
|
||||
|
||||
reply->deleteLater();
|
||||
};
|
||||
|
||||
connect(reply, &QNetworkReply::errorOccurred, this, [this, storeResult](auto error) {
|
||||
if (error == QNetworkReply::NetworkError::ContentNotFoundError) {
|
||||
qDebug() << "Naive thumbnail resolution failed, falling back to yt-dlp (slower)";
|
||||
|
||||
connectFuture(YTMusicThread::instance()->extractVideoInfo(m_videoId), this, [this, storeResult](auto info) {
|
||||
auto *reply = Library::instance().nam().get(QNetworkRequest(QUrl(QString::fromStdString(info.thumbnail))));
|
||||
connect(reply, &QNetworkReply::finished, this, [reply, storeResult]() {
|
||||
storeResult(reply);
|
||||
});
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
connect(reply, &QNetworkReply::finished, this, [reply, storeResult]() {
|
||||
storeResult(reply);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
+6
-4
@@ -8,6 +8,7 @@
|
||||
#include <QQuickAsyncImageProvider>
|
||||
#include <QNetworkAccessManager>
|
||||
#include <QAbstractListModel>
|
||||
#include <QSortFilterProxyModel>
|
||||
|
||||
#include <memory>
|
||||
|
||||
@@ -68,14 +69,15 @@ struct PlayedSong {
|
||||
class PlaybackHistoryModel : public QAbstractListModel {
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
enum Roles {
|
||||
VideoId = Qt::UserRole + 1,
|
||||
Title,
|
||||
Artist,
|
||||
Plays
|
||||
};
|
||||
Q_ENUM(Roles);
|
||||
|
||||
public:
|
||||
PlaybackHistoryModel(QFuture<std::vector<PlayedSong>> &&songs, QObject *parent = nullptr);
|
||||
|
||||
QHash<int, QByteArray> roleNames() const override;
|
||||
@@ -114,7 +116,7 @@ public:
|
||||
|
||||
FavouritesModel *favourites();
|
||||
Q_SIGNAL void favouritesChanged();
|
||||
Q_INVOKABLE void addFavourite(const QString &videoId, const QString &title);
|
||||
Q_INVOKABLE void addFavourite(const QString &videoId, const QString &title, const QString &artist, const QString &album);
|
||||
Q_INVOKABLE void removeFavourite(const QString &videoId);
|
||||
Q_INVOKABLE FavouriteWatcher *favouriteWatcher(const QString &videoId);
|
||||
|
||||
@@ -124,7 +126,7 @@ public:
|
||||
|
||||
PlaybackHistoryModel *playbackHistory();
|
||||
Q_SIGNAL void playbackHistoryChanged();
|
||||
Q_INVOKABLE void addPlaybackHistoryItem(const QString &videoId, const QString &title);
|
||||
Q_INVOKABLE void addPlaybackHistoryItem(const QString &videoId, const QString &title, const QString &artist, const QString &album);
|
||||
|
||||
PlaybackHistoryModel *mostPlayed();
|
||||
|
||||
@@ -134,7 +136,7 @@ public:
|
||||
}
|
||||
|
||||
private:
|
||||
QFuture<void> addSong(const QString &videoId, const QString &title);
|
||||
QFuture<void> addSong(const QString &videoId, const QString &title, const QString &artist, const QString &album);
|
||||
|
||||
QNetworkAccessManager m_networkImageCacher;
|
||||
std::unique_ptr<ThreadedDatabase> m_database;
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
#include <QApplication>
|
||||
#include <QQmlApplicationEngine>
|
||||
#include <QtQml>
|
||||
#include <QSortFilterProxyModel>
|
||||
#include <QUrl>
|
||||
#include <KLocalizedContext>
|
||||
#include <KLocalizedString>
|
||||
@@ -45,6 +46,8 @@ Q_DECL_EXPORT int main(int argc, char *argv[])
|
||||
qmlRegisterType<VideoInfoExtractor>(URI, 1, 0, "VideoInfoExtractor");
|
||||
qmlRegisterType<ArtistModel>(URI, 1, 0, "ArtistModel");
|
||||
qmlRegisterType<PlaylistModel>(URI, 1, 0, "PlaylistModel");
|
||||
qmlRegisterUncreatableType<PlaybackHistoryModel>(URI, 1, 0, "PlaybackHistoryModel","");
|
||||
qmlRegisterType<QSortFilterProxyModel>(URI, 1, 0, "SortFilterModel");
|
||||
qmlRegisterSingletonType<UserPlaylistModel>(URI, 1, 0, "UserPlaylistModel", [](QQmlEngine *, QJSEngine *) {
|
||||
return new UserPlaylistModel();
|
||||
});
|
||||
|
||||
Whitespace-only changes.
@@ -39,7 +39,8 @@ QHash<int, QByteArray> PlaylistModel::roleNames() const
|
||||
return {
|
||||
{Title, "title"},
|
||||
{Artists, "artists"},
|
||||
{VideoId, "videoId"}
|
||||
{VideoId, "videoId"},
|
||||
{ThumbnailUrl, "thumbnailUrl"}
|
||||
};
|
||||
}
|
||||
|
||||
@@ -55,6 +56,10 @@ QVariant PlaylistModel::data(const QModelIndex &index, int role) const
|
||||
return QString::fromStdString(*m_playlist.tracks[index.row()].video_id);
|
||||
}
|
||||
return {};
|
||||
case ThumbnailUrl:
|
||||
if (!m_playlist.tracks[index.row()].thumbnails.empty()) {
|
||||
return QString::fromStdString(m_playlist.tracks[index.row()].thumbnails.front().url);
|
||||
}
|
||||
}
|
||||
|
||||
Q_UNREACHABLE();
|
||||
|
||||
+2
-1
@@ -26,7 +26,8 @@ public:
|
||||
enum Role {
|
||||
Title,
|
||||
Artists,
|
||||
VideoId
|
||||
VideoId,
|
||||
ThumbnailUrl,
|
||||
};
|
||||
|
||||
int rowCount(const QModelIndex &parent) const override;
|
||||
|
||||
@@ -19,5 +19,6 @@ SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted
|
||||
<file>migrations/2022-05-20-194850_init/down.sql</file>
|
||||
<file>migrations/2022-05-20-194850_init/up.sql</file>
|
||||
<file alias="PlaybackHistory.qml">contents/ui/PlaybackHistory.qml</file>
|
||||
<file alias="RoundedMask.qml">contents/ui/RoundedMask.qml</file>
|
||||
</qresource>
|
||||
</RCC>
|
||||
@@ -3,6 +3,9 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
|
||||
|
||||
#include "searchmodel.h"
|
||||
#include "playlistutils.h"
|
||||
|
||||
#include <ranges>
|
||||
|
||||
SearchModel::SearchModel(QObject *parent)
|
||||
: AbstractYTMusicModel(parent)
|
||||
@@ -21,6 +24,7 @@ SearchModel::SearchModel(QObject *parent)
|
||||
beginResetModel();
|
||||
setLoading(false);
|
||||
m_searchResults = results;
|
||||
|
||||
endResetModel();
|
||||
});
|
||||
});
|
||||
@@ -117,6 +121,24 @@ QVariant SearchModel::data(const QModelIndex &index, int role) const
|
||||
|
||||
return QString();
|
||||
}, m_searchResults.at(index.row()));
|
||||
case ThumbnailUrl:
|
||||
return std::visit([&](auto &&arg) {
|
||||
using T = std::decay_t<decltype(arg)>;
|
||||
|
||||
if (!arg.thumbnails.empty()) {
|
||||
return QString::fromStdString(arg.thumbnails.front().url);
|
||||
}
|
||||
|
||||
return QString();
|
||||
}, m_searchResults.at(index.row()));
|
||||
case ArtistsDisplayString:
|
||||
return QVariant::fromValue(std::visit([&](auto&& arg) {
|
||||
using T = std::decay_t<decltype(arg)>;
|
||||
if constexpr (std::is_same_v<T, search::Song> || std::is_same_v<T, search::Video> || std::is_same_v<T, search::Album>) {
|
||||
return PlaylistUtils::artistsToString(arg.artists);
|
||||
}
|
||||
return QString();
|
||||
}, m_searchResults.at(index.row())));
|
||||
}
|
||||
|
||||
Q_UNREACHABLE();
|
||||
@@ -131,7 +153,9 @@ QHash<int, QByteArray> SearchModel::roleNames() const
|
||||
{Type, "type"},
|
||||
{VideoId, "videoId"},
|
||||
{Artists, "artists"},
|
||||
{ArtistsDisplayString, "artistsDisplayString"},
|
||||
{RadioPlaylistId, "radioPlaylistId"},
|
||||
{ThumbnailUrl, "thumbnailUrl"}
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
+3
-1
@@ -19,6 +19,7 @@ class SearchModel : public AbstractYTMusicModel
|
||||
public:
|
||||
enum Type {
|
||||
Artist,
|
||||
ArtistsDisplayString,
|
||||
Album,
|
||||
Playlist,
|
||||
Song,
|
||||
@@ -31,7 +32,8 @@ public:
|
||||
Type,
|
||||
VideoId,
|
||||
Artists,
|
||||
RadioPlaylistId
|
||||
RadioPlaylistId,
|
||||
ThumbnailUrl
|
||||
};
|
||||
|
||||
explicit SearchModel(QObject *parent = nullptr);
|
||||
|
||||
@@ -11,6 +11,8 @@
|
||||
#include <QRandomGenerator>
|
||||
#include <QFutureWatcher>
|
||||
|
||||
#include <iostream>
|
||||
|
||||
#include "playlistutils.h"
|
||||
|
||||
UserPlaylistModel::UserPlaylistModel(QObject *parent)
|
||||
@@ -55,6 +57,13 @@ UserPlaylistModel::UserPlaylistModel(QObject *parent)
|
||||
connect(&YTMusicThread::instance().get(), &AsyncYTMusic::errorOccurred, this, [this] {
|
||||
setLoading(false);
|
||||
});
|
||||
connect(this, &UserPlaylistModel::currentVideoIdChanged, this, [this]() {
|
||||
// Clear lyrics, so we won't display old ones if the next song doesn't have any.
|
||||
m_lyrics = {};
|
||||
Q_EMIT lyricsChanged();
|
||||
|
||||
fetchLyrics(m_currentVideoId);
|
||||
});
|
||||
}
|
||||
|
||||
int UserPlaylistModel::rowCount(const QModelIndex &parent) const
|
||||
@@ -71,6 +80,8 @@ QVariant UserPlaylistModel::data(const QModelIndex &index, int role) const
|
||||
return QString::fromStdString(m_playlist.tracks[index.row()].video_id);
|
||||
case Artists:
|
||||
return PlaylistUtils::artistsToString(m_playlist.tracks[index.row()].artists);
|
||||
case Album:
|
||||
return QString::fromStdString(m_playlist.tracks[index.row()].album.value_or(meta::Album()).name);
|
||||
case IsCurrent:
|
||||
return m_playlist.tracks[index.row()].video_id == m_currentVideoId.toStdString();
|
||||
}
|
||||
@@ -86,7 +97,8 @@ QHash<int, QByteArray> UserPlaylistModel::roleNames() const
|
||||
{Title, "title"},
|
||||
{VideoId, "videoId"},
|
||||
{Artists, "artists"},
|
||||
{IsCurrent, "isCurrent"}
|
||||
{Album, "album"},
|
||||
{IsCurrent, "isCurrent"},
|
||||
};
|
||||
}
|
||||
|
||||
@@ -129,6 +141,16 @@ void UserPlaylistModel::setCurrentVideoId(const QString &videoId)
|
||||
Q_EMIT canSkipChanged();
|
||||
}
|
||||
|
||||
int UserPlaylistModel::currentIndex() const
|
||||
{
|
||||
auto currentTrack = std::find_if(m_playlist.tracks.begin(), m_playlist.tracks.end(),
|
||||
[this](const watch::Playlist::Track &track) {
|
||||
return track.video_id == m_currentVideoId.toStdString();
|
||||
});
|
||||
|
||||
return std::distance(m_playlist.tracks.begin(), currentTrack);
|
||||
}
|
||||
|
||||
bool UserPlaylistModel::canSkip() const
|
||||
{
|
||||
const auto currentTrackIt = std::find_if(m_playlist.tracks.begin(), m_playlist.tracks.end(),
|
||||
@@ -271,11 +293,28 @@ void UserPlaylistModel::emitCurrentVideoChanged(const QString &oldVideoId)
|
||||
Q_EMIT dataChanged(index(newIndex), index(newIndex), {IsCurrent});
|
||||
}
|
||||
|
||||
void UserPlaylistModel::fetchLyrics(const QString &videoId)
|
||||
{
|
||||
auto future = YTMusicThread::instance()->fetchWatchPlaylist(videoId);
|
||||
connectFuture(future, this, [=, this](const auto &playlist) {
|
||||
if (playlist.lyrics) {
|
||||
connectFuture(YTMusicThread::instance()->fetchLyrics(QString::fromStdString(*playlist.lyrics)), this, [=, this](const auto &lyrics) {
|
||||
m_lyrics = lyrics;
|
||||
Q_EMIT lyricsChanged();
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
bool UserPlaylistModel::shuffle() const
|
||||
{
|
||||
return m_shuffle;
|
||||
}
|
||||
|
||||
QString UserPlaylistModel::lyrics() const {
|
||||
return QString::fromStdString(m_lyrics.lyrics);
|
||||
}
|
||||
|
||||
void UserPlaylistModel::setShuffle(bool shuffle)
|
||||
{
|
||||
m_shuffle = shuffle;
|
||||
|
||||
+14
-1
@@ -4,6 +4,7 @@
|
||||
#pragma once
|
||||
|
||||
#include <QAbstractListModel>
|
||||
#include <QFuture>
|
||||
|
||||
#include <ytmusic.h>
|
||||
|
||||
@@ -20,15 +21,19 @@ class UserPlaylistModel : public AbstractYTMusicModel
|
||||
|
||||
// output
|
||||
Q_PROPERTY(QString currentVideoId READ currentVideoId NOTIFY currentVideoIdChanged)
|
||||
Q_PROPERTY(int currentIndex READ currentIndex NOTIFY currentVideoIdChanged)
|
||||
Q_PROPERTY(bool canSkip READ canSkip NOTIFY canSkipChanged)
|
||||
Q_PROPERTY(QString lyrics READ lyrics NOTIFY lyricsChanged)
|
||||
|
||||
public:
|
||||
enum Role {
|
||||
Title = Qt::UserRole + 1,
|
||||
VideoId,
|
||||
Artists,
|
||||
IsCurrent
|
||||
Album,
|
||||
IsCurrent,
|
||||
};
|
||||
Q_ENUM(Role);
|
||||
|
||||
explicit UserPlaylistModel(QObject *parent = nullptr);
|
||||
|
||||
@@ -46,6 +51,8 @@ public:
|
||||
void setCurrentVideoId(const QString &videoId);
|
||||
Q_SIGNAL void currentVideoIdChanged();
|
||||
|
||||
int currentIndex() const;
|
||||
|
||||
bool canSkip() const;
|
||||
Q_SIGNAL void canSkipChanged();
|
||||
|
||||
@@ -57,6 +64,9 @@ public:
|
||||
bool shuffle() const;
|
||||
Q_SIGNAL void shuffleChanged();
|
||||
|
||||
QString lyrics() const;
|
||||
Q_SIGNAL void lyricsChanged();
|
||||
|
||||
Q_INVOKABLE void next();
|
||||
Q_INVOKABLE void skipTo(const QString &videoId);
|
||||
Q_INVOKABLE void playNext(const QString &videoId, const QString &title, const std::vector<meta::Artist> &artists);
|
||||
@@ -68,10 +78,13 @@ public:
|
||||
private:
|
||||
void emitCurrentVideoChanged(const QString &oldVideoId);
|
||||
|
||||
void fetchLyrics(const QString &videoId);
|
||||
|
||||
QString m_initialVideoId;
|
||||
QString m_playlistId;
|
||||
QString m_currentVideoId;
|
||||
bool m_shuffle = false;
|
||||
|
||||
watch::Playlist m_playlist;
|
||||
::Lyrics m_lyrics;
|
||||
};
|
||||
+59
-13
@@ -22,7 +22,7 @@ void pyPrintPretty(py::handle obj) {
|
||||
|
||||
#define UNEXPORT __attribute__ ((visibility("hidden")))
|
||||
|
||||
constexpr auto TESTED_YTMUSICAPI_VERSION = "0.22.0";
|
||||
constexpr auto TESTED_YTMUSICAPI_VERSION = "0.24.0";
|
||||
|
||||
struct UNEXPORT YTMusicPrivate {
|
||||
py::scoped_interpreter guard {};
|
||||
@@ -41,10 +41,16 @@ struct UNEXPORT YTMusicPrivate {
|
||||
// Some of the called python code randomly fails if the encoding is not utf8
|
||||
setenv("LC_ALL", "en_US.utf8", true);
|
||||
|
||||
const auto version = module.attr("_version").attr("__version__").cast<std::string>();
|
||||
if (version != TESTED_YTMUSICAPI_VERSION) {
|
||||
std::cerr << "Running with untested version of ytmusicapi." << std::endl;
|
||||
auto oldVersion = module.attr("__dict__").contains("_version");
|
||||
if (oldVersion) {
|
||||
std::cerr << "Running with outdated and untested version of ytmusicapi." << std::endl;
|
||||
std::cerr << "The currently tested and supported version is " << TESTED_YTMUSICAPI_VERSION << std::endl;
|
||||
} else {
|
||||
const auto version = module.attr("version")("ytmusicapi").cast<std::string>();
|
||||
if (version != TESTED_YTMUSICAPI_VERSION) {
|
||||
std::cerr << "Running with untested version of ytmusicapi." << std::endl;
|
||||
std::cerr << "The currently tested and supported version is " << TESTED_YTMUSICAPI_VERSION << std::endl;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -269,7 +275,8 @@ std::optional<search::SearchResultItem> extract_search_result(py::handle result)
|
||||
result["videoId"].cast<std::string>(),
|
||||
result["title"].cast<std::string>(),
|
||||
extract_py_list<meta::Artist>(result["artists"]),
|
||||
result["views"].cast<std::string>()
|
||||
result["views"].cast<std::string>(),
|
||||
extract_py_list<meta::Thumbnail>(result["thumbnails"])
|
||||
},
|
||||
result["duration"].cast<std::string>()
|
||||
};
|
||||
@@ -279,7 +286,8 @@ std::optional<search::SearchResultItem> extract_search_result(py::handle result)
|
||||
result["videoId"].cast<std::string>(),
|
||||
result["title"].cast<std::string>(),
|
||||
extract_py_list<meta::Artist>(result["artists"]),
|
||||
result["duration"].cast<std::string>()
|
||||
result["duration"].cast<std::string>(),
|
||||
extract_py_list<meta::Thumbnail>(result["thumbnails"])
|
||||
},
|
||||
extract_meta_album(result["album"]),
|
||||
result["isExplicit"].cast<bool>()
|
||||
@@ -291,21 +299,24 @@ std::optional<search::SearchResultItem> extract_search_result(py::handle result)
|
||||
result["type"].cast<std::string>(),
|
||||
extract_py_list<meta::Artist>(result["artists"]),
|
||||
result["year"].cast<std::optional<std::string>>(),
|
||||
result["isExplicit"].cast<bool>()
|
||||
result["isExplicit"].cast<bool>(),
|
||||
extract_py_list<meta::Thumbnail>(result["thumbnails"])
|
||||
};
|
||||
} else if (resultType == "playlist") {
|
||||
return search::Playlist {
|
||||
result["browseId"].cast<std::string>(),
|
||||
result["title"].cast<std::string>(),
|
||||
result["author"].cast<std::string>(),
|
||||
result["itemCount"].cast<std::string>()
|
||||
result["itemCount"].cast<std::string>(),
|
||||
extract_py_list<meta::Thumbnail>(result["thumbnails"])
|
||||
};
|
||||
} else if (resultType == "artist") {
|
||||
return search::Artist {
|
||||
result["browseId"].cast<std::string>(),
|
||||
result["artist"].cast<std::string>(),
|
||||
optional_key<std::string>(result, "shuffleId"),
|
||||
optional_key<std::string>(result, "radioId")
|
||||
optional_key<std::string>(result, "radioId"),
|
||||
extract_py_list<meta::Thumbnail>(result["thumbnails"])
|
||||
};
|
||||
} else {
|
||||
std::cerr << "Warning: Unsupported search result type found" << std::endl;
|
||||
@@ -474,16 +485,51 @@ video_info::VideoInfo YTMusic::extract_video_info(const std::string &video_id) c
|
||||
|
||||
watch::Playlist YTMusic::get_watch_playlist(const std::optional<std::string> &videoId,
|
||||
const std::optional<std::string> &playlistId,
|
||||
int limit,
|
||||
const std::optional<std::string> ¶ms) const
|
||||
int limit) const
|
||||
{
|
||||
const auto playlist = d->get_ytmusic().attr("get_watch_playlist")("videoId"_a = videoId,
|
||||
"playlistId"_a = playlistId,
|
||||
"limit"_a = py::int_(limit),
|
||||
"params"_a = params);
|
||||
"limit"_a = py::int_(limit));
|
||||
|
||||
return {
|
||||
extract_py_list<watch::Playlist::Track>(playlist["tracks"]),
|
||||
playlist["lyrics"].cast<std::optional<std::string>>()
|
||||
};
|
||||
}
|
||||
|
||||
Lyrics YTMusic::get_lyrics(const std::string &browse_id) const
|
||||
{
|
||||
auto lyrics = d->get_ytmusic().attr("get_lyrics")(browse_id);
|
||||
|
||||
return {
|
||||
lyrics["source"].cast<std::string>(),
|
||||
lyrics["lyrics"].cast<std::string>()
|
||||
};
|
||||
}
|
||||
|
||||
void YTMusic::download_playlist(const std::string &playlist_url, std::function<void (YtDlDownloadStatus)> progress_hook) const
|
||||
{
|
||||
py::module::import("ytmx.ytmx").attr("YTMX")(std::vector {playlist_url}, py::cpp_function([=](const py::dict &ytdl_status) {
|
||||
if (ytdl_status["status"].cast<std::string>() == "finished") {
|
||||
int current_track_index = ytdl_status["info_dict"]["playlist_index"].cast<int>();
|
||||
int playlist_length = ytdl_status["info_dict"]["playlist_count"].cast<int>();
|
||||
auto current_track = ytdl_status["info_dict"]["title"].cast<std::string>();
|
||||
|
||||
progress_hook(YtDlDownloadStatus {
|
||||
.finished = true,
|
||||
.playlist_length = playlist_length,
|
||||
.current_track_index = current_track_index,
|
||||
});
|
||||
} else if (ytdl_status["status"].cast<std::string>() == "downloading") {
|
||||
int current_track_index = ytdl_status["info_dict"]["playlist_index"].cast<int>();
|
||||
int playlist_length = ytdl_status["info_dict"]["playlist_count"].cast<int>();
|
||||
auto current_track = ytdl_status["info_dict"]["title"].cast<std::string>();
|
||||
|
||||
progress_hook(YtDlDownloadStatus {
|
||||
.playlist_length = playlist_length,
|
||||
.current_track_index = current_track_index,
|
||||
.current_track = current_track
|
||||
});
|
||||
}
|
||||
}));
|
||||
}
|
||||
+23
-2
@@ -11,6 +11,7 @@
|
||||
#include <variant>
|
||||
#include <vector>
|
||||
#include <memory>
|
||||
#include <functional>
|
||||
|
||||
struct YTMusicPrivate;
|
||||
|
||||
@@ -44,6 +45,7 @@ struct Media {
|
||||
std::string title;
|
||||
std::vector<meta::Artist> artists;
|
||||
std::string duration;
|
||||
std::vector<meta::Thumbnail> thumbnails;
|
||||
};
|
||||
|
||||
struct Video : public Media {
|
||||
@@ -55,6 +57,7 @@ struct Playlist {
|
||||
std::string title;
|
||||
std::string author;
|
||||
std::string item_count;
|
||||
std::vector<meta::Thumbnail> thumbnails;
|
||||
};
|
||||
|
||||
struct Song : public Media {
|
||||
@@ -69,6 +72,7 @@ struct Album {
|
||||
std::vector<meta::Artist> artists;
|
||||
std::optional<std::string> year;
|
||||
bool is_explicit;
|
||||
std::vector<meta::Thumbnail> thumbnails;
|
||||
};
|
||||
|
||||
struct Artist {
|
||||
@@ -76,6 +80,7 @@ struct Artist {
|
||||
std::string artist;
|
||||
std::optional<std::string> shuffle_id;
|
||||
std::optional<std::string> radio_id;
|
||||
std::vector<meta::Thumbnail> thumbnails;
|
||||
};
|
||||
|
||||
using SearchResultItem = std::variant<Video, Playlist, Song, Album, Artist>;
|
||||
@@ -268,6 +273,18 @@ struct Playlist {
|
||||
};
|
||||
}
|
||||
|
||||
struct Lyrics {
|
||||
std::string source;
|
||||
std::string lyrics;
|
||||
};
|
||||
|
||||
struct YtDlDownloadStatus {
|
||||
bool finished = false;
|
||||
int playlist_length;
|
||||
std::optional<int> current_track_index;
|
||||
std::optional<std::string> current_track;
|
||||
};
|
||||
|
||||
class YTMusic
|
||||
{
|
||||
public:
|
||||
@@ -306,8 +323,12 @@ public:
|
||||
/// https://ytmusicapi.readthedocs.io/en/latest/reference.html#ytmusicapi.YTMusic.get_watch_playlist
|
||||
watch::Playlist get_watch_playlist(const std::optional<std::string> &videoId = std::nullopt,
|
||||
const std::optional<std::string> &playlistId = std::nullopt,
|
||||
int limit = 25,
|
||||
const std::optional<std::string> ¶ms = std::nullopt) const;
|
||||
int limit = 25) const;
|
||||
|
||||
Lyrics get_lyrics(const std::string &browse_id) const;
|
||||
|
||||
void download_playlist(const std::string &playlist_url,
|
||||
std::function<void(YtDlDownloadStatus)> progress_hook) const;
|
||||
|
||||
// TODO wrap more methods
|
||||
|
||||
|
||||
Reference in new issue
Block a user