Compare commits

..
Author SHA1 Message Date
Heiko Becker eaef9b1d68 GIT_SILENT Update Appstream for new release 2023-05-06 11:12:27 +02:00
Heiko Becker 9d3684e4e6 GIT_SILENT Upgrade release service version to 23.04.1. 2023-05-06 09:54:43 +02:00
l10n daemon script 13aa0879f4 GIT_SILENT Sync po/docbooks with svn 2023-05-06 03:41:11 +00:00
l10n daemon script 05078ba440 GIT_SILENT Sync po/docbooks with svn 2023-05-01 03:59:54 +00:00
l10n daemon script 9be04b0fcc GIT_SILENT Sync po/docbooks with svn 2023-04-30 05:16:58 +00:00
l10n daemon script 949f88f58b GIT_SILENT Sync po/docbooks with svn 2023-04-23 05:12:54 +00:00
Jonah Brüchert 219d5462f6 If controls style is not set, assume platform provides no working styling 2023-04-22 13:20:42 +02:00
Mathis Brüchert ed87d3654c Fix extracting null search result 2023-04-21 20:31:20 +02:00
Mathis Brüchert b4d184d7a3 Fix some extractor bugs 2023-04-21 20:25:41 +02:00
Jonah Brüchert 9bced575dc Make search::Video views attribute optional
Fixes #27
2023-04-21 09:57:27 +02:00
Jonah Brüchert 6911fabb2c Work around API break in kirigami-addons 2023-04-21 09:55:26 +02:00
l10n daemon script 61ec0ea77b GIT_SILENT Sync po/docbooks with svn 2023-04-21 03:36:03 +00:00
l10n daemon script 10089c45c1 GIT_SILENT Sync po/docbooks with svn 2023-04-19 03:37:55 +00:00
l10n daemon script a982a0734a GIT_SILENT Sync po/docbooks with svn 2023-04-17 05:00:05 +00:00
Heiko Becker 57c07c6f9e GIT_SILENT Update Appstream for new release 2023-04-12 19:05:02 +02:00
Heiko Becker 98dfea748a GIT_SILENT Upgrade release service version to 23.04.0. 2023-04-12 17:54:43 +02:00
l10n daemon script de58b3abc4 GIT_SILENT Sync po/docbooks with svn 2023-04-11 04:26:18 +00:00
l10n daemon script 7ee5453e25 GIT_SILENT made messages (after extraction) 2023-04-07 02:36:42 +00:00
l10n daemon script 6fada4139b GIT_SILENT Sync po/docbooks with svn 2023-04-06 03:14:35 +00:00
l10n daemon script fc58017f46 SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2023-04-06 03:10:20 +00:00
l10n daemon script 4db868b10e GIT_SILENT Sync po/docbooks with svn 2023-04-04 03:37:40 +00:00
l10n daemon script 78f76e7192 GIT_SILENT Sync po/docbooks with svn 2023-04-02 03:22:30 +00:00
Albert Astals Cid 8b3f880ec4 GIT_SILENT Upgrade release service version to 23.03.90. 2023-03-30 22:16:15 +02:00
l10n daemon script b090404ba6 GIT_SILENT Sync po/docbooks with svn 2023-03-28 04:30:06 +00:00
l10n daemon script fe30b8cf41 GIT_SILENT Sync po/docbooks with svn 2023-03-27 05:32:34 +00:00
l10n daemon script b602fe2fa7 GIT_SILENT made messages (after extraction) 2023-03-26 02:44:01 +00:00
l10n daemon script d26d0a3075 GIT_SILENT Sync po/docbooks with svn 2023-03-25 03:28:07 +00:00
l10n daemon script 144c4cf730 GIT_SILENT Sync po/docbooks with svn 2023-03-22 04:11:31 +00:00
l10n daemon script 518b7af7f2 GIT_SILENT Sync po/docbooks with svn 2023-03-21 03:50:22 +00:00
l10n daemon script d41f582374 GIT_SILENT Sync po/docbooks with svn 2023-03-20 03:41:34 +00:00
l10n daemon script b8cb0229e3 GIT_SILENT Sync po/docbooks with svn 2023-03-19 03:25:59 +00:00
l10n daemon script 30e20cb6de GIT_SILENT Sync po/docbooks with svn 2023-03-18 03:55:33 +00:00
Jonah Brüchert 0cb0773322 Fix duplicated properly value
Oops sorry, I must have merged to merge requests fixing the same thing
differently.
2023-03-17 19:28:31 +01:00
Theophile Gilgien 7fd091a920 disable playlist controls when playlist is empty 2023-03-17 19:28:24 +01:00
Mathis Brüchert d65627568d disable button for adding to playlist when no song is playing to prevent a minor issue where audiotube freezes 2023-03-17 19:28:01 +01:00
Theophile Gilgien 319386d246 fix search queries getting duplicated 2023-03-17 19:27:51 +01:00
Theophile Gilgien 834cf82e6c fix temporary search not being removed after searching 2023-03-17 19:27:44 +01:00
l10n daemon script 401f8b5467 GIT_SILENT Sync po/docbooks with svn 2023-03-13 03:51:39 +00:00
l10n daemon script 4e738fa477 GIT_SILENT Sync po/docbooks with svn 2023-03-12 06:11:16 +00:00
l10n daemon script 4176123097 GIT_SILENT Sync po/docbooks with svn 2023-03-11 05:12:12 +00:00
Albert Astals Cid 05f384d8b2 GIT_SILENT Upgrade release service version to 23.03.80. 2023-03-10 20:59:22 +01:00
l10n daemon script f42265e4ec GIT_SILENT Sync po/docbooks with svn 2023-03-10 01:59:58 +00:00
Mathis Brüchert f3f2d810be fix thumbnails in add to playlist dialog 2023-03-10 01:14:31 +00:00
l10n daemon script 0e2307aec5 GIT_SILENT Sync po/docbooks with svn 2023-03-09 01:53:56 +00:00
Jonah BrüchertandMathis Brüchert 5a279f8220 Add support for local playlists
Co-authored-by: Mathis Brüchert <[email protected]>
2023-03-08 19:11:50 +01:00
Mathis Brüchert 85c2b8454b LibraryPage: Fix layout warnings 2023-03-08 19:04:50 +01:00
l10n daemon script 70fe911716 GIT_SILENT Sync po/docbooks with svn 2023-03-08 01:58:38 +00:00
Jonah Brüchert 6be1d22569 flatpak: Update yt-dlp 2023-03-07 21:16:55 +01:00
Mathis Brüchert 2716bcc116 introduce workarround to not make audiotube crash when small 2023-03-07 14:05:58 +00:00
Mathis Brüchert bc1fba53fd improve Keyboard Navigtion 2023-03-07 15:04:03 +01:00
Mathis Brüchert c86d0be6db add Drawer header 2023-03-07 14:36:56 +01:00
l10n daemon script 1bb1c96058 GIT_SILENT Sync po/docbooks with svn 2023-03-07 01:58:40 +00:00
Mathis Brüchert 9441369500 change text color in player footer to make artist the same color as everywhere else 2023-03-06 16:06:31 +00:00
Mathis Brüchert bcd4e686ad fix play queue on mobile 2023-03-06 16:01:43 +00:00
l10n daemon script 895eb6c77a GIT_SILENT Sync po/docbooks with svn 2023-03-06 01:54:30 +00:00
Mathis Brüchert 059473082e fix window closing when sharigg 2023-03-05 23:36:57 +01:00
Mathis Brüchert 0cd0704a3f share menu: add ability to copy link 2023-03-05 22:16:38 +00:00
Tobias Fella 59532680d0 Add compile_commands.json to gitignore 2023-03-05 22:20:22 +01:00
Mathis Brüchert 3739337d1a make custom Drawer into component 2023-03-05 13:35:25 +00:00
l10n daemon script df3259eca2 GIT_SILENT Sync po/docbooks with svn 2023-03-05 02:29:16 +00:00
l10n daemon script 0af180c55f GIT_SILENT made messages (after extraction) 2023-03-05 00:48:56 +00:00
l10n daemon script 8d41a4adb7 GIT_SILENT Sync po/docbooks with svn 2023-03-04 01:55:25 +00:00
Jonah Brüchert d068e0db3e Add fallback theming 2023-03-04 02:54:07 +01:00
Mathis Brüchert afed9143b6 use consistent menu icon 2023-03-04 01:31:44 +00:00
Mathis Brüchert 586d1d9ffd add possibility to append all playlists and albums 2023-03-04 01:23:39 +00:00
Jonah Brüchert 7d4975eff1 Move out ThumbnailSource to its own file 2023-03-04 01:53:45 +01:00
Jonah Brüchert 68ed854346 Scale thumbnails down on another thread
On slower hardware, this could previously block
2023-03-04 01:46:15 +01:00
Mathis Brüchert 495c5a00ae purpouse integration 2023-03-03 21:56:03 +00:00
Theophile Gilgien 6ef5898fe1 enable keyboard navigation of proposed search results 2023-03-03 18:32:31 +00:00
l10n daemon script 5afc7881b8 GIT_SILENT Sync po/docbooks with svn 2023-03-03 01:55:39 +00:00
l10n daemon script 75a6aeb806 GIT_SILENT Sync po/docbooks with svn 2023-03-02 02:44:02 +00:00
Jonah Brüchert 3d134c0cd0 Scale thumbnails down before saving them
This saves us looooots of memory at runtime, as pretty much all of it
comes from the album covers.
2023-03-01 00:19:51 +01:00
Theophile Gilgien c4687b4c3e disable mobile clear playlist button if queue is empty 2023-02-28 22:03:12 +01:00
l10n daemon script fc40d8fde5 GIT_SILENT Sync po/docbooks with svn 2023-02-28 02:27:03 +00:00
Theophile Gilgien 54001c8f7a disable playlist controls when playlist is empty
This makes it impossible to crash the application by clearing the
playlist when it is empty.
2023-02-27 21:19:31 +01:00
Theophile Gilgien a9fc71e50d Apply 2 suggestion(s) to 1 file(s) 2023-02-27 20:13:45 +00:00
Mathis Brüchert df67ec1c33 make buttons disappear on small screens 2023-02-27 20:13:45 +00:00
l10n daemon script 784b849d62 GIT_SILENT Sync po/docbooks with svn 2023-02-27 02:32:17 +00:00
Jonah Brüchert 94395f2650 UserPlaylistModel: Use ranges to make code a bit shorter 2023-02-26 03:51:47 +01:00
Jonah Brüchert 5285b3561f Update play button when appending a song
Before this, the button would not notice that there is now a song to
skip to.
2023-02-26 03:46:58 +01:00
l10n daemon script 89c8e7bec9 GIT_SILENT Sync po/docbooks with svn 2023-02-26 02:19:29 +00:00
Theophile Gilgien f3ff6e3bdc allow to play favourite, most played and playback history
as a playlist and on shuffle
2023-02-25 12:55:50 +01:00
l10n daemon script e6ba376246 GIT_SILENT Sync po/docbooks with svn 2023-02-25 02:56:18 +00:00
l10n daemon script 2c1e322e40 GIT_SILENT Sync po/docbooks with svn 2023-02-24 02:17:01 +00:00
l10n daemon script 5600256185 GIT_SILENT Sync po/docbooks with svn 2023-02-23 02:17:20 +00:00
Theophile Gilgien 10846db290 fix PlaybackHistory.qml not updating when removing tracks 2023-02-22 15:00:59 +00:00
Mathis Brüchert 5110f7243b fix not being able to remove songs from drawer 2023-02-22 14:59:14 +00:00
Mathis Brüchert 98d0be5fb0 fix seperator color 2023-02-22 14:58:18 +00:00
Mathis Brüchert 99b2c7e45c fix color of drawer buttons 2023-02-22 14:58:18 +00:00
Mathis Brüchert 8b6d868083 Center text in headers on mobile 2023-02-22 14:54:21 +00:00
l10n daemon script 082f715452 GIT_SILENT Sync po/docbooks with svn 2023-02-22 02:09:07 +00:00
Jonah Brüchert 59990c2029 Fix crash on playing an album in shuffle mode while a track is playing
BUG: 465153
2023-02-21 23:55:28 +01:00
Theophile Gilgien 93a669036f allow search history removal on mobile 2023-02-21 22:00:34 +01:00
l10n daemon script 2c1cc94b4e GIT_SILENT Sync po/docbooks with svn 2023-02-21 02:17:47 +00:00
Theophile Gilgien f45553e868 update README to show new project page link 2023-02-20 23:35:19 +01:00
l10n daemon script 458ec93807 GIT_SILENT Sync po/docbooks with svn 2023-02-20 02:19:26 +00:00
Theophile Gilgien 2f62a31dfb introduce clear playlist button
This merge request also moves the shuffle button to below the playlist.
2023-02-19 23:15:56 +00:00
l10n daemon script 2c6bde6f83 GIT_SILENT Sync po/docbooks with svn 2023-02-19 02:21:59 +00:00
Mathis Brüchert 84552190dc sidebar width abstraction 2023-02-18 12:13:56 +00:00
Jonah Brüchert 564617ebb8 flatpak: Update yt-dlp 2023-02-18 13:12:36 +01:00
l10n daemon script 76be4e7f23 GIT_SILENT Sync po/docbooks with svn 2023-02-18 02:18:28 +00:00
l10n daemon script 5379f5fe3e GIT_SILENT Sync po/docbooks with svn 2023-02-17 02:13:40 +00:00
Jonah Brüchert 524a6b564a SearchModel: Simplify removal implementation 2023-02-16 22:27:06 +00:00
Theophile Gilgien 142b339daa allow search history changes without resetting model 2023-02-16 22:27:06 +00:00
Theophile Gilgien 748f561453 make check use Q_ASSERT instead of if 2023-02-16 22:27:06 +00:00
Theophile Gilgien d66c4827af implement Library::removeSearch and debug messages 2023-02-16 22:27:06 +00:00
Theophile Gilgien 9e1318b862 implement SearchHistoryModel::getRow 2023-02-16 22:27:06 +00:00
Theophile Gilgien 5c10a30f83 introduce removeRows function in SearchHistoryModel
This will allow to make it more efficient in the future
2023-02-16 22:27:06 +00:00
l10n daemon script ac4f7f2b5f GIT_SILENT Sync po/docbooks with svn 2023-02-16 02:59:16 +00:00
Jonah Brüchert 54d2088cdd Add license to kirigami-addons flatpak manifest 2023-02-16 00:39:27 +01:00
Jonah Brüchert af6bbcfff6 Add weird sidebar workaround also to aboutButton 2023-02-16 00:37:39 +01:00
Jonah Brüchert 397ccfe872 flatpak: Add kirigami-addons dependency 2023-02-16 00:34:56 +01:00
Jonah Brüchert 6645739b0b cmake: Mark kirigami-addons as required 2023-02-16 00:34:56 +01:00
Mathis Brüchert d97ae991dc Add about page 2023-02-15 19:38:33 +01:00
Mathis Brüchert bda1811200 Show placeholder images when the library is empty 2023-02-15 17:33:49 +01:00
l10n daemon script 5465b7cc69 GIT_SILENT Sync po/docbooks with svn 2023-02-15 02:17:01 +00:00
l10n daemon script 1006b9d895 GIT_SILENT Sync po/docbooks with svn 2023-02-12 02:11:48 +00:00
l10n daemon script a55ceffeba GIT_SILENT Sync po/docbooks with svn 2023-02-11 02:11:53 +00:00
l10n daemon script ff1dd274cb GIT_SILENT Sync po/docbooks with svn 2023-02-10 02:30:33 +00:00
l10n daemon script 5afffd6cbb GIT_SILENT Sync po/docbooks with svn 2023-02-09 02:46:27 +00:00
l10n daemon script 83287251a7 GIT_SILENT Sync po/docbooks with svn 2023-02-08 03:40:16 +00:00
Devin Lin 9a44485a77 Fix player controls on Plasma Mobile
Currently the player controls are broken, since qqc2-breeze-style expects implicit dimensions to be set properly. Also did some slight formatting fixes.
2023-02-07 16:03:38 +00:00
Theophile Gilgien a08aabb2bc allow volume label internationalisation 2023-02-07 15:36:32 +00:00
l10n daemon script 4a028c8102 GIT_SILENT Sync po/docbooks with svn 2023-02-07 02:31:19 +00:00
l10n daemon script d872158f78 GIT_SILENT Sync po/docbooks with svn 2023-02-06 02:37:00 +00:00
l10n daemon script 57e7a2a816 GIT_SILENT Sync po/docbooks with svn 2023-02-05 02:23:04 +00:00
l10n daemon script a175b9e453 GIT_SILENT Sync po/docbooks with svn 2023-02-04 02:51:44 +00:00
Jonah Brüchert 4947281de8 Add swipe indicators to bottom drawers 2023-02-03 14:31:00 +01:00
Jonah Brüchert c4c798b803 Fix some more qml warnings on mobile 2023-02-03 14:26:46 +01:00
Jonah Brüchert 14d646104c Fix playlist being invisible on mobile 2023-02-03 14:15:01 +01:00
Mathis Brüchert aacb03e765 redesign icon 2023-02-03 13:22:05 +01:00
Mathis Brüchert 590a219f22 redesign drawer 2023-02-03 13:20:06 +01:00
Theophile Gilgien e68ff6d01c add a volume slider in maximized player 2023-02-03 13:06:00 +01:00
Jonah Brüchert d5fcee258e SearchWithDropdown: Enable clipping the list view 2023-02-03 13:01:57 +01:00
l10n daemon script d0bf9ecb99 GIT_SILENT Sync po/docbooks with svn 2023-02-03 02:37:32 +00:00
l10n daemon script 068071d263 GIT_SILENT Sync po/docbooks with svn 2023-01-31 02:24:26 +00:00
Carl Schwan e9064602a6 Move AudioTube to the release service
See https://invent.kde.org/sysadmin/release-tools/-/merge_requests/27

Signed-off-by: Carl Schwan <[email protected]>
2023-01-30 20:04:50 +01:00
l10n daemon script 71f574fce9 GIT_SILENT Sync po/docbooks with svn 2023-01-30 02:44:21 +00:00
Theophile Gilgien c2a7a9742f reenable scrolling of past search queries 2023-01-29 16:20:13 +01:00
l10n daemon script 38a1018817 GIT_SILENT Sync po/docbooks with svn 2023-01-29 02:33:27 +00:00
l10n daemon script 58d877a1e6 GIT_SILENT Sync po/docbooks with svn 2023-01-28 02:31:44 +00:00
Carl Schwan ea97b5a3f2 Bump to 23.01
Signed-off-by: Carl Schwan <[email protected]>
2023-01-27 20:47:58 +01:00
l10n daemon script ea5085bfc7 GIT_SILENT Sync po/docbooks with svn 2023-01-27 02:23:52 +00:00
Theophile Gilgien 26dd42bf0d introduce possibility to remove search from history
This feature allows the user to remove past search queries, complementing the recent feature to remove a song from playback history.
2023-01-26 14:25:42 +00:00
l10n daemon script 8a5e0a26f9 GIT_SILENT Sync po/docbooks with svn 2023-01-26 02:14:48 +00:00
l10n daemon script 6b22eb5af0 GIT_SILENT Sync po/docbooks with svn 2023-01-25 02:33:30 +00:00
Jonah Brüchert cbafceb01e Add index property to delegates
The Kirigami list items depend on this property to exist, but it only
exists by default when using the old model API, which we don't.
2023-01-24 14:25:54 +01:00
l10n daemon script 843325d6c7 GIT_SILENT Sync po/docbooks with svn 2023-01-24 02:28:54 +00:00
l10n daemon script 11a1ce02a8 GIT_SILENT Sync po/docbooks with svn 2023-01-23 02:16:32 +00:00
Mathis Brüchert 8bc3012eb4 remove custom shaders 2023-01-23 00:54:41 +01:00
Mathis Brüchert e108ec5105 show song information in Drawer 2023-01-22 23:46:24 +00:00
l10n daemon script 57b1c07c33 GIT_SILENT Sync po/docbooks with svn 2023-01-22 02:32:45 +00:00
Jonah Brüchert f07076910a Update tested ytmusicapi version to 0.25.0 2023-01-21 17:20:13 +01:00
Mathis Brüchert ce74b42e3e make menu always visible on mobile
Previously, the menu button was hidden behind a swipe gesture + button,
which is redundant.
2023-01-21 16:36:28 +01:00
Jonah Brüchert 47e4831bca Library: Only create one SongMenu instance 2023-01-21 16:33:12 +01:00
Mathis Brüchert 1a15e1578f remove hard coded numbers 2023-01-21 12:39:15 +01:00
Mathis Brüchert 94e8fce0f2 make dropdown visually prettier 2023-01-21 11:36:52 +01:00
Jonah Brüchert e40b9f6e10 Adapt to youtube changes 2023-01-21 11:08:18 +01:00
l10n daemon script e44182ee71 GIT_SILENT Sync po/docbooks with svn 2023-01-21 02:19:52 +00:00
Theophile Gilgien e1a32deb01 introduce possibility to remove songs from history
The part to hide the context menu entry when the song isn't in the
history does not yet work, as the call to Library::wasPlayedWatcher()
and FavouriteWatcher::wasPlayed() from SongMenu.qml don't work.
2023-01-21 00:16:17 +01:00
l10n daemon script 9261999563 GIT_SILENT Sync po/docbooks with svn 2023-01-16 02:29:33 +00:00
Jonah Brüchert 1f5ed15cb9 flatpak: Update pybind11 2023-01-15 12:08:00 +01:00
Jonah Brüchert 49ad94e2f8 flatpak: Update dependencies 2023-01-15 12:04:46 +01:00
l10n daemon script faad08c203 GIT_SILENT Sync po/docbooks with svn 2023-01-14 17:50:33 +00:00
l10n daemon script 4237746082 GIT_SILENT Sync po/docbooks with svn 2023-01-13 03:19:39 +00:00
l10n daemon script 989cecaf64 GIT_SILENT Sync po/docbooks with svn 2023-01-11 02:28:50 +00:00
Jonah Brüchert a6e3220054 SongMenu: Fix typo 2023-01-10 19:06:36 +01:00
Mathis Brüchert 0095677485 blur sidebar 2023-01-10 16:23:05 +01:00
l10n daemon script 311111f7d8 GIT_SILENT Sync po/docbooks with svn 2023-01-10 02:21:39 +00:00
Mathis Brüchert 1c590dd38c Clear page stack before pushing pages from the sidebar
Avoids the situation in which multiple pages are open, and only the last
one is replaced, allowing to go back from the library.
The library page should strictly be the home page.
2023-01-09 23:54:26 +01:00
l10n daemon script 4d4dc7e8ca GIT_SILENT Sync po/docbooks with svn 2023-01-09 02:22:51 +00:00
l10n daemon script df7e69db9f GIT_SILENT Sync po/docbooks with svn 2023-01-08 02:26:43 +00:00
Mathis Brüchert d6f53b7485 remove double header 2023-01-07 03:40:36 +01:00
l10n daemon script 8e8fe9871c GIT_SILENT Sync po/docbooks with svn 2023-01-05 02:31:29 +00:00
l10n daemon script 9887e6cbc0 GIT_SILENT Sync po/docbooks with svn 2023-01-04 03:07:06 +00:00
l10n daemon script 62ec82a85a GIT_SILENT made messages (after extraction) 2023-01-04 00:51:25 +00:00
l10n daemon script bae859ff7c GIT_SILENT Sync po/docbooks with svn 2023-01-03 03:31:00 +00:00
l10n daemon script 443183d4cd GIT_SILENT made messages (after extraction) 2023-01-03 00:50:01 +00:00
l10n daemon script f762a6d8c1 GIT_SILENT Sync po/docbooks with svn 2023-01-01 03:09:19 +00:00
l10n daemon script 4c30f20fed GIT_SILENT Sync po/docbooks with svn 2022-12-31 02:23:10 +00:00
Jonah Brüchert 1faa7a13fc flatpak: Update runtime to 5.15-22.08 2022-12-30 18:50:34 +01:00
l10n daemon script b7438cd452 GIT_SILENT Sync po/docbooks with svn 2022-12-30 10:05:49 +00:00
l10n daemon script 387ea1153a GIT_SILENT Sync po/docbooks with svn 2022-12-30 02:45:28 +00:00
Mathis Brüchert d42138cc87 add right padding to scroll Views 2022-12-29 17:35:33 +01:00
Mathis Brüchert b64e23a4ce make title change color on hover 2022-12-29 16:23:29 +01:00
Jonah Brüchert 5b717c468b Make it impossible to open the menu drawer by swiping
When this was done, the drawer was not connected to any list item, and
of course didn't work.
2022-12-29 16:16:59 +01:00
Jonah Brüchert a277a5cfa1 Remove stray debug 2022-12-29 14:04:11 +01:00
Jonah Brüchert 2bcc2b4622 Fix displaying artists in history page 2022-12-29 14:00:17 +01:00
Mathis Brüchert 226d187275 add Sidebar 2022-12-29 13:58:36 +01:00
Mathis Brüchert 72148cb630 add new scrennshots to appdata file 2022-12-29 12:43:43 +01:00
Jonah Brüchert 58abc9d38a Fix warning about unused typedef 2022-12-28 16:05:04 +01:00
Jonah Brüchert d166a66797 Support ytmusicapi 0.24.1 2022-12-28 16:02:14 +01:00
Jonah Brüchert 81e7627ad1 Add flatpak CI 2022-12-28 15:52:10 +01:00
l10n daemon script 28f821e482 GIT_SILENT Sync po/docbooks with svn 2022-12-28 02:24:45 +00:00
l10n daemon script 832674b5b3 SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2022-12-28 02:03:08 +00:00
l10n daemon script 28ff9be4ac GIT_SILENT made messages (after extraction) 2022-12-28 00:51:42 +00:00
l10n daemon script 89255083b9 GIT_SILENT Sync po/docbooks with svn 2022-12-25 03:09:09 +00:00
l10n daemon script 3a8788896f GIT_SILENT Sync po/docbooks with svn 2022-12-24 02:18:19 +00:00
Jonah Brüchert 22d5667995 Fix blurry album covers 2022-12-23 22:41:36 +01:00
Jonah Brüchert bdfb92a736 Fix passing artists to the menu 2022-12-23 22:38:32 +01:00
Mathis Brüchert 4e3da60708 disable horizontal scralling making touch gestures work with lyrics 2022-12-23 17:27:39 +00:00
Mathis Brüchert f7d5d31108 move menu to a drawer when on mobile 2022-12-23 17:27:00 +00:00
l10n daemon script 1d11e11ee6 GIT_SILENT Sync po/docbooks with svn 2022-12-23 02:14:58 +00:00
l10n daemon script d14e1189f2 GIT_SILENT Sync po/docbooks with svn 2022-12-21 02:15:43 +00:00
Mathis Brüchert 378abb7d4b animate play symbol on hover 2022-12-20 16:12:44 +00:00
l10n daemon script 51d330e6f3 GIT_SILENT Sync po/docbooks with svn 2022-12-17 12:37:10 +00:00
l10n daemon script 3963eb41ce GIT_SILENT Sync po/docbooks with svn 2022-12-14 03:07:31 +00:00
l10n daemon script af12a936d6 GIT_SILENT Sync po/docbooks with svn 2022-12-12 02:34:17 +00:00
Devin Lin cc6661321d Fix list entries from going over the media player 2022-12-11 15:47:41 +00:00
Jonah Brüchert e70a8689bb Make tab list overflow on small screen 2022-12-11 16:10:11 +01:00
l10n daemon script 6511812f2e GIT_SILENT Sync po/docbooks with svn 2022-12-05 02:11:50 +00:00
l10n daemon script 668642d893 GIT_SILENT Sync po/docbooks with svn 2022-12-04 02:10:46 +00:00
l10n daemon script 151281f58c GIT_SILENT Sync po/docbooks with svn 2022-12-03 02:17:48 +00:00
Jonah Brüchert f01057a244 Don't allow building with old ytmusicapi versions
Apparently nobody looks at requirements.txt, so make this fail more
obviously.

As for why this is needed, ytmusicapi doesn't have a stable API, and
that means every time we adapt to a new version, old versions can break.
Having python backtraces thrown into the user's face would be a bad user
experience, so try to make sure packagers don't forget to update it.
2022-12-03 01:59:52 +01:00
l10n daemon script e494a6f1a6 GIT_SILENT Sync po/docbooks with svn 2022-12-02 03:18:23 +00:00
l10n daemon script b43d967f69 GIT_SILENT made messages (after extraction) 2022-12-02 00:49:05 +00:00
l10n daemon script 6b94a459de GIT_SILENT Sync po/docbooks with svn 2022-12-01 02:10:45 +00:00
Jonah Brüchert 1109b81870 Don't try to fetch lyrics when no track is playing
This can happen if the playlist ran through
2022-11-30 17:20:13 +01:00
Jonah Brüchert 9f404d37f6 Optimize memory usage 2022-11-30 17:17:54 +01:00
Bhushan Shah 32be492e82 Update version number for 22.11
GIT_SILENT
2022-11-30 13:26:50 +05:30
l10n daemon script c4de93e4d1 GIT_SILENT Sync po/docbooks with svn 2022-11-30 02:11:45 +00:00
l10n daemon script e5c817b955 GIT_SILENT Sync po/docbooks with svn 2022-11-29 02:14:35 +00:00
l10n daemon script cc2dcd1abb GIT_SILENT Sync po/docbooks with svn 2022-11-28 02:15:39 +00:00
Jonah Brüchert 4b343157a2 Use JavaScript arrow function syntax 2022-11-28 00:08:53 +01:00
Mathis Brüchert 52f330d6be Redesign browsing pages 2022-11-27 19:32:36 +01:00
Jonah Brüchert 435d530b14 Use Kirigami.DelegateRecycler in quick search repeater
I'm not 100% sure how much this will help here, but on my tablet the
frequent allocation of objects while filtering creates a noticable
delay, so let's see if this helps.
2022-11-27 19:26:31 +01:00
l10n daemon script a2d1288e06 GIT_SILENT Sync po/docbooks with svn 2022-11-27 02:07:37 +00:00
l10n daemon script 72500ef1a8 GIT_SILENT Sync po/docbooks with svn 2022-11-26 02:08:12 +00:00
l10n daemon script 6e67e63c32 GIT_SILENT Sync po/docbooks with svn 2022-11-25 02:15:14 +00:00
l10n daemon script 634ccf7835 GIT_SILENT Sync po/docbooks with svn 2022-11-24 02:09:19 +00:00
l10n daemon script da6363d6cc GIT_SILENT Sync po/docbooks with svn 2022-11-23 02:22:26 +00:00
Jonah Brüchert 0447eb3ca2 Fix alignment of local search results 2022-11-22 23:25:10 +01:00
Jonah Brüchert d49addb1ae Fix separator visibility logic 2022-11-22 23:16:59 +01:00
Jonah Brüchert bade37f9f2 Improve popup layout 2022-11-22 23:14:52 +01:00
Jonah Brüchert 5581c9f8e9 Fix separator being displayed in the wrong place 2022-11-22 22:51:03 +01:00
Jonah Brüchert 342984283c Wrap Queue in a ScrollView
This improves the scroll behaviour on the desktop a lot
2022-11-22 22:46:24 +01:00
Mathis Brüchert d313c4b79b clean up player 2022-11-22 22:35:53 +01:00
Mathis Brüchert eb3bb80669 add play icon when hovereing over library entries 2022-11-22 22:33:20 +01:00
Jonah Brüchert c56bbb68f6 Store artist and album of known songs in the database
In the future, this will allow to do better local searching
2022-11-22 18:32:06 +01:00
Jonah Brüchert f5a54fc7e7 Handle thumbnails that are not stored in the guessable location
Currently we just guess the url, which almost always works, but for some
videos (maybe very old ones) it doesn't work.
So for those, we now just invoke yt-dlp to extract the correct url. As
long as this affects only very few videos, it's still fast enough.

AudioTube will print a warning on the console if that happens, to make
it easier to debug when its slow.
2022-11-22 18:01:21 +01:00
Jonah Brüchert f2f653815b search: Display ~2 lines for previously played songs 2022-11-22 17:41:26 +01:00
Jonah Brüchert 4edfc8db71 Fix undefined reference error
The object seems unused
2022-11-22 17:40:52 +01:00
Jonah Brüchert f368c8fd8c resources.qrc: Restore reuse information 2022-11-22 16:43:09 +01:00
Jonah Brüchert a0f7854c52 Factor out the rounded mask code into its own file
Should make it easier to port to Qt6
2022-11-22 16:32:15 +01:00
Jonah BrüchertandMathis Brüchert fb9e17621f Search through played songs as well
Co-authored-by: Mathis Brüchert <[email protected]>
2022-11-22 16:19:03 +01:00
Jonah Brüchert d5b2c2c45c Filter search history while searching 2022-11-21 22:14:54 +01:00
Jonah Brüchert 0e6abff8ff Only display unique search queries 2022-11-21 21:58:35 +01:00
l10n daemon script a762edafc7 GIT_SILENT Sync po/docbooks with svn 2022-11-21 02:10:44 +00:00
l10n daemon script d1bf0c711c GIT_SILENT made messages (after extraction) 2022-11-21 00:48:42 +00:00
l10n daemon script 996322c335 GIT_SILENT Sync po/docbooks with svn 2022-11-20 02:57:06 +00:00
l10n daemon script 54d7c276bf GIT_SILENT Sync po/docbooks with svn 2022-11-19 02:12:55 +00:00
l10n daemon script 234f364b33 GIT_SILENT Sync po/docbooks with svn 2022-11-16 02:31:01 +00:00
l10n daemon script 0d019b9499 GIT_SILENT Sync po/docbooks with svn 2022-11-14 02:14:58 +00:00
l10n daemon script f4d144d53e GIT_SILENT Sync po/docbooks with svn 2022-11-13 02:11:22 +00:00
l10n daemon script 49bff407ad GIT_SILENT Sync po/docbooks with svn 2022-11-10 02:12:38 +00:00
Mathis Brüchert 1e2df2d6d8 Add more shadows and rounding to album convers 2022-11-09 23:13:48 +01:00
Jonah Brüchert 7c3d83704b Clear lyrics when changing the song 2022-11-09 00:31:33 +01:00
l10n daemon script 2796d9be83 GIT_SILENT Sync po/docbooks with svn 2022-11-08 02:07:29 +00:00
l10n daemon script 4233a323b7 GIT_SILENT Sync po/docbooks with svn 2022-11-07 02:58:01 +00:00
l10n daemon script cf5d8df35d GIT_SILENT Sync po/docbooks with svn 2022-11-06 02:09:20 +00:00
Jonah Brüchert 86f16fc7af Library: Add more spacing 2022-11-06 01:03:31 +01:00
Jonah Brüchert 7024e1526f Display lyrics 2022-11-05 21:57:17 +01:00
l10n daemon script d2b256f943 GIT_SILENT Sync po/docbooks with svn 2022-11-04 02:09:10 +00:00
Jonah Brüchert dcf1b9df98 search: Display artists 2022-11-03 21:34:23 +01:00
Jonah Brüchert 0f0e8a5974 Also display thumbnails for artists 2022-11-03 21:16:45 +01:00
Jonah Brüchert f703f1e357 Display album covers 2022-11-03 21:01:32 +01:00
Jonah Brüchert 3815759cd3 Make sure not to fail on old ytmusicapi verions by checking for the new-style version 2022-11-03 19:25:35 +01:00
Jonah Brüchert 72242e328c Update flatpak sources 2022-11-03 16:55:03 +01:00
Jonah Brüchert c38805fa92 Support ytmusicapi 0.24 2022-11-03 16:52:39 +01:00
l10n daemon script 1ae12c868e GIT_SILENT Sync po/docbooks with svn 2022-10-31 03:06:45 +00:00
Jonah Brüchert 9f3789eac5 Speed up loading thumbnails
By guessing the url directly instead of going through youtube-dl
2022-10-29 19:14:31 +02:00
l10n daemon script a956177d6a GIT_SILENT Sync po/docbooks with svn 2022-10-29 02:12:40 +00:00
l10n daemon script b900c44188 GIT_SILENT Sync po/docbooks with svn 2022-10-28 02:22:10 +00:00
Devin Lin e521c07102 Update README.md 2022-10-27 03:47:15 +00:00
l10n daemon script e696298bc9 GIT_SILENT Sync po/docbooks with svn 2022-10-25 02:16:20 +00:00
l10n daemon script b65fbe83f4 GIT_SILENT Sync po/docbooks with svn 2022-10-24 02:11:59 +00:00
l10n daemon script ce6782a131 GIT_SILENT Sync po/docbooks with svn 2022-10-23 02:02:07 +00:00
Tobias Fella a37746440a Prepare C++ for Qt6 2022-10-20 20:41:07 +00:00
l10n daemon script eaf62c2770 GIT_SILENT Sync po/docbooks with svn 2022-10-20 03:22:48 +00:00
l10n daemon script 147392f317 GIT_SILENT Sync po/docbooks with svn 2022-10-19 02:10:48 +00:00
l10n daemon script 63d56acd88 GIT_SILENT Sync po/docbooks with svn 2022-10-08 10:57:36 +00:00
l10n daemon script 28d07b370f GIT_SILENT Sync po/docbooks with svn 2022-10-08 02:11:21 +00:00
l10n daemon script d648ba9c93 GIT_SILENT Sync po/docbooks with svn 2022-10-07 02:27:49 +00:00
l10n daemon script a82dae6251 GIT_SILENT Sync po/docbooks with svn 2022-10-04 02:15:30 +00:00
l10n daemon script f99a17339b GIT_SILENT Sync po/docbooks with svn 2022-10-03 03:08:22 +00:00
l10n daemon script 198266c081 GIT_SILENT Sync po/docbooks with svn 2022-10-01 02:02:25 +00:00
l10n daemon script 756c2f8b56 SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2022-10-01 01:56:51 +00:00
l10n daemon script abdba9922a GIT_SILENT made messages (after extraction) 2022-10-01 00:50:54 +00:00
l10n daemon script 7ca4095571 GIT_SILENT Sync po/docbooks with svn 2022-09-30 01:53:29 +00:00
l10n daemon script c3128c9855 GIT_SILENT Sync po/docbooks with svn 2022-09-29 01:54:00 +00:00
l10n daemon script 20ae6c37cb GIT_SILENT Sync po/docbooks with svn 2022-09-28 02:03:54 +00:00
l10n daemon script 3c2fdca5fc SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2022-09-28 01:59:38 +00:00
l10n daemon script 395c7ad140 GIT_SILENT made messages (after extraction) 2022-09-28 00:52:28 +00:00
Bhushan Shah 630b54933d GIT_SILENT: bump version to 22.09 2022-09-27 20:20:12 +05:30
l10n daemon script 2293280316 GIT_SILENT Sync po/docbooks with svn 2022-09-25 01:52:51 +00:00
l10n daemon script 14116b9cd2 GIT_SILENT Sync po/docbooks with svn 2022-09-24 01:53:06 +00:00
l10n daemon script 4c7db5d5c9 GIT_SILENT Sync po/docbooks with svn 2022-09-21 01:52:39 +00:00
l10n daemon script f26bc80421 GIT_SILENT Sync po/docbooks with svn 2022-09-12 01:48:30 +00:00
l10n daemon script f934e99254 GIT_SILENT Sync po/docbooks with svn 2022-09-09 01:53:23 +00:00
l10n daemon script b6cd3c4a2b GIT_SILENT Sync po/docbooks with svn 2022-09-04 01:51:30 +00:00
Jonah Brüchert 76763b9be1 Update python dependencies 2022-09-01 23:35:44 +02:00
l10n daemon script 1606f91124 GIT_SILENT Sync po/docbooks with svn 2022-08-31 01:47:29 +00:00
l10n daemon script cf8c982228 GIT_SILENT Sync po/docbooks with svn 2022-08-30 01:49:27 +00:00
l10n daemon script e94362854d GIT_SILENT Sync po/docbooks with svn 2022-08-29 01:55:05 +00:00
l10n daemon script 40f3d5eab1 GIT_SILENT Sync po/docbooks with svn 2022-08-28 01:49:25 +00:00
l10n daemon script dc3b35bffa GIT_SILENT Sync po/docbooks with svn 2022-08-27 01:57:17 +00:00
Jonah Brüchert 52c654179f Add buttons for opening some pages in the web ui 2022-08-26 21:03:49 +02:00
Jonah Brüchert a07a3c162f Show newer favourites first 2022-08-24 09:31:59 +02:00
Jonah Brüchert e4f8f96517 Fix new unused variable warning on current gcc 12
The warning occurs in a constexpr if, so even though the variable is
used in the function, it may not be after the constexpr ifs are
evaluated.
2022-08-24 09:30:12 +02:00
l10n daemon script 6fdb0321d6 GIT_SILENT Sync po/docbooks with svn 2022-08-21 01:55:06 +00:00
l10n daemon script be9b0d57e9 GIT_SILENT Sync po/docbooks with svn 2022-08-14 01:51:10 +00:00
l10n daemon script b4c6749a76 GIT_SILENT Sync po/docbooks with svn 2022-08-08 01:57:12 +00:00
l10n daemon script a98e3c7b92 SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2022-08-08 01:51:52 +00:00
l10n daemon script 26e7bbbdb8 GIT_SILENT made messages (after extraction) 2022-08-08 00:48:13 +00:00
l10n daemon script efa7dd674a GIT_SILENT Sync po/docbooks with svn 2022-08-07 01:54:32 +00:00
l10n daemon script ef59e9d418 GIT_SILENT Sync po/docbooks with svn 2022-07-31 01:57:02 +00:00
l10n daemon script e1678a76ba GIT_SILENT Sync po/docbooks with svn 2022-07-23 01:54:34 +00:00
Jonah Brüchert 56ffb52ce5 flatpak: Update python packages 2022-07-19 15:16:41 +02:00
l10n daemon script f0a2d2e79a GIT_SILENT Sync po/docbooks with svn 2022-07-19 01:45:53 +00:00
l10n daemon script 182e77a68d GIT_SILENT Sync po/docbooks with svn 2022-07-17 01:52:45 +00:00
Jonah Brüchert 98ccbfe99d ytmusic: Include iostream
Previously this was not necessary, but now it fails to compile.
I suspect this to be related to a gcc update.
2022-07-16 19:31:40 +02:00
l10n daemon script 53bfc641b4 GIT_SILENT Sync po/docbooks with svn 2022-07-15 01:54:45 +00:00
l10n daemon script 1aabf2eefc GIT_SILENT Sync po/docbooks with svn 2022-07-14 01:58:13 +00:00
l10n daemon script 0d54dfb660 GIT_SILENT Sync po/docbooks with svn 2022-07-12 01:55:23 +00:00
Jonah Brüchert 8093f16f16 player: Set text directly on label instead of on the button
I suspect this to be the cause of the duplicated label. However I'm not
fully certain this fixes it. Please re-open the bug if the issue
persists.

BUG: 456597
2022-07-11 22:16:16 +02:00
Jonah Brüchert bac6ac3362 (very) minor database optimization 2022-07-11 22:09:59 +02:00
Jonah Brüchert 2f914d9f60 appstream: Add library screenshot 2022-07-11 15:44:12 +02:00
l10n daemon script d3293d22ab GIT_SILENT Sync po/docbooks with svn 2022-07-11 01:55:30 +00:00
l10n daemon script 4de3fdae81 GIT_SILENT Sync po/docbooks with svn 2022-07-10 01:57:26 +00:00
l10n daemon script 9518c73415 GIT_SILENT Sync po/docbooks with svn 2022-07-09 01:56:21 +00:00
l10n daemon script 05be539411 GIT_SILENT Sync po/docbooks with svn 2022-07-03 02:04:59 +00:00
l10n daemon script f12c4e3109 GIT_SILENT Sync po/docbooks with svn 2022-06-28 01:48:54 +00:00
l10n daemon script 004ef28a15 GIT_SILENT Sync po/docbooks with svn 2022-06-26 01:47:08 +00:00
l10n daemon script afa9b25aff GIT_SILENT Sync po/docbooks with svn 2022-06-25 02:06:45 +00:00
Bhushan Shah 303ce7c816 GIT_SILENT: bump version to 22.06 2022-06-23 21:11:20 +05:30
l10n daemon script e7cbd07b80 GIT_SILENT Sync po/docbooks with svn 2022-06-20 02:02:25 +00:00
l10n daemon script 923ae5fc96 GIT_SILENT Sync po/docbooks with svn 2022-06-18 01:47:06 +00:00
l10n daemon script 51a3b3c68e GIT_SILENT Sync po/docbooks with svn 2022-06-17 01:46:44 +00:00
l10n daemon script ef1582c67c GIT_SILENT Sync po/docbooks with svn 2022-06-16 02:01:08 +00:00
l10n daemon script 2091e39b90 GIT_SILENT Sync po/docbooks with svn 2022-06-13 02:49:49 +00:00
l10n daemon script ab02e72f1f GIT_SILENT Sync po/docbooks with svn 2022-06-12 01:50:20 +00:00
l10n daemon script d498d6a407 GIT_SILENT Sync po/docbooks with svn 2022-06-07 02:32:41 +00:00
l10n daemon script 6dc6e9538c GIT_SILENT Sync po/docbooks with svn 2022-06-06 01:47:22 +00:00
l10n daemon script 3b0cbefe85 GIT_SILENT Sync po/docbooks with svn 2022-06-05 01:48:47 +00:00
l10n daemon script 38e152fc52 GIT_SILENT Sync po/docbooks with svn 2022-06-04 01:49:02 +00:00
l10n daemon script 0f111b43be GIT_SILENT Sync po/docbooks with svn 2022-06-01 02:04:45 +00:00
l10n daemon script ffbeab0b14 GIT_SILENT Sync po/docbooks with svn 2022-05-30 01:48:55 +00:00
Jonah Brüchert 8860b62eec PlaybackHistory: Load album covers asynchronously 2022-05-30 00:52:05 +02:00
l10n daemon script 93433d8714 GIT_SILENT Sync po/docbooks with svn 2022-05-29 01:50:37 +00:00
l10n daemon script 211a0c6f93 GIT_SILENT Sync po/docbooks with svn 2022-05-28 02:33:52 +00:00
Jonah Brüchert aadfc71200 Fix crash on exit 2022-05-28 00:31:22 +02:00
l10n daemon script 1532adedb1 GIT_SILENT Sync po/docbooks with svn 2022-05-27 01:47:15 +00:00
Jonah Brüchert 16ce656201 Remove QT_QML_DEBUG 2022-05-26 14:26:46 +02:00
l10n daemon script a398723bdb GIT_SILENT Sync po/docbooks with svn 2022-05-26 01:47:23 +00:00
Jonah Brüchert f7a4788e73 Fix opening the 'Leoniden' artist page 2022-05-25 23:12:20 +02:00
Jonah Brüchert 15425c7b01 Use std::invoke_result_t to simplify template code 2022-05-25 23:00:22 +02:00
Jonah Brüchert 96c2a505a7 Fix up previous commit 2022-05-25 23:00:22 +02:00
Jonah Brüchert b58e3fc2d4 Allow to show all favourites / history as a list 2022-05-25 22:36:06 +02:00
Jonah Brüchert 4b1cbf11ad Display AudioTube label just on mobile, and move the search bar back to the center 2022-05-25 15:33:35 +02:00
Devin Lin 1037ac8c02 app header: Move search bar to side, add app header, add search button for mobile 2022-05-25 15:33:32 +02:00
l10n daemon script 572f3c4c94 GIT_SILENT Sync po/docbooks with svn 2022-05-25 01:52:03 +00:00
Devin Lin e48d6c8bb6 Add loading indicator to minimized bar when loading track 2022-05-24 14:52:20 +00:00
l10n daemon script d717e7dff9 GIT_SILENT Sync po/docbooks with svn 2022-05-24 01:50:35 +00:00
115 changed files with 18752 additions and 3465 deletions

No files matched your search

+1
View File
@@ -0,0 +1 @@
org.kde.audiotube.json
+1
View File
@@ -7,3 +7,4 @@
CMakeLists.txt.user
flatpak/flatpak-builder-tools/
build/
compile_commands.json
+2 -1
View File
@@ -3,4 +3,5 @@
# SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
include:
- 'https://invent.kde.org/sysadmin/ci-utilities/raw/master/gitlab-templates/reuse-lint.yml'
- https://invent.kde.org/sysadmin/ci-utilities/raw/master/gitlab-templates/reuse-lint.yml
- https://invent.kde.org/sysadmin/ci-utilities/raw/master/gitlab-templates/flatpak.yml
+11 -5
View File
@@ -4,11 +4,16 @@
cmake_minimum_required(VERSION 3.16.0)
project(audiotube)
# KDE Applications version, managed by release script.
set(RELEASE_SERVICE_VERSION_MAJOR "23")
set(RELEASE_SERVICE_VERSION_MINOR "04")
set(RELEASE_SERVICE_VERSION_MICRO "1")
set(RELEASE_SERVICE_VERSION "${RELEASE_SERVICE_VERSION_MAJOR}.${RELEASE_SERVICE_VERSION_MINOR}.${RELEASE_SERVICE_VERSION_MICRO}")
project(audiotube VERSION ${RELEASE_SERVICE_VERSION})
include(FeatureSummary)
set(PROJECT_VERSION "22.04")
set(QT5_MIN_VERSION 5.15)
set(KF5_MIN_VERSION 5.81)
@@ -33,11 +38,12 @@ ecm_setup_version(${PROJECT_VERSION}
kde_enable_exceptions()
find_package(Qt5 ${QT5_MIN_VERSION} REQUIRED COMPONENTS Core Gui Qml QuickControls2 Svg Sql)
find_package(KF5 ${KF5_MIN_VERSION} REQUIRED COMPONENTS Kirigami2 I18n CoreAddons Crash)
find_package(Qt${QT_MAJOR_VERSION} ${QT5_MIN_VERSION} REQUIRED COMPONENTS Core Gui Qml QuickControls2 Svg Sql Widgets Concurrent)
find_package(KF5 ${KF5_MIN_VERSION} REQUIRED COMPONENTS Kirigami2 I18n CoreAddons Crash WindowSystem)
find_package(pybind11 REQUIRED)
find_package(Ytdlp REQUIRED RUNTIME)
find_package(YTMusicAPI REQUIRED RUNTIME)
find_package(YTMusicAPI 0.24.0 REQUIRED RUNTIME)
find_package(KF5KirigamiAddons 0.6.0 REQUIRED)
ki18n_install(po)
+117
View File
@@ -0,0 +1,117 @@
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.
Preamble
The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Lesser General Public License instead.) You can apply it to your programs, too.
When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights.
We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software.
Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations.
Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and modification follow.
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you".
Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does.
1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program.
You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions:
a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License.
c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program.
In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License.
3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable.
If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance.
5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it.
6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License.
7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program.
If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances.
It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice.
This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License.
9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns.
Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation.
10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found.
one line to give the program's name and an idea of what it does. Copyright (C) yyyy name of author
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program.
You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker.
signature of Ty Coon, 1 April 1989 Ty Coon, President of Vice
+6
View File
@@ -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/multimedia/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:
+13 -1
View File
@@ -4,8 +4,20 @@
find_package(Python3 REQUIRED COMPONENTS Interpreter)
execute_process(COMMAND ${Python3_EXECUTABLE} -c "import ytmusicapi" RESULT_VARIABLE YTMUSICAPI_CHECK_RESULT)
execute_process(COMMAND ${Python3_EXECUTABLE} -c "import ytmusicapi; print(ytmusicapi.__version__)" RESULT_VARIABLE YTMUSICAPI_CHECK_RESULT OUTPUT_VARIABLE YTMusicAPI_VERSION)
string(STRIP ${YTMusicAPI_VERSION} YTMusicAPI_VERSION)
if (${YTMUSICAPI_CHECK_RESULT} EQUAL 0)
set(YTMusicAPI_FOUND TRUE)
endif()
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(YTMusicAPI
FOUND_VAR
YTMusicAPI_FOUND
REQUIRED_VARS
Python3_EXECUTABLE
VERSION_VAR
YTMusicAPI_VERSION
)
+21
View File
@@ -0,0 +1,21 @@
{
"name": "kirigami-addons",
"config-opts": [
"-DBUILD_TESTING=OFF",
"-DCMAKE_BUILD_TYPE=Release"
],
"buildsystem": "cmake-ninja",
"sources": [
{
"type": "archive",
"url": "https://download.kde.org/stable/kirigami-addons/kirigami-addons-0.7.0.tar.xz",
"sha256": "0132a58b150229544a61e17e792c48cfc6daa03a8be9c7acd873a6c30d283df7",
"x-checker-data": {
"type": "anitya",
"project-id": 242933,
"stable-only": true,
"url-template": "https://download.kde.org/stable/kirigami-addons/kirigami-addons-$version.tar.xz"
}
}
]
}
+3
View File
@@ -0,0 +1,3 @@
SPDX-FileCopyrightText: 2023 Jonah Brüchert <[email protected]>
SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
+22 -22
View File
@@ -5,26 +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/9a/bf/1bc7e3096ddc2c398b3d04176530a9c02efe08546d9730c9eef0b07a0a43/yt_dlp-2022.5.18-py2.py3-none-any.whl",
"sha256": "deec1009442312c1e2ee5298966842194d0e950b433f0d4fc844ef464b9c32a7"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/11/dd/e015f3780f42dd9af62cf0107b44ea1298926627ecd70c17b0e484e95bcd/certifi-2022.5.18.1-py3-none-any.whl",
"sha256": "f1d53542ee8cbedbe2118b5686372fb33c297fcd6379b050cca0ef13a597382a"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/f8/a3/622d9acbfb9a71144b5d7609906bc648c62e3ca5fdbb1c8cca222949d82c/websockets-10.3.tar.gz",
"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",
@@ -32,8 +12,28 @@
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/24/40/e249ac3845a2333ce50f1bb02299ffb766babdfe80ca9d31e0158ad06afd/pycryptodomex-3.14.1.tar.gz",
"sha256": "2ce76ed0081fd6ac8c74edc75b9d14eca2064173af79843c24fa62573263c1f2"
"url": "https://files.pythonhosted.org/packages/71/4c/3db2b8021bd6f2f0ceb0e088d6b2d49147671f25832fb17970e9b583d742/certifi-2022.12.7-py3-none-any.whl",
"sha256": "4ad3232f5e926d6718ec31cfc1fcadfde020920e278684144551c91769c7bc18"
},
{
"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/3d/07/cfd8f52b9068877801317d26dc7225e19421bc659e1395d2cd6933b1a351/pycryptodomex-3.17.tar.gz",
"sha256": "0af93aad8d62e810247beedef0261c148790c52f3cd33643791cc6396dd217c1"
},
{
"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/a7/df/498c57f641e9993376cf52489047158e6d660e8bab06b72c470ad5cce2bd/yt_dlp-2023.3.4-py2.py3-none-any.whl",
"sha256": "40ca421407ce07c8fd700854fd978d58526ec6fff3468caa34ff1c7333b8dc34"
}
]
}
+12 -12
View File
@@ -7,33 +7,33 @@
"sources": [
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/ec/03/062e6444ce4baf1eac17a6a0ebfe36bb1ad05e1df0e20b110de59c278498/urllib3-1.26.9-py2.py3-none-any.whl",
"sha256": "44ece4d53fb1706f667c9bd1c648f5469a2ec925fcf3a776667042d645472c14"
"url": "https://files.pythonhosted.org/packages/71/4c/3db2b8021bd6f2f0ceb0e088d6b2d49147671f25832fb17970e9b583d742/certifi-2022.12.7-py3-none-any.whl",
"sha256": "4ad3232f5e926d6718ec31cfc1fcadfde020920e278684144551c91769c7bc18"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/11/dd/e015f3780f42dd9af62cf0107b44ea1298926627ecd70c17b0e484e95bcd/certifi-2022.5.18.1-py3-none-any.whl",
"sha256": "f1d53542ee8cbedbe2118b5686372fb33c297fcd6379b050cca0ef13a597382a"
"url": "https://files.pythonhosted.org/packages/ff/d7/8d757f8bd45be079d76309248845a04f09619a7b17d6dfc8c9ff6433cac2/charset-normalizer-3.1.0.tar.gz",
"sha256": "34e0a2f9c370eb95597aae63bf85eb5e96826d81e3dcf88b8886012906f509b5"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/06/b3/24afc8868eba069a7f03650ac750a778862dc34941a4bebeb58706715726/charset_normalizer-2.0.12-py3-none-any.whl",
"sha256": "6881edbebdb17b39b4eaaa821b438bf6eddffb4468cf344f09f89def34a8b1df"
"url": "https://files.pythonhosted.org/packages/fc/34/3030de6f1370931b9dbb4dad48f6ab1015ab1d32447850b9fc94e60097be/idna-3.4-py3-none-any.whl",
"sha256": "90b77e79eaa3eba6de819a0c442c0b4ceefc341a7a2ab77d7562bf49f425c5c2"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/2d/61/08076519c80041bc0ffa1a8af0cbd3bf3e2b62af10435d269a9d0f40564d/requests-2.27.1-py2.py3-none-any.whl",
"sha256": "f22fa1e554c9ddfd16e6e41ac79759e17be9e492b3587efa038054674760e72d"
"url": "https://files.pythonhosted.org/packages/d2/f4/274d1dbe96b41cf4e0efb70cbced278ffd61b5c7bb70338b62af94ccb25b/requests-2.28.2-py3-none-any.whl",
"sha256": "64299f4909223da747622c030b781c0d7811e359c37124b4bd368fb8c6518baa"
},
{
"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/fe/ca/466766e20b767ddb9b951202542310cba37ea5f2d792dae7589f1741af58/urllib3-1.26.14-py2.py3-none-any.whl",
"sha256": "75edcdc2f7d85b137124a6c3c9fc3933cdeaa12ecb9a6a959f22797a0feca7e1"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/04/a2/d918dcd22354d8958fe113e1a3630137e0fc8b44859ade3063982eacd2a4/idna-3.3-py3-none-any.whl",
"sha256": "84d9dd047ffa80596e0f246e2eab0b391788b0503584e8945f2368256d2735ff"
"url": "https://files.pythonhosted.org/packages/14/a9/5ba638ca601c74f169e0e0b055526566f2fa6b6402233a29aba607dca58e/ytmusicapi-0.25.0-py3-none-any.whl",
"sha256": "be355bb3409c0e6c25a95ffd92213bd216561cdd8a0493a36a82d1726ff6efb9"
}
]
}
BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.2 KiB

After

Width:  |  Height:  |  Size: 7.4 KiB

+53 -3
View File
@@ -19,14 +19,19 @@ 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="ia">AudioTube</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>
<name xml:lang="pa">ਆਡੀਓ-ਟਿਊਬ</name>
<name xml:lang="pl">AudioTube</name>
<name xml:lang="pt">AudioTube</name>
<name xml:lang="pt-BR">AudioTube</name>
<name xml:lang="ro">AudioTube</name>
<name xml:lang="ru">AudioTube</name>
<name xml:lang="sk">AudioTube</name>
<name xml:lang="sl">AudioTube</name>
<name xml:lang="sv">AudioTube</name>
@@ -46,23 +51,28 @@ 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="ia">Cliente de musica de YouTube convergente</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>
<summary xml:lang="pl">Adaptacyjny program do YouTube Music</summary>
<summary xml:lang="pt">Cliente de música do YouTube convergente</summary>
<summary xml:lang="pt-BR">Um cliente convergente para o YouTube Music</summary>
<summary xml:lang="ro">Client convergent de muzică pentru YouTube</summary>
<summary xml:lang="ru">Клиент для YouTube Music</summary>
<summary xml:lang="sl">Konvergentni odjemalec glasbe YouTube</summary>
<summary xml:lang="sv">Konvergent YouTube-musikprogram</summary>
<summary xml:lang="tr">Yakınsak YouTube Müzik istemcisi</summary>
<summary xml:lang="tr">Yakınsak YouTube Müzik İstemcisi</summary>
<summary xml:lang="uk">Зручний музичний клієнт YouTube</summary>
<summary xml:lang="x-test">xxConvergent YouTube Music clientxx</summary>
<summary xml:lang="zh-CN">桌面和移动设备通用 YouTube Music 客户端</summary>
<metadata_license>CC0-1.0</metadata_license>
<project_license>GPL-2.0+</project_license>
<developer_name>KDE Community</developer_name>
<developer_name xml:lang="ar">مجتمع كدي</developer_name>
<developer_name xml:lang="ar">مجتمع كِيدِي</developer_name>
<developer_name xml:lang="az">KDE İcması</developer_name>
<developer_name xml:lang="ca">La comunitat KDE</developer_name>
<developer_name xml:lang="ca-valencia">La comunitat KDE</developer_name>
@@ -74,14 +84,19 @@ 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="ia">Communitate de KDE</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>
<developer_name xml:lang="pa">ਕੇਡੀਈ ਕਮਿਊਨਟੀ</developer_name>
<developer_name xml:lang="pl">Społeczność KDE</developer_name>
<developer_name xml:lang="pt">Comunidade do KDE</developer_name>
<developer_name xml:lang="pt-BR">A Comunidade KDE</developer_name>
<developer_name xml:lang="ro">Comunitatea KDE</developer_name>
<developer_name xml:lang="ru">Сообщество KDE</developer_name>
<developer_name xml:lang="sk">KDE komunita</developer_name>
<developer_name xml:lang="sl">Skupnost KDE</developer_name>
<developer_name xml:lang="sv">KDE-gemenskapen</developer_name>
@@ -92,6 +107,27 @@ SPDX-License-Identifier: CC0-1.0
<content_rating type="oars-1.0"/>
<url type="homepage">https://apps.kde.org/en/audiotube</url>
<releases>
<release version="23.04.1" date="2023-05-11"/>
<release version="23.04.0" date="2023-04-20"/>
<release version="23.01" date="2023-01-30">
<url>https://plasma-mobile.org/2023/01/30/january-blog-post/</url>
</release>
<release version="22.11" date="2022-11-30">
<url>https://plasma-mobile.org/2022/11/30/plasma-mobile-gear-22-11/</url>
</release>
<release version="22.09" date="2022-09-27">
<url>https://www.plasma-mobile.org/2022/09/27/plasma-mobile-gear-22-09/</url>
</release>
<release version="22.06" date="2022-06-24">
<url>https://www.plasma-mobile.org/2022/06/28/plasma-mobile-gear-22-06/</url>
<description>
<ul>
<li>Add library page which shows favourites and most played songs</li>
<li>Improve layout of the search popup</li>
<li>General performance improvements including startup</li>
</ul>
</description>
</release>
<release version="22.04" date="2022-04-26">
<url>https://www.plasma-mobile.org/2022/04/26/plasma-mobile-gear-22-04/</url>
<description>
@@ -118,9 +154,18 @@ SPDX-License-Identifier: CC0-1.0
</releases>
<launchable type="desktop-id">org.kde.audiotube.desktop</launchable>
<screenshots>
<screenshot>
<image>https://cdn.kde.org/screenshots/audiotube/library.png</image>
</screenshot>
<screenshot>
<image>https://cdn.kde.org/screenshots/audiotube/player.png</image>
</screenshot>
<screenshot>
<image>https://cdn.kde.org/screenshots/audiotube/desktop.png</image>
</screenshot>
<screenshot>
<image>https://cdn.kde.org/screenshots/audiotube/mobile_album.png</image>
</screenshot>
<screenshot>
<image>https://cdn.kde.org/screenshots/audiotube/mobile_playlist.png</image>
</screenshot>
@@ -141,14 +186,19 @@ SPDX-License-Identifier: CC0-1.0
<p xml:lang="es">AudioTube puede buscar música de YouTube, listar álbumes y artistas, reproducir las listas de reproducción generadas, álbumes y le permite crear su propia lista de reproducción.</p>
<p xml:lang="eu">AudioTube-k YouTube Music-en bilatu dezake, albumak eta artistak zerrendatu, automatikoki sortutako jotze-zerrendak eta albumak jo, eta zure jotze-zerrenda osatzeko aukera eskaintzen dizu.</p>
<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="fr">AudioTube peut effectuer des recherches de musiques sur la partie « Musique » de YouTube, é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="ia">AudioTube pote cercar in YouTube Music, listar albums e artistas, reproducer listas de reproduction generate automaticamente, albums e te permitte poner tu proprie lista de reproduction insimul.</p>
<p xml:lang="id">AudioTube dapat menelusuri YouTube Music, mendaftarkan 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>
<p xml:lang="pl">AudioTube może przeszukiwać serwis YouTube Music, wypisać albumy i wykonawców, odtwarzać samoczynnie utworzone listy odtwarzania, albumy oraz umożliwia tworzenie własnych list odtwarzania.</p>
<p xml:lang="pt">O AudioTube consegue pesquisar no YouTube Music, enumerar os álbuns e artistas, reproduzir listas geradas automaticamente, álbuns e permite-lhe reproduzir as suas próprias listas de reprodução.</p>
<p xml:lang="pt-BR">O AudioTube pode pesquisar no YouTube Music, listar álbuns e artistas, rodar listas de reprodução geradas automaticamente, álbuns inteiros, e criar a sua própria lista de reprodução.</p>
<p xml:lang="ru">AudioTube позволяет выполнять поиск в сервисе YouTube Music, просматривать списки найденных альбомов и исполнителей, проигрывать автоматически созданные списки воспроизведения и альбомы, а также использовать свои собственные списки воспроизведения.</p>
<p xml:lang="sl">AudioTube lahko išče po YouTube Music, izdela sezname albumov in avtorjev, samodejno predvaja generirane sezname, albume in sestavlja vaše sezname predvajanja.</p>
<p xml:lang="sv">AudioTube kan söka på YouTube Music, lista album och artister, spela upp automatiskt genererade spellistor, albums och låter dig sammanställa egna spellistor.</p>
<p xml:lang="tr">AudioTube, YouTube Müzik'te arama yapabilir; albümleri, sanatçıları listeler; kendiliğinden oluşturulmuş çalma listelerini, albümleri çalar ve kendi çalma listenizi oluşturmanıza izin verir.</p>
+10
View File
@@ -12,14 +12,19 @@ Name[eu]=AudioTube
Name[fi]=AudioTube
Name[fr]=AudioTube
Name[hi]=ओडियो-ट्यूब
Name[ia]=AudioTube
Name[id]=AudioTube
Name[it]=AudioTube
Name[ka]=AudioTube
Name[ko]=AudioTube
Name[nl]=AudioTube
Name[nn]=AudioTube
Name[pa]=ਆਡੀਓ-ਟਿਊਬ
Name[pl]=AudioTube
Name[pt]=AudioTube
Name[pt_BR]=AudioTube
Name[ro]=AudioTube
Name[ru]=AudioTube
Name[sk]=AudioTube
Name[sl]=AudioTube
Name[sv]=AudioTube
@@ -40,14 +45,19 @@ Comment[eu]=YouTube Music bezeroa
Comment[fi]=YouTube Music -asiakas
Comment[fr]=Client de musique sur Youtube
Comment[hi]=यूट्यूब संगीत क्लाएंट
Comment[ia]=Clientede musica de YouTube
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
Comment[pa]=ਯੂਟਿਊਬ ਸੰਗੀਤ ਕਲਾਈਂਟ
Comment[pl]=Program do YouTube Music
Comment[pt]=Cliente do YouTube Music
Comment[pt_BR]=Cliente YouTube Music
Comment[ro]=Client de muzică pentru YouTube
Comment[ru]=Клиент для YouTube Music
Comment[sk]=Hudobný klient YouTube
Comment[sl]=Glasbeni odjemalec Youtube
Comment[sv]=YouTube-musikprogram
+3 -2
View File
@@ -1,7 +1,7 @@
{
"id": "org.kde.audiotube",
"runtime": "org.kde.Platform",
"runtime-version": "5.15-21.08",
"runtime-version": "5.15-22.08",
"sdk": "org.kde.Sdk",
"command": "audiotube",
"tags": ["nightly"],
@@ -23,12 +23,13 @@
"modules": [
"flatpak/python3-yt-dlp.json",
"flatpak/python3-ytmusicapi.json",
"flatpak/kirigami-addons.json",
{
"name": "pybind11",
"config-opts": ["-DPYBIND11_FINDPYTHON=ON", "-DPYBIND11_TEST=OFF"],
"buildsystem": "cmake-ninja",
"builddir": true,
"sources": [ { "type": "git", "url": "https://github.com/pybind/pybind11", "tag": "v2.9.1" } ]
"sources": [ { "type": "git", "url": "https://github.com/pybind/pybind11", "tag": "v2.10.3" } ]
},
{
"name": "org.kde.audiotube",
+1 -1
View File
@@ -1 +1 @@
<?xml version="1.0" encoding="UTF-8"?><svg width="48" height="48" version="1.1" viewBox="0 0 12.7 12.7" xmlns="http://www.w3.org/2000/svg" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><linearGradient id="a" x1="25" x2="25" y1="3" y2="42.605" gradientTransform="matrix(.26458 0 0 .26458 5.101e-5 3.6667e-7)" gradientUnits="userSpaceOnUse"><stop stop-color="#f47750" offset="0"/><stop stop-color="#ed1515" offset="1"/></linearGradient><linearGradient id="d" x1="24" x2="24" y1="35.353" y2="12.647" gradientUnits="userSpaceOnUse"><stop stop-color="#31363b" offset="0"/><stop stop-color="#5f6a73" offset="1"/></linearGradient><linearGradient id="c" x1="24" x2="24" y1="29" y2="19" gradientUnits="userSpaceOnUse"><stop stop-color="#4d4d4d" offset="0"/><stop stop-color="#737373" offset="1"/></linearGradient><linearGradient id="b" x1="6.35" x2="6.35" y1="9.525" y2="-1.8372" gradientUnits="userSpaceOnUse"><stop stop-color="#7f8c8d" offset="0"/><stop stop-color="#929d9e" offset="1"/></linearGradient></defs><metadata><rdf:RDF><cc:Work rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/><dc:title/></cc:Work></rdf:RDF></metadata><g stroke-width=".26458"><rect x="1.0584" y="1.0583" width="10.583" height="10.583" rx="1.5875" ry="1.5875" fill="#a83226" style="paint-order:stroke fill markers"/><rect x="1.0584" y="1.0583" width="10.583" height="10.319" rx="1.5875" ry="1.5875" fill="url(#a)" style="paint-order:stroke fill markers"/><circle cx="6.35" cy="6.35" r="3.175" fill="none" stroke="#eee" stroke-linecap="square" stroke-width=".26458"/><path d="m8.3465 6.35-3.0549 1.7637 3e-7 -1.7637-3e-7 -1.7637 1.5274 0.88187z" fill="#fff"/><path d="m2.3962 5.8208a3.9538 3.9538 0 0 1 3.9538-3.9538 3.9538 3.9538 0 0 1 3.9538 3.9538" fill="none" stroke="url(#b)" stroke-linecap="square" stroke-width=".26458"/><path d="m4.3731 2.3967a3.9538 3.9538 0 0 1 3.9538 1e-7" fill="none" stroke="#6b6b6b" stroke-linecap="round" stroke-width=".52917"/><path transform="scale(.26458)" d="m8 19c-0.554 0-1 0.446-1 1v8c0 0.554 0.446 1 1 1h2c0.554 0 1-0.446 1-1v-8c0-0.554-0.446-1-1-1h-2zm30 0c-0.554 0-1 0.446-1 1v8c0 0.554 0.446 1 1 1h2c0.554 0 1-0.446 1-1v-8c0-0.554-0.446-1-1-1h-2z" fill="url(#c)"/><path transform="scale(.26458)" d="m8 19c-0.554 0-1 0.446-1 1v8c0 0.554 0.446 1 1 1h2v-10h-2zm30 0v10h2c0.554 0 1-0.446 1-1v-8c0-0.554-0.446-1-1-1h-2z" fill="url(#d)"/></g></svg>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" width="48" height="48" viewBox="0 0 12.7 12.7"><defs><linearGradient id="c"><stop offset="0" stop-color="#dc8689"/><stop offset="1" stop-color="#d56062"/></linearGradient><linearGradient id="b"><stop offset="0" stop-color="#da4453"/><stop offset="1" stop-color="#e74c3c"/></linearGradient><linearGradient id="a"><stop offset="0" stop-color="#c0392b"/><stop offset="1" stop-color="#c0392b" stop-opacity="0"/></linearGradient><linearGradient xlink:href="#a" id="e" x1="6.08542" x2="6.08542" y1="6.35" y2="11.3773" gradientUnits="userSpaceOnUse"/><linearGradient xlink:href="#b" id="d" x1="6.61458" x2="6.61458" y1="6.2178" y2="1.0583" gradientTransform="translate(0 -.15143)" gradientUnits="userSpaceOnUse"/><linearGradient xlink:href="#c" id="g" x1="10.58366" x2="11.64167" y1="6.08397" y2="6.08542" gradientUnits="userSpaceOnUse"/><linearGradient xlink:href="#c" id="f" x1="1.05833" x2="2.38125" y1="6.08542" y2="6.08542" gradientTransform="translate(-3.43958)" gradientUnits="userSpaceOnUse"/></defs><rect width="10.583" height="10.583" x="1.0584" y="1.0583" fill="#a83226" paint-order="stroke fill markers" rx="1.5875" ry="1.5875"/><rect width="10.583" height="10.319" x="1.0584" y=".90687" fill="url(#d)" paint-order="stroke fill markers" rx="1.5875" ry="1.5875"/><circle cx="6.35" cy="6.34408" r="3.97467" fill="none" stroke="#a83226" stroke-linecap="square" stroke-width=".51752"/><path fill="url(#e)" d="M1.05885 6.08542v3.83645c0 .87947.70803 1.5875 1.5875 1.5875h7.40782c.87946 0 1.5875-.70803 1.5875-1.5875V6.08542Z" paint-order="stroke fill markers"/><path fill="#ad3327" d="M1.05833 6.08542v.52916h2.51355a.132.132 0 0 0 .13229-.13229v-.26458a.132.132 0 0 0-.1323-.1323H1.05834z"/><path fill="#ac3327" d="M9.6578 6.08542a.132.132 0 0 0-.13228.13229v.26458a.132.132 0 0 0 .13229.1323h1.98386v-.52917Z"/><circle cx="6.3499" cy="6.06637" r="3.97467" fill="none" stroke="#dc8689" stroke-linecap="square" stroke-width=".51752"/><g fill="#ad3327" transform="translate(-.52917 -.26458)"><rect width=".52917" height=".52917" x="4.49792" y="6.35" rx=".13229" ry=".13229"/><rect width=".52917" height="4.7625" x="5.29167" y="4.49792" rx=".13229" ry=".13229"/><rect width=".52917" height="3.70417" x="6.08542" y="5.02708" rx=".13229" ry=".13229"/><rect width=".52917" height="2.64583" x="6.87917" y="5.55625" rx=".13229" ry=".13229"/><rect width=".52917" height="1.5875" x="7.67292" y="6.08542" rx=".13229" ry=".13229"/></g><path fill="#a83226" d="M7.9375 6.489v.27958c0 .06128.059.11059.1323.11059h.26458c.07328 0 .13229-.0493.13229-.1106v-.27956c-.00353.0701-.0613.12557-.1323.12557H8.0698c-.071 0-.12876-.05548-.13229-.12557z"/><path fill="#ad3327" d="M8.73125 6.22443V6.504c0 .06128.059.11058.1323.11058h.26458c.07328 0 .13229-.0493.13229-.11058v-.27957c-.00353.07009-.0613.12557-.1323.12557h-.26458c-.071 0-.12876-.05548-.13229-.12557z"/><rect width=".52917" height=".52917" x="3.96875" y="5.82083" fill="#f0b4ba" rx=".13229" ry=".13229"/><rect width=".52917" height="5.29167" x="4.7625" y="3.43958" fill="#fff" rx=".13229" ry=".13229"/><rect width=".52917" height="4.23333" x="5.55625" y="3.96875" fill="#fff" rx=".13229" ry=".13229"/><rect width=".52917" height="3.175" x="6.35" y="4.49792" fill="#fff" rx=".13229" ry=".13229"/><rect width=".52917" height="2.11667" x="7.14375" y="5.02708" fill="#fff" rx=".13229" ry=".13229"/><rect width=".52917" height="1.05833" x="7.9375" y="5.55625" fill="#fff" rx=".13229" ry=".13229"/><path fill="#dc8689" d="M2.38125 5.82083V6.35h1.19063a.132.132 0 0 0 .13229-.1323v-.26457a.132.132 0 0 0-.1323-.1323z"/><rect width=".52917" height=".52917" x="9.26042" y="6.08542" fill="#f0b4ba" rx=".13229" ry=".13229" transform="translate(-.52917 -.26458)"/><path fill="#dc8689" d="M9.6573 5.82083a.132.132 0 0 0-.1323.1323v.26458a.132.132 0 0 0 .1323.13229h.66145v-.52917Z"/><rect width="1.32292" height=".52917" x="-2.38125" y="5.82083" fill="url(#f)" rx="0" ry="0" transform="scale(-1 1)"/><rect width="1.32292" height=".52917" x="10.31875" y="5.82083" fill="url(#g)" rx="0" ry="0"/></svg>

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 4.0 KiB

+369 -83
View File
@@ -1,13 +1,13 @@
# Copyright (C) YEAR This file is copyright:
# This file is distributed under the same license as the audiotube package.
#
# Zayed Al-Saidi <[email protected]>, 2022.
# Zayed Al-Saidi <[email protected]>, 2022, 2023.
msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2022-05-23 00:47+0000\n"
"PO-Revision-Date: 2022-01-21 22:52+0400\n"
"POT-Creation-Date: 2023-04-23 04:10+0000\n"
"PO-Revision-Date: 2023-02-02 11:59+0400\n"
"Last-Translator: Zayed Al-Saidi <[email protected]>\n"
"Language-Team: ar\n"
"Language: ar\n"
@@ -16,59 +16,93 @@ msgstr ""
"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"
msgid "Your names"
msgstr "زايد السعيدي"
#, kde-format
msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails"
msgstr "[email protected]"
#: contents/ui/AlbumPage.qml:19 contents/ui/PlayerFooter.qml:192
#: contents/ui/PlaylistPage.qml:19
#: contents/ui/AlbumPage.qml:26 contents/ui/LibraryPage.qml:37
#: contents/ui/LibraryPage.qml:63 contents/ui/LibraryPage.qml:84
#: contents/ui/LibraryPage.qml:332 contents/ui/LibraryPage.qml:358
#: contents/ui/LibraryPage.qml:379 contents/ui/LocalPlaylistPage.qml:42
#: contents/ui/PlaybackHistory.qml:23 contents/ui/PlaylistPage.qml:31
#, kde-format
msgid "Play"
msgstr "شغّل"
#: contents/ui/AlbumPage.qml:61 contents/ui/ArtistPage.qml:101
#: contents/ui/PlaylistPage.qml:67
#: contents/ui/AlbumPage.qml:33 contents/ui/ArtistPage.qml:36
#: contents/ui/LibraryPage.qml:44 contents/ui/LibraryPage.qml:69
#: contents/ui/LibraryPage.qml:92 contents/ui/LibraryPage.qml:339
#: contents/ui/LibraryPage.qml:364 contents/ui/LibraryPage.qml:388
#: contents/ui/LocalPlaylistPage.qml:49 contents/ui/MaximizedPlayerPage.qml:891
#: contents/ui/PlaybackHistory.qml:36 contents/ui/PlaylistPage.qml:38
#, kde-format
msgid "Play Next"
msgstr "شغل التالي"
msgid "Shuffle"
msgstr "اخلط"
#: contents/ui/AlbumPage.qml:66 contents/ui/ArtistPage.qml:107
#: contents/ui/PlaylistPage.qml:72 contents/ui/SearchPage.qml:123
#: contents/ui/AlbumPage.qml:41 contents/ui/LibraryPage.qml:74
#: contents/ui/LibraryPage.qml:100 contents/ui/LibraryPage.qml:369
#: contents/ui/LibraryPage.qml:396 contents/ui/LocalPlaylistPage.qml:55
#: contents/ui/PlaybackHistory.qml:48 contents/ui/PlaylistPage.qml:46
#, fuzzy, kde-format
#| msgid "Add to queue"
msgid "Append to queue"
msgstr "أضف للطابور"
#: contents/ui/AlbumPage.qml:46 contents/ui/ArtistPage.qml:43
#: contents/ui/PlaylistPage.qml:51
#, kde-format
msgid "Add to Playlist"
msgstr "أضف إلى قائمة التّشغيل"
msgid "Open in Browser"
msgstr "افتح في المتصفّح"
#: contents/ui/ArtistPage.qml:39 contents/ui/SearchPage.qml:67
#: contents/ui/AlbumPage.qml:51 contents/ui/ArtistPage.qml:48
#: contents/ui/PlaylistPage.qml:56
#, kde-format
msgid "Share"
msgstr ""
#: contents/ui/AlbumPage.qml:61
#, kde-format
msgid "Album • %1"
msgstr "الألبوم • %1"
#: contents/ui/AlbumPage.qml:105 contents/ui/ArtistPage.qml:137
#: contents/ui/LocalPlaylistPage.qml:114 contents/ui/PlaybackHistory.qml:127
#: contents/ui/PlaylistPage.qml:116 contents/ui/SearchPage.qml:130
#, kde-format
msgid "More"
msgstr "المزيد"
#: contents/ui/ArtistPage.qml:31
#, kde-format
msgid "Radio"
msgstr "راديو"
#: contents/ui/ArtistPage.qml:57
#, kde-format
msgid "Artist"
msgstr "الفنّانون"
#: contents/ui/ArtistPage.qml:79 contents/ui/SearchPage.qml:70
#, 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:55 contents/ui/SearchPage.qml:25
#: contents/ui/ArtistPage.qml:96 contents/ui/SearchPage.qml:26
#, kde-format
msgid "Albums"
msgstr "الألبومات"
#: contents/ui/ArtistPage.qml:57
#: contents/ui/ArtistPage.qml:98
#, kde-format
msgid "Singles"
msgstr "فردي"
#: contents/ui/ArtistPage.qml:59 contents/ui/SearchPage.qml:31
#: contents/ui/ArtistPage.qml:100 contents/ui/SearchPage.qml:32
#, kde-format
msgid "Songs"
msgstr "أغاني"
#: contents/ui/ArtistPage.qml:61 contents/ui/SearchPage.qml:33
#: contents/ui/ArtistPage.qml:102 contents/ui/SearchPage.qml:34
#, kde-format
msgid "Videos"
msgstr "الفيديوهات"
@@ -83,82 +117,334 @@ msgstr "حسنًا"
msgid "Cancel"
msgstr "ألغِ"
#: contents/ui/LibraryPage.qml:15
#: contents/ui/dialogs/AddPlaylistDialog.qml:17
#, fuzzy, kde-format
#| msgid "Add to Playlist"
msgid "Add playlist"
msgstr "أضف إلى قائمة التّشغيل"
#: contents/ui/dialogs/AddPlaylistDialog.qml:23
#: contents/ui/dialogs/RenamePlaylistDialog.qml:24
#, fuzzy, kde-format
#| msgid "Playlist"
msgid "Playlist Title"
msgstr "قائمة التشغيل"
#: contents/ui/dialogs/AddPlaylistDialog.qml:28
#: contents/ui/dialogs/RenamePlaylistDialog.qml:30
#, fuzzy, kde-format
#| msgid "Playlists"
msgid "Playlist Description"
msgstr "قوائم التّشغيل"
#: contents/ui/dialogs/PlaylistDialog.qml:20
#, fuzzy, kde-format
#| msgid "Add to Playlist"
msgid "Add Song to Playlist"
msgstr "أضف إلى قائمة التّشغيل"
#: contents/ui/dialogs/PlaylistDialog.qml:29
#: contents/ui/LocalPlaylistsPage.qml:90
#, fuzzy, kde-format
#| msgid "Playlist"
msgid "New Playlist"
msgstr "قائمة التشغيل"
#: contents/ui/dialogs/RenamePlaylistDialog.qml:18
#, fuzzy, kde-format
#| msgid "Playlist"
msgid "Rename playlist"
msgstr "قائمة التشغيل"
#: contents/ui/LibraryPage.qml:30 contents/ui/LibraryPage.qml:123
#: contents/ui/NavigationBar.qml:48 contents/ui/NavigationBar.qml:54
#: contents/ui/Sidebar.qml:131 contents/ui/Sidebar.qml:138
#, kde-format
msgid "Favourites"
msgstr ""
msgstr "المفضلة"
#: contents/ui/LibraryPage.qml:67
#: contents/ui/LibraryPage.qml:119 contents/ui/LibraryPage.qml:416
#: contents/ui/LibraryPage.qml:623
#, kde-format
msgid "Show All"
msgstr "أظهر الكلّ"
#: contents/ui/LibraryPage.qml:147
#, fuzzy, kde-format
#| msgid "Favourites"
msgid "No Favourites Yet"
msgstr "المفضلة"
#: contents/ui/LibraryPage.qml:325
#, kde-format
msgid "Most played"
msgstr ""
msgstr "الأكثر تشغيلا"
#: contents/ui/main.qml:94
#: contents/ui/LibraryPage.qml:420 contents/ui/NavigationBar.qml:61
#: contents/ui/NavigationBar.qml:67 contents/ui/Sidebar.qml:150
#: contents/ui/Sidebar.qml:157
#, kde-format
msgid "AudioTube"
msgstr "تيوب الصوتي"
msgid "Played Songs"
msgstr "الأغاني المشغلة"
#: contents/ui/PlayerFooter.qml:124
#, kde-format
msgid "Remove Track"
msgstr "أزل المسار"
#: contents/ui/LibraryPage.qml:444
#, fuzzy, kde-format
#| msgid "No songs here yet"
msgid "No Songs Played Yet"
msgstr "لا يوجد أي أغنية بعد"
#: contents/ui/PlayerFooter.qml:141
#, kde-format
msgid "Clear"
msgstr "امسح"
#: contents/ui/PlayerFooter.qml:146 contents/ui/PlaylistPage.qml:26
#, kde-format
msgid "Shuffle"
msgstr "اخلط"
#: contents/ui/PlayerFooter.qml:192
#, kde-format
msgid "Pause"
msgstr "ألبث"
#: contents/ui/PlayerFooter.qml:222
#, kde-format
msgid "No media playing"
msgstr "لا يوجد وسائط تعمل"
#: contents/ui/PlayerFooter.qml:266
#, kde-format
msgid "Expand"
msgstr "وسع"
#: contents/ui/SearchPage.qml:27
#, kde-format
msgid "Artists"
msgstr "الفنّانون"
#: contents/ui/SearchPage.qml:29
#: contents/ui/LibraryPage.qml:611 contents/ui/LocalPlaylistsPage.qml:18
#: contents/ui/LocalPlaylistsPage.qml:78 contents/ui/NavigationBar.qml:75
#: contents/ui/SearchPage.qml:30 contents/ui/Sidebar.qml:167
#, kde-format
msgid "Playlists"
msgstr "قوائم التّشغيل"
#: contents/ui/SearchPage.qml:36
#: contents/ui/LibraryPage.qml:650
#, fuzzy, kde-format
#| msgid "Playlists"
msgid "No Playlists Yet"
msgstr "قوائم التّشغيل"
#: contents/ui/LibraryPage.qml:670 contents/ui/LibraryPage.qml:692
#: contents/ui/LocalPlaylistsPage.qml:33 contents/ui/LocalPlaylistsPage.qml:55
#, kde-format
msgid "Rename"
msgstr ""
#: contents/ui/LibraryPage.qml:679 contents/ui/LibraryPage.qml:700
#: contents/ui/LocalPlaylistsPage.qml:42 contents/ui/LocalPlaylistsPage.qml:63
#, kde-format
msgid "Delete"
msgstr ""
#: contents/ui/LocalPlaylistPage.qml:19
#, fuzzy, kde-format
#| msgid "Remove from History"
msgid "Remove from Playlist"
msgstr "أزل من التّاريخ"
#: contents/ui/LocalPlaylistPage.qml:29
#, kde-format
msgid "This playlist is still empty"
msgstr ""
#: contents/ui/main.qml:109 main.cpp:59
#, kde-format
msgid "AudioTube"
msgstr "تيوب الصوتي"
#: contents/ui/MaximizedPlayerPage.qml:196
#: contents/ui/MinimizedPlayerControls.qml:93
#, kde-format
msgid "No media playing"
msgstr "لا يوجد وسائط تعمل"
#: contents/ui/MaximizedPlayerPage.qml:571
#, kde-format
msgid "%1%"
msgstr ""
#: contents/ui/MaximizedPlayerPage.qml:839
#: contents/ui/MaximizedPlayerPage.qml:1016
#, kde-format
msgid "Remove Track"
msgstr "أزل المسار"
#: contents/ui/MaximizedPlayerPage.qml:870
#, fuzzy, kde-format
#| msgid "Playlist"
msgid "Clear Playlist"
msgstr "قائمة التشغيل"
#: contents/ui/MaximizedPlayerPage.qml:917
#, kde-format
msgid "Upcoming Songs"
msgstr ""
#: contents/ui/NavigationBar.qml:24 contents/ui/Sidebar.qml:100
#, kde-format
msgid "Library"
msgstr "المكتبة"
#: contents/ui/NavigationBar.qml:36 contents/ui/Sidebar.qml:116
#, kde-format
msgid "Search"
msgstr "ابحث"
#: contents/ui/PlaybackHistory.qml:15
#, kde-format
msgid "Unknown list of songs"
msgstr "قائمة غير معروفة من الأغاني"
#: contents/ui/PlaybackHistory.qml:74
#, kde-format
msgid "No songs here yet"
msgstr "لا يوجد أي أغنية بعد"
#: contents/ui/PlaylistPage.qml:67
#, kde-format
msgid "Playlist"
msgstr "قائمة التشغيل"
#: contents/ui/SearchHistoryPage.qml:86 contents/ui/SearchWithDropdown.qml:412
#, kde-format
msgid "remove from search history"
msgstr "أزل من تاريخ البحث"
#: contents/ui/SearchPage.qml:16
#, kde-format
msgid "Previous Searches:"
msgstr "البحوث الأخيرة:"
#: contents/ui/SearchPage.qml:28
#, kde-format
msgid "Artists"
msgstr "الفنّانون"
#: contents/ui/SearchPage.qml:37
#, kde-format
msgid "Unknown"
msgstr "مجهول"
#: contents/ui/SearchPage.qml:117
#: contents/ui/SearchWithDropdown.qml:359
#, kde-format
msgid "Play next"
msgid "No matching previous searches"
msgstr "لا يوجد تطابق من البحوث الأخيرة"
#: contents/ui/ShareMenu.qml:39
#, kde-format
msgid "Share to"
msgstr ""
#: contents/ui/ShareMenu.qml:49 contents/ui/ShareMenu.qml:99
#, kde-format
msgid "Copy Link"
msgstr ""
#: contents/ui/ShareMenu.qml:54 contents/ui/ShareMenu.qml:104
#, kde-format
msgid "Link copied to clipboard"
msgstr ""
#: contents/ui/Sidebar.qml:189
#, kde-format
msgid "About"
msgstr ""
#: contents/ui/Sidebar.qml:203
#, kde-format
msgid "Collapse Sidebar"
msgstr " اطوِ الشريط الجانبي"
#: contents/ui/SongMenu.qml:107 contents/ui/SongMenu.qml:205
#, kde-format
msgid "Play Next"
msgstr "شغل التالي"
#: contents/ui/SearchPage.qml:129
#: contents/ui/SongMenu.qml:116 contents/ui/SongMenu.qml:211
#, kde-format
msgid "Radio"
msgstr "راديو"
msgid "Add to queue"
msgstr "أضف للطابور"
#: contents/ui/SearchPage.qml:147
#: contents/ui/SongMenu.qml:126 contents/ui/SongMenu.qml:221
#, kde-format
msgid "Find music on YouTube Music"
msgid "Remove Favourite"
msgstr "أزل المفضلة"
#: contents/ui/SongMenu.qml:126 contents/ui/SongMenu.qml:221
#, kde-format
msgid "Add Favourite"
msgstr "أضف للمفضلة"
#: contents/ui/SongMenu.qml:143 contents/ui/SongMenu.qml:235
#, kde-format
msgid "Remove from History"
msgstr "أزل من التّاريخ"
#: contents/ui/SongMenu.qml:156 contents/ui/SongMenu.qml:244
#, fuzzy, kde-format
#| msgid "Add to Playlist"
msgid "Add to playlist"
msgstr "أضف إلى قائمة التّشغيل"
#: contents/ui/SongMenu.qml:183 contents/ui/SongMenu.qml:269
#, fuzzy, kde-format
#| msgid "Favourite Songs"
msgid "Share Song"
msgstr "الأغاني المفضّلة"
#: main.cpp:61
#, kde-format
msgid "YouTube Music Player"
msgstr ""
#: main.cpp:63
#, kde-format
msgid "© 2021-2023 Jonah Brüchert, 2021-2023 KDE Community"
msgstr ""
#: main.cpp:64
#, kde-format
msgid "Jonah Brüchert"
msgstr ""
#: main.cpp:64
#, kde-format
msgid "Maintainer"
msgstr ""
#: main.cpp:65
#, kde-format
msgid "Mathis Brüchert"
msgstr ""
#: main.cpp:65
#, kde-format
msgid "Designer"
msgstr ""
#: main.cpp:66
#, kde-format
msgctxt "NAME OF TRANSLATORS"
msgid "Your names"
msgstr "زايد السعيدي"
#: main.cpp:66
#, kde-format
msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails"
msgstr "[email protected]"
#: main.cpp:71
#, fuzzy, kde-format
#| msgid "Find music on YouTube Music"
msgid "Unofficial API for YouTube Music"
msgstr "اعثر على موسيقى على موسيقى يوتيوب"
#: contents/ui/SearchPage.qml:150
#, kde-format
msgid "Search"
msgstr "ابحث"
#~ msgid "played Songs"
#~ msgstr "الأغاني المشغلة"
#~ msgid "Now Playing"
#~ msgstr "المشغل الآن"
#~ msgid "Queue"
#~ msgstr "صُفّ"
#~ msgid "Lyrics"
#~ msgstr "الكلمات"
#~ msgid "Back"
#~ msgstr "عُد"
#~ msgid "Play next"
#~ msgstr "شغل التالي"
#~ msgid "Clear"
#~ msgstr "امسح"
#~ msgid "Pause"
#~ msgstr "ألبث"
#~ msgid "Expand"
#~ msgstr "وسع"
+372 -84
View File
@@ -6,46 +6,80 @@ msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2022-05-23 00:47+0000\n"
"PO-Revision-Date: 2022-04-22 18:44+0400\n"
"Last-Translator: Kheyyam Gojayev <[email protected]>\n"
"POT-Creation-Date: 2023-04-23 04:10+0000\n"
"PO-Revision-Date: 2022-06-19 12:16+0400\n"
"Last-Translator: Kheyyam <[email protected]>\n"
"Language-Team: Azerbaijani <[email protected]>\n"
"Language: az\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Lokalize 21.12.3\n"
"X-Generator: Lokalize 22.04.2\n"
#, kde-format
msgctxt "NAME OF TRANSLATORS"
msgid "Your names"
msgstr "Xəyyam Qocayev"
#, kde-format
msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails"
msgstr "[email protected]"
#: contents/ui/AlbumPage.qml:19 contents/ui/PlayerFooter.qml:192
#: contents/ui/PlaylistPage.qml:19
#: contents/ui/AlbumPage.qml:26 contents/ui/LibraryPage.qml:37
#: contents/ui/LibraryPage.qml:63 contents/ui/LibraryPage.qml:84
#: contents/ui/LibraryPage.qml:332 contents/ui/LibraryPage.qml:358
#: contents/ui/LibraryPage.qml:379 contents/ui/LocalPlaylistPage.qml:42
#: contents/ui/PlaybackHistory.qml:23 contents/ui/PlaylistPage.qml:31
#, kde-format
msgid "Play"
msgstr "Başladın"
#: contents/ui/AlbumPage.qml:61 contents/ui/ArtistPage.qml:101
#: contents/ui/PlaylistPage.qml:67
#: contents/ui/AlbumPage.qml:33 contents/ui/ArtistPage.qml:36
#: contents/ui/LibraryPage.qml:44 contents/ui/LibraryPage.qml:69
#: contents/ui/LibraryPage.qml:92 contents/ui/LibraryPage.qml:339
#: contents/ui/LibraryPage.qml:364 contents/ui/LibraryPage.qml:388
#: contents/ui/LocalPlaylistPage.qml:49 contents/ui/MaximizedPlayerPage.qml:891
#: contents/ui/PlaybackHistory.qml:36 contents/ui/PlaylistPage.qml:38
#, kde-format
msgid "Play Next"
msgstr "Sonrakını oxudun"
msgid "Shuffle"
msgstr "Qarışıq"
#: contents/ui/AlbumPage.qml:66 contents/ui/ArtistPage.qml:107
#: contents/ui/PlaylistPage.qml:72 contents/ui/SearchPage.qml:123
#: contents/ui/AlbumPage.qml:41 contents/ui/LibraryPage.qml:74
#: contents/ui/LibraryPage.qml:100 contents/ui/LibraryPage.qml:369
#: contents/ui/LibraryPage.qml:396 contents/ui/LocalPlaylistPage.qml:55
#: contents/ui/PlaybackHistory.qml:48 contents/ui/PlaylistPage.qml:46
#, kde-format
msgid "Add to Playlist"
msgstr "Mahnı siyahısına əlavə edin"
msgid "Append to queue"
msgstr ""
#: contents/ui/ArtistPage.qml:39 contents/ui/SearchPage.qml:67
#: contents/ui/AlbumPage.qml:46 contents/ui/ArtistPage.qml:43
#: contents/ui/PlaylistPage.qml:51
#, kde-format
msgid "Open in Browser"
msgstr ""
#: contents/ui/AlbumPage.qml:51 contents/ui/ArtistPage.qml:48
#: contents/ui/PlaylistPage.qml:56
#, kde-format
msgid "Share"
msgstr ""
#: contents/ui/AlbumPage.qml:61
#, kde-format
msgid "Album • %1"
msgstr ""
#: contents/ui/AlbumPage.qml:105 contents/ui/ArtistPage.qml:137
#: contents/ui/LocalPlaylistPage.qml:114 contents/ui/PlaybackHistory.qml:127
#: contents/ui/PlaylistPage.qml:116 contents/ui/SearchPage.qml:130
#, kde-format
msgid "More"
msgstr ""
#: contents/ui/ArtistPage.qml:31
#, kde-format
msgid "Radio"
msgstr "Radio"
#: contents/ui/ArtistPage.qml:57
#, fuzzy, kde-format
#| msgid "Artists"
msgid "Artist"
msgstr "İfaçılar"
#: contents/ui/ArtistPage.qml:79 contents/ui/SearchPage.qml:70
#, kde-format
msgid ""
"Video playback is not supported yet. Do you want to play only the audio of "
@@ -54,22 +88,22 @@ msgstr ""
"Video göstərilməsi hələlik dəstəklənmir. Siz yalnız \"%1\" videosunun səsini "
"oynatmaq istəyirsiniz?"
#: contents/ui/ArtistPage.qml:55 contents/ui/SearchPage.qml:25
#: contents/ui/ArtistPage.qml:96 contents/ui/SearchPage.qml:26
#, kde-format
msgid "Albums"
msgstr "Albomlar"
#: contents/ui/ArtistPage.qml:57
#: contents/ui/ArtistPage.qml:98
#, kde-format
msgid "Singles"
msgstr "Musiqilər"
#: contents/ui/ArtistPage.qml:59 contents/ui/SearchPage.qml:31
#: contents/ui/ArtistPage.qml:100 contents/ui/SearchPage.qml:32
#, kde-format
msgid "Songs"
msgstr "Mahnılar"
#: contents/ui/ArtistPage.qml:61 contents/ui/SearchPage.qml:33
#: contents/ui/ArtistPage.qml:102 contents/ui/SearchPage.qml:34
#, kde-format
msgid "Videos"
msgstr "Videolar"
@@ -84,82 +118,336 @@ msgstr "OLDU"
msgid "Cancel"
msgstr "İmtina"
#: contents/ui/LibraryPage.qml:15
#: contents/ui/dialogs/AddPlaylistDialog.qml:17
#, fuzzy, kde-format
#| msgid "Add to Playlist"
msgid "Add playlist"
msgstr "Mahnı siyahısına əlavə edin"
#: contents/ui/dialogs/AddPlaylistDialog.qml:23
#: contents/ui/dialogs/RenamePlaylistDialog.qml:24
#, fuzzy, kde-format
#| msgid "Playlists"
msgid "Playlist Title"
msgstr "Mahnı siyahıları"
#: contents/ui/dialogs/AddPlaylistDialog.qml:28
#: contents/ui/dialogs/RenamePlaylistDialog.qml:30
#, fuzzy, kde-format
#| msgid "Playlists"
msgid "Playlist Description"
msgstr "Mahnı siyahıları"
#: contents/ui/dialogs/PlaylistDialog.qml:20
#, fuzzy, kde-format
#| msgid "Add to Playlist"
msgid "Add Song to Playlist"
msgstr "Mahnı siyahısına əlavə edin"
#: contents/ui/dialogs/PlaylistDialog.qml:29
#: contents/ui/LocalPlaylistsPage.qml:90
#, fuzzy, kde-format
#| msgid "Playlists"
msgid "New Playlist"
msgstr "Mahnı siyahıları"
#: contents/ui/dialogs/RenamePlaylistDialog.qml:18
#, fuzzy, kde-format
#| msgid "Playlists"
msgid "Rename playlist"
msgstr "Mahnı siyahıları"
#: contents/ui/LibraryPage.qml:30 contents/ui/LibraryPage.qml:123
#: contents/ui/NavigationBar.qml:48 contents/ui/NavigationBar.qml:54
#: contents/ui/Sidebar.qml:131 contents/ui/Sidebar.qml:138
#, kde-format
msgid "Favourites"
msgstr ""
msgstr "Süçilmişlər"
#: contents/ui/LibraryPage.qml:67
#: contents/ui/LibraryPage.qml:119 contents/ui/LibraryPage.qml:416
#: contents/ui/LibraryPage.qml:623
#, kde-format
msgid "Show All"
msgstr "Hamısı göstərilsin"
#: contents/ui/LibraryPage.qml:147
#, fuzzy, kde-format
#| msgid "Favourites"
msgid "No Favourites Yet"
msgstr "Süçilmişlər"
#: contents/ui/LibraryPage.qml:325
#, kde-format
msgid "Most played"
msgstr ""
msgstr "Daha çox dinlənilən"
#: contents/ui/main.qml:94
#: contents/ui/LibraryPage.qml:420 contents/ui/NavigationBar.qml:61
#: contents/ui/NavigationBar.qml:67 contents/ui/Sidebar.qml:150
#: contents/ui/Sidebar.qml:157
#, kde-format
msgid "AudioTube"
msgstr "AudioTube"
msgid "Played Songs"
msgstr "Oxudulan mahnılar"
#: contents/ui/PlayerFooter.qml:124
#, kde-format
msgid "Remove Track"
msgstr "Mahnını silin"
#: contents/ui/LibraryPage.qml:444
#, fuzzy, kde-format
#| msgid "No songs here yet"
msgid "No Songs Played Yet"
msgstr "Hələlik burada mahnılar yoxdur"
#: contents/ui/PlayerFooter.qml:141
#, kde-format
msgid "Clear"
msgstr "Təmizləyin"
#: contents/ui/PlayerFooter.qml:146 contents/ui/PlaylistPage.qml:26
#, kde-format
msgid "Shuffle"
msgstr "Qarışıq"
#: contents/ui/PlayerFooter.qml:192
#, kde-format
msgid "Pause"
msgstr "Fasilə"
#: contents/ui/PlayerFooter.qml:222
#, kde-format
msgid "No media playing"
msgstr "Media faylı oynadılmır"
#: contents/ui/PlayerFooter.qml:266
#, kde-format
msgid "Expand"
msgstr "Açmaq"
#: contents/ui/SearchPage.qml:27
#, kde-format
msgid "Artists"
msgstr "İfaçılar"
#: contents/ui/SearchPage.qml:29
#: contents/ui/LibraryPage.qml:611 contents/ui/LocalPlaylistsPage.qml:18
#: contents/ui/LocalPlaylistsPage.qml:78 contents/ui/NavigationBar.qml:75
#: contents/ui/SearchPage.qml:30 contents/ui/Sidebar.qml:167
#, kde-format
msgid "Playlists"
msgstr "Mahnı siyahıları"
#: contents/ui/SearchPage.qml:36
#: contents/ui/LibraryPage.qml:650
#, fuzzy, kde-format
#| msgid "Playlists"
msgid "No Playlists Yet"
msgstr "Mahnı siyahıları"
#: contents/ui/LibraryPage.qml:670 contents/ui/LibraryPage.qml:692
#: contents/ui/LocalPlaylistsPage.qml:33 contents/ui/LocalPlaylistsPage.qml:55
#, kde-format
msgid "Rename"
msgstr ""
#: contents/ui/LibraryPage.qml:679 contents/ui/LibraryPage.qml:700
#: contents/ui/LocalPlaylistsPage.qml:42 contents/ui/LocalPlaylistsPage.qml:63
#, kde-format
msgid "Delete"
msgstr ""
#: contents/ui/LocalPlaylistPage.qml:19
#, fuzzy, kde-format
#| msgid "Playlists"
msgid "Remove from Playlist"
msgstr "Mahnı siyahıları"
#: contents/ui/LocalPlaylistPage.qml:29
#, kde-format
msgid "This playlist is still empty"
msgstr ""
#: contents/ui/main.qml:109 main.cpp:59
#, kde-format
msgid "AudioTube"
msgstr "AudioTube"
#: contents/ui/MaximizedPlayerPage.qml:196
#: contents/ui/MinimizedPlayerControls.qml:93
#, kde-format
msgid "No media playing"
msgstr "Media faylı oynadılmır"
#: contents/ui/MaximizedPlayerPage.qml:571
#, kde-format
msgid "%1%"
msgstr ""
#: contents/ui/MaximizedPlayerPage.qml:839
#: contents/ui/MaximizedPlayerPage.qml:1016
#, kde-format
msgid "Remove Track"
msgstr "Mahnını silin"
#: contents/ui/MaximizedPlayerPage.qml:870
#, fuzzy, kde-format
#| msgid "Playlists"
msgid "Clear Playlist"
msgstr "Mahnı siyahıları"
#: contents/ui/MaximizedPlayerPage.qml:917
#, kde-format
msgid "Upcoming Songs"
msgstr ""
#: contents/ui/NavigationBar.qml:24 contents/ui/Sidebar.qml:100
#, kde-format
msgid "Library"
msgstr ""
#: contents/ui/NavigationBar.qml:36 contents/ui/Sidebar.qml:116
#, kde-format
msgid "Search"
msgstr "Axtarın"
#: contents/ui/PlaybackHistory.qml:15
#, kde-format
msgid "Unknown list of songs"
msgstr "Naməlum mahnı siyahısı"
#: contents/ui/PlaybackHistory.qml:74
#, kde-format
msgid "No songs here yet"
msgstr "Hələlik burada mahnılar yoxdur"
#: contents/ui/PlaylistPage.qml:67
#, fuzzy, kde-format
#| msgid "Playlists"
msgid "Playlist"
msgstr "Mahnı siyahıları"
#: contents/ui/SearchHistoryPage.qml:86 contents/ui/SearchWithDropdown.qml:412
#, kde-format
msgid "remove from search history"
msgstr ""
#: contents/ui/SearchPage.qml:16
#, kde-format
msgid "Previous Searches:"
msgstr ""
#: contents/ui/SearchPage.qml:28
#, kde-format
msgid "Artists"
msgstr "İfaçılar"
#: contents/ui/SearchPage.qml:37
#, kde-format
msgid "Unknown"
msgstr "Bilinməyən"
#: contents/ui/SearchPage.qml:117
#: contents/ui/SearchWithDropdown.qml:359
#, kde-format
msgid "Play next"
msgstr "Sonrakını başladın"
msgid "No matching previous searches"
msgstr ""
#: contents/ui/SearchPage.qml:129
#: contents/ui/ShareMenu.qml:39
#, kde-format
msgid "Radio"
msgstr "Radio"
msgid "Share to"
msgstr ""
#: contents/ui/SearchPage.qml:147
#: contents/ui/ShareMenu.qml:49 contents/ui/ShareMenu.qml:99
#, kde-format
msgid "Find music on YouTube Music"
msgid "Copy Link"
msgstr ""
#: contents/ui/ShareMenu.qml:54 contents/ui/ShareMenu.qml:104
#, kde-format
msgid "Link copied to clipboard"
msgstr ""
#: contents/ui/Sidebar.qml:189
#, kde-format
msgid "About"
msgstr ""
#: contents/ui/Sidebar.qml:203
#, kde-format
msgid "Collapse Sidebar"
msgstr ""
#: contents/ui/SongMenu.qml:107 contents/ui/SongMenu.qml:205
#, kde-format
msgid "Play Next"
msgstr "Sonrakını oxudun"
#: contents/ui/SongMenu.qml:116 contents/ui/SongMenu.qml:211
#, kde-format
msgid "Add to queue"
msgstr ""
#: contents/ui/SongMenu.qml:126 contents/ui/SongMenu.qml:221
#, fuzzy, kde-format
#| msgid "Favourites"
msgid "Remove Favourite"
msgstr "Süçilmişlər"
#: contents/ui/SongMenu.qml:126 contents/ui/SongMenu.qml:221
#, fuzzy, kde-format
#| msgid "Favourites"
msgid "Add Favourite"
msgstr "Süçilmişlər"
#: contents/ui/SongMenu.qml:143 contents/ui/SongMenu.qml:235
#, kde-format
msgid "Remove from History"
msgstr ""
#: contents/ui/SongMenu.qml:156 contents/ui/SongMenu.qml:244
#, fuzzy, kde-format
#| msgid "Add to Playlist"
msgid "Add to playlist"
msgstr "Mahnı siyahısına əlavə edin"
#: contents/ui/SongMenu.qml:183 contents/ui/SongMenu.qml:269
#, fuzzy, kde-format
#| msgid "Favourite Songs"
msgid "Share Song"
msgstr "Seçilmiş mahnılar"
#: main.cpp:61
#, kde-format
msgid "YouTube Music Player"
msgstr ""
#: main.cpp:63
#, kde-format
msgid "© 2021-2023 Jonah Brüchert, 2021-2023 KDE Community"
msgstr ""
#: main.cpp:64
#, kde-format
msgid "Jonah Brüchert"
msgstr ""
#: main.cpp:64
#, kde-format
msgid "Maintainer"
msgstr ""
#: main.cpp:65
#, kde-format
msgid "Mathis Brüchert"
msgstr ""
#: main.cpp:65
#, kde-format
msgid "Designer"
msgstr ""
#: main.cpp:66
#, kde-format
msgctxt "NAME OF TRANSLATORS"
msgid "Your names"
msgstr "Xəyyam Qocayev"
#: main.cpp:66
#, kde-format
msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails"
msgstr "[email protected]"
#: main.cpp:71
#, fuzzy, kde-format
#| msgid "Find music on YouTube Music"
msgid "Unofficial API for YouTube Music"
msgstr "Musiqini YouTube Musiqi-də tapın"
#: contents/ui/SearchPage.qml:150
#, kde-format
msgid "Search"
msgstr "Axtarın"
#, fuzzy
#~| msgid "Played Songs"
#~ msgid "played Songs"
#~ msgstr "Oxudulan mahnılar"
#~ msgid "Now Playing"
#~ msgstr "İndi səslənir"
#~ msgid "Queue"
#~ msgstr "Növbə"
#~ msgid "Back"
#~ msgstr "Geriyə"
#~ msgid "Play next"
#~ msgstr "Sonrakını başladın"
#~ msgid "Clear"
#~ msgstr "Təmizləyin"
#~ msgid "Pause"
#~ msgstr "Fasilə"
#~ msgid "Expand"
#~ msgstr "Açmaq"
+328 -86
View File
@@ -1,53 +1,87 @@
# Translation of audiotube.po to Catalan
# Copyright (C) 2021 This_file_is_part_of_KDE
# Copyright (C) 2021-2023 This_file_is_part_of_KDE
# This file is distributed under the license LGPL version 2.1 or
# version 3 or later versions approved by the membership of KDE e.V.
#
# Antoni Bella Pérez <[email protected]>, 2021.
# Josep M. Ferrer <[email protected]>, 2022, 2023.
msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2022-05-23 00:47+0000\n"
"PO-Revision-Date: 2021-12-05 16:03+0100\n"
"Last-Translator: Antoni Bella Pérez <antonibella5@yahoo.com>\n"
"POT-Creation-Date: 2023-04-23 04:10+0000\n"
"PO-Revision-Date: 2023-03-18 11:23+0100\n"
"Last-Translator: Josep M. Ferrer <txemaq@gmail.com>\n"
"Language-Team: Catalan <[email protected]>\n"
"Language: ca\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Lokalize 21.11.90\n"
"X-Generator: Lokalize 20.12.0\n"
#, kde-format
msgctxt "NAME OF TRANSLATORS"
msgid "Your names"
msgstr "Antoni Bella"
#, kde-format
msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails"
msgstr "[email protected]"
#: contents/ui/AlbumPage.qml:19 contents/ui/PlayerFooter.qml:192
#: contents/ui/PlaylistPage.qml:19
#: contents/ui/AlbumPage.qml:26 contents/ui/LibraryPage.qml:37
#: contents/ui/LibraryPage.qml:63 contents/ui/LibraryPage.qml:84
#: contents/ui/LibraryPage.qml:332 contents/ui/LibraryPage.qml:358
#: contents/ui/LibraryPage.qml:379 contents/ui/LocalPlaylistPage.qml:42
#: contents/ui/PlaybackHistory.qml:23 contents/ui/PlaylistPage.qml:31
#, kde-format
msgid "Play"
msgstr "Reprodueix"
#: contents/ui/AlbumPage.qml:61 contents/ui/ArtistPage.qml:101
#: contents/ui/PlaylistPage.qml:67
#: contents/ui/AlbumPage.qml:33 contents/ui/ArtistPage.qml:36
#: contents/ui/LibraryPage.qml:44 contents/ui/LibraryPage.qml:69
#: contents/ui/LibraryPage.qml:92 contents/ui/LibraryPage.qml:339
#: contents/ui/LibraryPage.qml:364 contents/ui/LibraryPage.qml:388
#: contents/ui/LocalPlaylistPage.qml:49 contents/ui/MaximizedPlayerPage.qml:891
#: contents/ui/PlaybackHistory.qml:36 contents/ui/PlaylistPage.qml:38
#, kde-format
msgid "Play Next"
msgstr "Reprodueix el següent"
msgid "Shuffle"
msgstr "Barreja"
#: contents/ui/AlbumPage.qml:66 contents/ui/ArtistPage.qml:107
#: contents/ui/PlaylistPage.qml:72 contents/ui/SearchPage.qml:123
#: contents/ui/AlbumPage.qml:41 contents/ui/LibraryPage.qml:74
#: contents/ui/LibraryPage.qml:100 contents/ui/LibraryPage.qml:369
#: contents/ui/LibraryPage.qml:396 contents/ui/LocalPlaylistPage.qml:55
#: contents/ui/PlaybackHistory.qml:48 contents/ui/PlaylistPage.qml:46
#, kde-format
msgid "Add to Playlist"
msgstr "Afegeix a la llista de reproducció"
msgid "Append to queue"
msgstr "Afegeix a la cua"
#: contents/ui/ArtistPage.qml:39 contents/ui/SearchPage.qml:67
#: contents/ui/AlbumPage.qml:46 contents/ui/ArtistPage.qml:43
#: contents/ui/PlaylistPage.qml:51
#, kde-format
msgid "Open in Browser"
msgstr "Obre en el navegador"
#: contents/ui/AlbumPage.qml:51 contents/ui/ArtistPage.qml:48
#: contents/ui/PlaylistPage.qml:56
#, kde-format
msgid "Share"
msgstr "Comparteix"
#: contents/ui/AlbumPage.qml:61
#, kde-format
msgid "Album • %1"
msgstr "Àlbum • %1"
#: contents/ui/AlbumPage.qml:105 contents/ui/ArtistPage.qml:137
#: contents/ui/LocalPlaylistPage.qml:114 contents/ui/PlaybackHistory.qml:127
#: contents/ui/PlaylistPage.qml:116 contents/ui/SearchPage.qml:130
#, kde-format
msgid "More"
msgstr "Més"
#: contents/ui/ArtistPage.qml:31
#, kde-format
msgid "Radio"
msgstr "Ràdio"
#: contents/ui/ArtistPage.qml:57
#, kde-format
msgid "Artist"
msgstr "Artista"
#: contents/ui/ArtistPage.qml:79 contents/ui/SearchPage.qml:70
#, kde-format
msgid ""
"Video playback is not supported yet. Do you want to play only the audio of "
@@ -56,22 +90,22 @@ msgstr ""
"Encara no s'admet la reproducció de vídeo. Voleu reproduir només l'àudio de "
"«%1»?"
#: contents/ui/ArtistPage.qml:55 contents/ui/SearchPage.qml:25
#: contents/ui/ArtistPage.qml:96 contents/ui/SearchPage.qml:26
#, kde-format
msgid "Albums"
msgstr "Àlbums"
#: contents/ui/ArtistPage.qml:57
#: contents/ui/ArtistPage.qml:98
#, kde-format
msgid "Singles"
msgstr "Individuals"
#: contents/ui/ArtistPage.qml:59 contents/ui/SearchPage.qml:31
#: contents/ui/ArtistPage.qml:100 contents/ui/SearchPage.qml:32
#, kde-format
msgid "Songs"
msgstr "Cançons"
#: contents/ui/ArtistPage.qml:61 contents/ui/SearchPage.qml:33
#: contents/ui/ArtistPage.qml:102 contents/ui/SearchPage.qml:34
#, kde-format
msgid "Videos"
msgstr "Vídeos"
@@ -86,85 +120,293 @@ msgstr "D'acord"
msgid "Cancel"
msgstr "Cancel·la"
#: contents/ui/LibraryPage.qml:15
#: contents/ui/dialogs/AddPlaylistDialog.qml:17
#, kde-format
msgid "Add playlist"
msgstr "Afegeix una llista de reproducció"
#: contents/ui/dialogs/AddPlaylistDialog.qml:23
#: contents/ui/dialogs/RenamePlaylistDialog.qml:24
#, kde-format
msgid "Playlist Title"
msgstr "Títol de la llista de reproducció"
#: contents/ui/dialogs/AddPlaylistDialog.qml:28
#: contents/ui/dialogs/RenamePlaylistDialog.qml:30
#, kde-format
msgid "Playlist Description"
msgstr "Descripció de la llista de reproducció"
#: contents/ui/dialogs/PlaylistDialog.qml:20
#, kde-format
msgid "Add Song to Playlist"
msgstr "Afegeix una cançó a la llista de reproducció"
#: contents/ui/dialogs/PlaylistDialog.qml:29
#: contents/ui/LocalPlaylistsPage.qml:90
#, kde-format
msgid "New Playlist"
msgstr "Llista de reproducció nova"
#: contents/ui/dialogs/RenamePlaylistDialog.qml:18
#, kde-format
msgid "Rename playlist"
msgstr "Reanomena la llista de reproducció"
#: contents/ui/LibraryPage.qml:30 contents/ui/LibraryPage.qml:123
#: contents/ui/NavigationBar.qml:48 contents/ui/NavigationBar.qml:54
#: contents/ui/Sidebar.qml:131 contents/ui/Sidebar.qml:138
#, kde-format
msgid "Favourites"
msgstr ""
msgstr "Preferides"
#: contents/ui/LibraryPage.qml:67
#: contents/ui/LibraryPage.qml:119 contents/ui/LibraryPage.qml:416
#: contents/ui/LibraryPage.qml:623
#, kde-format
msgid "Show All"
msgstr "Mostra-ho tot"
#: contents/ui/LibraryPage.qml:147
#, kde-format
msgid "No Favourites Yet"
msgstr "Encara sense preferides"
#: contents/ui/LibraryPage.qml:325
#, kde-format
msgid "Most played"
msgstr ""
msgstr "Les més reproduïdes"
#: contents/ui/main.qml:94
#: contents/ui/LibraryPage.qml:420 contents/ui/NavigationBar.qml:61
#: contents/ui/NavigationBar.qml:67 contents/ui/Sidebar.qml:150
#: contents/ui/Sidebar.qml:157
#, kde-format
msgid "AudioTube"
msgstr "AudioTube"
msgid "Played Songs"
msgstr "Cançons reproduïdes"
#: contents/ui/PlayerFooter.qml:124
#: contents/ui/LibraryPage.qml:444
#, kde-format
msgid "Remove Track"
msgstr "Elimina la pista"
msgid "No Songs Played Yet"
msgstr "Encara no hi ha cap cançó reproduïda"
#: contents/ui/PlayerFooter.qml:141
#, kde-format
msgid "Clear"
msgstr "Neteja"
#: contents/ui/PlayerFooter.qml:146 contents/ui/PlaylistPage.qml:26
#, kde-format
msgid "Shuffle"
msgstr "Barreja"
#: contents/ui/PlayerFooter.qml:192
#, kde-format
msgid "Pause"
msgstr "Pausa"
#: contents/ui/PlayerFooter.qml:222
#, kde-format
msgid "No media playing"
msgstr "No s'està reproduint cap suport"
#: contents/ui/PlayerFooter.qml:266
#, kde-format
msgid "Expand"
msgstr "Expandeix"
#: contents/ui/SearchPage.qml:27
#, kde-format
msgid "Artists"
msgstr "Artistes"
#: contents/ui/SearchPage.qml:29
#: contents/ui/LibraryPage.qml:611 contents/ui/LocalPlaylistsPage.qml:18
#: contents/ui/LocalPlaylistsPage.qml:78 contents/ui/NavigationBar.qml:75
#: contents/ui/SearchPage.qml:30 contents/ui/Sidebar.qml:167
#, kde-format
msgid "Playlists"
msgstr "Llistes de reproducció"
#: contents/ui/SearchPage.qml:36
#: contents/ui/LibraryPage.qml:650
#, kde-format
msgid "Unknown"
msgstr "Desconeguda"
msgid "No Playlists Yet"
msgstr "Encara no hi ha cap llista de reproducció"
#: contents/ui/SearchPage.qml:117
#: contents/ui/LibraryPage.qml:670 contents/ui/LibraryPage.qml:692
#: contents/ui/LocalPlaylistsPage.qml:33 contents/ui/LocalPlaylistsPage.qml:55
#, kde-format
msgid "Play next"
msgstr "Reprodueix el següent"
msgid "Rename"
msgstr "Reanomena"
#: contents/ui/SearchPage.qml:129
#: contents/ui/LibraryPage.qml:679 contents/ui/LibraryPage.qml:700
#: contents/ui/LocalPlaylistsPage.qml:42 contents/ui/LocalPlaylistsPage.qml:63
#, kde-format
msgid "Radio"
msgstr "Ràdio"
msgid "Delete"
msgstr "Suprimeix"
#: contents/ui/SearchPage.qml:147
#: contents/ui/LocalPlaylistPage.qml:19
#, kde-format
msgid "Find music on YouTube Music"
msgstr "Cerca a la Música de Youtube"
msgid "Remove from Playlist"
msgstr "Elimina de la llista de reproducció"
#: contents/ui/SearchPage.qml:150
#: contents/ui/LocalPlaylistPage.qml:29
#, kde-format
msgid "This playlist is still empty"
msgstr "Aquesta llista de reproducció encara està buida"
#: contents/ui/main.qml:109 main.cpp:59
#, kde-format
msgid "AudioTube"
msgstr "AudioTube"
#: contents/ui/MaximizedPlayerPage.qml:196
#: contents/ui/MinimizedPlayerControls.qml:93
#, kde-format
msgid "No media playing"
msgstr "No s'està reproduint cap fitxer multimèdia"
#: contents/ui/MaximizedPlayerPage.qml:571
#, kde-format
msgid "%1%"
msgstr "%1%"
#: contents/ui/MaximizedPlayerPage.qml:839
#: contents/ui/MaximizedPlayerPage.qml:1016
#, kde-format
msgid "Remove Track"
msgstr "Elimina la pista"
#: contents/ui/MaximizedPlayerPage.qml:870
#, kde-format
msgid "Clear Playlist"
msgstr "Neteja la llista de reproducció"
#: contents/ui/MaximizedPlayerPage.qml:917
#, kde-format
msgid "Upcoming Songs"
msgstr "Cançons properes"
#: contents/ui/NavigationBar.qml:24 contents/ui/Sidebar.qml:100
#, kde-format
msgid "Library"
msgstr "Biblioteca"
#: contents/ui/NavigationBar.qml:36 contents/ui/Sidebar.qml:116
#, kde-format
msgid "Search"
msgstr "Cerca"
#~ msgid "Play only Audio"
#~ msgstr "Reprodueix només l'àudio"
#: contents/ui/PlaybackHistory.qml:15
#, kde-format
msgid "Unknown list of songs"
msgstr "Llista desconeguda de cançons"
#: contents/ui/PlaybackHistory.qml:74
#, kde-format
msgid "No songs here yet"
msgstr "Encara no hi ha cap cançó"
#: contents/ui/PlaylistPage.qml:67
#, kde-format
msgid "Playlist"
msgstr "Llista de reproducció"
#: contents/ui/SearchHistoryPage.qml:86 contents/ui/SearchWithDropdown.qml:412
#, kde-format
msgid "remove from search history"
msgstr "elimina de l'historial de cerques"
#: contents/ui/SearchPage.qml:16
#, kde-format
msgid "Previous Searches:"
msgstr "Cerques anteriors:"
#: contents/ui/SearchPage.qml:28
#, kde-format
msgid "Artists"
msgstr "Artistes"
#: contents/ui/SearchPage.qml:37
#, kde-format
msgid "Unknown"
msgstr "Desconeguda"
#: contents/ui/SearchWithDropdown.qml:359
#, kde-format
msgid "No matching previous searches"
msgstr "No hi ha cerques anteriors coincidents"
#: contents/ui/ShareMenu.qml:39
#, kde-format
msgid "Share to"
msgstr "Comparteix a"
#: contents/ui/ShareMenu.qml:49 contents/ui/ShareMenu.qml:99
#, kde-format
msgid "Copy Link"
msgstr "Copia l'enllaç"
#: contents/ui/ShareMenu.qml:54 contents/ui/ShareMenu.qml:104
#, kde-format
msgid "Link copied to clipboard"
msgstr "L'enllaç s'ha copiat al porta-retalls"
#: contents/ui/Sidebar.qml:189
#, kde-format
msgid "About"
msgstr "Quant a"
#: contents/ui/Sidebar.qml:203
#, kde-format
msgid "Collapse Sidebar"
msgstr "Redueix la barra lateral"
#: contents/ui/SongMenu.qml:107 contents/ui/SongMenu.qml:205
#, kde-format
msgid "Play Next"
msgstr "Reprodueix el següent"
#: contents/ui/SongMenu.qml:116 contents/ui/SongMenu.qml:211
#, kde-format
msgid "Add to queue"
msgstr "Afegeix a la cua"
#: contents/ui/SongMenu.qml:126 contents/ui/SongMenu.qml:221
#, kde-format
msgid "Remove Favourite"
msgstr "Elimina de les preferides"
#: contents/ui/SongMenu.qml:126 contents/ui/SongMenu.qml:221
#, kde-format
msgid "Add Favourite"
msgstr "Afegeix a les preferides"
#: contents/ui/SongMenu.qml:143 contents/ui/SongMenu.qml:235
#, kde-format
msgid "Remove from History"
msgstr "Elimina de l'historial"
#: contents/ui/SongMenu.qml:156 contents/ui/SongMenu.qml:244
#, kde-format
msgid "Add to playlist"
msgstr "Afegeix a la llista de reproducció"
#: contents/ui/SongMenu.qml:183 contents/ui/SongMenu.qml:269
#, kde-format
msgid "Share Song"
msgstr "Comparteix una cançó"
#: main.cpp:61
#, kde-format
msgid "YouTube Music Player"
msgstr "Reproductor musical del YouTube"
#: main.cpp:63
#, kde-format
msgid "© 2021-2023 Jonah Brüchert, 2021-2023 KDE Community"
msgstr "© 2021-2023 Jonah Brüchert, 2021-2023 KDE Community"
#: main.cpp:64
#, kde-format
msgid "Jonah Brüchert"
msgstr "Jonah Brüchert"
#: main.cpp:64
#, kde-format
msgid "Maintainer"
msgstr "Mantenidor"
#: main.cpp:65
#, kde-format
msgid "Mathis Brüchert"
msgstr "Mathis Brüchert"
#: main.cpp:65
#, kde-format
msgid "Designer"
msgstr "Dissenyador"
#: main.cpp:66
#, kde-format
msgctxt "NAME OF TRANSLATORS"
msgid "Your names"
msgstr "Antoni Bella"
#: main.cpp:66
#, kde-format
msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails"
msgstr "[email protected]"
#: main.cpp:71
#, kde-format
msgid "Unofficial API for YouTube Music"
msgstr "API no oficial per a YouTube Music"
+330 -85
View File
@@ -1,53 +1,87 @@
# Translation of audiotube.po to Catalan (Valencian)
# Copyright (C) 2021 This_file_is_part_of_KDE
# Copyright (C) 2021-2023 This_file_is_part_of_KDE
# This file is distributed under the license LGPL version 2.1 or
# version 3 or later versions approved by the membership of KDE e.V.
#
# Antoni Bella Pérez <[email protected]>, 2021.
# Josep M. Ferrer <[email protected]>, 2022, 2023.
msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2022-05-23 00:47+0000\n"
"PO-Revision-Date: 2021-12-05 16:03+0100\n"
"Last-Translator: Antoni Bella Pérez <antonibella5@yahoo.com>\n"
"POT-Creation-Date: 2023-04-23 04:10+0000\n"
"PO-Revision-Date: 2023-03-18 11:23+0100\n"
"Last-Translator: Josep M. Ferrer <txemaq@gmail.com>\n"
"Language-Team: Catalan <[email protected]>\n"
"Language: ca@valencia\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Lokalize 21.11.90\n"
"X-Generator: Lokalize 20.12.0\n"
#, kde-format
msgctxt "NAME OF TRANSLATORS"
msgid "Your names"
msgstr "Antoni Bella"
#, kde-format
msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails"
msgstr "[email protected]"
#: contents/ui/AlbumPage.qml:19 contents/ui/PlayerFooter.qml:192
#: contents/ui/PlaylistPage.qml:19
#: contents/ui/AlbumPage.qml:26 contents/ui/LibraryPage.qml:37
#: contents/ui/LibraryPage.qml:63 contents/ui/LibraryPage.qml:84
#: contents/ui/LibraryPage.qml:332 contents/ui/LibraryPage.qml:358
#: contents/ui/LibraryPage.qml:379 contents/ui/LocalPlaylistPage.qml:42
#: contents/ui/PlaybackHistory.qml:23 contents/ui/PlaylistPage.qml:31
#, kde-format
msgid "Play"
msgstr "Reprodueix"
msgstr "Reproduïx"
#: contents/ui/AlbumPage.qml:61 contents/ui/ArtistPage.qml:101
#: contents/ui/PlaylistPage.qml:67
#: contents/ui/AlbumPage.qml:33 contents/ui/ArtistPage.qml:36
#: contents/ui/LibraryPage.qml:44 contents/ui/LibraryPage.qml:69
#: contents/ui/LibraryPage.qml:92 contents/ui/LibraryPage.qml:339
#: contents/ui/LibraryPage.qml:364 contents/ui/LibraryPage.qml:388
#: contents/ui/LocalPlaylistPage.qml:49 contents/ui/MaximizedPlayerPage.qml:891
#: contents/ui/PlaybackHistory.qml:36 contents/ui/PlaylistPage.qml:38
#, kde-format
msgid "Play Next"
msgstr "Reprodueix el següent"
msgid "Shuffle"
msgstr "Barreja"
#: contents/ui/AlbumPage.qml:66 contents/ui/ArtistPage.qml:107
#: contents/ui/PlaylistPage.qml:72 contents/ui/SearchPage.qml:123
#: contents/ui/AlbumPage.qml:41 contents/ui/LibraryPage.qml:74
#: contents/ui/LibraryPage.qml:100 contents/ui/LibraryPage.qml:369
#: contents/ui/LibraryPage.qml:396 contents/ui/LocalPlaylistPage.qml:55
#: contents/ui/PlaybackHistory.qml:48 contents/ui/PlaylistPage.qml:46
#, kde-format
msgid "Add to Playlist"
msgstr "Afig a la llista de reproducció"
msgid "Append to queue"
msgstr "Afig a la cua"
#: contents/ui/ArtistPage.qml:39 contents/ui/SearchPage.qml:67
#: contents/ui/AlbumPage.qml:46 contents/ui/ArtistPage.qml:43
#: contents/ui/PlaylistPage.qml:51
#, kde-format
msgid "Open in Browser"
msgstr "Obri en el navegador"
#: contents/ui/AlbumPage.qml:51 contents/ui/ArtistPage.qml:48
#: contents/ui/PlaylistPage.qml:56
#, kde-format
msgid "Share"
msgstr "Compartix"
#: contents/ui/AlbumPage.qml:61
#, kde-format
msgid "Album • %1"
msgstr "Àlbum • %1"
#: contents/ui/AlbumPage.qml:105 contents/ui/ArtistPage.qml:137
#: contents/ui/LocalPlaylistPage.qml:114 contents/ui/PlaybackHistory.qml:127
#: contents/ui/PlaylistPage.qml:116 contents/ui/SearchPage.qml:130
#, kde-format
msgid "More"
msgstr "Més"
#: contents/ui/ArtistPage.qml:31
#, kde-format
msgid "Radio"
msgstr "Ràdio"
#: contents/ui/ArtistPage.qml:57
#, kde-format
msgid "Artist"
msgstr "Artista"
#: contents/ui/ArtistPage.qml:79 contents/ui/SearchPage.qml:70
#, kde-format
msgid ""
"Video playback is not supported yet. Do you want to play only the audio of "
@@ -56,22 +90,22 @@ msgstr ""
"Encara no s'admet la reproducció de vídeo. Voleu reproduir només l'àudio de "
"«%1»?"
#: contents/ui/ArtistPage.qml:55 contents/ui/SearchPage.qml:25
#: contents/ui/ArtistPage.qml:96 contents/ui/SearchPage.qml:26
#, kde-format
msgid "Albums"
msgstr "Àlbums"
#: contents/ui/ArtistPage.qml:57
#: contents/ui/ArtistPage.qml:98
#, kde-format
msgid "Singles"
msgstr "Individuals"
#: contents/ui/ArtistPage.qml:59 contents/ui/SearchPage.qml:31
#: contents/ui/ArtistPage.qml:100 contents/ui/SearchPage.qml:32
#, kde-format
msgid "Songs"
msgstr "Cançons"
#: contents/ui/ArtistPage.qml:61 contents/ui/SearchPage.qml:33
#: contents/ui/ArtistPage.qml:102 contents/ui/SearchPage.qml:34
#, kde-format
msgid "Videos"
msgstr "Vídeos"
@@ -86,82 +120,293 @@ msgstr "D'acord"
msgid "Cancel"
msgstr "Cancel·la"
#: contents/ui/LibraryPage.qml:15
#: contents/ui/dialogs/AddPlaylistDialog.qml:17
#, kde-format
msgid "Add playlist"
msgstr "Afig una llista de reproducció"
#: contents/ui/dialogs/AddPlaylistDialog.qml:23
#: contents/ui/dialogs/RenamePlaylistDialog.qml:24
#, kde-format
msgid "Playlist Title"
msgstr "Títol de la llista de reproducció"
#: contents/ui/dialogs/AddPlaylistDialog.qml:28
#: contents/ui/dialogs/RenamePlaylistDialog.qml:30
#, kde-format
msgid "Playlist Description"
msgstr "Descripció de la llista de reproducció"
#: contents/ui/dialogs/PlaylistDialog.qml:20
#, kde-format
msgid "Add Song to Playlist"
msgstr "Afig una cançó a la llista de reproducció"
#: contents/ui/dialogs/PlaylistDialog.qml:29
#: contents/ui/LocalPlaylistsPage.qml:90
#, kde-format
msgid "New Playlist"
msgstr "Llista de reproducció nova"
#: contents/ui/dialogs/RenamePlaylistDialog.qml:18
#, kde-format
msgid "Rename playlist"
msgstr "Canvia el nom la llista de reproducció"
#: contents/ui/LibraryPage.qml:30 contents/ui/LibraryPage.qml:123
#: contents/ui/NavigationBar.qml:48 contents/ui/NavigationBar.qml:54
#: contents/ui/Sidebar.qml:131 contents/ui/Sidebar.qml:138
#, kde-format
msgid "Favourites"
msgstr ""
msgstr "Preferides"
#: contents/ui/LibraryPage.qml:67
#: contents/ui/LibraryPage.qml:119 contents/ui/LibraryPage.qml:416
#: contents/ui/LibraryPage.qml:623
#, kde-format
msgid "Show All"
msgstr "Mostra-ho tot"
#: contents/ui/LibraryPage.qml:147
#, kde-format
msgid "No Favourites Yet"
msgstr "Encara sense preferides"
#: contents/ui/LibraryPage.qml:325
#, kde-format
msgid "Most played"
msgstr ""
msgstr "Les més reproduïdes"
#: contents/ui/main.qml:94
#: contents/ui/LibraryPage.qml:420 contents/ui/NavigationBar.qml:61
#: contents/ui/NavigationBar.qml:67 contents/ui/Sidebar.qml:150
#: contents/ui/Sidebar.qml:157
#, kde-format
msgid "AudioTube"
msgstr "AudioTube"
msgid "Played Songs"
msgstr "Cançons reproduïdes"
#: contents/ui/PlayerFooter.qml:124
#: contents/ui/LibraryPage.qml:444
#, kde-format
msgid "Remove Track"
msgstr "Elimina la pista"
msgid "No Songs Played Yet"
msgstr "Encara no hi ha cap cançó reproduïda"
#: contents/ui/PlayerFooter.qml:141
#, kde-format
msgid "Clear"
msgstr "Neteja"
#: contents/ui/PlayerFooter.qml:146 contents/ui/PlaylistPage.qml:26
#, kde-format
msgid "Shuffle"
msgstr "Barreja"
#: contents/ui/PlayerFooter.qml:192
#, kde-format
msgid "Pause"
msgstr "Pausa"
#: contents/ui/PlayerFooter.qml:222
#, kde-format
msgid "No media playing"
msgstr "No s'està reproduint cap suport"
#: contents/ui/PlayerFooter.qml:266
#, kde-format
msgid "Expand"
msgstr "Expandeix"
#: contents/ui/SearchPage.qml:27
#, kde-format
msgid "Artists"
msgstr "Artistes"
#: contents/ui/SearchPage.qml:29
#: contents/ui/LibraryPage.qml:611 contents/ui/LocalPlaylistsPage.qml:18
#: contents/ui/LocalPlaylistsPage.qml:78 contents/ui/NavigationBar.qml:75
#: contents/ui/SearchPage.qml:30 contents/ui/Sidebar.qml:167
#, kde-format
msgid "Playlists"
msgstr "Llistes de reproducció"
#: contents/ui/SearchPage.qml:36
#: contents/ui/LibraryPage.qml:650
#, kde-format
msgid "No Playlists Yet"
msgstr "Encara no hi ha cap llista de reproducció"
#: contents/ui/LibraryPage.qml:670 contents/ui/LibraryPage.qml:692
#: contents/ui/LocalPlaylistsPage.qml:33 contents/ui/LocalPlaylistsPage.qml:55
#, kde-format
msgid "Rename"
msgstr "Canvia el nom"
#: contents/ui/LibraryPage.qml:679 contents/ui/LibraryPage.qml:700
#: contents/ui/LocalPlaylistsPage.qml:42 contents/ui/LocalPlaylistsPage.qml:63
#, kde-format
msgid "Delete"
msgstr "Suprimix"
#: contents/ui/LocalPlaylistPage.qml:19
#, kde-format
msgid "Remove from Playlist"
msgstr "Elimina de la llista de reproducció"
#: contents/ui/LocalPlaylistPage.qml:29
#, kde-format
msgid "This playlist is still empty"
msgstr "Esta llista de reproducció encara està buida"
#: contents/ui/main.qml:109 main.cpp:59
#, kde-format
msgid "AudioTube"
msgstr "AudioTube"
#: contents/ui/MaximizedPlayerPage.qml:196
#: contents/ui/MinimizedPlayerControls.qml:93
#, kde-format
msgid "No media playing"
msgstr "No s'està reproduint cap fitxer multimèdia"
#: contents/ui/MaximizedPlayerPage.qml:571
#, kde-format
msgid "%1%"
msgstr "%1%"
#: contents/ui/MaximizedPlayerPage.qml:839
#: contents/ui/MaximizedPlayerPage.qml:1016
#, kde-format
msgid "Remove Track"
msgstr "Elimina la pista"
#: contents/ui/MaximizedPlayerPage.qml:870
#, kde-format
msgid "Clear Playlist"
msgstr "Neteja la llista de reproducció"
#: contents/ui/MaximizedPlayerPage.qml:917
#, kde-format
msgid "Upcoming Songs"
msgstr "Cançons properes"
#: contents/ui/NavigationBar.qml:24 contents/ui/Sidebar.qml:100
#, kde-format
msgid "Library"
msgstr "Biblioteca"
#: contents/ui/NavigationBar.qml:36 contents/ui/Sidebar.qml:116
#, kde-format
msgid "Search"
msgstr "Busca"
#: contents/ui/PlaybackHistory.qml:15
#, kde-format
msgid "Unknown list of songs"
msgstr "Llista desconeguda de cançons"
#: contents/ui/PlaybackHistory.qml:74
#, kde-format
msgid "No songs here yet"
msgstr "Encara no hi ha cap cançó"
#: contents/ui/PlaylistPage.qml:67
#, kde-format
msgid "Playlist"
msgstr "Llista de reproducció"
#: contents/ui/SearchHistoryPage.qml:86 contents/ui/SearchWithDropdown.qml:412
#, kde-format
msgid "remove from search history"
msgstr "elimina de l'historial de busques"
#: contents/ui/SearchPage.qml:16
#, kde-format
msgid "Previous Searches:"
msgstr "Busques anteriors:"
#: contents/ui/SearchPage.qml:28
#, kde-format
msgid "Artists"
msgstr "Artistes"
#: contents/ui/SearchPage.qml:37
#, kde-format
msgid "Unknown"
msgstr "Desconeguda"
#: contents/ui/SearchPage.qml:117
#: contents/ui/SearchWithDropdown.qml:359
#, kde-format
msgid "Play next"
msgstr "Reprodueix el següent"
msgid "No matching previous searches"
msgstr "No hi ha busques anteriors coincidents"
#: contents/ui/SearchPage.qml:129
#: contents/ui/ShareMenu.qml:39
#, kde-format
msgid "Radio"
msgstr "Ràdio"
msgid "Share to"
msgstr "Compartix a"
#: contents/ui/SearchPage.qml:147
#: contents/ui/ShareMenu.qml:49 contents/ui/ShareMenu.qml:99
#, kde-format
msgid "Find music on YouTube Music"
msgstr "Busca a la Música de Youtube"
msgid "Copy Link"
msgstr "Copia l'enllaç"
#: contents/ui/SearchPage.qml:150
#: contents/ui/ShareMenu.qml:54 contents/ui/ShareMenu.qml:104
#, kde-format
msgid "Search"
msgstr "Busca"
msgid "Link copied to clipboard"
msgstr "L'enllaç s'ha copiat al porta-retalls"
#: contents/ui/Sidebar.qml:189
#, kde-format
msgid "About"
msgstr "Quant a"
#: contents/ui/Sidebar.qml:203
#, kde-format
msgid "Collapse Sidebar"
msgstr "Reduïx la barra lateral"
#: contents/ui/SongMenu.qml:107 contents/ui/SongMenu.qml:205
#, kde-format
msgid "Play Next"
msgstr "Reproduïx el següent"
#: contents/ui/SongMenu.qml:116 contents/ui/SongMenu.qml:211
#, kde-format
msgid "Add to queue"
msgstr "Afig a la cua"
#: contents/ui/SongMenu.qml:126 contents/ui/SongMenu.qml:221
#, kde-format
msgid "Remove Favourite"
msgstr "Elimina de les preferides"
#: contents/ui/SongMenu.qml:126 contents/ui/SongMenu.qml:221
#, kde-format
msgid "Add Favourite"
msgstr "Afig a les preferides"
#: contents/ui/SongMenu.qml:143 contents/ui/SongMenu.qml:235
#, kde-format
msgid "Remove from History"
msgstr "Elimina de l'historial"
#: contents/ui/SongMenu.qml:156 contents/ui/SongMenu.qml:244
#, kde-format
msgid "Add to playlist"
msgstr "Afig a la llista de reproducció"
#: contents/ui/SongMenu.qml:183 contents/ui/SongMenu.qml:269
#, kde-format
msgid "Share Song"
msgstr "Compartix una cançó"
#: main.cpp:61
#, kde-format
msgid "YouTube Music Player"
msgstr "Reproductor musical de YouTube"
#: main.cpp:63
#, kde-format
msgid "© 2021-2023 Jonah Brüchert, 2021-2023 KDE Community"
msgstr "© 2021-2023 Jonah Brüchert, 2021-2023 Comunitat KDE"
#: main.cpp:64
#, kde-format
msgid "Jonah Brüchert"
msgstr "Jonah Brüchert"
#: main.cpp:64
#, kde-format
msgid "Maintainer"
msgstr "Mantenidor"
#: main.cpp:65
#, kde-format
msgid "Mathis Brüchert"
msgstr "Mathis Brüchert"
#: main.cpp:65
#, kde-format
msgid "Designer"
msgstr "Dissenyador"
#: main.cpp:66
#, kde-format
msgctxt "NAME OF TRANSLATORS"
msgid "Your names"
msgstr "Antoni Bella"
#: main.cpp:66
#, kde-format
msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails"
msgstr "[email protected]"
#: main.cpp:71
#, kde-format
msgid "Unofficial API for YouTube Music"
msgstr "API no oficial per a YouTube Music"
+327 -83
View File
@@ -1,51 +1,84 @@
# Copyright (C) YEAR This file is copyright:
# This file is distributed under the same license as the audiotube package.
# Vit Pelcak <vpelcak@suse.cz>, 2021, 2022.
# Vit Pelcak <vit@pelcak.org>, 2021, 2022, 2023.
#
msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2022-05-23 00:47+0000\n"
"PO-Revision-Date: 2022-01-11 17:36+0100\n"
"Last-Translator: Vit Pelcak <vpelcak@suse.cz>\n"
"POT-Creation-Date: 2023-04-23 04:10+0000\n"
"PO-Revision-Date: 2023-03-09 13:48+0100\n"
"Last-Translator: Vit Pelcak <vit@pelcak.org>\n"
"Language-Team: Czech <[email protected]>\n"
"Language: cs\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
"X-Generator: Lokalize 21.12.0\n"
"X-Generator: Lokalize 22.12.3\n"
#, kde-format
msgctxt "NAME OF TRANSLATORS"
msgid "Your names"
msgstr "Vít Pelčák"
#, kde-format
msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails"
msgstr "[email protected]"
#: contents/ui/AlbumPage.qml:19 contents/ui/PlayerFooter.qml:192
#: contents/ui/PlaylistPage.qml:19
#: contents/ui/AlbumPage.qml:26 contents/ui/LibraryPage.qml:37
#: contents/ui/LibraryPage.qml:63 contents/ui/LibraryPage.qml:84
#: contents/ui/LibraryPage.qml:332 contents/ui/LibraryPage.qml:358
#: contents/ui/LibraryPage.qml:379 contents/ui/LocalPlaylistPage.qml:42
#: contents/ui/PlaybackHistory.qml:23 contents/ui/PlaylistPage.qml:31
#, kde-format
msgid "Play"
msgstr "Přehrát"
#: contents/ui/AlbumPage.qml:61 contents/ui/ArtistPage.qml:101
#: contents/ui/PlaylistPage.qml:67
#: contents/ui/AlbumPage.qml:33 contents/ui/ArtistPage.qml:36
#: contents/ui/LibraryPage.qml:44 contents/ui/LibraryPage.qml:69
#: contents/ui/LibraryPage.qml:92 contents/ui/LibraryPage.qml:339
#: contents/ui/LibraryPage.qml:364 contents/ui/LibraryPage.qml:388
#: contents/ui/LocalPlaylistPage.qml:49 contents/ui/MaximizedPlayerPage.qml:891
#: contents/ui/PlaybackHistory.qml:36 contents/ui/PlaylistPage.qml:38
#, kde-format
msgid "Play Next"
msgstr "Přehrát následující"
msgid "Shuffle"
msgstr "Zamíchat"
#: contents/ui/AlbumPage.qml:66 contents/ui/ArtistPage.qml:107
#: contents/ui/PlaylistPage.qml:72 contents/ui/SearchPage.qml:123
#: contents/ui/AlbumPage.qml:41 contents/ui/LibraryPage.qml:74
#: contents/ui/LibraryPage.qml:100 contents/ui/LibraryPage.qml:369
#: contents/ui/LibraryPage.qml:396 contents/ui/LocalPlaylistPage.qml:55
#: contents/ui/PlaybackHistory.qml:48 contents/ui/PlaylistPage.qml:46
#, kde-format
msgid "Add to Playlist"
msgstr "Přidat do seznamu skladeb"
msgid "Append to queue"
msgstr "Přidat do fronty"
#: contents/ui/ArtistPage.qml:39 contents/ui/SearchPage.qml:67
#: contents/ui/AlbumPage.qml:46 contents/ui/ArtistPage.qml:43
#: contents/ui/PlaylistPage.qml:51
#, kde-format
msgid "Open in Browser"
msgstr "Otevřít v prohlížeči"
#: contents/ui/AlbumPage.qml:51 contents/ui/ArtistPage.qml:48
#: contents/ui/PlaylistPage.qml:56
#, kde-format
msgid "Share"
msgstr "Sdílet"
#: contents/ui/AlbumPage.qml:61
#, kde-format
msgid "Album • %1"
msgstr "Album • %1"
#: contents/ui/AlbumPage.qml:105 contents/ui/ArtistPage.qml:137
#: contents/ui/LocalPlaylistPage.qml:114 contents/ui/PlaybackHistory.qml:127
#: contents/ui/PlaylistPage.qml:116 contents/ui/SearchPage.qml:130
#, kde-format
msgid "More"
msgstr "Více"
#: contents/ui/ArtistPage.qml:31
#, kde-format
msgid "Radio"
msgstr "Rádio"
#: contents/ui/ArtistPage.qml:57
#, kde-format
msgid "Artist"
msgstr "Umělec"
#: contents/ui/ArtistPage.qml:79 contents/ui/SearchPage.qml:70
#, kde-format
msgid ""
"Video playback is not supported yet. Do you want to play only the audio of "
@@ -54,22 +87,22 @@ msgstr ""
"Přehrávání videa ještě není podporováno. Chcete z \"%1\" přehrávat pouze "
"zvuk?"
#: contents/ui/ArtistPage.qml:55 contents/ui/SearchPage.qml:25
#: contents/ui/ArtistPage.qml:96 contents/ui/SearchPage.qml:26
#, kde-format
msgid "Albums"
msgstr "Alba"
#: contents/ui/ArtistPage.qml:57
#: contents/ui/ArtistPage.qml:98
#, kde-format
msgid "Singles"
msgstr "Samotné"
#: contents/ui/ArtistPage.qml:59 contents/ui/SearchPage.qml:31
#: contents/ui/ArtistPage.qml:100 contents/ui/SearchPage.qml:32
#, kde-format
msgid "Songs"
msgstr "Písně"
#: contents/ui/ArtistPage.qml:61 contents/ui/SearchPage.qml:33
#: contents/ui/ArtistPage.qml:102 contents/ui/SearchPage.qml:34
#, kde-format
msgid "Videos"
msgstr "Videa"
@@ -84,82 +117,293 @@ msgstr "OK"
msgid "Cancel"
msgstr "Zrušit"
#: contents/ui/LibraryPage.qml:15
#: contents/ui/dialogs/AddPlaylistDialog.qml:17
#, kde-format
msgid "Add playlist"
msgstr "Přidat seznam médií"
#: contents/ui/dialogs/AddPlaylistDialog.qml:23
#: contents/ui/dialogs/RenamePlaylistDialog.qml:24
#, kde-format
msgid "Playlist Title"
msgstr "Název seznamu skladeb"
#: contents/ui/dialogs/AddPlaylistDialog.qml:28
#: contents/ui/dialogs/RenamePlaylistDialog.qml:30
#, kde-format
msgid "Playlist Description"
msgstr "Popis seznamu skladeb"
#: contents/ui/dialogs/PlaylistDialog.qml:20
#, kde-format
msgid "Add Song to Playlist"
msgstr "Přidat píseň do seznamu skladeb"
#: contents/ui/dialogs/PlaylistDialog.qml:29
#: contents/ui/LocalPlaylistsPage.qml:90
#, kde-format
msgid "New Playlist"
msgstr "Nový seznam skladeb"
#: contents/ui/dialogs/RenamePlaylistDialog.qml:18
#, kde-format
msgid "Rename playlist"
msgstr "Přejmenovat seznam skladeb"
#: contents/ui/LibraryPage.qml:30 contents/ui/LibraryPage.qml:123
#: contents/ui/NavigationBar.qml:48 contents/ui/NavigationBar.qml:54
#: contents/ui/Sidebar.qml:131 contents/ui/Sidebar.qml:138
#, kde-format
msgid "Favourites"
msgstr ""
msgstr "Oblíbené"
#: contents/ui/LibraryPage.qml:67
#: contents/ui/LibraryPage.qml:119 contents/ui/LibraryPage.qml:416
#: contents/ui/LibraryPage.qml:623
#, kde-format
msgid "Show All"
msgstr "Zobrazit vše"
#: contents/ui/LibraryPage.qml:147
#, kde-format
msgid "No Favourites Yet"
msgstr "Zatím žádné oblíbené"
#: contents/ui/LibraryPage.qml:325
#, kde-format
msgid "Most played"
msgstr ""
msgstr "Nejčastěji hrané"
#: contents/ui/main.qml:94
#: contents/ui/LibraryPage.qml:420 contents/ui/NavigationBar.qml:61
#: contents/ui/NavigationBar.qml:67 contents/ui/Sidebar.qml:150
#: contents/ui/Sidebar.qml:157
#, kde-format
msgid "AudioTube"
msgstr "AudioTube"
msgid "Played Songs"
msgstr "Přehrané skladby"
#: contents/ui/PlayerFooter.qml:124
#: contents/ui/LibraryPage.qml:444
#, kde-format
msgid "Remove Track"
msgstr "Odstranit skladbu"
msgid "No Songs Played Yet"
msgstr "Zatím nebyly přehrány žádné skladby"
#: contents/ui/PlayerFooter.qml:141
#, kde-format
msgid "Clear"
msgstr "Vyprázdnit"
#: contents/ui/PlayerFooter.qml:146 contents/ui/PlaylistPage.qml:26
#, kde-format
msgid "Shuffle"
msgstr "Zamíchat"
#: contents/ui/PlayerFooter.qml:192
#, kde-format
msgid "Pause"
msgstr "Pozastavit"
#: contents/ui/PlayerFooter.qml:222
#, kde-format
msgid "No media playing"
msgstr "Nepřehrává se žádné médium"
#: contents/ui/PlayerFooter.qml:266
#, kde-format
msgid "Expand"
msgstr "Rozvinout"
#: contents/ui/SearchPage.qml:27
#, kde-format
msgid "Artists"
msgstr "Umělci"
#: contents/ui/SearchPage.qml:29
#: contents/ui/LibraryPage.qml:611 contents/ui/LocalPlaylistsPage.qml:18
#: contents/ui/LocalPlaylistsPage.qml:78 contents/ui/NavigationBar.qml:75
#: contents/ui/SearchPage.qml:30 contents/ui/Sidebar.qml:167
#, kde-format
msgid "Playlists"
msgstr "Seznamy skladeb"
#: contents/ui/SearchPage.qml:36
#: contents/ui/LibraryPage.qml:650
#, kde-format
msgid "No Playlists Yet"
msgstr "Žádné seznamy skladeb"
#: contents/ui/LibraryPage.qml:670 contents/ui/LibraryPage.qml:692
#: contents/ui/LocalPlaylistsPage.qml:33 contents/ui/LocalPlaylistsPage.qml:55
#, kde-format
msgid "Rename"
msgstr "Přejmenovat"
#: contents/ui/LibraryPage.qml:679 contents/ui/LibraryPage.qml:700
#: contents/ui/LocalPlaylistsPage.qml:42 contents/ui/LocalPlaylistsPage.qml:63
#, kde-format
msgid "Delete"
msgstr "Smazat"
#: contents/ui/LocalPlaylistPage.qml:19
#, kde-format
msgid "Remove from Playlist"
msgstr "Odstranit ze seznamu skladeb"
#: contents/ui/LocalPlaylistPage.qml:29
#, kde-format
msgid "This playlist is still empty"
msgstr "Tento seznam skladeb je prázdný"
#: contents/ui/main.qml:109 main.cpp:59
#, kde-format
msgid "AudioTube"
msgstr "AudioTube"
#: contents/ui/MaximizedPlayerPage.qml:196
#: contents/ui/MinimizedPlayerControls.qml:93
#, kde-format
msgid "No media playing"
msgstr "Nepřehrává se žádné médium"
#: contents/ui/MaximizedPlayerPage.qml:571
#, kde-format
msgid "%1%"
msgstr "%1%"
#: contents/ui/MaximizedPlayerPage.qml:839
#: contents/ui/MaximizedPlayerPage.qml:1016
#, kde-format
msgid "Remove Track"
msgstr "Odstranit skladbu"
#: contents/ui/MaximizedPlayerPage.qml:870
#, kde-format
msgid "Clear Playlist"
msgstr "Smazat seznam skladeb"
#: contents/ui/MaximizedPlayerPage.qml:917
#, kde-format
msgid "Upcoming Songs"
msgstr "Nadcházející písně"
#: contents/ui/NavigationBar.qml:24 contents/ui/Sidebar.qml:100
#, kde-format
msgid "Library"
msgstr "Knihovna"
#: contents/ui/NavigationBar.qml:36 contents/ui/Sidebar.qml:116
#, kde-format
msgid "Search"
msgstr "Hledat"
#: contents/ui/PlaybackHistory.qml:15
#, kde-format
msgid "Unknown list of songs"
msgstr "Neznámý seznam skladeb"
#: contents/ui/PlaybackHistory.qml:74
#, kde-format
msgid "No songs here yet"
msgstr "Zatím zde nejsou žádné skladby"
#: contents/ui/PlaylistPage.qml:67
#, kde-format
msgid "Playlist"
msgstr "Seznam skladeb"
#: contents/ui/SearchHistoryPage.qml:86 contents/ui/SearchWithDropdown.qml:412
#, kde-format
msgid "remove from search history"
msgstr "odstranit z historie hledání"
#: contents/ui/SearchPage.qml:16
#, kde-format
msgid "Previous Searches:"
msgstr "Předchozí hledání:"
#: contents/ui/SearchPage.qml:28
#, kde-format
msgid "Artists"
msgstr "Umělci"
#: contents/ui/SearchPage.qml:37
#, kde-format
msgid "Unknown"
msgstr "Neznámý"
#: contents/ui/SearchPage.qml:117
#: contents/ui/SearchWithDropdown.qml:359
#, kde-format
msgid "Play next"
msgid "No matching previous searches"
msgstr "Neodpovídají žádná předchozí hledání"
#: contents/ui/ShareMenu.qml:39
#, kde-format
msgid "Share to"
msgstr "Sdílet s"
#: contents/ui/ShareMenu.qml:49 contents/ui/ShareMenu.qml:99
#, kde-format
msgid "Copy Link"
msgstr "Kopírovat odkaz"
#: contents/ui/ShareMenu.qml:54 contents/ui/ShareMenu.qml:104
#, kde-format
msgid "Link copied to clipboard"
msgstr "Odkaz byl zkopírován do schránky"
#: contents/ui/Sidebar.qml:189
#, kde-format
msgid "About"
msgstr "O aplikaci"
#: contents/ui/Sidebar.qml:203
#, kde-format
msgid "Collapse Sidebar"
msgstr "Svinout postranní panel"
#: contents/ui/SongMenu.qml:107 contents/ui/SongMenu.qml:205
#, kde-format
msgid "Play Next"
msgstr "Přehrát následující"
#: contents/ui/SearchPage.qml:129
#: contents/ui/SongMenu.qml:116 contents/ui/SongMenu.qml:211
#, kde-format
msgid "Radio"
msgstr "Rádio"
msgid "Add to queue"
msgstr "Zařadit do fronty"
#: contents/ui/SearchPage.qml:147
#: contents/ui/SongMenu.qml:126 contents/ui/SongMenu.qml:221
#, kde-format
msgid "Find music on YouTube Music"
msgstr "Najít hudbu na Hudba YouTube"
msgid "Remove Favourite"
msgstr "Odstranit oblíbené"
#: contents/ui/SearchPage.qml:150
#: contents/ui/SongMenu.qml:126 contents/ui/SongMenu.qml:221
#, kde-format
msgid "Search"
msgstr "Hledat"
msgid "Add Favourite"
msgstr "Přidat oblíbené"
#: contents/ui/SongMenu.qml:143 contents/ui/SongMenu.qml:235
#, kde-format
msgid "Remove from History"
msgstr "Odstranit z historie"
#: contents/ui/SongMenu.qml:156 contents/ui/SongMenu.qml:244
#, kde-format
msgid "Add to playlist"
msgstr "Přidat do seznamu stop"
#: contents/ui/SongMenu.qml:183 contents/ui/SongMenu.qml:269
#, kde-format
msgid "Share Song"
msgstr "Sdílet píseň"
#: main.cpp:61
#, kde-format
msgid "YouTube Music Player"
msgstr "Přehrávač hudby YouTube"
#: main.cpp:63
#, kde-format
msgid "© 2021-2023 Jonah Brüchert, 2021-2023 KDE Community"
msgstr "© 2021-2023 Jonah Brüchert, 2021-2023 Komunita KDE"
#: main.cpp:64
#, kde-format
msgid "Jonah Brüchert"
msgstr "Jonah Brüchert"
#: main.cpp:64
#, kde-format
msgid "Maintainer"
msgstr "Správce"
#: main.cpp:65
#, kde-format
msgid "Mathis Brüchert"
msgstr "Mathis Brüchert"
#: main.cpp:65
#, kde-format
msgid "Designer"
msgstr "Návrhář"
#: main.cpp:66
#, kde-format
msgctxt "NAME OF TRANSLATORS"
msgid "Your names"
msgstr "Vít Pelčák"
#: main.cpp:66
#, kde-format
msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails"
msgstr "[email protected]"
#: main.cpp:71
#, kde-format
msgid "Unofficial API for YouTube Music"
msgstr "Neoficiální API pro hudbu YouTube"
+358 -85
View File
@@ -1,52 +1,86 @@
# Copyright (C) YEAR This file is copyright:
# This file is distributed under the same license as the audiotube package.
# Burkhard Lück <[email protected]>, 2021.
# Frederik Schwarzer <[email protected]>, 2021, 2022.
# Frederik Schwarzer <[email protected]>, 2021, 2022, 2023.
# 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-05-23 00:47+0000\n"
"PO-Revision-Date: 2022-02-20 10:37+0100\n"
"POT-Creation-Date: 2023-04-23 04:10+0000\n"
"PO-Revision-Date: 2023-05-05 19:56+0200\n"
"Last-Translator: Frederik Schwarzer <[email protected]>\n"
"Language-Team: German <kde-i18n-doc@kde.org>\n"
"Language-Team: German <kde-i18n-de@kde.org>\n"
"Language: de\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Lokalize 21.08.0\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Lokalize 22.07.70\n"
#, kde-format
msgctxt "NAME OF TRANSLATORS"
msgid "Your names"
msgstr "Deutsches KDE-Übersetzerteam"
#, kde-format
msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails"
msgstr "[email protected]"
#: contents/ui/AlbumPage.qml:19 contents/ui/PlayerFooter.qml:192
#: contents/ui/PlaylistPage.qml:19
#: contents/ui/AlbumPage.qml:26 contents/ui/LibraryPage.qml:37
#: contents/ui/LibraryPage.qml:63 contents/ui/LibraryPage.qml:84
#: contents/ui/LibraryPage.qml:332 contents/ui/LibraryPage.qml:358
#: contents/ui/LibraryPage.qml:379 contents/ui/LocalPlaylistPage.qml:42
#: contents/ui/PlaybackHistory.qml:23 contents/ui/PlaylistPage.qml:31
#, kde-format
msgid "Play"
msgstr "Wiedergabe"
#: contents/ui/AlbumPage.qml:61 contents/ui/ArtistPage.qml:101
#: contents/ui/PlaylistPage.qml:67
#: contents/ui/AlbumPage.qml:33 contents/ui/ArtistPage.qml:36
#: contents/ui/LibraryPage.qml:44 contents/ui/LibraryPage.qml:69
#: contents/ui/LibraryPage.qml:92 contents/ui/LibraryPage.qml:339
#: contents/ui/LibraryPage.qml:364 contents/ui/LibraryPage.qml:388
#: contents/ui/LocalPlaylistPage.qml:49 contents/ui/MaximizedPlayerPage.qml:891
#: contents/ui/PlaybackHistory.qml:36 contents/ui/PlaylistPage.qml:38
#, kde-format
msgid "Play Next"
msgstr "Nächste Wiedergabe"
msgid "Shuffle"
msgstr "Zufällig"
#: contents/ui/AlbumPage.qml:66 contents/ui/ArtistPage.qml:107
#: contents/ui/PlaylistPage.qml:72 contents/ui/SearchPage.qml:123
#: contents/ui/AlbumPage.qml:41 contents/ui/LibraryPage.qml:74
#: contents/ui/LibraryPage.qml:100 contents/ui/LibraryPage.qml:369
#: contents/ui/LibraryPage.qml:396 contents/ui/LocalPlaylistPage.qml:55
#: contents/ui/PlaybackHistory.qml:48 contents/ui/PlaylistPage.qml:46
#, kde-format
msgid "Add to Playlist"
msgstr "Zur Wiedergabeliste hinzufügen"
msgid "Append to queue"
msgstr "An Warteschlange anhängen"
#: contents/ui/ArtistPage.qml:39 contents/ui/SearchPage.qml:67
#: contents/ui/AlbumPage.qml:46 contents/ui/ArtistPage.qml:43
#: contents/ui/PlaylistPage.qml:51
#, kde-format
msgid "Open in Browser"
msgstr "In Browser öffnen"
#: contents/ui/AlbumPage.qml:51 contents/ui/ArtistPage.qml:48
#: contents/ui/PlaylistPage.qml:56
#, kde-format
msgid "Share"
msgstr "Teilen"
#: contents/ui/AlbumPage.qml:61
#, kde-format
msgid "Album • %1"
msgstr "Album • %1"
#: contents/ui/AlbumPage.qml:105 contents/ui/ArtistPage.qml:137
#: contents/ui/LocalPlaylistPage.qml:114 contents/ui/PlaybackHistory.qml:127
#: contents/ui/PlaylistPage.qml:116 contents/ui/SearchPage.qml:130
#, kde-format
msgid "More"
msgstr "Mehr"
#: contents/ui/ArtistPage.qml:31
#, kde-format
msgid "Radio"
msgstr "Radio"
#: contents/ui/ArtistPage.qml:57
#, kde-format
msgid "Artist"
msgstr "Interpret"
#: contents/ui/ArtistPage.qml:79 contents/ui/SearchPage.qml:70
#, kde-format
msgid ""
"Video playback is not supported yet. Do you want to play only the audio of "
@@ -55,22 +89,22 @@ msgstr ""
"Die Video-Wiedergabe wird noch nicht unterstützt. Möchten Sie nur die "
"Audiospur von „%1“ abspielen?"
#: contents/ui/ArtistPage.qml:55 contents/ui/SearchPage.qml:25
#: contents/ui/ArtistPage.qml:96 contents/ui/SearchPage.qml:26
#, kde-format
msgid "Albums"
msgstr "Alben"
#: contents/ui/ArtistPage.qml:57
#: contents/ui/ArtistPage.qml:98
#, kde-format
msgid "Singles"
msgstr "Singles"
#: contents/ui/ArtistPage.qml:59 contents/ui/SearchPage.qml:31
#: contents/ui/ArtistPage.qml:100 contents/ui/SearchPage.qml:32
#, kde-format
msgid "Songs"
msgstr "Songs"
#: contents/ui/ArtistPage.qml:61 contents/ui/SearchPage.qml:33
#: contents/ui/ArtistPage.qml:102 contents/ui/SearchPage.qml:34
#, kde-format
msgid "Videos"
msgstr "Videos"
@@ -85,85 +119,324 @@ msgstr "OK"
msgid "Cancel"
msgstr "Abbrechen"
#: contents/ui/LibraryPage.qml:15
#: contents/ui/dialogs/AddPlaylistDialog.qml:17
#, kde-format
msgid "Add playlist"
msgstr "Wiedergabeliste hinzufügen"
#: contents/ui/dialogs/AddPlaylistDialog.qml:23
#: contents/ui/dialogs/RenamePlaylistDialog.qml:24
#, kde-format
msgid "Playlist Title"
msgstr "Titel der Wiedergabeliste"
#: contents/ui/dialogs/AddPlaylistDialog.qml:28
#: contents/ui/dialogs/RenamePlaylistDialog.qml:30
#, kde-format
msgid "Playlist Description"
msgstr "Beschreibung der Wiedergabeliste"
#: contents/ui/dialogs/PlaylistDialog.qml:20
#, kde-format
msgid "Add Song to Playlist"
msgstr "Lied zur Wiedergabeliste hinzufügen"
#: contents/ui/dialogs/PlaylistDialog.qml:29
#: contents/ui/LocalPlaylistsPage.qml:90
#, kde-format
msgid "New Playlist"
msgstr "Neue Wiedergabeliste"
#: contents/ui/dialogs/RenamePlaylistDialog.qml:18
#, kde-format
msgid "Rename playlist"
msgstr "Wiedergabeliste umbenennen"
#: contents/ui/LibraryPage.qml:30 contents/ui/LibraryPage.qml:123
#: contents/ui/NavigationBar.qml:48 contents/ui/NavigationBar.qml:54
#: contents/ui/Sidebar.qml:131 contents/ui/Sidebar.qml:138
#, kde-format
msgid "Favourites"
msgstr ""
msgstr "Favoriten"
#: contents/ui/LibraryPage.qml:67
#: contents/ui/LibraryPage.qml:119 contents/ui/LibraryPage.qml:416
#: contents/ui/LibraryPage.qml:623
#, kde-format
msgid "Show All"
msgstr "Alle anzeigen"
#: contents/ui/LibraryPage.qml:147
#, kde-format
msgid "No Favourites Yet"
msgstr "Noch keine Favoriten"
#: contents/ui/LibraryPage.qml:325
#, kde-format
msgid "Most played"
msgstr ""
msgstr "Am meisten abgespielt"
#: contents/ui/main.qml:94
#: contents/ui/LibraryPage.qml:420 contents/ui/NavigationBar.qml:61
#: contents/ui/NavigationBar.qml:67 contents/ui/Sidebar.qml:150
#: contents/ui/Sidebar.qml:157
#, kde-format
msgid "AudioTube"
msgstr "AudioTube"
msgid "Played Songs"
msgstr "Abgespielte Stücke"
#: contents/ui/PlayerFooter.qml:124
#: contents/ui/LibraryPage.qml:444
#, kde-format
msgid "Remove Track"
msgstr "Stück entfernen"
msgid "No Songs Played Yet"
msgstr "Bisher keine Lieder abgespielt"
#: contents/ui/PlayerFooter.qml:141
#, kde-format
msgid "Clear"
msgstr "Löschen"
#: contents/ui/PlayerFooter.qml:146 contents/ui/PlaylistPage.qml:26
#, kde-format
msgid "Shuffle"
msgstr "Zufällig"
#: contents/ui/PlayerFooter.qml:192
#, kde-format
msgid "Pause"
msgstr "Pause"
#: contents/ui/PlayerFooter.qml:222
#, kde-format
msgid "No media playing"
msgstr "Es werden keine Medien wiedergegeben"
#: contents/ui/PlayerFooter.qml:266
#, kde-format
msgid "Expand"
msgstr "Erweitern"
#: contents/ui/SearchPage.qml:27
#, kde-format
msgid "Artists"
msgstr "Interpreten"
#: contents/ui/SearchPage.qml:29
#: contents/ui/LibraryPage.qml:611 contents/ui/LocalPlaylistsPage.qml:18
#: contents/ui/LocalPlaylistsPage.qml:78 contents/ui/NavigationBar.qml:75
#: contents/ui/SearchPage.qml:30 contents/ui/Sidebar.qml:167
#, kde-format
msgid "Playlists"
msgstr "Wiedergabelisten"
#: contents/ui/SearchPage.qml:36
#: contents/ui/LibraryPage.qml:650
#, kde-format
msgid "Unknown"
msgstr "Unbekannt"
msgid "No Playlists Yet"
msgstr "Bisher keine Wiedergabelisten"
#: contents/ui/SearchPage.qml:117
#: contents/ui/LibraryPage.qml:670 contents/ui/LibraryPage.qml:692
#: contents/ui/LocalPlaylistsPage.qml:33 contents/ui/LocalPlaylistsPage.qml:55
#, kde-format
msgid "Play next"
msgstr "Nächste Wiedergabe"
msgid "Rename"
msgstr "Umbenennen"
#: contents/ui/SearchPage.qml:129
#: contents/ui/LibraryPage.qml:679 contents/ui/LibraryPage.qml:700
#: contents/ui/LocalPlaylistsPage.qml:42 contents/ui/LocalPlaylistsPage.qml:63
#, kde-format
msgid "Radio"
msgstr "Radio"
msgid "Delete"
msgstr "Löschen"
#: contents/ui/SearchPage.qml:147
#: contents/ui/LocalPlaylistPage.qml:19
#, kde-format
msgid "Find music on YouTube Music"
msgstr "Musik auf YouTube suchen"
msgid "Remove from Playlist"
msgstr "Aus Wiedergabeliste entfernen"
#: contents/ui/SearchPage.qml:150
#: contents/ui/LocalPlaylistPage.qml:29
#, kde-format
msgid "This playlist is still empty"
msgstr "Diese Wiedergabeliste ist noch leer"
#: contents/ui/main.qml:109 main.cpp:59
#, kde-format
msgid "AudioTube"
msgstr "AudioTube"
#: contents/ui/MaximizedPlayerPage.qml:196
#: contents/ui/MinimizedPlayerControls.qml:93
#, kde-format
msgid "No media playing"
msgstr "Es werden keine Medien wiedergegeben"
#: contents/ui/MaximizedPlayerPage.qml:571
#, kde-format
msgid "%1%"
msgstr "%1 %"
#: contents/ui/MaximizedPlayerPage.qml:839
#: contents/ui/MaximizedPlayerPage.qml:1016
#, kde-format
msgid "Remove Track"
msgstr "Stück entfernen"
#: contents/ui/MaximizedPlayerPage.qml:870
#, kde-format
msgid "Clear Playlist"
msgstr "Wiedergabeliste leeren"
#: contents/ui/MaximizedPlayerPage.qml:917
#, kde-format
msgid "Upcoming Songs"
msgstr "Kommende Lieder"
#: contents/ui/NavigationBar.qml:24 contents/ui/Sidebar.qml:100
#, kde-format
msgid "Library"
msgstr "Bibliothek"
#: contents/ui/NavigationBar.qml:36 contents/ui/Sidebar.qml:116
#, kde-format
msgid "Search"
msgstr "Suchen"
#: contents/ui/PlaybackHistory.qml:15
#, kde-format
msgid "Unknown list of songs"
msgstr "Unbekannte Liste von Liedern"
#: contents/ui/PlaybackHistory.qml:74
#, kde-format
msgid "No songs here yet"
msgstr "Bisher keine Lieder hier"
#: contents/ui/PlaylistPage.qml:67
#, kde-format
msgid "Playlist"
msgstr "Wiedergabeliste"
#: contents/ui/SearchHistoryPage.qml:86 contents/ui/SearchWithDropdown.qml:412
#, kde-format
msgid "remove from search history"
msgstr "Aus Suchverlauf löschen"
#: contents/ui/SearchPage.qml:16
#, kde-format
msgid "Previous Searches:"
msgstr "Vorherige Suchvorgänge:"
#: contents/ui/SearchPage.qml:28
#, kde-format
msgid "Artists"
msgstr "Interpreten"
#: contents/ui/SearchPage.qml:37
#, kde-format
msgid "Unknown"
msgstr "Unbekannt"
#: contents/ui/SearchWithDropdown.qml:359
#, kde-format
msgid "No matching previous searches"
msgstr "Keine passenden vorherigen Suchvorgänge"
#: contents/ui/ShareMenu.qml:39
#, kde-format
msgid "Share to"
msgstr "Teilen auf"
#: contents/ui/ShareMenu.qml:49 contents/ui/ShareMenu.qml:99
#, kde-format
msgid "Copy Link"
msgstr "Verknüpfung kopieren"
#: contents/ui/ShareMenu.qml:54 contents/ui/ShareMenu.qml:104
#, kde-format
msgid "Link copied to clipboard"
msgstr "Verknüpfung in die Zwischenablage kopiert"
#: contents/ui/Sidebar.qml:189
#, kde-format
msgid "About"
msgstr "Über"
#: contents/ui/Sidebar.qml:203
#, kde-format
msgid "Collapse Sidebar"
msgstr "Seitenleiste einklappen"
#: contents/ui/SongMenu.qml:107 contents/ui/SongMenu.qml:205
#, kde-format
msgid "Play Next"
msgstr "Nächste Wiedergabe"
#: contents/ui/SongMenu.qml:116 contents/ui/SongMenu.qml:211
#, kde-format
msgid "Add to queue"
msgstr "Zur Warteschlange hinzufügen"
#: contents/ui/SongMenu.qml:126 contents/ui/SongMenu.qml:221
#, kde-format
msgid "Remove Favourite"
msgstr "Favoriten entfernen"
#: contents/ui/SongMenu.qml:126 contents/ui/SongMenu.qml:221
#, kde-format
msgid "Add Favourite"
msgstr "Favoriten hinzufügen"
#: contents/ui/SongMenu.qml:143 contents/ui/SongMenu.qml:235
#, kde-format
msgid "Remove from History"
msgstr "Aus Verlauf löschen"
#: contents/ui/SongMenu.qml:156 contents/ui/SongMenu.qml:244
#, kde-format
msgid "Add to playlist"
msgstr "Zur Wiedergabeliste hinzufügen"
#: contents/ui/SongMenu.qml:183 contents/ui/SongMenu.qml:269
#, kde-format
msgid "Share Song"
msgstr "Lied teilen"
#: main.cpp:61
#, kde-format
msgid "YouTube Music Player"
msgstr "YouTube-Musikprogramm"
#: main.cpp:63
#, kde-format
msgid "© 2021-2023 Jonah Brüchert, 2021-2023 KDE Community"
msgstr "Copyright © 2021-2023 Jonah Brüchert, 2021-2023 KDE-Gemeinschaft"
#: main.cpp:64
#, kde-format
msgid "Jonah Brüchert"
msgstr "Jonah Brüchert"
#: main.cpp:64
#, kde-format
msgid "Maintainer"
msgstr "Betreuer"
#: main.cpp:65
#, kde-format
msgid "Mathis Brüchert"
msgstr "Mathis Brüchert"
#: main.cpp:65
#, kde-format
msgid "Designer"
msgstr "Designer"
#: main.cpp:66
#, kde-format
msgctxt "NAME OF TRANSLATORS"
msgid "Your names"
msgstr "Deutsches KDE-Übersetzerteam"
#: main.cpp:66
#, kde-format
msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails"
msgstr "[email protected]"
#: main.cpp:71
#, fuzzy, kde-format
#| msgid "Find music on YouTube Music"
msgid "Unofficial API for YouTube Music"
msgstr "Musik auf YouTube suchen"
#~ msgid "played Songs"
#~ msgstr "Abgespielte Stücke"
#~ msgid "Now Playing"
#~ msgstr "Aktueller Titel"
#~ msgid "Queue"
#~ msgstr "Warteschlange"
#~ msgid "Lyrics"
#~ msgstr "Liedtext"
#~ msgid "Back"
#~ msgstr "Zurück"
#~ msgid "Play next"
#~ msgstr "Nächste Wiedergabe"
#~ msgid "Clear"
#~ msgstr "Löschen"
#~ msgid "Pause"
#~ msgstr "Pause"
#~ msgid "Expand"
#~ msgstr "Erweitern"
#~ msgid "Play only Audio"
#~ msgstr "Nur Audio abspielen"
+355 -84
View File
@@ -1,51 +1,84 @@
# Copyright (C) YEAR This file is copyright:
# This file is distributed under the same license as the audiotube package.
#
# Steve Allewell <[email protected]>, 2021, 2022.
# Steve Allewell <[email protected]>, 2021, 2022, 2023.
msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2022-05-23 00:47+0000\n"
"PO-Revision-Date: 2022-01-01 15:21+0000\n"
"POT-Creation-Date: 2023-04-23 04:10+0000\n"
"PO-Revision-Date: 2023-03-10 17:27+0000\n"
"Last-Translator: Steve Allewell <[email protected]>\n"
"Language-Team: British English <[email protected]>\n"
"Language-Team: British English\n"
"Language: en_GB\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Lokalize 21.12.0\n"
"X-Generator: Lokalize 23.03.70\n"
#, kde-format
msgctxt "NAME OF TRANSLATORS"
msgid "Your names"
msgstr "Steve Allewell"
#, kde-format
msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails"
msgstr "[email protected]"
#: contents/ui/AlbumPage.qml:19 contents/ui/PlayerFooter.qml:192
#: contents/ui/PlaylistPage.qml:19
#: contents/ui/AlbumPage.qml:26 contents/ui/LibraryPage.qml:37
#: contents/ui/LibraryPage.qml:63 contents/ui/LibraryPage.qml:84
#: contents/ui/LibraryPage.qml:332 contents/ui/LibraryPage.qml:358
#: contents/ui/LibraryPage.qml:379 contents/ui/LocalPlaylistPage.qml:42
#: contents/ui/PlaybackHistory.qml:23 contents/ui/PlaylistPage.qml:31
#, kde-format
msgid "Play"
msgstr "Play"
#: contents/ui/AlbumPage.qml:61 contents/ui/ArtistPage.qml:101
#: contents/ui/PlaylistPage.qml:67
#: contents/ui/AlbumPage.qml:33 contents/ui/ArtistPage.qml:36
#: contents/ui/LibraryPage.qml:44 contents/ui/LibraryPage.qml:69
#: contents/ui/LibraryPage.qml:92 contents/ui/LibraryPage.qml:339
#: contents/ui/LibraryPage.qml:364 contents/ui/LibraryPage.qml:388
#: contents/ui/LocalPlaylistPage.qml:49 contents/ui/MaximizedPlayerPage.qml:891
#: contents/ui/PlaybackHistory.qml:36 contents/ui/PlaylistPage.qml:38
#, kde-format
msgid "Play Next"
msgstr "Play Next"
msgid "Shuffle"
msgstr "Shuffle"
#: contents/ui/AlbumPage.qml:66 contents/ui/ArtistPage.qml:107
#: contents/ui/PlaylistPage.qml:72 contents/ui/SearchPage.qml:123
#: contents/ui/AlbumPage.qml:41 contents/ui/LibraryPage.qml:74
#: contents/ui/LibraryPage.qml:100 contents/ui/LibraryPage.qml:369
#: contents/ui/LibraryPage.qml:396 contents/ui/LocalPlaylistPage.qml:55
#: contents/ui/PlaybackHistory.qml:48 contents/ui/PlaylistPage.qml:46
#, kde-format
msgid "Add to Playlist"
msgstr "Add to Playlist"
msgid "Append to queue"
msgstr "Append to queue"
#: contents/ui/ArtistPage.qml:39 contents/ui/SearchPage.qml:67
#: contents/ui/AlbumPage.qml:46 contents/ui/ArtistPage.qml:43
#: contents/ui/PlaylistPage.qml:51
#, kde-format
msgid "Open in Browser"
msgstr "Open in Browser"
#: contents/ui/AlbumPage.qml:51 contents/ui/ArtistPage.qml:48
#: contents/ui/PlaylistPage.qml:56
#, kde-format
msgid "Share"
msgstr "Share"
#: contents/ui/AlbumPage.qml:61
#, kde-format
msgid "Album • %1"
msgstr "Album • %1"
#: contents/ui/AlbumPage.qml:105 contents/ui/ArtistPage.qml:137
#: contents/ui/LocalPlaylistPage.qml:114 contents/ui/PlaybackHistory.qml:127
#: contents/ui/PlaylistPage.qml:116 contents/ui/SearchPage.qml:130
#, kde-format
msgid "More"
msgstr "More"
#: contents/ui/ArtistPage.qml:31
#, kde-format
msgid "Radio"
msgstr "Radio"
#: contents/ui/ArtistPage.qml:57
#, kde-format
msgid "Artist"
msgstr "Artist"
#: contents/ui/ArtistPage.qml:79 contents/ui/SearchPage.qml:70
#, kde-format
msgid ""
"Video playback is not supported yet. Do you want to play only the audio of "
@@ -54,22 +87,22 @@ msgstr ""
"Video playback is not supported yet. Do you want to play only the audio of "
"\"%1\"?"
#: contents/ui/ArtistPage.qml:55 contents/ui/SearchPage.qml:25
#: contents/ui/ArtistPage.qml:96 contents/ui/SearchPage.qml:26
#, kde-format
msgid "Albums"
msgstr "Albums"
#: contents/ui/ArtistPage.qml:57
#: contents/ui/ArtistPage.qml:98
#, kde-format
msgid "Singles"
msgstr "Singles"
#: contents/ui/ArtistPage.qml:59 contents/ui/SearchPage.qml:31
#: contents/ui/ArtistPage.qml:100 contents/ui/SearchPage.qml:32
#, kde-format
msgid "Songs"
msgstr "Songs"
#: contents/ui/ArtistPage.qml:61 contents/ui/SearchPage.qml:33
#: contents/ui/ArtistPage.qml:102 contents/ui/SearchPage.qml:34
#, kde-format
msgid "Videos"
msgstr "Videos"
@@ -84,85 +117,323 @@ msgstr "OK"
msgid "Cancel"
msgstr "Cancel"
#: contents/ui/LibraryPage.qml:15
#: contents/ui/dialogs/AddPlaylistDialog.qml:17
#, kde-format
msgid "Add playlist"
msgstr "Add playlist"
#: contents/ui/dialogs/AddPlaylistDialog.qml:23
#: contents/ui/dialogs/RenamePlaylistDialog.qml:24
#, kde-format
msgid "Playlist Title"
msgstr "Playlist Title"
#: contents/ui/dialogs/AddPlaylistDialog.qml:28
#: contents/ui/dialogs/RenamePlaylistDialog.qml:30
#, kde-format
msgid "Playlist Description"
msgstr "Playlist Description"
#: contents/ui/dialogs/PlaylistDialog.qml:20
#, kde-format
msgid "Add Song to Playlist"
msgstr "Add Song to Playlist"
#: contents/ui/dialogs/PlaylistDialog.qml:29
#: contents/ui/LocalPlaylistsPage.qml:90
#, kde-format
msgid "New Playlist"
msgstr "New Playlist"
#: contents/ui/dialogs/RenamePlaylistDialog.qml:18
#, kde-format
msgid "Rename playlist"
msgstr "Rename playlist"
#: contents/ui/LibraryPage.qml:30 contents/ui/LibraryPage.qml:123
#: contents/ui/NavigationBar.qml:48 contents/ui/NavigationBar.qml:54
#: contents/ui/Sidebar.qml:131 contents/ui/Sidebar.qml:138
#, kde-format
msgid "Favourites"
msgstr ""
msgstr "Favourites"
#: contents/ui/LibraryPage.qml:67
#: contents/ui/LibraryPage.qml:119 contents/ui/LibraryPage.qml:416
#: contents/ui/LibraryPage.qml:623
#, kde-format
msgid "Show All"
msgstr "Show All"
#: contents/ui/LibraryPage.qml:147
#, kde-format
msgid "No Favourites Yet"
msgstr "No Favourites Yet"
#: contents/ui/LibraryPage.qml:325
#, kde-format
msgid "Most played"
msgstr ""
msgstr "Most played"
#: contents/ui/main.qml:94
#: contents/ui/LibraryPage.qml:420 contents/ui/NavigationBar.qml:61
#: contents/ui/NavigationBar.qml:67 contents/ui/Sidebar.qml:150
#: contents/ui/Sidebar.qml:157
#, kde-format
msgid "AudioTube"
msgstr "AudioTube"
msgid "Played Songs"
msgstr "Played Songs"
#: contents/ui/PlayerFooter.qml:124
#: contents/ui/LibraryPage.qml:444
#, kde-format
msgid "Remove Track"
msgstr "Remove Track"
msgid "No Songs Played Yet"
msgstr "No Songs Played Yet"
#: contents/ui/PlayerFooter.qml:141
#, kde-format
msgid "Clear"
msgstr "Clear"
#: contents/ui/PlayerFooter.qml:146 contents/ui/PlaylistPage.qml:26
#, kde-format
msgid "Shuffle"
msgstr "Shuffle"
#: contents/ui/PlayerFooter.qml:192
#, kde-format
msgid "Pause"
msgstr "Pause"
#: contents/ui/PlayerFooter.qml:222
#, kde-format
msgid "No media playing"
msgstr "No media playing"
#: contents/ui/PlayerFooter.qml:266
#, kde-format
msgid "Expand"
msgstr "Expand"
#: contents/ui/SearchPage.qml:27
#, kde-format
msgid "Artists"
msgstr "Artists"
#: contents/ui/SearchPage.qml:29
#: contents/ui/LibraryPage.qml:611 contents/ui/LocalPlaylistsPage.qml:18
#: contents/ui/LocalPlaylistsPage.qml:78 contents/ui/NavigationBar.qml:75
#: contents/ui/SearchPage.qml:30 contents/ui/Sidebar.qml:167
#, kde-format
msgid "Playlists"
msgstr "Playlists"
#: contents/ui/SearchPage.qml:36
#: contents/ui/LibraryPage.qml:650
#, kde-format
msgid "Unknown"
msgstr "Unknown"
msgid "No Playlists Yet"
msgstr "No Playlists Yet"
#: contents/ui/SearchPage.qml:117
#: contents/ui/LibraryPage.qml:670 contents/ui/LibraryPage.qml:692
#: contents/ui/LocalPlaylistsPage.qml:33 contents/ui/LocalPlaylistsPage.qml:55
#, kde-format
msgid "Play next"
msgstr "Play next"
msgid "Rename"
msgstr "Rename"
#: contents/ui/SearchPage.qml:129
#: contents/ui/LibraryPage.qml:679 contents/ui/LibraryPage.qml:700
#: contents/ui/LocalPlaylistsPage.qml:42 contents/ui/LocalPlaylistsPage.qml:63
#, kde-format
msgid "Radio"
msgstr "Radio"
msgid "Delete"
msgstr "Delete"
#: contents/ui/SearchPage.qml:147
#: contents/ui/LocalPlaylistPage.qml:19
#, kde-format
msgid "Find music on YouTube Music"
msgstr "Find music on YouTube Music"
msgid "Remove from Playlist"
msgstr "Remove from Playlist"
#: contents/ui/SearchPage.qml:150
#: contents/ui/LocalPlaylistPage.qml:29
#, kde-format
msgid "This playlist is still empty"
msgstr "This playlist is still empty"
#: contents/ui/main.qml:109 main.cpp:59
#, kde-format
msgid "AudioTube"
msgstr "AudioTube"
#: contents/ui/MaximizedPlayerPage.qml:196
#: contents/ui/MinimizedPlayerControls.qml:93
#, kde-format
msgid "No media playing"
msgstr "No media playing"
#: contents/ui/MaximizedPlayerPage.qml:571
#, kde-format
msgid "%1%"
msgstr "%1%"
#: contents/ui/MaximizedPlayerPage.qml:839
#: contents/ui/MaximizedPlayerPage.qml:1016
#, kde-format
msgid "Remove Track"
msgstr "Remove Track"
#: contents/ui/MaximizedPlayerPage.qml:870
#, kde-format
msgid "Clear Playlist"
msgstr "Clear Playlist"
#: contents/ui/MaximizedPlayerPage.qml:917
#, kde-format
msgid "Upcoming Songs"
msgstr "Upcoming Songs"
#: contents/ui/NavigationBar.qml:24 contents/ui/Sidebar.qml:100
#, kde-format
msgid "Library"
msgstr "Library"
#: contents/ui/NavigationBar.qml:36 contents/ui/Sidebar.qml:116
#, kde-format
msgid "Search"
msgstr "Search"
#: contents/ui/PlaybackHistory.qml:15
#, kde-format
msgid "Unknown list of songs"
msgstr "Unknown list of songs"
#: contents/ui/PlaybackHistory.qml:74
#, kde-format
msgid "No songs here yet"
msgstr "No songs here yet"
#: contents/ui/PlaylistPage.qml:67
#, kde-format
msgid "Playlist"
msgstr "Playlist"
#: contents/ui/SearchHistoryPage.qml:86 contents/ui/SearchWithDropdown.qml:412
#, kde-format
msgid "remove from search history"
msgstr "remove from search history"
#: contents/ui/SearchPage.qml:16
#, kde-format
msgid "Previous Searches:"
msgstr "Previous Searches:"
#: contents/ui/SearchPage.qml:28
#, kde-format
msgid "Artists"
msgstr "Artists"
#: contents/ui/SearchPage.qml:37
#, kde-format
msgid "Unknown"
msgstr "Unknown"
#: contents/ui/SearchWithDropdown.qml:359
#, kde-format
msgid "No matching previous searches"
msgstr "No matching previous searches"
#: contents/ui/ShareMenu.qml:39
#, kde-format
msgid "Share to"
msgstr "Share to"
#: contents/ui/ShareMenu.qml:49 contents/ui/ShareMenu.qml:99
#, kde-format
msgid "Copy Link"
msgstr "Copy Link"
#: contents/ui/ShareMenu.qml:54 contents/ui/ShareMenu.qml:104
#, kde-format
msgid "Link copied to clipboard"
msgstr "Link copied to clipboard"
#: contents/ui/Sidebar.qml:189
#, kde-format
msgid "About"
msgstr "About"
#: contents/ui/Sidebar.qml:203
#, kde-format
msgid "Collapse Sidebar"
msgstr "Collapse Sidebar"
#: contents/ui/SongMenu.qml:107 contents/ui/SongMenu.qml:205
#, kde-format
msgid "Play Next"
msgstr "Play Next"
#: contents/ui/SongMenu.qml:116 contents/ui/SongMenu.qml:211
#, kde-format
msgid "Add to queue"
msgstr "Add to queue"
#: contents/ui/SongMenu.qml:126 contents/ui/SongMenu.qml:221
#, kde-format
msgid "Remove Favourite"
msgstr "Remove Favourite"
#: contents/ui/SongMenu.qml:126 contents/ui/SongMenu.qml:221
#, kde-format
msgid "Add Favourite"
msgstr "Add Favourite"
#: contents/ui/SongMenu.qml:143 contents/ui/SongMenu.qml:235
#, kde-format
msgid "Remove from History"
msgstr "Remove from History"
#: contents/ui/SongMenu.qml:156 contents/ui/SongMenu.qml:244
#, kde-format
msgid "Add to playlist"
msgstr "Add to playlist"
#: contents/ui/SongMenu.qml:183 contents/ui/SongMenu.qml:269
#, kde-format
msgid "Share Song"
msgstr "Share Song"
#: main.cpp:61
#, kde-format
msgid "YouTube Music Player"
msgstr "YouTube Music Player"
#: main.cpp:63
#, kde-format
msgid "© 2021-2023 Jonah Brüchert, 2021-2023 KDE Community"
msgstr "© 2021-2023 Jonah Brüchert, 2021-2023 KDE Community"
#: main.cpp:64
#, kde-format
msgid "Jonah Brüchert"
msgstr "Jonah Brüchert"
#: main.cpp:64
#, kde-format
msgid "Maintainer"
msgstr "Maintainer"
#: main.cpp:65
#, kde-format
msgid "Mathis Brüchert"
msgstr "Mathis Brüchert"
#: main.cpp:65
#, kde-format
msgid "Designer"
msgstr "Designer"
#: main.cpp:66
#, kde-format
msgctxt "NAME OF TRANSLATORS"
msgid "Your names"
msgstr "Steve Allewell"
#: main.cpp:66
#, kde-format
msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails"
msgstr "[email protected]"
#: main.cpp:71
#, kde-format
msgid "Unofficial API for YouTube Music"
msgstr "Unofficial API for YouTube Music"
#~ msgid "played Songs"
#~ msgstr "played Songs"
#~ msgid "Now Playing"
#~ msgstr "Now Playing"
#~ msgid "Queue"
#~ msgstr "Queue"
#~ msgid "Lyrics"
#~ msgstr "Lyrics"
#~ msgid "Back"
#~ msgstr "Back"
#~ msgid "Play next"
#~ msgstr "Play next"
#~ msgid "Clear"
#~ msgstr "Clear"
#~ msgid "Pause"
#~ msgstr "Pause"
#~ msgid "Expand"
#~ msgstr "Expand"
#~ msgid "Play only Audio"
#~ msgstr "Play only Audio"
+357 -83
View File
@@ -3,13 +3,13 @@
# This file is distributed under the same license as the audiotube package.
#
# Automatically generated, 2021.
# Eloy Cuadra <[email protected]>, 2021.
# Eloy Cuadra <[email protected]>, 2021, 2022, 2023.
msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2022-05-23 00:47+0000\n"
"PO-Revision-Date: 2021-12-06 00:36+0100\n"
"POT-Creation-Date: 2023-04-23 04:10+0000\n"
"PO-Revision-Date: 2023-03-09 11:48+0100\n"
"Last-Translator: Eloy Cuadra <[email protected]>\n"
"Language-Team: Spanish <[email protected]>\n"
"Language: es\n"
@@ -17,37 +17,70 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Lokalize 21.11.90\n"
"X-Generator: Lokalize 22.12.3\n"
#, kde-format
msgctxt "NAME OF TRANSLATORS"
msgid "Your names"
msgstr "Eloy Cuadra"
#, kde-format
msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails"
msgstr "[email protected]"
#: contents/ui/AlbumPage.qml:19 contents/ui/PlayerFooter.qml:192
#: contents/ui/PlaylistPage.qml:19
#: contents/ui/AlbumPage.qml:26 contents/ui/LibraryPage.qml:37
#: contents/ui/LibraryPage.qml:63 contents/ui/LibraryPage.qml:84
#: contents/ui/LibraryPage.qml:332 contents/ui/LibraryPage.qml:358
#: contents/ui/LibraryPage.qml:379 contents/ui/LocalPlaylistPage.qml:42
#: contents/ui/PlaybackHistory.qml:23 contents/ui/PlaylistPage.qml:31
#, kde-format
msgid "Play"
msgstr "Reproducir"
#: contents/ui/AlbumPage.qml:61 contents/ui/ArtistPage.qml:101
#: contents/ui/PlaylistPage.qml:67
#: contents/ui/AlbumPage.qml:33 contents/ui/ArtistPage.qml:36
#: contents/ui/LibraryPage.qml:44 contents/ui/LibraryPage.qml:69
#: contents/ui/LibraryPage.qml:92 contents/ui/LibraryPage.qml:339
#: contents/ui/LibraryPage.qml:364 contents/ui/LibraryPage.qml:388
#: contents/ui/LocalPlaylistPage.qml:49 contents/ui/MaximizedPlayerPage.qml:891
#: contents/ui/PlaybackHistory.qml:36 contents/ui/PlaylistPage.qml:38
#, kde-format
msgid "Play Next"
msgstr "Reproducir siguiente"
msgid "Shuffle"
msgstr "Desordenar"
#: contents/ui/AlbumPage.qml:66 contents/ui/ArtistPage.qml:107
#: contents/ui/PlaylistPage.qml:72 contents/ui/SearchPage.qml:123
#: contents/ui/AlbumPage.qml:41 contents/ui/LibraryPage.qml:74
#: contents/ui/LibraryPage.qml:100 contents/ui/LibraryPage.qml:369
#: contents/ui/LibraryPage.qml:396 contents/ui/LocalPlaylistPage.qml:55
#: contents/ui/PlaybackHistory.qml:48 contents/ui/PlaylistPage.qml:46
#, kde-format
msgid "Add to Playlist"
msgstr "Añadir a la lista de reproducción"
msgid "Append to queue"
msgstr "Añadir a la cola"
#: contents/ui/ArtistPage.qml:39 contents/ui/SearchPage.qml:67
#: contents/ui/AlbumPage.qml:46 contents/ui/ArtistPage.qml:43
#: contents/ui/PlaylistPage.qml:51
#, kde-format
msgid "Open in Browser"
msgstr "Abrir en el navegador"
#: contents/ui/AlbumPage.qml:51 contents/ui/ArtistPage.qml:48
#: contents/ui/PlaylistPage.qml:56
#, kde-format
msgid "Share"
msgstr "Compartir"
#: contents/ui/AlbumPage.qml:61
#, kde-format
msgid "Album • %1"
msgstr "Álbum • %1"
#: contents/ui/AlbumPage.qml:105 contents/ui/ArtistPage.qml:137
#: contents/ui/LocalPlaylistPage.qml:114 contents/ui/PlaybackHistory.qml:127
#: contents/ui/PlaylistPage.qml:116 contents/ui/SearchPage.qml:130
#, kde-format
msgid "More"
msgstr "Más"
#: contents/ui/ArtistPage.qml:31
#, kde-format
msgid "Radio"
msgstr "Radio"
#: contents/ui/ArtistPage.qml:57
#, kde-format
msgid "Artist"
msgstr "Artista"
#: contents/ui/ArtistPage.qml:79 contents/ui/SearchPage.qml:70
#, kde-format
msgid ""
"Video playback is not supported yet. Do you want to play only the audio of "
@@ -56,22 +89,22 @@ msgstr ""
"La reproducción de vídeo aún no está permitida. ¿Desea reproducir solo el "
"sonido de «%1»?"
#: contents/ui/ArtistPage.qml:55 contents/ui/SearchPage.qml:25
#: contents/ui/ArtistPage.qml:96 contents/ui/SearchPage.qml:26
#, kde-format
msgid "Albums"
msgstr "Álbumes"
#: contents/ui/ArtistPage.qml:57
#: contents/ui/ArtistPage.qml:98
#, kde-format
msgid "Singles"
msgstr "Sencillos"
#: contents/ui/ArtistPage.qml:59 contents/ui/SearchPage.qml:31
#: contents/ui/ArtistPage.qml:100 contents/ui/SearchPage.qml:32
#, kde-format
msgid "Songs"
msgstr "Canciones"
#: contents/ui/ArtistPage.qml:61 contents/ui/SearchPage.qml:33
#: contents/ui/ArtistPage.qml:102 contents/ui/SearchPage.qml:34
#, kde-format
msgid "Videos"
msgstr "Vídeos"
@@ -86,85 +119,326 @@ msgstr "Aceptar"
msgid "Cancel"
msgstr "Cancelar"
#: contents/ui/LibraryPage.qml:15
#: contents/ui/dialogs/AddPlaylistDialog.qml:17
#, kde-format
msgid "Add playlist"
msgstr "Añadir lista de reproducción"
#: contents/ui/dialogs/AddPlaylistDialog.qml:23
#: contents/ui/dialogs/RenamePlaylistDialog.qml:24
#, kde-format
msgid "Playlist Title"
msgstr "Título de la lista de reproducción"
#: contents/ui/dialogs/AddPlaylistDialog.qml:28
#: contents/ui/dialogs/RenamePlaylistDialog.qml:30
#, kde-format
msgid "Playlist Description"
msgstr "Descripción de la lista de reproducción"
#: contents/ui/dialogs/PlaylistDialog.qml:20
#, kde-format
msgid "Add Song to Playlist"
msgstr "Añadir canción a la lista de reproducción"
#: contents/ui/dialogs/PlaylistDialog.qml:29
#: contents/ui/LocalPlaylistsPage.qml:90
#, kde-format
msgid "New Playlist"
msgstr "Nueva lista de reproducción"
#: contents/ui/dialogs/RenamePlaylistDialog.qml:18
#, kde-format
msgid "Rename playlist"
msgstr "Cambiar nombre de la lista de reproducción"
#: contents/ui/LibraryPage.qml:30 contents/ui/LibraryPage.qml:123
#: contents/ui/NavigationBar.qml:48 contents/ui/NavigationBar.qml:54
#: contents/ui/Sidebar.qml:131 contents/ui/Sidebar.qml:138
#, kde-format
msgid "Favourites"
msgstr ""
msgstr "Favoritas"
#: contents/ui/LibraryPage.qml:67
#: contents/ui/LibraryPage.qml:119 contents/ui/LibraryPage.qml:416
#: contents/ui/LibraryPage.qml:623
#, kde-format
msgid "Show All"
msgstr "Mostrar todas"
#: contents/ui/LibraryPage.qml:147
#, kde-format
msgid "No Favourites Yet"
msgstr "Todavía no hay favoritas"
#: contents/ui/LibraryPage.qml:325
#, kde-format
msgid "Most played"
msgstr ""
msgstr "Más reproducidas"
#: contents/ui/main.qml:94
#: contents/ui/LibraryPage.qml:420 contents/ui/NavigationBar.qml:61
#: contents/ui/NavigationBar.qml:67 contents/ui/Sidebar.qml:150
#: contents/ui/Sidebar.qml:157
#, kde-format
msgid "AudioTube"
msgstr "AudioTube"
msgid "Played Songs"
msgstr "Canciones reproducidas"
#: contents/ui/PlayerFooter.qml:124
#: contents/ui/LibraryPage.qml:444
#, kde-format
msgid "Remove Track"
msgstr "Eliminar pista"
msgid "No Songs Played Yet"
msgstr "Todavía no se han reproducido canciones"
#: contents/ui/PlayerFooter.qml:141
#, kde-format
msgid "Clear"
msgstr "Borrar todo"
#: contents/ui/PlayerFooter.qml:146 contents/ui/PlaylistPage.qml:26
#, kde-format
msgid "Shuffle"
msgstr "Desordenar"
#: contents/ui/PlayerFooter.qml:192
#, kde-format
msgid "Pause"
msgstr "Pausar"
#: contents/ui/PlayerFooter.qml:222
#, kde-format
msgid "No media playing"
msgstr "Ningún medio en reproducción"
#: contents/ui/PlayerFooter.qml:266
#, kde-format
msgid "Expand"
msgstr "Expandir"
#: contents/ui/SearchPage.qml:27
#, kde-format
msgid "Artists"
msgstr "Artistas"
#: contents/ui/SearchPage.qml:29
#: contents/ui/LibraryPage.qml:611 contents/ui/LocalPlaylistsPage.qml:18
#: contents/ui/LocalPlaylistsPage.qml:78 contents/ui/NavigationBar.qml:75
#: contents/ui/SearchPage.qml:30 contents/ui/Sidebar.qml:167
#, kde-format
msgid "Playlists"
msgstr "Listas de reproducción"
#: contents/ui/SearchPage.qml:36
#: contents/ui/LibraryPage.qml:650
#, kde-format
msgid "Unknown"
msgstr "Desconocido"
msgid "No Playlists Yet"
msgstr "Todavía no hay listas de reproducción"
#: contents/ui/SearchPage.qml:117
#: contents/ui/LibraryPage.qml:670 contents/ui/LibraryPage.qml:692
#: contents/ui/LocalPlaylistsPage.qml:33 contents/ui/LocalPlaylistsPage.qml:55
#, kde-format
msgid "Play next"
msgstr "Reproducir siguiente"
msgid "Rename"
msgstr "Cambiar nombre"
#: contents/ui/SearchPage.qml:129
#: contents/ui/LibraryPage.qml:679 contents/ui/LibraryPage.qml:700
#: contents/ui/LocalPlaylistsPage.qml:42 contents/ui/LocalPlaylistsPage.qml:63
#, kde-format
msgid "Radio"
msgstr "Radio"
msgid "Delete"
msgstr "Borrar"
#: contents/ui/SearchPage.qml:147
#: contents/ui/LocalPlaylistPage.qml:19
#, kde-format
msgid "Find music on YouTube Music"
msgstr "Encuentre música en YouTube Music"
msgid "Remove from Playlist"
msgstr "Eliminar de la lista de reproducción"
#: contents/ui/SearchPage.qml:150
#: contents/ui/LocalPlaylistPage.qml:29
#, kde-format
msgid "This playlist is still empty"
msgstr "Esta lista de reproducción está vacía"
#: contents/ui/main.qml:109 main.cpp:59
#, kde-format
msgid "AudioTube"
msgstr "AudioTube"
#: contents/ui/MaximizedPlayerPage.qml:196
#: contents/ui/MinimizedPlayerControls.qml:93
#, kde-format
msgid "No media playing"
msgstr "Ningún medio en reproducción"
#: contents/ui/MaximizedPlayerPage.qml:571
#, kde-format
msgid "%1%"
msgstr "%1%"
#: contents/ui/MaximizedPlayerPage.qml:839
#: contents/ui/MaximizedPlayerPage.qml:1016
#, kde-format
msgid "Remove Track"
msgstr "Eliminar pista"
#: contents/ui/MaximizedPlayerPage.qml:870
#, kde-format
msgid "Clear Playlist"
msgstr "Borrar la lista de reproducción"
#: contents/ui/MaximizedPlayerPage.qml:917
#, kde-format
msgid "Upcoming Songs"
msgstr "Próximas canciones"
#: contents/ui/NavigationBar.qml:24 contents/ui/Sidebar.qml:100
#, kde-format
msgid "Library"
msgstr "Biblioteca"
#: contents/ui/NavigationBar.qml:36 contents/ui/Sidebar.qml:116
#, kde-format
msgid "Search"
msgstr "Buscar"
#: contents/ui/PlaybackHistory.qml:15
#, kde-format
msgid "Unknown list of songs"
msgstr "Lista de canciones desconocida"
#: contents/ui/PlaybackHistory.qml:74
#, kde-format
msgid "No songs here yet"
msgstr "Todavía no contiene canciones"
#: contents/ui/PlaylistPage.qml:67
#, kde-format
msgid "Playlist"
msgstr "Lista de reproducción"
#: contents/ui/SearchHistoryPage.qml:86 contents/ui/SearchWithDropdown.qml:412
#, kde-format
msgid "remove from search history"
msgstr "eliminar del historial de búsqueda"
#: contents/ui/SearchPage.qml:16
#, kde-format
msgid "Previous Searches:"
msgstr "Búsquedas anteriores:"
#: contents/ui/SearchPage.qml:28
#, kde-format
msgid "Artists"
msgstr "Artistas"
#: contents/ui/SearchPage.qml:37
#, kde-format
msgid "Unknown"
msgstr "Desconocido"
#: contents/ui/SearchWithDropdown.qml:359
#, kde-format
msgid "No matching previous searches"
msgstr "No hay búsquedas anteriores coincidentes"
#: contents/ui/ShareMenu.qml:39
#, kde-format
msgid "Share to"
msgstr "Compartir con"
#: contents/ui/ShareMenu.qml:49 contents/ui/ShareMenu.qml:99
#, kde-format
msgid "Copy Link"
msgstr "Copiar enlace"
#: contents/ui/ShareMenu.qml:54 contents/ui/ShareMenu.qml:104
#, kde-format
msgid "Link copied to clipboard"
msgstr "Se ha copiado el enlace en el portapapeles"
#: contents/ui/Sidebar.qml:189
#, kde-format
msgid "About"
msgstr "Acerca de"
#: contents/ui/Sidebar.qml:203
#, kde-format
msgid "Collapse Sidebar"
msgstr "Contraer la barra lateral"
#: contents/ui/SongMenu.qml:107 contents/ui/SongMenu.qml:205
#, kde-format
msgid "Play Next"
msgstr "Reproducir siguiente"
#: contents/ui/SongMenu.qml:116 contents/ui/SongMenu.qml:211
#, kde-format
msgid "Add to queue"
msgstr "Añadir a la cola"
#: contents/ui/SongMenu.qml:126 contents/ui/SongMenu.qml:221
#, kde-format
msgid "Remove Favourite"
msgstr "Eliminar favorita"
#: contents/ui/SongMenu.qml:126 contents/ui/SongMenu.qml:221
#, kde-format
msgid "Add Favourite"
msgstr "Añadir favorita"
#: contents/ui/SongMenu.qml:143 contents/ui/SongMenu.qml:235
#, kde-format
msgid "Remove from History"
msgstr "Eliminar del historial"
#: contents/ui/SongMenu.qml:156 contents/ui/SongMenu.qml:244
#, kde-format
msgid "Add to playlist"
msgstr "Añadir a la lista de reproducción"
#: contents/ui/SongMenu.qml:183 contents/ui/SongMenu.qml:269
#, kde-format
msgid "Share Song"
msgstr "Compartir canción"
#: main.cpp:61
#, kde-format
msgid "YouTube Music Player"
msgstr "Reproductor de música de YouTube"
#: main.cpp:63
#, kde-format
msgid "© 2021-2023 Jonah Brüchert, 2021-2023 KDE Community"
msgstr "© 2021-2023 Jonah Brüchert, 2021-2023 La Comunidad KDE"
#: main.cpp:64
#, kde-format
msgid "Jonah Brüchert"
msgstr "Jonah Brüchert"
#: main.cpp:64
#, kde-format
msgid "Maintainer"
msgstr "Responsable"
#: main.cpp:65
#, kde-format
msgid "Mathis Brüchert"
msgstr "Mathis Brüchert"
#: main.cpp:65
#, kde-format
msgid "Designer"
msgstr "Diseñador"
#: main.cpp:66
#, kde-format
msgctxt "NAME OF TRANSLATORS"
msgid "Your names"
msgstr "Eloy Cuadra"
#: main.cpp:66
#, kde-format
msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails"
msgstr "[email protected]"
#: main.cpp:71
#, kde-format
msgid "Unofficial API for YouTube Music"
msgstr "API no oficial para YouTube Music"
#~ msgid "played Songs"
#~ msgstr "canciones reproducidas"
#~ msgid "%"
#~ msgstr "%"
#~ msgid "Now Playing"
#~ msgstr "Reproduciendo"
#~ msgid "Queue"
#~ msgstr "Cola"
#~ msgid "Lyrics"
#~ msgstr "Letra"
#~ msgid "Back"
#~ msgstr "Volver"
#~ msgid "Play next"
#~ msgstr "Reproducir siguiente"
#~ msgid "Clear"
#~ msgstr "Borrar todo"
#~ msgid "Pause"
#~ msgstr "Pausar"
#~ msgid "Expand"
#~ msgstr "Expandir"
#~ msgid "Play only Audio"
#~ msgstr "Reproducir solo el sonido"
+358 -84
View File
@@ -1,16 +1,16 @@
# Translation for audiotube.po to Euskara/Basque (eu).
# Copyright (C) 2021-2022, This file is copyright:
# Copyright (C) 2021-2023 This file is copyright:
# This file is distributed under the same license as the audiotube package.
# KDE euskaratzeko proiektuko arduraduna <[email protected]>.
#
# Translators:
# Iñigo Salvador Azurmendi <[email protected]>, 2021, 2022.
# Iñigo Salvador Azurmendi <[email protected]>, 2021, 2022, 2023.
msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2022-05-23 00:47+0000\n"
"PO-Revision-Date: 2022-02-21 18:58+0100\n"
"POT-Creation-Date: 2023-04-23 04:10+0000\n"
"PO-Revision-Date: 2023-04-19 00:04+0200\n"
"Last-Translator: Iñigo Salvador Azurmendi <[email protected]>\n"
"Language-Team: Basque <[email protected]>\n"
"Language: eu\n"
@@ -18,37 +18,70 @@ 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.2\n"
"X-Generator: Lokalize 22.12.3\n"
#, kde-format
msgctxt "NAME OF TRANSLATORS"
msgid "Your names"
msgstr "Iñigo Salvador Azurmendi"
#, kde-format
msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails"
msgstr "[email protected]"
#: contents/ui/AlbumPage.qml:19 contents/ui/PlayerFooter.qml:192
#: contents/ui/PlaylistPage.qml:19
#: contents/ui/AlbumPage.qml:26 contents/ui/LibraryPage.qml:37
#: contents/ui/LibraryPage.qml:63 contents/ui/LibraryPage.qml:84
#: contents/ui/LibraryPage.qml:332 contents/ui/LibraryPage.qml:358
#: contents/ui/LibraryPage.qml:379 contents/ui/LocalPlaylistPage.qml:42
#: contents/ui/PlaybackHistory.qml:23 contents/ui/PlaylistPage.qml:31
#, kde-format
msgid "Play"
msgstr "Jo"
#: contents/ui/AlbumPage.qml:61 contents/ui/ArtistPage.qml:101
#: contents/ui/PlaylistPage.qml:67
#: contents/ui/AlbumPage.qml:33 contents/ui/ArtistPage.qml:36
#: contents/ui/LibraryPage.qml:44 contents/ui/LibraryPage.qml:69
#: contents/ui/LibraryPage.qml:92 contents/ui/LibraryPage.qml:339
#: contents/ui/LibraryPage.qml:364 contents/ui/LibraryPage.qml:388
#: contents/ui/LocalPlaylistPage.qml:49 contents/ui/MaximizedPlayerPage.qml:891
#: contents/ui/PlaybackHistory.qml:36 contents/ui/PlaylistPage.qml:38
#, kde-format
msgid "Play Next"
msgstr "Jo hurrengoa"
msgid "Shuffle"
msgstr "Nahastu"
#: contents/ui/AlbumPage.qml:66 contents/ui/ArtistPage.qml:107
#: contents/ui/PlaylistPage.qml:72 contents/ui/SearchPage.qml:123
#: contents/ui/AlbumPage.qml:41 contents/ui/LibraryPage.qml:74
#: contents/ui/LibraryPage.qml:100 contents/ui/LibraryPage.qml:369
#: contents/ui/LibraryPage.qml:396 contents/ui/LocalPlaylistPage.qml:55
#: contents/ui/PlaybackHistory.qml:48 contents/ui/PlaylistPage.qml:46
#, kde-format
msgid "Add to Playlist"
msgstr "Gehitu jotze-zerrendara"
msgid "Append to queue"
msgstr "Jarri ilaran"
#: contents/ui/ArtistPage.qml:39 contents/ui/SearchPage.qml:67
#: contents/ui/AlbumPage.qml:46 contents/ui/ArtistPage.qml:43
#: contents/ui/PlaylistPage.qml:51
#, kde-format
msgid "Open in Browser"
msgstr "Ireki arakatzailean"
#: contents/ui/AlbumPage.qml:51 contents/ui/ArtistPage.qml:48
#: contents/ui/PlaylistPage.qml:56
#, kde-format
msgid "Share"
msgstr "Partekatu"
#: contents/ui/AlbumPage.qml:61
#, kde-format
msgid "Album • %1"
msgstr "Albuma • %1"
#: contents/ui/AlbumPage.qml:105 contents/ui/ArtistPage.qml:137
#: contents/ui/LocalPlaylistPage.qml:114 contents/ui/PlaybackHistory.qml:127
#: contents/ui/PlaylistPage.qml:116 contents/ui/SearchPage.qml:130
#, kde-format
msgid "More"
msgstr "Gehiago"
#: contents/ui/ArtistPage.qml:31
#, kde-format
msgid "Radio"
msgstr "Irratia"
#: contents/ui/ArtistPage.qml:57
#, kde-format
msgid "Artist"
msgstr "Artista"
#: contents/ui/ArtistPage.qml:79 contents/ui/SearchPage.qml:70
#, kde-format
msgid ""
"Video playback is not supported yet. Do you want to play only the audio of "
@@ -57,22 +90,22 @@ msgstr ""
"Oraindik ez dago bideoa atzera jotzeko euskarririk. «%1»(r)en audioa "
"bakarrik jo nahi duzu?"
#: contents/ui/ArtistPage.qml:55 contents/ui/SearchPage.qml:25
#: contents/ui/ArtistPage.qml:96 contents/ui/SearchPage.qml:26
#, kde-format
msgid "Albums"
msgstr "Albumak"
#: contents/ui/ArtistPage.qml:57
#: contents/ui/ArtistPage.qml:98
#, kde-format
msgid "Singles"
msgstr "Banakoa"
#: contents/ui/ArtistPage.qml:59 contents/ui/SearchPage.qml:31
#: contents/ui/ArtistPage.qml:100 contents/ui/SearchPage.qml:32
#, kde-format
msgid "Songs"
msgstr "Abestiak"
#: contents/ui/ArtistPage.qml:61 contents/ui/SearchPage.qml:33
#: contents/ui/ArtistPage.qml:102 contents/ui/SearchPage.qml:34
#, kde-format
msgid "Videos"
msgstr "Bideoak"
@@ -87,85 +120,326 @@ msgstr "Ados"
msgid "Cancel"
msgstr "Utzi"
#: contents/ui/LibraryPage.qml:15
#: contents/ui/dialogs/AddPlaylistDialog.qml:17
#, kde-format
msgid "Add playlist"
msgstr "Gehitu jotze-zerrenda"
#: contents/ui/dialogs/AddPlaylistDialog.qml:23
#: contents/ui/dialogs/RenamePlaylistDialog.qml:24
#, kde-format
msgid "Playlist Title"
msgstr "Jotze-zerrendaren titulua"
#: contents/ui/dialogs/AddPlaylistDialog.qml:28
#: contents/ui/dialogs/RenamePlaylistDialog.qml:30
#, kde-format
msgid "Playlist Description"
msgstr "Jotze-zerrendaren deskribapena"
#: contents/ui/dialogs/PlaylistDialog.qml:20
#, kde-format
msgid "Add Song to Playlist"
msgstr "Gehitu abestia jotze-zerrendara"
#: contents/ui/dialogs/PlaylistDialog.qml:29
#: contents/ui/LocalPlaylistsPage.qml:90
#, kde-format
msgid "New Playlist"
msgstr "Jotze-zerrenda berria"
#: contents/ui/dialogs/RenamePlaylistDialog.qml:18
#, kde-format
msgid "Rename playlist"
msgstr "Berrizendatu jotze-zerrenda"
#: contents/ui/LibraryPage.qml:30 contents/ui/LibraryPage.qml:123
#: contents/ui/NavigationBar.qml:48 contents/ui/NavigationBar.qml:54
#: contents/ui/Sidebar.qml:131 contents/ui/Sidebar.qml:138
#, kde-format
msgid "Favourites"
msgstr ""
msgstr "Gogokoak"
#: contents/ui/LibraryPage.qml:67
#: contents/ui/LibraryPage.qml:119 contents/ui/LibraryPage.qml:416
#: contents/ui/LibraryPage.qml:623
#, kde-format
msgid "Show All"
msgstr "Erakutsi denak"
#: contents/ui/LibraryPage.qml:147
#, kde-format
msgid "No Favourites Yet"
msgstr "Oraindik Gogokorik ez"
#: contents/ui/LibraryPage.qml:325
#, kde-format
msgid "Most played"
msgstr ""
msgstr "Gehien jotakoa"
#: contents/ui/main.qml:94
#: contents/ui/LibraryPage.qml:420 contents/ui/NavigationBar.qml:61
#: contents/ui/NavigationBar.qml:67 contents/ui/Sidebar.qml:150
#: contents/ui/Sidebar.qml:157
#, kde-format
msgid "AudioTube"
msgstr "AudioTube"
msgid "Played Songs"
msgstr "Jotako abestiak"
#: contents/ui/PlayerFooter.qml:124
#: contents/ui/LibraryPage.qml:444
#, kde-format
msgid "Remove Track"
msgstr "Kendu pista"
msgid "No Songs Played Yet"
msgstr "Oraindik ez dago jotako abestirik"
#: contents/ui/PlayerFooter.qml:141
#, kde-format
msgid "Clear"
msgstr "Garbitu"
#: contents/ui/PlayerFooter.qml:146 contents/ui/PlaylistPage.qml:26
#, kde-format
msgid "Shuffle"
msgstr "Nahastu"
#: contents/ui/PlayerFooter.qml:192
#, kde-format
msgid "Pause"
msgstr "Eten"
#: contents/ui/PlayerFooter.qml:222
#, kde-format
msgid "No media playing"
msgstr "Ez da euskarririk jotzen ari"
#: contents/ui/PlayerFooter.qml:266
#, kde-format
msgid "Expand"
msgstr "Zabaldu"
#: contents/ui/SearchPage.qml:27
#, kde-format
msgid "Artists"
msgstr "Artistak"
#: contents/ui/SearchPage.qml:29
#: contents/ui/LibraryPage.qml:611 contents/ui/LocalPlaylistsPage.qml:18
#: contents/ui/LocalPlaylistsPage.qml:78 contents/ui/NavigationBar.qml:75
#: contents/ui/SearchPage.qml:30 contents/ui/Sidebar.qml:167
#, kde-format
msgid "Playlists"
msgstr "Jotze-zerrendak"
#: contents/ui/SearchPage.qml:36
#: contents/ui/LibraryPage.qml:650
#, kde-format
msgid "Unknown"
msgstr "Ezezaguna"
msgid "No Playlists Yet"
msgstr "Oraindik jotze-zerrendarik ez"
#: contents/ui/SearchPage.qml:117
#: contents/ui/LibraryPage.qml:670 contents/ui/LibraryPage.qml:692
#: contents/ui/LocalPlaylistsPage.qml:33 contents/ui/LocalPlaylistsPage.qml:55
#, kde-format
msgid "Play next"
msgstr "Jo hurrengoa"
msgid "Rename"
msgstr "Berrizendatu"
#: contents/ui/SearchPage.qml:129
#: contents/ui/LibraryPage.qml:679 contents/ui/LibraryPage.qml:700
#: contents/ui/LocalPlaylistsPage.qml:42 contents/ui/LocalPlaylistsPage.qml:63
#, kde-format
msgid "Radio"
msgstr "Irratia"
msgid "Delete"
msgstr "Ezabatu"
#: contents/ui/SearchPage.qml:147
#: contents/ui/LocalPlaylistPage.qml:19
#, kde-format
msgid "Find music on YouTube Music"
msgstr "Aurkitu musika «Youtube Music»en"
msgid "Remove from Playlist"
msgstr "Kendu jotze-zerrendatik"
#: contents/ui/SearchPage.qml:150
#: contents/ui/LocalPlaylistPage.qml:29
#, kde-format
msgid "This playlist is still empty"
msgstr "Jotze-zerrenda hau oraindik hutsik dago"
#: contents/ui/main.qml:109 main.cpp:59
#, kde-format
msgid "AudioTube"
msgstr "AudioTube"
#: contents/ui/MaximizedPlayerPage.qml:196
#: contents/ui/MinimizedPlayerControls.qml:93
#, kde-format
msgid "No media playing"
msgstr "Ez da euskarririk jotzen ari"
#: contents/ui/MaximizedPlayerPage.qml:571
#, kde-format
msgid "%1%"
msgstr "%%1"
#: contents/ui/MaximizedPlayerPage.qml:839
#: contents/ui/MaximizedPlayerPage.qml:1016
#, kde-format
msgid "Remove Track"
msgstr "Kendu pista"
#: contents/ui/MaximizedPlayerPage.qml:870
#, kde-format
msgid "Clear Playlist"
msgstr "Garbitu jotze-zerrenda"
#: contents/ui/MaximizedPlayerPage.qml:917
#, kde-format
msgid "Upcoming Songs"
msgstr "Hurrengo abestiak"
#: contents/ui/NavigationBar.qml:24 contents/ui/Sidebar.qml:100
#, kde-format
msgid "Library"
msgstr "Liburutegia"
#: contents/ui/NavigationBar.qml:36 contents/ui/Sidebar.qml:116
#, kde-format
msgid "Search"
msgstr "Bilatu"
#: contents/ui/PlaybackHistory.qml:15
#, kde-format
msgid "Unknown list of songs"
msgstr "Abesti zerrenda ezezaguna"
#: contents/ui/PlaybackHistory.qml:74
#, kde-format
msgid "No songs here yet"
msgstr "Hemen oraindik ez dago abestirik"
#: contents/ui/PlaylistPage.qml:67
#, kde-format
msgid "Playlist"
msgstr "Jotze-zerrenda"
#: contents/ui/SearchHistoryPage.qml:86 contents/ui/SearchWithDropdown.qml:412
#, kde-format
msgid "remove from search history"
msgstr "Kendu bilaketa-historiatik"
#: contents/ui/SearchPage.qml:16
#, kde-format
msgid "Previous Searches:"
msgstr "Aurreko bilaketak:"
#: contents/ui/SearchPage.qml:28
#, kde-format
msgid "Artists"
msgstr "Artistak"
#: contents/ui/SearchPage.qml:37
#, kde-format
msgid "Unknown"
msgstr "Ezezaguna"
#: contents/ui/SearchWithDropdown.qml:359
#, kde-format
msgid "No matching previous searches"
msgstr "Ez dago bat datorren aurreko bilaketarik"
#: contents/ui/ShareMenu.qml:39
#, kde-format
msgid "Share to"
msgstr "Partekatu honi,"
#: contents/ui/ShareMenu.qml:49 contents/ui/ShareMenu.qml:99
#, kde-format
msgid "Copy Link"
msgstr "Kopiatu esteka"
#: contents/ui/ShareMenu.qml:54 contents/ui/ShareMenu.qml:104
#, kde-format
msgid "Link copied to clipboard"
msgstr "Esteka arbelera kopiatu da"
#: contents/ui/Sidebar.qml:189
#, kde-format
msgid "About"
msgstr "Honi buruz"
#: contents/ui/Sidebar.qml:203
#, kde-format
msgid "Collapse Sidebar"
msgstr "Tolestu Alboko-barra"
#: contents/ui/SongMenu.qml:107 contents/ui/SongMenu.qml:205
#, kde-format
msgid "Play Next"
msgstr "Jo hurrengoa"
#: contents/ui/SongMenu.qml:116 contents/ui/SongMenu.qml:211
#, kde-format
msgid "Add to queue"
msgstr "Gehitu ilaran"
#: contents/ui/SongMenu.qml:126 contents/ui/SongMenu.qml:221
#, kde-format
msgid "Remove Favourite"
msgstr "Kendu gogokoa"
#: contents/ui/SongMenu.qml:126 contents/ui/SongMenu.qml:221
#, kde-format
msgid "Add Favourite"
msgstr "Gehitu gogokoa"
#: contents/ui/SongMenu.qml:143 contents/ui/SongMenu.qml:235
#, kde-format
msgid "Remove from History"
msgstr "Kendu historiatik"
#: contents/ui/SongMenu.qml:156 contents/ui/SongMenu.qml:244
#, kde-format
msgid "Add to playlist"
msgstr "Gehitu jotze-zerrendara"
#: contents/ui/SongMenu.qml:183 contents/ui/SongMenu.qml:269
#, kde-format
msgid "Share Song"
msgstr "Partekatu abestia"
#: main.cpp:61
#, kde-format
msgid "YouTube Music Player"
msgstr "YouTube musika jotzailea"
#: main.cpp:63
#, kde-format
msgid "© 2021-2023 Jonah Brüchert, 2021-2023 KDE Community"
msgstr "© 2021-2023 Jonah Brüchert, 2021-2023 KDE Komunitatea"
#: main.cpp:64
#, kde-format
msgid "Jonah Brüchert"
msgstr "Jonah Brüchert"
#: main.cpp:64
#, kde-format
msgid "Maintainer"
msgstr "Arduraduna"
#: main.cpp:65
#, kde-format
msgid "Mathis Brüchert"
msgstr "Mathis Brüchert"
#: main.cpp:65
#, kde-format
msgid "Designer"
msgstr "Diseinatzailea"
#: main.cpp:66
#, kde-format
msgctxt "NAME OF TRANSLATORS"
msgid "Your names"
msgstr "Iñigo Salvador Azurmendi"
#: main.cpp:66
#, kde-format
msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails"
msgstr "[email protected]"
#: main.cpp:71
#, kde-format
msgid "Unofficial API for YouTube Music"
msgstr "«YouTube Music»erako API ez-ofiziala"
#~ msgid "played Songs"
#~ msgstr "jotako abestiak"
#~ msgid "%"
#~ msgstr "%"
#~ msgid "Now Playing"
#~ msgstr "Orain jotzen"
#~ msgid "Queue"
#~ msgstr "Ilara"
#~ msgid "Lyrics"
#~ msgstr "Hitzak"
#~ msgid "Back"
#~ msgstr "Atzera"
#~ msgid "Play next"
#~ msgstr "Jo hurrengoa"
#~ msgid "Clear"
#~ msgstr "Garbitu"
#~ msgid "Pause"
#~ msgstr "Eten"
#~ msgid "Expand"
#~ msgstr "Zabaldu"
#~ msgid "Play only Audio"
#~ msgstr "Audio bakarrik jo"
+353 -83
View File
@@ -1,13 +1,13 @@
# Copyright (C) YEAR This file is copyright:
# This file is distributed under the same license as the audiotube package.
# Tommi Nieminen <[email protected]>, 2021, 2022.
# Tommi Nieminen <[email protected]>, 2021, 2022, 2023.
#
msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2022-05-23 00:47+0000\n"
"PO-Revision-Date: 2022-01-11 22:47+0200\n"
"POT-Creation-Date: 2023-04-23 04:10+0000\n"
"PO-Revision-Date: 2023-03-30 10:03+0300\n"
"Last-Translator: Tommi Nieminen <[email protected]>\n"
"Language-Team: Finnish <[email protected]>\n"
"Language: fi\n"
@@ -15,37 +15,70 @@ 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 20.04.2\n"
"X-Generator: Lokalize 22.12.3\n"
#, kde-format
msgctxt "NAME OF TRANSLATORS"
msgid "Your names"
msgstr "Tommi Nieminen"
#, kde-format
msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails"
msgstr "[email protected]"
#: contents/ui/AlbumPage.qml:19 contents/ui/PlayerFooter.qml:192
#: contents/ui/PlaylistPage.qml:19
#: contents/ui/AlbumPage.qml:26 contents/ui/LibraryPage.qml:37
#: contents/ui/LibraryPage.qml:63 contents/ui/LibraryPage.qml:84
#: contents/ui/LibraryPage.qml:332 contents/ui/LibraryPage.qml:358
#: contents/ui/LibraryPage.qml:379 contents/ui/LocalPlaylistPage.qml:42
#: contents/ui/PlaybackHistory.qml:23 contents/ui/PlaylistPage.qml:31
#, kde-format
msgid "Play"
msgstr "Toista"
#: contents/ui/AlbumPage.qml:61 contents/ui/ArtistPage.qml:101
#: contents/ui/PlaylistPage.qml:67
#: contents/ui/AlbumPage.qml:33 contents/ui/ArtistPage.qml:36
#: contents/ui/LibraryPage.qml:44 contents/ui/LibraryPage.qml:69
#: contents/ui/LibraryPage.qml:92 contents/ui/LibraryPage.qml:339
#: contents/ui/LibraryPage.qml:364 contents/ui/LibraryPage.qml:388
#: contents/ui/LocalPlaylistPage.qml:49 contents/ui/MaximizedPlayerPage.qml:891
#: contents/ui/PlaybackHistory.qml:36 contents/ui/PlaylistPage.qml:38
#, kde-format
msgid "Play Next"
msgstr "Toista seuraava"
msgid "Shuffle"
msgstr "Sekoita"
#: contents/ui/AlbumPage.qml:66 contents/ui/ArtistPage.qml:107
#: contents/ui/PlaylistPage.qml:72 contents/ui/SearchPage.qml:123
#: contents/ui/AlbumPage.qml:41 contents/ui/LibraryPage.qml:74
#: contents/ui/LibraryPage.qml:100 contents/ui/LibraryPage.qml:369
#: contents/ui/LibraryPage.qml:396 contents/ui/LocalPlaylistPage.qml:55
#: contents/ui/PlaybackHistory.qml:48 contents/ui/PlaylistPage.qml:46
#, kde-format
msgid "Add to Playlist"
msgstr "Lisää soittolistaan"
msgid "Append to queue"
msgstr "Lisää jonoon"
#: contents/ui/ArtistPage.qml:39 contents/ui/SearchPage.qml:67
#: contents/ui/AlbumPage.qml:46 contents/ui/ArtistPage.qml:43
#: contents/ui/PlaylistPage.qml:51
#, kde-format
msgid "Open in Browser"
msgstr "Avaa selaimeen"
#: contents/ui/AlbumPage.qml:51 contents/ui/ArtistPage.qml:48
#: contents/ui/PlaylistPage.qml:56
#, kde-format
msgid "Share"
msgstr "Jaa"
#: contents/ui/AlbumPage.qml:61
#, kde-format
msgid "Album • %1"
msgstr "Albumi • %1"
#: contents/ui/AlbumPage.qml:105 contents/ui/ArtistPage.qml:137
#: contents/ui/LocalPlaylistPage.qml:114 contents/ui/PlaybackHistory.qml:127
#: contents/ui/PlaylistPage.qml:116 contents/ui/SearchPage.qml:130
#, kde-format
msgid "More"
msgstr "Lisää"
#: contents/ui/ArtistPage.qml:31
#, kde-format
msgid "Radio"
msgstr "Radio"
#: contents/ui/ArtistPage.qml:57
#, kde-format
msgid "Artist"
msgstr "Artisti"
#: contents/ui/ArtistPage.qml:79 contents/ui/SearchPage.qml:70
#, kde-format
msgid ""
"Video playback is not supported yet. Do you want to play only the audio of "
@@ -53,22 +86,22 @@ msgid ""
msgstr ""
"Videotoistoa ei vielä tueta. Haluatko toistaa videosta ”%1” vain äänen?"
#: contents/ui/ArtistPage.qml:55 contents/ui/SearchPage.qml:25
#: contents/ui/ArtistPage.qml:96 contents/ui/SearchPage.qml:26
#, kde-format
msgid "Albums"
msgstr "Albumit"
#: contents/ui/ArtistPage.qml:57
#: contents/ui/ArtistPage.qml:98
#, kde-format
msgid "Singles"
msgstr "Singlet"
#: contents/ui/ArtistPage.qml:59 contents/ui/SearchPage.qml:31
#: contents/ui/ArtistPage.qml:100 contents/ui/SearchPage.qml:32
#, kde-format
msgid "Songs"
msgstr "Kappaleet"
#: contents/ui/ArtistPage.qml:61 contents/ui/SearchPage.qml:33
#: contents/ui/ArtistPage.qml:102 contents/ui/SearchPage.qml:34
#, kde-format
msgid "Videos"
msgstr "Videot"
@@ -83,85 +116,322 @@ msgstr "OK"
msgid "Cancel"
msgstr "Peru"
#: contents/ui/LibraryPage.qml:15
#: contents/ui/dialogs/AddPlaylistDialog.qml:17
#, kde-format
msgid "Add playlist"
msgstr "Lisää soittolista"
#: contents/ui/dialogs/AddPlaylistDialog.qml:23
#: contents/ui/dialogs/RenamePlaylistDialog.qml:24
#, kde-format
msgid "Playlist Title"
msgstr "Soittolistan otsikko"
#: contents/ui/dialogs/AddPlaylistDialog.qml:28
#: contents/ui/dialogs/RenamePlaylistDialog.qml:30
#, kde-format
msgid "Playlist Description"
msgstr "Soittolistan kuvaus"
#: contents/ui/dialogs/PlaylistDialog.qml:20
#, kde-format
msgid "Add Song to Playlist"
msgstr "Lisää kappale soittolistaan"
#: contents/ui/dialogs/PlaylistDialog.qml:29
#: contents/ui/LocalPlaylistsPage.qml:90
#, kde-format
msgid "New Playlist"
msgstr "Uusi soittolista"
#: contents/ui/dialogs/RenamePlaylistDialog.qml:18
#, kde-format
msgid "Rename playlist"
msgstr "Muuta soittolistan nimeä"
#: contents/ui/LibraryPage.qml:30 contents/ui/LibraryPage.qml:123
#: contents/ui/NavigationBar.qml:48 contents/ui/NavigationBar.qml:54
#: contents/ui/Sidebar.qml:131 contents/ui/Sidebar.qml:138
#, kde-format
msgid "Favourites"
msgstr ""
msgstr "Suosikit"
#: contents/ui/LibraryPage.qml:67
#: contents/ui/LibraryPage.qml:119 contents/ui/LibraryPage.qml:416
#: contents/ui/LibraryPage.qml:623
#, kde-format
msgid "Show All"
msgstr "Näytä kaikki"
#: contents/ui/LibraryPage.qml:147
#, kde-format
msgid "No Favourites Yet"
msgstr "Ei vielä suosikkeja"
#: contents/ui/LibraryPage.qml:325
#, kde-format
msgid "Most played"
msgstr ""
msgstr "Soitetuimmat"
#: contents/ui/main.qml:94
#: contents/ui/LibraryPage.qml:420 contents/ui/NavigationBar.qml:61
#: contents/ui/NavigationBar.qml:67 contents/ui/Sidebar.qml:150
#: contents/ui/Sidebar.qml:157
#, kde-format
msgid "AudioTube"
msgstr "AudioTube"
msgid "Played Songs"
msgstr "Soitetut kappaleet"
#: contents/ui/PlayerFooter.qml:124
#: contents/ui/LibraryPage.qml:444
#, kde-format
msgid "Remove Track"
msgstr "Poista raita"
msgid "No Songs Played Yet"
msgstr "Ei vielä soitettuja kappaleita"
#: contents/ui/PlayerFooter.qml:141
#, kde-format
msgid "Clear"
msgstr "Tyhjennä"
#: contents/ui/PlayerFooter.qml:146 contents/ui/PlaylistPage.qml:26
#, kde-format
msgid "Shuffle"
msgstr "Sekoita"
#: contents/ui/PlayerFooter.qml:192
#, kde-format
msgid "Pause"
msgstr "Tauko"
#: contents/ui/PlayerFooter.qml:222
#, kde-format
msgid "No media playing"
msgstr "Mitään ei toisteta"
#: contents/ui/PlayerFooter.qml:266
#, kde-format
msgid "Expand"
msgstr "Laajenna"
#: contents/ui/SearchPage.qml:27
#, kde-format
msgid "Artists"
msgstr "Artistit"
#: contents/ui/SearchPage.qml:29
#: contents/ui/LibraryPage.qml:611 contents/ui/LocalPlaylistsPage.qml:18
#: contents/ui/LocalPlaylistsPage.qml:78 contents/ui/NavigationBar.qml:75
#: contents/ui/SearchPage.qml:30 contents/ui/Sidebar.qml:167
#, kde-format
msgid "Playlists"
msgstr "Soittolistat"
#: contents/ui/SearchPage.qml:36
#: contents/ui/LibraryPage.qml:650
#, kde-format
msgid "Unknown"
msgstr "Tuntematon"
msgid "No Playlists Yet"
msgstr "Ei vielä soittolistoja"
#: contents/ui/SearchPage.qml:117
#: contents/ui/LibraryPage.qml:670 contents/ui/LibraryPage.qml:692
#: contents/ui/LocalPlaylistsPage.qml:33 contents/ui/LocalPlaylistsPage.qml:55
#, kde-format
msgid "Play next"
msgstr "Toista seuraava"
msgid "Rename"
msgstr "Muuta nimeä"
#: contents/ui/SearchPage.qml:129
#: contents/ui/LibraryPage.qml:679 contents/ui/LibraryPage.qml:700
#: contents/ui/LocalPlaylistsPage.qml:42 contents/ui/LocalPlaylistsPage.qml:63
#, kde-format
msgid "Radio"
msgstr "Radio"
msgid "Delete"
msgstr "Poista"
#: contents/ui/SearchPage.qml:147
#: contents/ui/LocalPlaylistPage.qml:19
#, kde-format
msgid "Find music on YouTube Music"
msgstr "Etsi musiikkia Youtube Musicista"
msgid "Remove from Playlist"
msgstr "Poista soittolistalta"
#: contents/ui/SearchPage.qml:150
#: contents/ui/LocalPlaylistPage.qml:29
#, kde-format
msgid "This playlist is still empty"
msgstr "Soittolista on yhä tyhjä"
#: contents/ui/main.qml:109 main.cpp:59
#, kde-format
msgid "AudioTube"
msgstr "AudioTube"
#: contents/ui/MaximizedPlayerPage.qml:196
#: contents/ui/MinimizedPlayerControls.qml:93
#, kde-format
msgid "No media playing"
msgstr "Mitään ei toisteta"
#: contents/ui/MaximizedPlayerPage.qml:571
#, kde-format
msgid "%1%"
msgstr "%1 %"
#: contents/ui/MaximizedPlayerPage.qml:839
#: contents/ui/MaximizedPlayerPage.qml:1016
#, kde-format
msgid "Remove Track"
msgstr "Poista raita"
#: contents/ui/MaximizedPlayerPage.qml:870
#, kde-format
msgid "Clear Playlist"
msgstr "Tyhjennä soittolista"
#: contents/ui/MaximizedPlayerPage.qml:917
#, kde-format
msgid "Upcoming Songs"
msgstr "Tulossa olevat kappaleet"
#: contents/ui/NavigationBar.qml:24 contents/ui/Sidebar.qml:100
#, kde-format
msgid "Library"
msgstr "Kirjasto"
#: contents/ui/NavigationBar.qml:36 contents/ui/Sidebar.qml:116
#, kde-format
msgid "Search"
msgstr "Etsi"
#: contents/ui/PlaybackHistory.qml:15
#, kde-format
msgid "Unknown list of songs"
msgstr "Tuntematon kappaleluettelo"
#: contents/ui/PlaybackHistory.qml:74
#, kde-format
msgid "No songs here yet"
msgstr "Ei vielä kappaleita"
#: contents/ui/PlaylistPage.qml:67
#, kde-format
msgid "Playlist"
msgstr "Soittolista"
#: contents/ui/SearchHistoryPage.qml:86 contents/ui/SearchWithDropdown.qml:412
#, kde-format
msgid "remove from search history"
msgstr "poista hakuhistoriasta"
#: contents/ui/SearchPage.qml:16
#, kde-format
msgid "Previous Searches:"
msgstr "Aiemmat haut:"
#: contents/ui/SearchPage.qml:28
#, kde-format
msgid "Artists"
msgstr "Artistit"
#: contents/ui/SearchPage.qml:37
#, kde-format
msgid "Unknown"
msgstr "Tuntematon"
#: contents/ui/SearchWithDropdown.qml:359
#, kde-format
msgid "No matching previous searches"
msgstr "Ei osumia aiemmista hauista"
#: contents/ui/ShareMenu.qml:39
#, kde-format
msgid "Share to"
msgstr "Jaa kohteeseen"
#: contents/ui/ShareMenu.qml:49 contents/ui/ShareMenu.qml:99
#, kde-format
msgid "Copy Link"
msgstr "Kopioi linkki"
#: contents/ui/ShareMenu.qml:54 contents/ui/ShareMenu.qml:104
#, kde-format
msgid "Link copied to clipboard"
msgstr "Linkki kopioitu leikepöydälle"
#: contents/ui/Sidebar.qml:189
#, kde-format
msgid "About"
msgstr "Tietoa"
#: contents/ui/Sidebar.qml:203
#, kde-format
msgid "Collapse Sidebar"
msgstr "Supista sivupaneeli"
#: contents/ui/SongMenu.qml:107 contents/ui/SongMenu.qml:205
#, kde-format
msgid "Play Next"
msgstr "Toista seuraava"
#: contents/ui/SongMenu.qml:116 contents/ui/SongMenu.qml:211
#, kde-format
msgid "Add to queue"
msgstr "Lisää jonoon"
#: contents/ui/SongMenu.qml:126 contents/ui/SongMenu.qml:221
#, kde-format
msgid "Remove Favourite"
msgstr "Poista suosikki"
#: contents/ui/SongMenu.qml:126 contents/ui/SongMenu.qml:221
#, kde-format
msgid "Add Favourite"
msgstr "Lisää suosikki"
#: contents/ui/SongMenu.qml:143 contents/ui/SongMenu.qml:235
#, kde-format
msgid "Remove from History"
msgstr "Poista historiasta"
#: contents/ui/SongMenu.qml:156 contents/ui/SongMenu.qml:244
#, kde-format
msgid "Add to playlist"
msgstr "Lisää soittolistaan"
#: contents/ui/SongMenu.qml:183 contents/ui/SongMenu.qml:269
#, kde-format
msgid "Share Song"
msgstr "Jaa kappale"
#: main.cpp:61
#, kde-format
msgid "YouTube Music Player"
msgstr "YouTube-musiikkisoitin"
#: main.cpp:63
#, kde-format
msgid "© 2021-2023 Jonah Brüchert, 2021-2023 KDE Community"
msgstr "© 2021–2023 Jonah Brüchert, 2021–2023 KDE-yhteisö"
#: main.cpp:64
#, kde-format
msgid "Jonah Brüchert"
msgstr "Jonah Brüchert"
#: main.cpp:64
#, kde-format
msgid "Maintainer"
msgstr "Ylläpitäjä"
#: main.cpp:65
#, kde-format
msgid "Mathis Brüchert"
msgstr "Mathis Brüchert"
#: main.cpp:65
#, kde-format
msgid "Designer"
msgstr "Suunnittelija"
#: main.cpp:66
#, kde-format
msgctxt "NAME OF TRANSLATORS"
msgid "Your names"
msgstr "Tommi Nieminen"
#: main.cpp:66
#, kde-format
msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails"
msgstr "[email protected]"
#: main.cpp:71
#, kde-format
msgid "Unofficial API for YouTube Music"
msgstr "Epävirallinen YouTube Music -API"
#, fuzzy
#~| msgid "Played Songs"
#~ msgid "played Songs"
#~ msgstr "Soitetut kappaleet"
#~ msgid "Now Playing"
#~ msgstr "Nyt soi"
#~ msgid "Queue"
#~ msgstr "Jono"
#~ msgid "Back"
#~ msgstr "Takaisin"
#~ msgid "Play next"
#~ msgstr "Toista seuraava"
#~ msgid "Clear"
#~ msgstr "Tyhjennä"
#~ msgid "Pause"
#~ msgstr "Tauko"
#~ msgid "Expand"
#~ msgstr "Laajenna"
#~ msgid "Play only Audio"
#~ msgstr "Toista vain ääni"
+360 -85
View File
@@ -1,48 +1,82 @@
# Xavier Besnard <[email protected]>, 2021.
# Xavier Besnard <[email protected]>, 2021, 2022.
# Xavier BESNARD <xavier.besnard]neuf.fr>, 2022, 2023.
msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2022-05-23 00:47+0000\n"
"PO-Revision-Date: 2021-12-06 10:18+0100\n"
"Last-Translator: Xavier Besnard <xavier.besnard@neuf.fr>\n"
"Language-Team: French <[email protected]>\n"
"POT-Creation-Date: 2023-04-23 04:10+0000\n"
"PO-Revision-Date: 2023-03-10 12:03+0100\n"
"Last-Translator: Xavier BESNARD <xavier.besnard]neuf.fr>\n"
"Language-Team: fr\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"X-Generator: Lokalize 21.11.90\n"
"X-Generator: Lokalize 22.12.3\n"
#, kde-format
msgctxt "NAME OF TRANSLATORS"
msgid "Your names"
msgstr "Xavier Besnard"
#, kde-format
msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails"
msgstr "[email protected]"
#: contents/ui/AlbumPage.qml:19 contents/ui/PlayerFooter.qml:192
#: contents/ui/PlaylistPage.qml:19
#: contents/ui/AlbumPage.qml:26 contents/ui/LibraryPage.qml:37
#: contents/ui/LibraryPage.qml:63 contents/ui/LibraryPage.qml:84
#: contents/ui/LibraryPage.qml:332 contents/ui/LibraryPage.qml:358
#: contents/ui/LibraryPage.qml:379 contents/ui/LocalPlaylistPage.qml:42
#: contents/ui/PlaybackHistory.qml:23 contents/ui/PlaylistPage.qml:31
#, kde-format
msgid "Play"
msgstr "Lire"
#: contents/ui/AlbumPage.qml:61 contents/ui/ArtistPage.qml:101
#: contents/ui/PlaylistPage.qml:67
#: contents/ui/AlbumPage.qml:33 contents/ui/ArtistPage.qml:36
#: contents/ui/LibraryPage.qml:44 contents/ui/LibraryPage.qml:69
#: contents/ui/LibraryPage.qml:92 contents/ui/LibraryPage.qml:339
#: contents/ui/LibraryPage.qml:364 contents/ui/LibraryPage.qml:388
#: contents/ui/LocalPlaylistPage.qml:49 contents/ui/MaximizedPlayerPage.qml:891
#: contents/ui/PlaybackHistory.qml:36 contents/ui/PlaylistPage.qml:38
#, kde-format
msgid "Play Next"
msgstr "Lire le suivant"
msgid "Shuffle"
msgstr "Mélanger"
#: contents/ui/AlbumPage.qml:66 contents/ui/ArtistPage.qml:107
#: contents/ui/PlaylistPage.qml:72 contents/ui/SearchPage.qml:123
#: contents/ui/AlbumPage.qml:41 contents/ui/LibraryPage.qml:74
#: contents/ui/LibraryPage.qml:100 contents/ui/LibraryPage.qml:369
#: contents/ui/LibraryPage.qml:396 contents/ui/LocalPlaylistPage.qml:55
#: contents/ui/PlaybackHistory.qml:48 contents/ui/PlaylistPage.qml:46
#, kde-format
msgid "Add to Playlist"
msgstr "Ajouter à la liste de lecture"
msgid "Append to queue"
msgstr "Ajouter à la file de lecture"
#: contents/ui/ArtistPage.qml:39 contents/ui/SearchPage.qml:67
#: contents/ui/AlbumPage.qml:46 contents/ui/ArtistPage.qml:43
#: contents/ui/PlaylistPage.qml:51
#, kde-format
msgid "Open in Browser"
msgstr "Ouvrir dans un navigateur"
#: contents/ui/AlbumPage.qml:51 contents/ui/ArtistPage.qml:48
#: contents/ui/PlaylistPage.qml:56
#, kde-format
msgid "Share"
msgstr "Partager"
#: contents/ui/AlbumPage.qml:61
#, kde-format
msgid "Album • %1"
msgstr "Album • %1"
#: contents/ui/AlbumPage.qml:105 contents/ui/ArtistPage.qml:137
#: contents/ui/LocalPlaylistPage.qml:114 contents/ui/PlaybackHistory.qml:127
#: contents/ui/PlaylistPage.qml:116 contents/ui/SearchPage.qml:130
#, kde-format
msgid "More"
msgstr "Et plus encore"
#: contents/ui/ArtistPage.qml:31
#, kde-format
msgid "Radio"
msgstr "Radio"
#: contents/ui/ArtistPage.qml:57
#, kde-format
msgid "Artist"
msgstr "Artiste"
#: contents/ui/ArtistPage.qml:79 contents/ui/SearchPage.qml:70
#, kde-format
msgid ""
"Video playback is not supported yet. Do you want to play only the audio of "
@@ -51,22 +85,22 @@ msgstr ""
"La lecture de vidéos n'est pas encore prise en charge. Voulez-vous vraiment "
"lire uniquement l'audio de « %1 » ?"
#: contents/ui/ArtistPage.qml:55 contents/ui/SearchPage.qml:25
#: contents/ui/ArtistPage.qml:96 contents/ui/SearchPage.qml:26
#, kde-format
msgid "Albums"
msgstr "Albums"
#: contents/ui/ArtistPage.qml:57
#: contents/ui/ArtistPage.qml:98
#, kde-format
msgid "Singles"
msgstr "Titres uniques"
#: contents/ui/ArtistPage.qml:59 contents/ui/SearchPage.qml:31
#: contents/ui/ArtistPage.qml:100 contents/ui/SearchPage.qml:32
#, kde-format
msgid "Songs"
msgstr "Chansons"
#: contents/ui/ArtistPage.qml:61 contents/ui/SearchPage.qml:33
#: contents/ui/ArtistPage.qml:102 contents/ui/SearchPage.qml:34
#, kde-format
msgid "Videos"
msgstr "Vidéos"
@@ -81,85 +115,326 @@ msgstr "Ok"
msgid "Cancel"
msgstr "Annuler"
#: contents/ui/LibraryPage.qml:15
#: contents/ui/dialogs/AddPlaylistDialog.qml:17
#, kde-format
msgid "Add playlist"
msgstr "Ajouter une liste de lecture"
#: contents/ui/dialogs/AddPlaylistDialog.qml:23
#: contents/ui/dialogs/RenamePlaylistDialog.qml:24
#, kde-format
msgid "Playlist Title"
msgstr "Titre de la liste de lecture"
#: contents/ui/dialogs/AddPlaylistDialog.qml:28
#: contents/ui/dialogs/RenamePlaylistDialog.qml:30
#, kde-format
msgid "Playlist Description"
msgstr "Description de la liste de lecture"
#: contents/ui/dialogs/PlaylistDialog.qml:20
#, kde-format
msgid "Add Song to Playlist"
msgstr "Ajouter une chanson à la liste de lecture"
#: contents/ui/dialogs/PlaylistDialog.qml:29
#: contents/ui/LocalPlaylistsPage.qml:90
#, kde-format
msgid "New Playlist"
msgstr "Nouvelle liste de lecture"
#: contents/ui/dialogs/RenamePlaylistDialog.qml:18
#, kde-format
msgid "Rename playlist"
msgstr "Renommer une liste de lecture"
#: contents/ui/LibraryPage.qml:30 contents/ui/LibraryPage.qml:123
#: contents/ui/NavigationBar.qml:48 contents/ui/NavigationBar.qml:54
#: contents/ui/Sidebar.qml:131 contents/ui/Sidebar.qml:138
#, kde-format
msgid "Favourites"
msgstr ""
msgstr "Favoris"
#: contents/ui/LibraryPage.qml:67
#: contents/ui/LibraryPage.qml:119 contents/ui/LibraryPage.qml:416
#: contents/ui/LibraryPage.qml:623
#, kde-format
msgid "Show All"
msgstr "Tout afficher"
#: contents/ui/LibraryPage.qml:147
#, kde-format
msgid "No Favourites Yet"
msgstr "Encore aucun favori"
#: contents/ui/LibraryPage.qml:325
#, kde-format
msgid "Most played"
msgstr ""
msgstr "Les plus lus"
#: contents/ui/main.qml:94
#: contents/ui/LibraryPage.qml:420 contents/ui/NavigationBar.qml:61
#: contents/ui/NavigationBar.qml:67 contents/ui/Sidebar.qml:150
#: contents/ui/Sidebar.qml:157
#, kde-format
msgid "AudioTube"
msgstr "AudioTube"
msgid "Played Songs"
msgstr "Titres lus"
#: contents/ui/PlayerFooter.qml:124
#: contents/ui/LibraryPage.qml:444
#, kde-format
msgid "Remove Track"
msgstr "Supprimer une piste"
msgid "No Songs Played Yet"
msgstr "Encore aucune chanson jouée"
#: contents/ui/PlayerFooter.qml:141
#, kde-format
msgid "Clear"
msgstr "Effacer"
#: contents/ui/PlayerFooter.qml:146 contents/ui/PlaylistPage.qml:26
#, kde-format
msgid "Shuffle"
msgstr "Mélanger"
#: contents/ui/PlayerFooter.qml:192
#, kde-format
msgid "Pause"
msgstr "Pause"
#: contents/ui/PlayerFooter.qml:222
#, kde-format
msgid "No media playing"
msgstr "Aucun média en lecture"
#: contents/ui/PlayerFooter.qml:266
#, kde-format
msgid "Expand"
msgstr "Développer"
#: contents/ui/SearchPage.qml:27
#, kde-format
msgid "Artists"
msgstr "Artistes"
#: contents/ui/SearchPage.qml:29
#: contents/ui/LibraryPage.qml:611 contents/ui/LocalPlaylistsPage.qml:18
#: contents/ui/LocalPlaylistsPage.qml:78 contents/ui/NavigationBar.qml:75
#: contents/ui/SearchPage.qml:30 contents/ui/Sidebar.qml:167
#, kde-format
msgid "Playlists"
msgstr "Listes de lecture"
#: contents/ui/SearchPage.qml:36
#: contents/ui/LibraryPage.qml:650
#, kde-format
msgid "Unknown"
msgstr "Inconnu"
msgid "No Playlists Yet"
msgstr "Aucune liste de lecture pour l'instant"
#: contents/ui/SearchPage.qml:117
#: contents/ui/LibraryPage.qml:670 contents/ui/LibraryPage.qml:692
#: contents/ui/LocalPlaylistsPage.qml:33 contents/ui/LocalPlaylistsPage.qml:55
#, kde-format
msgid "Play next"
msgstr "Lire le suivant"
msgid "Rename"
msgstr "Renommer"
#: contents/ui/SearchPage.qml:129
#: contents/ui/LibraryPage.qml:679 contents/ui/LibraryPage.qml:700
#: contents/ui/LocalPlaylistsPage.qml:42 contents/ui/LocalPlaylistsPage.qml:63
#, kde-format
msgid "Radio"
msgstr "Radio"
msgid "Delete"
msgstr "Supprimer"
#: contents/ui/SearchPage.qml:147
#: contents/ui/LocalPlaylistPage.qml:19
#, kde-format
msgid "Find music on YouTube Music"
msgstr "Rechercher de la musique sur « YouTube Music »"
msgid "Remove from Playlist"
msgstr "Supprimer de la liste de lecture"
#: contents/ui/SearchPage.qml:150
#: contents/ui/LocalPlaylistPage.qml:29
#, kde-format
msgid "This playlist is still empty"
msgstr "La liste de lecture est vide pour l'instant."
#: contents/ui/main.qml:109 main.cpp:59
#, kde-format
msgid "AudioTube"
msgstr "AudioTube"
#: contents/ui/MaximizedPlayerPage.qml:196
#: contents/ui/MinimizedPlayerControls.qml:93
#, kde-format
msgid "No media playing"
msgstr "Aucun média en lecture"
#: contents/ui/MaximizedPlayerPage.qml:571
#, kde-format
msgid "%1%"
msgstr "%1 %"
#: contents/ui/MaximizedPlayerPage.qml:839
#: contents/ui/MaximizedPlayerPage.qml:1016
#, kde-format
msgid "Remove Track"
msgstr "Supprimer une piste"
#: contents/ui/MaximizedPlayerPage.qml:870
#, kde-format
msgid "Clear Playlist"
msgstr "Effacer une liste de lecture"
#: contents/ui/MaximizedPlayerPage.qml:917
#, kde-format
msgid "Upcoming Songs"
msgstr "Prochaines chansons"
#: contents/ui/NavigationBar.qml:24 contents/ui/Sidebar.qml:100
#, kde-format
msgid "Library"
msgstr "Bibliothèque"
#: contents/ui/NavigationBar.qml:36 contents/ui/Sidebar.qml:116
#, kde-format
msgid "Search"
msgstr "Rechercher"
#: contents/ui/PlaybackHistory.qml:15
#, kde-format
msgid "Unknown list of songs"
msgstr "Liste inconnue de titres"
#: contents/ui/PlaybackHistory.qml:74
#, kde-format
msgid "No songs here yet"
msgstr "Aucun titre ici encore"
#: contents/ui/PlaylistPage.qml:67
#, kde-format
msgid "Playlist"
msgstr "Liste de lecture"
#: contents/ui/SearchHistoryPage.qml:86 contents/ui/SearchWithDropdown.qml:412
#, kde-format
msgid "remove from search history"
msgstr "supprimer de l'historique de recherche"
#: contents/ui/SearchPage.qml:16
#, kde-format
msgid "Previous Searches:"
msgstr "Recherches précédentes :"
#: contents/ui/SearchPage.qml:28
#, kde-format
msgid "Artists"
msgstr "Artistes"
#: contents/ui/SearchPage.qml:37
#, kde-format
msgid "Unknown"
msgstr "Inconnu"
#: contents/ui/SearchWithDropdown.qml:359
#, kde-format
msgid "No matching previous searches"
msgstr "Aucune correspondance avec les recherches précédentes"
#: contents/ui/ShareMenu.qml:39
#, kde-format
msgid "Share to"
msgstr "Partager vers"
#: contents/ui/ShareMenu.qml:49 contents/ui/ShareMenu.qml:99
#, kde-format
msgid "Copy Link"
msgstr "Copier un lien"
#: contents/ui/ShareMenu.qml:54 contents/ui/ShareMenu.qml:104
#, kde-format
msgid "Link copied to clipboard"
msgstr "Lien copié dans le presse-papier."
#: contents/ui/Sidebar.qml:189
#, kde-format
msgid "About"
msgstr "À propos"
#: contents/ui/Sidebar.qml:203
#, kde-format
msgid "Collapse Sidebar"
msgstr "Réduire la barre latérale"
#: contents/ui/SongMenu.qml:107 contents/ui/SongMenu.qml:205
#, kde-format
msgid "Play Next"
msgstr "Lire le suivant"
#: contents/ui/SongMenu.qml:116 contents/ui/SongMenu.qml:211
#, kde-format
msgid "Add to queue"
msgstr "Ajouter à la file de lecture"
#: contents/ui/SongMenu.qml:126 contents/ui/SongMenu.qml:221
#, kde-format
msgid "Remove Favourite"
msgstr "Supprimer un favori"
#: contents/ui/SongMenu.qml:126 contents/ui/SongMenu.qml:221
#, kde-format
msgid "Add Favourite"
msgstr "Ajouter un favori"
#: contents/ui/SongMenu.qml:143 contents/ui/SongMenu.qml:235
#, kde-format
msgid "Remove from History"
msgstr "Supprimer de l'historique"
#: contents/ui/SongMenu.qml:156 contents/ui/SongMenu.qml:244
#, kde-format
msgid "Add to playlist"
msgstr "Ajouter à la liste de lecture"
#: contents/ui/SongMenu.qml:183 contents/ui/SongMenu.qml:269
#, kde-format
msgid "Share Song"
msgstr "Partager une chanson"
#: main.cpp:61
#, kde-format
msgid "YouTube Music Player"
msgstr "Lecteur de musique pour YouTube"
#: main.cpp:63
#, kde-format
msgid "© 2021-2023 Jonah Brüchert, 2021-2023 KDE Community"
msgstr "© 2021 - 2023 Jonah Brüchert, 2021 - 2023 La communauté de KDE"
#: main.cpp:64
#, kde-format
msgid "Jonah Brüchert"
msgstr "Jonah Brüchert"
#: main.cpp:64
#, kde-format
msgid "Maintainer"
msgstr "Mainteneur"
#: main.cpp:65
#, kde-format
msgid "Mathis Brüchert"
msgstr "Mathis Brüchert"
#: main.cpp:65
#, kde-format
msgid "Designer"
msgstr "Concepteur"
#: main.cpp:66
#, kde-format
msgctxt "NAME OF TRANSLATORS"
msgid "Your names"
msgstr "Xavier Besnard"
#: main.cpp:66
#, kde-format
msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails"
msgstr "[email protected]"
#: main.cpp:71
#, kde-format
msgid "Unofficial API for YouTube Music"
msgstr "API non officiel pour la musique sur « YouTube Music »"
#~ msgid "played Songs"
#~ msgstr "Titres lus"
#~ msgid "%"
#~ msgstr "%"
#~ msgid "Now Playing"
#~ msgstr "En cours de lecture"
#~ msgid "Queue"
#~ msgstr "Mettre en file d'attente"
#~ msgid "Lyrics"
#~ msgstr "Paroles"
#~ msgid "Back"
#~ msgstr "En arrière"
#~ msgid "Play next"
#~ msgstr "Lire le suivant"
#~ msgid "Clear"
#~ msgstr "Effacer"
#~ msgid "Pause"
#~ msgstr "Pause"
#~ msgid "Expand"
#~ msgstr "Développer"
#~ msgid "Play only Audio"
#~ msgstr "Ne lire que l'audio"
+353 -79
View File
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2022-05-23 00:47+0000\n"
"POT-Creation-Date: 2023-04-23 04:10+0000\n"
"PO-Revision-Date: 2021-09-17 20:09+0530\n"
"Last-Translator: Raghavendra Kamath <[email protected]>\n"
"Language-Team: kde-hindi\n"
@@ -17,35 +17,69 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n!=1);\n"
"X-Generator: Lokalize 21.08.1\n"
#, kde-format
msgctxt "NAME OF TRANSLATORS"
msgid "Your names"
msgstr "राघवेंद्र कामत"
#, kde-format
msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails"
msgstr "[email protected]"
#: contents/ui/AlbumPage.qml:19 contents/ui/PlayerFooter.qml:192
#: contents/ui/PlaylistPage.qml:19
#: contents/ui/AlbumPage.qml:26 contents/ui/LibraryPage.qml:37
#: contents/ui/LibraryPage.qml:63 contents/ui/LibraryPage.qml:84
#: contents/ui/LibraryPage.qml:332 contents/ui/LibraryPage.qml:358
#: contents/ui/LibraryPage.qml:379 contents/ui/LocalPlaylistPage.qml:42
#: contents/ui/PlaybackHistory.qml:23 contents/ui/PlaylistPage.qml:31
#, kde-format
msgid "Play"
msgstr "बजाएँ"
#: contents/ui/AlbumPage.qml:61 contents/ui/ArtistPage.qml:101
#: contents/ui/PlaylistPage.qml:67
#: contents/ui/AlbumPage.qml:33 contents/ui/ArtistPage.qml:36
#: contents/ui/LibraryPage.qml:44 contents/ui/LibraryPage.qml:69
#: contents/ui/LibraryPage.qml:92 contents/ui/LibraryPage.qml:339
#: contents/ui/LibraryPage.qml:364 contents/ui/LibraryPage.qml:388
#: contents/ui/LocalPlaylistPage.qml:49 contents/ui/MaximizedPlayerPage.qml:891
#: contents/ui/PlaybackHistory.qml:36 contents/ui/PlaylistPage.qml:38
#, kde-format
msgid "Play Next"
msgstr "अगला बजाएँ"
msgid "Shuffle"
msgstr "फेंटें"
#: contents/ui/AlbumPage.qml:66 contents/ui/ArtistPage.qml:107
#: contents/ui/PlaylistPage.qml:72 contents/ui/SearchPage.qml:123
#: contents/ui/AlbumPage.qml:41 contents/ui/LibraryPage.qml:74
#: contents/ui/LibraryPage.qml:100 contents/ui/LibraryPage.qml:369
#: contents/ui/LibraryPage.qml:396 contents/ui/LocalPlaylistPage.qml:55
#: contents/ui/PlaybackHistory.qml:48 contents/ui/PlaylistPage.qml:46
#, kde-format
msgid "Add to Playlist"
msgstr "गीत-सूची में जोड़ें"
msgid "Append to queue"
msgstr ""
#: contents/ui/ArtistPage.qml:39 contents/ui/SearchPage.qml:67
#: contents/ui/AlbumPage.qml:46 contents/ui/ArtistPage.qml:43
#: contents/ui/PlaylistPage.qml:51
#, kde-format
msgid "Open in Browser"
msgstr ""
#: contents/ui/AlbumPage.qml:51 contents/ui/ArtistPage.qml:48
#: contents/ui/PlaylistPage.qml:56
#, kde-format
msgid "Share"
msgstr ""
#: contents/ui/AlbumPage.qml:61
#, kde-format
msgid "Album • %1"
msgstr ""
#: contents/ui/AlbumPage.qml:105 contents/ui/ArtistPage.qml:137
#: contents/ui/LocalPlaylistPage.qml:114 contents/ui/PlaybackHistory.qml:127
#: contents/ui/PlaylistPage.qml:116 contents/ui/SearchPage.qml:130
#, kde-format
msgid "More"
msgstr ""
#: contents/ui/ArtistPage.qml:31
#, kde-format
msgid "Radio"
msgstr "रेडियो"
#: contents/ui/ArtistPage.qml:57
#, fuzzy, kde-format
#| msgid "Artists"
msgid "Artist"
msgstr "कलाकार"
#: contents/ui/ArtistPage.qml:79 contents/ui/SearchPage.qml:70
#, kde-format
msgid ""
"Video playback is not supported yet. Do you want to play only the audio of "
@@ -53,22 +87,22 @@ msgid ""
msgstr ""
"वीडियो चलाना अभी तक समर्थित नहीं है। क्या आप केवल \"%1\" का ध्वनी चलाना चाहते हैं?"
#: contents/ui/ArtistPage.qml:55 contents/ui/SearchPage.qml:25
#: contents/ui/ArtistPage.qml:96 contents/ui/SearchPage.qml:26
#, kde-format
msgid "Albums"
msgstr "एल्बम्स"
#: contents/ui/ArtistPage.qml:57
#: contents/ui/ArtistPage.qml:98
#, kde-format
msgid "Singles"
msgstr "एक गीत"
#: contents/ui/ArtistPage.qml:59 contents/ui/SearchPage.qml:31
#: contents/ui/ArtistPage.qml:100 contents/ui/SearchPage.qml:32
#, kde-format
msgid "Songs"
msgstr "गीत"
#: contents/ui/ArtistPage.qml:61 contents/ui/SearchPage.qml:33
#: contents/ui/ArtistPage.qml:102 contents/ui/SearchPage.qml:34
#, kde-format
msgid "Videos"
msgstr "वीडियो"
@@ -83,85 +117,325 @@ msgstr ""
msgid "Cancel"
msgstr ""
#: contents/ui/LibraryPage.qml:15
#: contents/ui/dialogs/AddPlaylistDialog.qml:17
#, fuzzy, kde-format
#| msgid "Add to Playlist"
msgid "Add playlist"
msgstr "गीत-सूची में जोड़ें"
#: contents/ui/dialogs/AddPlaylistDialog.qml:23
#: contents/ui/dialogs/RenamePlaylistDialog.qml:24
#, fuzzy, kde-format
#| msgid "Playlists"
msgid "Playlist Title"
msgstr "गीत-सूचीयाँ"
#: contents/ui/dialogs/AddPlaylistDialog.qml:28
#: contents/ui/dialogs/RenamePlaylistDialog.qml:30
#, fuzzy, kde-format
#| msgid "Playlists"
msgid "Playlist Description"
msgstr "गीत-सूचीयाँ"
#: contents/ui/dialogs/PlaylistDialog.qml:20
#, fuzzy, kde-format
#| msgid "Add to Playlist"
msgid "Add Song to Playlist"
msgstr "गीत-सूची में जोड़ें"
#: contents/ui/dialogs/PlaylistDialog.qml:29
#: contents/ui/LocalPlaylistsPage.qml:90
#, fuzzy, kde-format
#| msgid "Playlists"
msgid "New Playlist"
msgstr "गीत-सूचीयाँ"
#: contents/ui/dialogs/RenamePlaylistDialog.qml:18
#, fuzzy, kde-format
#| msgid "Playlists"
msgid "Rename playlist"
msgstr "गीत-सूचीयाँ"
#: contents/ui/LibraryPage.qml:30 contents/ui/LibraryPage.qml:123
#: contents/ui/NavigationBar.qml:48 contents/ui/NavigationBar.qml:54
#: contents/ui/Sidebar.qml:131 contents/ui/Sidebar.qml:138
#, kde-format
msgid "Favourites"
msgstr ""
#: contents/ui/LibraryPage.qml:67
#: contents/ui/LibraryPage.qml:119 contents/ui/LibraryPage.qml:416
#: contents/ui/LibraryPage.qml:623
#, kde-format
msgid "Show All"
msgstr ""
#: contents/ui/LibraryPage.qml:147
#, kde-format
msgid "No Favourites Yet"
msgstr ""
#: contents/ui/LibraryPage.qml:325
#, kde-format
msgid "Most played"
msgstr ""
#: contents/ui/main.qml:94
#: contents/ui/LibraryPage.qml:420 contents/ui/NavigationBar.qml:61
#: contents/ui/NavigationBar.qml:67 contents/ui/Sidebar.qml:150
#: contents/ui/Sidebar.qml:157
#, kde-format
msgid "AudioTube"
msgstr "ओडियो-ट्यूब"
msgid "Played Songs"
msgstr ""
#: contents/ui/PlayerFooter.qml:124
#: contents/ui/LibraryPage.qml:444
#, kde-format
msgid "Remove Track"
msgstr "गाना हटाएँ"
msgid "No Songs Played Yet"
msgstr ""
#: contents/ui/PlayerFooter.qml:141
#, kde-format
msgid "Clear"
msgstr "साफ करें"
#: contents/ui/PlayerFooter.qml:146 contents/ui/PlaylistPage.qml:26
#, kde-format
msgid "Shuffle"
msgstr "फेंटें"
#: contents/ui/PlayerFooter.qml:192
#, kde-format
msgid "Pause"
msgstr "रोकें"
#: contents/ui/PlayerFooter.qml:222
#, kde-format
msgid "No media playing"
msgstr "कोई मीडिया नहीं बजा रहा है"
#: contents/ui/PlayerFooter.qml:266
#, kde-format
msgid "Expand"
msgstr "विस्तृत करें"
#: contents/ui/SearchPage.qml:27
#, kde-format
msgid "Artists"
msgstr "कलाकार"
#: contents/ui/SearchPage.qml:29
#: contents/ui/LibraryPage.qml:611 contents/ui/LocalPlaylistsPage.qml:18
#: contents/ui/LocalPlaylistsPage.qml:78 contents/ui/NavigationBar.qml:75
#: contents/ui/SearchPage.qml:30 contents/ui/Sidebar.qml:167
#, kde-format
msgid "Playlists"
msgstr "गीत-सूचीयाँ"
#: contents/ui/SearchPage.qml:36
#, kde-format
msgid "Unknown"
msgstr "अज्ञात"
#: contents/ui/LibraryPage.qml:650
#, fuzzy, kde-format
#| msgid "Playlists"
msgid "No Playlists Yet"
msgstr "गीत-सूचीयाँ"
#: contents/ui/SearchPage.qml:117
#: contents/ui/LibraryPage.qml:670 contents/ui/LibraryPage.qml:692
#: contents/ui/LocalPlaylistsPage.qml:33 contents/ui/LocalPlaylistsPage.qml:55
#, kde-format
msgid "Play next"
msgstr "अगला बजाएँ"
msgid "Rename"
msgstr ""
#: contents/ui/SearchPage.qml:129
#: contents/ui/LibraryPage.qml:679 contents/ui/LibraryPage.qml:700
#: contents/ui/LocalPlaylistsPage.qml:42 contents/ui/LocalPlaylistsPage.qml:63
#, kde-format
msgid "Radio"
msgstr "रेडियो"
msgid "Delete"
msgstr ""
#: contents/ui/SearchPage.qml:147
#: contents/ui/LocalPlaylistPage.qml:19
#, fuzzy, kde-format
#| msgid "Playlists"
msgid "Remove from Playlist"
msgstr "गीत-सूचीयाँ"
#: contents/ui/LocalPlaylistPage.qml:29
#, kde-format
msgid "Find music on YouTube Music"
msgstr "यूट्यूब संगीत पर संगीत ढूंढें"
msgid "This playlist is still empty"
msgstr ""
#: contents/ui/SearchPage.qml:150
#: contents/ui/main.qml:109 main.cpp:59
#, kde-format
msgid "AudioTube"
msgstr "ओडियो-ट्यूब"
#: contents/ui/MaximizedPlayerPage.qml:196
#: contents/ui/MinimizedPlayerControls.qml:93
#, kde-format
msgid "No media playing"
msgstr "कोई मीडिया नहीं बजा रहा है"
#: contents/ui/MaximizedPlayerPage.qml:571
#, kde-format
msgid "%1%"
msgstr ""
#: contents/ui/MaximizedPlayerPage.qml:839
#: contents/ui/MaximizedPlayerPage.qml:1016
#, kde-format
msgid "Remove Track"
msgstr "गाना हटाएँ"
#: contents/ui/MaximizedPlayerPage.qml:870
#, fuzzy, kde-format
#| msgid "Playlists"
msgid "Clear Playlist"
msgstr "गीत-सूचीयाँ"
#: contents/ui/MaximizedPlayerPage.qml:917
#, kde-format
msgid "Upcoming Songs"
msgstr ""
#: contents/ui/NavigationBar.qml:24 contents/ui/Sidebar.qml:100
#, kde-format
msgid "Library"
msgstr ""
#: contents/ui/NavigationBar.qml:36 contents/ui/Sidebar.qml:116
#, kde-format
msgid "Search"
msgstr "खोजें"
#: contents/ui/PlaybackHistory.qml:15
#, kde-format
msgid "Unknown list of songs"
msgstr ""
#: contents/ui/PlaybackHistory.qml:74
#, kde-format
msgid "No songs here yet"
msgstr ""
#: contents/ui/PlaylistPage.qml:67
#, fuzzy, kde-format
#| msgid "Playlists"
msgid "Playlist"
msgstr "गीत-सूचीयाँ"
#: contents/ui/SearchHistoryPage.qml:86 contents/ui/SearchWithDropdown.qml:412
#, kde-format
msgid "remove from search history"
msgstr ""
#: contents/ui/SearchPage.qml:16
#, kde-format
msgid "Previous Searches:"
msgstr ""
#: contents/ui/SearchPage.qml:28
#, kde-format
msgid "Artists"
msgstr "कलाकार"
#: contents/ui/SearchPage.qml:37
#, kde-format
msgid "Unknown"
msgstr "अज्ञात"
#: contents/ui/SearchWithDropdown.qml:359
#, kde-format
msgid "No matching previous searches"
msgstr ""
#: contents/ui/ShareMenu.qml:39
#, kde-format
msgid "Share to"
msgstr ""
#: contents/ui/ShareMenu.qml:49 contents/ui/ShareMenu.qml:99
#, kde-format
msgid "Copy Link"
msgstr ""
#: contents/ui/ShareMenu.qml:54 contents/ui/ShareMenu.qml:104
#, kde-format
msgid "Link copied to clipboard"
msgstr ""
#: contents/ui/Sidebar.qml:189
#, kde-format
msgid "About"
msgstr ""
#: contents/ui/Sidebar.qml:203
#, kde-format
msgid "Collapse Sidebar"
msgstr ""
#: contents/ui/SongMenu.qml:107 contents/ui/SongMenu.qml:205
#, kde-format
msgid "Play Next"
msgstr "अगला बजाएँ"
#: contents/ui/SongMenu.qml:116 contents/ui/SongMenu.qml:211
#, kde-format
msgid "Add to queue"
msgstr ""
#: contents/ui/SongMenu.qml:126 contents/ui/SongMenu.qml:221
#, kde-format
msgid "Remove Favourite"
msgstr ""
#: contents/ui/SongMenu.qml:126 contents/ui/SongMenu.qml:221
#, kde-format
msgid "Add Favourite"
msgstr ""
#: contents/ui/SongMenu.qml:143 contents/ui/SongMenu.qml:235
#, kde-format
msgid "Remove from History"
msgstr ""
#: contents/ui/SongMenu.qml:156 contents/ui/SongMenu.qml:244
#, fuzzy, kde-format
#| msgid "Add to Playlist"
msgid "Add to playlist"
msgstr "गीत-सूची में जोड़ें"
#: contents/ui/SongMenu.qml:183 contents/ui/SongMenu.qml:269
#, kde-format
msgid "Share Song"
msgstr ""
#: main.cpp:61
#, kde-format
msgid "YouTube Music Player"
msgstr ""
#: main.cpp:63
#, kde-format
msgid "© 2021-2023 Jonah Brüchert, 2021-2023 KDE Community"
msgstr ""
#: main.cpp:64
#, kde-format
msgid "Jonah Brüchert"
msgstr ""
#: main.cpp:64
#, kde-format
msgid "Maintainer"
msgstr ""
#: main.cpp:65
#, kde-format
msgid "Mathis Brüchert"
msgstr ""
#: main.cpp:65
#, kde-format
msgid "Designer"
msgstr ""
#: main.cpp:66
#, kde-format
msgctxt "NAME OF TRANSLATORS"
msgid "Your names"
msgstr "राघवेंद्र कामत"
#: main.cpp:66
#, kde-format
msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails"
msgstr "[email protected]"
#: main.cpp:71
#, fuzzy, kde-format
#| msgid "Find music on YouTube Music"
msgid "Unofficial API for YouTube Music"
msgstr "यूट्यूब संगीत पर संगीत ढूंढें"
#, fuzzy
#~| msgid "No media playing"
#~ msgid "Now Playing"
#~ msgstr "कोई मीडिया नहीं बजा रहा है"
#~ msgid "Play next"
#~ msgstr "अगला बजाएँ"
#~ msgid "Clear"
#~ msgstr "साफ करें"
#~ msgid "Pause"
#~ msgstr "रोकें"
#~ msgid "Expand"
#~ msgstr "विस्तृत करें"
#~ msgid "Play only Audio"
#~ msgstr "केवल ध्वनी चलाएँ"
+409
View File
@@ -0,0 +1,409 @@
# Copyright (C) YEAR This file is copyright:
# This file is distributed under the same license as the audiotube package.
#
# giovanni <[email protected]>, 2023.
msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2023-04-23 04:10+0000\n"
"PO-Revision-Date: 2023-04-05 11:40+0200\n"
"Last-Translator: giovanni <[email protected]>\n"
"Language-Team: Interlingua <[email protected]>\n"
"Language: ia\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Lokalize 21.12.3\n"
#: contents/ui/AlbumPage.qml:26 contents/ui/LibraryPage.qml:37
#: contents/ui/LibraryPage.qml:63 contents/ui/LibraryPage.qml:84
#: contents/ui/LibraryPage.qml:332 contents/ui/LibraryPage.qml:358
#: contents/ui/LibraryPage.qml:379 contents/ui/LocalPlaylistPage.qml:42
#: contents/ui/PlaybackHistory.qml:23 contents/ui/PlaylistPage.qml:31
#, kde-format
msgid "Play"
msgstr "Reproduce"
#: contents/ui/AlbumPage.qml:33 contents/ui/ArtistPage.qml:36
#: contents/ui/LibraryPage.qml:44 contents/ui/LibraryPage.qml:69
#: contents/ui/LibraryPage.qml:92 contents/ui/LibraryPage.qml:339
#: contents/ui/LibraryPage.qml:364 contents/ui/LibraryPage.qml:388
#: contents/ui/LocalPlaylistPage.qml:49 contents/ui/MaximizedPlayerPage.qml:891
#: contents/ui/PlaybackHistory.qml:36 contents/ui/PlaylistPage.qml:38
#, kde-format
msgid "Shuffle"
msgstr "Shuffle (miscer)"
#: contents/ui/AlbumPage.qml:41 contents/ui/LibraryPage.qml:74
#: contents/ui/LibraryPage.qml:100 contents/ui/LibraryPage.qml:369
#: contents/ui/LibraryPage.qml:396 contents/ui/LocalPlaylistPage.qml:55
#: contents/ui/PlaybackHistory.qml:48 contents/ui/PlaylistPage.qml:46
#, kde-format
msgid "Append to queue"
msgstr "Appende a cauda"
#: contents/ui/AlbumPage.qml:46 contents/ui/ArtistPage.qml:43
#: contents/ui/PlaylistPage.qml:51
#, kde-format
msgid "Open in Browser"
msgstr "Aperi con navigator"
#: contents/ui/AlbumPage.qml:51 contents/ui/ArtistPage.qml:48
#: contents/ui/PlaylistPage.qml:56
#, kde-format
msgid "Share"
msgstr "Comparti"
#: contents/ui/AlbumPage.qml:61
#, kde-format
msgid "Album • %1"
msgstr "Album • %1"
#: contents/ui/AlbumPage.qml:105 contents/ui/ArtistPage.qml:137
#: contents/ui/LocalPlaylistPage.qml:114 contents/ui/PlaybackHistory.qml:127
#: contents/ui/PlaylistPage.qml:116 contents/ui/SearchPage.qml:130
#, kde-format
msgid "More"
msgstr "Altere"
#: contents/ui/ArtistPage.qml:31
#, kde-format
msgid "Radio"
msgstr "Radio"
#: contents/ui/ArtistPage.qml:57
#, kde-format
msgid "Artist"
msgstr "Artista"
#: contents/ui/ArtistPage.qml:79 contents/ui/SearchPage.qml:70
#, kde-format
msgid ""
"Video playback is not supported yet. Do you want to play only the audio of "
"\"%1\"?"
msgstr ""
"Reproduction de video a retro (playback) non es ancora supportate. Tu vole "
"solmente reproducer le audio de \"%1\"?"
#: contents/ui/ArtistPage.qml:96 contents/ui/SearchPage.qml:26
#, kde-format
msgid "Albums"
msgstr "Albumes"
#: contents/ui/ArtistPage.qml:98
#, kde-format
msgid "Singles"
msgstr "Singules"
#: contents/ui/ArtistPage.qml:100 contents/ui/SearchPage.qml:32
#, kde-format
msgid "Songs"
msgstr "Cantos"
#: contents/ui/ArtistPage.qml:102 contents/ui/SearchPage.qml:34
#, kde-format
msgid "Videos"
msgstr "Videos"
#: contents/ui/ConfirmationMessage.qml:16
#, kde-format
msgid "OK"
msgstr "OK"
#: contents/ui/ConfirmationMessage.qml:21
#, kde-format
msgid "Cancel"
msgstr "Cancella"
#: contents/ui/dialogs/AddPlaylistDialog.qml:17
#, kde-format
msgid "Add playlist"
msgstr "Adde lista de reproduction"
#: contents/ui/dialogs/AddPlaylistDialog.qml:23
#: contents/ui/dialogs/RenamePlaylistDialog.qml:24
#, kde-format
msgid "Playlist Title"
msgstr "Titulo de Lista de reproduction"
#: contents/ui/dialogs/AddPlaylistDialog.qml:28
#: contents/ui/dialogs/RenamePlaylistDialog.qml:30
#, kde-format
msgid "Playlist Description"
msgstr "Description de lista de reproduction"
#: contents/ui/dialogs/PlaylistDialog.qml:20
#, kde-format
msgid "Add Song to Playlist"
msgstr "Adde Canto al lista de reproduction"
#: contents/ui/dialogs/PlaylistDialog.qml:29
#: contents/ui/LocalPlaylistsPage.qml:90
#, kde-format
msgid "New Playlist"
msgstr "Nove lista de reproduction"
#: contents/ui/dialogs/RenamePlaylistDialog.qml:18
#, kde-format
msgid "Rename playlist"
msgstr "Renomina Lista de reproduction"
#: contents/ui/LibraryPage.qml:30 contents/ui/LibraryPage.qml:123
#: contents/ui/NavigationBar.qml:48 contents/ui/NavigationBar.qml:54
#: contents/ui/Sidebar.qml:131 contents/ui/Sidebar.qml:138
#, kde-format
msgid "Favourites"
msgstr "Favoritos"
#: contents/ui/LibraryPage.qml:119 contents/ui/LibraryPage.qml:416
#: contents/ui/LibraryPage.qml:623
#, kde-format
msgid "Show All"
msgstr "Monstra omne"
#: contents/ui/LibraryPage.qml:147
#, kde-format
msgid "No Favourites Yet"
msgstr "Ancora nulle favoritos"
#: contents/ui/LibraryPage.qml:325
#, kde-format
msgid "Most played"
msgstr "Plus reproducite"
#: contents/ui/LibraryPage.qml:420 contents/ui/NavigationBar.qml:61
#: contents/ui/NavigationBar.qml:67 contents/ui/Sidebar.qml:150
#: contents/ui/Sidebar.qml:157
#, kde-format
msgid "Played Songs"
msgstr "Cantos sonate"
#: contents/ui/LibraryPage.qml:444
#, kde-format
msgid "No Songs Played Yet"
msgstr "Nulle cantos ancora sonate"
#: contents/ui/LibraryPage.qml:611 contents/ui/LocalPlaylistsPage.qml:18
#: contents/ui/LocalPlaylistsPage.qml:78 contents/ui/NavigationBar.qml:75
#: contents/ui/SearchPage.qml:30 contents/ui/Sidebar.qml:167
#, kde-format
msgid "Playlists"
msgstr "Listas de reproduction"
#: contents/ui/LibraryPage.qml:650
#, kde-format
msgid "No Playlists Yet"
msgstr "Nulle lista de reproduction ancora"
#: contents/ui/LibraryPage.qml:670 contents/ui/LibraryPage.qml:692
#: contents/ui/LocalPlaylistsPage.qml:33 contents/ui/LocalPlaylistsPage.qml:55
#, kde-format
msgid "Rename"
msgstr "Renomina"
#: contents/ui/LibraryPage.qml:679 contents/ui/LibraryPage.qml:700
#: contents/ui/LocalPlaylistsPage.qml:42 contents/ui/LocalPlaylistsPage.qml:63
#, kde-format
msgid "Delete"
msgstr "Dele"
#: contents/ui/LocalPlaylistPage.qml:19
#, kde-format
msgid "Remove from Playlist"
msgstr "Remove ex lista de reproduction"
#: contents/ui/LocalPlaylistPage.qml:29
#, kde-format
msgid "This playlist is still empty"
msgstr "Iste lista de reproduction es vacue"
#: contents/ui/main.qml:109 main.cpp:59
#, kde-format
msgid "AudioTube"
msgstr "AudioTube"
#: contents/ui/MaximizedPlayerPage.qml:196
#: contents/ui/MinimizedPlayerControls.qml:93
#, kde-format
msgid "No media playing"
msgstr "Necun media reproducente"
#: contents/ui/MaximizedPlayerPage.qml:571
#, kde-format
msgid "%1%"
msgstr "%1%"
#: contents/ui/MaximizedPlayerPage.qml:839
#: contents/ui/MaximizedPlayerPage.qml:1016
#, kde-format
msgid "Remove Track"
msgstr "Remove tracia"
#: contents/ui/MaximizedPlayerPage.qml:870
#, kde-format
msgid "Clear Playlist"
msgstr "Clara Lista de reproduction"
#: contents/ui/MaximizedPlayerPage.qml:917
#, kde-format
msgid "Upcoming Songs"
msgstr "Cantos a venir"
#: contents/ui/NavigationBar.qml:24 contents/ui/Sidebar.qml:100
#, kde-format
msgid "Library"
msgstr "Libreria"
#: contents/ui/NavigationBar.qml:36 contents/ui/Sidebar.qml:116
#, kde-format
msgid "Search"
msgstr "Cerca"
#: contents/ui/PlaybackHistory.qml:15
#, kde-format
msgid "Unknown list of songs"
msgstr "Incognite lista de reproduction"
#: contents/ui/PlaybackHistory.qml:74
#, kde-format
msgid "No songs here yet"
msgstr "Hic nulle cantos ancora"
#: contents/ui/PlaylistPage.qml:67
#, kde-format
msgid "Playlist"
msgstr "Lista de reproduction"
#: contents/ui/SearchHistoryPage.qml:86 contents/ui/SearchWithDropdown.qml:412
#, kde-format
msgid "remove from search history"
msgstr "remove ex chronologia de cerca"
#: contents/ui/SearchPage.qml:16
#, kde-format
msgid "Previous Searches:"
msgstr "Previe cercas:"
#: contents/ui/SearchPage.qml:28
#, kde-format
msgid "Artists"
msgstr "Artistas"
#: contents/ui/SearchPage.qml:37
#, kde-format
msgid "Unknown"
msgstr "Incognite"
#: contents/ui/SearchWithDropdown.qml:359
#, kde-format
msgid "No matching previous searches"
msgstr "Nulle previes cerca correspondente"
#: contents/ui/ShareMenu.qml:39
#, kde-format
msgid "Share to"
msgstr "Comparti a"
#: contents/ui/ShareMenu.qml:49 contents/ui/ShareMenu.qml:99
#, kde-format
msgid "Copy Link"
msgstr "Copia Ligamine"
#: contents/ui/ShareMenu.qml:54 contents/ui/ShareMenu.qml:104
#, kde-format
msgid "Link copied to clipboard"
msgstr "Ligamine copiate a area de transferentia"
#: contents/ui/Sidebar.qml:189
#, kde-format
msgid "About"
msgstr "A proposito"
#: contents/ui/Sidebar.qml:203
#, kde-format
msgid "Collapse Sidebar"
msgstr "Plica barra lateral"
#: contents/ui/SongMenu.qml:107 contents/ui/SongMenu.qml:205
#, kde-format
msgid "Play Next"
msgstr "Reproduce proxime"
#: contents/ui/SongMenu.qml:116 contents/ui/SongMenu.qml:211
#, kde-format
msgid "Add to queue"
msgstr "Adde a cauda"
#: contents/ui/SongMenu.qml:126 contents/ui/SongMenu.qml:221
#, kde-format
msgid "Remove Favourite"
msgstr "Remove favorito"
#: contents/ui/SongMenu.qml:126 contents/ui/SongMenu.qml:221
#, kde-format
msgid "Add Favourite"
msgstr "Adde favorito"
#: contents/ui/SongMenu.qml:143 contents/ui/SongMenu.qml:235
#, kde-format
msgid "Remove from History"
msgstr "Remove ex chronologia"
#: contents/ui/SongMenu.qml:156 contents/ui/SongMenu.qml:244
#, kde-format
msgid "Add to playlist"
msgstr "Adde al lista de reproduction"
#: contents/ui/SongMenu.qml:183 contents/ui/SongMenu.qml:269
#, kde-format
msgid "Share Song"
msgstr "Comparti canto"
#: main.cpp:61
#, kde-format
msgid "YouTube Music Player"
msgstr "Reproductor musical de YouTube"
#: main.cpp:63
#, kde-format
msgid "© 2021-2023 Jonah Brüchert, 2021-2023 KDE Community"
msgstr "© 2021-2023 Jonah Brüchert, 2021-2023 Communitate de KDE"
#: main.cpp:64
#, kde-format
msgid "Jonah Brüchert"
msgstr "Jonah Brüchert"
#: main.cpp:64
#, kde-format
msgid "Maintainer"
msgstr "Mantenitor"
#: main.cpp:65
#, kde-format
msgid "Mathis Brüchert"
msgstr "Mathis Brüchert"
#: main.cpp:65
#, kde-format
msgid "Designer"
msgstr "Designator"
#: main.cpp:66
#, kde-format
msgctxt "NAME OF TRANSLATORS"
msgid "Your names"
msgstr "Giovanni Sora"
#: main.cpp:66
#, kde-format
msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails"
msgstr "[email protected]"
#: main.cpp:71
#, kde-format
msgid "Unofficial API for YouTube Music"
msgstr "API non official per YouTube Music"
+427
View File
@@ -0,0 +1,427 @@
# Copyright (C) YEAR This file is copyright:
# This file is distributed under the same license as the audiotube package.
# Linerly <[email protected]>, 2022, 2023.
#
msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2023-04-23 04:10+0000\n"
"PO-Revision-Date: 2023-03-22 00:18+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.12.3\n"
#: contents/ui/AlbumPage.qml:26 contents/ui/LibraryPage.qml:37
#: contents/ui/LibraryPage.qml:63 contents/ui/LibraryPage.qml:84
#: contents/ui/LibraryPage.qml:332 contents/ui/LibraryPage.qml:358
#: contents/ui/LibraryPage.qml:379 contents/ui/LocalPlaylistPage.qml:42
#: contents/ui/PlaybackHistory.qml:23 contents/ui/PlaylistPage.qml:31
#, kde-format
msgid "Play"
msgstr "Putar"
#: contents/ui/AlbumPage.qml:33 contents/ui/ArtistPage.qml:36
#: contents/ui/LibraryPage.qml:44 contents/ui/LibraryPage.qml:69
#: contents/ui/LibraryPage.qml:92 contents/ui/LibraryPage.qml:339
#: contents/ui/LibraryPage.qml:364 contents/ui/LibraryPage.qml:388
#: contents/ui/LocalPlaylistPage.qml:49 contents/ui/MaximizedPlayerPage.qml:891
#: contents/ui/PlaybackHistory.qml:36 contents/ui/PlaylistPage.qml:38
#, kde-format
msgid "Shuffle"
msgstr "Acak"
#: contents/ui/AlbumPage.qml:41 contents/ui/LibraryPage.qml:74
#: contents/ui/LibraryPage.qml:100 contents/ui/LibraryPage.qml:369
#: contents/ui/LibraryPage.qml:396 contents/ui/LocalPlaylistPage.qml:55
#: contents/ui/PlaybackHistory.qml:48 contents/ui/PlaylistPage.qml:46
#, kde-format
msgid "Append to queue"
msgstr "Tambahkan ke antrean"
#: contents/ui/AlbumPage.qml:46 contents/ui/ArtistPage.qml:43
#: contents/ui/PlaylistPage.qml:51
#, kde-format
msgid "Open in Browser"
msgstr "Buka di Peramban"
#: contents/ui/AlbumPage.qml:51 contents/ui/ArtistPage.qml:48
#: contents/ui/PlaylistPage.qml:56
#, kde-format
msgid "Share"
msgstr "Bagikan"
#: contents/ui/AlbumPage.qml:61
#, kde-format
msgid "Album • %1"
msgstr "Album • %1"
#: contents/ui/AlbumPage.qml:105 contents/ui/ArtistPage.qml:137
#: contents/ui/LocalPlaylistPage.qml:114 contents/ui/PlaybackHistory.qml:127
#: contents/ui/PlaylistPage.qml:116 contents/ui/SearchPage.qml:130
#, kde-format
msgid "More"
msgstr "Lainnya"
#: contents/ui/ArtistPage.qml:31
#, kde-format
msgid "Radio"
msgstr "Radio"
#: contents/ui/ArtistPage.qml:57
#, kde-format
msgid "Artist"
msgstr "Artis"
#: contents/ui/ArtistPage.qml:79 contents/ui/SearchPage.qml:70
#, 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:96 contents/ui/SearchPage.qml:26
#, kde-format
msgid "Albums"
msgstr "Album"
#: contents/ui/ArtistPage.qml:98
#, kde-format
msgid "Singles"
msgstr "Single"
#: contents/ui/ArtistPage.qml:100 contents/ui/SearchPage.qml:32
#, kde-format
msgid "Songs"
msgstr "Lagu"
#: contents/ui/ArtistPage.qml:102 contents/ui/SearchPage.qml:34
#, 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/dialogs/AddPlaylistDialog.qml:17
#, kde-format
msgid "Add playlist"
msgstr "Tambahkan ke daftar putar"
#: contents/ui/dialogs/AddPlaylistDialog.qml:23
#: contents/ui/dialogs/RenamePlaylistDialog.qml:24
#, kde-format
msgid "Playlist Title"
msgstr "Judul Daftar Putar"
#: contents/ui/dialogs/AddPlaylistDialog.qml:28
#: contents/ui/dialogs/RenamePlaylistDialog.qml:30
#, kde-format
msgid "Playlist Description"
msgstr "Deskripsi Daftar Putar"
#: contents/ui/dialogs/PlaylistDialog.qml:20
#, kde-format
msgid "Add Song to Playlist"
msgstr "Tambahkan Lagu ke Daftar Putar"
#: contents/ui/dialogs/PlaylistDialog.qml:29
#: contents/ui/LocalPlaylistsPage.qml:90
#, kde-format
msgid "New Playlist"
msgstr "Daftar Putar Baru"
#: contents/ui/dialogs/RenamePlaylistDialog.qml:18
#, kde-format
msgid "Rename playlist"
msgstr "Ubah nama daftar putar"
#: contents/ui/LibraryPage.qml:30 contents/ui/LibraryPage.qml:123
#: contents/ui/NavigationBar.qml:48 contents/ui/NavigationBar.qml:54
#: contents/ui/Sidebar.qml:131 contents/ui/Sidebar.qml:138
#, kde-format
msgid "Favourites"
msgstr "Favorit"
#: contents/ui/LibraryPage.qml:119 contents/ui/LibraryPage.qml:416
#: contents/ui/LibraryPage.qml:623
#, kde-format
msgid "Show All"
msgstr "Tampilkan Semua"
#: contents/ui/LibraryPage.qml:147
#, kde-format
msgid "No Favourites Yet"
msgstr "Belum Ada Favorit"
#: contents/ui/LibraryPage.qml:325
#, kde-format
msgid "Most played"
msgstr "Paling banyak diputar"
#: contents/ui/LibraryPage.qml:420 contents/ui/NavigationBar.qml:61
#: contents/ui/NavigationBar.qml:67 contents/ui/Sidebar.qml:150
#: contents/ui/Sidebar.qml:157
#, kde-format
msgid "Played Songs"
msgstr "Lagu yang telah diputar"
#: contents/ui/LibraryPage.qml:444
#, kde-format
msgid "No Songs Played Yet"
msgstr "Belum Ada Lagu Yang Diputar"
#: contents/ui/LibraryPage.qml:611 contents/ui/LocalPlaylistsPage.qml:18
#: contents/ui/LocalPlaylistsPage.qml:78 contents/ui/NavigationBar.qml:75
#: contents/ui/SearchPage.qml:30 contents/ui/Sidebar.qml:167
#, kde-format
msgid "Playlists"
msgstr "Daftar Putar"
#: contents/ui/LibraryPage.qml:650
#, kde-format
msgid "No Playlists Yet"
msgstr "Belum Ada Daftar Putar"
#: contents/ui/LibraryPage.qml:670 contents/ui/LibraryPage.qml:692
#: contents/ui/LocalPlaylistsPage.qml:33 contents/ui/LocalPlaylistsPage.qml:55
#, kde-format
msgid "Rename"
msgstr "Ubah Nama"
#: contents/ui/LibraryPage.qml:679 contents/ui/LibraryPage.qml:700
#: contents/ui/LocalPlaylistsPage.qml:42 contents/ui/LocalPlaylistsPage.qml:63
#, kde-format
msgid "Delete"
msgstr "Hapus"
#: contents/ui/LocalPlaylistPage.qml:19
#, kde-format
msgid "Remove from Playlist"
msgstr "Hapus dari Daftar Putar"
#: contents/ui/LocalPlaylistPage.qml:29
#, kde-format
msgid "This playlist is still empty"
msgstr "Daftar putar ini masih kosong"
#: contents/ui/main.qml:109 main.cpp:59
#, kde-format
msgid "AudioTube"
msgstr "AudioTube"
#: contents/ui/MaximizedPlayerPage.qml:196
#: contents/ui/MinimizedPlayerControls.qml:93
#, kde-format
msgid "No media playing"
msgstr "Tidak ada media yang diputarkan"
#: contents/ui/MaximizedPlayerPage.qml:571
#, kde-format
msgid "%1%"
msgstr "%1%"
#: contents/ui/MaximizedPlayerPage.qml:839
#: contents/ui/MaximizedPlayerPage.qml:1016
#, kde-format
msgid "Remove Track"
msgstr "Hapus Trek"
#: contents/ui/MaximizedPlayerPage.qml:870
#, kde-format
msgid "Clear Playlist"
msgstr "Hapus Daftar Putar"
#: contents/ui/MaximizedPlayerPage.qml:917
#, kde-format
msgid "Upcoming Songs"
msgstr "Lagu Berikutnya"
#: contents/ui/NavigationBar.qml:24 contents/ui/Sidebar.qml:100
#, kde-format
msgid "Library"
msgstr "Pustaka"
#: contents/ui/NavigationBar.qml:36 contents/ui/Sidebar.qml:116
#, kde-format
msgid "Search"
msgstr "Cari"
#: contents/ui/PlaybackHistory.qml:15
#, kde-format
msgid "Unknown list of songs"
msgstr "Daftar lagu yang tidak diketahui"
#: contents/ui/PlaybackHistory.qml:74
#, kde-format
msgid "No songs here yet"
msgstr "Belum ada lagu di sini"
#: contents/ui/PlaylistPage.qml:67
#, kde-format
msgid "Playlist"
msgstr "Daftar Putar"
#: contents/ui/SearchHistoryPage.qml:86 contents/ui/SearchWithDropdown.qml:412
#, kde-format
msgid "remove from search history"
msgstr "hapus dari riwayat pencarian"
#: contents/ui/SearchPage.qml:16
#, kde-format
msgid "Previous Searches:"
msgstr "Pencarian Sebelumnya:"
#: contents/ui/SearchPage.qml:28
#, kde-format
msgid "Artists"
msgstr "Artis"
#: contents/ui/SearchPage.qml:37
#, kde-format
msgid "Unknown"
msgstr "Tidak diketahui"
#: contents/ui/SearchWithDropdown.qml:359
#, kde-format
msgid "No matching previous searches"
msgstr "Tidak ada pencarian sebelumnya yang cocok"
#: contents/ui/ShareMenu.qml:39
#, kde-format
msgid "Share to"
msgstr "Bagikan ke"
#: contents/ui/ShareMenu.qml:49 contents/ui/ShareMenu.qml:99
#, kde-format
msgid "Copy Link"
msgstr "Salin Tautan"
#: contents/ui/ShareMenu.qml:54 contents/ui/ShareMenu.qml:104
#, kde-format
msgid "Link copied to clipboard"
msgstr "Tautan disalin ke papan klip"
#: contents/ui/Sidebar.qml:189
#, kde-format
msgid "About"
msgstr "Tentang"
#: contents/ui/Sidebar.qml:203
#, kde-format
msgid "Collapse Sidebar"
msgstr "Tutup Bilah Samping"
#: contents/ui/SongMenu.qml:107 contents/ui/SongMenu.qml:205
#, kde-format
msgid "Play Next"
msgstr "Putar Berikutnya"
#: contents/ui/SongMenu.qml:116 contents/ui/SongMenu.qml:211
#, kde-format
msgid "Add to queue"
msgstr "Tambahkan ke antrean"
#: contents/ui/SongMenu.qml:126 contents/ui/SongMenu.qml:221
#, kde-format
msgid "Remove Favourite"
msgstr "Hapus Favorit"
#: contents/ui/SongMenu.qml:126 contents/ui/SongMenu.qml:221
#, kde-format
msgid "Add Favourite"
msgstr "Tambahkan Favorit"
#: contents/ui/SongMenu.qml:143 contents/ui/SongMenu.qml:235
#, kde-format
msgid "Remove from History"
msgstr "Hapus dari Riwayat"
#: contents/ui/SongMenu.qml:156 contents/ui/SongMenu.qml:244
#, kde-format
msgid "Add to playlist"
msgstr "Tambahkan ke daftar putar"
#: contents/ui/SongMenu.qml:183 contents/ui/SongMenu.qml:269
#, kde-format
msgid "Share Song"
msgstr "Bagikan Lagu"
#: main.cpp:61
#, kde-format
msgid "YouTube Music Player"
msgstr "Pemutar YouTube Music"
#: main.cpp:63
#, kde-format
msgid "© 2021-2023 Jonah Brüchert, 2021-2023 KDE Community"
msgstr "© 2021-2023 Jonah Brüchert, 2021-2023 Komunitas KDE"
#: main.cpp:64
#, kde-format
msgid "Jonah Brüchert"
msgstr "Jonah Brüchert"
#: main.cpp:64
#, kde-format
msgid "Maintainer"
msgstr "Pemelihara"
#: main.cpp:65
#, kde-format
msgid "Mathis Brüchert"
msgstr "Mathis Brüchert"
#: main.cpp:65
#, kde-format
msgid "Designer"
msgstr "Perancang"
#: main.cpp:66
#, kde-format
msgctxt "NAME OF TRANSLATORS"
msgid "Your names"
msgstr "Linerly"
#: main.cpp:66
#, kde-format
msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails"
msgstr "[email protected]"
#: main.cpp:71
#, kde-format
msgid "Unofficial API for YouTube Music"
msgstr "API tidak resmi untuk YouTube Music"
#~ msgid "played Songs"
#~ msgstr "Lagu yang telah diputar"
#~ msgid "Now Playing"
#~ msgstr "Sekarang Diputarkan"
#~ msgid "Queue"
#~ msgstr "Antrean"
#~ msgid "Lyrics"
#~ msgstr "Lirik"
#~ msgid "Back"
#~ msgstr "Kembali"
#~ msgid "Play next"
#~ msgstr "Putar berikutnya"
+357 -83
View File
@@ -1,13 +1,13 @@
# Copyright (C) YEAR This file is copyright:
# This file is distributed under the same license as the audiotube package.
# Vincenzo Reale <[email protected]>, 2021.
# Vincenzo Reale <[email protected]>, 2021, 2022, 2023.
#
msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2022-05-23 00:47+0000\n"
"PO-Revision-Date: 2021-12-06 02:46+0100\n"
"POT-Creation-Date: 2023-04-23 04:10+0000\n"
"PO-Revision-Date: 2023-03-09 22:50+0100\n"
"Last-Translator: Vincenzo Reale <[email protected]>\n"
"Language-Team: Italian <[email protected]>\n"
"Language: it\n"
@@ -15,37 +15,70 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Lokalize 21.08.3\n"
"X-Generator: Lokalize 23.04.0\n"
#, kde-format
msgctxt "NAME OF TRANSLATORS"
msgid "Your names"
msgstr "Vincenzo Reale"
#, kde-format
msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails"
msgstr "[email protected]"
#: contents/ui/AlbumPage.qml:19 contents/ui/PlayerFooter.qml:192
#: contents/ui/PlaylistPage.qml:19
#: contents/ui/AlbumPage.qml:26 contents/ui/LibraryPage.qml:37
#: contents/ui/LibraryPage.qml:63 contents/ui/LibraryPage.qml:84
#: contents/ui/LibraryPage.qml:332 contents/ui/LibraryPage.qml:358
#: contents/ui/LibraryPage.qml:379 contents/ui/LocalPlaylistPage.qml:42
#: contents/ui/PlaybackHistory.qml:23 contents/ui/PlaylistPage.qml:31
#, kde-format
msgid "Play"
msgstr "Riproduci"
#: contents/ui/AlbumPage.qml:61 contents/ui/ArtistPage.qml:101
#: contents/ui/PlaylistPage.qml:67
#: contents/ui/AlbumPage.qml:33 contents/ui/ArtistPage.qml:36
#: contents/ui/LibraryPage.qml:44 contents/ui/LibraryPage.qml:69
#: contents/ui/LibraryPage.qml:92 contents/ui/LibraryPage.qml:339
#: contents/ui/LibraryPage.qml:364 contents/ui/LibraryPage.qml:388
#: contents/ui/LocalPlaylistPage.qml:49 contents/ui/MaximizedPlayerPage.qml:891
#: contents/ui/PlaybackHistory.qml:36 contents/ui/PlaylistPage.qml:38
#, kde-format
msgid "Play Next"
msgstr "Riproduci successivo"
msgid "Shuffle"
msgstr "Mescola"
#: contents/ui/AlbumPage.qml:66 contents/ui/ArtistPage.qml:107
#: contents/ui/PlaylistPage.qml:72 contents/ui/SearchPage.qml:123
#: contents/ui/AlbumPage.qml:41 contents/ui/LibraryPage.qml:74
#: contents/ui/LibraryPage.qml:100 contents/ui/LibraryPage.qml:369
#: contents/ui/LibraryPage.qml:396 contents/ui/LocalPlaylistPage.qml:55
#: contents/ui/PlaybackHistory.qml:48 contents/ui/PlaylistPage.qml:46
#, kde-format
msgid "Add to Playlist"
msgstr "Aggiungi alla scaletta"
msgid "Append to queue"
msgstr "Aggiungi alla coda"
#: contents/ui/ArtistPage.qml:39 contents/ui/SearchPage.qml:67
#: contents/ui/AlbumPage.qml:46 contents/ui/ArtistPage.qml:43
#: contents/ui/PlaylistPage.qml:51
#, kde-format
msgid "Open in Browser"
msgstr "Apri nel browser"
#: contents/ui/AlbumPage.qml:51 contents/ui/ArtistPage.qml:48
#: contents/ui/PlaylistPage.qml:56
#, kde-format
msgid "Share"
msgstr "Condividi"
#: contents/ui/AlbumPage.qml:61
#, kde-format
msgid "Album • %1"
msgstr "Album • %1"
#: contents/ui/AlbumPage.qml:105 contents/ui/ArtistPage.qml:137
#: contents/ui/LocalPlaylistPage.qml:114 contents/ui/PlaybackHistory.qml:127
#: contents/ui/PlaylistPage.qml:116 contents/ui/SearchPage.qml:130
#, kde-format
msgid "More"
msgstr "Altro"
#: contents/ui/ArtistPage.qml:31
#, kde-format
msgid "Radio"
msgstr "Radio"
#: contents/ui/ArtistPage.qml:57
#, kde-format
msgid "Artist"
msgstr "Artista"
#: contents/ui/ArtistPage.qml:79 contents/ui/SearchPage.qml:70
#, kde-format
msgid ""
"Video playback is not supported yet. Do you want to play only the audio of "
@@ -54,22 +87,22 @@ msgstr ""
"La riproduzione dei video non è ancora supportata. Vuoi riprodurre solo "
"l'audio di «%1»?"
#: contents/ui/ArtistPage.qml:55 contents/ui/SearchPage.qml:25
#: contents/ui/ArtistPage.qml:96 contents/ui/SearchPage.qml:26
#, kde-format
msgid "Albums"
msgstr "Album"
#: contents/ui/ArtistPage.qml:57
#: contents/ui/ArtistPage.qml:98
#, kde-format
msgid "Singles"
msgstr "Singoli"
#: contents/ui/ArtistPage.qml:59 contents/ui/SearchPage.qml:31
#: contents/ui/ArtistPage.qml:100 contents/ui/SearchPage.qml:32
#, kde-format
msgid "Songs"
msgstr "Brani"
#: contents/ui/ArtistPage.qml:61 contents/ui/SearchPage.qml:33
#: contents/ui/ArtistPage.qml:102 contents/ui/SearchPage.qml:34
#, kde-format
msgid "Videos"
msgstr "Video"
@@ -84,85 +117,326 @@ msgstr "OK"
msgid "Cancel"
msgstr "Annulla"
#: contents/ui/LibraryPage.qml:15
#: contents/ui/dialogs/AddPlaylistDialog.qml:17
#, kde-format
msgid "Add playlist"
msgstr "Aggiungere scaletta"
#: contents/ui/dialogs/AddPlaylistDialog.qml:23
#: contents/ui/dialogs/RenamePlaylistDialog.qml:24
#, kde-format
msgid "Playlist Title"
msgstr "Titolo della scaletta"
#: contents/ui/dialogs/AddPlaylistDialog.qml:28
#: contents/ui/dialogs/RenamePlaylistDialog.qml:30
#, kde-format
msgid "Playlist Description"
msgstr "Descrizione della scaletta"
#: contents/ui/dialogs/PlaylistDialog.qml:20
#, kde-format
msgid "Add Song to Playlist"
msgstr "Aggiungere brano alla scaletta"
#: contents/ui/dialogs/PlaylistDialog.qml:29
#: contents/ui/LocalPlaylistsPage.qml:90
#, kde-format
msgid "New Playlist"
msgstr "Nuova scaletta"
#: contents/ui/dialogs/RenamePlaylistDialog.qml:18
#, kde-format
msgid "Rename playlist"
msgstr "Rinomina la scaletta"
#: contents/ui/LibraryPage.qml:30 contents/ui/LibraryPage.qml:123
#: contents/ui/NavigationBar.qml:48 contents/ui/NavigationBar.qml:54
#: contents/ui/Sidebar.qml:131 contents/ui/Sidebar.qml:138
#, kde-format
msgid "Favourites"
msgstr ""
msgstr "Preferiti"
#: contents/ui/LibraryPage.qml:67
#: contents/ui/LibraryPage.qml:119 contents/ui/LibraryPage.qml:416
#: contents/ui/LibraryPage.qml:623
#, kde-format
msgid "Show All"
msgstr "Mostra tutto"
#: contents/ui/LibraryPage.qml:147
#, kde-format
msgid "No Favourites Yet"
msgstr "Ancora nessun preferito"
#: contents/ui/LibraryPage.qml:325
#, kde-format
msgid "Most played"
msgstr ""
msgstr "Più riprodotti"
#: contents/ui/main.qml:94
#: contents/ui/LibraryPage.qml:420 contents/ui/NavigationBar.qml:61
#: contents/ui/NavigationBar.qml:67 contents/ui/Sidebar.qml:150
#: contents/ui/Sidebar.qml:157
#, kde-format
msgid "AudioTube"
msgstr "AudioTube"
msgid "Played Songs"
msgstr "Brani riprodotti"
#: contents/ui/PlayerFooter.qml:124
#: contents/ui/LibraryPage.qml:444
#, kde-format
msgid "Remove Track"
msgstr "Rimuovi traccia"
msgid "No Songs Played Yet"
msgstr "Ancora nessun brano riprodotto"
#: contents/ui/PlayerFooter.qml:141
#, kde-format
msgid "Clear"
msgstr "Pulisci"
#: contents/ui/PlayerFooter.qml:146 contents/ui/PlaylistPage.qml:26
#, kde-format
msgid "Shuffle"
msgstr "Mescola"
#: contents/ui/PlayerFooter.qml:192
#, kde-format
msgid "Pause"
msgstr "Pausa"
#: contents/ui/PlayerFooter.qml:222
#, kde-format
msgid "No media playing"
msgstr "Nessun supporto in riproduzione"
#: contents/ui/PlayerFooter.qml:266
#, kde-format
msgid "Expand"
msgstr "Espandi"
#: contents/ui/SearchPage.qml:27
#, kde-format
msgid "Artists"
msgstr "Artisti"
#: contents/ui/SearchPage.qml:29
#: contents/ui/LibraryPage.qml:611 contents/ui/LocalPlaylistsPage.qml:18
#: contents/ui/LocalPlaylistsPage.qml:78 contents/ui/NavigationBar.qml:75
#: contents/ui/SearchPage.qml:30 contents/ui/Sidebar.qml:167
#, kde-format
msgid "Playlists"
msgstr "Scalette"
#: contents/ui/SearchPage.qml:36
#: contents/ui/LibraryPage.qml:650
#, kde-format
msgid "Unknown"
msgstr "Sconosciuto"
msgid "No Playlists Yet"
msgstr "Ancora nessuna scaletta"
#: contents/ui/SearchPage.qml:117
#: contents/ui/LibraryPage.qml:670 contents/ui/LibraryPage.qml:692
#: contents/ui/LocalPlaylistsPage.qml:33 contents/ui/LocalPlaylistsPage.qml:55
#, kde-format
msgid "Play next"
msgstr "Riproduci successivo"
msgid "Rename"
msgstr "Rinomina"
#: contents/ui/SearchPage.qml:129
#: contents/ui/LibraryPage.qml:679 contents/ui/LibraryPage.qml:700
#: contents/ui/LocalPlaylistsPage.qml:42 contents/ui/LocalPlaylistsPage.qml:63
#, kde-format
msgid "Radio"
msgstr "Radio"
msgid "Delete"
msgstr "Elimina"
#: contents/ui/SearchPage.qml:147
#: contents/ui/LocalPlaylistPage.qml:19
#, kde-format
msgid "Find music on YouTube Music"
msgstr "Trova musica su Youtube Music"
msgid "Remove from Playlist"
msgstr "Rimuovi dalla scaletta"
#: contents/ui/SearchPage.qml:150
#: contents/ui/LocalPlaylistPage.qml:29
#, kde-format
msgid "This playlist is still empty"
msgstr "Questa scaletta è ancora vuota"
#: contents/ui/main.qml:109 main.cpp:59
#, kde-format
msgid "AudioTube"
msgstr "AudioTube"
#: contents/ui/MaximizedPlayerPage.qml:196
#: contents/ui/MinimizedPlayerControls.qml:93
#, kde-format
msgid "No media playing"
msgstr "Nessun supporto in riproduzione"
#: contents/ui/MaximizedPlayerPage.qml:571
#, kde-format
msgid "%1%"
msgstr "%1%"
#: contents/ui/MaximizedPlayerPage.qml:839
#: contents/ui/MaximizedPlayerPage.qml:1016
#, kde-format
msgid "Remove Track"
msgstr "Rimuovi traccia"
#: contents/ui/MaximizedPlayerPage.qml:870
#, kde-format
msgid "Clear Playlist"
msgstr "Pulisci la scaletta"
#: contents/ui/MaximizedPlayerPage.qml:917
#, kde-format
msgid "Upcoming Songs"
msgstr "Prossimi brani"
#: contents/ui/NavigationBar.qml:24 contents/ui/Sidebar.qml:100
#, kde-format
msgid "Library"
msgstr "Raccolta"
#: contents/ui/NavigationBar.qml:36 contents/ui/Sidebar.qml:116
#, kde-format
msgid "Search"
msgstr "Cerca"
#: contents/ui/PlaybackHistory.qml:15
#, kde-format
msgid "Unknown list of songs"
msgstr "Elenco di brani sconosciuto"
#: contents/ui/PlaybackHistory.qml:74
#, kde-format
msgid "No songs here yet"
msgstr "Non c'è ancora alcun brano"
#: contents/ui/PlaylistPage.qml:67
#, kde-format
msgid "Playlist"
msgstr "Scaletta"
#: contents/ui/SearchHistoryPage.qml:86 contents/ui/SearchWithDropdown.qml:412
#, kde-format
msgid "remove from search history"
msgstr "rimuovi dalla cronologia delle ricerche"
#: contents/ui/SearchPage.qml:16
#, kde-format
msgid "Previous Searches:"
msgstr "Ricerche precedenti:"
#: contents/ui/SearchPage.qml:28
#, kde-format
msgid "Artists"
msgstr "Artisti"
#: contents/ui/SearchPage.qml:37
#, kde-format
msgid "Unknown"
msgstr "Sconosciuto"
#: contents/ui/SearchWithDropdown.qml:359
#, kde-format
msgid "No matching previous searches"
msgstr "Nessuna ricerca precedente corrispondente"
#: contents/ui/ShareMenu.qml:39
#, kde-format
msgid "Share to"
msgstr "Condividi con"
#: contents/ui/ShareMenu.qml:49 contents/ui/ShareMenu.qml:99
#, kde-format
msgid "Copy Link"
msgstr "Copia collegamento"
#: contents/ui/ShareMenu.qml:54 contents/ui/ShareMenu.qml:104
#, kde-format
msgid "Link copied to clipboard"
msgstr "Collegamento copiato negli appunti"
#: contents/ui/Sidebar.qml:189
#, kde-format
msgid "About"
msgstr "Informazioni"
#: contents/ui/Sidebar.qml:203
#, kde-format
msgid "Collapse Sidebar"
msgstr "Contrai la barra laterale"
#: contents/ui/SongMenu.qml:107 contents/ui/SongMenu.qml:205
#, kde-format
msgid "Play Next"
msgstr "Riproduci successivo"
#: contents/ui/SongMenu.qml:116 contents/ui/SongMenu.qml:211
#, kde-format
msgid "Add to queue"
msgstr "Aggiungi alla coda"
#: contents/ui/SongMenu.qml:126 contents/ui/SongMenu.qml:221
#, kde-format
msgid "Remove Favourite"
msgstr "Rimuovi preferito"
#: contents/ui/SongMenu.qml:126 contents/ui/SongMenu.qml:221
#, kde-format
msgid "Add Favourite"
msgstr "Aggiungi preferito"
#: contents/ui/SongMenu.qml:143 contents/ui/SongMenu.qml:235
#, kde-format
msgid "Remove from History"
msgstr "Rimuovi dalla cronologia"
#: contents/ui/SongMenu.qml:156 contents/ui/SongMenu.qml:244
#, kde-format
msgid "Add to playlist"
msgstr "Aggiungi alla scaletta"
#: contents/ui/SongMenu.qml:183 contents/ui/SongMenu.qml:269
#, kde-format
msgid "Share Song"
msgstr "Condividi brano"
#: main.cpp:61
#, kde-format
msgid "YouTube Music Player"
msgstr "Lettore musicale YouTube"
#: main.cpp:63
#, kde-format
msgid "© 2021-2023 Jonah Brüchert, 2021-2023 KDE Community"
msgstr "© 2021-2023 Jonah Brüchert, 2021-2023 Comunità KDE"
#: main.cpp:64
#, kde-format
msgid "Jonah Brüchert"
msgstr "Jonah Brüchert"
#: main.cpp:64
#, kde-format
msgid "Maintainer"
msgstr "Responsabile"
#: main.cpp:65
#, kde-format
msgid "Mathis Brüchert"
msgstr "Mathis Brüchert"
#: main.cpp:65
#, kde-format
msgid "Designer"
msgstr "Progettista"
#: main.cpp:66
#, kde-format
msgctxt "NAME OF TRANSLATORS"
msgid "Your names"
msgstr "Vincenzo Reale"
#: main.cpp:66
#, kde-format
msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails"
msgstr "[email protected]"
#: main.cpp:71
#, kde-format
msgid "Unofficial API for YouTube Music"
msgstr "API non ufficiale su YouTube Music"
#~ msgid "played Songs"
#~ msgstr "Brani riprodotti"
#~ msgid "%"
#~ msgstr "%"
#~ msgid "Now Playing"
#~ msgstr "In riproduzione"
#~ msgid "Queue"
#~ msgstr "Coda"
#~ msgid "Lyrics"
#~ msgstr "Testi"
#~ msgid "Back"
#~ msgstr "Indietro"
#~ msgid "Play next"
#~ msgstr "Riproduci successivo"
#~ msgid "Clear"
#~ msgstr "Pulisci"
#~ msgid "Pause"
#~ msgstr "Pausa"
#~ msgid "Expand"
#~ msgstr "Espandi"
#~ msgid "Play only Audio"
#~ msgstr "Riproduci solo l'audio"
+404
View File
@@ -0,0 +1,404 @@
msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2023-04-23 04:10+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"
#: contents/ui/AlbumPage.qml:26 contents/ui/LibraryPage.qml:37
#: contents/ui/LibraryPage.qml:63 contents/ui/LibraryPage.qml:84
#: contents/ui/LibraryPage.qml:332 contents/ui/LibraryPage.qml:358
#: contents/ui/LibraryPage.qml:379 contents/ui/LocalPlaylistPage.qml:42
#: contents/ui/PlaybackHistory.qml:23 contents/ui/PlaylistPage.qml:31
#, kde-format
msgid "Play"
msgstr ""
#: contents/ui/AlbumPage.qml:33 contents/ui/ArtistPage.qml:36
#: contents/ui/LibraryPage.qml:44 contents/ui/LibraryPage.qml:69
#: contents/ui/LibraryPage.qml:92 contents/ui/LibraryPage.qml:339
#: contents/ui/LibraryPage.qml:364 contents/ui/LibraryPage.qml:388
#: contents/ui/LocalPlaylistPage.qml:49 contents/ui/MaximizedPlayerPage.qml:891
#: contents/ui/PlaybackHistory.qml:36 contents/ui/PlaylistPage.qml:38
#, kde-format
msgid "Shuffle"
msgstr ""
#: contents/ui/AlbumPage.qml:41 contents/ui/LibraryPage.qml:74
#: contents/ui/LibraryPage.qml:100 contents/ui/LibraryPage.qml:369
#: contents/ui/LibraryPage.qml:396 contents/ui/LocalPlaylistPage.qml:55
#: contents/ui/PlaybackHistory.qml:48 contents/ui/PlaylistPage.qml:46
#, kde-format
msgid "Append to queue"
msgstr ""
#: contents/ui/AlbumPage.qml:46 contents/ui/ArtistPage.qml:43
#: contents/ui/PlaylistPage.qml:51
#, kde-format
msgid "Open in Browser"
msgstr ""
#: contents/ui/AlbumPage.qml:51 contents/ui/ArtistPage.qml:48
#: contents/ui/PlaylistPage.qml:56
#, kde-format
msgid "Share"
msgstr ""
#: contents/ui/AlbumPage.qml:61
#, kde-format
msgid "Album • %1"
msgstr ""
#: contents/ui/AlbumPage.qml:105 contents/ui/ArtistPage.qml:137
#: contents/ui/LocalPlaylistPage.qml:114 contents/ui/PlaybackHistory.qml:127
#: contents/ui/PlaylistPage.qml:116 contents/ui/SearchPage.qml:130
#, kde-format
msgid "More"
msgstr ""
#: contents/ui/ArtistPage.qml:31
#, kde-format
msgid "Radio"
msgstr ""
#: contents/ui/ArtistPage.qml:57
#, kde-format
msgid "Artist"
msgstr ""
#: contents/ui/ArtistPage.qml:79 contents/ui/SearchPage.qml:70
#, kde-format
msgid ""
"Video playback is not supported yet. Do you want to play only the audio of "
"\"%1\"?"
msgstr ""
#: contents/ui/ArtistPage.qml:96 contents/ui/SearchPage.qml:26
#, kde-format
msgid "Albums"
msgstr ""
#: contents/ui/ArtistPage.qml:98
#, kde-format
msgid "Singles"
msgstr ""
#: contents/ui/ArtistPage.qml:100 contents/ui/SearchPage.qml:32
#, kde-format
msgid "Songs"
msgstr ""
#: contents/ui/ArtistPage.qml:102 contents/ui/SearchPage.qml:34
#, 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/dialogs/AddPlaylistDialog.qml:17
#, kde-format
msgid "Add playlist"
msgstr ""
#: contents/ui/dialogs/AddPlaylistDialog.qml:23
#: contents/ui/dialogs/RenamePlaylistDialog.qml:24
#, kde-format
msgid "Playlist Title"
msgstr ""
#: contents/ui/dialogs/AddPlaylistDialog.qml:28
#: contents/ui/dialogs/RenamePlaylistDialog.qml:30
#, kde-format
msgid "Playlist Description"
msgstr ""
#: contents/ui/dialogs/PlaylistDialog.qml:20
#, kde-format
msgid "Add Song to Playlist"
msgstr ""
#: contents/ui/dialogs/PlaylistDialog.qml:29
#: contents/ui/LocalPlaylistsPage.qml:90
#, kde-format
msgid "New Playlist"
msgstr ""
#: contents/ui/dialogs/RenamePlaylistDialog.qml:18
#, kde-format
msgid "Rename playlist"
msgstr ""
#: contents/ui/LibraryPage.qml:30 contents/ui/LibraryPage.qml:123
#: contents/ui/NavigationBar.qml:48 contents/ui/NavigationBar.qml:54
#: contents/ui/Sidebar.qml:131 contents/ui/Sidebar.qml:138
#, kde-format
msgid "Favourites"
msgstr ""
#: contents/ui/LibraryPage.qml:119 contents/ui/LibraryPage.qml:416
#: contents/ui/LibraryPage.qml:623
#, kde-format
msgid "Show All"
msgstr ""
#: contents/ui/LibraryPage.qml:147
#, kde-format
msgid "No Favourites Yet"
msgstr ""
#: contents/ui/LibraryPage.qml:325
#, kde-format
msgid "Most played"
msgstr ""
#: contents/ui/LibraryPage.qml:420 contents/ui/NavigationBar.qml:61
#: contents/ui/NavigationBar.qml:67 contents/ui/Sidebar.qml:150
#: contents/ui/Sidebar.qml:157
#, kde-format
msgid "Played Songs"
msgstr ""
#: contents/ui/LibraryPage.qml:444
#, kde-format
msgid "No Songs Played Yet"
msgstr ""
#: contents/ui/LibraryPage.qml:611 contents/ui/LocalPlaylistsPage.qml:18
#: contents/ui/LocalPlaylistsPage.qml:78 contents/ui/NavigationBar.qml:75
#: contents/ui/SearchPage.qml:30 contents/ui/Sidebar.qml:167
#, kde-format
msgid "Playlists"
msgstr ""
#: contents/ui/LibraryPage.qml:650
#, kde-format
msgid "No Playlists Yet"
msgstr ""
#: contents/ui/LibraryPage.qml:670 contents/ui/LibraryPage.qml:692
#: contents/ui/LocalPlaylistsPage.qml:33 contents/ui/LocalPlaylistsPage.qml:55
#, kde-format
msgid "Rename"
msgstr ""
#: contents/ui/LibraryPage.qml:679 contents/ui/LibraryPage.qml:700
#: contents/ui/LocalPlaylistsPage.qml:42 contents/ui/LocalPlaylistsPage.qml:63
#, kde-format
msgid "Delete"
msgstr ""
#: contents/ui/LocalPlaylistPage.qml:19
#, kde-format
msgid "Remove from Playlist"
msgstr ""
#: contents/ui/LocalPlaylistPage.qml:29
#, kde-format
msgid "This playlist is still empty"
msgstr ""
#: contents/ui/main.qml:109 main.cpp:59
#, kde-format
msgid "AudioTube"
msgstr ""
#: contents/ui/MaximizedPlayerPage.qml:196
#: contents/ui/MinimizedPlayerControls.qml:93
#, kde-format
msgid "No media playing"
msgstr ""
#: contents/ui/MaximizedPlayerPage.qml:571
#, kde-format
msgid "%1%"
msgstr ""
#: contents/ui/MaximizedPlayerPage.qml:839
#: contents/ui/MaximizedPlayerPage.qml:1016
#, kde-format
msgid "Remove Track"
msgstr ""
#: contents/ui/MaximizedPlayerPage.qml:870
#, kde-format
msgid "Clear Playlist"
msgstr ""
#: contents/ui/MaximizedPlayerPage.qml:917
#, kde-format
msgid "Upcoming Songs"
msgstr ""
#: contents/ui/NavigationBar.qml:24 contents/ui/Sidebar.qml:100
#, kde-format
msgid "Library"
msgstr ""
#: contents/ui/NavigationBar.qml:36 contents/ui/Sidebar.qml:116
#, kde-format
msgid "Search"
msgstr ""
#: contents/ui/PlaybackHistory.qml:15
#, kde-format
msgid "Unknown list of songs"
msgstr ""
#: contents/ui/PlaybackHistory.qml:74
#, kde-format
msgid "No songs here yet"
msgstr ""
#: contents/ui/PlaylistPage.qml:67
#, kde-format
msgid "Playlist"
msgstr ""
#: contents/ui/SearchHistoryPage.qml:86 contents/ui/SearchWithDropdown.qml:412
#, kde-format
msgid "remove from search history"
msgstr ""
#: contents/ui/SearchPage.qml:16
#, kde-format
msgid "Previous Searches:"
msgstr ""
#: contents/ui/SearchPage.qml:28
#, kde-format
msgid "Artists"
msgstr ""
#: contents/ui/SearchPage.qml:37
#, kde-format
msgid "Unknown"
msgstr ""
#: contents/ui/SearchWithDropdown.qml:359
#, kde-format
msgid "No matching previous searches"
msgstr ""
#: contents/ui/ShareMenu.qml:39
#, kde-format
msgid "Share to"
msgstr ""
#: contents/ui/ShareMenu.qml:49 contents/ui/ShareMenu.qml:99
#, kde-format
msgid "Copy Link"
msgstr ""
#: contents/ui/ShareMenu.qml:54 contents/ui/ShareMenu.qml:104
#, kde-format
msgid "Link copied to clipboard"
msgstr ""
#: contents/ui/Sidebar.qml:189
#, kde-format
msgid "About"
msgstr ""
#: contents/ui/Sidebar.qml:203
#, kde-format
msgid "Collapse Sidebar"
msgstr ""
#: contents/ui/SongMenu.qml:107 contents/ui/SongMenu.qml:205
#, kde-format
msgid "Play Next"
msgstr ""
#: contents/ui/SongMenu.qml:116 contents/ui/SongMenu.qml:211
#, kde-format
msgid "Add to queue"
msgstr ""
#: contents/ui/SongMenu.qml:126 contents/ui/SongMenu.qml:221
#, kde-format
msgid "Remove Favourite"
msgstr ""
#: contents/ui/SongMenu.qml:126 contents/ui/SongMenu.qml:221
#, kde-format
msgid "Add Favourite"
msgstr ""
#: contents/ui/SongMenu.qml:143 contents/ui/SongMenu.qml:235
#, kde-format
msgid "Remove from History"
msgstr ""
#: contents/ui/SongMenu.qml:156 contents/ui/SongMenu.qml:244
#, kde-format
msgid "Add to playlist"
msgstr ""
#: contents/ui/SongMenu.qml:183 contents/ui/SongMenu.qml:269
#, kde-format
msgid "Share Song"
msgstr ""
#: main.cpp:61
#, kde-format
msgid "YouTube Music Player"
msgstr ""
#: main.cpp:63
#, kde-format
msgid "© 2021-2023 Jonah Brüchert, 2021-2023 KDE Community"
msgstr ""
#: main.cpp:64
#, kde-format
msgid "Jonah Brüchert"
msgstr ""
#: main.cpp:64
#, kde-format
msgid "Maintainer"
msgstr ""
#: main.cpp:65
#, kde-format
msgid "Mathis Brüchert"
msgstr ""
#: main.cpp:65
#, kde-format
msgid "Designer"
msgstr ""
#: main.cpp:66
#, kde-format
msgctxt "NAME OF TRANSLATORS"
msgid "Your names"
msgstr ""
#: main.cpp:66
#, kde-format
msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails"
msgstr ""
#: main.cpp:71
#, kde-format
msgid "Unofficial API for YouTube Music"
msgstr ""
+430
View File
@@ -0,0 +1,430 @@
# 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: 2023-04-23 04:10+0000\n"
"PO-Revision-Date: 2023-03-10 02:35+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.2\n"
#: contents/ui/AlbumPage.qml:26 contents/ui/LibraryPage.qml:37
#: contents/ui/LibraryPage.qml:63 contents/ui/LibraryPage.qml:84
#: contents/ui/LibraryPage.qml:332 contents/ui/LibraryPage.qml:358
#: contents/ui/LibraryPage.qml:379 contents/ui/LocalPlaylistPage.qml:42
#: contents/ui/PlaybackHistory.qml:23 contents/ui/PlaylistPage.qml:31
#, kde-format
msgid "Play"
msgstr "დაკვრა"
#: contents/ui/AlbumPage.qml:33 contents/ui/ArtistPage.qml:36
#: contents/ui/LibraryPage.qml:44 contents/ui/LibraryPage.qml:69
#: contents/ui/LibraryPage.qml:92 contents/ui/LibraryPage.qml:339
#: contents/ui/LibraryPage.qml:364 contents/ui/LibraryPage.qml:388
#: contents/ui/LocalPlaylistPage.qml:49 contents/ui/MaximizedPlayerPage.qml:891
#: contents/ui/PlaybackHistory.qml:36 contents/ui/PlaylistPage.qml:38
#, kde-format
msgid "Shuffle"
msgstr "შემთხვევით"
#: contents/ui/AlbumPage.qml:41 contents/ui/LibraryPage.qml:74
#: contents/ui/LibraryPage.qml:100 contents/ui/LibraryPage.qml:369
#: contents/ui/LibraryPage.qml:396 contents/ui/LocalPlaylistPage.qml:55
#: contents/ui/PlaybackHistory.qml:48 contents/ui/PlaylistPage.qml:46
#, kde-format
msgid "Append to queue"
msgstr "რიგის ბოლოში მიწერა"
#: contents/ui/AlbumPage.qml:46 contents/ui/ArtistPage.qml:43
#: contents/ui/PlaylistPage.qml:51
#, kde-format
msgid "Open in Browser"
msgstr "ბრაუზერში გახსნა"
#: contents/ui/AlbumPage.qml:51 contents/ui/ArtistPage.qml:48
#: contents/ui/PlaylistPage.qml:56
#, kde-format
msgid "Share"
msgstr "გაზიარება"
#: contents/ui/AlbumPage.qml:61
#, kde-format
msgid "Album • %1"
msgstr "ალბომი • %1"
#: contents/ui/AlbumPage.qml:105 contents/ui/ArtistPage.qml:137
#: contents/ui/LocalPlaylistPage.qml:114 contents/ui/PlaybackHistory.qml:127
#: contents/ui/PlaylistPage.qml:116 contents/ui/SearchPage.qml:130
#, kde-format
msgid "More"
msgstr "მეტი"
#: contents/ui/ArtistPage.qml:31
#, kde-format
msgid "Radio"
msgstr "რადიო"
#: contents/ui/ArtistPage.qml:57
#, kde-format
msgid "Artist"
msgstr "შემსრულებელი"
#: contents/ui/ArtistPage.qml:79 contents/ui/SearchPage.qml:70
#, 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:96 contents/ui/SearchPage.qml:26
#, kde-format
msgid "Albums"
msgstr "ალბომები"
#: contents/ui/ArtistPage.qml:98
#, kde-format
msgid "Singles"
msgstr "სინგლები"
#: contents/ui/ArtistPage.qml:100 contents/ui/SearchPage.qml:32
#, kde-format
msgid "Songs"
msgstr "სიმღერები"
#: contents/ui/ArtistPage.qml:102 contents/ui/SearchPage.qml:34
#, 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/dialogs/AddPlaylistDialog.qml:17
#, kde-format
msgid "Add playlist"
msgstr "დასაკრავი სიაში დამატება"
#: contents/ui/dialogs/AddPlaylistDialog.qml:23
#: contents/ui/dialogs/RenamePlaylistDialog.qml:24
#, kde-format
msgid "Playlist Title"
msgstr "დასაკრავი სიის სათაური"
#: contents/ui/dialogs/AddPlaylistDialog.qml:28
#: contents/ui/dialogs/RenamePlaylistDialog.qml:30
#, kde-format
msgid "Playlist Description"
msgstr "დასაკრავი სიის აღწერა"
#: contents/ui/dialogs/PlaylistDialog.qml:20
#, kde-format
msgid "Add Song to Playlist"
msgstr "სიმღერის დასაკრავ სიაში ჩამატება"
#: contents/ui/dialogs/PlaylistDialog.qml:29
#: contents/ui/LocalPlaylistsPage.qml:90
#, kde-format
msgid "New Playlist"
msgstr "ახალი დასაკრავი სია"
#: contents/ui/dialogs/RenamePlaylistDialog.qml:18
#, kde-format
msgid "Rename playlist"
msgstr "დასაკრავი სიის სახელის გადარქმევა"
#: contents/ui/LibraryPage.qml:30 contents/ui/LibraryPage.qml:123
#: contents/ui/NavigationBar.qml:48 contents/ui/NavigationBar.qml:54
#: contents/ui/Sidebar.qml:131 contents/ui/Sidebar.qml:138
#, kde-format
msgid "Favourites"
msgstr "რჩეულები"
#: contents/ui/LibraryPage.qml:119 contents/ui/LibraryPage.qml:416
#: contents/ui/LibraryPage.qml:623
#, kde-format
msgid "Show All"
msgstr "ყველას ჩვენება"
#: contents/ui/LibraryPage.qml:147
#, kde-format
msgid "No Favourites Yet"
msgstr "რჩეულების გარეშე"
#: contents/ui/LibraryPage.qml:325
#, kde-format
msgid "Most played"
msgstr "ხშირად დაკრულები"
#: contents/ui/LibraryPage.qml:420 contents/ui/NavigationBar.qml:61
#: contents/ui/NavigationBar.qml:67 contents/ui/Sidebar.qml:150
#: contents/ui/Sidebar.qml:157
#, kde-format
msgid "Played Songs"
msgstr "დაკრული სიმღერები"
#: contents/ui/LibraryPage.qml:444
#, kde-format
msgid "No Songs Played Yet"
msgstr "სიმღერები ჯერ არ დაგიკრავთ"
#: contents/ui/LibraryPage.qml:611 contents/ui/LocalPlaylistsPage.qml:18
#: contents/ui/LocalPlaylistsPage.qml:78 contents/ui/NavigationBar.qml:75
#: contents/ui/SearchPage.qml:30 contents/ui/Sidebar.qml:167
#, kde-format
msgid "Playlists"
msgstr "დასაკრავი სიები"
#: contents/ui/LibraryPage.qml:650
#, kde-format
msgid "No Playlists Yet"
msgstr "დასაკრავი სიების გარეშე"
#: contents/ui/LibraryPage.qml:670 contents/ui/LibraryPage.qml:692
#: contents/ui/LocalPlaylistsPage.qml:33 contents/ui/LocalPlaylistsPage.qml:55
#, kde-format
msgid "Rename"
msgstr "გადარქმევა"
#: contents/ui/LibraryPage.qml:679 contents/ui/LibraryPage.qml:700
#: contents/ui/LocalPlaylistsPage.qml:42 contents/ui/LocalPlaylistsPage.qml:63
#, kde-format
msgid "Delete"
msgstr "წაშლა"
#: contents/ui/LocalPlaylistPage.qml:19
#, kde-format
msgid "Remove from Playlist"
msgstr "დასაკრავი სიიდან წაშლა"
#: contents/ui/LocalPlaylistPage.qml:29
#, kde-format
msgid "This playlist is still empty"
msgstr "ეს დასაკრავი სია ჯერ კიდევ ცარიელია"
#: contents/ui/main.qml:109 main.cpp:59
#, kde-format
msgid "AudioTube"
msgstr "AudioTube"
#: contents/ui/MaximizedPlayerPage.qml:196
#: contents/ui/MinimizedPlayerControls.qml:93
#, kde-format
msgid "No media playing"
msgstr "არაფერს ვუკრავ"
#: contents/ui/MaximizedPlayerPage.qml:571
#, kde-format
msgid "%1%"
msgstr "%1%"
#: contents/ui/MaximizedPlayerPage.qml:839
#: contents/ui/MaximizedPlayerPage.qml:1016
#, kde-format
msgid "Remove Track"
msgstr "აუდიობილიკის წაშლა"
#: contents/ui/MaximizedPlayerPage.qml:870
#, kde-format
msgid "Clear Playlist"
msgstr "დასაკრავი სიის გასუფთავება"
#: contents/ui/MaximizedPlayerPage.qml:917
#, kde-format
msgid "Upcoming Songs"
msgstr "მომავალი სიმღერები"
#: contents/ui/NavigationBar.qml:24 contents/ui/Sidebar.qml:100
#, kde-format
msgid "Library"
msgstr "ბიბლიოთეკა"
#: contents/ui/NavigationBar.qml:36 contents/ui/Sidebar.qml:116
#, kde-format
msgid "Search"
msgstr "ძებნა"
#: contents/ui/PlaybackHistory.qml:15
#, kde-format
msgid "Unknown list of songs"
msgstr "უცნობი სიმღერების სია"
#: contents/ui/PlaybackHistory.qml:74
#, kde-format
msgid "No songs here yet"
msgstr "აქ ჯერ სიმღერები არაა"
#: contents/ui/PlaylistPage.qml:67
#, kde-format
msgid "Playlist"
msgstr "დასაკრავი სია"
#: contents/ui/SearchHistoryPage.qml:86 contents/ui/SearchWithDropdown.qml:412
#, kde-format
msgid "remove from search history"
msgstr "ძებნის ისტორიიდან წაშლა"
#: contents/ui/SearchPage.qml:16
#, kde-format
msgid "Previous Searches:"
msgstr "წინა ძებნები:"
#: contents/ui/SearchPage.qml:28
#, kde-format
msgid "Artists"
msgstr "შემსრულებლები"
#: contents/ui/SearchPage.qml:37
#, kde-format
msgid "Unknown"
msgstr "უცნობი"
#: contents/ui/SearchWithDropdown.qml:359
#, kde-format
msgid "No matching previous searches"
msgstr "წინა ძებნებს არ ემთხვევა"
#: contents/ui/ShareMenu.qml:39
#, kde-format
msgid "Share to"
msgstr "გაზიარება"
#: contents/ui/ShareMenu.qml:49 contents/ui/ShareMenu.qml:99
#, kde-format
msgid "Copy Link"
msgstr "ბმულის კოპირება"
#: contents/ui/ShareMenu.qml:54 contents/ui/ShareMenu.qml:104
#, kde-format
msgid "Link copied to clipboard"
msgstr "ბმული დაკოპირებულია"
#: contents/ui/Sidebar.qml:189
#, kde-format
msgid "About"
msgstr "შესახებ"
#: contents/ui/Sidebar.qml:203
#, kde-format
msgid "Collapse Sidebar"
msgstr "გვერდითი ზოლის ჩაკეცვა"
#: contents/ui/SongMenu.qml:107 contents/ui/SongMenu.qml:205
#, kde-format
msgid "Play Next"
msgstr "შემდეგის დაკვრა"
#: contents/ui/SongMenu.qml:116 contents/ui/SongMenu.qml:211
#, kde-format
msgid "Add to queue"
msgstr "რიგში ჩამატება"
#: contents/ui/SongMenu.qml:126 contents/ui/SongMenu.qml:221
#, kde-format
msgid "Remove Favourite"
msgstr "რჩეულის წაშლა"
#: contents/ui/SongMenu.qml:126 contents/ui/SongMenu.qml:221
#, kde-format
msgid "Add Favourite"
msgstr "რჩეულის დამატება"
#: contents/ui/SongMenu.qml:143 contents/ui/SongMenu.qml:235
#, kde-format
msgid "Remove from History"
msgstr "ისტორიიდან წაშლა"
#: contents/ui/SongMenu.qml:156 contents/ui/SongMenu.qml:244
#, kde-format
msgid "Add to playlist"
msgstr "დასაკრავ სიაში დამატება"
#: contents/ui/SongMenu.qml:183 contents/ui/SongMenu.qml:269
#, kde-format
msgid "Share Song"
msgstr "სიმღერის გაზიარება"
#: main.cpp:61
#, kde-format
msgid "YouTube Music Player"
msgstr "YouTube-ის მუსიკის დამკვრელი"
#: main.cpp:63
#, kde-format
msgid "© 2021-2023 Jonah Brüchert, 2021-2023 KDE Community"
msgstr "© 2021-2023 Jonah Brüchert, 2021-2023 KDE Community"
#: main.cpp:64
#, kde-format
msgid "Jonah Brüchert"
msgstr "Jonah Brüchert"
#: main.cpp:64
#, kde-format
msgid "Maintainer"
msgstr "წამყვანი პროგრამისტი"
#: main.cpp:65
#, kde-format
msgid "Mathis Brüchert"
msgstr "Mathis Brüchert"
#: main.cpp:65
#, kde-format
msgid "Designer"
msgstr "დიზაინერი"
#: main.cpp:66
#, kde-format
msgctxt "NAME OF TRANSLATORS"
msgid "Your names"
msgstr "Temuri Doghonadze"
#: main.cpp:66
#, kde-format
msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails"
msgstr "[email protected]"
#: main.cpp:71
#, kde-format
msgid "Unofficial API for YouTube Music"
msgstr "YouTube Music-ის არაოფიციალური API"
#~ msgid "played Songs"
#~ msgstr "დაკრული სიმღერები"
#~ msgid "%"
#~ msgstr "%"
#~ msgid "Now Playing"
#~ msgstr "მიმდინარეობს დაკვრა"
#~ msgid "Queue"
#~ msgstr "რიგი"
#~ msgid "Lyrics"
#~ msgstr "ლირიკა"
#~ msgid "Back"
#~ msgstr "უკან"
#~ msgid "Play next"
#~ msgstr "შემდეგის დაკვრა"
+365 -84
View File
@@ -1,13 +1,13 @@
# Copyright (C) YEAR This file is copyright:
# This file is distributed under the same license as the audiotube package.
# Shinjo Park <[email protected]>, 2021.
# Shinjo Park <[email protected]>, 2021, 2022, 2023.
#
msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2022-05-23 00:47+0000\n"
"PO-Revision-Date: 2021-12-08 00:45+0100\n"
"POT-Creation-Date: 2023-04-23 04:10+0000\n"
"PO-Revision-Date: 2023-03-01 00:43+0100\n"
"Last-Translator: Shinjo Park <[email protected]>\n"
"Language-Team: Korean <[email protected]>\n"
"Language: ko\n"
@@ -15,59 +15,93 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Lokalize 21.08.1\n"
"X-Generator: Lokalize 21.12.3\n"
#, kde-format
msgctxt "NAME OF TRANSLATORS"
msgid "Your names"
msgstr "박신조"
#, kde-format
msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails"
msgstr "[email protected]"
#: contents/ui/AlbumPage.qml:19 contents/ui/PlayerFooter.qml:192
#: contents/ui/PlaylistPage.qml:19
#: contents/ui/AlbumPage.qml:26 contents/ui/LibraryPage.qml:37
#: contents/ui/LibraryPage.qml:63 contents/ui/LibraryPage.qml:84
#: contents/ui/LibraryPage.qml:332 contents/ui/LibraryPage.qml:358
#: contents/ui/LibraryPage.qml:379 contents/ui/LocalPlaylistPage.qml:42
#: contents/ui/PlaybackHistory.qml:23 contents/ui/PlaylistPage.qml:31
#, kde-format
msgid "Play"
msgstr "재생"
#: contents/ui/AlbumPage.qml:61 contents/ui/ArtistPage.qml:101
#: contents/ui/PlaylistPage.qml:67
#: contents/ui/AlbumPage.qml:33 contents/ui/ArtistPage.qml:36
#: contents/ui/LibraryPage.qml:44 contents/ui/LibraryPage.qml:69
#: contents/ui/LibraryPage.qml:92 contents/ui/LibraryPage.qml:339
#: contents/ui/LibraryPage.qml:364 contents/ui/LibraryPage.qml:388
#: contents/ui/LocalPlaylistPage.qml:49 contents/ui/MaximizedPlayerPage.qml:891
#: contents/ui/PlaybackHistory.qml:36 contents/ui/PlaylistPage.qml:38
#, kde-format
msgid "Play Next"
msgstr "다음 재생"
msgid "Shuffle"
msgstr "무순서 재생"
#: contents/ui/AlbumPage.qml:66 contents/ui/ArtistPage.qml:107
#: contents/ui/PlaylistPage.qml:72 contents/ui/SearchPage.qml:123
#: contents/ui/AlbumPage.qml:41 contents/ui/LibraryPage.qml:74
#: contents/ui/LibraryPage.qml:100 contents/ui/LibraryPage.qml:369
#: contents/ui/LibraryPage.qml:396 contents/ui/LocalPlaylistPage.qml:55
#: contents/ui/PlaybackHistory.qml:48 contents/ui/PlaylistPage.qml:46
#, fuzzy, kde-format
#| msgid "Add to queue"
msgid "Append to queue"
msgstr "대기열에 추가"
#: contents/ui/AlbumPage.qml:46 contents/ui/ArtistPage.qml:43
#: contents/ui/PlaylistPage.qml:51
#, kde-format
msgid "Add to Playlist"
msgstr "재생 목록에 추가"
msgid "Open in Browser"
msgstr "브라우저로 열기"
#: contents/ui/ArtistPage.qml:39 contents/ui/SearchPage.qml:67
#: contents/ui/AlbumPage.qml:51 contents/ui/ArtistPage.qml:48
#: contents/ui/PlaylistPage.qml:56
#, kde-format
msgid "Share"
msgstr ""
#: contents/ui/AlbumPage.qml:61
#, kde-format
msgid "Album • %1"
msgstr "앨범 • %1"
#: contents/ui/AlbumPage.qml:105 contents/ui/ArtistPage.qml:137
#: contents/ui/LocalPlaylistPage.qml:114 contents/ui/PlaybackHistory.qml:127
#: contents/ui/PlaylistPage.qml:116 contents/ui/SearchPage.qml:130
#, kde-format
msgid "More"
msgstr "더 보기"
#: contents/ui/ArtistPage.qml:31
#, kde-format
msgid "Radio"
msgstr "라디오"
#: contents/ui/ArtistPage.qml:57
#, kde-format
msgid "Artist"
msgstr "아티스트"
#: contents/ui/ArtistPage.qml:79 contents/ui/SearchPage.qml:70
#, 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:55 contents/ui/SearchPage.qml:25
#: contents/ui/ArtistPage.qml:96 contents/ui/SearchPage.qml:26
#, kde-format
msgid "Albums"
msgstr "앨범"
#: contents/ui/ArtistPage.qml:57
#: contents/ui/ArtistPage.qml:98
#, kde-format
msgid "Singles"
msgstr "싱글"
#: contents/ui/ArtistPage.qml:59 contents/ui/SearchPage.qml:31
#: contents/ui/ArtistPage.qml:100 contents/ui/SearchPage.qml:32
#, kde-format
msgid "Songs"
msgstr "곡"
#: contents/ui/ArtistPage.qml:61 contents/ui/SearchPage.qml:33
#: contents/ui/ArtistPage.qml:102 contents/ui/SearchPage.qml:34
#, kde-format
msgid "Videos"
msgstr "비디오"
@@ -82,85 +116,332 @@ msgstr "확인"
msgid "Cancel"
msgstr "취소"
#: contents/ui/LibraryPage.qml:15
#: contents/ui/dialogs/AddPlaylistDialog.qml:17
#, fuzzy, kde-format
#| msgid "Add to Playlist"
msgid "Add playlist"
msgstr "재생 목록에 추가"
#: contents/ui/dialogs/AddPlaylistDialog.qml:23
#: contents/ui/dialogs/RenamePlaylistDialog.qml:24
#, fuzzy, kde-format
#| msgid "Playlist"
msgid "Playlist Title"
msgstr "재생 목록"
#: contents/ui/dialogs/AddPlaylistDialog.qml:28
#: contents/ui/dialogs/RenamePlaylistDialog.qml:30
#, fuzzy, kde-format
#| msgid "Playlists"
msgid "Playlist Description"
msgstr "재생 목록"
#: contents/ui/dialogs/PlaylistDialog.qml:20
#, fuzzy, kde-format
#| msgid "Add to Playlist"
msgid "Add Song to Playlist"
msgstr "재생 목록에 추가"
#: contents/ui/dialogs/PlaylistDialog.qml:29
#: contents/ui/LocalPlaylistsPage.qml:90
#, fuzzy, kde-format
#| msgid "Playlist"
msgid "New Playlist"
msgstr "재생 목록"
#: contents/ui/dialogs/RenamePlaylistDialog.qml:18
#, fuzzy, kde-format
#| msgid "Clear Playlist"
msgid "Rename playlist"
msgstr "재생 목록 비우기"
#: contents/ui/LibraryPage.qml:30 contents/ui/LibraryPage.qml:123
#: contents/ui/NavigationBar.qml:48 contents/ui/NavigationBar.qml:54
#: contents/ui/Sidebar.qml:131 contents/ui/Sidebar.qml:138
#, kde-format
msgid "Favourites"
msgstr ""
msgstr "책갈피"
#: contents/ui/LibraryPage.qml:67
#: contents/ui/LibraryPage.qml:119 contents/ui/LibraryPage.qml:416
#: contents/ui/LibraryPage.qml:623
#, kde-format
msgid "Show All"
msgstr "모두 표시"
#: contents/ui/LibraryPage.qml:147
#, kde-format
msgid "No Favourites Yet"
msgstr "책갈피에 등록된 항목 없음"
#: contents/ui/LibraryPage.qml:325
#, kde-format
msgid "Most played"
msgstr ""
msgstr "가장 많이 재생됨"
#: contents/ui/main.qml:94
#: contents/ui/LibraryPage.qml:420 contents/ui/NavigationBar.qml:61
#: contents/ui/NavigationBar.qml:67 contents/ui/Sidebar.qml:150
#: contents/ui/Sidebar.qml:157
#, kde-format
msgid "AudioTube"
msgstr "AudioTube"
msgid "Played Songs"
msgstr "재생한 노래"
#: contents/ui/PlayerFooter.qml:124
#: contents/ui/LibraryPage.qml:444
#, kde-format
msgid "Remove Track"
msgstr "트랙 삭제"
msgid "No Songs Played Yet"
msgstr "재생한 곡 없음"
#: contents/ui/PlayerFooter.qml:141
#, kde-format
msgid "Clear"
msgstr "지우기"
#: contents/ui/PlayerFooter.qml:146 contents/ui/PlaylistPage.qml:26
#, kde-format
msgid "Shuffle"
msgstr "무순서 재생"
#: contents/ui/PlayerFooter.qml:192
#, kde-format
msgid "Pause"
msgstr "일시 정지"
#: contents/ui/PlayerFooter.qml:222
#, kde-format
msgid "No media playing"
msgstr "재생 중인 미디어 없음"
#: contents/ui/PlayerFooter.qml:266
#, kde-format
msgid "Expand"
msgstr "확장"
#: contents/ui/SearchPage.qml:27
#, kde-format
msgid "Artists"
msgstr "아티스트"
#: contents/ui/SearchPage.qml:29
#: contents/ui/LibraryPage.qml:611 contents/ui/LocalPlaylistsPage.qml:18
#: contents/ui/LocalPlaylistsPage.qml:78 contents/ui/NavigationBar.qml:75
#: contents/ui/SearchPage.qml:30 contents/ui/Sidebar.qml:167
#, kde-format
msgid "Playlists"
msgstr "재생 목록"
#: contents/ui/SearchPage.qml:36
#, kde-format
msgid "Unknown"
msgstr "알 수 없음"
#: contents/ui/LibraryPage.qml:650
#, fuzzy, kde-format
#| msgid "Playlists"
msgid "No Playlists Yet"
msgstr "재생 목록"
#: contents/ui/SearchPage.qml:117
#: contents/ui/LibraryPage.qml:670 contents/ui/LibraryPage.qml:692
#: contents/ui/LocalPlaylistsPage.qml:33 contents/ui/LocalPlaylistsPage.qml:55
#, kde-format
msgid "Play next"
msgstr "다음 재생"
msgid "Rename"
msgstr ""
#: contents/ui/SearchPage.qml:129
#: contents/ui/LibraryPage.qml:679 contents/ui/LibraryPage.qml:700
#: contents/ui/LocalPlaylistsPage.qml:42 contents/ui/LocalPlaylistsPage.qml:63
#, kde-format
msgid "Radio"
msgstr "라디오"
msgid "Delete"
msgstr ""
#: contents/ui/SearchPage.qml:147
#: contents/ui/LocalPlaylistPage.qml:19
#, fuzzy, kde-format
#| msgid "Remove from History"
msgid "Remove from Playlist"
msgstr "과거 기록에서 삭제"
#: contents/ui/LocalPlaylistPage.qml:29
#, kde-format
msgid "Find music on YouTube Music"
msgstr "YouTube Music에서 음악 찾기"
msgid "This playlist is still empty"
msgstr ""
#: contents/ui/SearchPage.qml:150
#: contents/ui/main.qml:109 main.cpp:59
#, kde-format
msgid "AudioTube"
msgstr "AudioTube"
#: contents/ui/MaximizedPlayerPage.qml:196
#: contents/ui/MinimizedPlayerControls.qml:93
#, kde-format
msgid "No media playing"
msgstr "재생 중인 미디어 없음"
#: contents/ui/MaximizedPlayerPage.qml:571
#, kde-format
msgid "%1%"
msgstr "%1%"
#: contents/ui/MaximizedPlayerPage.qml:839
#: contents/ui/MaximizedPlayerPage.qml:1016
#, kde-format
msgid "Remove Track"
msgstr "트랙 삭제"
#: contents/ui/MaximizedPlayerPage.qml:870
#, kde-format
msgid "Clear Playlist"
msgstr "재생 목록 비우기"
#: contents/ui/MaximizedPlayerPage.qml:917
#, kde-format
msgid "Upcoming Songs"
msgstr ""
#: contents/ui/NavigationBar.qml:24 contents/ui/Sidebar.qml:100
#, kde-format
msgid "Library"
msgstr "라이브러리"
#: contents/ui/NavigationBar.qml:36 contents/ui/Sidebar.qml:116
#, kde-format
msgid "Search"
msgstr "검색"
#: contents/ui/PlaybackHistory.qml:15
#, kde-format
msgid "Unknown list of songs"
msgstr "알 수 없는 노래 목록"
#: contents/ui/PlaybackHistory.qml:74
#, kde-format
msgid "No songs here yet"
msgstr "목록에 등록된 곡 없음"
#: contents/ui/PlaylistPage.qml:67
#, kde-format
msgid "Playlist"
msgstr "재생 목록"
#: contents/ui/SearchHistoryPage.qml:86 contents/ui/SearchWithDropdown.qml:412
#, kde-format
msgid "remove from search history"
msgstr "검색 기록에서 삭제"
#: contents/ui/SearchPage.qml:16
#, kde-format
msgid "Previous Searches:"
msgstr "이전 검색:"
#: contents/ui/SearchPage.qml:28
#, kde-format
msgid "Artists"
msgstr "아티스트"
#: contents/ui/SearchPage.qml:37
#, kde-format
msgid "Unknown"
msgstr "알 수 없음"
#: contents/ui/SearchWithDropdown.qml:359
#, kde-format
msgid "No matching previous searches"
msgstr "일치하는 이전 검색 없음"
#: contents/ui/ShareMenu.qml:39
#, kde-format
msgid "Share to"
msgstr ""
#: contents/ui/ShareMenu.qml:49 contents/ui/ShareMenu.qml:99
#, kde-format
msgid "Copy Link"
msgstr ""
#: contents/ui/ShareMenu.qml:54 contents/ui/ShareMenu.qml:104
#, kde-format
msgid "Link copied to clipboard"
msgstr ""
#: contents/ui/Sidebar.qml:189
#, kde-format
msgid "About"
msgstr "정보"
#: contents/ui/Sidebar.qml:203
#, kde-format
msgid "Collapse Sidebar"
msgstr "사이드바 접기"
#: contents/ui/SongMenu.qml:107 contents/ui/SongMenu.qml:205
#, kde-format
msgid "Play Next"
msgstr "다음 재생"
#: contents/ui/SongMenu.qml:116 contents/ui/SongMenu.qml:211
#, kde-format
msgid "Add to queue"
msgstr "대기열에 추가"
#: contents/ui/SongMenu.qml:126 contents/ui/SongMenu.qml:221
#, kde-format
msgid "Remove Favourite"
msgstr "책갈피 삭제"
#: contents/ui/SongMenu.qml:126 contents/ui/SongMenu.qml:221
#, kde-format
msgid "Add Favourite"
msgstr "책갈피에 추가"
#: contents/ui/SongMenu.qml:143 contents/ui/SongMenu.qml:235
#, kde-format
msgid "Remove from History"
msgstr "과거 기록에서 삭제"
#: contents/ui/SongMenu.qml:156 contents/ui/SongMenu.qml:244
#, fuzzy, kde-format
#| msgid "Add to Playlist"
msgid "Add to playlist"
msgstr "재생 목록에 추가"
#: contents/ui/SongMenu.qml:183 contents/ui/SongMenu.qml:269
#, fuzzy, kde-format
#| msgid "Favourite Songs"
msgid "Share Song"
msgstr "책갈피에 등록된 노래"
#: main.cpp:61
#, kde-format
msgid "YouTube Music Player"
msgstr "YouTube Music 재생기"
#: main.cpp:63
#, kde-format
msgid "© 2021-2023 Jonah Brüchert, 2021-2023 KDE Community"
msgstr "© 2021-2023 Jonah Brüchert, 2021-2023 KDE Community"
#: main.cpp:64
#, kde-format
msgid "Jonah Brüchert"
msgstr "Jonah Brüchert"
#: main.cpp:64
#, kde-format
msgid "Maintainer"
msgstr "관리자"
#: main.cpp:65
#, kde-format
msgid "Mathis Brüchert"
msgstr "Mathis Brüchert"
#: main.cpp:65
#, kde-format
msgid "Designer"
msgstr "디자이너"
#: main.cpp:66
#, kde-format
msgctxt "NAME OF TRANSLATORS"
msgid "Your names"
msgstr "박신조"
#: main.cpp:66
#, kde-format
msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails"
msgstr "[email protected]"
#: main.cpp:71
#, kde-format
msgid "Unofficial API for YouTube Music"
msgstr "YouTube Music 비공식 API"
#, fuzzy
#~| msgid "Played Songs"
#~ msgid "played Songs"
#~ msgstr "재생한 노래"
#~ msgid "Now Playing"
#~ msgstr "지금 재생 중"
#~ msgid "Queue"
#~ msgstr "대기열에 추가"
#~ msgid "Back"
#~ msgstr "뒤로"
#~ msgid "Play next"
#~ msgstr "다음 재생"
#~ msgid "Clear"
#~ msgstr "지우기"
#~ msgid "Pause"
#~ msgstr "일시 정지"
#~ msgid "Expand"
#~ msgstr "확장"
#~ msgid "Play only Audio"
#~ msgstr "오디오만 재생"
+408
View File
@@ -0,0 +1,408 @@
# Lithuanian translations for audiotube package.
# Copyright (C) 2023 This file is copyright:
# This file is distributed under the same license as the audiotube package.
# Automatically generated, 2023.
#
msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2023-04-23 04:10+0000\n"
"PO-Revision-Date: 2023-02-23 00:57+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
"Language: lt\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : n%10>=2 && (n%100<10 || n"
"%100>=20) ? 1 : n%10==0 || (n%100>10 && n%100<20) ? 2 : 3);\n"
#: contents/ui/AlbumPage.qml:26 contents/ui/LibraryPage.qml:37
#: contents/ui/LibraryPage.qml:63 contents/ui/LibraryPage.qml:84
#: contents/ui/LibraryPage.qml:332 contents/ui/LibraryPage.qml:358
#: contents/ui/LibraryPage.qml:379 contents/ui/LocalPlaylistPage.qml:42
#: contents/ui/PlaybackHistory.qml:23 contents/ui/PlaylistPage.qml:31
#, kde-format
msgid "Play"
msgstr ""
#: contents/ui/AlbumPage.qml:33 contents/ui/ArtistPage.qml:36
#: contents/ui/LibraryPage.qml:44 contents/ui/LibraryPage.qml:69
#: contents/ui/LibraryPage.qml:92 contents/ui/LibraryPage.qml:339
#: contents/ui/LibraryPage.qml:364 contents/ui/LibraryPage.qml:388
#: contents/ui/LocalPlaylistPage.qml:49 contents/ui/MaximizedPlayerPage.qml:891
#: contents/ui/PlaybackHistory.qml:36 contents/ui/PlaylistPage.qml:38
#, kde-format
msgid "Shuffle"
msgstr ""
#: contents/ui/AlbumPage.qml:41 contents/ui/LibraryPage.qml:74
#: contents/ui/LibraryPage.qml:100 contents/ui/LibraryPage.qml:369
#: contents/ui/LibraryPage.qml:396 contents/ui/LocalPlaylistPage.qml:55
#: contents/ui/PlaybackHistory.qml:48 contents/ui/PlaylistPage.qml:46
#, kde-format
msgid "Append to queue"
msgstr ""
#: contents/ui/AlbumPage.qml:46 contents/ui/ArtistPage.qml:43
#: contents/ui/PlaylistPage.qml:51
#, kde-format
msgid "Open in Browser"
msgstr ""
#: contents/ui/AlbumPage.qml:51 contents/ui/ArtistPage.qml:48
#: contents/ui/PlaylistPage.qml:56
#, kde-format
msgid "Share"
msgstr ""
#: contents/ui/AlbumPage.qml:61
#, kde-format
msgid "Album • %1"
msgstr ""
#: contents/ui/AlbumPage.qml:105 contents/ui/ArtistPage.qml:137
#: contents/ui/LocalPlaylistPage.qml:114 contents/ui/PlaybackHistory.qml:127
#: contents/ui/PlaylistPage.qml:116 contents/ui/SearchPage.qml:130
#, kde-format
msgid "More"
msgstr ""
#: contents/ui/ArtistPage.qml:31
#, kde-format
msgid "Radio"
msgstr ""
#: contents/ui/ArtistPage.qml:57
#, kde-format
msgid "Artist"
msgstr ""
#: contents/ui/ArtistPage.qml:79 contents/ui/SearchPage.qml:70
#, kde-format
msgid ""
"Video playback is not supported yet. Do you want to play only the audio of "
"\"%1\"?"
msgstr ""
#: contents/ui/ArtistPage.qml:96 contents/ui/SearchPage.qml:26
#, kde-format
msgid "Albums"
msgstr ""
#: contents/ui/ArtistPage.qml:98
#, kde-format
msgid "Singles"
msgstr ""
#: contents/ui/ArtistPage.qml:100 contents/ui/SearchPage.qml:32
#, kde-format
msgid "Songs"
msgstr ""
#: contents/ui/ArtistPage.qml:102 contents/ui/SearchPage.qml:34
#, 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/dialogs/AddPlaylistDialog.qml:17
#, kde-format
msgid "Add playlist"
msgstr ""
#: contents/ui/dialogs/AddPlaylistDialog.qml:23
#: contents/ui/dialogs/RenamePlaylistDialog.qml:24
#, kde-format
msgid "Playlist Title"
msgstr ""
#: contents/ui/dialogs/AddPlaylistDialog.qml:28
#: contents/ui/dialogs/RenamePlaylistDialog.qml:30
#, kde-format
msgid "Playlist Description"
msgstr ""
#: contents/ui/dialogs/PlaylistDialog.qml:20
#, kde-format
msgid "Add Song to Playlist"
msgstr ""
#: contents/ui/dialogs/PlaylistDialog.qml:29
#: contents/ui/LocalPlaylistsPage.qml:90
#, kde-format
msgid "New Playlist"
msgstr ""
#: contents/ui/dialogs/RenamePlaylistDialog.qml:18
#, kde-format
msgid "Rename playlist"
msgstr ""
#: contents/ui/LibraryPage.qml:30 contents/ui/LibraryPage.qml:123
#: contents/ui/NavigationBar.qml:48 contents/ui/NavigationBar.qml:54
#: contents/ui/Sidebar.qml:131 contents/ui/Sidebar.qml:138
#, kde-format
msgid "Favourites"
msgstr ""
#: contents/ui/LibraryPage.qml:119 contents/ui/LibraryPage.qml:416
#: contents/ui/LibraryPage.qml:623
#, kde-format
msgid "Show All"
msgstr ""
#: contents/ui/LibraryPage.qml:147
#, kde-format
msgid "No Favourites Yet"
msgstr ""
#: contents/ui/LibraryPage.qml:325
#, kde-format
msgid "Most played"
msgstr ""
#: contents/ui/LibraryPage.qml:420 contents/ui/NavigationBar.qml:61
#: contents/ui/NavigationBar.qml:67 contents/ui/Sidebar.qml:150
#: contents/ui/Sidebar.qml:157
#, kde-format
msgid "Played Songs"
msgstr ""
#: contents/ui/LibraryPage.qml:444
#, kde-format
msgid "No Songs Played Yet"
msgstr ""
#: contents/ui/LibraryPage.qml:611 contents/ui/LocalPlaylistsPage.qml:18
#: contents/ui/LocalPlaylistsPage.qml:78 contents/ui/NavigationBar.qml:75
#: contents/ui/SearchPage.qml:30 contents/ui/Sidebar.qml:167
#, kde-format
msgid "Playlists"
msgstr ""
#: contents/ui/LibraryPage.qml:650
#, kde-format
msgid "No Playlists Yet"
msgstr ""
#: contents/ui/LibraryPage.qml:670 contents/ui/LibraryPage.qml:692
#: contents/ui/LocalPlaylistsPage.qml:33 contents/ui/LocalPlaylistsPage.qml:55
#, kde-format
msgid "Rename"
msgstr ""
#: contents/ui/LibraryPage.qml:679 contents/ui/LibraryPage.qml:700
#: contents/ui/LocalPlaylistsPage.qml:42 contents/ui/LocalPlaylistsPage.qml:63
#, kde-format
msgid "Delete"
msgstr ""
#: contents/ui/LocalPlaylistPage.qml:19
#, kde-format
msgid "Remove from Playlist"
msgstr ""
#: contents/ui/LocalPlaylistPage.qml:29
#, kde-format
msgid "This playlist is still empty"
msgstr ""
#: contents/ui/main.qml:109 main.cpp:59
#, kde-format
msgid "AudioTube"
msgstr ""
#: contents/ui/MaximizedPlayerPage.qml:196
#: contents/ui/MinimizedPlayerControls.qml:93
#, kde-format
msgid "No media playing"
msgstr ""
#: contents/ui/MaximizedPlayerPage.qml:571
#, kde-format
msgid "%1%"
msgstr ""
#: contents/ui/MaximizedPlayerPage.qml:839
#: contents/ui/MaximizedPlayerPage.qml:1016
#, kde-format
msgid "Remove Track"
msgstr ""
#: contents/ui/MaximizedPlayerPage.qml:870
#, kde-format
msgid "Clear Playlist"
msgstr ""
#: contents/ui/MaximizedPlayerPage.qml:917
#, kde-format
msgid "Upcoming Songs"
msgstr ""
#: contents/ui/NavigationBar.qml:24 contents/ui/Sidebar.qml:100
#, kde-format
msgid "Library"
msgstr ""
#: contents/ui/NavigationBar.qml:36 contents/ui/Sidebar.qml:116
#, kde-format
msgid "Search"
msgstr ""
#: contents/ui/PlaybackHistory.qml:15
#, kde-format
msgid "Unknown list of songs"
msgstr ""
#: contents/ui/PlaybackHistory.qml:74
#, kde-format
msgid "No songs here yet"
msgstr ""
#: contents/ui/PlaylistPage.qml:67
#, kde-format
msgid "Playlist"
msgstr ""
#: contents/ui/SearchHistoryPage.qml:86 contents/ui/SearchWithDropdown.qml:412
#, kde-format
msgid "remove from search history"
msgstr ""
#: contents/ui/SearchPage.qml:16
#, kde-format
msgid "Previous Searches:"
msgstr ""
#: contents/ui/SearchPage.qml:28
#, kde-format
msgid "Artists"
msgstr ""
#: contents/ui/SearchPage.qml:37
#, kde-format
msgid "Unknown"
msgstr ""
#: contents/ui/SearchWithDropdown.qml:359
#, kde-format
msgid "No matching previous searches"
msgstr ""
#: contents/ui/ShareMenu.qml:39
#, kde-format
msgid "Share to"
msgstr ""
#: contents/ui/ShareMenu.qml:49 contents/ui/ShareMenu.qml:99
#, kde-format
msgid "Copy Link"
msgstr ""
#: contents/ui/ShareMenu.qml:54 contents/ui/ShareMenu.qml:104
#, kde-format
msgid "Link copied to clipboard"
msgstr ""
#: contents/ui/Sidebar.qml:189
#, kde-format
msgid "About"
msgstr ""
#: contents/ui/Sidebar.qml:203
#, kde-format
msgid "Collapse Sidebar"
msgstr ""
#: contents/ui/SongMenu.qml:107 contents/ui/SongMenu.qml:205
#, kde-format
msgid "Play Next"
msgstr ""
#: contents/ui/SongMenu.qml:116 contents/ui/SongMenu.qml:211
#, kde-format
msgid "Add to queue"
msgstr ""
#: contents/ui/SongMenu.qml:126 contents/ui/SongMenu.qml:221
#, kde-format
msgid "Remove Favourite"
msgstr ""
#: contents/ui/SongMenu.qml:126 contents/ui/SongMenu.qml:221
#, kde-format
msgid "Add Favourite"
msgstr ""
#: contents/ui/SongMenu.qml:143 contents/ui/SongMenu.qml:235
#, kde-format
msgid "Remove from History"
msgstr ""
#: contents/ui/SongMenu.qml:156 contents/ui/SongMenu.qml:244
#, kde-format
msgid "Add to playlist"
msgstr ""
#: contents/ui/SongMenu.qml:183 contents/ui/SongMenu.qml:269
#, kde-format
msgid "Share Song"
msgstr ""
#: main.cpp:61
#, kde-format
msgid "YouTube Music Player"
msgstr ""
#: main.cpp:63
#, kde-format
msgid "© 2021-2023 Jonah Brüchert, 2021-2023 KDE Community"
msgstr ""
#: main.cpp:64
#, kde-format
msgid "Jonah Brüchert"
msgstr ""
#: main.cpp:64
#, kde-format
msgid "Maintainer"
msgstr ""
#: main.cpp:65
#, kde-format
msgid "Mathis Brüchert"
msgstr ""
#: main.cpp:65
#, kde-format
msgid "Designer"
msgstr ""
#: main.cpp:66
#, kde-format
msgctxt "NAME OF TRANSLATORS"
msgid "Your names"
msgstr ""
#: main.cpp:66
#, kde-format
msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails"
msgstr ""
#: main.cpp:71
#, kde-format
msgid "Unofficial API for YouTube Music"
msgstr ""
+357 -83
View File
@@ -1,13 +1,13 @@
# Copyright (C) YEAR This file is copyright:
# This file is distributed under the same license as the audiotube package.
#
# Freek de Kruijf <[email protected]>, 2021.
# Freek de Kruijf <[email protected]>, 2021, 2022, 2023.
msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2022-05-23 00:47+0000\n"
"PO-Revision-Date: 2021-12-05 16:48+0100\n"
"POT-Creation-Date: 2023-04-23 04:10+0000\n"
"PO-Revision-Date: 2023-03-09 10:28+0100\n"
"Last-Translator: Freek de Kruijf <[email protected]>\n"
"Language-Team: \n"
"Language: nl\n"
@@ -15,37 +15,70 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Lokalize 21.08.3\n"
"X-Generator: Lokalize 22.12.3\n"
#, kde-format
msgctxt "NAME OF TRANSLATORS"
msgid "Your names"
msgstr "Freek de Kruijf - 2021"
#, kde-format
msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails"
msgstr "[email protected]"
#: contents/ui/AlbumPage.qml:19 contents/ui/PlayerFooter.qml:192
#: contents/ui/PlaylistPage.qml:19
#: contents/ui/AlbumPage.qml:26 contents/ui/LibraryPage.qml:37
#: contents/ui/LibraryPage.qml:63 contents/ui/LibraryPage.qml:84
#: contents/ui/LibraryPage.qml:332 contents/ui/LibraryPage.qml:358
#: contents/ui/LibraryPage.qml:379 contents/ui/LocalPlaylistPage.qml:42
#: contents/ui/PlaybackHistory.qml:23 contents/ui/PlaylistPage.qml:31
#, kde-format
msgid "Play"
msgstr "Afspelen"
#: contents/ui/AlbumPage.qml:61 contents/ui/ArtistPage.qml:101
#: contents/ui/PlaylistPage.qml:67
#: contents/ui/AlbumPage.qml:33 contents/ui/ArtistPage.qml:36
#: contents/ui/LibraryPage.qml:44 contents/ui/LibraryPage.qml:69
#: contents/ui/LibraryPage.qml:92 contents/ui/LibraryPage.qml:339
#: contents/ui/LibraryPage.qml:364 contents/ui/LibraryPage.qml:388
#: contents/ui/LocalPlaylistPage.qml:49 contents/ui/MaximizedPlayerPage.qml:891
#: contents/ui/PlaybackHistory.qml:36 contents/ui/PlaylistPage.qml:38
#, kde-format
msgid "Play Next"
msgstr "Volgende afspelen"
msgid "Shuffle"
msgstr "Willekeurig afspelen"
#: contents/ui/AlbumPage.qml:66 contents/ui/ArtistPage.qml:107
#: contents/ui/PlaylistPage.qml:72 contents/ui/SearchPage.qml:123
#: contents/ui/AlbumPage.qml:41 contents/ui/LibraryPage.qml:74
#: contents/ui/LibraryPage.qml:100 contents/ui/LibraryPage.qml:369
#: contents/ui/LibraryPage.qml:396 contents/ui/LocalPlaylistPage.qml:55
#: contents/ui/PlaybackHistory.qml:48 contents/ui/PlaylistPage.qml:46
#, kde-format
msgid "Add to Playlist"
msgstr "Aan afspeellijst toevoegen"
msgid "Append to queue"
msgstr "Achter aan wachtrij toevoegen"
#: contents/ui/ArtistPage.qml:39 contents/ui/SearchPage.qml:67
#: contents/ui/AlbumPage.qml:46 contents/ui/ArtistPage.qml:43
#: contents/ui/PlaylistPage.qml:51
#, kde-format
msgid "Open in Browser"
msgstr "In browser openen"
#: contents/ui/AlbumPage.qml:51 contents/ui/ArtistPage.qml:48
#: contents/ui/PlaylistPage.qml:56
#, kde-format
msgid "Share"
msgstr "Delen"
#: contents/ui/AlbumPage.qml:61
#, kde-format
msgid "Album • %1"
msgstr "Album • %1"
#: contents/ui/AlbumPage.qml:105 contents/ui/ArtistPage.qml:137
#: contents/ui/LocalPlaylistPage.qml:114 contents/ui/PlaybackHistory.qml:127
#: contents/ui/PlaylistPage.qml:116 contents/ui/SearchPage.qml:130
#, kde-format
msgid "More"
msgstr "Meer"
#: contents/ui/ArtistPage.qml:31
#, kde-format
msgid "Radio"
msgstr "Radio"
#: contents/ui/ArtistPage.qml:57
#, kde-format
msgid "Artist"
msgstr "Artiest"
#: contents/ui/ArtistPage.qml:79 contents/ui/SearchPage.qml:70
#, kde-format
msgid ""
"Video playback is not supported yet. Do you want to play only the audio of "
@@ -54,22 +87,22 @@ msgstr ""
"Afspelen van video wordt nog niet ondersteund. Wilt u alleen het geluid van "
"\"%1\" afspelen?"
#: contents/ui/ArtistPage.qml:55 contents/ui/SearchPage.qml:25
#: contents/ui/ArtistPage.qml:96 contents/ui/SearchPage.qml:26
#, kde-format
msgid "Albums"
msgstr "Albums"
#: contents/ui/ArtistPage.qml:57
#: contents/ui/ArtistPage.qml:98
#, kde-format
msgid "Singles"
msgstr "Enkelvoudige"
#: contents/ui/ArtistPage.qml:59 contents/ui/SearchPage.qml:31
#: contents/ui/ArtistPage.qml:100 contents/ui/SearchPage.qml:32
#, kde-format
msgid "Songs"
msgstr "Songs"
#: contents/ui/ArtistPage.qml:61 contents/ui/SearchPage.qml:33
#: contents/ui/ArtistPage.qml:102 contents/ui/SearchPage.qml:34
#, kde-format
msgid "Videos"
msgstr "Video's"
@@ -84,85 +117,326 @@ msgstr "OK"
msgid "Cancel"
msgstr "Annuleren"
#: contents/ui/LibraryPage.qml:15
#: contents/ui/dialogs/AddPlaylistDialog.qml:17
#, kde-format
msgid "Add playlist"
msgstr "Aan afspeellijst toevoegen"
#: contents/ui/dialogs/AddPlaylistDialog.qml:23
#: contents/ui/dialogs/RenamePlaylistDialog.qml:24
#, kde-format
msgid "Playlist Title"
msgstr "Titel van afspeellijst"
#: contents/ui/dialogs/AddPlaylistDialog.qml:28
#: contents/ui/dialogs/RenamePlaylistDialog.qml:30
#, kde-format
msgid "Playlist Description"
msgstr "Beschrijving van afspeellijst"
#: contents/ui/dialogs/PlaylistDialog.qml:20
#, kde-format
msgid "Add Song to Playlist"
msgstr "Song aan afspeellijst toevoegen"
#: contents/ui/dialogs/PlaylistDialog.qml:29
#: contents/ui/LocalPlaylistsPage.qml:90
#, kde-format
msgid "New Playlist"
msgstr "Nieuwe afspeellijst"
#: contents/ui/dialogs/RenamePlaylistDialog.qml:18
#, kde-format
msgid "Rename playlist"
msgstr "Afspeellijst hernoemen"
#: contents/ui/LibraryPage.qml:30 contents/ui/LibraryPage.qml:123
#: contents/ui/NavigationBar.qml:48 contents/ui/NavigationBar.qml:54
#: contents/ui/Sidebar.qml:131 contents/ui/Sidebar.qml:138
#, kde-format
msgid "Favourites"
msgstr ""
msgstr "Favorieten"
#: contents/ui/LibraryPage.qml:67
#: contents/ui/LibraryPage.qml:119 contents/ui/LibraryPage.qml:416
#: contents/ui/LibraryPage.qml:623
#, kde-format
msgid "Show All"
msgstr "Alles tonen"
#: contents/ui/LibraryPage.qml:147
#, kde-format
msgid "No Favourites Yet"
msgstr "Nog geen favorieten"
#: contents/ui/LibraryPage.qml:325
#, kde-format
msgid "Most played"
msgstr ""
msgstr "Meest afgespeeld"
#: contents/ui/main.qml:94
#: contents/ui/LibraryPage.qml:420 contents/ui/NavigationBar.qml:61
#: contents/ui/NavigationBar.qml:67 contents/ui/Sidebar.qml:150
#: contents/ui/Sidebar.qml:157
#, kde-format
msgid "AudioTube"
msgstr "AudioTube"
msgid "Played Songs"
msgstr "Afgespeelde songs"
#: contents/ui/PlayerFooter.qml:124
#: contents/ui/LibraryPage.qml:444
#, kde-format
msgid "Remove Track"
msgstr "Track verwijderen"
msgid "No Songs Played Yet"
msgstr "Nog geen songs afgespeeld"
#: contents/ui/PlayerFooter.qml:141
#, kde-format
msgid "Clear"
msgstr "Wissen"
#: contents/ui/PlayerFooter.qml:146 contents/ui/PlaylistPage.qml:26
#, kde-format
msgid "Shuffle"
msgstr "Willekeurig afspelen"
#: contents/ui/PlayerFooter.qml:192
#, kde-format
msgid "Pause"
msgstr "Pauzeren"
#: contents/ui/PlayerFooter.qml:222
#, kde-format
msgid "No media playing"
msgstr "Er speelt geen medium"
#: contents/ui/PlayerFooter.qml:266
#, kde-format
msgid "Expand"
msgstr "Uitbreiden"
#: contents/ui/SearchPage.qml:27
#, kde-format
msgid "Artists"
msgstr "Artiesten"
#: contents/ui/SearchPage.qml:29
#: contents/ui/LibraryPage.qml:611 contents/ui/LocalPlaylistsPage.qml:18
#: contents/ui/LocalPlaylistsPage.qml:78 contents/ui/NavigationBar.qml:75
#: contents/ui/SearchPage.qml:30 contents/ui/Sidebar.qml:167
#, kde-format
msgid "Playlists"
msgstr "Afspeellijsten"
#: contents/ui/SearchPage.qml:36
#: contents/ui/LibraryPage.qml:650
#, kde-format
msgid "Unknown"
msgstr "Onbekend"
msgid "No Playlists Yet"
msgstr "Nog geen afspeellijst"
#: contents/ui/SearchPage.qml:117
#: contents/ui/LibraryPage.qml:670 contents/ui/LibraryPage.qml:692
#: contents/ui/LocalPlaylistsPage.qml:33 contents/ui/LocalPlaylistsPage.qml:55
#, kde-format
msgid "Play next"
msgstr "Volgende afspelen"
msgid "Rename"
msgstr "Hernoemen"
#: contents/ui/SearchPage.qml:129
#: contents/ui/LibraryPage.qml:679 contents/ui/LibraryPage.qml:700
#: contents/ui/LocalPlaylistsPage.qml:42 contents/ui/LocalPlaylistsPage.qml:63
#, kde-format
msgid "Radio"
msgstr "Radio"
msgid "Delete"
msgstr "Verwijderen"
#: contents/ui/SearchPage.qml:147
#: contents/ui/LocalPlaylistPage.qml:19
#, kde-format
msgid "Find music on YouTube Music"
msgstr "Muziek zoeken op YouTube Music"
msgid "Remove from Playlist"
msgstr "Uit afspeellijst verwijderen"
#: contents/ui/SearchPage.qml:150
#: contents/ui/LocalPlaylistPage.qml:29
#, kde-format
msgid "This playlist is still empty"
msgstr "Deze afspeellijst is nog leeg"
#: contents/ui/main.qml:109 main.cpp:59
#, kde-format
msgid "AudioTube"
msgstr "AudioTube"
#: contents/ui/MaximizedPlayerPage.qml:196
#: contents/ui/MinimizedPlayerControls.qml:93
#, kde-format
msgid "No media playing"
msgstr "Er speelt geen medium"
#: contents/ui/MaximizedPlayerPage.qml:571
#, kde-format
msgid "%1%"
msgstr "%1%"
#: contents/ui/MaximizedPlayerPage.qml:839
#: contents/ui/MaximizedPlayerPage.qml:1016
#, kde-format
msgid "Remove Track"
msgstr "Track verwijderen"
#: contents/ui/MaximizedPlayerPage.qml:870
#, kde-format
msgid "Clear Playlist"
msgstr "Afspeellijst wissen"
#: contents/ui/MaximizedPlayerPage.qml:917
#, kde-format
msgid "Upcoming Songs"
msgstr "Aankomende songs"
#: contents/ui/NavigationBar.qml:24 contents/ui/Sidebar.qml:100
#, kde-format
msgid "Library"
msgstr "Bibliotheek"
#: contents/ui/NavigationBar.qml:36 contents/ui/Sidebar.qml:116
#, kde-format
msgid "Search"
msgstr "Zoeken"
#: contents/ui/PlaybackHistory.qml:15
#, kde-format
msgid "Unknown list of songs"
msgstr "Onbekende lijst met songs"
#: contents/ui/PlaybackHistory.qml:74
#, kde-format
msgid "No songs here yet"
msgstr "Er zijn hier nog geen songs"
#: contents/ui/PlaylistPage.qml:67
#, kde-format
msgid "Playlist"
msgstr "Afspeellijst"
#: contents/ui/SearchHistoryPage.qml:86 contents/ui/SearchWithDropdown.qml:412
#, kde-format
msgid "remove from search history"
msgstr "uit zoekgeschiedenis verwijderen"
#: contents/ui/SearchPage.qml:16
#, kde-format
msgid "Previous Searches:"
msgstr "Vorige zoekopdrachten:"
#: contents/ui/SearchPage.qml:28
#, kde-format
msgid "Artists"
msgstr "Artiesten"
#: contents/ui/SearchPage.qml:37
#, kde-format
msgid "Unknown"
msgstr "Onbekend"
#: contents/ui/SearchWithDropdown.qml:359
#, kde-format
msgid "No matching previous searches"
msgstr "Geen overeenkomende vorige zoekopdrachten"
#: contents/ui/ShareMenu.qml:39
#, kde-format
msgid "Share to"
msgstr "Delen (share) naar"
#: contents/ui/ShareMenu.qml:49 contents/ui/ShareMenu.qml:99
#, kde-format
msgid "Copy Link"
msgstr "Koppeling kopiëren"
#: contents/ui/ShareMenu.qml:54 contents/ui/ShareMenu.qml:104
#, kde-format
msgid "Link copied to clipboard"
msgstr "Koppeling gekopieerd naar klembord"
#: contents/ui/Sidebar.qml:189
#, kde-format
msgid "About"
msgstr "Info over"
#: contents/ui/Sidebar.qml:203
#, kde-format
msgid "Collapse Sidebar"
msgstr "Zijbalk invouwen"
#: contents/ui/SongMenu.qml:107 contents/ui/SongMenu.qml:205
#, kde-format
msgid "Play Next"
msgstr "Volgende afspelen"
#: contents/ui/SongMenu.qml:116 contents/ui/SongMenu.qml:211
#, kde-format
msgid "Add to queue"
msgstr "Aan wachtrij toevoegen"
#: contents/ui/SongMenu.qml:126 contents/ui/SongMenu.qml:221
#, kde-format
msgid "Remove Favourite"
msgstr "Favoriet verwijderen"
#: contents/ui/SongMenu.qml:126 contents/ui/SongMenu.qml:221
#, kde-format
msgid "Add Favourite"
msgstr "Favoriet toevoegen"
#: contents/ui/SongMenu.qml:143 contents/ui/SongMenu.qml:235
#, kde-format
msgid "Remove from History"
msgstr "Uit geschiedenis verwijderen"
#: contents/ui/SongMenu.qml:156 contents/ui/SongMenu.qml:244
#, kde-format
msgid "Add to playlist"
msgstr "Aan afspeellijst toevoegen"
#: contents/ui/SongMenu.qml:183 contents/ui/SongMenu.qml:269
#, kde-format
msgid "Share Song"
msgstr "Songs delen"
#: main.cpp:61
#, kde-format
msgid "YouTube Music Player"
msgstr "YouTube muziekspeler"
#: main.cpp:63
#, kde-format
msgid "© 2021-2023 Jonah Brüchert, 2021-2023 KDE Community"
msgstr "© 2021-2023 Jonah Brüchert, 2021-2023 KDE-gemeenschap"
#: main.cpp:64
#, kde-format
msgid "Jonah Brüchert"
msgstr "Jonah Brüchert"
#: main.cpp:64
#, kde-format
msgid "Maintainer"
msgstr "Onderhouder"
#: main.cpp:65
#, kde-format
msgid "Mathis Brüchert"
msgstr "Mathis Brüchert"
#: main.cpp:65
#, kde-format
msgid "Designer"
msgstr "Ontwerper"
#: main.cpp:66
#, kde-format
msgctxt "NAME OF TRANSLATORS"
msgid "Your names"
msgstr "Freek de Kruijf - 2021 t/m 2023"
#: main.cpp:66
#, kde-format
msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails"
msgstr "[email protected]"
#: main.cpp:71
#, kde-format
msgid "Unofficial API for YouTube Music"
msgstr "Niet officiële API voor YouTube Music"
#~ msgid "played Songs"
#~ msgstr "afgespeelde songs"
#~ msgid "%"
#~ msgstr "%"
#~ msgid "Now Playing"
#~ msgstr "Speelt nu"
#~ msgid "Queue"
#~ msgstr "Wachtrij"
#~ msgid "Lyrics"
#~ msgstr "Liedteksten"
#~ msgid "Back"
#~ msgstr "Terug"
#~ msgid "Play next"
#~ msgstr "Volgende afspelen"
#~ msgid "Clear"
#~ msgstr "Wissen"
#~ msgid "Pause"
#~ msgstr "Pauzeren"
#~ msgid "Expand"
#~ msgstr "Uitbreiden"
#~ msgid "Play only Audio"
#~ msgstr "Alleen geluid afspelen"
+410
View File
@@ -0,0 +1,410 @@
# Translation of audiotube to Norwegian Nynorsk
#
# Øystein Steffensen-Alværvik <[email protected]>, 2022.
# Karl Ove Hufthammer <[email protected]>, 2022, 2023.
msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2023-04-23 04:10+0000\n"
"PO-Revision-Date: 2023-02-23 19:21+0100\n"
"Last-Translator: Karl Ove Hufthammer <[email protected]>\n"
"Language-Team: Norwegian Nynorsk <[email protected]>\n"
"Language: nn\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Lokalize 22.12.2\n"
"X-Environment: kde\n"
"X-Accelerator-Marker: &\n"
"X-Text-Markup: kde4\n"
#: contents/ui/AlbumPage.qml:26 contents/ui/LibraryPage.qml:37
#: contents/ui/LibraryPage.qml:63 contents/ui/LibraryPage.qml:84
#: contents/ui/LibraryPage.qml:332 contents/ui/LibraryPage.qml:358
#: contents/ui/LibraryPage.qml:379 contents/ui/LocalPlaylistPage.qml:42
#: contents/ui/PlaybackHistory.qml:23 contents/ui/PlaylistPage.qml:31
#, kde-format
msgid "Play"
msgstr "Spel av"
#: contents/ui/AlbumPage.qml:33 contents/ui/ArtistPage.qml:36
#: contents/ui/LibraryPage.qml:44 contents/ui/LibraryPage.qml:69
#: contents/ui/LibraryPage.qml:92 contents/ui/LibraryPage.qml:339
#: contents/ui/LibraryPage.qml:364 contents/ui/LibraryPage.qml:388
#: contents/ui/LocalPlaylistPage.qml:49 contents/ui/MaximizedPlayerPage.qml:891
#: contents/ui/PlaybackHistory.qml:36 contents/ui/PlaylistPage.qml:38
#, kde-format
msgid "Shuffle"
msgstr "Stokk om"
#: contents/ui/AlbumPage.qml:41 contents/ui/LibraryPage.qml:74
#: contents/ui/LibraryPage.qml:100 contents/ui/LibraryPage.qml:369
#: contents/ui/LibraryPage.qml:396 contents/ui/LocalPlaylistPage.qml:55
#: contents/ui/PlaybackHistory.qml:48 contents/ui/PlaylistPage.qml:46
#, kde-format
msgid "Append to queue"
msgstr ""
#: contents/ui/AlbumPage.qml:46 contents/ui/ArtistPage.qml:43
#: contents/ui/PlaylistPage.qml:51
#, kde-format
msgid "Open in Browser"
msgstr "Opna i nettlesar"
#: contents/ui/AlbumPage.qml:51 contents/ui/ArtistPage.qml:48
#: contents/ui/PlaylistPage.qml:56
#, kde-format
msgid "Share"
msgstr ""
#: contents/ui/AlbumPage.qml:61
#, kde-format
msgid "Album • %1"
msgstr "Album • %1"
#: contents/ui/AlbumPage.qml:105 contents/ui/ArtistPage.qml:137
#: contents/ui/LocalPlaylistPage.qml:114 contents/ui/PlaybackHistory.qml:127
#: contents/ui/PlaylistPage.qml:116 contents/ui/SearchPage.qml:130
#, kde-format
msgid "More"
msgstr "Meir"
#: contents/ui/ArtistPage.qml:31
#, kde-format
msgid "Radio"
msgstr "Radio"
#: contents/ui/ArtistPage.qml:57
#, kde-format
msgid "Artist"
msgstr "Artist"
#: contents/ui/ArtistPage.qml:79 contents/ui/SearchPage.qml:70
#, kde-format
msgid ""
"Video playback is not supported yet. Do you want to play only the audio of "
"\"%1\"?"
msgstr "Videoavspeling er endå ikkje støtta. Vil du spela av lyden til «%1»?"
#: contents/ui/ArtistPage.qml:96 contents/ui/SearchPage.qml:26
#, kde-format
msgid "Albums"
msgstr "Album"
#: contents/ui/ArtistPage.qml:98
#, kde-format
msgid "Singles"
msgstr "Singelplater"
#: contents/ui/ArtistPage.qml:100 contents/ui/SearchPage.qml:32
#, kde-format
msgid "Songs"
msgstr "Songar"
#: contents/ui/ArtistPage.qml:102 contents/ui/SearchPage.qml:34
#, kde-format
msgid "Videos"
msgstr "Videoar"
#: contents/ui/ConfirmationMessage.qml:16
#, kde-format
msgid "OK"
msgstr "OK"
#: contents/ui/ConfirmationMessage.qml:21
#, kde-format
msgid "Cancel"
msgstr "Avbryt"
#: contents/ui/dialogs/AddPlaylistDialog.qml:17
#, kde-format
msgid "Add playlist"
msgstr ""
#: contents/ui/dialogs/AddPlaylistDialog.qml:23
#: contents/ui/dialogs/RenamePlaylistDialog.qml:24
#, kde-format
msgid "Playlist Title"
msgstr ""
#: contents/ui/dialogs/AddPlaylistDialog.qml:28
#: contents/ui/dialogs/RenamePlaylistDialog.qml:30
#, kde-format
msgid "Playlist Description"
msgstr ""
#: contents/ui/dialogs/PlaylistDialog.qml:20
#, kde-format
msgid "Add Song to Playlist"
msgstr ""
#: contents/ui/dialogs/PlaylistDialog.qml:29
#: contents/ui/LocalPlaylistsPage.qml:90
#, kde-format
msgid "New Playlist"
msgstr ""
#: contents/ui/dialogs/RenamePlaylistDialog.qml:18
#, kde-format
msgid "Rename playlist"
msgstr ""
#: contents/ui/LibraryPage.qml:30 contents/ui/LibraryPage.qml:123
#: contents/ui/NavigationBar.qml:48 contents/ui/NavigationBar.qml:54
#: contents/ui/Sidebar.qml:131 contents/ui/Sidebar.qml:138
#, kde-format
msgid "Favourites"
msgstr "Favorittar"
#: contents/ui/LibraryPage.qml:119 contents/ui/LibraryPage.qml:416
#: contents/ui/LibraryPage.qml:623
#, kde-format
msgid "Show All"
msgstr "Vis alle"
#: contents/ui/LibraryPage.qml:147
#, kde-format
msgid "No Favourites Yet"
msgstr ""
#: contents/ui/LibraryPage.qml:325
#, kde-format
msgid "Most played"
msgstr "Oftast avspela"
#: contents/ui/LibraryPage.qml:420 contents/ui/NavigationBar.qml:61
#: contents/ui/NavigationBar.qml:67 contents/ui/Sidebar.qml:150
#: contents/ui/Sidebar.qml:157
#, kde-format
msgid "Played Songs"
msgstr "Avspela songar"
#: contents/ui/LibraryPage.qml:444
#, kde-format
msgid "No Songs Played Yet"
msgstr ""
#: contents/ui/LibraryPage.qml:611 contents/ui/LocalPlaylistsPage.qml:18
#: contents/ui/LocalPlaylistsPage.qml:78 contents/ui/NavigationBar.qml:75
#: contents/ui/SearchPage.qml:30 contents/ui/Sidebar.qml:167
#, kde-format
msgid "Playlists"
msgstr "Spelelister"
#: contents/ui/LibraryPage.qml:650
#, kde-format
msgid "No Playlists Yet"
msgstr ""
#: contents/ui/LibraryPage.qml:670 contents/ui/LibraryPage.qml:692
#: contents/ui/LocalPlaylistsPage.qml:33 contents/ui/LocalPlaylistsPage.qml:55
#, kde-format
msgid "Rename"
msgstr ""
#: contents/ui/LibraryPage.qml:679 contents/ui/LibraryPage.qml:700
#: contents/ui/LocalPlaylistsPage.qml:42 contents/ui/LocalPlaylistsPage.qml:63
#, kde-format
msgid "Delete"
msgstr ""
#: contents/ui/LocalPlaylistPage.qml:19
#, kde-format
msgid "Remove from Playlist"
msgstr ""
#: contents/ui/LocalPlaylistPage.qml:29
#, kde-format
msgid "This playlist is still empty"
msgstr ""
#: contents/ui/main.qml:109 main.cpp:59
#, kde-format
msgid "AudioTube"
msgstr "AudioTube"
#: contents/ui/MaximizedPlayerPage.qml:196
#: contents/ui/MinimizedPlayerControls.qml:93
#, kde-format
msgid "No media playing"
msgstr "Inkje medium vert spela av"
#: contents/ui/MaximizedPlayerPage.qml:571
#, kde-format
msgid "%1%"
msgstr "%1 %"
#: contents/ui/MaximizedPlayerPage.qml:839
#: contents/ui/MaximizedPlayerPage.qml:1016
#, kde-format
msgid "Remove Track"
msgstr "Fjern spor"
#: contents/ui/MaximizedPlayerPage.qml:870
#, kde-format
msgid "Clear Playlist"
msgstr ""
#: contents/ui/MaximizedPlayerPage.qml:917
#, kde-format
msgid "Upcoming Songs"
msgstr ""
#: contents/ui/NavigationBar.qml:24 contents/ui/Sidebar.qml:100
#, kde-format
msgid "Library"
msgstr "Bibliotek"
#: contents/ui/NavigationBar.qml:36 contents/ui/Sidebar.qml:116
#, kde-format
msgid "Search"
msgstr "Søk"
#: contents/ui/PlaybackHistory.qml:15
#, kde-format
msgid "Unknown list of songs"
msgstr "Ukjend songliste"
#: contents/ui/PlaybackHistory.qml:74
#, kde-format
msgid "No songs here yet"
msgstr "Ingen songar enno"
#: contents/ui/PlaylistPage.qml:67
#, kde-format
msgid "Playlist"
msgstr "Speleliste"
#: contents/ui/SearchHistoryPage.qml:86 contents/ui/SearchWithDropdown.qml:412
#, kde-format
msgid "remove from search history"
msgstr "Fjern frå søkjeloggen"
#: contents/ui/SearchPage.qml:16
#, kde-format
msgid "Previous Searches:"
msgstr "Tidlegare søk:"
#: contents/ui/SearchPage.qml:28
#, kde-format
msgid "Artists"
msgstr "Artistar"
#: contents/ui/SearchPage.qml:37
#, kde-format
msgid "Unknown"
msgstr "Ukjend"
#: contents/ui/SearchWithDropdown.qml:359
#, kde-format
msgid "No matching previous searches"
msgstr "Ingen samsvarande tidlegare søk"
#: contents/ui/ShareMenu.qml:39
#, kde-format
msgid "Share to"
msgstr ""
#: contents/ui/ShareMenu.qml:49 contents/ui/ShareMenu.qml:99
#, kde-format
msgid "Copy Link"
msgstr ""
#: contents/ui/ShareMenu.qml:54 contents/ui/ShareMenu.qml:104
#, kde-format
msgid "Link copied to clipboard"
msgstr ""
#: contents/ui/Sidebar.qml:189
#, kde-format
msgid "About"
msgstr ""
#: contents/ui/Sidebar.qml:203
#, kde-format
msgid "Collapse Sidebar"
msgstr "Fald saman sidestolpe"
#: contents/ui/SongMenu.qml:107 contents/ui/SongMenu.qml:205
#, kde-format
msgid "Play Next"
msgstr "Spel som neste"
#: contents/ui/SongMenu.qml:116 contents/ui/SongMenu.qml:211
#, kde-format
msgid "Add to queue"
msgstr "Legg i avspelingskøen"
#: contents/ui/SongMenu.qml:126 contents/ui/SongMenu.qml:221
#, kde-format
msgid "Remove Favourite"
msgstr "Fjern frå favorittar"
#: contents/ui/SongMenu.qml:126 contents/ui/SongMenu.qml:221
#, kde-format
msgid "Add Favourite"
msgstr "Legg til favorittar"
#: contents/ui/SongMenu.qml:143 contents/ui/SongMenu.qml:235
#, kde-format
msgid "Remove from History"
msgstr "Fjern frå loggen"
#: contents/ui/SongMenu.qml:156 contents/ui/SongMenu.qml:244
#, kde-format
msgid "Add to playlist"
msgstr ""
#: contents/ui/SongMenu.qml:183 contents/ui/SongMenu.qml:269
#, kde-format
msgid "Share Song"
msgstr ""
#: main.cpp:61
#, kde-format
msgid "YouTube Music Player"
msgstr ""
#: main.cpp:63
#, kde-format
msgid "© 2021-2023 Jonah Brüchert, 2021-2023 KDE Community"
msgstr ""
#: main.cpp:64
#, kde-format
msgid "Jonah Brüchert"
msgstr ""
#: main.cpp:64
#, kde-format
msgid "Maintainer"
msgstr ""
#: main.cpp:65
#, kde-format
msgid "Mathis Brüchert"
msgstr ""
#: main.cpp:65
#, kde-format
msgid "Designer"
msgstr ""
#: main.cpp:66
#, kde-format
msgctxt "NAME OF TRANSLATORS"
msgid "Your names"
msgstr "Øystein Steffensen-Alværvik"
#: main.cpp:66
#, kde-format
msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails"
msgstr "[email protected]"
#: main.cpp:71
#, kde-format
msgid "Unofficial API for YouTube Music"
msgstr ""
+353 -79
View File
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2022-05-23 00:47+0000\n"
"POT-Creation-Date: 2023-04-23 04:10+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"
@@ -17,57 +17,91 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Lokalize 21.04.3\n"
#, kde-format
msgctxt "NAME OF TRANSLATORS"
msgid "Your names"
msgstr "ਅਮਨਪਰੀਤ ਸਿੰਘ ਆਲਮ ੨੦੨੧"
#, kde-format
msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails"
msgstr "alam yellow @ gmail.com"
#: contents/ui/AlbumPage.qml:19 contents/ui/PlayerFooter.qml:192
#: contents/ui/PlaylistPage.qml:19
#: contents/ui/AlbumPage.qml:26 contents/ui/LibraryPage.qml:37
#: contents/ui/LibraryPage.qml:63 contents/ui/LibraryPage.qml:84
#: contents/ui/LibraryPage.qml:332 contents/ui/LibraryPage.qml:358
#: contents/ui/LibraryPage.qml:379 contents/ui/LocalPlaylistPage.qml:42
#: contents/ui/PlaybackHistory.qml:23 contents/ui/PlaylistPage.qml:31
#, kde-format
msgid "Play"
msgstr "ਚਲਾਓ"
#: contents/ui/AlbumPage.qml:61 contents/ui/ArtistPage.qml:101
#: contents/ui/PlaylistPage.qml:67
#: contents/ui/AlbumPage.qml:33 contents/ui/ArtistPage.qml:36
#: contents/ui/LibraryPage.qml:44 contents/ui/LibraryPage.qml:69
#: contents/ui/LibraryPage.qml:92 contents/ui/LibraryPage.qml:339
#: contents/ui/LibraryPage.qml:364 contents/ui/LibraryPage.qml:388
#: contents/ui/LocalPlaylistPage.qml:49 contents/ui/MaximizedPlayerPage.qml:891
#: contents/ui/PlaybackHistory.qml:36 contents/ui/PlaylistPage.qml:38
#, kde-format
msgid "Play Next"
msgstr "ਅਗਲਾ ਚਲਾਓ"
msgid "Shuffle"
msgstr "ਰਲਵੇਂ"
#: contents/ui/AlbumPage.qml:66 contents/ui/ArtistPage.qml:107
#: contents/ui/PlaylistPage.qml:72 contents/ui/SearchPage.qml:123
#: contents/ui/AlbumPage.qml:41 contents/ui/LibraryPage.qml:74
#: contents/ui/LibraryPage.qml:100 contents/ui/LibraryPage.qml:369
#: contents/ui/LibraryPage.qml:396 contents/ui/LocalPlaylistPage.qml:55
#: contents/ui/PlaybackHistory.qml:48 contents/ui/PlaylistPage.qml:46
#, kde-format
msgid "Add to Playlist"
msgstr "ਪਲੇਅਲਿਸਟ ਵਿੱਚ ਜੋੜੋ"
msgid "Append to queue"
msgstr ""
#: contents/ui/ArtistPage.qml:39 contents/ui/SearchPage.qml:67
#: contents/ui/AlbumPage.qml:46 contents/ui/ArtistPage.qml:43
#: contents/ui/PlaylistPage.qml:51
#, kde-format
msgid "Open in Browser"
msgstr ""
#: contents/ui/AlbumPage.qml:51 contents/ui/ArtistPage.qml:48
#: contents/ui/PlaylistPage.qml:56
#, kde-format
msgid "Share"
msgstr ""
#: contents/ui/AlbumPage.qml:61
#, kde-format
msgid "Album • %1"
msgstr ""
#: contents/ui/AlbumPage.qml:105 contents/ui/ArtistPage.qml:137
#: contents/ui/LocalPlaylistPage.qml:114 contents/ui/PlaybackHistory.qml:127
#: contents/ui/PlaylistPage.qml:116 contents/ui/SearchPage.qml:130
#, kde-format
msgid "More"
msgstr ""
#: contents/ui/ArtistPage.qml:31
#, kde-format
msgid "Radio"
msgstr "ਰੇਡੀਓ"
#: contents/ui/ArtistPage.qml:57
#, fuzzy, kde-format
#| msgid "Artists"
msgid "Artist"
msgstr "ਕਲਾਕਾਰ"
#: contents/ui/ArtistPage.qml:79 contents/ui/SearchPage.qml:70
#, 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:55 contents/ui/SearchPage.qml:25
#: contents/ui/ArtistPage.qml:96 contents/ui/SearchPage.qml:26
#, kde-format
msgid "Albums"
msgstr "ਐਲਬਮਾਂ"
#: contents/ui/ArtistPage.qml:57
#: contents/ui/ArtistPage.qml:98
#, kde-format
msgid "Singles"
msgstr "ਇਕੱਲੇ"
#: contents/ui/ArtistPage.qml:59 contents/ui/SearchPage.qml:31
#: contents/ui/ArtistPage.qml:100 contents/ui/SearchPage.qml:32
#, kde-format
msgid "Songs"
msgstr "ਗੀਤ"
#: contents/ui/ArtistPage.qml:61 contents/ui/SearchPage.qml:33
#: contents/ui/ArtistPage.qml:102 contents/ui/SearchPage.qml:34
#, kde-format
msgid "Videos"
msgstr "ਵਿਡੀਓ"
@@ -82,85 +116,325 @@ msgstr "ਠੀਕ ਹੈ"
msgid "Cancel"
msgstr "ਰੱਦ ਕਰੋ"
#: contents/ui/LibraryPage.qml:15
#: contents/ui/dialogs/AddPlaylistDialog.qml:17
#, fuzzy, kde-format
#| msgid "Add to Playlist"
msgid "Add playlist"
msgstr "ਪਲੇਅਲਿਸਟ ਵਿੱਚ ਜੋੜੋ"
#: contents/ui/dialogs/AddPlaylistDialog.qml:23
#: contents/ui/dialogs/RenamePlaylistDialog.qml:24
#, fuzzy, kde-format
#| msgid "Playlists"
msgid "Playlist Title"
msgstr "ਪਲੇਅਲਿਸਟਾਂ"
#: contents/ui/dialogs/AddPlaylistDialog.qml:28
#: contents/ui/dialogs/RenamePlaylistDialog.qml:30
#, fuzzy, kde-format
#| msgid "Playlists"
msgid "Playlist Description"
msgstr "ਪਲੇਅਲਿਸਟਾਂ"
#: contents/ui/dialogs/PlaylistDialog.qml:20
#, fuzzy, kde-format
#| msgid "Add to Playlist"
msgid "Add Song to Playlist"
msgstr "ਪਲੇਅਲਿਸਟ ਵਿੱਚ ਜੋੜੋ"
#: contents/ui/dialogs/PlaylistDialog.qml:29
#: contents/ui/LocalPlaylistsPage.qml:90
#, fuzzy, kde-format
#| msgid "Playlists"
msgid "New Playlist"
msgstr "ਪਲੇਅਲਿਸਟਾਂ"
#: contents/ui/dialogs/RenamePlaylistDialog.qml:18
#, fuzzy, kde-format
#| msgid "Playlists"
msgid "Rename playlist"
msgstr "ਪਲੇਅਲਿਸਟਾਂ"
#: contents/ui/LibraryPage.qml:30 contents/ui/LibraryPage.qml:123
#: contents/ui/NavigationBar.qml:48 contents/ui/NavigationBar.qml:54
#: contents/ui/Sidebar.qml:131 contents/ui/Sidebar.qml:138
#, kde-format
msgid "Favourites"
msgstr ""
#: contents/ui/LibraryPage.qml:67
#: contents/ui/LibraryPage.qml:119 contents/ui/LibraryPage.qml:416
#: contents/ui/LibraryPage.qml:623
#, kde-format
msgid "Show All"
msgstr ""
#: contents/ui/LibraryPage.qml:147
#, kde-format
msgid "No Favourites Yet"
msgstr ""
#: contents/ui/LibraryPage.qml:325
#, kde-format
msgid "Most played"
msgstr ""
#: contents/ui/main.qml:94
#: contents/ui/LibraryPage.qml:420 contents/ui/NavigationBar.qml:61
#: contents/ui/NavigationBar.qml:67 contents/ui/Sidebar.qml:150
#: contents/ui/Sidebar.qml:157
#, kde-format
msgid "AudioTube"
msgstr "ਆਡੀਓ-ਟਿਊਬ"
msgid "Played Songs"
msgstr ""
#: contents/ui/PlayerFooter.qml:124
#: contents/ui/LibraryPage.qml:444
#, kde-format
msgid "Remove Track"
msgstr "ਟਰੈਕ ਨੂੰ ਹਟਾਓ"
msgid "No Songs Played Yet"
msgstr ""
#: contents/ui/PlayerFooter.qml:141
#, kde-format
msgid "Clear"
msgstr "ਮਿਟਾਓ"
#: contents/ui/PlayerFooter.qml:146 contents/ui/PlaylistPage.qml:26
#, kde-format
msgid "Shuffle"
msgstr "ਰਲਵੇਂ"
#: contents/ui/PlayerFooter.qml:192
#, kde-format
msgid "Pause"
msgstr "ਵਿਰਾਮ"
#: contents/ui/PlayerFooter.qml:222
#, kde-format
msgid "No media playing"
msgstr "ਕੋਈ ਮੀਡੀਆ ਨਹੀਂ ਚੱਲਦਾ"
#: contents/ui/PlayerFooter.qml:266
#, kde-format
msgid "Expand"
msgstr "ਫੈਲਾਓ"
#: contents/ui/SearchPage.qml:27
#, kde-format
msgid "Artists"
msgstr "ਕਲਾਕਾਰ"
#: contents/ui/SearchPage.qml:29
#: contents/ui/LibraryPage.qml:611 contents/ui/LocalPlaylistsPage.qml:18
#: contents/ui/LocalPlaylistsPage.qml:78 contents/ui/NavigationBar.qml:75
#: contents/ui/SearchPage.qml:30 contents/ui/Sidebar.qml:167
#, kde-format
msgid "Playlists"
msgstr "ਪਲੇਅਲਿਸਟਾਂ"
#: contents/ui/SearchPage.qml:36
#, kde-format
msgid "Unknown"
msgstr "ਅਣਪਛਾਤਾ"
#: contents/ui/LibraryPage.qml:650
#, fuzzy, kde-format
#| msgid "Playlists"
msgid "No Playlists Yet"
msgstr "ਪਲੇਅਲਿਸਟਾਂ"
#: contents/ui/SearchPage.qml:117
#: contents/ui/LibraryPage.qml:670 contents/ui/LibraryPage.qml:692
#: contents/ui/LocalPlaylistsPage.qml:33 contents/ui/LocalPlaylistsPage.qml:55
#, kde-format
msgid "Play next"
msgstr "ਅਗਲਾ ਚਲਾਓ"
msgid "Rename"
msgstr ""
#: contents/ui/SearchPage.qml:129
#: contents/ui/LibraryPage.qml:679 contents/ui/LibraryPage.qml:700
#: contents/ui/LocalPlaylistsPage.qml:42 contents/ui/LocalPlaylistsPage.qml:63
#, kde-format
msgid "Radio"
msgstr "ਰੇਡੀਓ"
msgid "Delete"
msgstr ""
#: contents/ui/SearchPage.qml:147
#: contents/ui/LocalPlaylistPage.qml:19
#, fuzzy, kde-format
#| msgid "Playlists"
msgid "Remove from Playlist"
msgstr "ਪਲੇਅਲਿਸਟਾਂ"
#: contents/ui/LocalPlaylistPage.qml:29
#, kde-format
msgid "Find music on YouTube Music"
msgstr "ਯੂਟਿਊਬ ਸੰਗੀਤ ਉੱਤੇ ਸੰਗੀਤ ਲੱਭੋ"
msgid "This playlist is still empty"
msgstr ""
#: contents/ui/SearchPage.qml:150
#: contents/ui/main.qml:109 main.cpp:59
#, kde-format
msgid "AudioTube"
msgstr "ਆਡੀਓ-ਟਿਊਬ"
#: contents/ui/MaximizedPlayerPage.qml:196
#: contents/ui/MinimizedPlayerControls.qml:93
#, kde-format
msgid "No media playing"
msgstr "ਕੋਈ ਮੀਡੀਆ ਨਹੀਂ ਚੱਲਦਾ"
#: contents/ui/MaximizedPlayerPage.qml:571
#, kde-format
msgid "%1%"
msgstr ""
#: contents/ui/MaximizedPlayerPage.qml:839
#: contents/ui/MaximizedPlayerPage.qml:1016
#, kde-format
msgid "Remove Track"
msgstr "ਟਰੈਕ ਨੂੰ ਹਟਾਓ"
#: contents/ui/MaximizedPlayerPage.qml:870
#, fuzzy, kde-format
#| msgid "Playlists"
msgid "Clear Playlist"
msgstr "ਪਲੇਅਲਿਸਟਾਂ"
#: contents/ui/MaximizedPlayerPage.qml:917
#, kde-format
msgid "Upcoming Songs"
msgstr ""
#: contents/ui/NavigationBar.qml:24 contents/ui/Sidebar.qml:100
#, kde-format
msgid "Library"
msgstr ""
#: contents/ui/NavigationBar.qml:36 contents/ui/Sidebar.qml:116
#, kde-format
msgid "Search"
msgstr "ਖੋਜੋ"
#: contents/ui/PlaybackHistory.qml:15
#, kde-format
msgid "Unknown list of songs"
msgstr ""
#: contents/ui/PlaybackHistory.qml:74
#, kde-format
msgid "No songs here yet"
msgstr ""
#: contents/ui/PlaylistPage.qml:67
#, fuzzy, kde-format
#| msgid "Playlists"
msgid "Playlist"
msgstr "ਪਲੇਅਲਿਸਟਾਂ"
#: contents/ui/SearchHistoryPage.qml:86 contents/ui/SearchWithDropdown.qml:412
#, kde-format
msgid "remove from search history"
msgstr ""
#: contents/ui/SearchPage.qml:16
#, kde-format
msgid "Previous Searches:"
msgstr ""
#: contents/ui/SearchPage.qml:28
#, kde-format
msgid "Artists"
msgstr "ਕਲਾਕਾਰ"
#: contents/ui/SearchPage.qml:37
#, kde-format
msgid "Unknown"
msgstr "ਅਣਪਛਾਤਾ"
#: contents/ui/SearchWithDropdown.qml:359
#, kde-format
msgid "No matching previous searches"
msgstr ""
#: contents/ui/ShareMenu.qml:39
#, kde-format
msgid "Share to"
msgstr ""
#: contents/ui/ShareMenu.qml:49 contents/ui/ShareMenu.qml:99
#, kde-format
msgid "Copy Link"
msgstr ""
#: contents/ui/ShareMenu.qml:54 contents/ui/ShareMenu.qml:104
#, kde-format
msgid "Link copied to clipboard"
msgstr ""
#: contents/ui/Sidebar.qml:189
#, kde-format
msgid "About"
msgstr ""
#: contents/ui/Sidebar.qml:203
#, kde-format
msgid "Collapse Sidebar"
msgstr ""
#: contents/ui/SongMenu.qml:107 contents/ui/SongMenu.qml:205
#, kde-format
msgid "Play Next"
msgstr "ਅਗਲਾ ਚਲਾਓ"
#: contents/ui/SongMenu.qml:116 contents/ui/SongMenu.qml:211
#, kde-format
msgid "Add to queue"
msgstr ""
#: contents/ui/SongMenu.qml:126 contents/ui/SongMenu.qml:221
#, kde-format
msgid "Remove Favourite"
msgstr ""
#: contents/ui/SongMenu.qml:126 contents/ui/SongMenu.qml:221
#, kde-format
msgid "Add Favourite"
msgstr ""
#: contents/ui/SongMenu.qml:143 contents/ui/SongMenu.qml:235
#, kde-format
msgid "Remove from History"
msgstr ""
#: contents/ui/SongMenu.qml:156 contents/ui/SongMenu.qml:244
#, fuzzy, kde-format
#| msgid "Add to Playlist"
msgid "Add to playlist"
msgstr "ਪਲੇਅਲਿਸਟ ਵਿੱਚ ਜੋੜੋ"
#: contents/ui/SongMenu.qml:183 contents/ui/SongMenu.qml:269
#, kde-format
msgid "Share Song"
msgstr ""
#: main.cpp:61
#, kde-format
msgid "YouTube Music Player"
msgstr ""
#: main.cpp:63
#, kde-format
msgid "© 2021-2023 Jonah Brüchert, 2021-2023 KDE Community"
msgstr ""
#: main.cpp:64
#, kde-format
msgid "Jonah Brüchert"
msgstr ""
#: main.cpp:64
#, kde-format
msgid "Maintainer"
msgstr ""
#: main.cpp:65
#, kde-format
msgid "Mathis Brüchert"
msgstr ""
#: main.cpp:65
#, kde-format
msgid "Designer"
msgstr ""
#: main.cpp:66
#, kde-format
msgctxt "NAME OF TRANSLATORS"
msgid "Your names"
msgstr "ਅਮਨਪਰੀਤ ਸਿੰਘ ਆਲਮ ੨੦੨੧"
#: main.cpp:66
#, kde-format
msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails"
msgstr "alam yellow @ gmail.com"
#: main.cpp:71
#, fuzzy, kde-format
#| msgid "Find music on YouTube Music"
msgid "Unofficial API for YouTube Music"
msgstr "ਯੂਟਿਊਬ ਸੰਗੀਤ ਉੱਤੇ ਸੰਗੀਤ ਲੱਭੋ"
#, fuzzy
#~| msgid "No media playing"
#~ msgid "Now Playing"
#~ msgstr "ਕੋਈ ਮੀਡੀਆ ਨਹੀਂ ਚੱਲਦਾ"
#~ msgid "Play next"
#~ msgstr "ਅਗਲਾ ਚਲਾਓ"
#~ msgid "Clear"
#~ msgstr "ਮਿਟਾਓ"
#~ msgid "Pause"
#~ msgstr "ਵਿਰਾਮ"
#~ msgid "Expand"
#~ msgstr "ਫੈਲਾਓ"
#~ msgid "Play only Audio"
#~ msgstr "ਸਿਰਫ਼ ਆਡੀਓ ਹੀ ਚਲਾਓ"
+350 -82
View File
@@ -1,14 +1,14 @@
# Copyright (C) YEAR This file is copyright:
# This file is distributed under the same license as the audiotube package.
#
# Łukasz Wojniłowicz <[email protected]>, 2021.
# Łukasz Wojniłowicz <[email protected]>, 2021, 2022, 2023.
# Ignacy Kajdan <[email protected]>, 2021.
msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2022-05-23 00:47+0000\n"
"PO-Revision-Date: 2021-12-30 12:38+0100\n"
"POT-Creation-Date: 2023-04-23 04:10+0000\n"
"PO-Revision-Date: 2023-04-10 11:33+0200\n"
"Last-Translator: Łukasz Wojniłowicz <[email protected]>\n"
"Language-Team: Polish <[email protected]>\n"
"Language: pl\n"
@@ -17,37 +17,70 @@ 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.12.3\n"
#, kde-format
msgctxt "NAME OF TRANSLATORS"
msgid "Your names"
msgstr "Łukasz Wojniłowicz, Ignacy Kajdan"
#, kde-format
msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails"
msgstr "[email protected], [email protected]"
#: contents/ui/AlbumPage.qml:19 contents/ui/PlayerFooter.qml:192
#: contents/ui/PlaylistPage.qml:19
#: contents/ui/AlbumPage.qml:26 contents/ui/LibraryPage.qml:37
#: contents/ui/LibraryPage.qml:63 contents/ui/LibraryPage.qml:84
#: contents/ui/LibraryPage.qml:332 contents/ui/LibraryPage.qml:358
#: contents/ui/LibraryPage.qml:379 contents/ui/LocalPlaylistPage.qml:42
#: contents/ui/PlaybackHistory.qml:23 contents/ui/PlaylistPage.qml:31
#, kde-format
msgid "Play"
msgstr "Odtwórz"
#: contents/ui/AlbumPage.qml:61 contents/ui/ArtistPage.qml:101
#: contents/ui/PlaylistPage.qml:67
#: contents/ui/AlbumPage.qml:33 contents/ui/ArtistPage.qml:36
#: contents/ui/LibraryPage.qml:44 contents/ui/LibraryPage.qml:69
#: contents/ui/LibraryPage.qml:92 contents/ui/LibraryPage.qml:339
#: contents/ui/LibraryPage.qml:364 contents/ui/LibraryPage.qml:388
#: contents/ui/LocalPlaylistPage.qml:49 contents/ui/MaximizedPlayerPage.qml:891
#: contents/ui/PlaybackHistory.qml:36 contents/ui/PlaylistPage.qml:38
#, kde-format
msgid "Play Next"
msgstr "Odtwórz następny"
msgid "Shuffle"
msgstr "Wymieszaj"
#: contents/ui/AlbumPage.qml:66 contents/ui/ArtistPage.qml:107
#: contents/ui/PlaylistPage.qml:72 contents/ui/SearchPage.qml:123
#: contents/ui/AlbumPage.qml:41 contents/ui/LibraryPage.qml:74
#: contents/ui/LibraryPage.qml:100 contents/ui/LibraryPage.qml:369
#: contents/ui/LibraryPage.qml:396 contents/ui/LocalPlaylistPage.qml:55
#: contents/ui/PlaybackHistory.qml:48 contents/ui/PlaylistPage.qml:46
#, kde-format
msgid "Add to Playlist"
msgstr "Dodaj do listy odtwarzania"
msgid "Append to queue"
msgstr "Dodaj do kolejki"
#: contents/ui/ArtistPage.qml:39 contents/ui/SearchPage.qml:67
#: contents/ui/AlbumPage.qml:46 contents/ui/ArtistPage.qml:43
#: contents/ui/PlaylistPage.qml:51
#, kde-format
msgid "Open in Browser"
msgstr "Otwórz w przeglądarce"
#: contents/ui/AlbumPage.qml:51 contents/ui/ArtistPage.qml:48
#: contents/ui/PlaylistPage.qml:56
#, kde-format
msgid "Share"
msgstr "Udostępnij"
#: contents/ui/AlbumPage.qml:61
#, kde-format
msgid "Album • %1"
msgstr "Album • %1"
#: contents/ui/AlbumPage.qml:105 contents/ui/ArtistPage.qml:137
#: contents/ui/LocalPlaylistPage.qml:114 contents/ui/PlaybackHistory.qml:127
#: contents/ui/PlaylistPage.qml:116 contents/ui/SearchPage.qml:130
#, kde-format
msgid "More"
msgstr "Więcej"
#: contents/ui/ArtistPage.qml:31
#, kde-format
msgid "Radio"
msgstr "Radio"
#: contents/ui/ArtistPage.qml:57
#, kde-format
msgid "Artist"
msgstr "Wykonawca"
#: contents/ui/ArtistPage.qml:79 contents/ui/SearchPage.qml:70
#, kde-format
msgid ""
"Video playback is not supported yet. Do you want to play only the audio of "
@@ -56,22 +89,22 @@ msgstr ""
"Odtwarzanie wideo nie jest jeszcze obsługiwane. Czy odtworzyć tylko dźwięk z "
"„%1”?"
#: contents/ui/ArtistPage.qml:55 contents/ui/SearchPage.qml:25
#: contents/ui/ArtistPage.qml:96 contents/ui/SearchPage.qml:26
#, kde-format
msgid "Albums"
msgstr "Albumy"
#: contents/ui/ArtistPage.qml:57
#: contents/ui/ArtistPage.qml:98
#, kde-format
msgid "Singles"
msgstr "Single"
#: contents/ui/ArtistPage.qml:59 contents/ui/SearchPage.qml:31
#: contents/ui/ArtistPage.qml:100 contents/ui/SearchPage.qml:32
#, kde-format
msgid "Songs"
msgstr "Piosenki"
#: contents/ui/ArtistPage.qml:61 contents/ui/SearchPage.qml:33
#: contents/ui/ArtistPage.qml:102 contents/ui/SearchPage.qml:34
#, kde-format
msgid "Videos"
msgstr "Filmy"
@@ -86,85 +119,320 @@ msgstr "OK"
msgid "Cancel"
msgstr "Anuluj"
#: contents/ui/LibraryPage.qml:15
#: contents/ui/dialogs/AddPlaylistDialog.qml:17
#, kde-format
msgid "Add playlist"
msgstr "Dodaj do listy odtwarzania"
#: contents/ui/dialogs/AddPlaylistDialog.qml:23
#: contents/ui/dialogs/RenamePlaylistDialog.qml:24
#, kde-format
msgid "Playlist Title"
msgstr "Tytuł listy odtwarzania"
#: contents/ui/dialogs/AddPlaylistDialog.qml:28
#: contents/ui/dialogs/RenamePlaylistDialog.qml:30
#, kde-format
msgid "Playlist Description"
msgstr "Opis listy odtwarzania"
#: contents/ui/dialogs/PlaylistDialog.qml:20
#, kde-format
msgid "Add Song to Playlist"
msgstr "Usuń do listy odtwarzania"
#: contents/ui/dialogs/PlaylistDialog.qml:29
#: contents/ui/LocalPlaylistsPage.qml:90
#, kde-format
msgid "New Playlist"
msgstr "Nowa lista odtwarzania"
#: contents/ui/dialogs/RenamePlaylistDialog.qml:18
#, kde-format
msgid "Rename playlist"
msgstr "Przemianuj listę odtwarzania"
#: contents/ui/LibraryPage.qml:30 contents/ui/LibraryPage.qml:123
#: contents/ui/NavigationBar.qml:48 contents/ui/NavigationBar.qml:54
#: contents/ui/Sidebar.qml:131 contents/ui/Sidebar.qml:138
#, kde-format
msgid "Favourites"
msgstr ""
msgstr "Ulubione"
#: contents/ui/LibraryPage.qml:67
#: contents/ui/LibraryPage.qml:119 contents/ui/LibraryPage.qml:416
#: contents/ui/LibraryPage.qml:623
#, kde-format
msgid "Show All"
msgstr "Pokaż wszystkie"
#: contents/ui/LibraryPage.qml:147
#, kde-format
msgid "No Favourites Yet"
msgstr "Nie ma jeszcze żadnych ulubionych"
#: contents/ui/LibraryPage.qml:325
#, kde-format
msgid "Most played"
msgstr ""
msgstr "Najczęściej odtwarzane"
#: contents/ui/main.qml:94
#: contents/ui/LibraryPage.qml:420 contents/ui/NavigationBar.qml:61
#: contents/ui/NavigationBar.qml:67 contents/ui/Sidebar.qml:150
#: contents/ui/Sidebar.qml:157
#, kde-format
msgid "AudioTube"
msgstr "AudioTube"
msgid "Played Songs"
msgstr "Odtwarzane utwory"
#: contents/ui/PlayerFooter.qml:124
#: contents/ui/LibraryPage.qml:444
#, kde-format
msgid "Remove Track"
msgstr "Usuń utwór"
msgid "No Songs Played Yet"
msgstr "Jeszcze nie odtworzono żadnego utworu"
#: contents/ui/PlayerFooter.qml:141
#, kde-format
msgid "Clear"
msgstr "Wyczyść"
#: contents/ui/PlayerFooter.qml:146 contents/ui/PlaylistPage.qml:26
#, kde-format
msgid "Shuffle"
msgstr "Wymieszaj"
#: contents/ui/PlayerFooter.qml:192
#, kde-format
msgid "Pause"
msgstr "Wstrzymaj"
#: contents/ui/PlayerFooter.qml:222
#, kde-format
msgid "No media playing"
msgstr "Nic nie jest odtwarzane"
#: contents/ui/PlayerFooter.qml:266
#, kde-format
msgid "Expand"
msgstr "Rozwiń"
#: contents/ui/SearchPage.qml:27
#, kde-format
msgid "Artists"
msgstr "Wykonawcy"
#: contents/ui/SearchPage.qml:29
#: contents/ui/LibraryPage.qml:611 contents/ui/LocalPlaylistsPage.qml:18
#: contents/ui/LocalPlaylistsPage.qml:78 contents/ui/NavigationBar.qml:75
#: contents/ui/SearchPage.qml:30 contents/ui/Sidebar.qml:167
#, kde-format
msgid "Playlists"
msgstr "Listy odtwarzania"
#: contents/ui/SearchPage.qml:36
#: contents/ui/LibraryPage.qml:650
#, kde-format
msgid "No Playlists Yet"
msgstr "Nie ma jeszcze żadnej listy odtwarzania"
#: contents/ui/LibraryPage.qml:670 contents/ui/LibraryPage.qml:692
#: contents/ui/LocalPlaylistsPage.qml:33 contents/ui/LocalPlaylistsPage.qml:55
#, kde-format
msgid "Rename"
msgstr "Przemianuj"
#: contents/ui/LibraryPage.qml:679 contents/ui/LibraryPage.qml:700
#: contents/ui/LocalPlaylistsPage.qml:42 contents/ui/LocalPlaylistsPage.qml:63
#, kde-format
msgid "Delete"
msgstr "Usuń"
#: contents/ui/LocalPlaylistPage.qml:19
#, kde-format
msgid "Remove from Playlist"
msgstr "Usuń z listy odtwarzania"
#: contents/ui/LocalPlaylistPage.qml:29
#, kde-format
msgid "This playlist is still empty"
msgstr "Lista odtwarzania nadal jest pusta"
#: contents/ui/main.qml:109 main.cpp:59
#, kde-format
msgid "AudioTube"
msgstr "AudioTube"
#: contents/ui/MaximizedPlayerPage.qml:196
#: contents/ui/MinimizedPlayerControls.qml:93
#, kde-format
msgid "No media playing"
msgstr "Nic nie jest odtwarzane"
#: contents/ui/MaximizedPlayerPage.qml:571
#, kde-format
msgid "%1%"
msgstr "%1%"
#: contents/ui/MaximizedPlayerPage.qml:839
#: contents/ui/MaximizedPlayerPage.qml:1016
#, kde-format
msgid "Remove Track"
msgstr "Usuń utwór"
#: contents/ui/MaximizedPlayerPage.qml:870
#, kde-format
msgid "Clear Playlist"
msgstr "Wyczyść listę odtwarzania"
#: contents/ui/MaximizedPlayerPage.qml:917
#, kde-format
msgid "Upcoming Songs"
msgstr "Nadchodzące utwory"
#: contents/ui/NavigationBar.qml:24 contents/ui/Sidebar.qml:100
#, kde-format
msgid "Library"
msgstr "Biblioteka"
#: contents/ui/NavigationBar.qml:36 contents/ui/Sidebar.qml:116
#, kde-format
msgid "Search"
msgstr "Poszukaj"
#: contents/ui/PlaybackHistory.qml:15
#, kde-format
msgid "Unknown list of songs"
msgstr "Nieznana lista utworów"
#: contents/ui/PlaybackHistory.qml:74
#, kde-format
msgid "No songs here yet"
msgstr "Jeszcze nie ma tutaj utworów"
#: contents/ui/PlaylistPage.qml:67
#, kde-format
msgid "Playlist"
msgstr "Lista odtwarzania"
#: contents/ui/SearchHistoryPage.qml:86 contents/ui/SearchWithDropdown.qml:412
#, kde-format
msgid "remove from search history"
msgstr "usuń z historii wyszukiwania"
#: contents/ui/SearchPage.qml:16
#, kde-format
msgid "Previous Searches:"
msgstr "Poprzednie wyszukiwania:"
#: contents/ui/SearchPage.qml:28
#, kde-format
msgid "Artists"
msgstr "Wykonawcy"
#: contents/ui/SearchPage.qml:37
#, kde-format
msgid "Unknown"
msgstr "Nieznany"
#: contents/ui/SearchPage.qml:117
#: contents/ui/SearchWithDropdown.qml:359
#, kde-format
msgid "Play next"
msgid "No matching previous searches"
msgstr "Żadne z poprzednich wyszukiwań nie odpowiada"
#: contents/ui/ShareMenu.qml:39
#, kde-format
msgid "Share to"
msgstr "Udostępnij"
#: contents/ui/ShareMenu.qml:49 contents/ui/ShareMenu.qml:99
#, kde-format
msgid "Copy Link"
msgstr "Skopiuj odnośnik"
#: contents/ui/ShareMenu.qml:54 contents/ui/ShareMenu.qml:104
#, kde-format
msgid "Link copied to clipboard"
msgstr "Skopiowano odnośnik do schowka"
#: contents/ui/Sidebar.qml:189
#, kde-format
msgid "About"
msgstr "O programie"
#: contents/ui/Sidebar.qml:203
#, kde-format
msgid "Collapse Sidebar"
msgstr "Zwiń pasek boczny"
#: contents/ui/SongMenu.qml:107 contents/ui/SongMenu.qml:205
#, kde-format
msgid "Play Next"
msgstr "Odtwórz następny"
#: contents/ui/SearchPage.qml:129
#: contents/ui/SongMenu.qml:116 contents/ui/SongMenu.qml:211
#, kde-format
msgid "Radio"
msgstr "Radio"
msgid "Add to queue"
msgstr "Dodaj do kolejki"
#: contents/ui/SearchPage.qml:147
#: contents/ui/SongMenu.qml:126 contents/ui/SongMenu.qml:221
#, kde-format
msgid "Find music on YouTube Music"
msgstr "Znajdź muzykę w serwisie YouTube Music"
msgid "Remove Favourite"
msgstr "Usuń z ulubionych"
#: contents/ui/SearchPage.qml:150
#: contents/ui/SongMenu.qml:126 contents/ui/SongMenu.qml:221
#, kde-format
msgid "Search"
msgstr "Szukaj"
msgid "Add Favourite"
msgstr "Dodaj do ulubionych"
#: contents/ui/SongMenu.qml:143 contents/ui/SongMenu.qml:235
#, kde-format
msgid "Remove from History"
msgstr "Usuń z historii"
#: contents/ui/SongMenu.qml:156 contents/ui/SongMenu.qml:244
#, kde-format
msgid "Add to playlist"
msgstr "Dodaj do listy odtwarzania"
#: contents/ui/SongMenu.qml:183 contents/ui/SongMenu.qml:269
#, kde-format
msgid "Share Song"
msgstr "Udostępnij utwór"
#: main.cpp:61
#, kde-format
msgid "YouTube Music Player"
msgstr "Odtwarzacz muzyki YouTube"
#: main.cpp:63
#, kde-format
msgid "© 2021-2023 Jonah Brüchert, 2021-2023 KDE Community"
msgstr "© 2021-2023 Jonah Brüchert, 2021-2023 Społeczność KDE"
#: main.cpp:64
#, kde-format
msgid "Jonah Brüchert"
msgstr "Jonah Brüchert"
#: main.cpp:64
#, kde-format
msgid "Maintainer"
msgstr "Opiekun"
#: main.cpp:65
#, kde-format
msgid "Mathis Brüchert"
msgstr "Mathis Brüchert"
#: main.cpp:65
#, kde-format
msgid "Designer"
msgstr "Projektant"
#: main.cpp:66
#, kde-format
msgctxt "NAME OF TRANSLATORS"
msgid "Your names"
msgstr "Łukasz Wojniłowicz, Ignacy Kajdan"
#: main.cpp:66
#, kde-format
msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails"
msgstr "[email protected], [email protected]"
#: main.cpp:71
#, kde-format
msgid "Unofficial API for YouTube Music"
msgstr "Nieoficjalne API do Muzyki YouTube"
#~ msgid "played Songs"
#~ msgstr "odtworzone utwory"
#~ msgid "Now Playing"
#~ msgstr "Teraz odtwarzany"
#~ msgid "Queue"
#~ msgstr "Kolejka"
#~ msgid "Back"
#~ msgstr "Wstecz"
#~ msgid "Play next"
#~ msgstr "Odtwórz następny"
#~ msgid "Clear"
#~ msgstr "Wyczyść"
#~ msgid "Pause"
#~ msgstr "Wstrzymaj"
#~ msgid "Expand"
#~ msgstr "Rozwiń"
#~ msgid "Play only Audio"
#~ msgstr "Odtwórz tylko dźwięk"
+325 -84
View File
@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2022-05-23 00:47+0000\n"
"PO-Revision-Date: 2021-09-04 18:29+0100\n"
"POT-Creation-Date: 2023-04-23 04:10+0000\n"
"PO-Revision-Date: 2023-03-09 09:59+0000\n"
"Last-Translator: José Nuno Coelho Pires <[email protected]>\n"
"Language-Team: Portuguese <[email protected]>\n"
"Language: pt\n"
@@ -16,38 +16,71 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-POFile-SpellExtra: Singles AudioTube YouTube Music\n"
"X-POFile-SpellExtra: Singles AudioTube YouTube Music Jonah Brüchert Mathis\n"
"X-POFile-IgnoreConsistency: Singles\n"
#, kde-format
msgctxt "NAME OF TRANSLATORS"
msgid "Your names"
msgstr "José Nuno Pires"
#, kde-format
msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails"
msgstr "[email protected]"
#: contents/ui/AlbumPage.qml:19 contents/ui/PlayerFooter.qml:192
#: contents/ui/PlaylistPage.qml:19
#: contents/ui/AlbumPage.qml:26 contents/ui/LibraryPage.qml:37
#: contents/ui/LibraryPage.qml:63 contents/ui/LibraryPage.qml:84
#: contents/ui/LibraryPage.qml:332 contents/ui/LibraryPage.qml:358
#: contents/ui/LibraryPage.qml:379 contents/ui/LocalPlaylistPage.qml:42
#: contents/ui/PlaybackHistory.qml:23 contents/ui/PlaylistPage.qml:31
#, kde-format
msgid "Play"
msgstr "Reproduzir"
#: contents/ui/AlbumPage.qml:61 contents/ui/ArtistPage.qml:101
#: contents/ui/PlaylistPage.qml:67
#: contents/ui/AlbumPage.qml:33 contents/ui/ArtistPage.qml:36
#: contents/ui/LibraryPage.qml:44 contents/ui/LibraryPage.qml:69
#: contents/ui/LibraryPage.qml:92 contents/ui/LibraryPage.qml:339
#: contents/ui/LibraryPage.qml:364 contents/ui/LibraryPage.qml:388
#: contents/ui/LocalPlaylistPage.qml:49 contents/ui/MaximizedPlayerPage.qml:891
#: contents/ui/PlaybackHistory.qml:36 contents/ui/PlaylistPage.qml:38
#, kde-format
msgid "Play Next"
msgstr "Reproduzir o Seguinte"
msgid "Shuffle"
msgstr "Baralhar"
#: contents/ui/AlbumPage.qml:66 contents/ui/ArtistPage.qml:107
#: contents/ui/PlaylistPage.qml:72 contents/ui/SearchPage.qml:123
#: contents/ui/AlbumPage.qml:41 contents/ui/LibraryPage.qml:74
#: contents/ui/LibraryPage.qml:100 contents/ui/LibraryPage.qml:369
#: contents/ui/LibraryPage.qml:396 contents/ui/LocalPlaylistPage.qml:55
#: contents/ui/PlaybackHistory.qml:48 contents/ui/PlaylistPage.qml:46
#, kde-format
msgid "Add to Playlist"
msgstr "Adicionar à Lista de Reprodução"
msgid "Append to queue"
msgstr "Adicionar à fila"
#: contents/ui/ArtistPage.qml:39 contents/ui/SearchPage.qml:67
#: contents/ui/AlbumPage.qml:46 contents/ui/ArtistPage.qml:43
#: contents/ui/PlaylistPage.qml:51
#, kde-format
msgid "Open in Browser"
msgstr "Abrir no Navegador"
#: contents/ui/AlbumPage.qml:51 contents/ui/ArtistPage.qml:48
#: contents/ui/PlaylistPage.qml:56
#, kde-format
msgid "Share"
msgstr "Partilhar"
#: contents/ui/AlbumPage.qml:61
#, kde-format
msgid "Album • %1"
msgstr "Álbum • %1"
#: contents/ui/AlbumPage.qml:105 contents/ui/ArtistPage.qml:137
#: contents/ui/LocalPlaylistPage.qml:114 contents/ui/PlaybackHistory.qml:127
#: contents/ui/PlaylistPage.qml:116 contents/ui/SearchPage.qml:130
#, kde-format
msgid "More"
msgstr "Mais"
#: contents/ui/ArtistPage.qml:31
#, kde-format
msgid "Radio"
msgstr "Rádio"
#: contents/ui/ArtistPage.qml:57
#, kde-format
msgid "Artist"
msgstr "Artista"
#: contents/ui/ArtistPage.qml:79 contents/ui/SearchPage.qml:70
#, kde-format
msgid ""
"Video playback is not supported yet. Do you want to play only the audio of "
@@ -56,22 +89,22 @@ msgstr ""
"A reprodução de vídeos ainda não é suportada. Deseja reproduzir apenas o "
"áudio de \"%1\"?"
#: contents/ui/ArtistPage.qml:55 contents/ui/SearchPage.qml:25
#: contents/ui/ArtistPage.qml:96 contents/ui/SearchPage.qml:26
#, kde-format
msgid "Albums"
msgstr "Álbuns"
#: contents/ui/ArtistPage.qml:57
#: contents/ui/ArtistPage.qml:98
#, kde-format
msgid "Singles"
msgstr "'Singles'"
#: contents/ui/ArtistPage.qml:59 contents/ui/SearchPage.qml:31
#: contents/ui/ArtistPage.qml:100 contents/ui/SearchPage.qml:32
#, kde-format
msgid "Songs"
msgstr "Músicas"
#: contents/ui/ArtistPage.qml:61 contents/ui/SearchPage.qml:33
#: contents/ui/ArtistPage.qml:102 contents/ui/SearchPage.qml:34
#, kde-format
msgid "Videos"
msgstr "Vídeos"
@@ -86,85 +119,293 @@ msgstr "OK"
msgid "Cancel"
msgstr "Cancelar"
#: contents/ui/LibraryPage.qml:15
#: contents/ui/dialogs/AddPlaylistDialog.qml:17
#, kde-format
msgid "Add playlist"
msgstr "Adicionar à lista de reprodução"
#: contents/ui/dialogs/AddPlaylistDialog.qml:23
#: contents/ui/dialogs/RenamePlaylistDialog.qml:24
#, kde-format
msgid "Playlist Title"
msgstr "Título da Lista de Reprodução"
#: contents/ui/dialogs/AddPlaylistDialog.qml:28
#: contents/ui/dialogs/RenamePlaylistDialog.qml:30
#, kde-format
msgid "Playlist Description"
msgstr "Descrição da Lista de Reprodução"
#: contents/ui/dialogs/PlaylistDialog.qml:20
#, kde-format
msgid "Add Song to Playlist"
msgstr "Adicionar a Música à Lista"
#: contents/ui/dialogs/PlaylistDialog.qml:29
#: contents/ui/LocalPlaylistsPage.qml:90
#, kde-format
msgid "New Playlist"
msgstr "Nova Lista de Reprodução"
#: contents/ui/dialogs/RenamePlaylistDialog.qml:18
#, kde-format
msgid "Rename playlist"
msgstr "Mudar o nome da lista de reprodução"
#: contents/ui/LibraryPage.qml:30 contents/ui/LibraryPage.qml:123
#: contents/ui/NavigationBar.qml:48 contents/ui/NavigationBar.qml:54
#: contents/ui/Sidebar.qml:131 contents/ui/Sidebar.qml:138
#, kde-format
msgid "Favourites"
msgstr ""
msgstr "Favoritos"
#: contents/ui/LibraryPage.qml:67
#: contents/ui/LibraryPage.qml:119 contents/ui/LibraryPage.qml:416
#: contents/ui/LibraryPage.qml:623
#, kde-format
msgid "Show All"
msgstr "Mostrar Tudo"
#: contents/ui/LibraryPage.qml:147
#, kde-format
msgid "No Favourites Yet"
msgstr "Ainda sem Favoritos"
#: contents/ui/LibraryPage.qml:325
#, kde-format
msgid "Most played"
msgstr ""
msgstr "Mais Tocadas"
#: contents/ui/main.qml:94
#: contents/ui/LibraryPage.qml:420 contents/ui/NavigationBar.qml:61
#: contents/ui/NavigationBar.qml:67 contents/ui/Sidebar.qml:150
#: contents/ui/Sidebar.qml:157
#, kde-format
msgid "AudioTube"
msgstr "AudioTube"
msgid "Played Songs"
msgstr "Músicas Tocadas"
#: contents/ui/PlayerFooter.qml:124
#: contents/ui/LibraryPage.qml:444
#, kde-format
msgid "Remove Track"
msgstr "Remover a Faixa"
msgid "No Songs Played Yet"
msgstr "Ainda sem Músicas Reproduzidas"
#: contents/ui/PlayerFooter.qml:141
#, kde-format
msgid "Clear"
msgstr "Limpar"
#: contents/ui/PlayerFooter.qml:146 contents/ui/PlaylistPage.qml:26
#, kde-format
msgid "Shuffle"
msgstr "Baralhar"
#: contents/ui/PlayerFooter.qml:192
#, kde-format
msgid "Pause"
msgstr "Pausa"
#: contents/ui/PlayerFooter.qml:222
#, kde-format
msgid "No media playing"
msgstr "Nada em reprodução"
#: contents/ui/PlayerFooter.qml:266
#, kde-format
msgid "Expand"
msgstr "Expandir"
#: contents/ui/SearchPage.qml:27
#, kde-format
msgid "Artists"
msgstr "Artistas"
#: contents/ui/SearchPage.qml:29
#: contents/ui/LibraryPage.qml:611 contents/ui/LocalPlaylistsPage.qml:18
#: contents/ui/LocalPlaylistsPage.qml:78 contents/ui/NavigationBar.qml:75
#: contents/ui/SearchPage.qml:30 contents/ui/Sidebar.qml:167
#, kde-format
msgid "Playlists"
msgstr "Listas de Reprodução"
#: contents/ui/SearchPage.qml:36
#: contents/ui/LibraryPage.qml:650
#, kde-format
msgid "Unknown"
msgstr "Desconhecido"
msgid "No Playlists Yet"
msgstr "Ainda sem Listas de Reprodução"
#: contents/ui/SearchPage.qml:117
#: contents/ui/LibraryPage.qml:670 contents/ui/LibraryPage.qml:692
#: contents/ui/LocalPlaylistsPage.qml:33 contents/ui/LocalPlaylistsPage.qml:55
#, kde-format
msgid "Play next"
msgstr "Reproduzir o seguinte"
msgid "Rename"
msgstr "Mudar o Nome"
#: contents/ui/SearchPage.qml:129
#: contents/ui/LibraryPage.qml:679 contents/ui/LibraryPage.qml:700
#: contents/ui/LocalPlaylistsPage.qml:42 contents/ui/LocalPlaylistsPage.qml:63
#, kde-format
msgid "Radio"
msgstr "Rádio"
msgid "Delete"
msgstr "Apagar"
#: contents/ui/SearchPage.qml:147
#: contents/ui/LocalPlaylistPage.qml:19
#, kde-format
msgid "Find music on YouTube Music"
msgstr "Procurar música no YouTube Music"
msgid "Remove from Playlist"
msgstr "Remover da Lista de Reprodução"
#: contents/ui/SearchPage.qml:150
#: contents/ui/LocalPlaylistPage.qml:29
#, kde-format
msgid "This playlist is still empty"
msgstr "Esta lista de reprodução continua vazia"
#: contents/ui/main.qml:109 main.cpp:59
#, kde-format
msgid "AudioTube"
msgstr "AudioTube"
#: contents/ui/MaximizedPlayerPage.qml:196
#: contents/ui/MinimizedPlayerControls.qml:93
#, kde-format
msgid "No media playing"
msgstr "Nada em reprodução"
#: contents/ui/MaximizedPlayerPage.qml:571
#, kde-format
msgid "%1%"
msgstr "%1%"
#: contents/ui/MaximizedPlayerPage.qml:839
#: contents/ui/MaximizedPlayerPage.qml:1016
#, kde-format
msgid "Remove Track"
msgstr "Remover a Faixa"
#: contents/ui/MaximizedPlayerPage.qml:870
#, kde-format
msgid "Clear Playlist"
msgstr "Limpar a Lista de Reprodução"
#: contents/ui/MaximizedPlayerPage.qml:917
#, kde-format
msgid "Upcoming Songs"
msgstr "Próximas Músicas"
#: contents/ui/NavigationBar.qml:24 contents/ui/Sidebar.qml:100
#, kde-format
msgid "Library"
msgstr "Biblioteca"
#: contents/ui/NavigationBar.qml:36 contents/ui/Sidebar.qml:116
#, kde-format
msgid "Search"
msgstr "Procurar"
#~ msgid "Play only Audio"
#~ msgstr "Reproduzir só o Áudio"
#: contents/ui/PlaybackHistory.qml:15
#, kde-format
msgid "Unknown list of songs"
msgstr "Lista de músicas desconhecida"
#: contents/ui/PlaybackHistory.qml:74
#, kde-format
msgid "No songs here yet"
msgstr "Ainda sem músicas aqui"
#: contents/ui/PlaylistPage.qml:67
#, kde-format
msgid "Playlist"
msgstr "Lista de Reprodução"
#: contents/ui/SearchHistoryPage.qml:86 contents/ui/SearchWithDropdown.qml:412
#, kde-format
msgid "remove from search history"
msgstr "remover do histórico de pesquisas"
#: contents/ui/SearchPage.qml:16
#, kde-format
msgid "Previous Searches:"
msgstr "Pesquisas Anteriores:"
#: contents/ui/SearchPage.qml:28
#, kde-format
msgid "Artists"
msgstr "Artistas"
#: contents/ui/SearchPage.qml:37
#, kde-format
msgid "Unknown"
msgstr "Desconhecido"
#: contents/ui/SearchWithDropdown.qml:359
#, kde-format
msgid "No matching previous searches"
msgstr "Sem pesquisas anteriores correspondentes"
#: contents/ui/ShareMenu.qml:39
#, kde-format
msgid "Share to"
msgstr "Partilhar em"
#: contents/ui/ShareMenu.qml:49 contents/ui/ShareMenu.qml:99
#, kde-format
msgid "Copy Link"
msgstr "Copiar a Ligação"
#: contents/ui/ShareMenu.qml:54 contents/ui/ShareMenu.qml:104
#, kde-format
msgid "Link copied to clipboard"
msgstr "Ligação copiada para a área de transferência"
#: contents/ui/Sidebar.qml:189
#, kde-format
msgid "About"
msgstr "Acerca"
#: contents/ui/Sidebar.qml:203
#, kde-format
msgid "Collapse Sidebar"
msgstr "Fechar a Barra Lateral"
#: contents/ui/SongMenu.qml:107 contents/ui/SongMenu.qml:205
#, kde-format
msgid "Play Next"
msgstr "Reproduzir o Seguinte"
#: contents/ui/SongMenu.qml:116 contents/ui/SongMenu.qml:211
#, kde-format
msgid "Add to queue"
msgstr "Adicionar à fila"
#: contents/ui/SongMenu.qml:126 contents/ui/SongMenu.qml:221
#, kde-format
msgid "Remove Favourite"
msgstr "Remover o Favorito"
#: contents/ui/SongMenu.qml:126 contents/ui/SongMenu.qml:221
#, kde-format
msgid "Add Favourite"
msgstr "Adicionar aos Favoritos"
#: contents/ui/SongMenu.qml:143 contents/ui/SongMenu.qml:235
#, kde-format
msgid "Remove from History"
msgstr "Remover do Histórico"
#: contents/ui/SongMenu.qml:156 contents/ui/SongMenu.qml:244
#, kde-format
msgid "Add to playlist"
msgstr "Adicionar à lista de reprodução"
#: contents/ui/SongMenu.qml:183 contents/ui/SongMenu.qml:269
#, kde-format
msgid "Share Song"
msgstr "Partilhar a Música"
#: main.cpp:61
#, kde-format
msgid "YouTube Music Player"
msgstr "Leitor de Música do YouTube"
#: main.cpp:63
#, kde-format
msgid "© 2021-2023 Jonah Brüchert, 2021-2023 KDE Community"
msgstr "© 2021-2023 de Jonah Brüchert, 2021-2023 da Comunidade do KDE"
#: main.cpp:64
#, kde-format
msgid "Jonah Brüchert"
msgstr "Jonah Brüchert"
#: main.cpp:64
#, kde-format
msgid "Maintainer"
msgstr "Manutenção"
#: main.cpp:65
#, kde-format
msgid "Mathis Brüchert"
msgstr "Mathis Brüchert"
#: main.cpp:65
#, kde-format
msgid "Designer"
msgstr "Desenhador"
#: main.cpp:66
#, kde-format
msgctxt "NAME OF TRANSLATORS"
msgid "Your names"
msgstr "José Nuno Pires"
#: main.cpp:66
#, kde-format
msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails"
msgstr "[email protected]"
#: main.cpp:71
#, kde-format
msgid "Unofficial API for YouTube Music"
msgstr "API não oficial do YouTube Music"
+355 -84
View File
@@ -1,52 +1,85 @@
# Copyright (C) YEAR This file is copyright:
# This file is distributed under the same license as the audiotube package.
#
# Luiz Fernando Ranghetti <[email protected]>, 2021.
# Luiz Fernando Ranghetti <[email protected]>, 2021, 2022, 2023.
# Thiago Masato Costa Sueto <[email protected]>, 2021.
msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2022-05-23 00:47+0000\n"
"PO-Revision-Date: 2021-12-09 10:13-0300\n"
"POT-Creation-Date: 2023-04-23 04:10+0000\n"
"PO-Revision-Date: 2023-03-21 09:36-0300\n"
"Last-Translator: Luiz Fernando Ranghetti <[email protected]>\n"
"Language-Team: Portuguese <[email protected]>\n"
"Language-Team: Brazilian Portuguese <[email protected]>\n"
"Language: pt_BR\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"X-Generator: Lokalize 20.04.2\n"
"X-Generator: Lokalize 21.12.3\n"
#, kde-format
msgctxt "NAME OF TRANSLATORS"
msgid "Your names"
msgstr "Luiz Fernando Ranghetti"
#, kde-format
msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails"
msgstr "[email protected]"
#: contents/ui/AlbumPage.qml:19 contents/ui/PlayerFooter.qml:192
#: contents/ui/PlaylistPage.qml:19
#: contents/ui/AlbumPage.qml:26 contents/ui/LibraryPage.qml:37
#: contents/ui/LibraryPage.qml:63 contents/ui/LibraryPage.qml:84
#: contents/ui/LibraryPage.qml:332 contents/ui/LibraryPage.qml:358
#: contents/ui/LibraryPage.qml:379 contents/ui/LocalPlaylistPage.qml:42
#: contents/ui/PlaybackHistory.qml:23 contents/ui/PlaylistPage.qml:31
#, kde-format
msgid "Play"
msgstr "Reproduzir"
#: contents/ui/AlbumPage.qml:61 contents/ui/ArtistPage.qml:101
#: contents/ui/PlaylistPage.qml:67
#: contents/ui/AlbumPage.qml:33 contents/ui/ArtistPage.qml:36
#: contents/ui/LibraryPage.qml:44 contents/ui/LibraryPage.qml:69
#: contents/ui/LibraryPage.qml:92 contents/ui/LibraryPage.qml:339
#: contents/ui/LibraryPage.qml:364 contents/ui/LibraryPage.qml:388
#: contents/ui/LocalPlaylistPage.qml:49 contents/ui/MaximizedPlayerPage.qml:891
#: contents/ui/PlaybackHistory.qml:36 contents/ui/PlaylistPage.qml:38
#, kde-format
msgid "Play Next"
msgstr "Reproduzir próxima"
msgid "Shuffle"
msgstr "Embaralhar"
#: contents/ui/AlbumPage.qml:66 contents/ui/ArtistPage.qml:107
#: contents/ui/PlaylistPage.qml:72 contents/ui/SearchPage.qml:123
#: contents/ui/AlbumPage.qml:41 contents/ui/LibraryPage.qml:74
#: contents/ui/LibraryPage.qml:100 contents/ui/LibraryPage.qml:369
#: contents/ui/LibraryPage.qml:396 contents/ui/LocalPlaylistPage.qml:55
#: contents/ui/PlaybackHistory.qml:48 contents/ui/PlaylistPage.qml:46
#, kde-format
msgid "Add to Playlist"
msgstr "Adicionar à lista de reprodução"
msgid "Append to queue"
msgstr "Anexar à fila"
#: contents/ui/ArtistPage.qml:39 contents/ui/SearchPage.qml:67
#: contents/ui/AlbumPage.qml:46 contents/ui/ArtistPage.qml:43
#: contents/ui/PlaylistPage.qml:51
#, kde-format
msgid "Open in Browser"
msgstr "Abrir no navegador"
#: contents/ui/AlbumPage.qml:51 contents/ui/ArtistPage.qml:48
#: contents/ui/PlaylistPage.qml:56
#, kde-format
msgid "Share"
msgstr "Compartilhar"
#: contents/ui/AlbumPage.qml:61
#, kde-format
msgid "Album • %1"
msgstr "Álbum • %1"
#: contents/ui/AlbumPage.qml:105 contents/ui/ArtistPage.qml:137
#: contents/ui/LocalPlaylistPage.qml:114 contents/ui/PlaybackHistory.qml:127
#: contents/ui/PlaylistPage.qml:116 contents/ui/SearchPage.qml:130
#, kde-format
msgid "More"
msgstr "Mais"
#: contents/ui/ArtistPage.qml:31
#, kde-format
msgid "Radio"
msgstr "Rádio"
#: contents/ui/ArtistPage.qml:57
#, kde-format
msgid "Artist"
msgstr "Artista"
#: contents/ui/ArtistPage.qml:79 contents/ui/SearchPage.qml:70
#, kde-format
msgid ""
"Video playback is not supported yet. Do you want to play only the audio of "
@@ -55,22 +88,22 @@ msgstr ""
"A reprodução de vídeos ainda não é suportada. Deseja reproduzir apenas o "
"áudio de \"%1\"?"
#: contents/ui/ArtistPage.qml:55 contents/ui/SearchPage.qml:25
#: contents/ui/ArtistPage.qml:96 contents/ui/SearchPage.qml:26
#, kde-format
msgid "Albums"
msgstr "Álbuns"
#: contents/ui/ArtistPage.qml:57
#: contents/ui/ArtistPage.qml:98
#, kde-format
msgid "Singles"
msgstr "Singles"
#: contents/ui/ArtistPage.qml:59 contents/ui/SearchPage.qml:31
#: contents/ui/ArtistPage.qml:100 contents/ui/SearchPage.qml:32
#, kde-format
msgid "Songs"
msgstr "Músicas"
#: contents/ui/ArtistPage.qml:61 contents/ui/SearchPage.qml:33
#: contents/ui/ArtistPage.qml:102 contents/ui/SearchPage.qml:34
#, kde-format
msgid "Videos"
msgstr "Vídeos"
@@ -85,85 +118,323 @@ msgstr "OK"
msgid "Cancel"
msgstr "Cancelar"
#: contents/ui/LibraryPage.qml:15
#: contents/ui/dialogs/AddPlaylistDialog.qml:17
#, kde-format
msgid "Add playlist"
msgstr "Adicionar à lista de músicas"
#: contents/ui/dialogs/AddPlaylistDialog.qml:23
#: contents/ui/dialogs/RenamePlaylistDialog.qml:24
#, kde-format
msgid "Playlist Title"
msgstr "Título da lista de músicas"
#: contents/ui/dialogs/AddPlaylistDialog.qml:28
#: contents/ui/dialogs/RenamePlaylistDialog.qml:30
#, kde-format
msgid "Playlist Description"
msgstr "Descrição da listas de músicas"
#: contents/ui/dialogs/PlaylistDialog.qml:20
#, kde-format
msgid "Add Song to Playlist"
msgstr "Adicionar música à lista de músicas"
#: contents/ui/dialogs/PlaylistDialog.qml:29
#: contents/ui/LocalPlaylistsPage.qml:90
#, kde-format
msgid "New Playlist"
msgstr "Nova lista de músicas"
#: contents/ui/dialogs/RenamePlaylistDialog.qml:18
#, kde-format
msgid "Rename playlist"
msgstr "Renomear lista de músicas"
#: contents/ui/LibraryPage.qml:30 contents/ui/LibraryPage.qml:123
#: contents/ui/NavigationBar.qml:48 contents/ui/NavigationBar.qml:54
#: contents/ui/Sidebar.qml:131 contents/ui/Sidebar.qml:138
#, kde-format
msgid "Favourites"
msgstr ""
msgstr "Favoritas"
#: contents/ui/LibraryPage.qml:67
#: contents/ui/LibraryPage.qml:119 contents/ui/LibraryPage.qml:416
#: contents/ui/LibraryPage.qml:623
#, kde-format
msgid "Show All"
msgstr "Mostrar tudo"
#: contents/ui/LibraryPage.qml:147
#, kde-format
msgid "No Favourites Yet"
msgstr "Nenhuma favorita ainda"
#: contents/ui/LibraryPage.qml:325
#, kde-format
msgid "Most played"
msgstr ""
msgstr "Mais reproduzidas"
#: contents/ui/main.qml:94
#: contents/ui/LibraryPage.qml:420 contents/ui/NavigationBar.qml:61
#: contents/ui/NavigationBar.qml:67 contents/ui/Sidebar.qml:150
#: contents/ui/Sidebar.qml:157
#, kde-format
msgid "AudioTube"
msgstr "AudioTube"
msgid "Played Songs"
msgstr "Músicas reproduzidas"
#: contents/ui/PlayerFooter.qml:124
#: contents/ui/LibraryPage.qml:444
#, kde-format
msgid "Remove Track"
msgstr "Remover faixa"
msgid "No Songs Played Yet"
msgstr "Nenhuma música reproduzida ainda"
#: contents/ui/PlayerFooter.qml:141
#, kde-format
msgid "Clear"
msgstr "Limpar"
#: contents/ui/PlayerFooter.qml:146 contents/ui/PlaylistPage.qml:26
#, kde-format
msgid "Shuffle"
msgstr "Embaralhar"
#: contents/ui/PlayerFooter.qml:192
#, kde-format
msgid "Pause"
msgstr "Pausar"
#: contents/ui/PlayerFooter.qml:222
#, kde-format
msgid "No media playing"
msgstr "Nenhuma mídia em reprodução"
#: contents/ui/PlayerFooter.qml:266
#, kde-format
msgid "Expand"
msgstr "Expandir"
#: contents/ui/SearchPage.qml:27
#, kde-format
msgid "Artists"
msgstr "Artistas"
#: contents/ui/SearchPage.qml:29
#: contents/ui/LibraryPage.qml:611 contents/ui/LocalPlaylistsPage.qml:18
#: contents/ui/LocalPlaylistsPage.qml:78 contents/ui/NavigationBar.qml:75
#: contents/ui/SearchPage.qml:30 contents/ui/Sidebar.qml:167
#, kde-format
msgid "Playlists"
msgstr "Listas de músicas"
#: contents/ui/SearchPage.qml:36
#: contents/ui/LibraryPage.qml:650
#, kde-format
msgid "Unknown"
msgstr "Desconhecido"
msgid "No Playlists Yet"
msgstr "Nenhuma lista de músicas ainda"
#: contents/ui/SearchPage.qml:117
#: contents/ui/LibraryPage.qml:670 contents/ui/LibraryPage.qml:692
#: contents/ui/LocalPlaylistsPage.qml:33 contents/ui/LocalPlaylistsPage.qml:55
#, kde-format
msgid "Play next"
msgstr "Reproduzir próxima"
msgid "Rename"
msgstr "Renomear"
#: contents/ui/SearchPage.qml:129
#: contents/ui/LibraryPage.qml:679 contents/ui/LibraryPage.qml:700
#: contents/ui/LocalPlaylistsPage.qml:42 contents/ui/LocalPlaylistsPage.qml:63
#, kde-format
msgid "Radio"
msgstr "Rádio"
msgid "Delete"
msgstr "Excluir"
#: contents/ui/SearchPage.qml:147
#: contents/ui/LocalPlaylistPage.qml:19
#, kde-format
msgid "Find music on YouTube Music"
msgstr "Encontre músicas no YouTube Music"
msgid "Remove from Playlist"
msgstr "Remover da lista de músicas"
#: contents/ui/SearchPage.qml:150
#: contents/ui/LocalPlaylistPage.qml:29
#, kde-format
msgid "This playlist is still empty"
msgstr "Esta lista de música está vazia"
#: contents/ui/main.qml:109 main.cpp:59
#, kde-format
msgid "AudioTube"
msgstr "AudioTube"
#: contents/ui/MaximizedPlayerPage.qml:196
#: contents/ui/MinimizedPlayerControls.qml:93
#, kde-format
msgid "No media playing"
msgstr "Nenhuma mídia em reprodução"
#: contents/ui/MaximizedPlayerPage.qml:571
#, kde-format
msgid "%1%"
msgstr "%1%"
#: contents/ui/MaximizedPlayerPage.qml:839
#: contents/ui/MaximizedPlayerPage.qml:1016
#, kde-format
msgid "Remove Track"
msgstr "Remover faixa"
#: contents/ui/MaximizedPlayerPage.qml:870
#, kde-format
msgid "Clear Playlist"
msgstr "Limpar lista de músicas"
#: contents/ui/MaximizedPlayerPage.qml:917
#, kde-format
msgid "Upcoming Songs"
msgstr "Próximas músicas"
#: contents/ui/NavigationBar.qml:24 contents/ui/Sidebar.qml:100
#, kde-format
msgid "Library"
msgstr "Biblioteca"
#: contents/ui/NavigationBar.qml:36 contents/ui/Sidebar.qml:116
#, kde-format
msgid "Search"
msgstr "Pesquisar"
#: contents/ui/PlaybackHistory.qml:15
#, kde-format
msgid "Unknown list of songs"
msgstr "Lista de músicas desconhecida"
#: contents/ui/PlaybackHistory.qml:74
#, kde-format
msgid "No songs here yet"
msgstr "Nenhuma música ainda"
#: contents/ui/PlaylistPage.qml:67
#, kde-format
msgid "Playlist"
msgstr "Lista de músicas"
#: contents/ui/SearchHistoryPage.qml:86 contents/ui/SearchWithDropdown.qml:412
#, kde-format
msgid "remove from search history"
msgstr "remover do histórico de pesquisa"
#: contents/ui/SearchPage.qml:16
#, kde-format
msgid "Previous Searches:"
msgstr "Pesquisas anteriores:"
#: contents/ui/SearchPage.qml:28
#, kde-format
msgid "Artists"
msgstr "Artistas"
#: contents/ui/SearchPage.qml:37
#, kde-format
msgid "Unknown"
msgstr "Desconhecido"
#: contents/ui/SearchWithDropdown.qml:359
#, kde-format
msgid "No matching previous searches"
msgstr "Nenhuma pesquisa anterior correspondente"
#: contents/ui/ShareMenu.qml:39
#, kde-format
msgid "Share to"
msgstr "Compartilhar para"
#: contents/ui/ShareMenu.qml:49 contents/ui/ShareMenu.qml:99
#, kde-format
msgid "Copy Link"
msgstr "Copiar link"
#: contents/ui/ShareMenu.qml:54 contents/ui/ShareMenu.qml:104
#, kde-format
msgid "Link copied to clipboard"
msgstr "Link copiado para a área de transferência"
#: contents/ui/Sidebar.qml:189
#, kde-format
msgid "About"
msgstr "Sobre"
#: contents/ui/Sidebar.qml:203
#, kde-format
msgid "Collapse Sidebar"
msgstr "Recolher barra lateral"
#: contents/ui/SongMenu.qml:107 contents/ui/SongMenu.qml:205
#, kde-format
msgid "Play Next"
msgstr "Reproduzir próxima"
#: contents/ui/SongMenu.qml:116 contents/ui/SongMenu.qml:211
#, kde-format
msgid "Add to queue"
msgstr "Adicionar à fila"
#: contents/ui/SongMenu.qml:126 contents/ui/SongMenu.qml:221
#, kde-format
msgid "Remove Favourite"
msgstr "Remover das favoritas"
#: contents/ui/SongMenu.qml:126 contents/ui/SongMenu.qml:221
#, kde-format
msgid "Add Favourite"
msgstr "Adicionar favorita"
#: contents/ui/SongMenu.qml:143 contents/ui/SongMenu.qml:235
#, kde-format
msgid "Remove from History"
msgstr "Remover do histórico"
#: contents/ui/SongMenu.qml:156 contents/ui/SongMenu.qml:244
#, kde-format
msgid "Add to playlist"
msgstr "Adicionar à lista de músicas"
#: contents/ui/SongMenu.qml:183 contents/ui/SongMenu.qml:269
#, kde-format
msgid "Share Song"
msgstr "Compartilhar música"
#: main.cpp:61
#, kde-format
msgid "YouTube Music Player"
msgstr "Reprodutor de músicas do Youtube"
#: main.cpp:63
#, kde-format
msgid "© 2021-2023 Jonah Brüchert, 2021-2023 KDE Community"
msgstr "© 2021-2023 Jonah Brüchert, 2021-2023 Comunidade KDE"
#: main.cpp:64
#, kde-format
msgid "Jonah Brüchert"
msgstr "Jonah Brüchert"
#: main.cpp:64
#, kde-format
msgid "Maintainer"
msgstr "Mantenedor"
#: main.cpp:65
#, kde-format
msgid "Mathis Brüchert"
msgstr "Mathis Brüchert"
#: main.cpp:65
#, kde-format
msgid "Designer"
msgstr "Designer"
#: main.cpp:66
#, kde-format
msgctxt "NAME OF TRANSLATORS"
msgid "Your names"
msgstr "Luiz Fernando Ranghetti"
#: main.cpp:66
#, kde-format
msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails"
msgstr "[email protected]"
#: main.cpp:71
#, kde-format
msgid "Unofficial API for YouTube Music"
msgstr "API não oficial do YouTube Music"
#~ msgid "played Songs"
#~ msgstr "músicas reproduzidas"
#~ msgid "Now Playing"
#~ msgstr "Reproduzindo agora"
#~ msgid "Queue"
#~ msgstr "Fila"
#~ msgid "Lyrics"
#~ msgstr "Letras"
#~ msgid "Back"
#~ msgstr "Voltar"
#~ msgid "Play next"
#~ msgstr "Reproduzir próxima"
#~ msgid "Clear"
#~ msgstr "Limpar"
#~ msgid "Pause"
#~ msgstr "Pausar"
#~ msgid "Expand"
#~ msgstr "Expandir"
#~ msgid "Play only Audio"
#~ msgstr "Reproduzir apenas áudio"
+352 -86
View File
@@ -1,13 +1,13 @@
# Copyright (C) YEAR This file is copyright:
# This file is distributed under the same license as the audiotube package.
#
# Alexander Yavorsky <[email protected]>, 2022.
# Alexander Yavorsky <[email protected]>, 2022, 2023.
msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2022-05-23 00:47+0000\n"
"PO-Revision-Date: 2022-05-10 21:39+0300\n"
"POT-Creation-Date: 2023-04-23 04:10+0000\n"
"PO-Revision-Date: 2023-04-30 14:45+0300\n"
"Last-Translator: Alexander Yavorsky <[email protected]>\n"
"Language-Team: Russian <[email protected]>\n"
"Language: ru\n"
@@ -18,57 +18,91 @@ msgstr ""
"%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
"X-Generator: Lokalize 21.08.3\n"
#, kde-format
msgctxt "NAME OF TRANSLATORS"
msgid "Your names"
msgstr "Александр Яворский"
#, kde-format
msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails"
msgstr "[email protected]"
#: contents/ui/AlbumPage.qml:19 contents/ui/PlayerFooter.qml:192
#: contents/ui/PlaylistPage.qml:19
#: contents/ui/AlbumPage.qml:26 contents/ui/LibraryPage.qml:37
#: contents/ui/LibraryPage.qml:63 contents/ui/LibraryPage.qml:84
#: contents/ui/LibraryPage.qml:332 contents/ui/LibraryPage.qml:358
#: contents/ui/LibraryPage.qml:379 contents/ui/LocalPlaylistPage.qml:42
#: contents/ui/PlaybackHistory.qml:23 contents/ui/PlaylistPage.qml:31
#, kde-format
msgid "Play"
msgstr "Воспроизвести"
#: contents/ui/AlbumPage.qml:61 contents/ui/ArtistPage.qml:101
#: contents/ui/PlaylistPage.qml:67
#: contents/ui/AlbumPage.qml:33 contents/ui/ArtistPage.qml:36
#: contents/ui/LibraryPage.qml:44 contents/ui/LibraryPage.qml:69
#: contents/ui/LibraryPage.qml:92 contents/ui/LibraryPage.qml:339
#: contents/ui/LibraryPage.qml:364 contents/ui/LibraryPage.qml:388
#: contents/ui/LocalPlaylistPage.qml:49 contents/ui/MaximizedPlayerPage.qml:891
#: contents/ui/PlaybackHistory.qml:36 contents/ui/PlaylistPage.qml:38
#, kde-format
msgid "Play Next"
msgstr "Воспроизвести следующий"
msgid "Shuffle"
msgstr "Перемешать"
#: contents/ui/AlbumPage.qml:66 contents/ui/ArtistPage.qml:107
#: contents/ui/PlaylistPage.qml:72 contents/ui/SearchPage.qml:123
#: contents/ui/AlbumPage.qml:41 contents/ui/LibraryPage.qml:74
#: contents/ui/LibraryPage.qml:100 contents/ui/LibraryPage.qml:369
#: contents/ui/LibraryPage.qml:396 contents/ui/LocalPlaylistPage.qml:55
#: contents/ui/PlaybackHistory.qml:48 contents/ui/PlaylistPage.qml:46
#, kde-format
msgid "Add to Playlist"
msgstr ""
msgid "Append to queue"
msgstr "Добавить в очередь воспроизведения"
#: contents/ui/ArtistPage.qml:39 contents/ui/SearchPage.qml:67
#: contents/ui/AlbumPage.qml:46 contents/ui/ArtistPage.qml:43
#: contents/ui/PlaylistPage.qml:51
#, kde-format
msgid "Open in Browser"
msgstr "Открыть в браузере"
#: contents/ui/AlbumPage.qml:51 contents/ui/ArtistPage.qml:48
#: contents/ui/PlaylistPage.qml:56
#, kde-format
msgid "Share"
msgstr "Поделиться"
#: contents/ui/AlbumPage.qml:61
#, kde-format
msgid "Album • %1"
msgstr "Альбом • %1"
#: contents/ui/AlbumPage.qml:105 contents/ui/ArtistPage.qml:137
#: contents/ui/LocalPlaylistPage.qml:114 contents/ui/PlaybackHistory.qml:127
#: contents/ui/PlaylistPage.qml:116 contents/ui/SearchPage.qml:130
#, kde-format
msgid "More"
msgstr "Дополнительно"
#: contents/ui/ArtistPage.qml:31
#, kde-format
msgid "Radio"
msgstr "Радио"
#: contents/ui/ArtistPage.qml:57
#, kde-format
msgid "Artist"
msgstr "Исполнитель"
#: contents/ui/ArtistPage.qml:79 contents/ui/SearchPage.qml:70
#, 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:55 contents/ui/SearchPage.qml:25
#: contents/ui/ArtistPage.qml:96 contents/ui/SearchPage.qml:26
#, kde-format
msgid "Albums"
msgstr "Альбомы"
#: contents/ui/ArtistPage.qml:57
#: contents/ui/ArtistPage.qml:98
#, kde-format
msgid "Singles"
msgstr ""
msgstr "Синглы"
#: contents/ui/ArtistPage.qml:59 contents/ui/SearchPage.qml:31
#: contents/ui/ArtistPage.qml:100 contents/ui/SearchPage.qml:32
#, kde-format
msgid "Songs"
msgstr ""
msgstr "Треки"
#: contents/ui/ArtistPage.qml:61 contents/ui/SearchPage.qml:33
#: contents/ui/ArtistPage.qml:102 contents/ui/SearchPage.qml:34
#, kde-format
msgid "Videos"
msgstr "Видеозаписи"
@@ -83,82 +117,314 @@ msgstr "ОК"
msgid "Cancel"
msgstr "Отмена"
#: contents/ui/LibraryPage.qml:15
#: contents/ui/dialogs/AddPlaylistDialog.qml:17
#, kde-format
msgid "Add playlist"
msgstr "Создание списка воспроизведения"
#: contents/ui/dialogs/AddPlaylistDialog.qml:23
#: contents/ui/dialogs/RenamePlaylistDialog.qml:24
#, kde-format
msgid "Playlist Title"
msgstr "Название"
#: contents/ui/dialogs/AddPlaylistDialog.qml:28
#: contents/ui/dialogs/RenamePlaylistDialog.qml:30
#, kde-format
msgid "Playlist Description"
msgstr "Описание"
#: contents/ui/dialogs/PlaylistDialog.qml:20
#, kde-format
msgid "Add Song to Playlist"
msgstr "Добавление трека в список воспроизведения"
#: contents/ui/dialogs/PlaylistDialog.qml:29
#: contents/ui/LocalPlaylistsPage.qml:90
#, kde-format
msgid "New Playlist"
msgstr "Создать список воспроизведения"
#: contents/ui/dialogs/RenamePlaylistDialog.qml:18
#, kde-format
msgid "Rename playlist"
msgstr "Переименовать список воспроизведения"
#: contents/ui/LibraryPage.qml:30 contents/ui/LibraryPage.qml:123
#: contents/ui/NavigationBar.qml:48 contents/ui/NavigationBar.qml:54
#: contents/ui/Sidebar.qml:131 contents/ui/Sidebar.qml:138
#, kde-format
msgid "Favourites"
msgstr ""
msgstr "Избранное"
#: contents/ui/LibraryPage.qml:67
#: contents/ui/LibraryPage.qml:119 contents/ui/LibraryPage.qml:416
#: contents/ui/LibraryPage.qml:623
#, kde-format
msgid "Show All"
msgstr "Показать все"
#: contents/ui/LibraryPage.qml:147
#, kde-format
msgid "No Favourites Yet"
msgstr "В избранное ещё ничего не добавлено"
#: contents/ui/LibraryPage.qml:325
#, kde-format
msgid "Most played"
msgstr ""
msgstr "Часто воспроизводимые"
#: contents/ui/main.qml:94
#: contents/ui/LibraryPage.qml:420 contents/ui/NavigationBar.qml:61
#: contents/ui/NavigationBar.qml:67 contents/ui/Sidebar.qml:150
#: contents/ui/Sidebar.qml:157
#, kde-format
msgid "Played Songs"
msgstr "Воспроизведённые треки"
#: contents/ui/LibraryPage.qml:444
#, kde-format
msgid "No Songs Played Yet"
msgstr "Пока ничего не воспроизводилось"
#: contents/ui/LibraryPage.qml:611 contents/ui/LocalPlaylistsPage.qml:18
#: contents/ui/LocalPlaylistsPage.qml:78 contents/ui/NavigationBar.qml:75
#: contents/ui/SearchPage.qml:30 contents/ui/Sidebar.qml:167
#, kde-format
msgid "Playlists"
msgstr "Списки воспроизведения"
#: contents/ui/LibraryPage.qml:650
#, kde-format
msgid "No Playlists Yet"
msgstr "Пока нет ни одного списка воспроизведения"
#: contents/ui/LibraryPage.qml:670 contents/ui/LibraryPage.qml:692
#: contents/ui/LocalPlaylistsPage.qml:33 contents/ui/LocalPlaylistsPage.qml:55
#, kde-format
msgid "Rename"
msgstr "Переименовать"
#: contents/ui/LibraryPage.qml:679 contents/ui/LibraryPage.qml:700
#: contents/ui/LocalPlaylistsPage.qml:42 contents/ui/LocalPlaylistsPage.qml:63
#, kde-format
msgid "Delete"
msgstr "Удалить"
#: contents/ui/LocalPlaylistPage.qml:19
#, kde-format
msgid "Remove from Playlist"
msgstr "Удалить из списка воспроизведения"
#: contents/ui/LocalPlaylistPage.qml:29
#, kde-format
msgid "This playlist is still empty"
msgstr "Список воспроизведения всё ещё пуст"
#: contents/ui/main.qml:109 main.cpp:59
#, kde-format
msgid "AudioTube"
msgstr "AudioTube"
#: contents/ui/PlayerFooter.qml:124
#: contents/ui/MaximizedPlayerPage.qml:196
#: contents/ui/MinimizedPlayerControls.qml:93
#, kde-format
msgid "No media playing"
msgstr "Ничего не воспроизводится"
#: contents/ui/MaximizedPlayerPage.qml:571
#, kde-format
msgid "%1%"
msgstr "%1%"
#: contents/ui/MaximizedPlayerPage.qml:839
#: contents/ui/MaximizedPlayerPage.qml:1016
#, kde-format
msgid "Remove Track"
msgstr "Удалить дорожку"
#: contents/ui/PlayerFooter.qml:141
#: contents/ui/MaximizedPlayerPage.qml:870
#, kde-format
msgid "Clear"
msgstr "Очистить"
msgid "Clear Playlist"
msgstr "Очистить список воспроизведения"
#: contents/ui/PlayerFooter.qml:146 contents/ui/PlaylistPage.qml:26
#: contents/ui/MaximizedPlayerPage.qml:917
#, kde-format
msgid "Shuffle"
msgstr "Перемешать"
msgid "Upcoming Songs"
msgstr "Следующие треки"
#: contents/ui/PlayerFooter.qml:192
#: contents/ui/NavigationBar.qml:24 contents/ui/Sidebar.qml:100
#, kde-format
msgid "Pause"
msgstr "Приостановить"
msgid "Library"
msgstr "Библиотека"
#: contents/ui/PlayerFooter.qml:222
#, kde-format
msgid "No media playing"
msgstr ""
#: contents/ui/PlayerFooter.qml:266
#, kde-format
msgid "Expand"
msgstr ""
#: contents/ui/SearchPage.qml:27
#, kde-format
msgid "Artists"
msgstr ""
#: contents/ui/SearchPage.qml:29
#, kde-format
msgid "Playlists"
msgstr ""
#: contents/ui/SearchPage.qml:36
#, kde-format
msgid "Unknown"
msgstr ""
#: contents/ui/SearchPage.qml:117
#, kde-format
msgid "Play next"
msgstr ""
#: contents/ui/SearchPage.qml:129
#, kde-format
msgid "Radio"
msgstr "Радио"
#: contents/ui/SearchPage.qml:147
#, kde-format
msgid "Find music on YouTube Music"
msgstr ""
#: contents/ui/SearchPage.qml:150
#: contents/ui/NavigationBar.qml:36 contents/ui/Sidebar.qml:116
#, kde-format
msgid "Search"
msgstr "Поиск"
#: contents/ui/PlaybackHistory.qml:15
#, kde-format
msgid "Unknown list of songs"
msgstr "Неизвестный список треков"
#: contents/ui/PlaybackHistory.qml:74
#, kde-format
msgid "No songs here yet"
msgstr "Пока нет ни одного трека"
#: contents/ui/PlaylistPage.qml:67
#, kde-format
msgid "Playlist"
msgstr "Список воспроизведения"
#: contents/ui/SearchHistoryPage.qml:86 contents/ui/SearchWithDropdown.qml:412
#, kde-format
msgid "remove from search history"
msgstr "Удалить из истории поиска"
#: contents/ui/SearchPage.qml:16
#, kde-format
msgid "Previous Searches:"
msgstr "Предыдущие поисковые запросы:"
#: contents/ui/SearchPage.qml:28
#, kde-format
msgid "Artists"
msgstr "Исполнители"
#: contents/ui/SearchPage.qml:37
#, kde-format
msgid "Unknown"
msgstr "Неизвестный тип"
#: contents/ui/SearchWithDropdown.qml:359
#, kde-format
msgid "No matching previous searches"
msgstr "Не найдено соответствующих предыдущих поисковых запросов"
#: contents/ui/ShareMenu.qml:39
#, kde-format
msgid "Share to"
msgstr "Выбор способа публикации"
#: contents/ui/ShareMenu.qml:49 contents/ui/ShareMenu.qml:99
#, kde-format
msgid "Copy Link"
msgstr "Копировать адрес ссылки"
#: contents/ui/ShareMenu.qml:54 contents/ui/ShareMenu.qml:104
#, kde-format
msgid "Link copied to clipboard"
msgstr "Ссылка скопирована в буфер обмена"
#: contents/ui/Sidebar.qml:189
#, kde-format
msgid "About"
msgstr "О программе"
#: contents/ui/Sidebar.qml:203
#, kde-format
msgid "Collapse Sidebar"
msgstr "Свернуть боковую панель"
#: contents/ui/SongMenu.qml:107 contents/ui/SongMenu.qml:205
#, kde-format
msgid "Play Next"
msgstr "Воспроизвести следующим"
#: contents/ui/SongMenu.qml:116 contents/ui/SongMenu.qml:211
#, kde-format
msgid "Add to queue"
msgstr "Добавить в очередь воспроизведения"
#: contents/ui/SongMenu.qml:126 contents/ui/SongMenu.qml:221
#, kde-format
msgid "Remove Favourite"
msgstr "Убрать из избранного"
#: contents/ui/SongMenu.qml:126 contents/ui/SongMenu.qml:221
#, kde-format
msgid "Add Favourite"
msgstr "Добавить в избранное"
#: contents/ui/SongMenu.qml:143 contents/ui/SongMenu.qml:235
#, kde-format
msgid "Remove from History"
msgstr "Удалить из журнала"
#: contents/ui/SongMenu.qml:156 contents/ui/SongMenu.qml:244
#, kde-format
msgid "Add to playlist"
msgstr "Добавить в список воспроизведения"
#: contents/ui/SongMenu.qml:183 contents/ui/SongMenu.qml:269
#, kde-format
msgid "Share Song"
msgstr "Опубликовать трек"
#: main.cpp:61
#, kde-format
msgid "YouTube Music Player"
msgstr "Музыкальный проигрыватель YouTube"
#: main.cpp:63
#, kde-format
msgid "© 2021-2023 Jonah Brüchert, 2021-2023 KDE Community"
msgstr "© 2021-2023 Jonah Brüchert, 2021-2023 сообщество KDE"
#: main.cpp:64
#, kde-format
msgid "Jonah Brüchert"
msgstr "Jonah Brüchert"
#: main.cpp:64
#, kde-format
msgid "Maintainer"
msgstr "Сопровождающий"
#: main.cpp:65
#, kde-format
msgid "Mathis Brüchert"
msgstr "Mathis Brüchert"
#: main.cpp:65
#, kde-format
msgid "Designer"
msgstr "Дизайнер"
#: main.cpp:66
#, kde-format
msgctxt "NAME OF TRANSLATORS"
msgid "Your names"
msgstr "Александр Яворский, Павел Чернышов, Мария Шикунова"
#: main.cpp:66
#, kde-format
msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails"
msgstr "[email protected], [email protected], [email protected]"
#: main.cpp:71
#, kde-format
msgid "Unofficial API for YouTube Music"
msgstr "Неофициальный API для YouTube Music"
#~ msgid "played Songs"
#~ msgstr "Воспроизведённые треки"
#~ msgid "Now Playing"
#~ msgstr "Текущий трек"
#~ msgid "Queue"
#~ msgstr "Очередь воспроизведения"
#~ msgid "Lyrics"
#~ msgstr "Текст песни"
#~ msgid "Back"
#~ msgstr "Назад"
#~ msgid "Clear"
#~ msgstr "Очистить"
#~ msgid "Pause"
#~ msgstr "Приостановить"
+350 -80
View File
@@ -4,7 +4,7 @@ msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2022-05-23 00:47+0000\n"
"POT-Creation-Date: 2023-04-23 04:10+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"
@@ -15,58 +15,91 @@ msgstr ""
"X-Generator: Lokalize 21.12.3\n"
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
#, kde-format
msgctxt "NAME OF TRANSLATORS"
msgid "Your names"
msgstr "Roman Paholík"
#, kde-format
msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails"
msgstr "[email protected]"
#: contents/ui/AlbumPage.qml:19 contents/ui/PlayerFooter.qml:192
#: contents/ui/PlaylistPage.qml:19
#: contents/ui/AlbumPage.qml:26 contents/ui/LibraryPage.qml:37
#: contents/ui/LibraryPage.qml:63 contents/ui/LibraryPage.qml:84
#: contents/ui/LibraryPage.qml:332 contents/ui/LibraryPage.qml:358
#: contents/ui/LibraryPage.qml:379 contents/ui/LocalPlaylistPage.qml:42
#: contents/ui/PlaybackHistory.qml:23 contents/ui/PlaylistPage.qml:31
#, kde-format
msgid "Play"
msgstr "Prehrať"
#: contents/ui/AlbumPage.qml:61 contents/ui/ArtistPage.qml:101
#: contents/ui/PlaylistPage.qml:67
#, fuzzy, kde-format
#| msgid "Play"
msgid "Play Next"
msgstr "Prehrať"
#: contents/ui/AlbumPage.qml:66 contents/ui/ArtistPage.qml:107
#: contents/ui/PlaylistPage.qml:72 contents/ui/SearchPage.qml:123
#: contents/ui/AlbumPage.qml:33 contents/ui/ArtistPage.qml:36
#: contents/ui/LibraryPage.qml:44 contents/ui/LibraryPage.qml:69
#: contents/ui/LibraryPage.qml:92 contents/ui/LibraryPage.qml:339
#: contents/ui/LibraryPage.qml:364 contents/ui/LibraryPage.qml:388
#: contents/ui/LocalPlaylistPage.qml:49 contents/ui/MaximizedPlayerPage.qml:891
#: contents/ui/PlaybackHistory.qml:36 contents/ui/PlaylistPage.qml:38
#, kde-format
msgid "Add to Playlist"
msgstr "Pridať do zoznamu skladieb"
msgid "Shuffle"
msgstr "Zamiešať"
#: contents/ui/ArtistPage.qml:39 contents/ui/SearchPage.qml:67
#: contents/ui/AlbumPage.qml:41 contents/ui/LibraryPage.qml:74
#: contents/ui/LibraryPage.qml:100 contents/ui/LibraryPage.qml:369
#: contents/ui/LibraryPage.qml:396 contents/ui/LocalPlaylistPage.qml:55
#: contents/ui/PlaybackHistory.qml:48 contents/ui/PlaylistPage.qml:46
#, kde-format
msgid "Append to queue"
msgstr ""
#: contents/ui/AlbumPage.qml:46 contents/ui/ArtistPage.qml:43
#: contents/ui/PlaylistPage.qml:51
#, kde-format
msgid "Open in Browser"
msgstr ""
#: contents/ui/AlbumPage.qml:51 contents/ui/ArtistPage.qml:48
#: contents/ui/PlaylistPage.qml:56
#, kde-format
msgid "Share"
msgstr ""
#: contents/ui/AlbumPage.qml:61
#, kde-format
msgid "Album • %1"
msgstr ""
#: contents/ui/AlbumPage.qml:105 contents/ui/ArtistPage.qml:137
#: contents/ui/LocalPlaylistPage.qml:114 contents/ui/PlaybackHistory.qml:127
#: contents/ui/PlaylistPage.qml:116 contents/ui/SearchPage.qml:130
#, kde-format
msgid "More"
msgstr ""
#: contents/ui/ArtistPage.qml:31
#, kde-format
msgid "Radio"
msgstr "Rádio"
#: contents/ui/ArtistPage.qml:57
#, fuzzy, kde-format
#| msgid "Artists"
msgid "Artist"
msgstr "Interpreti"
#: contents/ui/ArtistPage.qml:79 contents/ui/SearchPage.qml:70
#, kde-format
msgid ""
"Video playback is not supported yet. Do you want to play only the audio of "
"\"%1\"?"
msgstr ""
#: contents/ui/ArtistPage.qml:55 contents/ui/SearchPage.qml:25
#: contents/ui/ArtistPage.qml:96 contents/ui/SearchPage.qml:26
#, kde-format
msgid "Albums"
msgstr "Albumy"
#: contents/ui/ArtistPage.qml:57
#: contents/ui/ArtistPage.qml:98
#, kde-format
msgid "Singles"
msgstr "Samotné"
#: contents/ui/ArtistPage.qml:59 contents/ui/SearchPage.qml:31
#: contents/ui/ArtistPage.qml:100 contents/ui/SearchPage.qml:32
#, kde-format
msgid "Songs"
msgstr ""
#: contents/ui/ArtistPage.qml:61 contents/ui/SearchPage.qml:33
#: contents/ui/ArtistPage.qml:102 contents/ui/SearchPage.qml:34
#, kde-format
msgid "Videos"
msgstr "Videá"
@@ -81,82 +114,319 @@ msgstr "OK"
msgid "Cancel"
msgstr "Zrušiť"
#: contents/ui/LibraryPage.qml:15
#: contents/ui/dialogs/AddPlaylistDialog.qml:17
#, fuzzy, kde-format
#| msgid "Add to Playlist"
msgid "Add playlist"
msgstr "Pridať do zoznamu skladieb"
#: contents/ui/dialogs/AddPlaylistDialog.qml:23
#: contents/ui/dialogs/RenamePlaylistDialog.qml:24
#, fuzzy, kde-format
#| msgid "Playlists"
msgid "Playlist Title"
msgstr "Zoznamy skladieb"
#: contents/ui/dialogs/AddPlaylistDialog.qml:28
#: contents/ui/dialogs/RenamePlaylistDialog.qml:30
#, fuzzy, kde-format
#| msgid "Playlists"
msgid "Playlist Description"
msgstr "Zoznamy skladieb"
#: contents/ui/dialogs/PlaylistDialog.qml:20
#, fuzzy, kde-format
#| msgid "Add to Playlist"
msgid "Add Song to Playlist"
msgstr "Pridať do zoznamu skladieb"
#: contents/ui/dialogs/PlaylistDialog.qml:29
#: contents/ui/LocalPlaylistsPage.qml:90
#, fuzzy, kde-format
#| msgid "Playlists"
msgid "New Playlist"
msgstr "Zoznamy skladieb"
#: contents/ui/dialogs/RenamePlaylistDialog.qml:18
#, fuzzy, kde-format
#| msgid "Playlists"
msgid "Rename playlist"
msgstr "Zoznamy skladieb"
#: contents/ui/LibraryPage.qml:30 contents/ui/LibraryPage.qml:123
#: contents/ui/NavigationBar.qml:48 contents/ui/NavigationBar.qml:54
#: contents/ui/Sidebar.qml:131 contents/ui/Sidebar.qml:138
#, kde-format
msgid "Favourites"
msgstr ""
#: contents/ui/LibraryPage.qml:67
#: contents/ui/LibraryPage.qml:119 contents/ui/LibraryPage.qml:416
#: contents/ui/LibraryPage.qml:623
#, kde-format
msgid "Show All"
msgstr ""
#: contents/ui/LibraryPage.qml:147
#, kde-format
msgid "No Favourites Yet"
msgstr ""
#: contents/ui/LibraryPage.qml:325
#, kde-format
msgid "Most played"
msgstr ""
#: contents/ui/main.qml:94
#: contents/ui/LibraryPage.qml:420 contents/ui/NavigationBar.qml:61
#: contents/ui/NavigationBar.qml:67 contents/ui/Sidebar.qml:150
#: contents/ui/Sidebar.qml:157
#, kde-format
msgid "AudioTube"
msgstr "AudioTube"
#: contents/ui/PlayerFooter.qml:124
#, kde-format
msgid "Remove Track"
msgid "Played Songs"
msgstr ""
#: contents/ui/PlayerFooter.qml:141
#: contents/ui/LibraryPage.qml:444
#, kde-format
msgid "Clear"
msgstr "Vyčistiť"
msgid "No Songs Played Yet"
msgstr ""
#: contents/ui/PlayerFooter.qml:146 contents/ui/PlaylistPage.qml:26
#, kde-format
msgid "Shuffle"
msgstr "Zamiešať"
#: contents/ui/PlayerFooter.qml:192
#, kde-format
msgid "Pause"
msgstr "Pozastaviť"
#: contents/ui/PlayerFooter.qml:222
#, kde-format
msgid "No media playing"
msgstr "Neprehráva sa žiadne médium"
#: contents/ui/PlayerFooter.qml:266
#, kde-format
msgid "Expand"
msgstr "Rozvinúť"
#: contents/ui/SearchPage.qml:27
#, kde-format
msgid "Artists"
msgstr "Interpreti"
#: contents/ui/SearchPage.qml:29
#: contents/ui/LibraryPage.qml:611 contents/ui/LocalPlaylistsPage.qml:18
#: contents/ui/LocalPlaylistsPage.qml:78 contents/ui/NavigationBar.qml:75
#: contents/ui/SearchPage.qml:30 contents/ui/Sidebar.qml:167
#, kde-format
msgid "Playlists"
msgstr "Zoznamy skladieb"
#: contents/ui/SearchPage.qml:36
#: contents/ui/LibraryPage.qml:650
#, fuzzy, kde-format
#| msgid "Playlists"
msgid "No Playlists Yet"
msgstr "Zoznamy skladieb"
#: contents/ui/LibraryPage.qml:670 contents/ui/LibraryPage.qml:692
#: contents/ui/LocalPlaylistsPage.qml:33 contents/ui/LocalPlaylistsPage.qml:55
#, kde-format
msgid "Rename"
msgstr ""
#: contents/ui/LibraryPage.qml:679 contents/ui/LibraryPage.qml:700
#: contents/ui/LocalPlaylistsPage.qml:42 contents/ui/LocalPlaylistsPage.qml:63
#, kde-format
msgid "Delete"
msgstr ""
#: contents/ui/LocalPlaylistPage.qml:19
#, fuzzy, kde-format
#| msgid "Playlists"
msgid "Remove from Playlist"
msgstr "Zoznamy skladieb"
#: contents/ui/LocalPlaylistPage.qml:29
#, kde-format
msgid "This playlist is still empty"
msgstr ""
#: contents/ui/main.qml:109 main.cpp:59
#, kde-format
msgid "AudioTube"
msgstr "AudioTube"
#: contents/ui/MaximizedPlayerPage.qml:196
#: contents/ui/MinimizedPlayerControls.qml:93
#, kde-format
msgid "No media playing"
msgstr "Neprehráva sa žiadne médium"
#: contents/ui/MaximizedPlayerPage.qml:571
#, kde-format
msgid "%1%"
msgstr ""
#: contents/ui/MaximizedPlayerPage.qml:839
#: contents/ui/MaximizedPlayerPage.qml:1016
#, kde-format
msgid "Remove Track"
msgstr ""
#: contents/ui/MaximizedPlayerPage.qml:870
#, fuzzy, kde-format
#| msgid "Playlists"
msgid "Clear Playlist"
msgstr "Zoznamy skladieb"
#: contents/ui/MaximizedPlayerPage.qml:917
#, kde-format
msgid "Upcoming Songs"
msgstr ""
#: contents/ui/NavigationBar.qml:24 contents/ui/Sidebar.qml:100
#, kde-format
msgid "Library"
msgstr ""
#: contents/ui/NavigationBar.qml:36 contents/ui/Sidebar.qml:116
#, kde-format
msgid "Search"
msgstr "Hľadať"
#: contents/ui/PlaybackHistory.qml:15
#, kde-format
msgid "Unknown list of songs"
msgstr ""
#: contents/ui/PlaybackHistory.qml:74
#, kde-format
msgid "No songs here yet"
msgstr ""
#: contents/ui/PlaylistPage.qml:67
#, fuzzy, kde-format
#| msgid "Playlists"
msgid "Playlist"
msgstr "Zoznamy skladieb"
#: contents/ui/SearchHistoryPage.qml:86 contents/ui/SearchWithDropdown.qml:412
#, kde-format
msgid "remove from search history"
msgstr ""
#: contents/ui/SearchPage.qml:16
#, kde-format
msgid "Previous Searches:"
msgstr ""
#: contents/ui/SearchPage.qml:28
#, kde-format
msgid "Artists"
msgstr "Interpreti"
#: contents/ui/SearchPage.qml:37
#, kde-format
msgid "Unknown"
msgstr "Neznáme"
#: contents/ui/SearchPage.qml:117
#: contents/ui/SearchWithDropdown.qml:359
#, kde-format
msgid "Play next"
msgid "No matching previous searches"
msgstr ""
#: contents/ui/SearchPage.qml:129
#: contents/ui/ShareMenu.qml:39
#, kde-format
msgid "Radio"
msgstr "Rádio"
#: contents/ui/SearchPage.qml:147
#, kde-format
msgid "Find music on YouTube Music"
msgid "Share to"
msgstr ""
#: contents/ui/SearchPage.qml:150
#: contents/ui/ShareMenu.qml:49 contents/ui/ShareMenu.qml:99
#, kde-format
msgid "Search"
msgstr "Hľadať"
msgid "Copy Link"
msgstr ""
#: contents/ui/ShareMenu.qml:54 contents/ui/ShareMenu.qml:104
#, kde-format
msgid "Link copied to clipboard"
msgstr ""
#: contents/ui/Sidebar.qml:189
#, kde-format
msgid "About"
msgstr ""
#: contents/ui/Sidebar.qml:203
#, kde-format
msgid "Collapse Sidebar"
msgstr ""
#: contents/ui/SongMenu.qml:107 contents/ui/SongMenu.qml:205
#, fuzzy, kde-format
#| msgid "Play"
msgid "Play Next"
msgstr "Prehrať"
#: contents/ui/SongMenu.qml:116 contents/ui/SongMenu.qml:211
#, kde-format
msgid "Add to queue"
msgstr ""
#: contents/ui/SongMenu.qml:126 contents/ui/SongMenu.qml:221
#, kde-format
msgid "Remove Favourite"
msgstr ""
#: contents/ui/SongMenu.qml:126 contents/ui/SongMenu.qml:221
#, kde-format
msgid "Add Favourite"
msgstr ""
#: contents/ui/SongMenu.qml:143 contents/ui/SongMenu.qml:235
#, kde-format
msgid "Remove from History"
msgstr ""
#: contents/ui/SongMenu.qml:156 contents/ui/SongMenu.qml:244
#, fuzzy, kde-format
#| msgid "Add to Playlist"
msgid "Add to playlist"
msgstr "Pridať do zoznamu skladieb"
#: contents/ui/SongMenu.qml:183 contents/ui/SongMenu.qml:269
#, kde-format
msgid "Share Song"
msgstr ""
#: main.cpp:61
#, kde-format
msgid "YouTube Music Player"
msgstr ""
#: main.cpp:63
#, kde-format
msgid "© 2021-2023 Jonah Brüchert, 2021-2023 KDE Community"
msgstr ""
#: main.cpp:64
#, kde-format
msgid "Jonah Brüchert"
msgstr ""
#: main.cpp:64
#, kde-format
msgid "Maintainer"
msgstr ""
#: main.cpp:65
#, kde-format
msgid "Mathis Brüchert"
msgstr ""
#: main.cpp:65
#, kde-format
msgid "Designer"
msgstr ""
#: main.cpp:66
#, kde-format
msgctxt "NAME OF TRANSLATORS"
msgid "Your names"
msgstr "Roman Paholík"
#: main.cpp:66
#, kde-format
msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails"
msgstr "[email protected]"
#: main.cpp:71
#, kde-format
msgid "Unofficial API for YouTube Music"
msgstr ""
#, fuzzy
#~| msgid "No media playing"
#~ msgid "Now Playing"
#~ msgstr "Neprehráva sa žiadne médium"
#~ msgid "Clear"
#~ msgstr "Vyčistiť"
#~ msgid "Pause"
#~ msgstr "Pozastaviť"
#~ msgid "Expand"
#~ msgstr "Rozvinúť"
+357 -83
View File
@@ -1,74 +1,107 @@
# Copyright (C) YEAR This file is copyright:
# This file is distributed under the same license as the audiotube package.
#
# Matjaž Jeran <[email protected]>, 2021.
# Matjaž Jeran <[email protected]>, 2021, 2022, 2023.
msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2022-05-23 00:47+0000\n"
"PO-Revision-Date: 2021-12-09 13:26+0100\n"
"POT-Creation-Date: 2023-04-23 04:10+0000\n"
"PO-Revision-Date: 2023-03-09 09:03+0100\n"
"Last-Translator: Matjaž Jeran <[email protected]>\n"
"Language-Team: Slovenian <[email protected]>\n"
"Language: sl\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Lokalize 21.04.3\n"
"Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || n"
"%100==4 ? 3 : 0);\n"
"X-Generator: Lokalize 22.12.3\n"
#, kde-format
msgctxt "NAME OF TRANSLATORS"
msgid "Your names"
msgstr "Matjaž Jeran"
#, kde-format
msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails"
msgstr "[email protected]"
#: contents/ui/AlbumPage.qml:19 contents/ui/PlayerFooter.qml:192
#: contents/ui/PlaylistPage.qml:19
#: contents/ui/AlbumPage.qml:26 contents/ui/LibraryPage.qml:37
#: contents/ui/LibraryPage.qml:63 contents/ui/LibraryPage.qml:84
#: contents/ui/LibraryPage.qml:332 contents/ui/LibraryPage.qml:358
#: contents/ui/LibraryPage.qml:379 contents/ui/LocalPlaylistPage.qml:42
#: contents/ui/PlaybackHistory.qml:23 contents/ui/PlaylistPage.qml:31
#, kde-format
msgid "Play"
msgstr "Predvajaj"
#: contents/ui/AlbumPage.qml:61 contents/ui/ArtistPage.qml:101
#: contents/ui/PlaylistPage.qml:67
#: contents/ui/AlbumPage.qml:33 contents/ui/ArtistPage.qml:36
#: contents/ui/LibraryPage.qml:44 contents/ui/LibraryPage.qml:69
#: contents/ui/LibraryPage.qml:92 contents/ui/LibraryPage.qml:339
#: contents/ui/LibraryPage.qml:364 contents/ui/LibraryPage.qml:388
#: contents/ui/LocalPlaylistPage.qml:49 contents/ui/MaximizedPlayerPage.qml:891
#: contents/ui/PlaybackHistory.qml:36 contents/ui/PlaylistPage.qml:38
#, kde-format
msgid "Play Next"
msgstr "Predvajaj naslednjo"
msgid "Shuffle"
msgstr "Premešaj"
#: contents/ui/AlbumPage.qml:66 contents/ui/ArtistPage.qml:107
#: contents/ui/PlaylistPage.qml:72 contents/ui/SearchPage.qml:123
#: contents/ui/AlbumPage.qml:41 contents/ui/LibraryPage.qml:74
#: contents/ui/LibraryPage.qml:100 contents/ui/LibraryPage.qml:369
#: contents/ui/LibraryPage.qml:396 contents/ui/LocalPlaylistPage.qml:55
#: contents/ui/PlaybackHistory.qml:48 contents/ui/PlaylistPage.qml:46
#, kde-format
msgid "Add to Playlist"
msgstr "Dodaj v seznam predvajanja"
msgid "Append to queue"
msgstr "Dodaj v v čakalno vrsto"
#: contents/ui/ArtistPage.qml:39 contents/ui/SearchPage.qml:67
#: contents/ui/AlbumPage.qml:46 contents/ui/ArtistPage.qml:43
#: contents/ui/PlaylistPage.qml:51
#, kde-format
msgid "Open in Browser"
msgstr "Odpri v brskalniku"
#: contents/ui/AlbumPage.qml:51 contents/ui/ArtistPage.qml:48
#: contents/ui/PlaylistPage.qml:56
#, kde-format
msgid "Share"
msgstr "Deli"
#: contents/ui/AlbumPage.qml:61
#, kde-format
msgid "Album • %1"
msgstr "Album • %1"
#: contents/ui/AlbumPage.qml:105 contents/ui/ArtistPage.qml:137
#: contents/ui/LocalPlaylistPage.qml:114 contents/ui/PlaybackHistory.qml:127
#: contents/ui/PlaylistPage.qml:116 contents/ui/SearchPage.qml:130
#, kde-format
msgid "More"
msgstr "Več"
#: contents/ui/ArtistPage.qml:31
#, kde-format
msgid "Radio"
msgstr "Radio"
#: contents/ui/ArtistPage.qml:57
#, kde-format
msgid "Artist"
msgstr "Avtor"
#: contents/ui/ArtistPage.qml:79 contents/ui/SearchPage.qml:70
#, kde-format
msgid ""
"Video playback is not supported yet. Do you want to play only the audio of "
"\"%1\"?"
msgstr "Video playback še ni podprt. Ali želite predvajati samo zvok \"%1\"?"
#: contents/ui/ArtistPage.qml:55 contents/ui/SearchPage.qml:25
#: contents/ui/ArtistPage.qml:96 contents/ui/SearchPage.qml:26
#, kde-format
msgid "Albums"
msgstr "Albumi"
#: contents/ui/ArtistPage.qml:57
#: contents/ui/ArtistPage.qml:98
#, kde-format
msgid "Singles"
msgstr "Singli"
#: contents/ui/ArtistPage.qml:59 contents/ui/SearchPage.qml:31
#: contents/ui/ArtistPage.qml:100 contents/ui/SearchPage.qml:32
#, kde-format
msgid "Songs"
msgstr "Glasba"
#: contents/ui/ArtistPage.qml:61 contents/ui/SearchPage.qml:33
#: contents/ui/ArtistPage.qml:102 contents/ui/SearchPage.qml:34
#, kde-format
msgid "Videos"
msgstr "Videposnetki"
@@ -83,85 +116,326 @@ msgstr "V redu"
msgid "Cancel"
msgstr "Prekliči"
#: contents/ui/LibraryPage.qml:15
#: contents/ui/dialogs/AddPlaylistDialog.qml:17
#, kde-format
msgid "Add playlist"
msgstr "Dodaj seznam predvajanja"
#: contents/ui/dialogs/AddPlaylistDialog.qml:23
#: contents/ui/dialogs/RenamePlaylistDialog.qml:24
#, kde-format
msgid "Playlist Title"
msgstr "Naslov seznama predvajanja"
#: contents/ui/dialogs/AddPlaylistDialog.qml:28
#: contents/ui/dialogs/RenamePlaylistDialog.qml:30
#, kde-format
msgid "Playlist Description"
msgstr "Opis seznama predvajanja"
#: contents/ui/dialogs/PlaylistDialog.qml:20
#, kde-format
msgid "Add Song to Playlist"
msgstr "Dodaj pesem v seznam predvajanja"
#: contents/ui/dialogs/PlaylistDialog.qml:29
#: contents/ui/LocalPlaylistsPage.qml:90
#, kde-format
msgid "New Playlist"
msgstr "Novi seznam predvajanja"
#: contents/ui/dialogs/RenamePlaylistDialog.qml:18
#, kde-format
msgid "Rename playlist"
msgstr "Preimenuj seznam predvajanja"
#: contents/ui/LibraryPage.qml:30 contents/ui/LibraryPage.qml:123
#: contents/ui/NavigationBar.qml:48 contents/ui/NavigationBar.qml:54
#: contents/ui/Sidebar.qml:131 contents/ui/Sidebar.qml:138
#, kde-format
msgid "Favourites"
msgstr ""
msgstr "Priljubljene"
#: contents/ui/LibraryPage.qml:67
#: contents/ui/LibraryPage.qml:119 contents/ui/LibraryPage.qml:416
#: contents/ui/LibraryPage.qml:623
#, kde-format
msgid "Show All"
msgstr "Prikaži vse"
#: contents/ui/LibraryPage.qml:147
#, kde-format
msgid "No Favourites Yet"
msgstr "Še ni nobenih priljubljenih"
#: contents/ui/LibraryPage.qml:325
#, kde-format
msgid "Most played"
msgstr ""
msgstr "Največkrat predvajane"
#: contents/ui/main.qml:94
#: contents/ui/LibraryPage.qml:420 contents/ui/NavigationBar.qml:61
#: contents/ui/NavigationBar.qml:67 contents/ui/Sidebar.qml:150
#: contents/ui/Sidebar.qml:157
#, kde-format
msgid "AudioTube"
msgstr "AudioTube"
msgid "Played Songs"
msgstr "Predvajane pesmi"
#: contents/ui/PlayerFooter.qml:124
#: contents/ui/LibraryPage.qml:444
#, kde-format
msgid "Remove Track"
msgstr "Odstrani sled"
msgid "No Songs Played Yet"
msgstr "Še ni nobene predvajane pesmi"
#: contents/ui/PlayerFooter.qml:141
#, kde-format
msgid "Clear"
msgstr "Očisti"
#: contents/ui/PlayerFooter.qml:146 contents/ui/PlaylistPage.qml:26
#, kde-format
msgid "Shuffle"
msgstr "Premešaj"
#: contents/ui/PlayerFooter.qml:192
#, kde-format
msgid "Pause"
msgstr "Premor"
#: contents/ui/PlayerFooter.qml:222
#, kde-format
msgid "No media playing"
msgstr "Niče se ne predvaja"
#: contents/ui/PlayerFooter.qml:266
#, kde-format
msgid "Expand"
msgstr "Razširi"
#: contents/ui/SearchPage.qml:27
#, kde-format
msgid "Artists"
msgstr "Avtorji"
#: contents/ui/SearchPage.qml:29
#: contents/ui/LibraryPage.qml:611 contents/ui/LocalPlaylistsPage.qml:18
#: contents/ui/LocalPlaylistsPage.qml:78 contents/ui/NavigationBar.qml:75
#: contents/ui/SearchPage.qml:30 contents/ui/Sidebar.qml:167
#, kde-format
msgid "Playlists"
msgstr "Seznami predvajanja"
#: contents/ui/SearchPage.qml:36
#: contents/ui/LibraryPage.qml:650
#, kde-format
msgid "Unknown"
msgstr "Neznano"
msgid "No Playlists Yet"
msgstr "Še ni nobenega seznama predvajanja"
#: contents/ui/SearchPage.qml:117
#: contents/ui/LibraryPage.qml:670 contents/ui/LibraryPage.qml:692
#: contents/ui/LocalPlaylistsPage.qml:33 contents/ui/LocalPlaylistsPage.qml:55
#, kde-format
msgid "Play next"
msgstr "Predvajaj naslednjo"
msgid "Rename"
msgstr "Preimenuj"
#: contents/ui/SearchPage.qml:129
#: contents/ui/LibraryPage.qml:679 contents/ui/LibraryPage.qml:700
#: contents/ui/LocalPlaylistsPage.qml:42 contents/ui/LocalPlaylistsPage.qml:63
#, kde-format
msgid "Radio"
msgstr "Radio"
msgid "Delete"
msgstr "Zbriši"
#: contents/ui/SearchPage.qml:147
#: contents/ui/LocalPlaylistPage.qml:19
#, kde-format
msgid "Find music on YouTube Music"
msgstr "Najdi glasbo na Youtube Music"
msgid "Remove from Playlist"
msgstr "Odstrani iz seznama predvajanja"
#: contents/ui/SearchPage.qml:150
#: contents/ui/LocalPlaylistPage.qml:29
#, kde-format
msgid "This playlist is still empty"
msgstr "Ta seznam predvajanja je še prazen"
#: contents/ui/main.qml:109 main.cpp:59
#, kde-format
msgid "AudioTube"
msgstr "AudioTube"
#: contents/ui/MaximizedPlayerPage.qml:196
#: contents/ui/MinimizedPlayerControls.qml:93
#, kde-format
msgid "No media playing"
msgstr "Niče se ne predvaja"
#: contents/ui/MaximizedPlayerPage.qml:571
#, kde-format
msgid "%1%"
msgstr "%1%"
#: contents/ui/MaximizedPlayerPage.qml:839
#: contents/ui/MaximizedPlayerPage.qml:1016
#, kde-format
msgid "Remove Track"
msgstr "Odstrani sled"
#: contents/ui/MaximizedPlayerPage.qml:870
#, kde-format
msgid "Clear Playlist"
msgstr "Očisti seznam predvajanja"
#: contents/ui/MaximizedPlayerPage.qml:917
#, kde-format
msgid "Upcoming Songs"
msgstr "Prihajajoče pesmi"
#: contents/ui/NavigationBar.qml:24 contents/ui/Sidebar.qml:100
#, kde-format
msgid "Library"
msgstr "Knjižnica"
#: contents/ui/NavigationBar.qml:36 contents/ui/Sidebar.qml:116
#, kde-format
msgid "Search"
msgstr "Išči"
#: contents/ui/PlaybackHistory.qml:15
#, kde-format
msgid "Unknown list of songs"
msgstr "Neznan seznam pesmi"
#: contents/ui/PlaybackHistory.qml:74
#, kde-format
msgid "No songs here yet"
msgstr "Tu še ni nobene pesmi"
#: contents/ui/PlaylistPage.qml:67
#, kde-format
msgid "Playlist"
msgstr "Seznam predvajanja"
#: contents/ui/SearchHistoryPage.qml:86 contents/ui/SearchWithDropdown.qml:412
#, kde-format
msgid "remove from search history"
msgstr "odstrani iz zgodovine iskanj"
#: contents/ui/SearchPage.qml:16
#, kde-format
msgid "Previous Searches:"
msgstr "Prejšnja iskanja:"
#: contents/ui/SearchPage.qml:28
#, kde-format
msgid "Artists"
msgstr "Avtorji"
#: contents/ui/SearchPage.qml:37
#, kde-format
msgid "Unknown"
msgstr "Neznano"
#: contents/ui/SearchWithDropdown.qml:359
#, kde-format
msgid "No matching previous searches"
msgstr "Ni zadetkov iz prejšnjih iskanj"
#: contents/ui/ShareMenu.qml:39
#, kde-format
msgid "Share to"
msgstr "Deli z"
#: contents/ui/ShareMenu.qml:49 contents/ui/ShareMenu.qml:99
#, kde-format
msgid "Copy Link"
msgstr "Kopiraj povezavo"
#: contents/ui/ShareMenu.qml:54 contents/ui/ShareMenu.qml:104
#, kde-format
msgid "Link copied to clipboard"
msgstr "Povezava skopirana na odložišče"
#: contents/ui/Sidebar.qml:189
#, kde-format
msgid "About"
msgstr "O programu"
#: contents/ui/Sidebar.qml:203
#, kde-format
msgid "Collapse Sidebar"
msgstr "Strni stransko vrstico"
#: contents/ui/SongMenu.qml:107 contents/ui/SongMenu.qml:205
#, kde-format
msgid "Play Next"
msgstr "Predvajaj naslednjo"
#: contents/ui/SongMenu.qml:116 contents/ui/SongMenu.qml:211
#, kde-format
msgid "Add to queue"
msgstr "Dodaj v v čakalno vrsto"
#: contents/ui/SongMenu.qml:126 contents/ui/SongMenu.qml:221
#, kde-format
msgid "Remove Favourite"
msgstr "Odstrani priljubljenega"
#: contents/ui/SongMenu.qml:126 contents/ui/SongMenu.qml:221
#, kde-format
msgid "Add Favourite"
msgstr "Dodaj priljubljenega"
#: contents/ui/SongMenu.qml:143 contents/ui/SongMenu.qml:235
#, kde-format
msgid "Remove from History"
msgstr "Odstrani iz zgodovine"
#: contents/ui/SongMenu.qml:156 contents/ui/SongMenu.qml:244
#, kde-format
msgid "Add to playlist"
msgstr "Dodaj v seznam predvajanja"
#: contents/ui/SongMenu.qml:183 contents/ui/SongMenu.qml:269
#, kde-format
msgid "Share Song"
msgstr "Deli pesem"
#: main.cpp:61
#, kde-format
msgid "YouTube Music Player"
msgstr "Predvajalnik glasbe YouTube"
#: main.cpp:63
#, kde-format
msgid "© 2021-2023 Jonah Brüchert, 2021-2023 KDE Community"
msgstr "© 2021-2023 Jonah Brüchert, 2021-2023 Skupnost KDE"
#: main.cpp:64
#, kde-format
msgid "Jonah Brüchert"
msgstr "Jonah Brüchert"
#: main.cpp:64
#, kde-format
msgid "Maintainer"
msgstr "Vzdrževalec"
#: main.cpp:65
#, kde-format
msgid "Mathis Brüchert"
msgstr "Mathis Brüchert"
#: main.cpp:65
#, kde-format
msgid "Designer"
msgstr "Oblikovalec"
#: main.cpp:66
#, kde-format
msgctxt "NAME OF TRANSLATORS"
msgid "Your names"
msgstr "Matjaž Jeran"
#: main.cpp:66
#, kde-format
msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails"
msgstr "[email protected]"
#: main.cpp:71
#, kde-format
msgid "Unofficial API for YouTube Music"
msgstr "Neuradni programski vmesnik za Youtube Music"
#~ msgid "played Songs"
#~ msgstr "predvajane pesmi"
#~ msgid "%"
#~ msgstr "%"
#~ msgid "Now Playing"
#~ msgstr "Pravkar predvajano"
#~ msgid "Queue"
#~ msgstr "Čakalna vrsta"
#~ msgid "Lyrics"
#~ msgstr "Besedilo"
#~ msgid "Back"
#~ msgstr "Nazaj"
#~ msgid "Play next"
#~ msgstr "Predvajaj naslednjo"
#~ msgid "Clear"
#~ msgstr "Očisti"
#~ msgid "Pause"
#~ msgstr "Premor"
#~ msgid "Expand"
#~ msgstr "Razširi"
#~ msgid "Play only Audio"
#~ msgstr "Predvajaj samo zvok"
+372 -84
View File
@@ -1,13 +1,13 @@
# Copyright (C) YEAR This file is copyright:
# This file is distributed under the same license as the audiotube package.
#
# Stefan Asserhäll <[email protected]>, 2021.
# Stefan Asserhäll <[email protected]>, 2021, 2022.
msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2022-05-23 00:47+0000\n"
"PO-Revision-Date: 2021-12-05 11:41+0100\n"
"POT-Creation-Date: 2023-04-23 04:10+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"
"Language: sv\n"
@@ -17,57 +17,91 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Lokalize 20.08.1\n"
#, kde-format
msgctxt "NAME OF TRANSLATORS"
msgid "Your names"
msgstr "Stefan Asserhäll"
#, kde-format
msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails"
msgstr "[email protected]"
#: contents/ui/AlbumPage.qml:19 contents/ui/PlayerFooter.qml:192
#: contents/ui/PlaylistPage.qml:19
#: contents/ui/AlbumPage.qml:26 contents/ui/LibraryPage.qml:37
#: contents/ui/LibraryPage.qml:63 contents/ui/LibraryPage.qml:84
#: contents/ui/LibraryPage.qml:332 contents/ui/LibraryPage.qml:358
#: contents/ui/LibraryPage.qml:379 contents/ui/LocalPlaylistPage.qml:42
#: contents/ui/PlaybackHistory.qml:23 contents/ui/PlaylistPage.qml:31
#, kde-format
msgid "Play"
msgstr "Spela"
#: contents/ui/AlbumPage.qml:61 contents/ui/ArtistPage.qml:101
#: contents/ui/PlaylistPage.qml:67
#: contents/ui/AlbumPage.qml:33 contents/ui/ArtistPage.qml:36
#: contents/ui/LibraryPage.qml:44 contents/ui/LibraryPage.qml:69
#: contents/ui/LibraryPage.qml:92 contents/ui/LibraryPage.qml:339
#: contents/ui/LibraryPage.qml:364 contents/ui/LibraryPage.qml:388
#: contents/ui/LocalPlaylistPage.qml:49 contents/ui/MaximizedPlayerPage.qml:891
#: contents/ui/PlaybackHistory.qml:36 contents/ui/PlaylistPage.qml:38
#, kde-format
msgid "Play Next"
msgstr "Spela nästa"
msgid "Shuffle"
msgstr "Blanda"
#: contents/ui/AlbumPage.qml:66 contents/ui/ArtistPage.qml:107
#: contents/ui/PlaylistPage.qml:72 contents/ui/SearchPage.qml:123
#: contents/ui/AlbumPage.qml:41 contents/ui/LibraryPage.qml:74
#: contents/ui/LibraryPage.qml:100 contents/ui/LibraryPage.qml:369
#: contents/ui/LibraryPage.qml:396 contents/ui/LocalPlaylistPage.qml:55
#: contents/ui/PlaybackHistory.qml:48 contents/ui/PlaylistPage.qml:46
#, kde-format
msgid "Add to Playlist"
msgstr "Lägg till i spellista"
msgid "Append to queue"
msgstr ""
#: contents/ui/ArtistPage.qml:39 contents/ui/SearchPage.qml:67
#: contents/ui/AlbumPage.qml:46 contents/ui/ArtistPage.qml:43
#: contents/ui/PlaylistPage.qml:51
#, kde-format
msgid "Open in Browser"
msgstr "Öppna i webbläsare"
#: contents/ui/AlbumPage.qml:51 contents/ui/ArtistPage.qml:48
#: contents/ui/PlaylistPage.qml:56
#, kde-format
msgid "Share"
msgstr ""
#: contents/ui/AlbumPage.qml:61
#, kde-format
msgid "Album • %1"
msgstr ""
#: contents/ui/AlbumPage.qml:105 contents/ui/ArtistPage.qml:137
#: contents/ui/LocalPlaylistPage.qml:114 contents/ui/PlaybackHistory.qml:127
#: contents/ui/PlaylistPage.qml:116 contents/ui/SearchPage.qml:130
#, kde-format
msgid "More"
msgstr ""
#: contents/ui/ArtistPage.qml:31
#, kde-format
msgid "Radio"
msgstr "Radio"
#: contents/ui/ArtistPage.qml:57
#, fuzzy, kde-format
#| msgid "Artists"
msgid "Artist"
msgstr "Artister"
#: contents/ui/ArtistPage.qml:79 contents/ui/SearchPage.qml:70
#, kde-format
msgid ""
"Video playback is not supported yet. Do you want to play only the audio of "
"\"%1\"?"
msgstr "Videouppspelning stöds inte ännu. Vill du bara spela ljudet på \"%1\"?"
#: contents/ui/ArtistPage.qml:55 contents/ui/SearchPage.qml:25
#: contents/ui/ArtistPage.qml:96 contents/ui/SearchPage.qml:26
#, kde-format
msgid "Albums"
msgstr "Album"
#: contents/ui/ArtistPage.qml:57
#: contents/ui/ArtistPage.qml:98
#, kde-format
msgid "Singles"
msgstr "Singlar"
#: contents/ui/ArtistPage.qml:59 contents/ui/SearchPage.qml:31
#: contents/ui/ArtistPage.qml:100 contents/ui/SearchPage.qml:32
#, kde-format
msgid "Songs"
msgstr "Låtar"
#: contents/ui/ArtistPage.qml:61 contents/ui/SearchPage.qml:33
#: contents/ui/ArtistPage.qml:102 contents/ui/SearchPage.qml:34
#, kde-format
msgid "Videos"
msgstr "Videor"
@@ -82,85 +116,339 @@ msgstr "Ok"
msgid "Cancel"
msgstr "Avbryt"
#: contents/ui/LibraryPage.qml:15
#: contents/ui/dialogs/AddPlaylistDialog.qml:17
#, fuzzy, kde-format
#| msgid "Add to Playlist"
msgid "Add playlist"
msgstr "Lägg till i spellista"
#: contents/ui/dialogs/AddPlaylistDialog.qml:23
#: contents/ui/dialogs/RenamePlaylistDialog.qml:24
#, fuzzy, kde-format
#| msgid "Playlists"
msgid "Playlist Title"
msgstr "Spellistor"
#: contents/ui/dialogs/AddPlaylistDialog.qml:28
#: contents/ui/dialogs/RenamePlaylistDialog.qml:30
#, fuzzy, kde-format
#| msgid "Playlists"
msgid "Playlist Description"
msgstr "Spellistor"
#: contents/ui/dialogs/PlaylistDialog.qml:20
#, fuzzy, kde-format
#| msgid "Add to Playlist"
msgid "Add Song to Playlist"
msgstr "Lägg till i spellista"
#: contents/ui/dialogs/PlaylistDialog.qml:29
#: contents/ui/LocalPlaylistsPage.qml:90
#, fuzzy, kde-format
#| msgid "Playlists"
msgid "New Playlist"
msgstr "Spellistor"
#: contents/ui/dialogs/RenamePlaylistDialog.qml:18
#, fuzzy, kde-format
#| msgid "Playlists"
msgid "Rename playlist"
msgstr "Spellistor"
#: contents/ui/LibraryPage.qml:30 contents/ui/LibraryPage.qml:123
#: contents/ui/NavigationBar.qml:48 contents/ui/NavigationBar.qml:54
#: contents/ui/Sidebar.qml:131 contents/ui/Sidebar.qml:138
#, kde-format
msgid "Favourites"
msgstr ""
msgstr "Favoriter"
#: contents/ui/LibraryPage.qml:67
#: contents/ui/LibraryPage.qml:119 contents/ui/LibraryPage.qml:416
#: contents/ui/LibraryPage.qml:623
#, kde-format
msgid "Show All"
msgstr "Visa alla"
#: contents/ui/LibraryPage.qml:147
#, fuzzy, kde-format
#| msgid "Favourites"
msgid "No Favourites Yet"
msgstr "Favoriter"
#: contents/ui/LibraryPage.qml:325
#, kde-format
msgid "Most played"
msgstr ""
msgstr "Mest spelade"
#: contents/ui/main.qml:94
#: contents/ui/LibraryPage.qml:420 contents/ui/NavigationBar.qml:61
#: contents/ui/NavigationBar.qml:67 contents/ui/Sidebar.qml:150
#: contents/ui/Sidebar.qml:157
#, kde-format
msgid "AudioTube"
msgstr "AudioTube"
msgid "Played Songs"
msgstr "Spelade låtar"
#: contents/ui/PlayerFooter.qml:124
#, kde-format
msgid "Remove Track"
msgstr "Ta bort spår"
#: contents/ui/LibraryPage.qml:444
#, fuzzy, kde-format
#| msgid "No songs here yet"
msgid "No Songs Played Yet"
msgstr "Inga låtar här ännu"
#: contents/ui/PlayerFooter.qml:141
#, kde-format
msgid "Clear"
msgstr "Rensa"
#: contents/ui/PlayerFooter.qml:146 contents/ui/PlaylistPage.qml:26
#, kde-format
msgid "Shuffle"
msgstr "Blanda"
#: contents/ui/PlayerFooter.qml:192
#, kde-format
msgid "Pause"
msgstr "Paus"
#: contents/ui/PlayerFooter.qml:222
#, kde-format
msgid "No media playing"
msgstr "Inga media spelar"
#: contents/ui/PlayerFooter.qml:266
#, kde-format
msgid "Expand"
msgstr "Expandera"
#: contents/ui/SearchPage.qml:27
#, kde-format
msgid "Artists"
msgstr "Artister"
#: contents/ui/SearchPage.qml:29
#: contents/ui/LibraryPage.qml:611 contents/ui/LocalPlaylistsPage.qml:18
#: contents/ui/LocalPlaylistsPage.qml:78 contents/ui/NavigationBar.qml:75
#: contents/ui/SearchPage.qml:30 contents/ui/Sidebar.qml:167
#, kde-format
msgid "Playlists"
msgstr "Spellistor"
#: contents/ui/SearchPage.qml:36
#, kde-format
msgid "Unknown"
msgstr "Okänd"
#: contents/ui/LibraryPage.qml:650
#, fuzzy, kde-format
#| msgid "Playlists"
msgid "No Playlists Yet"
msgstr "Spellistor"
#: contents/ui/SearchPage.qml:117
#: contents/ui/LibraryPage.qml:670 contents/ui/LibraryPage.qml:692
#: contents/ui/LocalPlaylistsPage.qml:33 contents/ui/LocalPlaylistsPage.qml:55
#, kde-format
msgid "Play next"
msgstr "Spela nästa"
msgid "Rename"
msgstr ""
#: contents/ui/SearchPage.qml:129
#: contents/ui/LibraryPage.qml:679 contents/ui/LibraryPage.qml:700
#: contents/ui/LocalPlaylistsPage.qml:42 contents/ui/LocalPlaylistsPage.qml:63
#, kde-format
msgid "Radio"
msgstr "Radio"
msgid "Delete"
msgstr ""
#: contents/ui/SearchPage.qml:147
#: contents/ui/LocalPlaylistPage.qml:19
#, fuzzy, kde-format
#| msgid "Playlists"
msgid "Remove from Playlist"
msgstr "Spellistor"
#: contents/ui/LocalPlaylistPage.qml:29
#, kde-format
msgid "Find music on YouTube Music"
msgstr "Sök efter musik på YouTube musik"
msgid "This playlist is still empty"
msgstr ""
#: contents/ui/SearchPage.qml:150
#: contents/ui/main.qml:109 main.cpp:59
#, kde-format
msgid "AudioTube"
msgstr "AudioTube"
#: contents/ui/MaximizedPlayerPage.qml:196
#: contents/ui/MinimizedPlayerControls.qml:93
#, kde-format
msgid "No media playing"
msgstr "Inga media spelar"
#: contents/ui/MaximizedPlayerPage.qml:571
#, kde-format
msgid "%1%"
msgstr ""
#: contents/ui/MaximizedPlayerPage.qml:839
#: contents/ui/MaximizedPlayerPage.qml:1016
#, kde-format
msgid "Remove Track"
msgstr "Ta bort spår"
#: contents/ui/MaximizedPlayerPage.qml:870
#, fuzzy, kde-format
#| msgid "Playlists"
msgid "Clear Playlist"
msgstr "Spellistor"
#: contents/ui/MaximizedPlayerPage.qml:917
#, kde-format
msgid "Upcoming Songs"
msgstr ""
#: contents/ui/NavigationBar.qml:24 contents/ui/Sidebar.qml:100
#, kde-format
msgid "Library"
msgstr ""
#: contents/ui/NavigationBar.qml:36 contents/ui/Sidebar.qml:116
#, kde-format
msgid "Search"
msgstr "Sök"
#: contents/ui/PlaybackHistory.qml:15
#, kde-format
msgid "Unknown list of songs"
msgstr "Okänd låtlista"
#: contents/ui/PlaybackHistory.qml:74
#, kde-format
msgid "No songs here yet"
msgstr "Inga låtar här ännu"
#: contents/ui/PlaylistPage.qml:67
#, fuzzy, kde-format
#| msgid "Playlists"
msgid "Playlist"
msgstr "Spellistor"
#: contents/ui/SearchHistoryPage.qml:86 contents/ui/SearchWithDropdown.qml:412
#, kde-format
msgid "remove from search history"
msgstr ""
#: contents/ui/SearchPage.qml:16
#, kde-format
msgid "Previous Searches:"
msgstr ""
#: contents/ui/SearchPage.qml:28
#, kde-format
msgid "Artists"
msgstr "Artister"
#: contents/ui/SearchPage.qml:37
#, kde-format
msgid "Unknown"
msgstr "Okänd"
#: contents/ui/SearchWithDropdown.qml:359
#, kde-format
msgid "No matching previous searches"
msgstr ""
#: contents/ui/ShareMenu.qml:39
#, kde-format
msgid "Share to"
msgstr ""
#: contents/ui/ShareMenu.qml:49 contents/ui/ShareMenu.qml:99
#, kde-format
msgid "Copy Link"
msgstr ""
#: contents/ui/ShareMenu.qml:54 contents/ui/ShareMenu.qml:104
#, kde-format
msgid "Link copied to clipboard"
msgstr ""
#: contents/ui/Sidebar.qml:189
#, kde-format
msgid "About"
msgstr ""
#: contents/ui/Sidebar.qml:203
#, kde-format
msgid "Collapse Sidebar"
msgstr ""
#: contents/ui/SongMenu.qml:107 contents/ui/SongMenu.qml:205
#, kde-format
msgid "Play Next"
msgstr "Spela nästa"
#: contents/ui/SongMenu.qml:116 contents/ui/SongMenu.qml:211
#, kde-format
msgid "Add to queue"
msgstr ""
#: contents/ui/SongMenu.qml:126 contents/ui/SongMenu.qml:221
#, fuzzy, kde-format
#| msgid "Favourites"
msgid "Remove Favourite"
msgstr "Favoriter"
#: contents/ui/SongMenu.qml:126 contents/ui/SongMenu.qml:221
#, fuzzy, kde-format
#| msgid "Favourites"
msgid "Add Favourite"
msgstr "Favoriter"
#: contents/ui/SongMenu.qml:143 contents/ui/SongMenu.qml:235
#, kde-format
msgid "Remove from History"
msgstr ""
#: contents/ui/SongMenu.qml:156 contents/ui/SongMenu.qml:244
#, fuzzy, kde-format
#| msgid "Add to Playlist"
msgid "Add to playlist"
msgstr "Lägg till i spellista"
#: contents/ui/SongMenu.qml:183 contents/ui/SongMenu.qml:269
#, fuzzy, kde-format
#| msgid "Favourite Songs"
msgid "Share Song"
msgstr "Favoritlåtar"
#: main.cpp:61
#, kde-format
msgid "YouTube Music Player"
msgstr ""
#: main.cpp:63
#, kde-format
msgid "© 2021-2023 Jonah Brüchert, 2021-2023 KDE Community"
msgstr ""
#: main.cpp:64
#, kde-format
msgid "Jonah Brüchert"
msgstr ""
#: main.cpp:64
#, kde-format
msgid "Maintainer"
msgstr ""
#: main.cpp:65
#, kde-format
msgid "Mathis Brüchert"
msgstr ""
#: main.cpp:65
#, kde-format
msgid "Designer"
msgstr ""
#: main.cpp:66
#, kde-format
msgctxt "NAME OF TRANSLATORS"
msgid "Your names"
msgstr "Stefan Asserhäll"
#: main.cpp:66
#, kde-format
msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails"
msgstr "[email protected]"
#: main.cpp:71
#, fuzzy, kde-format
#| msgid "Find music on YouTube Music"
msgid "Unofficial API for YouTube Music"
msgstr "Sök efter musik på YouTube musik"
#, fuzzy
#~| msgid "Played Songs"
#~ msgid "played Songs"
#~ msgstr "Spelade låtar"
#~ msgid "Now Playing"
#~ msgstr "Spelar nu"
#~ msgid "Queue"
#~ msgstr "Köa"
#~ msgid "Back"
#~ msgstr "Bakåt"
#~ msgid "Play next"
#~ msgstr "Spela nästa"
#~ msgid "Clear"
#~ msgstr "Rensa"
#~ msgid "Pause"
#~ msgstr "Paus"
#~ msgid "Expand"
#~ msgstr "Expandera"
#~ msgid "Play only Audio"
#~ msgstr "Spela bara ljud"
+357 -83
View File
@@ -1,13 +1,13 @@
# Copyright (C) YEAR This file is copyright:
# This file is distributed under the same license as the audiotube package.
#
# Emir SARI <[email protected]>, 2022.
# Emir SARI <[email protected]>, 2022, 2023.
msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2022-05-23 00:47+0000\n"
"PO-Revision-Date: 2022-04-15 14:41+0300\n"
"POT-Creation-Date: 2023-04-23 04:10+0000\n"
"PO-Revision-Date: 2023-03-09 13:09+0300\n"
"Last-Translator: Emir SARI <[email protected]>\n"
"Language-Team: Turkish <[email protected]>\n"
"Language: tr\n"
@@ -15,37 +15,70 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"X-Generator: Lokalize 21.12.3\n"
"X-Generator: Lokalize 22.12.3\n"
#, kde-format
msgctxt "NAME OF TRANSLATORS"
msgid "Your names"
msgstr "Emir SARI"
#, kde-format
msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails"
msgstr "[email protected]"
#: contents/ui/AlbumPage.qml:19 contents/ui/PlayerFooter.qml:192
#: contents/ui/PlaylistPage.qml:19
#: contents/ui/AlbumPage.qml:26 contents/ui/LibraryPage.qml:37
#: contents/ui/LibraryPage.qml:63 contents/ui/LibraryPage.qml:84
#: contents/ui/LibraryPage.qml:332 contents/ui/LibraryPage.qml:358
#: contents/ui/LibraryPage.qml:379 contents/ui/LocalPlaylistPage.qml:42
#: contents/ui/PlaybackHistory.qml:23 contents/ui/PlaylistPage.qml:31
#, kde-format
msgid "Play"
msgstr "Çal"
#: contents/ui/AlbumPage.qml:61 contents/ui/ArtistPage.qml:101
#: contents/ui/PlaylistPage.qml:67
#: contents/ui/AlbumPage.qml:33 contents/ui/ArtistPage.qml:36
#: contents/ui/LibraryPage.qml:44 contents/ui/LibraryPage.qml:69
#: contents/ui/LibraryPage.qml:92 contents/ui/LibraryPage.qml:339
#: contents/ui/LibraryPage.qml:364 contents/ui/LibraryPage.qml:388
#: contents/ui/LocalPlaylistPage.qml:49 contents/ui/MaximizedPlayerPage.qml:891
#: contents/ui/PlaybackHistory.qml:36 contents/ui/PlaylistPage.qml:38
#, kde-format
msgid "Play Next"
msgstr "Sonrakini Çal"
msgid "Shuffle"
msgstr "Karıştır"
#: contents/ui/AlbumPage.qml:66 contents/ui/ArtistPage.qml:107
#: contents/ui/PlaylistPage.qml:72 contents/ui/SearchPage.qml:123
#: contents/ui/AlbumPage.qml:41 contents/ui/LibraryPage.qml:74
#: contents/ui/LibraryPage.qml:100 contents/ui/LibraryPage.qml:369
#: contents/ui/LibraryPage.qml:396 contents/ui/LocalPlaylistPage.qml:55
#: contents/ui/PlaybackHistory.qml:48 contents/ui/PlaylistPage.qml:46
#, kde-format
msgid "Add to Playlist"
msgstr "Çalma Listesine Ekle"
msgid "Append to queue"
msgstr "Kuyruğa iliştir"
#: contents/ui/ArtistPage.qml:39 contents/ui/SearchPage.qml:67
#: contents/ui/AlbumPage.qml:46 contents/ui/ArtistPage.qml:43
#: contents/ui/PlaylistPage.qml:51
#, kde-format
msgid "Open in Browser"
msgstr "Tarayıcıda Aç"
#: contents/ui/AlbumPage.qml:51 contents/ui/ArtistPage.qml:48
#: contents/ui/PlaylistPage.qml:56
#, kde-format
msgid "Share"
msgstr "Paylaş"
#: contents/ui/AlbumPage.qml:61
#, kde-format
msgid "Album • %1"
msgstr "Albüm • %1"
#: contents/ui/AlbumPage.qml:105 contents/ui/ArtistPage.qml:137
#: contents/ui/LocalPlaylistPage.qml:114 contents/ui/PlaybackHistory.qml:127
#: contents/ui/PlaylistPage.qml:116 contents/ui/SearchPage.qml:130
#, kde-format
msgid "More"
msgstr "Daha Fazla"
#: contents/ui/ArtistPage.qml:31
#, kde-format
msgid "Radio"
msgstr "Radyo"
#: contents/ui/ArtistPage.qml:57
#, kde-format
msgid "Artist"
msgstr "Sanatçı"
#: contents/ui/ArtistPage.qml:79 contents/ui/SearchPage.qml:70
#, kde-format
msgid ""
"Video playback is not supported yet. Do you want to play only the audio of "
@@ -54,22 +87,22 @@ msgstr ""
"Video oynatımı henüz desteklenmiyor. \"%1\" videosunun yalnızca sesinin "
"çalınmasını ister misiniz?"
#: contents/ui/ArtistPage.qml:55 contents/ui/SearchPage.qml:25
#: contents/ui/ArtistPage.qml:96 contents/ui/SearchPage.qml:26
#, kde-format
msgid "Albums"
msgstr "Albümler"
#: contents/ui/ArtistPage.qml:57
#: contents/ui/ArtistPage.qml:98
#, kde-format
msgid "Singles"
msgstr "Tekliler"
#: contents/ui/ArtistPage.qml:59 contents/ui/SearchPage.qml:31
#: contents/ui/ArtistPage.qml:100 contents/ui/SearchPage.qml:32
#, kde-format
msgid "Songs"
msgstr "Şarkılar"
#: contents/ui/ArtistPage.qml:61 contents/ui/SearchPage.qml:33
#: contents/ui/ArtistPage.qml:102 contents/ui/SearchPage.qml:34
#, kde-format
msgid "Videos"
msgstr "Videolar"
@@ -84,82 +117,323 @@ msgstr "Tamam"
msgid "Cancel"
msgstr "İptal"
#: contents/ui/LibraryPage.qml:15
#: contents/ui/dialogs/AddPlaylistDialog.qml:17
#, kde-format
msgid "Add playlist"
msgstr "Çalma listesi ekle"
#: contents/ui/dialogs/AddPlaylistDialog.qml:23
#: contents/ui/dialogs/RenamePlaylistDialog.qml:24
#, kde-format
msgid "Playlist Title"
msgstr "Çalma Listesi Başlığı"
#: contents/ui/dialogs/AddPlaylistDialog.qml:28
#: contents/ui/dialogs/RenamePlaylistDialog.qml:30
#, kde-format
msgid "Playlist Description"
msgstr "Çalma Listesi Açıklaması"
#: contents/ui/dialogs/PlaylistDialog.qml:20
#, kde-format
msgid "Add Song to Playlist"
msgstr "Çalma Listesine Şarkı Ekle"
#: contents/ui/dialogs/PlaylistDialog.qml:29
#: contents/ui/LocalPlaylistsPage.qml:90
#, kde-format
msgid "New Playlist"
msgstr "Yeni Çalma Listesi"
#: contents/ui/dialogs/RenamePlaylistDialog.qml:18
#, kde-format
msgid "Rename playlist"
msgstr "Çalma Listesini Yeniden Adlandır"
#: contents/ui/LibraryPage.qml:30 contents/ui/LibraryPage.qml:123
#: contents/ui/NavigationBar.qml:48 contents/ui/NavigationBar.qml:54
#: contents/ui/Sidebar.qml:131 contents/ui/Sidebar.qml:138
#, kde-format
msgid "Favourites"
msgstr ""
msgstr "Beğeniler"
#: contents/ui/LibraryPage.qml:67
#: contents/ui/LibraryPage.qml:119 contents/ui/LibraryPage.qml:416
#: contents/ui/LibraryPage.qml:623
#, kde-format
msgid "Show All"
msgstr "Tümünü Göster"
#: contents/ui/LibraryPage.qml:147
#, kde-format
msgid "No Favourites Yet"
msgstr "Henüz Beğeni Yok"
#: contents/ui/LibraryPage.qml:325
#, kde-format
msgid "Most played"
msgstr ""
msgstr "En Çok Çalınanlar"
#: contents/ui/main.qml:94
#: contents/ui/LibraryPage.qml:420 contents/ui/NavigationBar.qml:61
#: contents/ui/NavigationBar.qml:67 contents/ui/Sidebar.qml:150
#: contents/ui/Sidebar.qml:157
#, kde-format
msgid "AudioTube"
msgstr "AudioTube"
msgid "Played Songs"
msgstr "Çalınan Şarkılar"
#: contents/ui/PlayerFooter.qml:124
#: contents/ui/LibraryPage.qml:444
#, kde-format
msgid "Remove Track"
msgstr "Parçayı Kaldır"
msgid "No Songs Played Yet"
msgstr "Henüz Şarkı Çalınmamış"
#: contents/ui/PlayerFooter.qml:141
#, kde-format
msgid "Clear"
msgstr "Temizle"
#: contents/ui/PlayerFooter.qml:146 contents/ui/PlaylistPage.qml:26
#, kde-format
msgid "Shuffle"
msgstr "Karıştır"
#: contents/ui/PlayerFooter.qml:192
#, kde-format
msgid "Pause"
msgstr "Duraklat"
#: contents/ui/PlayerFooter.qml:222
#, kde-format
msgid "No media playing"
msgstr "Ortam çalmıyor"
#: contents/ui/PlayerFooter.qml:266
#, kde-format
msgid "Expand"
msgstr "Genişlet"
#: contents/ui/SearchPage.qml:27
#, kde-format
msgid "Artists"
msgstr "Sanatçılar"
#: contents/ui/SearchPage.qml:29
#: contents/ui/LibraryPage.qml:611 contents/ui/LocalPlaylistsPage.qml:18
#: contents/ui/LocalPlaylistsPage.qml:78 contents/ui/NavigationBar.qml:75
#: contents/ui/SearchPage.qml:30 contents/ui/Sidebar.qml:167
#, kde-format
msgid "Playlists"
msgstr "Çalma Listeleri"
#: contents/ui/SearchPage.qml:36
#: contents/ui/LibraryPage.qml:650
#, kde-format
msgid "No Playlists Yet"
msgstr "Çalma Listesi Yok"
#: contents/ui/LibraryPage.qml:670 contents/ui/LibraryPage.qml:692
#: contents/ui/LocalPlaylistsPage.qml:33 contents/ui/LocalPlaylistsPage.qml:55
#, kde-format
msgid "Rename"
msgstr "Yeniden Adlandır"
#: contents/ui/LibraryPage.qml:679 contents/ui/LibraryPage.qml:700
#: contents/ui/LocalPlaylistsPage.qml:42 contents/ui/LocalPlaylistsPage.qml:63
#, kde-format
msgid "Delete"
msgstr "Sil"
#: contents/ui/LocalPlaylistPage.qml:19
#, kde-format
msgid "Remove from Playlist"
msgstr "Çalma Listesinden Kaldır"
#: contents/ui/LocalPlaylistPage.qml:29
#, kde-format
msgid "This playlist is still empty"
msgstr "Bu çalma listesi hâlâ boş"
#: contents/ui/main.qml:109 main.cpp:59
#, kde-format
msgid "AudioTube"
msgstr "AudioTube"
#: contents/ui/MaximizedPlayerPage.qml:196
#: contents/ui/MinimizedPlayerControls.qml:93
#, kde-format
msgid "No media playing"
msgstr "Ortam çalmıyor"
#: contents/ui/MaximizedPlayerPage.qml:571
#, kde-format
msgid "%1%"
msgstr "%​%1"
#: contents/ui/MaximizedPlayerPage.qml:839
#: contents/ui/MaximizedPlayerPage.qml:1016
#, kde-format
msgid "Remove Track"
msgstr "Parçayı Kaldır"
#: contents/ui/MaximizedPlayerPage.qml:870
#, kde-format
msgid "Clear Playlist"
msgstr "Çalma Listesini Temizle"
#: contents/ui/MaximizedPlayerPage.qml:917
#, kde-format
msgid "Upcoming Songs"
msgstr "Sıradaki Şarkılar"
#: contents/ui/NavigationBar.qml:24 contents/ui/Sidebar.qml:100
#, kde-format
msgid "Library"
msgstr "Kitaplık"
#: contents/ui/NavigationBar.qml:36 contents/ui/Sidebar.qml:116
#, kde-format
msgid "Search"
msgstr "Ara"
#: contents/ui/PlaybackHistory.qml:15
#, kde-format
msgid "Unknown list of songs"
msgstr "Bilinmeyen şarkılar listesi"
#: contents/ui/PlaybackHistory.qml:74
#, kde-format
msgid "No songs here yet"
msgstr "Burada henüz şarkı yok"
#: contents/ui/PlaylistPage.qml:67
#, kde-format
msgid "Playlist"
msgstr "Çalma Listesi"
#: contents/ui/SearchHistoryPage.qml:86 contents/ui/SearchWithDropdown.qml:412
#, kde-format
msgid "remove from search history"
msgstr "arama geçmişinden kaldır"
#: contents/ui/SearchPage.qml:16
#, kde-format
msgid "Previous Searches:"
msgstr "Önceki Aramalar:"
#: contents/ui/SearchPage.qml:28
#, kde-format
msgid "Artists"
msgstr "Sanatçılar"
#: contents/ui/SearchPage.qml:37
#, kde-format
msgid "Unknown"
msgstr "Bilinmiyor"
#: contents/ui/SearchPage.qml:117
#: contents/ui/SearchWithDropdown.qml:359
#, kde-format
msgid "Play next"
msgstr "Sonrakini çal"
msgid "No matching previous searches"
msgstr "Daha önceden yapılmış eşleşen arama yok"
#: contents/ui/SearchPage.qml:129
#: contents/ui/ShareMenu.qml:39
#, kde-format
msgid "Radio"
msgstr "Radyo"
msgid "Share to"
msgstr "Paylaşılacak konum"
#: contents/ui/SearchPage.qml:147
#: contents/ui/ShareMenu.qml:49 contents/ui/ShareMenu.qml:99
#, kde-format
msgid "Find music on YouTube Music"
msgstr "YouTube Müzik'te müzik bul"
msgid "Copy Link"
msgstr "Bağlantıyı Kopyala"
#: contents/ui/SearchPage.qml:150
#: contents/ui/ShareMenu.qml:54 contents/ui/ShareMenu.qml:104
#, kde-format
msgid "Search"
msgstr "Ara"
msgid "Link copied to clipboard"
msgstr "Bağlantı panoya kopyalandı"
#: contents/ui/Sidebar.qml:189
#, kde-format
msgid "About"
msgstr "Hakkında"
#: contents/ui/Sidebar.qml:203
#, kde-format
msgid "Collapse Sidebar"
msgstr "Kenar Çubuğunu Daralt"
#: contents/ui/SongMenu.qml:107 contents/ui/SongMenu.qml:205
#, kde-format
msgid "Play Next"
msgstr "Sonrakini Çal"
#: contents/ui/SongMenu.qml:116 contents/ui/SongMenu.qml:211
#, kde-format
msgid "Add to queue"
msgstr "Kuyruğa ekle"
#: contents/ui/SongMenu.qml:126 contents/ui/SongMenu.qml:221
#, kde-format
msgid "Remove Favourite"
msgstr "Beğenilerden Kaldır"
#: contents/ui/SongMenu.qml:126 contents/ui/SongMenu.qml:221
#, kde-format
msgid "Add Favourite"
msgstr "Beğenilere Ekle"
#: contents/ui/SongMenu.qml:143 contents/ui/SongMenu.qml:235
#, kde-format
msgid "Remove from History"
msgstr "Geçmişten Kaldır"
#: contents/ui/SongMenu.qml:156 contents/ui/SongMenu.qml:244
#, kde-format
msgid "Add to playlist"
msgstr "Çalma listesine ekle"
#: contents/ui/SongMenu.qml:183 contents/ui/SongMenu.qml:269
#, kde-format
msgid "Share Song"
msgstr "Şarkıyı Paylaş"
#: main.cpp:61
#, kde-format
msgid "YouTube Music Player"
msgstr "YouTube Müzik Çaları"
#: main.cpp:63
#, kde-format
msgid "© 2021-2023 Jonah Brüchert, 2021-2023 KDE Community"
msgstr "© 2021-2023 Jonah Brüchert, 2021-2023 KDE Topluluğu"
#: main.cpp:64
#, kde-format
msgid "Jonah Brüchert"
msgstr "Jonah Brüchert"
#: main.cpp:64
#, kde-format
msgid "Maintainer"
msgstr "Bakımcı"
#: main.cpp:65
#, kde-format
msgid "Mathis Brüchert"
msgstr "Mathis Brüchert"
#: main.cpp:65
#, kde-format
msgid "Designer"
msgstr "Tasarımcı"
#: main.cpp:66
#, kde-format
msgctxt "NAME OF TRANSLATORS"
msgid "Your names"
msgstr "Emir SARI"
#: main.cpp:66
#, kde-format
msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails"
msgstr "[email protected]"
#: main.cpp:71
#, kde-format
msgid "Unofficial API for YouTube Music"
msgstr "YouTube Müzik için resmi olmayan API"
#~ msgid "played Songs"
#~ msgstr "Çalınan Şarkılar"
#~ msgid "%"
#~ msgstr "%"
#~ msgid "Now Playing"
#~ msgstr "Şimdi Çalınıyor"
#~ msgid "Queue"
#~ msgstr "Kuyruk"
#~ msgid "Lyrics"
#~ msgstr "Şarkı Sözleri"
#~ msgid "Back"
#~ msgstr "Geri"
#~ msgid "Play next"
#~ msgstr "Sonrakini çal"
#~ msgid "Clear"
#~ msgstr "Temizle"
#~ msgid "Pause"
#~ msgstr "Duraklat"
#~ msgid "Expand"
#~ msgstr "Genişlet"
+356 -82
View File
@@ -1,13 +1,13 @@
# Copyright (C) YEAR This file is copyright:
# This file is distributed under the same license as the PACKAGE package.
#
# Yuri Chornoivan <[email protected]>, 2021.
# Yuri Chornoivan <[email protected]>, 2021, 2022, 2023.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2022-05-23 00:47+0000\n"
"PO-Revision-Date: 2021-12-05 08:42+0200\n"
"POT-Creation-Date: 2023-04-23 04:10+0000\n"
"PO-Revision-Date: 2023-03-09 08:31+0200\n"
"Last-Translator: Yuri Chornoivan <[email protected]>\n"
"Language-Team: Ukrainian <[email protected]>\n"
"Language: uk\n"
@@ -18,35 +18,68 @@ msgstr ""
"%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
"X-Generator: Lokalize 20.12.0\n"
#, kde-format
msgctxt "NAME OF TRANSLATORS"
msgid "Your names"
msgstr "Юрій Чорноіван"
#, kde-format
msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails"
msgstr "[email protected]"
#: contents/ui/AlbumPage.qml:19 contents/ui/PlayerFooter.qml:192
#: contents/ui/PlaylistPage.qml:19
#: contents/ui/AlbumPage.qml:26 contents/ui/LibraryPage.qml:37
#: contents/ui/LibraryPage.qml:63 contents/ui/LibraryPage.qml:84
#: contents/ui/LibraryPage.qml:332 contents/ui/LibraryPage.qml:358
#: contents/ui/LibraryPage.qml:379 contents/ui/LocalPlaylistPage.qml:42
#: contents/ui/PlaybackHistory.qml:23 contents/ui/PlaylistPage.qml:31
#, kde-format
msgid "Play"
msgstr "Відтворити"
#: contents/ui/AlbumPage.qml:61 contents/ui/ArtistPage.qml:101
#: contents/ui/PlaylistPage.qml:67
#: contents/ui/AlbumPage.qml:33 contents/ui/ArtistPage.qml:36
#: contents/ui/LibraryPage.qml:44 contents/ui/LibraryPage.qml:69
#: contents/ui/LibraryPage.qml:92 contents/ui/LibraryPage.qml:339
#: contents/ui/LibraryPage.qml:364 contents/ui/LibraryPage.qml:388
#: contents/ui/LocalPlaylistPage.qml:49 contents/ui/MaximizedPlayerPage.qml:891
#: contents/ui/PlaybackHistory.qml:36 contents/ui/PlaylistPage.qml:38
#, kde-format
msgid "Play Next"
msgstr "Відтворити наступну"
msgid "Shuffle"
msgstr "Перемішати"
#: contents/ui/AlbumPage.qml:66 contents/ui/ArtistPage.qml:107
#: contents/ui/PlaylistPage.qml:72 contents/ui/SearchPage.qml:123
#: contents/ui/AlbumPage.qml:41 contents/ui/LibraryPage.qml:74
#: contents/ui/LibraryPage.qml:100 contents/ui/LibraryPage.qml:369
#: contents/ui/LibraryPage.qml:396 contents/ui/LocalPlaylistPage.qml:55
#: contents/ui/PlaybackHistory.qml:48 contents/ui/PlaylistPage.qml:46
#, kde-format
msgid "Add to Playlist"
msgstr "Додати до списку відтворення"
msgid "Append to queue"
msgstr "Дописати до черги"
#: contents/ui/ArtistPage.qml:39 contents/ui/SearchPage.qml:67
#: contents/ui/AlbumPage.qml:46 contents/ui/ArtistPage.qml:43
#: contents/ui/PlaylistPage.qml:51
#, kde-format
msgid "Open in Browser"
msgstr "Відкрити у переглядачі"
#: contents/ui/AlbumPage.qml:51 contents/ui/ArtistPage.qml:48
#: contents/ui/PlaylistPage.qml:56
#, kde-format
msgid "Share"
msgstr "Оприлюднити"
#: contents/ui/AlbumPage.qml:61
#, kde-format
msgid "Album • %1"
msgstr "Альбом • %1"
#: contents/ui/AlbumPage.qml:105 contents/ui/ArtistPage.qml:137
#: contents/ui/LocalPlaylistPage.qml:114 contents/ui/PlaybackHistory.qml:127
#: contents/ui/PlaylistPage.qml:116 contents/ui/SearchPage.qml:130
#, kde-format
msgid "More"
msgstr "Більше"
#: contents/ui/ArtistPage.qml:31
#, kde-format
msgid "Radio"
msgstr "Радіо"
#: contents/ui/ArtistPage.qml:57
#, kde-format
msgid "Artist"
msgstr "Виконавець"
#: contents/ui/ArtistPage.qml:79 contents/ui/SearchPage.qml:70
#, kde-format
msgid ""
"Video playback is not supported yet. Do you want to play only the audio of "
@@ -55,22 +88,22 @@ msgstr ""
"Підтримки відтворення відео ще не передбачено. Хочете, щоб було відтворено "
"лише звукову частину «%1»?"
#: contents/ui/ArtistPage.qml:55 contents/ui/SearchPage.qml:25
#: contents/ui/ArtistPage.qml:96 contents/ui/SearchPage.qml:26
#, kde-format
msgid "Albums"
msgstr "Альбоми"
#: contents/ui/ArtistPage.qml:57
#: contents/ui/ArtistPage.qml:98
#, kde-format
msgid "Singles"
msgstr "Одинарні"
#: contents/ui/ArtistPage.qml:59 contents/ui/SearchPage.qml:31
#: contents/ui/ArtistPage.qml:100 contents/ui/SearchPage.qml:32
#, kde-format
msgid "Songs"
msgstr "Пісні"
#: contents/ui/ArtistPage.qml:61 contents/ui/SearchPage.qml:33
#: contents/ui/ArtistPage.qml:102 contents/ui/SearchPage.qml:34
#, kde-format
msgid "Videos"
msgstr "Відео"
@@ -85,85 +118,326 @@ msgstr "Гаразд"
msgid "Cancel"
msgstr "Скасувати"
#: contents/ui/LibraryPage.qml:15
#: contents/ui/dialogs/AddPlaylistDialog.qml:17
#, kde-format
msgid "Add playlist"
msgstr "Додати список відтворення"
#: contents/ui/dialogs/AddPlaylistDialog.qml:23
#: contents/ui/dialogs/RenamePlaylistDialog.qml:24
#, kde-format
msgid "Playlist Title"
msgstr "Заголовок списку відтворення"
#: contents/ui/dialogs/AddPlaylistDialog.qml:28
#: contents/ui/dialogs/RenamePlaylistDialog.qml:30
#, kde-format
msgid "Playlist Description"
msgstr "Опис списку відтворення"
#: contents/ui/dialogs/PlaylistDialog.qml:20
#, kde-format
msgid "Add Song to Playlist"
msgstr "Додати композицію до списку відтворення"
#: contents/ui/dialogs/PlaylistDialog.qml:29
#: contents/ui/LocalPlaylistsPage.qml:90
#, kde-format
msgid "New Playlist"
msgstr "Новий список композицій"
#: contents/ui/dialogs/RenamePlaylistDialog.qml:18
#, kde-format
msgid "Rename playlist"
msgstr "Перейменувати список відтворення"
#: contents/ui/LibraryPage.qml:30 contents/ui/LibraryPage.qml:123
#: contents/ui/NavigationBar.qml:48 contents/ui/NavigationBar.qml:54
#: contents/ui/Sidebar.qml:131 contents/ui/Sidebar.qml:138
#, kde-format
msgid "Favourites"
msgstr ""
msgstr "Улюблені"
#: contents/ui/LibraryPage.qml:67
#: contents/ui/LibraryPage.qml:119 contents/ui/LibraryPage.qml:416
#: contents/ui/LibraryPage.qml:623
#, kde-format
msgid "Show All"
msgstr "Показати всі"
#: contents/ui/LibraryPage.qml:147
#, kde-format
msgid "No Favourites Yet"
msgstr "Улюблених творів ще немає"
#: contents/ui/LibraryPage.qml:325
#, kde-format
msgid "Most played"
msgstr ""
msgstr "Часто слухали"
#: contents/ui/main.qml:94
#: contents/ui/LibraryPage.qml:420 contents/ui/NavigationBar.qml:61
#: contents/ui/NavigationBar.qml:67 contents/ui/Sidebar.qml:150
#: contents/ui/Sidebar.qml:157
#, kde-format
msgid "AudioTube"
msgstr "AudioTube"
msgid "Played Songs"
msgstr "Відтворені композиції"
#: contents/ui/PlayerFooter.qml:124
#: contents/ui/LibraryPage.qml:444
#, kde-format
msgid "Remove Track"
msgstr "Вилучити композицію"
msgid "No Songs Played Yet"
msgstr "Відтворення композицій ще не відбувалося"
#: contents/ui/PlayerFooter.qml:141
#, kde-format
msgid "Clear"
msgstr "Спорожнити"
#: contents/ui/PlayerFooter.qml:146 contents/ui/PlaylistPage.qml:26
#, kde-format
msgid "Shuffle"
msgstr "Перемішати"
#: contents/ui/PlayerFooter.qml:192
#, kde-format
msgid "Pause"
msgstr "Призупинити"
#: contents/ui/PlayerFooter.qml:222
#, kde-format
msgid "No media playing"
msgstr "Відтворення не відбувається"
#: contents/ui/PlayerFooter.qml:266
#, kde-format
msgid "Expand"
msgstr "Розгорнути"
#: contents/ui/SearchPage.qml:27
#, kde-format
msgid "Artists"
msgstr "Виконавці"
#: contents/ui/SearchPage.qml:29
#: contents/ui/LibraryPage.qml:611 contents/ui/LocalPlaylistsPage.qml:18
#: contents/ui/LocalPlaylistsPage.qml:78 contents/ui/NavigationBar.qml:75
#: contents/ui/SearchPage.qml:30 contents/ui/Sidebar.qml:167
#, kde-format
msgid "Playlists"
msgstr "Списки відтворення"
#: contents/ui/SearchPage.qml:36
#: contents/ui/LibraryPage.qml:650
#, kde-format
msgid "Unknown"
msgstr "Невідомий"
msgid "No Playlists Yet"
msgstr "Списків відтворення ще немає"
#: contents/ui/SearchPage.qml:117
#: contents/ui/LibraryPage.qml:670 contents/ui/LibraryPage.qml:692
#: contents/ui/LocalPlaylistsPage.qml:33 contents/ui/LocalPlaylistsPage.qml:55
#, kde-format
msgid "Play next"
msgstr "Відтворити наступну"
msgid "Rename"
msgstr "Перейменувати"
#: contents/ui/SearchPage.qml:129
#: contents/ui/LibraryPage.qml:679 contents/ui/LibraryPage.qml:700
#: contents/ui/LocalPlaylistsPage.qml:42 contents/ui/LocalPlaylistsPage.qml:63
#, kde-format
msgid "Radio"
msgstr "Радіо"
msgid "Delete"
msgstr "Вилучити"
#: contents/ui/SearchPage.qml:147
#: contents/ui/LocalPlaylistPage.qml:19
#, kde-format
msgid "Find music on YouTube Music"
msgstr "Шукати музику на сайті «Музика Youtube»"
msgid "Remove from Playlist"
msgstr "Вилучити зі списку"
#: contents/ui/SearchPage.qml:150
#: contents/ui/LocalPlaylistPage.qml:29
#, kde-format
msgid "This playlist is still empty"
msgstr "Цей список відтворення все ще порожній"
#: contents/ui/main.qml:109 main.cpp:59
#, kde-format
msgid "AudioTube"
msgstr "AudioTube"
#: contents/ui/MaximizedPlayerPage.qml:196
#: contents/ui/MinimizedPlayerControls.qml:93
#, kde-format
msgid "No media playing"
msgstr "Відтворення не відбувається"
#: contents/ui/MaximizedPlayerPage.qml:571
#, kde-format
msgid "%1%"
msgstr "%1%"
#: contents/ui/MaximizedPlayerPage.qml:839
#: contents/ui/MaximizedPlayerPage.qml:1016
#, kde-format
msgid "Remove Track"
msgstr "Вилучити композицію"
#: contents/ui/MaximizedPlayerPage.qml:870
#, kde-format
msgid "Clear Playlist"
msgstr "Спорожнити список відтворення"
#: contents/ui/MaximizedPlayerPage.qml:917
#, kde-format
msgid "Upcoming Songs"
msgstr "Майбутні композиції"
#: contents/ui/NavigationBar.qml:24 contents/ui/Sidebar.qml:100
#, kde-format
msgid "Library"
msgstr "Бібліотека"
#: contents/ui/NavigationBar.qml:36 contents/ui/Sidebar.qml:116
#, kde-format
msgid "Search"
msgstr "Пошук"
#: contents/ui/PlaybackHistory.qml:15
#, kde-format
msgid "Unknown list of songs"
msgstr "Невідомий список композицій"
#: contents/ui/PlaybackHistory.qml:74
#, kde-format
msgid "No songs here yet"
msgstr "Тут ще немає композицій"
#: contents/ui/PlaylistPage.qml:67
#, kde-format
msgid "Playlist"
msgstr "Список відтворення"
#: contents/ui/SearchHistoryPage.qml:86 contents/ui/SearchWithDropdown.qml:412
#, kde-format
msgid "remove from search history"
msgstr "вилучити з журналу пошуку"
#: contents/ui/SearchPage.qml:16
#, kde-format
msgid "Previous Searches:"
msgstr "Попередні пошуки:"
#: contents/ui/SearchPage.qml:28
#, kde-format
msgid "Artists"
msgstr "Виконавці"
#: contents/ui/SearchPage.qml:37
#, kde-format
msgid "Unknown"
msgstr "Невідомий"
#: contents/ui/SearchWithDropdown.qml:359
#, kde-format
msgid "No matching previous searches"
msgstr "Немає відповідних попередніх пошуків"
#: contents/ui/ShareMenu.qml:39
#, kde-format
msgid "Share to"
msgstr "Оприлюднити"
#: contents/ui/ShareMenu.qml:49 contents/ui/ShareMenu.qml:99
#, kde-format
msgid "Copy Link"
msgstr "Копіювати посилання"
#: contents/ui/ShareMenu.qml:54 contents/ui/ShareMenu.qml:104
#, kde-format
msgid "Link copied to clipboard"
msgstr "Посилання скопійовано до буфера обміну"
#: contents/ui/Sidebar.qml:189
#, kde-format
msgid "About"
msgstr "Відомості"
#: contents/ui/Sidebar.qml:203
#, kde-format
msgid "Collapse Sidebar"
msgstr "Згорнути бічну панель"
#: contents/ui/SongMenu.qml:107 contents/ui/SongMenu.qml:205
#, kde-format
msgid "Play Next"
msgstr "Відтворити наступну"
#: contents/ui/SongMenu.qml:116 contents/ui/SongMenu.qml:211
#, kde-format
msgid "Add to queue"
msgstr "Додати до черги"
#: contents/ui/SongMenu.qml:126 contents/ui/SongMenu.qml:221
#, kde-format
msgid "Remove Favourite"
msgstr "Вилучити з улюблених"
#: contents/ui/SongMenu.qml:126 contents/ui/SongMenu.qml:221
#, kde-format
msgid "Add Favourite"
msgstr "Додати до улюблених"
#: contents/ui/SongMenu.qml:143 contents/ui/SongMenu.qml:235
#, kde-format
msgid "Remove from History"
msgstr "Вилучити із журналу"
#: contents/ui/SongMenu.qml:156 contents/ui/SongMenu.qml:244
#, kde-format
msgid "Add to playlist"
msgstr "Додати до списку відтворення"
#: contents/ui/SongMenu.qml:183 contents/ui/SongMenu.qml:269
#, kde-format
msgid "Share Song"
msgstr "Оприлюднити композицію"
#: main.cpp:61
#, kde-format
msgid "YouTube Music Player"
msgstr "Програвач YouTube Music"
#: main.cpp:63
#, kde-format
msgid "© 2021-2023 Jonah Brüchert, 2021-2023 KDE Community"
msgstr "© Jonah Brüchert, 2021-2023; KDE Community,2021-2023"
#: main.cpp:64
#, kde-format
msgid "Jonah Brüchert"
msgstr "Jonah Brüchert"
#: main.cpp:64
#, kde-format
msgid "Maintainer"
msgstr "Супровідник"
#: main.cpp:65
#, kde-format
msgid "Mathis Brüchert"
msgstr "Mathis Brüchert"
#: main.cpp:65
#, kde-format
msgid "Designer"
msgstr "Дизайнер"
#: main.cpp:66
#, kde-format
msgctxt "NAME OF TRANSLATORS"
msgid "Your names"
msgstr "Юрій Чорноіван"
#: main.cpp:66
#, kde-format
msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails"
msgstr "[email protected]"
#: main.cpp:71
#, kde-format
msgid "Unofficial API for YouTube Music"
msgstr "Неофіційний програмний інтерфейс до YouTube Music"
#~ msgid "played Songs"
#~ msgstr "Відтворені композиції"
#~ msgid "%"
#~ msgstr "%"
#~ msgid "Now Playing"
#~ msgstr "Зараз відтворюємо"
#~ msgid "Queue"
#~ msgstr "Додати до черги"
#~ msgid "Lyrics"
#~ msgstr "Текст"
#~ msgid "Back"
#~ msgstr "Назад"
#~ msgid "Play next"
#~ msgstr "Відтворити наступну"
#~ msgid "Clear"
#~ msgstr "Спорожнити"
#~ msgid "Pause"
#~ msgstr "Призупинити"
#~ msgid "Expand"
#~ msgstr "Розгорнути"
#~ msgid "Play only Audio"
#~ msgstr "Відтворити лише звук"
-165
View File
@@ -1,165 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR This file is copyright:
# This file is distributed under the same license as the audiotube package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2022-05-23 00:47+0000\n"
"PO-Revision-Date: 2022-05-23 01:48+0000\n"
"Last-Translator: transxx.py program <[email protected]>\n"
"Language-Team: KDE Test Language <[email protected]>\n"
"Language: x-test\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
#, kde-format
msgctxt "NAME OF TRANSLATORS"
msgid "Your names"
msgstr "xxYour namesxx"
#, kde-format
msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails"
msgstr "xxYour emailsxx"
#: contents/ui/AlbumPage.qml:19 contents/ui/PlayerFooter.qml:192
#: contents/ui/PlaylistPage.qml:19
#, kde-format
msgid "Play"
msgstr "xxPlayxx"
#: contents/ui/AlbumPage.qml:61 contents/ui/ArtistPage.qml:101
#: contents/ui/PlaylistPage.qml:67
#, kde-format
msgid "Play Next"
msgstr "xxPlay Nextxx"
#: contents/ui/AlbumPage.qml:66 contents/ui/ArtistPage.qml:107
#: contents/ui/PlaylistPage.qml:72 contents/ui/SearchPage.qml:123
#, kde-format
msgid "Add to Playlist"
msgstr "xxAdd to Playlistxx"
#: contents/ui/ArtistPage.qml:39 contents/ui/SearchPage.qml:67
#, kde-format
msgid ""
"Video playback is not supported yet. Do you want to play only the audio of "
"\"%1\"?"
msgstr ""
"xxVideo playback is not supported yet. Do you want to play only the audio of "
"\"%1\"?xx"
#: contents/ui/ArtistPage.qml:55 contents/ui/SearchPage.qml:25
#, kde-format
msgid "Albums"
msgstr "xxAlbumsxx"
#: contents/ui/ArtistPage.qml:57
#, kde-format
msgid "Singles"
msgstr "xxSinglesxx"
#: contents/ui/ArtistPage.qml:59 contents/ui/SearchPage.qml:31
#, kde-format
msgid "Songs"
msgstr "xxSongsxx"
#: contents/ui/ArtistPage.qml:61 contents/ui/SearchPage.qml:33
#, kde-format
msgid "Videos"
msgstr "xxVideosxx"
#: contents/ui/ConfirmationMessage.qml:16
#, kde-format
msgid "OK"
msgstr "xxOKxx"
#: contents/ui/ConfirmationMessage.qml:21
#, kde-format
msgid "Cancel"
msgstr "xxCancelxx"
#: contents/ui/LibraryPage.qml:15
#, kde-format
msgid "Favourites"
msgstr "xxFavouritesxx"
#: contents/ui/LibraryPage.qml:67
#, kde-format
msgid "Most played"
msgstr "xxMost playedxx"
#: contents/ui/main.qml:94
#, kde-format
msgid "AudioTube"
msgstr "xxAudioTubexx"
#: contents/ui/PlayerFooter.qml:124
#, kde-format
msgid "Remove Track"
msgstr "xxRemove Trackxx"
#: contents/ui/PlayerFooter.qml:141
#, kde-format
msgid "Clear"
msgstr "xxClearxx"
#: contents/ui/PlayerFooter.qml:146 contents/ui/PlaylistPage.qml:26
#, kde-format
msgid "Shuffle"
msgstr "xxShufflexx"
#: contents/ui/PlayerFooter.qml:192
#, kde-format
msgid "Pause"
msgstr "xxPausexx"
#: contents/ui/PlayerFooter.qml:222
#, kde-format
msgid "No media playing"
msgstr "xxNo media playingxx"
#: contents/ui/PlayerFooter.qml:266
#, kde-format
msgid "Expand"
msgstr "xxExpandxx"
#: contents/ui/SearchPage.qml:27
#, kde-format
msgid "Artists"
msgstr "xxArtistsxx"
#: contents/ui/SearchPage.qml:29
#, kde-format
msgid "Playlists"
msgstr "xxPlaylistsxx"
#: contents/ui/SearchPage.qml:36
#, kde-format
msgid "Unknown"
msgstr "xxUnknownxx"
#: contents/ui/SearchPage.qml:117
#, kde-format
msgid "Play next"
msgstr "xxPlay nextxx"
#: contents/ui/SearchPage.qml:129
#, kde-format
msgid "Radio"
msgstr "xxRadioxx"
#: contents/ui/SearchPage.qml:147
#, kde-format
msgid "Find music on YouTube Music"
msgstr "xxFind music on YouTube Musicxx"
#: contents/ui/SearchPage.qml:150
#, kde-format
msgid "Search"
msgstr "xxSearchxx"
+326 -82
View File
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: kdeorg\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2022-05-23 00:47+0000\n"
"PO-Revision-Date: 2022-05-15 15:46\n"
"POT-Creation-Date: 2023-04-23 04:10+0000\n"
"PO-Revision-Date: 2023-04-29 08:36\n"
"Last-Translator: \n"
"Language-Team: Chinese Simplified\n"
"Language: zh_CN\n"
@@ -14,60 +14,93 @@ msgstr ""
"X-Crowdin-Project: kdeorg\n"
"X-Crowdin-Project-ID: 269464\n"
"X-Crowdin-Language: zh-CN\n"
"X-Crowdin-File: /kf5-trunk/messages/audiotube/audiotube.pot\n"
"X-Crowdin-File-ID: 25474\n"
"X-Crowdin-File: /kf5-stable/messages/audiotube/audiotube.pot\n"
"X-Crowdin-File-ID: 41997\n"
#, kde-format
msgctxt "NAME OF TRANSLATORS"
msgid "Your names"
msgstr "Qi Binye, Tyson Tan"
#, kde-format
msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails"
msgstr "[email protected], [email protected]"
#: contents/ui/AlbumPage.qml:19 contents/ui/PlayerFooter.qml:192
#: contents/ui/PlaylistPage.qml:19
#: contents/ui/AlbumPage.qml:26 contents/ui/LibraryPage.qml:37
#: contents/ui/LibraryPage.qml:63 contents/ui/LibraryPage.qml:84
#: contents/ui/LibraryPage.qml:332 contents/ui/LibraryPage.qml:358
#: contents/ui/LibraryPage.qml:379 contents/ui/LocalPlaylistPage.qml:42
#: contents/ui/PlaybackHistory.qml:23 contents/ui/PlaylistPage.qml:31
#, kde-format
msgid "Play"
msgstr "播放"
#: contents/ui/AlbumPage.qml:61 contents/ui/ArtistPage.qml:101
#: contents/ui/PlaylistPage.qml:67
#: contents/ui/AlbumPage.qml:33 contents/ui/ArtistPage.qml:36
#: contents/ui/LibraryPage.qml:44 contents/ui/LibraryPage.qml:69
#: contents/ui/LibraryPage.qml:92 contents/ui/LibraryPage.qml:339
#: contents/ui/LibraryPage.qml:364 contents/ui/LibraryPage.qml:388
#: contents/ui/LocalPlaylistPage.qml:49 contents/ui/MaximizedPlayerPage.qml:891
#: contents/ui/PlaybackHistory.qml:36 contents/ui/PlaylistPage.qml:38
#, kde-format
msgid "Play Next"
msgstr "播放下一首"
msgid "Shuffle"
msgstr "随机播放"
#: contents/ui/AlbumPage.qml:66 contents/ui/ArtistPage.qml:107
#: contents/ui/PlaylistPage.qml:72 contents/ui/SearchPage.qml:123
#: contents/ui/AlbumPage.qml:41 contents/ui/LibraryPage.qml:74
#: contents/ui/LibraryPage.qml:100 contents/ui/LibraryPage.qml:369
#: contents/ui/LibraryPage.qml:396 contents/ui/LocalPlaylistPage.qml:55
#: contents/ui/PlaybackHistory.qml:48 contents/ui/PlaylistPage.qml:46
#, kde-format
msgid "Add to Playlist"
msgstr "添加到播放列表"
msgid "Append to queue"
msgstr "追加到队列"
#: contents/ui/ArtistPage.qml:39 contents/ui/SearchPage.qml:67
#: contents/ui/AlbumPage.qml:46 contents/ui/ArtistPage.qml:43
#: contents/ui/PlaylistPage.qml:51
#, kde-format
msgid "Open in Browser"
msgstr "在浏览器中打开"
#: contents/ui/AlbumPage.qml:51 contents/ui/ArtistPage.qml:48
#: contents/ui/PlaylistPage.qml:56
#, kde-format
msgid "Share"
msgstr "分享"
#: contents/ui/AlbumPage.qml:61
#, kde-format
msgid "Album • %1"
msgstr "专辑:%1"
#: contents/ui/AlbumPage.qml:105 contents/ui/ArtistPage.qml:137
#: contents/ui/LocalPlaylistPage.qml:114 contents/ui/PlaybackHistory.qml:127
#: contents/ui/PlaylistPage.qml:116 contents/ui/SearchPage.qml:130
#, kde-format
msgid "More"
msgstr "更多"
#: contents/ui/ArtistPage.qml:31
#, kde-format
msgid "Radio"
msgstr "电台"
#: contents/ui/ArtistPage.qml:57
#, kde-format
msgid "Artist"
msgstr "艺术家"
#: contents/ui/ArtistPage.qml:79 contents/ui/SearchPage.qml:70
#, 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:55 contents/ui/SearchPage.qml:25
#: contents/ui/ArtistPage.qml:96 contents/ui/SearchPage.qml:26
#, kde-format
msgid "Albums"
msgstr "专辑"
#: contents/ui/ArtistPage.qml:57
#: contents/ui/ArtistPage.qml:98
#, kde-format
msgid "Singles"
msgstr "单曲"
#: contents/ui/ArtistPage.qml:59 contents/ui/SearchPage.qml:31
#: contents/ui/ArtistPage.qml:100 contents/ui/SearchPage.qml:32
#, kde-format
msgid "Songs"
msgstr "曲目"
#: contents/ui/ArtistPage.qml:61 contents/ui/SearchPage.qml:33
#: contents/ui/ArtistPage.qml:102 contents/ui/SearchPage.qml:34
#, kde-format
msgid "Videos"
msgstr "视频"
@@ -82,82 +115,293 @@ msgstr "确定"
msgid "Cancel"
msgstr "取消"
#: contents/ui/LibraryPage.qml:15
#: contents/ui/dialogs/AddPlaylistDialog.qml:17
#, kde-format
msgid "Add playlist"
msgstr "添加播放列表"
#: contents/ui/dialogs/AddPlaylistDialog.qml:23
#: contents/ui/dialogs/RenamePlaylistDialog.qml:24
#, kde-format
msgid "Playlist Title"
msgstr "播放列表标题"
#: contents/ui/dialogs/AddPlaylistDialog.qml:28
#: contents/ui/dialogs/RenamePlaylistDialog.qml:30
#, kde-format
msgid "Playlist Description"
msgstr "播放列表描述"
#: contents/ui/dialogs/PlaylistDialog.qml:20
#, kde-format
msgid "Add Song to Playlist"
msgstr "添加歌曲到播放列表"
#: contents/ui/dialogs/PlaylistDialog.qml:29
#: contents/ui/LocalPlaylistsPage.qml:90
#, kde-format
msgid "New Playlist"
msgstr "新建播放列表"
#: contents/ui/dialogs/RenamePlaylistDialog.qml:18
#, kde-format
msgid "Rename playlist"
msgstr "重命名播放列表"
#: contents/ui/LibraryPage.qml:30 contents/ui/LibraryPage.qml:123
#: contents/ui/NavigationBar.qml:48 contents/ui/NavigationBar.qml:54
#: contents/ui/Sidebar.qml:131 contents/ui/Sidebar.qml:138
#, kde-format
msgid "Favourites"
msgstr ""
msgstr "收藏夹"
#: contents/ui/LibraryPage.qml:67
#: contents/ui/LibraryPage.qml:119 contents/ui/LibraryPage.qml:416
#: contents/ui/LibraryPage.qml:623
#, kde-format
msgid "Show All"
msgstr "显示全部"
#: contents/ui/LibraryPage.qml:147
#, kde-format
msgid "No Favourites Yet"
msgstr "无收藏夹"
#: contents/ui/LibraryPage.qml:325
#, kde-format
msgid "Most played"
msgstr ""
msgstr "最常播放"
#: contents/ui/main.qml:94
#: contents/ui/LibraryPage.qml:420 contents/ui/NavigationBar.qml:61
#: contents/ui/NavigationBar.qml:67 contents/ui/Sidebar.qml:150
#: contents/ui/Sidebar.qml:157
#, kde-format
msgid "AudioTube"
msgstr "AudioTube"
msgid "Played Songs"
msgstr "已播放歌曲"
#: contents/ui/PlayerFooter.qml:124
#: contents/ui/LibraryPage.qml:444
#, kde-format
msgid "Remove Track"
msgstr "移除曲目"
msgid "No Songs Played Yet"
msgstr "未播放歌曲"
#: contents/ui/PlayerFooter.qml:141
#, kde-format
msgid "Clear"
msgstr "清除"
#: contents/ui/PlayerFooter.qml:146 contents/ui/PlaylistPage.qml:26
#, kde-format
msgid "Shuffle"
msgstr "随机播放"
#: contents/ui/PlayerFooter.qml:192
#, kde-format
msgid "Pause"
msgstr "暂停"
#: contents/ui/PlayerFooter.qml:222
#, kde-format
msgid "No media playing"
msgstr "没有正在播放的媒体"
#: contents/ui/PlayerFooter.qml:266
#, kde-format
msgid "Expand"
msgstr "展开"
#: contents/ui/SearchPage.qml:27
#, kde-format
msgid "Artists"
msgstr "艺人"
#: contents/ui/SearchPage.qml:29
#: contents/ui/LibraryPage.qml:611 contents/ui/LocalPlaylistsPage.qml:18
#: contents/ui/LocalPlaylistsPage.qml:78 contents/ui/NavigationBar.qml:75
#: contents/ui/SearchPage.qml:30 contents/ui/Sidebar.qml:167
#, kde-format
msgid "Playlists"
msgstr "播放列表"
#: contents/ui/SearchPage.qml:36
#: contents/ui/LibraryPage.qml:650
#, kde-format
msgid "No Playlists Yet"
msgstr "无播放列表"
#: contents/ui/LibraryPage.qml:670 contents/ui/LibraryPage.qml:692
#: contents/ui/LocalPlaylistsPage.qml:33 contents/ui/LocalPlaylistsPage.qml:55
#, kde-format
msgid "Rename"
msgstr "重命名"
#: contents/ui/LibraryPage.qml:679 contents/ui/LibraryPage.qml:700
#: contents/ui/LocalPlaylistsPage.qml:42 contents/ui/LocalPlaylistsPage.qml:63
#, kde-format
msgid "Delete"
msgstr "删除"
#: contents/ui/LocalPlaylistPage.qml:19
#, kde-format
msgid "Remove from Playlist"
msgstr "从播放列表中移除"
#: contents/ui/LocalPlaylistPage.qml:29
#, kde-format
msgid "This playlist is still empty"
msgstr "此播放列表未包含歌曲"
#: contents/ui/main.qml:109 main.cpp:59
#, kde-format
msgid "AudioTube"
msgstr "AudioTube"
#: contents/ui/MaximizedPlayerPage.qml:196
#: contents/ui/MinimizedPlayerControls.qml:93
#, kde-format
msgid "No media playing"
msgstr "没有正在播放的媒体"
#: contents/ui/MaximizedPlayerPage.qml:571
#, kde-format
msgid "%1%"
msgstr "%1%"
#: contents/ui/MaximizedPlayerPage.qml:839
#: contents/ui/MaximizedPlayerPage.qml:1016
#, kde-format
msgid "Remove Track"
msgstr "移除曲目"
#: contents/ui/MaximizedPlayerPage.qml:870
#, kde-format
msgid "Clear Playlist"
msgstr ""
#: contents/ui/MaximizedPlayerPage.qml:917
#, kde-format
msgid "Upcoming Songs"
msgstr "即将播放的歌曲"
#: contents/ui/NavigationBar.qml:24 contents/ui/Sidebar.qml:100
#, kde-format
msgid "Library"
msgstr "曲库"
#: contents/ui/NavigationBar.qml:36 contents/ui/Sidebar.qml:116
#, kde-format
msgid "Search"
msgstr "搜索"
#: contents/ui/PlaybackHistory.qml:15
#, kde-format
msgid "Unknown list of songs"
msgstr "未知歌曲列表"
#: contents/ui/PlaybackHistory.qml:74
#, kde-format
msgid "No songs here yet"
msgstr "此处无歌曲"
#: contents/ui/PlaylistPage.qml:67
#, kde-format
msgid "Playlist"
msgstr "播放列表"
#: contents/ui/SearchHistoryPage.qml:86 contents/ui/SearchWithDropdown.qml:412
#, kde-format
msgid "remove from search history"
msgstr "从搜索历史中移除"
#: contents/ui/SearchPage.qml:16
#, kde-format
msgid "Previous Searches:"
msgstr "历史搜索"
#: contents/ui/SearchPage.qml:28
#, kde-format
msgid "Artists"
msgstr "艺人"
#: contents/ui/SearchPage.qml:37
#, kde-format
msgid "Unknown"
msgstr "未知"
#: contents/ui/SearchPage.qml:117
#: contents/ui/SearchWithDropdown.qml:359
#, kde-format
msgid "Play next"
msgid "No matching previous searches"
msgstr "没有匹配的历史搜索"
#: contents/ui/ShareMenu.qml:39
#, kde-format
msgid "Share to"
msgstr "分享到"
#: contents/ui/ShareMenu.qml:49 contents/ui/ShareMenu.qml:99
#, kde-format
msgid "Copy Link"
msgstr "复制链接"
#: contents/ui/ShareMenu.qml:54 contents/ui/ShareMenu.qml:104
#, kde-format
msgid "Link copied to clipboard"
msgstr "链接已复制到剪贴板"
#: contents/ui/Sidebar.qml:189
#, kde-format
msgid "About"
msgstr "关于"
#: contents/ui/Sidebar.qml:203
#, kde-format
msgid "Collapse Sidebar"
msgstr "折叠侧栏"
#: contents/ui/SongMenu.qml:107 contents/ui/SongMenu.qml:205
#, kde-format
msgid "Play Next"
msgstr "播放下一首"
#: contents/ui/SearchPage.qml:129
#: contents/ui/SongMenu.qml:116 contents/ui/SongMenu.qml:211
#, kde-format
msgid "Radio"
msgstr "电台"
msgid "Add to queue"
msgstr "加入队列"
#: contents/ui/SearchPage.qml:147
#: contents/ui/SongMenu.qml:126 contents/ui/SongMenu.qml:221
#, kde-format
msgid "Find music on YouTube Music"
msgstr "查找 YouTube Music 中的音乐"
msgid "Remove Favourite"
msgstr "从收藏中删除"
#: contents/ui/SearchPage.qml:150
#: contents/ui/SongMenu.qml:126 contents/ui/SongMenu.qml:221
#, kde-format
msgid "Search"
msgstr "搜索"
msgid "Add Favourite"
msgstr "添加收藏夹"
#: contents/ui/SongMenu.qml:143 contents/ui/SongMenu.qml:235
#, kde-format
msgid "Remove from History"
msgstr "从历史记录中删除"
#: contents/ui/SongMenu.qml:156 contents/ui/SongMenu.qml:244
#, kde-format
msgid "Add to playlist"
msgstr "添加到播放列表"
#: contents/ui/SongMenu.qml:183 contents/ui/SongMenu.qml:269
#, kde-format
msgid "Share Song"
msgstr "分享歌曲"
#: main.cpp:61
#, kde-format
msgid "YouTube Music Player"
msgstr ""
#: main.cpp:63
#, kde-format
msgid "© 2021-2023 Jonah Brüchert, 2021-2023 KDE Community"
msgstr ""
#: main.cpp:64
#, kde-format
msgid "Jonah Brüchert"
msgstr ""
#: main.cpp:64
#, kde-format
msgid "Maintainer"
msgstr ""
#: main.cpp:65
#, kde-format
msgid "Mathis Brüchert"
msgstr ""
#: main.cpp:65
#, kde-format
msgid "Designer"
msgstr ""
#: main.cpp:66
#, kde-format
msgctxt "NAME OF TRANSLATORS"
msgid "Your names"
msgstr "Qi Binye, Tyson Tan"
#: main.cpp:66
#, kde-format
msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails"
msgstr "[email protected], [email protected]"
#: main.cpp:71
#, kde-format
msgid "Unofficial API for YouTube Music"
msgstr ""
+408
View File
@@ -0,0 +1,408 @@
# Chinese translations for audiotube package
# audiotube 套件的正體中文翻譯.
# Copyright (C) 2022 This file is copyright:
# This file is distributed under the same license as the audiotube package.
# Automatically generated, 2022.
#
msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2023-04-23 04:10+0000\n"
"PO-Revision-Date: 2022-05-30 00:47+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
"Language: zh_TW\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
#: contents/ui/AlbumPage.qml:26 contents/ui/LibraryPage.qml:37
#: contents/ui/LibraryPage.qml:63 contents/ui/LibraryPage.qml:84
#: contents/ui/LibraryPage.qml:332 contents/ui/LibraryPage.qml:358
#: contents/ui/LibraryPage.qml:379 contents/ui/LocalPlaylistPage.qml:42
#: contents/ui/PlaybackHistory.qml:23 contents/ui/PlaylistPage.qml:31
#, kde-format
msgid "Play"
msgstr ""
#: contents/ui/AlbumPage.qml:33 contents/ui/ArtistPage.qml:36
#: contents/ui/LibraryPage.qml:44 contents/ui/LibraryPage.qml:69
#: contents/ui/LibraryPage.qml:92 contents/ui/LibraryPage.qml:339
#: contents/ui/LibraryPage.qml:364 contents/ui/LibraryPage.qml:388
#: contents/ui/LocalPlaylistPage.qml:49 contents/ui/MaximizedPlayerPage.qml:891
#: contents/ui/PlaybackHistory.qml:36 contents/ui/PlaylistPage.qml:38
#, kde-format
msgid "Shuffle"
msgstr ""
#: contents/ui/AlbumPage.qml:41 contents/ui/LibraryPage.qml:74
#: contents/ui/LibraryPage.qml:100 contents/ui/LibraryPage.qml:369
#: contents/ui/LibraryPage.qml:396 contents/ui/LocalPlaylistPage.qml:55
#: contents/ui/PlaybackHistory.qml:48 contents/ui/PlaylistPage.qml:46
#, kde-format
msgid "Append to queue"
msgstr ""
#: contents/ui/AlbumPage.qml:46 contents/ui/ArtistPage.qml:43
#: contents/ui/PlaylistPage.qml:51
#, kde-format
msgid "Open in Browser"
msgstr ""
#: contents/ui/AlbumPage.qml:51 contents/ui/ArtistPage.qml:48
#: contents/ui/PlaylistPage.qml:56
#, kde-format
msgid "Share"
msgstr ""
#: contents/ui/AlbumPage.qml:61
#, kde-format
msgid "Album • %1"
msgstr ""
#: contents/ui/AlbumPage.qml:105 contents/ui/ArtistPage.qml:137
#: contents/ui/LocalPlaylistPage.qml:114 contents/ui/PlaybackHistory.qml:127
#: contents/ui/PlaylistPage.qml:116 contents/ui/SearchPage.qml:130
#, kde-format
msgid "More"
msgstr ""
#: contents/ui/ArtistPage.qml:31
#, kde-format
msgid "Radio"
msgstr ""
#: contents/ui/ArtistPage.qml:57
#, kde-format
msgid "Artist"
msgstr ""
#: contents/ui/ArtistPage.qml:79 contents/ui/SearchPage.qml:70
#, kde-format
msgid ""
"Video playback is not supported yet. Do you want to play only the audio of "
"\"%1\"?"
msgstr ""
#: contents/ui/ArtistPage.qml:96 contents/ui/SearchPage.qml:26
#, kde-format
msgid "Albums"
msgstr ""
#: contents/ui/ArtistPage.qml:98
#, kde-format
msgid "Singles"
msgstr ""
#: contents/ui/ArtistPage.qml:100 contents/ui/SearchPage.qml:32
#, kde-format
msgid "Songs"
msgstr ""
#: contents/ui/ArtistPage.qml:102 contents/ui/SearchPage.qml:34
#, 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/dialogs/AddPlaylistDialog.qml:17
#, kde-format
msgid "Add playlist"
msgstr ""
#: contents/ui/dialogs/AddPlaylistDialog.qml:23
#: contents/ui/dialogs/RenamePlaylistDialog.qml:24
#, kde-format
msgid "Playlist Title"
msgstr ""
#: contents/ui/dialogs/AddPlaylistDialog.qml:28
#: contents/ui/dialogs/RenamePlaylistDialog.qml:30
#, kde-format
msgid "Playlist Description"
msgstr ""
#: contents/ui/dialogs/PlaylistDialog.qml:20
#, kde-format
msgid "Add Song to Playlist"
msgstr ""
#: contents/ui/dialogs/PlaylistDialog.qml:29
#: contents/ui/LocalPlaylistsPage.qml:90
#, kde-format
msgid "New Playlist"
msgstr ""
#: contents/ui/dialogs/RenamePlaylistDialog.qml:18
#, kde-format
msgid "Rename playlist"
msgstr ""
#: contents/ui/LibraryPage.qml:30 contents/ui/LibraryPage.qml:123
#: contents/ui/NavigationBar.qml:48 contents/ui/NavigationBar.qml:54
#: contents/ui/Sidebar.qml:131 contents/ui/Sidebar.qml:138
#, kde-format
msgid "Favourites"
msgstr ""
#: contents/ui/LibraryPage.qml:119 contents/ui/LibraryPage.qml:416
#: contents/ui/LibraryPage.qml:623
#, kde-format
msgid "Show All"
msgstr ""
#: contents/ui/LibraryPage.qml:147
#, kde-format
msgid "No Favourites Yet"
msgstr ""
#: contents/ui/LibraryPage.qml:325
#, kde-format
msgid "Most played"
msgstr ""
#: contents/ui/LibraryPage.qml:420 contents/ui/NavigationBar.qml:61
#: contents/ui/NavigationBar.qml:67 contents/ui/Sidebar.qml:150
#: contents/ui/Sidebar.qml:157
#, kde-format
msgid "Played Songs"
msgstr ""
#: contents/ui/LibraryPage.qml:444
#, kde-format
msgid "No Songs Played Yet"
msgstr ""
#: contents/ui/LibraryPage.qml:611 contents/ui/LocalPlaylistsPage.qml:18
#: contents/ui/LocalPlaylistsPage.qml:78 contents/ui/NavigationBar.qml:75
#: contents/ui/SearchPage.qml:30 contents/ui/Sidebar.qml:167
#, kde-format
msgid "Playlists"
msgstr ""
#: contents/ui/LibraryPage.qml:650
#, kde-format
msgid "No Playlists Yet"
msgstr ""
#: contents/ui/LibraryPage.qml:670 contents/ui/LibraryPage.qml:692
#: contents/ui/LocalPlaylistsPage.qml:33 contents/ui/LocalPlaylistsPage.qml:55
#, kde-format
msgid "Rename"
msgstr ""
#: contents/ui/LibraryPage.qml:679 contents/ui/LibraryPage.qml:700
#: contents/ui/LocalPlaylistsPage.qml:42 contents/ui/LocalPlaylistsPage.qml:63
#, kde-format
msgid "Delete"
msgstr ""
#: contents/ui/LocalPlaylistPage.qml:19
#, kde-format
msgid "Remove from Playlist"
msgstr ""
#: contents/ui/LocalPlaylistPage.qml:29
#, kde-format
msgid "This playlist is still empty"
msgstr ""
#: contents/ui/main.qml:109 main.cpp:59
#, kde-format
msgid "AudioTube"
msgstr ""
#: contents/ui/MaximizedPlayerPage.qml:196
#: contents/ui/MinimizedPlayerControls.qml:93
#, kde-format
msgid "No media playing"
msgstr ""
#: contents/ui/MaximizedPlayerPage.qml:571
#, kde-format
msgid "%1%"
msgstr ""
#: contents/ui/MaximizedPlayerPage.qml:839
#: contents/ui/MaximizedPlayerPage.qml:1016
#, kde-format
msgid "Remove Track"
msgstr ""
#: contents/ui/MaximizedPlayerPage.qml:870
#, kde-format
msgid "Clear Playlist"
msgstr ""
#: contents/ui/MaximizedPlayerPage.qml:917
#, kde-format
msgid "Upcoming Songs"
msgstr ""
#: contents/ui/NavigationBar.qml:24 contents/ui/Sidebar.qml:100
#, kde-format
msgid "Library"
msgstr ""
#: contents/ui/NavigationBar.qml:36 contents/ui/Sidebar.qml:116
#, kde-format
msgid "Search"
msgstr ""
#: contents/ui/PlaybackHistory.qml:15
#, kde-format
msgid "Unknown list of songs"
msgstr ""
#: contents/ui/PlaybackHistory.qml:74
#, kde-format
msgid "No songs here yet"
msgstr ""
#: contents/ui/PlaylistPage.qml:67
#, kde-format
msgid "Playlist"
msgstr ""
#: contents/ui/SearchHistoryPage.qml:86 contents/ui/SearchWithDropdown.qml:412
#, kde-format
msgid "remove from search history"
msgstr ""
#: contents/ui/SearchPage.qml:16
#, kde-format
msgid "Previous Searches:"
msgstr ""
#: contents/ui/SearchPage.qml:28
#, kde-format
msgid "Artists"
msgstr ""
#: contents/ui/SearchPage.qml:37
#, kde-format
msgid "Unknown"
msgstr ""
#: contents/ui/SearchWithDropdown.qml:359
#, kde-format
msgid "No matching previous searches"
msgstr ""
#: contents/ui/ShareMenu.qml:39
#, kde-format
msgid "Share to"
msgstr ""
#: contents/ui/ShareMenu.qml:49 contents/ui/ShareMenu.qml:99
#, kde-format
msgid "Copy Link"
msgstr ""
#: contents/ui/ShareMenu.qml:54 contents/ui/ShareMenu.qml:104
#, kde-format
msgid "Link copied to clipboard"
msgstr ""
#: contents/ui/Sidebar.qml:189
#, kde-format
msgid "About"
msgstr ""
#: contents/ui/Sidebar.qml:203
#, kde-format
msgid "Collapse Sidebar"
msgstr ""
#: contents/ui/SongMenu.qml:107 contents/ui/SongMenu.qml:205
#, kde-format
msgid "Play Next"
msgstr ""
#: contents/ui/SongMenu.qml:116 contents/ui/SongMenu.qml:211
#, kde-format
msgid "Add to queue"
msgstr ""
#: contents/ui/SongMenu.qml:126 contents/ui/SongMenu.qml:221
#, kde-format
msgid "Remove Favourite"
msgstr ""
#: contents/ui/SongMenu.qml:126 contents/ui/SongMenu.qml:221
#, kde-format
msgid "Add Favourite"
msgstr ""
#: contents/ui/SongMenu.qml:143 contents/ui/SongMenu.qml:235
#, kde-format
msgid "Remove from History"
msgstr ""
#: contents/ui/SongMenu.qml:156 contents/ui/SongMenu.qml:244
#, kde-format
msgid "Add to playlist"
msgstr ""
#: contents/ui/SongMenu.qml:183 contents/ui/SongMenu.qml:269
#, kde-format
msgid "Share Song"
msgstr ""
#: main.cpp:61
#, kde-format
msgid "YouTube Music Player"
msgstr ""
#: main.cpp:63
#, kde-format
msgid "© 2021-2023 Jonah Brüchert, 2021-2023 KDE Community"
msgstr ""
#: main.cpp:64
#, kde-format
msgid "Jonah Brüchert"
msgstr ""
#: main.cpp:64
#, kde-format
msgid "Maintainer"
msgstr ""
#: main.cpp:65
#, kde-format
msgid "Mathis Brüchert"
msgstr ""
#: main.cpp:65
#, kde-format
msgid "Designer"
msgstr ""
#: main.cpp:66
#, kde-format
msgctxt "NAME OF TRANSLATORS"
msgid "Your names"
msgstr ""
#: main.cpp:66
#, kde-format
msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails"
msgstr ""
#: main.cpp:71
#, kde-format
msgid "Unofficial API for YouTube Music"
msgstr ""
+1 -1
View File
@@ -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.25.0
yt-dlp
+18 -8
View File
@@ -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)
@@ -32,26 +32,36 @@ add_executable(audiotube
playlistutils.cpp
errorhandler.cpp
playerutils.cpp
thumbnailsource.cpp
abstractytmusicmodel.cpp
multiiterableview.h
library.cpp
localplaylistmodel.cpp
localplaylistsmodel.cpp
resources.qrc
blur.cpp
clipboard.cpp
)
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
Qt::Concurrent
KF5::I18n
KF5::CoreAddons
KF5::Crash
KF5::WindowSystem
ytm
asyncdatabase
)
target_compile_definitions(audiotube PRIVATE -DQT_NO_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_QML_DEBUG)
target_compile_definitions(audiotube PRIVATE
-DAUDIOTUBE_VERSION_STRING="${RELEASE_SERVICE_VERSION}"
-DQT_NO_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING)
install(TARGETS audiotube ${KDE_INSTALL_TARGETS_DEFAULT_ARGS})
+30 -2
View File
@@ -3,8 +3,9 @@
// SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
#include "albummodel.h"
#include "playlistutils.h"
#include <QDebug>
#include <QStringBuilder>
AlbumModel::AlbumModel(QObject *parent)
: AbstractYTMusicModel(parent)
@@ -21,6 +22,7 @@ AlbumModel::AlbumModel(QObject *parent)
std::sort(m_album.thumbnails.begin(), m_album.thumbnails.end());
Q_EMIT titleChanged();
Q_EMIT artistsChanged();
Q_EMIT thumbnailUrlChanged();
Q_EMIT playlistIdChanged();
});
@@ -45,6 +47,14 @@ 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);
} else {
return {};
}
case ArtistsDisplayString:
return PlaylistUtils::artistsToString(m_album.tracks[index.row()].artists);
}
Q_UNREACHABLE();
@@ -57,7 +67,9 @@ QHash<int, QByteArray> AlbumModel::roleNames() const
return {
{Title, "title"},
{VideoId, "videoId"},
{Artists, "artists"}
{Artists, "artists"},
{ThumbnailUrl, "thumbnailUrl"},
{ArtistsDisplayString, "artistsDisplayString"}
};
}
@@ -77,6 +89,12 @@ QString AlbumModel::title() const
return QString::fromStdString(m_album.title);
}
QString AlbumModel::artists() const
{
return PlaylistUtils::artistsToString(m_album.artists);
}
QUrl AlbumModel::thumbnailUrl() const
{
if (m_album.thumbnails.empty()) {
@@ -90,3 +108,13 @@ QString AlbumModel::playlistId() const
{
return QString::fromStdString(m_album.audio_playlist_id);
}
QUrl AlbumModel::webUrl() const
{
return QUrl(YTMUSIC_WEB_BASE_URL % "/playlist?list=" % QString::fromStdString(m_album.audio_playlist_id));
}
const album::Album &AlbumModel::album() const
{
return m_album;
}
+11 -1
View File
@@ -16,14 +16,18 @@ class AlbumModel : public AbstractYTMusicModel
Q_PROPERTY(QString browseId READ browseId WRITE setBrowseId NOTIFY browseIdChanged REQUIRED)
Q_PROPERTY(QString title READ title NOTIFY titleChanged)
Q_PROPERTY(QString artists READ artists NOTIFY artistsChanged)
Q_PROPERTY(QUrl thumbnailUrl READ thumbnailUrl NOTIFY thumbnailUrlChanged)
Q_PROPERTY(QString playlistId READ playlistId NOTIFY playlistIdChanged)
Q_PROPERTY(QUrl webUrl READ webUrl NOTIFY playlistIdChanged)
public:
enum Role {
Title = Qt::UserRole + 1,
VideoId,
Artists
Artists,
ThumbnailUrl,
ArtistsDisplayString
};
explicit AlbumModel(QObject *parent = nullptr);
@@ -39,12 +43,18 @@ public:
QString title() const;
Q_SIGNAL void titleChanged();
QString artists() const;
Q_SIGNAL void artistsChanged();
QUrl thumbnailUrl() const;
Q_SIGNAL void thumbnailUrlChanged();
QString playlistId() const;
Q_SIGNAL void playlistIdChanged();
QUrl webUrl() const;
const album::Album &album() const;
private:
QString m_browseId;
+28 -1
View File
@@ -4,6 +4,8 @@
#include "artistmodel.h"
#include <QStringBuilder>
#include <asyncytmusic.h>
ArtistModel::ArtistModel(QObject *parent)
@@ -26,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);
@@ -103,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();
@@ -116,7 +137,8 @@ QHash<int, QByteArray> ArtistModel::roleNames() const
{Title, "title"},
{Type, "type"},
{Artists, "artists"},
{VideoId, "videoId"}
{VideoId, "videoId"},
{ThumbnailUrl, "thumbnailUrl"}
};
}
@@ -145,6 +167,11 @@ QUrl ArtistModel::thumbnailUrl() const
return QUrl(QString::fromStdString(m_artist.thumbnails.back().url));
}
QUrl ArtistModel::webUrl() const
{
return QUrl(YTMUSIC_WEB_BASE_URL % u"channel/" % m_channelId);
}
void ArtistModel::triggerItem(int row)
{
std::visit([&](auto&& item) {
+5 -1
View File
@@ -23,6 +23,7 @@ class ArtistModel : public AbstractYTMusicModel
Q_PROPERTY(QString title READ title NOTIFY titleChanged)
Q_PROPERTY(QUrl thumbnailUrl READ thumbnailUrl NOTIFY thumbnailUrlChanged)
Q_PROPERTY(QUrl webUrl READ webUrl NOTIFY channelIdChanged)
public:
enum Type {
@@ -37,7 +38,8 @@ public:
Title,
Type,
Artists,
VideoId
VideoId,
ThumbnailUrl
};
explicit ArtistModel(QObject *parent = nullptr);
@@ -56,6 +58,8 @@ public:
QUrl thumbnailUrl() const;
Q_SIGNAL void thumbnailUrlChanged();
QUrl webUrl() const;
Q_INVOKABLE void triggerItem(int row);
Q_SIGNAL void openAlbum(const QString &browseId);
+1 -1
View File
@@ -120,7 +120,7 @@ struct AsyncSqlDatabasePrivate {
// Internal asynchronous database class
QFuture<void> AsyncSqlDatabase::establishConnection(const DatabaseConfiguration &configuration)
{
return runAsync<void>([=, this] {
return runAsync([=, this] {
d->database = QSqlDatabase::addDatabase(configuration.type());
if (configuration.databaseName()) {
d->database.setDatabaseName(*configuration.databaseName());
+9 -8
View File
@@ -98,7 +98,7 @@ public:
template <typename T, typename ...Args>
auto getResults(const QString &sqlQuery, Args... args) -> QFuture<std::vector<T>> {
return runAsync<std::vector<T>>([=, this] {
return runAsync([=, this] {
auto query = executeQuery(sqlQuery, args...);
const auto rows = parseRows<typename T::ColumnTypes>(retrieveRows(query));
@@ -110,7 +110,7 @@ public:
template <typename T, typename ...Args>
auto getResult(const QString &sqlQuery, Args... args) -> QFuture<std::optional<T>> {
return runAsync<std::optional<T>>([=, this]() -> std::optional<T> {
return runAsync([=, this]() -> std::optional<T> {
auto query = executeQuery(sqlQuery, args...);
if (const auto row = retrieveOptionalRow(query)) {
return T::fromSql(parseRow<typename T::ColumnTypes>(*row));
@@ -122,13 +122,13 @@ public:
template <typename ...Args>
auto execute(const QString &sqlQuery, Args... args) -> QFuture<void> {
return runAsync<void>([=, this] {
return runAsync([=, this] {
executeQuery(sqlQuery, args...);
});
}
auto runMigrations(const QString &migrationDirectory) -> QFuture<void> {
return runAsync<void>([=, this] {
return runAsync([=, this] {
runDatabaseMigrations(db(), migrationDirectory);
});
}
@@ -149,11 +149,12 @@ private:
return runQuery(query);
}
template <typename T, typename Functor>
QFuture<T> runAsync(Functor func) {
auto interface = std::make_shared<QFutureInterface<T>>();
template <typename Functor>
QFuture<std::invoke_result_t<Functor>> runAsync(Functor func) {
using ReturnType = std::invoke_result_t<Functor>;
auto interface = std::make_shared<QFutureInterface<ReturnType>>();
QMetaObject::invokeMethod(this, [interface, func] {
if constexpr (!std::is_same_v<T, void>) {
if constexpr (!std::is_same_v<ReturnType, void>) {
auto result = func();
interface->reportResult(result);
} else {
+34 -15
View File
@@ -9,6 +9,7 @@
#include <QJsonObject>
#include <QJsonArray>
#include <QFutureInterface>
#include <QCoreApplication>
#include <pybind11/embed.h>
@@ -23,8 +24,8 @@ namespace py = pybind11;
#include <type_traits>
#include <memory>
template <typename R, typename T, typename OP>
std::optional<R> map_optional(const std::optional<T> &optional, OP op) {
template <typename T, typename OP>
std::optional<std::invoke_result_t<OP, T>> mapOptional(const std::optional<T> &optional, OP op) {
if (optional.has_value()) {
if constexpr (std::is_member_function_pointer<OP>::value) {
return (&optional.value()->*op)();
@@ -61,7 +62,7 @@ AsyncYTMusic::AsyncYTMusic(QObject *parent)
//
QFuture<std::vector<search::SearchResultItem>> AsyncYTMusic::search(const QString &query)
{
return invokeAndCatchOnThread<std::vector<search::SearchResultItem>>([=, this]() {
return invokeAndCatchOnThread([=, this]() {
return m_ytm->search(query.toStdString());
});
}
@@ -71,7 +72,7 @@ QFuture<std::vector<search::SearchResultItem>> AsyncYTMusic::search(const QStrin
//
QFuture<artist::Artist> AsyncYTMusic::fetchArtist(const QString &channelId)
{
return invokeAndCatchOnThread<artist::Artist>([=, this]() {
return invokeAndCatchOnThread([=, this]() {
return m_ytm->get_artist(channelId.toStdString());
});
}
@@ -81,7 +82,7 @@ QFuture<artist::Artist> AsyncYTMusic::fetchArtist(const QString &channelId)
//
QFuture<album::Album> AsyncYTMusic::fetchAlbum(const QString &browseId)
{
return invokeAndCatchOnThread<album::Album>([=, this]() {
return invokeAndCatchOnThread([=, this]() {
return m_ytm->get_album(browseId.toStdString());
});
}
@@ -91,7 +92,7 @@ QFuture<album::Album> AsyncYTMusic::fetchAlbum(const QString &browseId)
//
QFuture<std::optional<song::Song>> AsyncYTMusic::fetchSong(const QString &videoId)
{
return invokeAndCatchOnThread<std::optional<song::Song>>([=, this]() {
return invokeAndCatchOnThread([=, this]() {
return m_ytm->get_song(videoId.toStdString());
});
}
@@ -100,7 +101,7 @@ QFuture<std::optional<song::Song>> AsyncYTMusic::fetchSong(const QString &videoI
// fetchPlaylist
//
QFuture<playlist::Playlist> AsyncYTMusic::fetchPlaylist(const QString &playlistId) {
return invokeAndCatchOnThread<playlist::Playlist>([=, this]() {
return invokeAndCatchOnThread([=, this]() {
return m_ytm->get_playlist(playlistId.toStdString());
});
}
@@ -110,7 +111,7 @@ QFuture<playlist::Playlist> AsyncYTMusic::fetchPlaylist(const QString &playlistI
//
QFuture<std::vector<artist::Artist::Album>> AsyncYTMusic::fetchArtistAlbums(const QString &channelId, const QString &params)
{
return invokeAndCatchOnThread<std::vector<artist::Artist::Album>>([=, this]() {
return invokeAndCatchOnThread([=, this]() {
return m_ytm->get_artist_albums(channelId.toStdString(), params.toStdString());
});
}
@@ -120,7 +121,7 @@ QFuture<std::vector<artist::Artist::Album>> AsyncYTMusic::fetchArtistAlbums(cons
//
QFuture<video_info::VideoInfo> AsyncYTMusic::extractVideoInfo(const QString &videoId)
{
return invokeAndCatchOnThread<video_info::VideoInfo>([=, this]() {
return invokeAndCatchOnThread([=, this]() {
return m_ytm->extract_video_info(videoId.toStdString());
});
}
@@ -130,14 +131,30 @@ QFuture<video_info::VideoInfo> AsyncYTMusic::extractVideoInfo(const QString &vid
//
QFuture<watch::Playlist> AsyncYTMusic::fetchWatchPlaylist(const std::optional<QString> &videoId, const std::optional<QString> &playlistId)
{
return invokeAndCatchOnThread<watch::Playlist>([=, this]() {
return invokeAndCatchOnThread([=, this]() {
return m_ytm->get_watch_playlist(
map_optional<std::string>(videoId, &QString::toStdString),
map_optional<std::string>(playlistId, &QString::toStdString)
mapOptional(videoId, &QString::toStdString),
mapOptional(playlistId, &QString::toStdString)
);
});
}
QFuture<Lyrics> AsyncYTMusic::fetchLyrics(const QString &browseId)
{
return invokeAndCatchOnThread([=, this]() {
return m_ytm->get_lyrics(
browseId.toStdString()
);
});
}
QFuture<QString> AsyncYTMusic::version()
{
return invokeAndCatchOnThread([this]() {
return QString::fromStdString(m_ytm->get_version());
});
}
YTMusicThread &YTMusicThread::instance()
{
static YTMusicThread thread;
@@ -152,17 +169,19 @@ YTMusicThread::~YTMusicThread()
AsyncYTMusic *YTMusicThread::operator->()
{
return &m_ytm;
return m_ytm;
}
AsyncYTMusic &YTMusicThread::get()
{
return m_ytm;
return *m_ytm;
}
YTMusicThread::YTMusicThread()
: m_ytm(new AsyncYTMusic())
{
connect(QCoreApplication::instance(), &QCoreApplication::aboutToQuit, m_ytm, &QObject::deleteLater);
setObjectName(QStringLiteral("YTMusicAPI"));
m_ytm.moveToThread(this);
m_ytm->moveToThread(this);
start();
}
+18 -7
View File
@@ -9,10 +9,13 @@
#include <QFuture>
#include <QFutureWatcher>
#include <iostream>
#include <vector>
#include <ytmusic.h>
constexpr QStringView YTMUSIC_WEB_BASE_URL = u"https://music.youtube.com/";
Q_DECLARE_METATYPE(std::vector<artist::Artist::Album>);
Q_DECLARE_METATYPE(std::vector<search::SearchResultItem>)
Q_DECLARE_METATYPE(artist::Artist)
@@ -54,17 +57,19 @@ 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)();
} else {
Q_UNUSED(self);
fun();
}
} else if (future.resultCount() > 0) {
if constexpr (std::is_member_function_pointer_v<Function>) {
(self->*fun)(watcher->result());
} else {
Q_UNUSED(self);
fun(watcher->result());
}
}
@@ -75,12 +80,13 @@ void connectFuture(const QFuture<T> &future, QObjectDerivedType *self, const Fun
/// Applies a function to a the contained value of a QFuture once it finishes.
/// @returns a QFuture that finishes once the future given as first argument finished
///
template <typename T, typename U, typename Func>
QFuture<U> mapFuture(const QFuture<T> &future, Func mapFunction) {
template <typename T, typename Func>
QFuture<std::invoke_result_t<Func, T>> mapFuture(const QFuture<T> &future, Func mapFunction) {
using ReturnType = std::invoke_result_t<Func, T>;
auto watcher = std::make_shared<QFutureWatcher<T>>();
watcher->setFuture(future);
auto interface = std::make_shared<QFutureInterface<U>>();
auto interface = std::make_shared<QFutureInterface<ReturnType>>();
QObject::connect(watcher.get(), &QFutureWatcherBase::finished, watcher.get(), [interface, watcher, mapFunction] {
auto result = watcher->result();
auto mapped = mapFunction(std::move(result));
@@ -116,6 +122,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<QString> version();
Q_SIGNAL void errorOccurred(const QString &error);
protected:
@@ -123,8 +133,9 @@ protected:
private:
/// Invokes the given function on the thread of the YTMusic object, and handles exceptions that occur while invoking it.
template <typename ReturnType>
QFuture<ReturnType> invokeAndCatchOnThread(const std::function<ReturnType()> &fun) {
template <typename Func>
QFuture<std::invoke_result_t<Func>> invokeAndCatchOnThread(Func fun) {
using ReturnType = std::invoke_result_t<Func>;
auto interface = std::make_shared<QFutureInterface<ReturnType>>();
QMetaObject::invokeMethod(this, [=, this]() {
try {
@@ -154,5 +165,5 @@ public:
private:
YTMusicThread();
AsyncYTMusic m_ytm;
AsyncYTMusic *m_ytm;
};
+32
View File
@@ -0,0 +1,32 @@
/*
* SPDX-FileCopyrightText: 2020-2021 Devin Lin <[email protected]>
*
* SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
*/
#include "blur.h"
#include <KWindowEffects>
#include <QQuickWindow>
#include <QQuickItem>
Blur::Blur(QObject *parent): QObject(parent)
{
}
void Blur::setBlur(QQuickItem *item, bool blur)
{
auto setWindows = [item, blur]() {
auto reg = QRect(QPoint(0, 0), item->window()->size());
KWindowEffects::enableBackgroundContrast(item->window(), blur, 1, 1, 1, reg);
KWindowEffects::enableBlurBehind(item->window(), blur, reg);
};
disconnect(item->window(), &QQuickWindow::heightChanged, this, nullptr);
disconnect(item->window(), &QQuickWindow::widthChanged, this, nullptr);
connect(item->window(), &QQuickWindow::heightChanged, this, setWindows);
connect(item->window(), &QQuickWindow::widthChanged, this, setWindows);
setWindows();
}
+20
View File
@@ -0,0 +1,20 @@
/*
* SPDX-FileCopyrightText: 2020-2021 Devin Lin <[email protected]>
*
* SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
*/
#pragma once
#include <QObject>
class QQuickItem;
class Blur : public QObject
{
Q_OBJECT
public:
Blur(QObject *parent = 0);
Q_INVOKABLE void setBlur(QQuickItem *item, bool blur);
};
+23
View File
@@ -0,0 +1,23 @@
// SPDX-FileCopyrightText: 2023 Mathis Brüchert <[email protected]>
//
// SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
#include "clipboard.h"
#include <QClipboard>
#include <QGuiApplication>
Clipboard::Clipboard(QObject *parent)
: QObject{parent}
{
}
void Clipboard::setText(const QString &text)
{
QGuiApplication::clipboard()->setText(text);
Q_EMIT textChanged();
}
QString Clipboard::text() const
{
return QGuiApplication::clipboard()->text();
}
+24
View File
@@ -0,0 +1,24 @@
// SPDX-FileCopyrightText: 2023 Mathis Brüchert <[email protected]>
//
// SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
#ifndef CLIPBOARD_H
#define CLIPBOARD_H
#include <QObject>
class Clipboard : public QObject
{
Q_OBJECT
Q_PROPERTY(QString text READ text WRITE setText NOTIFY textChanged)
public:
explicit Clipboard(QObject *parent = nullptr);
void setText(const QString &text);
QString text() const;
Q_SIGNAL void textChanged();
};
#endif // CLIPBOARD_H
+21
View File
@@ -0,0 +1,21 @@
// SPDX-FileCopyrightText: 2022 Mathis Brüchert <[email protected]>
//
// SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
import org.kde.kirigamiaddons.labs.mobileform 0.1 as MobileForm
import QtQuick 2.15
import QtQuick.Layouts 1.3
import QtQuick.Controls 2.15 as Controls
import org.kde.kirigami 2.20 as Kirigami
import org.kde.ytmusic 1.0
MobileForm.AboutPage {
aboutData: About
Component.onCompleted: {
if (hasOwnProperty("showAboutKDE")) {
showAboutKDE = false
}
}
}
+63 -24
View File
@@ -12,40 +12,84 @@ import org.kde.ytmusic 1.0
Kirigami.ScrollablePage {
property alias browseId: albumModel.browseId
title: albumModel.title
actions {
main: Kirigami.Action {
icon.name: "media-playback-start"
text: i18n("Play")
onTriggered: {
applicationWindow().playPlaylist(albumModel.playlistId)
}
}
ShareMenu {
id: shareMenu
inputTitle: albumModel.title
url: albumModel.webUrl
}
ListView {
header: Kirigami.ItemViewHeader {
backgroundImage.source: albumModel.thumbnailUrl
id: songList
header: ListHeader {
visibleActions: [
Kirigami.Action {
icon.name: "media-playback-start"
text: i18n("Play")
onTriggered: {
applicationWindow().playPlaylist(albumModel.playlistId)
}
},
Kirigami.Action {
icon.name: "media-playlist-shuffle"
text: i18n("Shuffle")
onTriggered: {
applicationWindow().playShufflePlaylist(albumModel.playlistId)
}
}
]
overflowActions: [
Kirigami.Action {
text: i18n("Append to queue")
icon.name: "media-playlist-append"
onTriggered: UserPlaylistModel.appendAlbum(albumModel)
},
Kirigami.Action {
text: i18n("Open in Browser")
icon.name: "internet-services"
onTriggered: Qt.openUrlExternally(albumModel.webUrl)
},
Kirigami.Action {
text: i18n("Share")
icon.name: "emblem-shared-symbolic"
onTriggered:{
shareMenu.open()
}
}
]
title: albumModel.title
imageSourceURL: albumModel.thumbnailUrl
subtitle: i18n("Album • %1" , albumModel.artists)
width: songList.width
}
reuseItems: true
model: AlbumModel {
id: albumModel
}
SongMenu {
id: menu
}
delegate: Kirigami.SwipeListItem {
id: delegateItem
alwaysVisibleActions:true
required property string title
required property string videoId
required property var artists
required property string thumbnailUrl
required property string artistsDisplayString
required property int index
RowLayout {
Layout.fillHeight: true
Kirigami.Icon {
Layout.fillHeight: true
source: "emblem-music-symbolic"
Controls.Label {
text: (index + 1)
font.bold: true
leftPadding: 5
color: Kirigami.Theme.disabledTextColor
Layout.preferredWidth: 30
}
Controls.Label {
@@ -57,18 +101,13 @@ Kirigami.ScrollablePage {
actions: [
Kirigami.Action {
icon.name: "go-next"
text: i18n("Play Next")
onTriggered: UserPlaylistModel.playNext(delegateItem.videoId, delegateItem.title, delegateItem.artists)
},
Kirigami.Action {
icon.name: "media-playlist-append"
text: i18n("Add to Playlist")
onTriggered: UserPlaylistModel.append(delegateItem.videoId, delegateItem.title, delegateItem.artists)
icon.name: "overflow-menu"
text: i18n("More")
onTriggered: menu.openForSong(delegateItem.videoId, delegateItem.title, delegateItem.artists, delegateItem.artistsDisplayString)
}
]
onClicked: play(videoId)
onClicked: play(delegateItem.videoId)
}
Controls.BusyIndicator {
+58 -28
View File
@@ -11,13 +11,53 @@ import org.kde.ytmusic 1.0
Kirigami.ScrollablePage {
property alias channelId: artistModel.channelId
property string radioId
property string shuffleId
title: artistModel.title
ShareMenu {
id: shareMenu
inputTitle: artistModel.title
url: artistModel.webUrl
}
SongMenu {
id: menu
}
ListView {
header: Kirigami.ItemViewHeader {
backgroundImage.source: artistModel.thumbnailUrl
id: songList
header: ListHeader {
visibleActions: [
Kirigami.Action {
text: i18n("Radio")
icon.name: "radio"
onTriggered: playPlaylist(radioId)
},
Kirigami.Action {
text: i18n("Shuffle")
icon.name: "media-playlist-shuffle"
onTriggered: playPlaylist(shuffleId)
}
]
overflowActions: [
Kirigami.Action {
text: i18n("Open in Browser")
icon.name: "internet-services"
onTriggered: Qt.openUrlExternally(artistModel.webUrl)
},
Kirigami.Action {
text: i18n("Share")
icon.name: "emblem-shared-symbolic"
onTriggered: {
shareMenu.open()
}
}
]
title: artistModel.title
imageSourceURL: artistModel.thumbnailUrl
subtitle: i18n("Artist")
rounded: true
width: songList.width
}
reuseItems: true
@@ -38,15 +78,16 @@ Kirigami.ScrollablePage {
onOpenVideo: (videoId, title) => {
videoPlayMessage.text = i18n("Video playback is not supported yet. Do you want to play only the audio of \"%1\"?", title)
videoPlayMessage.visible = true
videoPlayMessage.okAction = function() {
videoPlayMessage.okAction = () => {
play(videoId)
videoPlayMessage.visible = false
}
videoPlayMessage.cancelAction = function() {
videoPlayMessage.cancelAction = () => {
videoPlayMessage.visible = false
}
}
}
section.property: "type"
section.delegate: Kirigami.ListSectionHeader {
text: {
@@ -62,30 +103,25 @@ Kirigami.ScrollablePage {
}
}
}
delegate: Kirigami.SwipeListItem {
id: delegateItem
alwaysVisibleActions:true
required property string title
required property int type
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"
}
}
RoundedImage {
source: delegateItem.thumbnailUrl
height: 35
width: height
radius:5
}
Controls.Label {
@@ -97,16 +133,10 @@ Kirigami.ScrollablePage {
actions: [
Kirigami.Action {
icon.name: "go-next"
text: i18n("Play Next")
icon.name: "overflow-menu"
text: i18n("More")
visible: type === ArtistModel.Song
onTriggered: UserPlaylistModel.playNext(delegateItem.videoId, delegateItem.title, delegateItem.artists)
},
Kirigami.Action {
icon.name: "media-playlist-append"
text: i18n("Add to Playlist")
visible: type === ArtistModel.Song
onTriggered: UserPlaylistModel.append(delegateItem.videoId, delegateItem.title, delegateItem.artists)
onTriggered: menu.openForSong(delegateItem.videoId, delegateItem.title, delegateItem.artists, artistModel.title)
}
]
+98
View File
@@ -0,0 +1,98 @@
// SPDX-FileCopyrightText: 2023 Mathis Brüchert <[email protected]>
//
// SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
import QtQuick 2.15
import QtQuick.Controls 2.15 as Controls
import org.kde.ytmusic 1.0
import org.kde.kirigami 2.19 as Kirigami
import QtQuick.Layouts 1.15
Controls.Drawer {
id: root
property alias drawerContentItem: control.contentItem
property alias headerContentItem: headerContent.contentItem
edge: Qt.BottomEdge
height:contents.implicitHeight+20
width: applicationWindow().width
interactive: false
background: Kirigami.ShadowedRectangle{
corners.topRightRadius: 10
corners.topLeftRadius: 10
shadow.size: 20
shadow.color: Qt.rgba(0, 0, 0, 0.5)
color: Kirigami.Theme.backgroundColor
}
onAboutToShow: root.interactive = true
onClosed: root.interactive = false
ColumnLayout {
spacing: 0
id: contents
anchors.fill: parent
Kirigami.ShadowedRectangle{
visible: headerContentItem
height:header.implicitHeight/* +20*/
Layout.topMargin: 0
corners.topRightRadius: 10
corners.topLeftRadius: 10
Layout.bottomMargin: 0
Layout.fillWidth: true
Kirigami.Theme.colorSet: Kirigami.Theme.Header
color: Kirigami.Theme.backgroundColor
ColumnLayout{
spacing:0
anchors.fill: parent
id:header
clip: true
Rectangle {
Layout.margins: 5
radius:50
Layout.alignment: Qt.AlignHCenter
color: Kirigami.Theme.textColor
opacity: 0.5
width: 40
height: 4
}
Controls.Control {
topPadding: 0
leftPadding: 14
rightPadding: 14
bottomPadding: 14
Layout.fillHeight: true
Layout.fillWidth: true
id: headerContent
}
}
Kirigami.Separator{
anchors.bottom: parent.bottom
width: parent.width
}
}
Rectangle {
Layout.margins: 5
radius:50
Layout.alignment: Qt.AlignHCenter
color: Kirigami.Theme.textColor
opacity: 0.5
width: 40
height: 4
visible: !headerContentItem
}
Controls.Control {
topPadding: 0
leftPadding: 0
rightPadding: 0
bottomPadding: 0
Layout.margins: 0
Layout.fillHeight: true
Layout.fillWidth: true
id: control
}
}
}
+787 -40
View File
@@ -5,103 +5,850 @@
import QtQuick 2.1
import QtQuick.Controls 2.12 as Controls
import QtQuick.Layouts 1.3
import org.kde.kirigami 2.14 as Kirigami
import org.kde.kirigami 2.19 as Kirigami
import org.kde.ytmusic 1.0
import "dialogs"
Kirigami.ScrollablePage {
objectName: "libraryPage"
Kirigami.Theme.colorSet: Kirigami.Theme.View
title: "AudioTube"
readonly property bool isWidescreen: width >= Kirigami.Units.gridUnit * 30
rightPadding: 0
leftPadding: 0
SongMenu {
id: menu
}
ColumnLayout {
Kirigami.Heading {
text: i18n("Favourites")
RowLayout {
Layout.fillWidth: true
spacing: Kirigami.Units.MediumSpacing
Kirigami.Heading {
text: i18n("Favourites")
Layout.alignment: Qt.AlignLeft
leftPadding: 15
}
Controls.ToolButton {
visible: isWidescreen
text: i18n("Play")
icon.name: "media-playback-start"
onClicked: UserPlaylistModel.playFavourites(Library.favourites, false)
}
Controls.ToolButton {
visible: isWidescreen
text: i18n("Shuffle")
icon.name: "shuffle"
onClicked: UserPlaylistModel.playFavourites(Library.favourites, true)
}
// Spacer
Item {
visible: !isWidescreen
Layout.fillWidth: true
}
Controls.ToolButton {
Layout.fillHeight: true
icon.name: "view-more-symbolic"
onPressed: Kirigami.Settings.isMobile? favDrawer.open() : favMenu.popup()
Controls.Menu {
id: favMenu
Controls.MenuItem {
visible: !isWidescreen
text: i18n("Play")
icon.name: "media-playback-start"
onTriggered: UserPlaylistModel.playFavourites(Library.favourites, false)
}
Controls.MenuItem {
visible: !isWidescreen
text: i18n("Shuffle")
icon.name: "shuffle"
onTriggered: UserPlaylistModel.playFavourites(Library.favourites, true)
}
Controls.MenuItem {
text: i18n("Append to queue")
icon.name: "media-playlist-append"
onTriggered: UserPlaylistModel.appendFavourites(Library.favourites,false)
}
}
BottomDrawer{
id: favDrawer
drawerContentItem: ColumnLayout {
Kirigami.BasicListItem{
label: i18n("Play")
icon: "media-playback-start"
onClicked: {
UserPlaylistModel.playFavourites(Library.favourites, false)
favDrawer.close()
}
}
Kirigami.BasicListItem{
label: i18n("Shuffle")
icon: "shuffle"
onClicked: {
UserPlaylistModel.playFavourites(Library.favourites, true)
favDrawer.close()
}
}
Kirigami.BasicListItem{
label: i18n("Append to queue")
icon: "media-playlist-append"
onClicked: {
UserPlaylistModel.appendFavourites(Library.favourites,false)
favDrawer.close()
}
}
Item{
Layout.fillHeight: true
}
}
}
}
Item {
visible: isWidescreen
Layout.fillWidth: true
}
Controls.ToolButton {
text: i18n("Show All")
Layout.alignment: Qt.AlignRight
icon.name: "arrow-right"
onClicked: {pageStack.push("qrc:/PlaybackHistory.qml", {
"title": i18n("Favourites"),
"objectName": "favourites"
})}
}
}
Kirigami.Icon {
id: favouritesPlaceholder
visible: mostPlayedRepeater.count == 0
Layout.margins: 20
isMask: true
opacity:0.4
color: Kirigami.Theme.hoverColor
Layout.alignment: Qt.AlignHCenter
Layout.fillWidth: true
implicitWidth: 190
implicitHeight: 190
source: "qrc:/resources/favourites_placeholder.svg"
Controls.Label {
visible: favouriteRepeater.count === 0
color: Kirigami.Theme.disabledTextColor
text: i18n("No Favourites Yet")
font {
bold: true
pointSize: 15
}
anchors.centerIn: favouritesPlaceholder
}
}
Controls.ScrollView {
leftPadding: 15
rightPadding: 25
Layout.fillWidth: true
RowLayout {
spacing: 20
Repeater {
id: favouriteRepeater
Layout.fillWidth: true
model: Library.favourites
delegate: ColumnLayout {
id: delegateItem
required property string title
required property string artist
required property var artists
required property string artistsDisplayString
required property string videoId
required property int index
Layout.fillWidth: false
Layout.maximumWidth: 200
Kirigami.Card {
id: card
Layout.preferredHeight: 200
onClicked: play(delegateItem.videoId)
Kirigami.ShadowedRectangle {
color: Kirigami.Theme.backgroundColor
id: favCover
MouseArea {
id: favArea
anchors.fill: parent
onClicked: play(delegateItem.videoId)
hoverEnabled: !Kirigami.Settings.hasTransientTouchInput
onEntered: {
if (!Kirigami.Settings.hasTransientTouchInput){
favSelected.visible = true
favTitle.color = Kirigami.Theme.hoverColor
favSubtitle.color = Kirigami.Theme.hoverColor
favTitle.font.bold = true
playAnimationPosition.running = true
playAnimationOpacity.running = true
}
}
onExited:{
favSelected.visible = false
favTitle.color = Kirigami.Theme.textColor
favSubtitle.color = Kirigami.Theme.disabledTextColor
favTitle.font.bold = 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)
ThumbnailSource {
id: thumbnailSource
videoId: delegateItem.videoId
}
header: Image {
sourceSize: "200x200"
RoundedImage {
source: thumbnailSource.cachedPath
fillMode: Image.PreserveAspectCrop
asynchronous: true
height: 200
width: height
radius: 10
}
Rectangle {
id: favSelected
Rectangle {
anchors.fill: parent
color: Kirigami.Theme.hoverColor
radius: 10
opacity: 0.2
}
Item{
height: parent.height
width: parent.width
NumberAnimation on opacity{
id: playAnimationOpacity
easing.type: Easing.OutCubic
running: false
from: 0; to: 1
}
NumberAnimation on y {
id: playAnimationPosition
easing.type: Easing.OutCubic
running: false
from: 20; to: 0
duration: 100
}
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"
}
}
RowLayout {
ColumnLayout {
Controls.Label {
id:favTitle
text: delegateItem.title
Layout.maximumWidth: 200
Layout.fillWidth: true
leftPadding: 5
elide: Text.ElideRight
}
Controls.Label {
id: favSubtitle
Layout.fillWidth: true
Layout.maximumWidth: 200
leftPadding: 5
color: Kirigami.Theme.disabledTextColor
text: delegateItem.artistsDisplayString
elide: Text.ElideRight
}
}
Controls.ToolButton {
Layout.fillHeight: true
icon.name: "overflow-menu"
onPressed: menu.openForSong(delegateItem.videoId,
delegateItem.title,
delegateItem.artists,
delegateItem.artistsDisplayString)
}
actions: [
Kirigami.Action {
icon.name: "delete"
onTriggered: Library.removeFavourite(delegateItem.videoId)
}
]
}
Controls.Label {
Layout.maximumWidth: 200
text: delegateItem.title
elide: Qt.ElideRight
Item {
height: 5
}
}
}
}
}
Kirigami.Heading {
text: i18n("Most played")
Item {
height: 20
}
RowLayout {
Layout.fillWidth: true
spacing: Kirigami.Units.MediumSpacing
Kirigami.Heading {
text: i18n("Most played")
Layout.alignment: Qt.AlignLeft
leftPadding: 15
}
Controls.ToolButton {
visible: isWidescreen
text: i18n("Play")
icon.name: "media-playback-start"
onClicked: UserPlaylistModel.playPlaybackHistory(Library.mostPlayed, false)
}
Controls.ToolButton {
visible: isWidescreen
text: i18n("Shuffle")
icon.name: "shuffle"
onClicked: UserPlaylistModel.playPlaybackHistory(Library.mostPlayed, true)
}
// Spacer
Item {
visible: !isWidescreen
Layout.fillWidth: true
}
Controls.ToolButton {
Layout.fillHeight: true
icon.name: "view-more-symbolic"
onPressed: Kirigami.Settings.isMobile? recDrawer.open() : recMenu.popup()
Controls.Menu {
id: recMenu
Controls.MenuItem {
visible: !isWidescreen
text: i18n("Play")
icon.name: "media-playback-start"
onTriggered: UserPlaylistModel.playPlaybackHistory(Library.mostPlayed, false)
}
Controls.MenuItem {
visible: !isWidescreen
text: i18n("Shuffle")
icon.name: "shuffle"
onTriggered: UserPlaylistModel.playPlaybackHistory(Library.mostPlayed, true)
}
Controls.MenuItem {
text: i18n("Append to queue")
icon.name: "media-playlist-append"
onTriggered: UserPlaylistModel.appendPlaybackHistory(Library.mostPlayed, false)
}
}
BottomDrawer{
id: recDrawer
drawerContentItem: ColumnLayout {
Kirigami.BasicListItem{
label: i18n("Play")
icon: "media-playback-start"
onClicked: {
UserPlaylistModel.playPlaybackHistory(Library.mostPlayed, false)
recDrawer.close()
}
}
Kirigami.BasicListItem{
label: i18n("Shuffle")
icon: "shuffle"
onClicked: {
UserPlaylistModel.playPlaybackHistory(Library.mostPlayed, true)
recDrawer.close()
}
}
Kirigami.BasicListItem{
label: i18n("Append to queue")
icon: "media-playlist-append"
onClicked: {
UserPlaylistModel.appendPlaybackHistory(Library.mostPlayed, false)
recDrawer.close()
}
}
Item{
Layout.fillHeight: true
}
}
}
}
Item {
visible: isWidescreen
Layout.fillWidth: true
}
Controls.ToolButton {
text: i18n("Show All")
Layout.alignment: Qt.AlignRight
icon.name: "arrow-right"
onClicked: {pageStack.push("qrc:/PlaybackHistory.qml", {
"title": i18n("Played Songs"),
"objectName": "history"
})}
}
}
Kirigami.Icon {
visible: mostPlayedRepeater.count == 0
Layout.margins: 20
isMask: true
opacity:0.4
color: Kirigami.Theme.hoverColor
id:playedPlaceholder
Layout.alignment: Qt.AlignHCenter
Layout.fillWidth: true
implicitWidth: 190
implicitHeight: 190
source: "qrc:/resources/played_placeholder.svg"
Controls.Label {
visible: mostPlayedRepeater.count == 0
color: Kirigami.Theme.disabledTextColor
anchors.centerIn:playedPlaceholder
font.bold: true
font.pointSize: 15
text: i18n("No Songs Played Yet")
}
}
Controls.ScrollView {
leftPadding: 15
rightPadding: 25
Layout.fillWidth: true
RowLayout {
spacing: 20
Repeater {
id: mostPlayedRepeater
Layout.fillWidth: true
model: Library.mostPlayed
delegate: ColumnLayout {
id: mpdelegateItem
required property string title
required property string artist
required property var artists
required property string artistsDisplayString
required property string videoId
Layout.fillWidth: false
Layout.maximumWidth: 200
Kirigami.Card {
id: mpcard
Layout.preferredHeight: 200
onClicked: play(mpdelegateItem.videoId)
Kirigami.ShadowedRectangle {
color: Kirigami.Theme.backgroundColor
id: recCover
MouseArea {
id: recArea
anchors.fill: parent
onClicked: play(mpdelegateItem.videoId)
hoverEnabled: !Kirigami.Settings.hasTransientTouchInput
onEntered: {
if (!Kirigami.Settings.hasTransientTouchInput)
recSelected.visible = true
recTitle.color = Kirigami.Theme.hoverColor
recSubtitle.color = Kirigami.Theme.hoverColor
recTitle.font.bold = true
playAnimationPositionRec.running = true
playAnimationOpacityRec.running = true
}
onExited:{
recSelected.visible = false
recTitle.color = Kirigami.Theme.textColor
recSubtitle.color = Kirigami.Theme.disabledTextColor
recTitle.font.bold = 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)
ThumbnailSource {
id: mpthumbnailSource
videoId: mpdelegateItem.videoId
}
header: Image {
sourceSize: "200x200"
RoundedImage {
source: mpthumbnailSource.cachedPath
fillMode: Image.PreserveAspectCrop
asynchronous: true
height: 200
width: height
radius: 10
}
Rectangle {
id: recSelected
Rectangle {
anchors.fill: parent
color: Kirigami.Theme.hoverColor
radius: 10
opacity: 0.2
}
Item{
height: parent.height
width: parent.width
NumberAnimation on opacity{
id: playAnimationOpacityRec
easing.type: Easing.OutCubic
running: false
from: 0; to: 1
}
NumberAnimation on y {
id: playAnimationPositionRec
easing.type: Easing.OutCubic
running: false
from: 20; to: 0
duration: 100
}
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
text: mpdelegateItem.title
elide: Qt.ElideRight
RowLayout {
ColumnLayout {
Controls.Label {
id: recTitle
text: mpdelegateItem.title
Layout.maximumWidth: 200
Layout.fillWidth: true
leftPadding: 5
elide: Text.ElideRight
}
Controls.Label {
id: recSubtitle
Layout.fillWidth: true
Layout.maximumWidth: 200
leftPadding: 5
color: Kirigami.Theme.disabledTextColor
text: mpdelegateItem.artistsDisplayString
elide: Text.ElideRight
}
}
Controls.ToolButton {
Layout.fillHeight: true
icon.name: "overflow-menu"
onPressed: menu.openForSong(mpdelegateItem.videoId,
mpdelegateItem.title,
mpdelegateItem.artists,
mpdelegateItem.artistsDisplayString)
}
}
Item {
height: 5
}
}
}
}
}
Item {
height: 20
}
RowLayout {
Layout.fillWidth: true
spacing: Kirigami.Units.MediumSpacing
Kirigami.Heading {
text: i18n("Playlists")
Layout.alignment: Qt.AlignLeft
leftPadding: 15
}
// Spacer
Item {
Layout.fillWidth: true
}
Controls.ToolButton {
text: i18n("Show All")
Layout.alignment: Qt.AlignRight
icon.name: "arrow-right"
onClicked: {pageStack.push("qrc:/LocalPlaylistsPage.qml", {
"objectName": "playlists"
})}
}
}
Kirigami.Icon {
id: playlistsPlaceholder
visible: mostPlayedRepeater.count == 0
Layout.margins: 20
isMask: true
opacity:0.4
color: Kirigami.Theme.hoverColor
Layout.alignment: Qt.AlignHCenter
Layout.fillWidth: true
implicitWidth: 190
implicitHeight: 190
source: "qrc:/resources/playlist_placeholder.svg"
Controls.Label {
visible: favouriteRepeater.count === 0
color: Kirigami.Theme.disabledTextColor
text: i18n("No Playlists Yet")
font {
bold: true
pointSize: 15
}
anchors.centerIn: playlistsPlaceholder
}
}
RenamePlaylistDialog{
id: renamePlaylistDialog
playlistsModel: localPlaylistsModel
}
BottomDrawer{
id: playlistDrawer
property var modelData
drawerContentItem: ColumnLayout {
Kirigami.BasicListItem{
label: i18n("Rename")
icon: "edit-entry"
onClicked: {
renamePlaylistDialog.modelData = playlistDrawer.modelData
renamePlaylistDialog.open()
playlistDrawer.close()
}
}
Kirigami.BasicListItem{
label: i18n("Delete")
icon: "delete"
onClicked: {
localPlaylistsModel.deletePlaylist(playlistDrawer.modelData.playlistId)
playlistDrawer.close()
}
}
}
}
Controls.Menu {
id: playlistMenu
property var modelData
Controls.MenuItem {
text: i18n("Rename")
icon.name: "edit-entry"
onTriggered:{
renamePlaylistDialog.modelData = playlistMenu.modelData
renamePlaylistDialog.open()
}
}
Controls.MenuItem {
text: i18n("Delete")
icon.name: "delete"
onTriggered:{
localPlaylistsModel.deletePlaylist(playlistMenu.modelData.playlistId)
}
}
}
Controls.ScrollView {
leftPadding: 15
rightPadding: 25
Layout.fillWidth: true
RowLayout {
spacing: 20
Repeater {
id: playlistsRepeater
Layout.fillWidth: true
model: LocalPlaylistsModel {
id: localPlaylistsModel
}
delegate: ColumnLayout {
id: playlistDelegate
required property var model
required property string playlistId
required property string title
required property string description
required property date createdOn
required property var thumbnailIds
onThumbnailIdsChanged: console.log(thumbnailIds)
Layout.fillWidth: false
Layout.maximumWidth: 200
Layout.preferredWidth: 200
Kirigami.ShadowedRectangle {
color: Kirigami.Theme.backgroundColor
id: playlistsCover
MouseArea {
id: playlistsArea
anchors.fill: parent
onClicked: pageStack.push("qrc:/LocalPlaylistPage.qml", {
"playlistId": playlistDelegate.playlistId,
"title": playlistDelegate.title
})
hoverEnabled: !Kirigami.Settings.hasTransientTouchInput
onEntered: {
if (!Kirigami.Settings.hasTransientTouchInput){
playlistSelected.visible = true
playlistTitle.color = Kirigami.Theme.hoverColor
playlistSubtitle.color = Kirigami.Theme.hoverColor
playlistTitle.font.bold = true
}
}
onExited:{
playlistSelected.visible = false
playlistTitle.color = Kirigami.Theme.textColor
playlistSubtitle.color = Kirigami.Theme.disabledTextColor
playlistTitle.font.bold = 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)
LocalPlaylistsModel{id:localPlaylistModel}
ThumbnailSource {
id: thumbnailSource1
videoId: thumbnailIds[0]
}
ThumbnailSource {
id: thumbnailSource2
videoId: thumbnailIds[1] ?? thumbnailIds[0]
}
ThumbnailSource {
id: thumbnailSource3
videoId: thumbnailIds[2] ?? thumbnailIds[0]
}
ThumbnailSource {
id: thumbnailSource4
videoId: thumbnailIds[3] ?? thumbnailIds[0]
}
PlaylistCover {
source1: thumbnailSource1.cachedPath
source2: thumbnailSource2.cachedPath
source3: thumbnailSource3.cachedPath
source4: thumbnailSource4.cachedPath
title: playlistDelegate.title
height: 200
width: height
radius: 10
}
Rectangle {
id: playlistSelected
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"
}
}
RowLayout {
ColumnLayout {
Controls.Label {
id: playlistTitle
text: playlistDelegate.title
Layout.maximumWidth: 200
Layout.fillWidth: true
leftPadding: 5
elide: Text.ElideRight
}
Controls.Label {
id: playlistSubtitle
Layout.fillWidth: true
Layout.maximumWidth: 200
leftPadding: 5
color: Kirigami.Theme.disabledTextColor
text: playlistDelegate.description
elide: Text.ElideRight
}
}
Controls.ToolButton {
Layout.fillHeight: true
icon.name: "overflow-menu"
onClicked:{
playlistMenu.modelData = playlistDelegate.model
playlistDrawer.modelData = playlistDelegate.model
Kirigami.Settings.isMobile? playlistDrawer.open() : playlistMenu.popup()
}
}
}
}
}
+174
View File
@@ -0,0 +1,174 @@
// SPDX-FileCopyrightText: 2022 Mathis Brüchert <[email protected]>
//
// SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
import QtQuick 2.15
import org.kde.kirigami 2.14 as Kirigami
import QtQuick.Controls 2.14 as Controls
import QtQuick.Layouts 1.3
import QtGraphicalEffects 1.0
import org.kde.ytmusic 1.0
Item {
id:root
required property string imageSourceURL
property bool rounded : false
required property string title
property string subtitle
property list<Kirigami.Action> visibleActions
property list<Kirigami.Action> overflowActions
height: root.width > 500 ? 200 : 400
Item {
anchors.fill: parent
Image {
scale: 1.8
anchors.fill: parent
asynchronous: true
source: imageSourceURL
fillMode: Image.PreserveAspectCrop
sourceSize.width: 512
sourceSize.height: 512
}
layer.enabled: true
layer.effect: HueSaturation {
cached: true
saturation: 1.9
layer.enabled: true
layer.effect: FastBlur {
cached: true
radius: 100
}
}
}
Rectangle {
anchors.fill: parent
gradient: Gradient{
GradientStop { position: -1.0; color: "transparent" }
GradientStop { position: 1.0; color: Kirigami.Theme.backgroundColor }
}
}
GridLayout {
width: parent.width
flow: root.width > 500?GridLayout.LeftToRight:GridLayout.TopToBottom
Kirigami.ShadowedRectangle {
Layout.alignment: Qt.AlignHCenter
color: Kirigami.Theme.backgroundColor
Layout.margins: 30
width: 150
height: width
radius: rounded ? 100 : 10
shadow.size: 15
shadow.xOffset: 5
shadow.yOffset: 5
shadow.color: Qt.rgba(0, 0, 0, 0.2)
RoundedImage {
source: imageSourceURL
height: parent.height
width: height
radius: rounded ? 100 : 10
}
}
ColumnLayout {
Layout.leftMargin: 30
Layout.rightMargin: 30
Layout.fillWidth: true
Controls.Label {
horizontalAlignment: (root.width <= 500)? Qt.AlignHCenter: Qt.AlignLeft
Layout.fillWidth: true
text: title
font.bold: true
font.pixelSize: 22
elide: Qt.ElideRight
}
Controls.Label {
horizontalAlignment: (root.width <= 500)? Qt.AlignHCenter: Qt.AlignLeft
Layout.fillWidth: true
text: subtitle
elide: Qt.ElideRight
}
RowLayout {
visible: root.visibleActions.length>0
Layout.topMargin: 30
Repeater {
model: root.visibleActions
delegate: Controls.RoundButton{
required property var modelData
Layout.fillWidth: root.width <= 500
leftPadding: 20
rightPadding: 20
icon.name: modelData.icon.name
text:modelData.text
onClicked: modelData.triggered()
}
}
Controls.Menu {
id: overflowMenu
Instantiator {
model: root.overflowActions
onObjectAdded: overflowMenu.insertItem(index, object)
onObjectRemoved: overflowMenu.removeItem(object)
delegate: Controls.MenuItem {
required property var modelData
icon.name: modelData.icon.name
text:modelData.text
onTriggered: modelData.triggered()
}
}
}
BottomDrawer{
id: overflowDrawer
drawerContentItem: ColumnLayout {
Repeater {
model: root.overflowActions
delegate: Kirigami.BasicListItem{
required property var modelData
label: modelData.text
icon: modelData.icon.name
onClicked: {
modelData.triggered()
overflowDrawer.close()
overflowDrawer.interactive = false
}
}
}
Item{
Layout.fillHeight: true
}
}
}
Controls.RoundButton {
onClicked: if (Kirigami.Settings.isMobile) {
overflowDrawer.open()
overflowDrawer.interactive = true
} else {
overflowMenu.popup()
}
visible: root.overflowActions.length > 0
icon.name: "overflow-menu"
}
}
}
}
}
+121
View File
@@ -0,0 +1,121 @@
// SPDX-FileCopyrightText: 2023 Mathis Brüchert <[email protected]>
//
// SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
import QtQuick 2.1
import QtQuick.Controls 2.12 as Controls
import QtQuick.Layouts 1.3
import org.kde.kirigami 2.14 as Kirigami
import org.kde.ytmusic 1.0
Kirigami.ScrollablePage {
id: root
property alias playlistId: playlistModel.playlistId
SongMenu {
id:menu
pageSpecificActions:[
Kirigami.Action {
text: i18n("Remove from Playlist")
icon.name: "list-remove"
onTriggered:{
playlistModel.removeSong(menu.videoId, root.playlistId)
}
}
]
}
ListView {
Kirigami.PlaceholderMessage {
text: i18n("This playlist is still empty")
anchors.centerIn: parent
visible: parent.count < 1
}
model: LocalPlaylistModel {
id: playlistModel
}
header:RowLayout{
spacing: Kirigami.Units.MediumSpacing
Controls.ToolButton {
text: i18n("Play")
icon.name: "media-playback-start"
onClicked: UserPlaylistModel.playLocalPlaylist(playlistModel, false)
}
Controls.ToolButton {
text: i18n("Shuffle")
icon.name: "shuffle"
onClicked: UserPlaylistModel.playLocalPlaylist(playlistModel, true)
}
Controls.ToolButton {
text: i18n("Append to queue")
icon.name: "media-playlist-append"
onClicked: UserPlaylistModel.appendLocalPlaylist(playlistModel, false)
}
Item {
Layout.fillWidth: true
}
}
delegate: Kirigami.SwipeListItem {
id: delegateItem
alwaysVisibleActions:true
required property string title
required property string videoId
required property var artists
required property string artistsDisplayString
required property int index
onClicked: {
play(videoId)
}
RowLayout {
ThumbnailSource {
id: thumbnailSource
videoId: delegateItem.videoId
}
RoundedImage {
source: thumbnailSource.cachedPath
height: 35
width: height
radius: 5
}
ColumnLayout {
Controls.Label {
text: delegateItem.title
Layout.fillWidth: true
elide: Qt.ElideRight
}
Controls.Label {
Layout.fillWidth: true
color: Kirigami.Theme.disabledTextColor
text: delegateItem.artistsDisplayString
elide: Qt.ElideRight
}
}
}
actions: [
Kirigami.Action {
icon.name: "overflow-menu"
text: i18n("More")
onTriggered: menu.openForSong(delegateItem.videoId, delegateItem.title, delegateItem.artists, delegateItem.artistsDisplayString)
}
]
}
}
}
+247
View File
@@ -0,0 +1,247 @@
// SPDX-FileCopyrightText: 2023 Mathis Brüchert <[email protected]>
//
// SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
import QtQuick 2.15
import QtQuick.Layouts 1.15
import QtQuick.Controls 2.15 as Controls
import org.kde.kirigami 2.15 as Kirigami
import org.kde.ytmusic 1.0
import "dialogs"
Kirigami.ScrollablePage {
id: root
title: i18n("Playlists")
Kirigami.Theme.colorSet: Kirigami.Theme.View
rightPadding: 0
leftPadding: 15
RenamePlaylistDialog{
id: renamePlaylistDialog
playlistsModel: localPlaylistsModel
}
BottomDrawer{
id: drawer
property var modelData
drawerContentItem: ColumnLayout {
Kirigami.BasicListItem{
label: i18n("Rename")
icon: "edit-entry"
onClicked: {
renamePlaylistDialog.modelData = drawer.modelData
renamePlaylistDialog.open()
drawer.close()
}
}
Kirigami.BasicListItem{
label: i18n("Delete")
icon: "delete"
onClicked: {
localPlaylistsModel.deletePlaylist(drawer.modelData.playlistId)
drawer.close()
}
}
}
}
Controls.Menu {
id: menu
property var modelData
Controls.MenuItem {
text: i18n("Rename")
icon.name: "edit-entry"
onTriggered:{
renamePlaylistDialog.modelData = menu.modelData
renamePlaylistDialog.open()
}
}
Controls.MenuItem {
text: i18n("Delete")
icon.name: "delete"
onTriggered:{
localPlaylistsModel.deletePlaylist(menu.modelData.playlistId)
}
}
}
GridView {
id: grid
header: RowLayout {
width: parent.width
spacing: Kirigami.Units.mediumSpacing
Kirigami.Heading {
Layout.topMargin: 20
text: i18n("Playlists")
Layout.alignment: Qt.AlignLeft
leftPadding: 15
}
// Spacer
Item {
visible: !isWidescreen
Layout.fillWidth: true
}
Controls.ToolButton {
Layout.topMargin: 20
text: i18n("New Playlist")
Layout.alignment: Qt.AlignRight
icon.name: "list-add"
AddPlaylistDialog{
id: addPlaylistDialog
model: localPlaylistsModel
}
onClicked: addPlaylistDialog.open()
}
}
Layout.fillWidth: true
Layout.fillHeight: true
model: LocalPlaylistsModel{ id: localPlaylistsModel }
cellWidth: grid.width/(Math.floor(grid.width/230))
cellHeight: 280
delegate: ColumnLayout {
id: playlistDelegate
required property var model
required property string playlistId
required property string title
required property string description
required property date createdOn
required property var thumbnailIds
onThumbnailIdsChanged: console.log(thumbnailIds)
width: grid.cellWidth
Kirigami.ShadowedRectangle {
Layout.alignment: Qt.AlignHCenter
color: Kirigami.Theme.backgroundColor
id: favCover
MouseArea {
id: favArea
anchors.fill: parent
onClicked: pageStack.push("qrc:/LocalPlaylistPage.qml", {
"playlistId": playlistDelegate.playlistId,
"title": playlistDelegate.title
})
hoverEnabled: !Kirigami.Settings.hasTransientTouchInput
onEntered: {
if (!Kirigami.Settings.hasTransientTouchInput){
favSelected.visible = true
playlistTitle.color = Kirigami.Theme.hoverColor
playlistSubtitle.color = Kirigami.Theme.hoverColor
playlistTitle.font.bold = true
}
}
onExited:{
favSelected.visible = false
playlistTitle.color = Kirigami.Theme.textColor
playlistSubtitle.color = Kirigami.Theme.disabledTextColor
playlistTitle.font.bold = false
}
}
Layout.margins: 15
Layout.bottomMargin: 5
Layout.topMargin: 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)
LocalPlaylistsModel{id:localPlaylistModel}
ThumbnailSource {
id: thumbnailSource1
videoId: thumbnailIds[0]
}
ThumbnailSource {
id: thumbnailSource2
videoId: thumbnailIds[1] ?? thumbnailIds[0]
}
ThumbnailSource {
id: thumbnailSource3
videoId: thumbnailIds[2] ?? thumbnailIds[0]
}
ThumbnailSource {
id: thumbnailSource4
videoId: thumbnailIds[3] ?? thumbnailIds[0]
}
PlaylistCover {
source1: thumbnailSource1.cachedPath
source2: thumbnailSource2.cachedPath
source3: thumbnailSource3.cachedPath
source4: thumbnailSource4.cachedPath
title: playlistDelegate.title
height: 200
width: height
radius: 10
}
Rectangle {
id: favSelected
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"
}
}
RowLayout {
Layout.alignment: Qt.AlignHCenter
ColumnLayout {
Controls.Label {
id: playlistTitle
text: playlistDelegate.title
Layout.maximumWidth: 200
Layout.fillWidth: true
leftPadding: 15
elide: Text.ElideRight
}
Controls.Label {
id: playlistSubtitle
Layout.fillWidth: true
Layout.maximumWidth: 200
leftPadding: 15
color: Kirigami.Theme.disabledTextColor
text: playlistDelegate.description
elide: Text.ElideRight
}
}
Controls.ToolButton {
Layout.fillHeight: true
icon.name: "overflow-menu"
onClicked:{
menu.modelData = playlistDelegate.model
drawer.modelData = playlistDelegate.model
Kirigami.Settings.isMobile? drawer.open() : menu.popup()
}
}
}
}
}
}
File diff suppressed because it is too large. Load diff
+155 -81
View File
@@ -14,6 +14,7 @@ import org.kde.ytmusic 1.0
Item {
id: root
z: 2000
required property int progressBarHeight
required property int minimizedPlayerContentHeight
@@ -21,14 +22,15 @@ Item {
required property var info // VideoInfoExtractor object
required property var audio // Audio object
readonly property bool isWidescreen: width >= Kirigami.Units.gridUnit * 40
readonly property bool isWidescreen: width >= Kirigami.Units.gridUnit * 50
signal requestOpen()
Shortcut {
sequence: "Ctrl+P"
onActivated: root.requestOpen()
}
Rectangle {
id: miniProgressBar
z: 1
visible: !root.isWidescreen
anchors.top: parent.top
anchors.left: parent.left
height: root.progressBarHeight
@@ -37,14 +39,14 @@ Item {
}
RowLayout {
width: !isWidescreen ? root.width - controlButtonBox.width: root.width
anchors.fill: parent
spacing: 0
Rectangle {
Layout.fillHeight: true
Layout.fillWidth: true
Layout.maximumWidth: Kirigami.Units.gridUnit * 20
Layout.preferredWidth: Kirigami.Units.gridUnit * 20
color: Qt.rgba(0, 0, 0, trackClick.containsMouse ? 0.1 : trackClick.pressed ? 0.3 : 0)
RowLayout {
@@ -62,19 +64,12 @@ Item {
Layout.maximumHeight: imageSize
Layout.minimumHeight: imageSize
Image {
RoundedImage {
id: mainIcon
anchors.fill: parent
visible: !loadingIndicator.visible
asynchronous: true
mipmap: true
source: info.thumbnail
sourceSize.width: 512
sourceSize.height: 512
fillMode: Image.PreserveAspectCrop
radius: 5
}
BusyIndicator {
@@ -84,10 +79,12 @@ Item {
Kirigami.Theme.colorSet: Kirigami.Theme.Complementary
Kirigami.Theme.inherit: false
}
}
// track information
ColumnLayout {
Kirigami.Theme.colorSet: Kirigami.Theme.Complementary
Layout.fillWidth: true
Layout.fillHeight: true
@@ -98,13 +95,14 @@ Item {
wrapMode: Text.Wrap
Layout.alignment: Qt.AlignVCenter | Qt.AlignLeft
Layout.fillWidth: true
Layout.maximumWidth: Kirigami.Units.gridUnit * 15
horizontalAlignment: Text.AlignLeft
elide: Text.ElideRight
maximumLineCount: 1
// Hardcoded because the footerbar blur always makes a dark-ish
// background, so we don't want to use a color scheme color that
// might also be dark
color: "white"
color: Kirigami.Theme.textColor
font.weight: Font.Bold
}
@@ -118,14 +116,16 @@ Item {
horizontalAlignment: Text.AlignLeft
elide: Text.ElideRight
maximumLineCount: 1
Layout.maximumWidth: Kirigami.Units.gridUnit * 15
// Hardcoded because the footerbar blur always makes a dark-ish
// background, so we don't want to use a color scheme color that
// might also be dark
color: "white"
color: Kirigami.Theme.disabledTextColor
}
}
Item{Layout.fillWidth: true}
}
MouseArea {
id: trackClick
anchors.fill: parent
@@ -133,85 +133,159 @@ Item {
onClicked: root.requestOpen()
}
}
}
RowLayout {
id: controlButtonBox
anchors.centerIn: isWidescreen ? parent : null
anchors.right: !isWidescreen ? parent.right : null
anchors.top: parent.top
anchors.bottom: parent.bottom
spacing: 2
Label {
color: "white"
visible: info.title && root.isWidescreen
text: PlayerUtils.formatTimestamp(audio.position)
Layout.rightMargin: 20
}
RowLayout {
visible: root.isWidescreen
Layout.preferredWidth: 0
Layout.fillHeight: true
Layout.fillWidth: true
Layout.leftMargin: Kirigami.Units.largeSpacing
Layout.rightMargin: Kirigami.Units.largeSpacing
spacing: Kirigami.Units.smallSpacing
Button {
id: skipBackwardButton
implicitHeight: 40
implicitWidth: 40
Layout.fillHeight: !isWidescreen
Kirigami.Theme.colorSet: Kirigami.Theme.Complementary
Kirigami.Theme.inherit: false
enabled: UserPlaylistModel.canSkipBack
onClicked: UserPlaylistModel.previous()
Label {
Layout.alignment: Qt.AlignVCenter
color: "white"
visible: info.title
text: PlayerUtils.formatTimestamp(audio.position)
}
Slider {
Layout.alignment: Qt.AlignVCenter
Layout.fillWidth: true
from: 0
to: audio.duration
value: audio.position
enabled: audio.seekable
onMoved: {
console.log("Value:", value);
audio.seek(Math.floor(value));
contentItem: Item {
Kirigami.Icon {
anchors.centerIn: parent
source:"media-skip-backward"
color: "white"
width: Kirigami.Units.gridUnit
height: Kirigami.Units.gridUnit
}
}
background: Kirigami.ShadowedRectangle {
corners.topLeftRadius: isWidescreen ? 7 : 0
corners.bottomLeftRadius: isWidescreen ? 7 : 0
Behavior on value {
NumberAnimation {
duration: 1000
color: if (isWidescreen) {
if (parent.down) {
Kirigami.ColorUtils.linearInterpolation(Kirigami.Theme.hoverColor, "transparent", 0.3)
} else if(parent.hovered) {
Kirigami.ColorUtils.linearInterpolation(Kirigami.Theme.hoverColor, "transparent", 0.7)
} else {
Qt.rgba(1, 1, 1, 0.2)
}
} else {
if (parent.down) {
Kirigami.ColorUtils.linearInterpolation(Kirigami.Theme.hoverColor, "transparent", 0.3)
} else if (parent.hovered){
Kirigami.ColorUtils.linearInterpolation(Kirigami.Theme.hoverColor, "transparent", 0.7)
} else {
"transparent"
}
}
}
Label {
Layout.alignment: Qt.AlignVCenter
color: "white"
visible: info.title
text: PlayerUtils.formatTimestamp(audio.duration)
}
}
ToolButton {
Button {
id: playPauseButton
Layout.preferredHeight: Kirigami.Units.gridUnit * 3
Layout.maximumWidth: height
Layout.preferredWidth: height
implicitHeight: 40
implicitWidth: 60
Layout.fillHeight: !isWidescreen
enabled: info.audioUrl != ""
onClicked: audio.playbackState === Audio.PlayingState ? audio.pause() : audio.play()
contentItem: Item {
Kirigami.Icon {
anchors.centerIn:parent
source: audio.playbackState === Audio.PlayingState ? "media-playback-pause" : "media-playback-start"
color: "white"
width: Kirigami.Units.gridUnit
height: Kirigami.Units.gridUnit
}
}
icon.name: audio.playbackState === Audio.PlayingState ? "media-playback-pause" : "media-playback-start"
icon.width: Kirigami.Units.gridUnit
icon.height: Kirigami.Units.gridUnit
icon.color: "white"
background: Kirigami.ShadowedRectangle {
color: if (isWidescreen) {
if (parent.down) {
Kirigami.ColorUtils.linearInterpolation(Kirigami.Theme.hoverColor, "transparent", 0.3)
} else if (parent.hovered) {
Kirigami.ColorUtils.linearInterpolation(Kirigami.Theme.hoverColor, "transparent", 0.7)
} else {
Qt.rgba(1, 1, 1, 0.2)
}
} else {
if (parent.down) {
Kirigami.ColorUtils.linearInterpolation(Kirigami.Theme.hoverColor, "transparent", 0.3)
} else if (parent.hovered) {
Kirigami.ColorUtils.linearInterpolation(Kirigami.Theme.hoverColor, "transparent", 0.7)
} else {
"transparent"
}
}
}
}
Button {
id: skipForwardButton
implicitHeight: 40
implicitWidth: 40
Layout.fillHeight: !isWidescreen
Layout.rightMargin: isWidescreen ? 0 : 10
Layout.alignment: !Qt.AlignVCenter
Kirigami.Theme.colorSet: Kirigami.Theme.Complementary
Kirigami.Theme.inherit: false
}
ToolButton {
id: skipForwardButton
Layout.rightMargin: Math.floor(Kirigami.Units.smallSpacing / 2)
Layout.preferredHeight: Kirigami.Units.gridUnit * 3
Layout.maximumWidth: height
Layout.preferredWidth: height
enabled: UserPlaylistModel.canSkip
onClicked: UserPlaylistModel.next()
icon.name: "media-skip-forward"
icon.width: Kirigami.Units.gridUnit
icon.height: Kirigami.Units.gridUnit
icon.color: "white"
Kirigami.Theme.colorSet: Kirigami.Theme.Complementary
Kirigami.Theme.inherit: false
contentItem: Item {
Kirigami.Icon {
anchors.centerIn: parent
source:"media-skip-forward"
color: "white"
width: Kirigami.Units.gridUnit
height: Kirigami.Units.gridUnit
}
}
background: Kirigami.ShadowedRectangle {
corners.topRightRadius: isWidescreen ? 7 : 0
corners.bottomRightRadius: isWidescreen ? 7 : 0
color: if (isWidescreen) {
if (parent.down) {
Kirigami.ColorUtils.linearInterpolation(Kirigami.Theme.hoverColor, "transparent", 0.3)
} else if (parent.hovered) {
Kirigami.ColorUtils.linearInterpolation(Kirigami.Theme.hoverColor, "transparent", 0.7)
} else {
Qt.rgba(1, 1, 1, 0.2)
}
} else {
if (parent.down) {
Kirigami.ColorUtils.linearInterpolation(Kirigami.Theme.hoverColor, "transparent", 0.3)
} else if(parent.hovered) {
Kirigami.ColorUtils.linearInterpolation(Kirigami.Theme.hoverColor, "transparent", 0.7)
} else {
"transparent"
}
}
}
}
Label {
color: "white"
visible: info.title && root.isWidescreen
text: PlayerUtils.formatTimestamp(audio.duration)
Layout.leftMargin: 20
}
}
}
+87
View File
@@ -0,0 +1,87 @@
// SPDX-FileCopyrightText: 2022 Mathis Brüchert <[email protected]>
//
// SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
import QtQuick 2.12
import QtQuick.Controls 2.4
import QtQuick.Layouts 1.2
import org.kde.kirigami 2.20 as Kirigami
import org.kde.ytmusic 1.0
Kirigami.NavigationTabBar {
id: root
anchors.bottom: parent.bottom
width:parent.width
backgroundColor: "transparent"
foregroundColor: "white"
highlightForegroundColor: "white"
shadow: false
actions: [
Kirigami.Action {
iconName: "file-library-symbolic"
text: i18n("Library")
checked: pageStack.currentItem && pageStack.currentItem.objectName == "libraryPage"
onTriggered: {
pageStack.clear()
pageStack.replace("qrc:/LibraryPage.qml")
applicationWindow().showSearch = false
}
},
Kirigami.Action {
iconName: "search"
text: i18n("Search")
checked: pageStack.currentItem && pageStack.currentItem.objectName == "searchPage"
onTriggered: {
pageStack.clear()
pageStack.replace("qrc:/SearchHistoryPage.qml",)
applicationWindow().showSearch = true
applicationWindow().searchField.forceActiveFocus();
}
},
Kirigami.Action {
iconName: "non-starred-symbolic"
text: i18n("Favourites")
checked: pageStack.currentItem && pageStack.currentItem.objectName == "favourites"
onTriggered: {
pageStack.clear()
pageStack.replace("qrc:/PlaybackHistory.qml", {
"dataModel": Library.favourites,
"title": i18n("Favourites"),
"objectName": "favourites"})
applicationWindow().showSearch = false
}
},
Kirigami.Action {
iconName: "edit-undo-history"
text: i18n("Played Songs")
checked: pageStack.currentItem && pageStack.currentItem.objectName == "history"
onTriggered: {
pageStack.clear()
pageStack.replace("qrc:/PlaybackHistory.qml", {
"dataModel": Library.playbackHistory,
"title": i18n("Played Songs"),
"objectName": "history"})
applicationWindow().showSearch = false
}
},
Kirigami.Action {
iconName: "amarok_playlist"
text: i18n("Playlists")
checked: pageStack.currentItem && pageStack.currentItem.objectName == "playlists"
onTriggered: {
pageStack.clear()
pageStack.replace("qrc:/LocalPlaylistsPage.qml", {
"objectName": "playlists"
})
applicationWindow().showSearch = false
}
}
]
}
+133
View File
@@ -0,0 +1,133 @@
// SPDX-FileCopyrightText: 2022 Jonah Brüchert <[email protected]>
//
// SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
import QtQuick 2.15
import QtQuick.Layouts 1.15
import QtQuick.Controls 2.15 as Controls
import org.kde.kirigami 2.15 as Kirigami
import org.kde.ytmusic 1.0
Kirigami.ScrollablePage {
id: playbackHistoryPage
title: i18n("Unknown list of songs")
property QtObject dataModel: (objectName == "history") ? Library.playbackHistory : (objectName == "favourites" ? Library.favourites : null)
titleDelegate: RowLayout{
spacing: Kirigami.Units.MediumSpacing
Controls.ToolButton {
text: i18n("Play")
icon.name: "media-playback-start"
onClicked: {
if(playbackHistoryPage.objectName == "favourites") {
UserPlaylistModel.playFavourites(Library.favourites, false)
}
else if(playbackHistoryPage.objectName == "history") {
onClicked: UserPlaylistModel.playPlaybackHistory(playbackHistoryPage.dataModel, false)
}
}
}
Controls.ToolButton {
text: i18n("Shuffle")
icon.name: "shuffle"
onClicked: {
if(playbackHistoryPage.objectName == "favourites") {
UserPlaylistModel.playFavourites(Library.favourites, true)
}
else if(playbackHistoryPage.objectName == "history") {
onClicked: UserPlaylistModel.playPlaybackHistory(playbackHistoryPage.dataModel, true)
}
}
}
Controls.ToolButton {
text: i18n("Append to queue")
icon.name: "media-playlist-append"
onClicked: {
if(playbackHistoryPage.objectName == "favourites") {
UserPlaylistModel.appendFavourites(Library.favourites,false)
}
else if(playbackHistoryPage.objectName == "history") {
UserPlaylistModel.appendPlaybackHistory(playbackHistoryPage.dataModel, false)
}
}
}
Item {
Layout.fillWidth: true
}
}
SongMenu {
id:menu
}
ListView {
id: listView
reuseItems: true
Kirigami.PlaceholderMessage {
visible: listView.count < 1
text: i18n("No songs here yet")
anchors.centerIn: parent
}
model: playbackHistoryPage.dataModel
delegate: Kirigami.SwipeListItem {
id: delegateItem
alwaysVisibleActions:true
required property string title
required property string videoId
required property var artists
required property string artistsDisplayString
required property int index
onClicked: {
play(videoId)
}
RowLayout {
ThumbnailSource {
id: thumbnailSource
videoId: delegateItem.videoId
}
RoundedImage {
source: thumbnailSource.cachedPath
height: 35
width: height
radius: 5
}
ColumnLayout {
Controls.Label {
text: delegateItem.title
Layout.fillWidth: true
elide: Qt.ElideRight
}
Controls.Label {
Layout.fillWidth: true
color: Kirigami.Theme.disabledTextColor
text: delegateItem.artistsDisplayString
elide: Qt.ElideRight
}
}
}
actions: [
Kirigami.Action {
icon.name: "overflow-menu"
text: i18n("More")
onTriggered: menu.openForSong(delegateItem.videoId, delegateItem.title, delegateItem.artists, delegateItem.artistsDisplayString)
}
]
}
}
}
+16 -232
View File
@@ -17,9 +17,10 @@ import org.kde.ytmusic 1.0
Flickable {
id: footerItem
property int footerSpacing:0
property bool maximized: false
readonly property int progressBarHeight: Kirigami.Units.gridUnit / 6
readonly property int progressBarHeight: Kirigami.Units.gridUnit / 4
readonly property int minimizedPlayerContentHeight: Math.round(Kirigami.Units.gridUnit * 3.5)
readonly property int minimizedPlayerHeight: minimizedPlayerContentHeight + progressBarHeight
@@ -96,7 +97,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 {
@@ -115,7 +123,7 @@ Flickable {
ColumnLayout {
id: footerLayout
y:-footerSpacing
anchors.left: parent.left
anchors.right: parent.right
spacing: 0
@@ -128,7 +136,7 @@ Flickable {
Controls.Control {
Layout.fillWidth: true
padding: 0
implicitHeight: footerItem.minimizedPlayerHeight
implicitHeight: footerItem.minimizedPlayerHeight+footerSpacing
// minimized player background
background: Item {
@@ -150,8 +158,8 @@ Flickable {
layer.effect: HueSaturation {
cached: true
lightness: -0.5
saturation: 1.9
lightness: -0.7
saturation: 3
layer.enabled: true
layer.effect: FastBlur {
@@ -178,7 +186,7 @@ Flickable {
onRequestOpen: toOpen.start();
}
}
MaximizedPlayerPage {
id: maximizedPlayerPage
Layout.fillWidth: true
@@ -191,232 +199,8 @@ Flickable {
onRequestClose: toClose.start();
}
//GridLayout {
//id: playerLayout
//readonly property bool mobile: width > height
//Layout.fillHeight: footerItem.maximized
//Layout.fillWidth: true
//flow: width > height ? GridLayout.LeftToRight : GridLayout.TopToBottom
//visible: footerItem.maximized
//ColumnLayout {
//Layout.preferredWidth: footerLayout.width * (playerLayout.mobile ? 1 : 0.5)
//Layout.preferredHeight: footerLayout.height * (playerLayout.mobile ? 0.5 : 1)
//Item {
//Layout.fillWidth: true
//Layout.fillHeight: true
//Image {
//anchors.fill: parent
//source: info.thumbnail
//fillMode: Image.PreserveAspectFit
//}
//}
//Controls.RoundButton {
//readonly property QtObject favouriteWatcher: Library.favouriteWatcher(info.videoId)
//Layout.alignment: Qt.AlignHCenter
//icon.name: favouriteWatcher ? (favouriteWatcher.isFavourite ? "starred-symbolic" : "non-starred-symbolic") : ""
//onClicked: if (favouriteWatcher)
//favouriteWatcher.isFavourite
//? Library.removeFavourite(info.videoId)
//: Library.addFavourite(info.videoId, info.title)
//}
//}
//Item {
//Layout.fillWidth: true
//Layout.fillHeight: true
//Layout.preferredWidth: footerLayout.width * (playerLayout.mobile ? 1 : 0.5)
//Layout.preferredHeight: footerLayout.height * (playerLayout.mobile ? 0.5 : 1)
//Controls.ScrollView {
//anchors.fill: parent
//ListView {
//anchors.fill: parent
//id: playlistView
//clip: true
//Controls.BusyIndicator {
//anchors.centerIn: parent
//visible: UserPlaylistModel.loading || UserPlaylistModel.loading
//}
//onCountChanged: {
//if (count < 1) {
//footerItem.maximized = false
//}
//}
//model: UserPlaylistModel
//delegate: Kirigami.SwipeListItem {
//id: delegateItem
//required property string title
//required property string videoId
//required property string artists
//required property bool isCurrent
//highlighted: isCurrent
//onClicked: UserPlaylistModel.skipTo(videoId)
//ColumnLayout {
//Layout.fillWidth: true
//Kirigami.Heading {
//elide: Text.ElideRight
//Layout.fillWidth: true
//level: 2
//text: title
//}
//Controls.Label {
//elide: Text.ElideRight
//Layout.fillWidth: true
//text: artists
//}
//}
//actions: [
//Kirigami.Action {
//text: i18n("Remove Track")
//icon.name: "list-remove"
//onTriggered: UserPlaylistModel.remove(delegateItem.videoId)
//}
//]
//}
//header: Controls.ToolBar {
//anchors.left: parent.left
//anchors.right: parent.right
//RowLayout {
//anchors.fill: parent
//Item {
//Layout.fillWidth: true
//}
//Controls.ToolButton {
//text: i18n("Clear")
//icon.name: "edit-clear-all"
//onClicked: UserPlaylistModel.clear()
//}
//Controls.ToolButton {
//text: i18n("Shuffle")
//icon.name: "media-playlist-shuffle"
//onClicked: UserPlaylistModel.shufflePlaylist()
//}
//}
//}
//}
//}
//}
//}
//Kirigami.Separator {
//Layout.fillWidth: true
//}
//RowLayout {
//id: player
//Layout.fillWidth: true
//Layout.fillHeight: !footer.maximized
//Controls.ToolButton {
//display: Controls.AbstractButton.IconOnly
//Layout.preferredWidth: parent.height
//Layout.fillHeight: true
//enabled: info.audioUrl != ""
//text: audio.playbackState === Audio.PlayingState ? i18n("Pause") : i18n("Play")
//visible: !info.loading
//icon.name: audio.playbackState === Audio.PlayingState ? "media-playback-pause" : "media-playback-start"
//onClicked: audio.playbackState === Audio.PlayingState ? audio.pause() : audio.play()
//}
//Controls.ToolButton {
//display: Controls.AbstractButton.IconOnly
//Layout.preferredWidth: parent.height
//Layout.fillHeight: true
//enabled: UserPlaylistModel.canSkip
//visible: !info.loading
//icon.name: "media-skip-forward"
//onClicked: UserPlaylistModel.next()
//}
//Controls.BusyIndicator {
//Layout.fillHeight: true
//visible: info.loading
//}
//ColumnLayout {
//Layout.fillHeight: true
//Layout.topMargin: Kirigami.Units.smallSpacing
//Layout.bottomMargin: Kirigami.Units.smallSpacing
//Kirigami.Heading {
//level: 3
//Layout.fillWidth: true
//elide: Qt.ElideRight
//text: info.title ? info.title : i18n("No media playing")
//}
//RowLayout{
//Controls.Label{
//visible: info.title
//text: PlayerUtils.formatTimestamp(audio.position)
//}
//Controls.Slider {
//Layout.fillWidth: true
//from: 0
//to: audio.duration
//value: audio.position
//enabled: audio.seekable
//onMoved: {
//console.log("Value:", value);
//audio.seek(Math.floor(value));
//}
//Behavior on value {
//NumberAnimation {
//duration: 1000
//}
//}
//}
//Controls.Label{
//visible: info.title
//text: PlayerUtils.formatTimestamp(audio.duration)
//}
//}
//}
//Controls.ToolButton {
//display: Controls.AbstractButton.IconOnly
//Layout.preferredWidth: parent.height
//text: i18n("Expand")
//enabled: playlistView.count > 0
//Layout.fillHeight: true
//icon.name: footerItem.maximized ? "arrow-down" : "arrow-up"
//onClicked: footerItem.maximized = !footerItem.maximized
//}
//}
}
//Behavior on height {
//NumberAnimation {
//}
//}
}
+126
View File
@@ -0,0 +1,126 @@
// SPDX-FileCopyrightText: 2022 Mathis Brüchert <[email protected]>
//
// SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
import QtQuick 2.15
import QtQuick.Window 2.15
import QtGraphicalEffects 1.0
import QtQuick.Controls 2.15 as Controls
Item {
property alias radius: mask.radius
property alias source1: image1.source
property alias source2: image2.source
property alias source3: image3.source
property alias source4: image4.source
property string title
id: icon
layer.enabled: true
layer.effect: OpacityMask {
maskSource: mask
}
Rectangle{
anchors.fill: parent
color: Qt.rgba(Math.random(),Math.random(),Math.random(),0.4);
}
Image {
id:image1
anchors.top: parent.top
anchors.left: parent.left
width: parent.width/2
height: parent.height/2
fillMode: Image.PreserveAspectCrop
asynchronous: true
sourceSize.width: parent.implicitWidth * Screen.devicePixelRatio
Controls.Label{
z:-1
text: icon.title.charAt(0)
anchors.centerIn: parent
color: "White"
font.pixelSize: 40
font.capitalization: Font.AllUppercase
font.family: "Noto Serif"
font.bold: true
enabled: false
}
}
Image {
id:image2
anchors.top: parent.top
anchors.right: parent.right
width: parent.width/2
height: parent.height/2
fillMode: Image.PreserveAspectCrop
asynchronous: true
sourceSize.width: parent.implicitWidth * Screen.devicePixelRatio
Controls.Label{
z:-1
text: icon.title.charAt(1)
anchors.centerIn: parent
color: "White"
font.pixelSize: 40
font.capitalization: Font.AllUppercase
font.family: "Noto Serif"
font.bold: true
enabled: false
}
}
Image {
id:image3
anchors.bottom: parent.bottom
anchors.left: parent.left
width: parent.width/2
height: parent.height/2
fillMode: Image.PreserveAspectCrop
asynchronous: true
sourceSize.width: parent.implicitWidth * Screen.devicePixelRatio
Controls.Label{
z:-1
text: icon.title.charAt(2)
anchors.centerIn: parent
color: "White"
font.pixelSize: 40
font.capitalization: Font.AllUppercase
font.family: "Noto Serif"
font.bold: true
enabled: false
}
}
Image {
id:image4
anchors.bottom: parent.bottom
anchors.right: parent.right
width: parent.width/2
height: parent.height/2
fillMode: Image.PreserveAspectCrop
asynchronous: true
sourceSize.width: parent.implicitWidth * Screen.devicePixelRatio
Controls.Label{
z:-1
text: icon.title.charAt(3)
anchors.centerIn: parent
color: "White"
font.pixelSize: 40
font.capitalization: Font.AllUppercase
font.family: "Noto Serif"
font.bold: true
enabled: false
}
}
Rectangle {
id: mask
anchors.fill: parent
visible: false
}
}
+77 -33
View File
@@ -13,27 +13,59 @@ Kirigami.ScrollablePage {
property alias playlistId: playlistModel.playlistId
title: playlistModel.title
actions {
main: Kirigami.Action {
icon.name: "media-playback-start"
text: i18n("Play")
onTriggered: {
applicationWindow().playPlaylist(playlistModel.playlistId)
}
}
right: Kirigami.Action {
icon.name: "media-playlist-shuffle"
text: i18n("Shuffle")
onTriggered: {
applicationWindow().playShufflePlaylist(playlistModel.playlistId)
}
}
SongMenu {
id: menu
}
ShareMenu {
id: shareMenu
inputTitle: playlistModel.title
url: playlistModel.webUrl
}
ListView {
header: Kirigami.ItemViewHeader {
backgroundImage.source: playlistModel.thumbnailUrl
id: songList
header: ListHeader {
visibleActions: [
Kirigami.Action {
icon.name: "media-playback-start"
text: i18n("Play")
onTriggered: {
applicationWindow().playPlaylist(playlistModel.playlistId)
}
},
Kirigami.Action {
icon.name: "media-playlist-shuffle"
text: i18n("Shuffle")
onTriggered: {
applicationWindow().playShufflePlaylist(playlistModel.playlistId)
}
}
]
overflowActions: [
Kirigami.Action {
text: i18n("Append to queue")
icon.name: "media-playlist-append"
onTriggered: UserPlaylistModel.appendPlaylist(playlistModel)
},
Kirigami.Action {
text: i18n("Open in Browser")
icon.name: "internet-services"
onTriggered: Qt.openUrlExternally(playlistModel.webUrl)
},
Kirigami.Action {
text: i18n("Share")
icon.name: "emblem-shared-symbolic"
onTriggered:{
shareMenu.open()
}
}
]
title: playlistModel.title
imageSourceURL: playlistModel.thumbnailUrl
width: songList.width
subtitle: i18n("Playlist")
}
model: PlaylistModel {
id: playlistModel
@@ -43,34 +75,46 @@ Kirigami.ScrollablePage {
delegate: Kirigami.SwipeListItem {
id: delegateItem
alwaysVisibleActions:true
required property string title
required property string videoId
required property var artists
required property string thumbnailUrl
required property string artistsDisplayString
required property int index
RowLayout {
Layout.fillHeight: true
Kirigami.Icon {
Layout.fillHeight: true
source: "emblem-music-symbolic"
RoundedImage {
source: delegateItem.thumbnailUrl
height: 35
width: height
radius: 5
}
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
elide: Qt.ElideRight
}
}
}
actions: [
Kirigami.Action {
icon.name: "go-next"
text: i18n("Play Next")
onTriggered: UserPlaylistModel.playNext(delegateItem.videoId, delegateItem.title, delegateItem.artists)
},
Kirigami.Action {
icon.name: "media-playlist-append"
text: i18n("Add to Playlist")
onTriggered: UserPlaylistModel.append(delegateItem.videoId, delegateItem.title, delegateItem.artists)
icon.name: "overflow-menu"
text: i18n("More")
onTriggered: menu.openForSong(delegateItem.videoId, delegateItem.title, delegateItem.artists, delegateItem.artistsDisplayString)
}
]
+33
View File
@@ -0,0 +1,33 @@
// SPDX-FileCopyrightText: 2022 Mathis Brüchert <[email protected]>
//
// SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
import QtQuick 2.15
import QtQuick.Window 2.15
import QtGraphicalEffects 1.0
Item {
property alias radius: mask.radius
property alias source: image.source
id: icon
Image {
id:image
source: source
anchors.fill: parent
fillMode: Image.PreserveAspectCrop
asynchronous: true
sourceSize.width: parent.implicitWidth * Screen.devicePixelRatio
layer.enabled: true
layer.effect: OpacityMask {
maskSource: mask
}
}
Rectangle {
id: mask
anchors.fill: parent
visible: false
}
}
+102
View File
@@ -0,0 +1,102 @@
// SPDX-FileCopyrightText: Mathis Brüchert <[email protected]>
//
// SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
import org.kde.kirigami 2.12 as Kirigami
import QtQuick.Controls 2.15 as Controls
import QtQuick 2.15
import QtQuick.Layouts 1.15
import org.kde.ytmusic 1.0
Kirigami.ScrollablePage {
objectName: "searchPage"
topPadding: 0
bottomPadding: 0
leftPadding: 0
rightPadding: 0
Kirigami.Theme.colorSet: Kirigami.Theme.View
ColumnLayout {
Controls.ScrollView {
Layout.fillWidth: true
id: recents
visible: searchLoader.text && recentsRepeater.count > 0
leftPadding: 10
topPadding: 10
Controls.ScrollBar.horizontal.policy: Controls.ScrollBar.AlwaysOff
RowLayout {
id: recentsLayout
spacing: 10
Layout.fillWidth: true
Repeater {
id: recentsRepeater
Layout.fillWidth: true
model: SortFilterModel {
filterRole: PlaybackHistoryModel.Title
filterRegularExpression: searchLoader.filterExpression
sourceModel: Library.playbackHistory
}
delegate: Kirigami.DelegateRecycler {
Layout.alignment: Qt.AlignTop
sourceComponent: searchAlbum
}
}
}
}
Kirigami.Separator {
Layout.fillWidth: true
visible: recents.visible
}
id: completionList
Repeater {
Layout.fillHeight: true
Layout.fillWidth: true
model: SortFilterModel {
sourceModel: Library.searches
filterRegularExpression: searchLoader.filterExpression
}
delegate: Kirigami.AbstractListItem {
implicitHeight: Kirigami.Units.gridUnit * 2
Layout.fillWidth: true
RowLayout {
Kirigami.Icon {
source: "search"
implicitHeight: Kirigami.Units.gridUnit
implicitWidth: Kirigami.Units.gridUnit
color: Kirigami.Theme.disabledTextColor
}
Controls.Label {
text: model.display
Layout.fillWidth: true
elide: Text.ElideRight
}
Controls.ToolButton {
icon.name: "list-remove"
text: i18n("remove from search history")
display: Controls.AbstractButton.IconOnly
onClicked: {
Library.removeSearch(model.display)
}
}
}
onClicked: {
searchLoader.text = model.display
searchLoader.accepted()
}
}
}
}
}
+42 -54
View File
@@ -10,9 +10,10 @@ import org.kde.kirigami 2.14 as Kirigami
import org.kde.ytmusic 1.0
Kirigami.ScrollablePage {
id: searchPage
property alias searchQuery: searchModel.searchQuery
title: searchQuery
objectName: "searchPage"
title: listView.count === 0 && !searchModel.loading? i18n("Previous Searches:") : searchQuery
ListView {
reuseItems: true
@@ -37,7 +38,7 @@ Kirigami.ScrollablePage {
}
}
section.property: "type"
id: listView
model: SearchModel {
id: searchModel
@@ -47,9 +48,11 @@ Kirigami.ScrollablePage {
})
}
onOpenArtist: (channelId) => {
onOpenArtist: (channelId, radioId, shuffleId) => {
pageStack.push("qrc:/ArtistPage.qml", {
"channelId": channelId
"channelId": channelId,
"radioId": radioId,
"shuffleId": shuffleId
})
}
@@ -75,60 +78,58 @@ Kirigami.ScrollablePage {
}
}
}
SongMenu {
id: menu
}
delegate: Kirigami.SwipeListItem {
id: delegateItem
alwaysVisibleActions:true
required property int index
required property string title
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"
}
}
RoundedImage {
source: delegateItem.thumbnailUrl
height: 35
width: height
radius: delegateItem.type === SearchModel.Artist?height/2:5
}
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
elide: Qt.ElideRight
}
}
}
actions: [
Kirigami.Action {
icon.name: "go-next"
text: i18n("Play next")
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
onTriggered: UserPlaylistModel.append(delegateItem.videoId, delegateItem.title, delegateItem.artists)
},
Kirigami.Action {
icon.name: "radio"
text: i18n("Radio")
visible: delegateItem.type === SearchModel.Artist && delegateItem.radioPlaylistId
onTriggered: playPlaylist(delegateItem.radioPlaylistId)
icon.name: "overflow-menu"
text: i18n("More")
visible: delegateItem.type === SearchModel.Song || delegateItem.type === SearchModel.Video
onTriggered: menu.openForSong(delegateItem.videoId, delegateItem.title, delegateItem.artists, delegateItem.artistsDisplayString)
}
]
@@ -138,19 +139,6 @@ Kirigami.ScrollablePage {
anchors.centerIn: parent
visible: searchModel.loading
}
Kirigami.PlaceholderMessage {
anchors.centerIn: parent
width: parent.width - (Kirigami.Units.largeSpacing * 4)
visible: parent.count === 0 && !searchModel.loading
text: i18n("Find music on YouTube Music")
helpfulAction: Kirigami.Action {
onTriggered: searchField.forceActiveFocus()
text: i18n("Search")
icon.name: "search"
}
}
}
footer: ConfirmationMessage {
+432
View File
@@ -0,0 +1,432 @@
// SPDX-FileCopyrightText: 2023 Mathis Brüchert <[email protected]>
// SPDX-FileCopyrightText: 2021 Jonah Brüchert <[email protected]>
//
// SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
import QtQuick 2.1
import QtQuick.Controls 2.12 as Controls
import QtQuick.Layouts 1.3
import org.kde.kirigami 2.14 as Kirigami
import QtGraphicalEffects 1.0
import org.kde.ytmusic 1.0
Item {
function forceFocus(){searchField.forceActiveFocus()}
function accepted(){searchField.accepted()}
property alias filterExpression: searchField.filterExpression
property alias text: searchField.text
id: root
Controls.TextField{
id: dummy
x:searchField.x
y:searchField.y
width: searchField.width
readOnly: true
}
Kirigami.SearchField {
property var filterExpression: new RegExp(`.*${filterText}.*`, "i")
property var filterText: ""
property var oldText: ""
id: searchField
autoAccept: false
width: root.width
selectByMouse: true
onFocusChanged: {
filterText = text
if (wideScreen && focus)
popup.open()
}
onTextEdited: {
filterText = text
if(oldText) {
Library.removeTemporarySearch(oldText)
}
if(text && completionList.count > 0) {
Library.addTemporarySearch(text)
oldText = text
}
else {
oldText = ""
}
}
Keys.onPressed: {
if(completionList.count > 0) {
if (event.key == Qt.Key_Down) {
if(completionList.selectedDelegate == -1 || completionList.selectedDelegate == completionList.count - 1) {
completionList.selectedDelegate = 0
mainScrollView.contentItem.contentY = 0
}
else {
++completionList.selectedDelegate
if(!completionList.isSelectedDelegateVisible()) {
if(!recents.visible) {
mainScrollView.contentItem.contentY = (completionList.selectedDelegate + 1) * completionList.empiricDelegateHeight - mainScrollView.height
}
else {
mainScrollView.contentItem.contentY = (completionList.selectedDelegate + 1) * completionList.empiricDelegateHeight + recents.height + mainScrollViewLayout.spacing - mainScrollView.height
}
}
}
event.accepted = true
}
else if(event.key == Qt.Key_Up) {
if(completionList.selectedDelegate == -1 || completionList.selectedDelegate == 0) {
completionList.selectedDelegate = completionList.count - 1
mainScrollView.contentItem.contentY = mainScrollView.contentHeight - mainScrollView.height
}
else {
--completionList.selectedDelegate
if(!completionList.isSelectedDelegateVisible()) {
if(!recents.visible) {
mainScrollView.contentItem.contentY = completionList.empiricDelegateHeight * completionList.selectedDelegate
}
else {
mainScrollView.contentItem.contentY = completionList.empiricDelegateHeight * completionList.selectedDelegate + recents.height + mainScrollViewLayout.spacing
}
}
}
event.accepted = true
}
if(event.accepted) {
text = completionList.itemAt(completionList.selectedDelegate).text
}
else {
completionList.selectedDelegate = -1
mainScrollView.contentItem.contentY = 0
}
}
}
onAccepted: {
popup.close()
completionList.selectedDelegate = -1
if(oldText) {
Library.removeTemporarySearch(oldText)
oldText = ""
}
while (pageStack.depth > 0) {
pageStack.pop()
}
pageStack.layers.clear()
if (text) {
Library.addSearch(text)
pageStack.push("qrc:/SearchPage.qml", {
"searchQuery": text,
objectName: "searchPage"
})
} else {
wideScreen
? pageStack.push("qrc:/LibraryPage.qml")
: pageStack.push("qrc:/SearchHistoryPage.qml")
}
searchField.focus = false
}
}
Controls.Popup {
id: popup
property int expansion: 5
property int shadowSize: 15
onAboutToShow:{
searchField.parent = fieldContainer
onOpened: searchField.background.visible = false
playOpenHeight.running = true
playOpenWidth.running = true
playOpenX.running = true
playOpenY.running = true
playOpenRadius.running = true
}
onAboutToHide:{
searchField.parent = root
onOpened: searchField.background.visible = true
searchField.focus = false
playCloseHeight.running = true
playCloseWidth.running = true
playCloseX.running = true
playCloseY.running = true
playCloseRadius.running = true
}
x: -(popup.shadowSize+popup.expansion)
y: -(popup.shadowSize+popup.expansion)
rightPadding:popup.shadowSize+1
leftPadding:popup.shadowSize+1
bottomPadding:popup.shadowSize
rightInset: popup.shadowSize
leftInset: popup.shadowSize
bottomInset: popup.shadowSize
leftMargin:-popup.shadowSize
background: Kirigami.ShadowedRectangle{
id: bg
Kirigami.Theme.inherit: false
Kirigami.Theme.colorSet: Kirigami.Theme.View
color: Kirigami.Theme.backgroundColor
radius: popup.expansion+2
shadow.size: popup.shadowSize
shadow.yOffset: popup.expansion
shadow.color: Qt.rgba(0, 0, 0, 0.2)
border.width: 1
border.color: Kirigami.ColorUtils.linearInterpolation(Kirigami.Theme.backgroundColor, Kirigami.Theme.textColor, 0.3);
NumberAnimation on radius{
id: playOpenRadius
easing.type: Easing.OutCubic
running: false
from: 2
duration: 100
to: popup.expansion+2
}
NumberAnimation on radius{
id: playCloseRadius
easing.type: Easing.OutCubic
running: false
from: popup.expansion+2
duration: 100
to: 2
}
}
width: searchField.width + 2*(popup.shadowSize+popup.expansion)
height: completionList
? (Math.min(content.implicitHeight, Kirigami.Units.gridUnit * 20))+2*(popup.shadowSize+popup.expansion)
: (Kirigami.Units.gridUnit * 20)+2*(popup.shadowSize+popup.expansion)
NumberAnimation on height{
id: playOpenHeight
easing.type: Easing.OutCubic
running: false
from: searchField.height
duration: 200
to: completionList
? (Math.min(fieldContainer.height+ completionList.count * Kirigami.Units.gridUnit * 2 + recents.implicitHeight, Kirigami.Units.gridUnit * 20))+2*(popup.shadowSize+popup.expansion)
: (Kirigami.Units.gridUnit * 20)+2*(popup.shadowSize+popup.expansion)
}
NumberAnimation on width{
id: playOpenWidth
easing.type: Easing.OutCubic
running: false
from: searchField.width
duration: 100
to: searchField.width +2*(popup.shadowSize+popup.expansion)
}
NumberAnimation on x{
id: playOpenX
easing.type: Easing.OutCubic
running: false
from: 0
duration: 100
to: -(popup.shadowSize+popup.expansion)
}
NumberAnimation on y{
id: playOpenY
easing.type: Easing.OutCubic
running: false
from: 0
duration: 100
to: -popup.expansion
}
NumberAnimation on height{
id: playCloseHeight
easing.type: Easing.OutCubic
running: false
from: completionList
? (Math.min(content.implicitHeight, Kirigami.Units.gridUnit * 20))+2*(popup.shadowSize+popup.expansion)
: (Kirigami.Units.gridUnit * 20)+2*(popup.shadowSize+popup.expansion)
duration: 100
to: searchField.height
}
NumberAnimation on width{
id: playCloseWidth
easing.type: Easing.OutCubic
running: false
from: searchField.width + 2*(popup.shadowSize+popup.expansion)
duration: 100
to: searchField.width + 2*(popup.shadowSize)
}
NumberAnimation on x{
id: playCloseX
easing.type: Easing.OutCubic
running: false
from: -(popup.shadowSize+popup.expansion)
duration: 100
to: -popup.shadowSize
}
NumberAnimation on y{
id: playCloseY
easing.type: Easing.OutCubic
running: false
from: - popup.expansion
duration: 100
to: -0
}
contentItem: ColumnLayout{
id: content
width: parent.width
Controls.Control{
Layout.fillHeight: true
Layout.fillWidth: true
Controls.Control{
x: popup.expansion
y:-popup.expansion
id: fieldContainer
height:searchField.height
}
implicitHeight: fieldContainer.height
}
Controls.ScrollView {
id: mainScrollView
clip: true
Layout.fillHeight: true
Layout.fillWidth: true
Keys.enabled: false
contentWidth: availableWidth
ColumnLayout {
id: mainScrollViewLayout
width: mainScrollView.contentWidth
Controls.ScrollView {
id: recents
Layout.fillWidth: true
Layout.maximumWidth: popup.width
visible: searchField.filterText && recentsRepeater.count > 0
leftPadding: 10
rightPadding: 40
topPadding: 10
Controls.ScrollBar.horizontal.policy: Controls.ScrollBar.AlwaysOff
RowLayout {
spacing: 10
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: Kirigami.DelegateRecycler {
Layout.alignment: Qt.AlignTop
width: popup.width
sourceComponent: searchAlbum
}
}
}
}
Kirigami.Separator{
visible: recents.visible
Layout.fillWidth: true
implicitWidth: popup.width
}
RowLayout{
Layout.margins: 10
visible: completionList.count == 0
Kirigami.Icon {
source: "documentinfo"
implicitHeight: Kirigami.Units.gridUnit
implicitWidth: Kirigami.Units.gridUnit
color: Kirigami.Theme.disabledTextColor
}
Controls.Label {
text: i18n("No matching previous searches")
Layout.fillWidth: true
color: Kirigami.Theme.disabledTextColor
}
}
Repeater {
Layout.fillWidth: true
property int selectedDelegate: -1
property int delegateHeight: Kirigami.Units.gridUnit
property int delegatePadding: Kirigami.Units.smallSpacing
property int empiricDelegateHeight: recents.visible ? (mainScrollView.contentHeight - recents.height) / count : (mainScrollView.contentHeight + mainScrollViewLayout.spacing) / (count)
id: completionList
model: SortFilterModel {
sourceModel: Library.searches
filterRegularExpression: searchField.filterExpression
}
function isSelectedDelegateVisible() {
if(!recents.visible) {
return selectedDelegate * empiricDelegateHeight > mainScrollView.contentItem.contentY && (selectedDelegate + 1) * empiricDelegateHeight < mainScrollView.contentItem.contentY + mainScrollView.height
}
else {
return selectedDelegate * empiricDelegateHeight + recents.height > mainScrollView.contentItem.contentY && (selectedDelegate + 1) * empiricDelegateHeight + recents.height < mainScrollView.contentItem.contentY + mainScrollView.height
}
}
delegate: Kirigami.AbstractListItem {
id: completionDelegate
highlighted: focus || (completionList.selectedDelegate == index)
Kirigami.Theme.colorSet: Kirigami.Theme.Window
Kirigami.Theme.inherit: false
Layout.fillWidth: true
height: completionList.delegateHeight
text: model.display
padding: completionList.delegatePadding
spacing: 0
contentItem: RowLayout {
Kirigami.Icon {
source: "search"
implicitHeight: completionList.delegateHeight
implicitWidth: completionList.delegateHeight
color: Kirigami.Theme.disabledTextColor
}
Controls.Label{
text: model.display
Layout.fillWidth: true
}
Controls.ToolButton {
icon.name: "list-remove"
text: i18n("remove from search history")
display: Controls.AbstractButton.IconOnly
onClicked: {
Library.removeSearch(model.display)
}
implicitHeight: completionList.delegateHeight
visible: !searchField.oldText || index != 0
}
}
onClicked: {
searchField.text = model.display
searchField.accepted()
}
}
}
}
}
}
}
}
+143
View File
@@ -0,0 +1,143 @@
// SPDX-FileCopyrightText: 2019 Nicolas Fella <[email protected]>
// SPDX-FileCopyrightText: 2023 Mathis Brüchert <[email protected]>
// SPDX-License-Identifier: GPL-2.0-or-later
import QtQuick.Controls 2.1 as Controls
import QtQuick.Layouts 1.7
import QtQuick 2.7
import QtQuick.Window 2.15
import org.kde.kirigami 2.20 as Kirigami
import org.kde.purpose 1.0 as Purpose
import org.kde.ytmusic 1.0
Item{
id:root
property url url
property string inputTitle
function open(){
if (Kirigami.Settings.isMobile){
inputDrawer.open()
inputDrawer.interactive = true
drawerView.inputData = {
"urls": [root.url.toString()],
"title": "Title"
}
} else {
inputSheet.open()
view.inputData = {
"urls": [root.url.toString()],
"title": "Title"
}
}
}
Kirigami.Dialog {
id: inputSheet
title: i18n("Share to")
preferredWidth: Kirigami.Units.gridUnit * 16
standardButtons: Kirigami.Dialog.NoButton
ColumnLayout {
spacing:0
Kirigami.BasicListItem {
Layout.fillWidth: true
leading: Kirigami.Icon {
source: "edit-copy"
}
label: i18n("Copy Link")
visible: view.depth === 1
onClicked: {
Clipboard.text = root.url
inputSheet.close()
applicationWindow().showPassiveNotification(i18n("Link copied to clipboard"))
}
}
Purpose.AlternativesView {
Layout.fillHeight: true
Layout.fillWidth: true
id: view
pluginType: "ShareUrl"
clip: true
delegate: Kirigami.BasicListItem {
id: shareDelegate
required property string iconName
required property string display
required property int index
label: shareDelegate.display
onClicked: view.createJob (shareDelegate.index)
Keys.onReturnPressed: view.createJob (shareDelegate.index)
Keys.onEnterPressed: view.createJob (shareDelegate.index)
leading: Kirigami.Icon {
source: shareDelegate.iconName
}
trailing: Kirigami.Icon {
implicitWidth: Kirigami.Units.iconSizes.small
implicitHeight: Kirigami.Units.iconSizes.small
source: "arrow-right"
}
}
onFinished: inputSheet.close()
}
}
}
BottomDrawer {
id: inputDrawer
drawerContentItem: ColumnLayout {
spacing:0
Kirigami.BasicListItem {
Layout.fillWidth: true
leading: Kirigami.Icon {
source: "edit-copy"
}
label: i18n("Copy Link")
visible: drawerView.depth === 1
onClicked: {
Clipboard.text = root.url
inputDrawer.close()
applicationWindow().showPassiveNotification(i18n("Link copied to clipboard"))
}
}
Purpose.AlternativesView {
id: drawerView
pluginType: "ShareUrl"
clip: true
Layout.fillHeight: true
Layout.fillWidth: true
delegate: Kirigami.BasicListItem {
id: shareDrawerDelegate
required property string iconName
required property string display
required property int index
label: shareDrawerDelegate.display
onClicked: drawerView.createJob (shareDrawerDelegate.index)
Keys.onReturnPressed: view.createJob (shareDrawerDelegate.index)
Keys.onEnterPressed: view.createJob (shareDrawerDelegate.index)
leading: Kirigami.Icon {
source: shareDrawerDelegate.iconName
}
trailing: Kirigami.Icon {
implicitWidth: Kirigami.Units.iconSizes.small
implicitHeight: Kirigami.Units.iconSizes.small
source: "arrow-right"
}
}
onFinished: inputDrawer.close()
}
Item{
Layout.fillHeight: true
}
}
}
}
+218
View File
@@ -0,0 +1,218 @@
// SPDX-FileCopyrightText: 2022 Mathis Brüchert <[email protected]>
//
// SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
import QtQuick 2.15
import QtQuick.Layouts 1.3
import QtQuick.Controls 2.15 as Controls
import org.kde.kirigami 2.20 as Kirigami
import org.kde.ytmusic 1.0
Rectangle {
property int sidebarWidth: 230
property int sidebarWidthCollapsed: 60
property bool collapsed: false
id: sidebar
width: sidebarWidth
clip:true
Kirigami.Theme.colorSet: Kirigami.Theme.Window
Kirigami.Theme.inherit: false
color: "transparent"
Rectangle {
anchors.fill: parent
color: Kirigami.Theme.backgroundColor
opacity: 0.8
}
NumberAnimation on width{
id: collapse
easing.type: Easing.OutCubic
running: false
from: sidebarWidth; to: sidebarWidthCollapsed
}
NumberAnimation on width{
id: show
easing.type: Easing.OutCubic
running: false
from: sidebarWidthCollapsed; to: sidebarWidth
//this is only a workaround to stop the text from disappearing
onFinished:{
libraryButton.checked =!libraryButton.checked
libraryButton.checked =!libraryButton.checked
favouritesButton.checked =!favouritesButton.checked
favouritesButton.checked =!favouritesButton.checked
historyButton.checked =!historyButton.checked
historyButton.checked =!historyButton.checked
searchButton.checked =!searchButton.checked
searchButton.checked =!searchButton.checked
collapseButton.checked =!collapseButton.checked
collapseButton.checked =false
aboutButton.checked = !aboutButton.checked
aboutButton.checked = !aboutButton.checked
playlistsButton.checked = !playlistsButton.checked
playlistsButton.checked = !playlistsButton.checked
}
}
Kirigami.Separator {
height: parent.height
anchors.right: parent.right
z:100
}
ColumnLayout {
anchors.fill: parent
spacing: 0
Kirigami.Separator {
Layout.fillWidth: true
}
Controls.ScrollView {
id: scrollView
Layout.fillWidth: true
Layout.fillHeight: true
Controls.ScrollBar.vertical.policy: Controls.ScrollBar.AlwaysOff
Controls.ScrollBar.horizontal.policy: Controls.ScrollBar.AlwaysOff
contentWidth: -1 // disable horizontal scroll
ColumnLayout {
id: column
width: scrollView.width
spacing: 0
Kirigami.NavigationTabButton {
id: libraryButton
Layout.fillWidth: true
width: column.width - column.Layout.leftMargin - column.Layout.rightMargin
implicitHeight: 50
display: Controls.AbstractButton.TextBesideIcon
text: collapsed? "" : i18n("Library")
icon.name: "file-library-symbolic"
checked: pageStack.currentItem && pageStack.currentItem.objectName == "libraryPage"
onClicked: {
pageStack.clear()
pageStack.push("qrc:/LibraryPage.qml")
}
}
Kirigami.NavigationTabButton {
id: searchButton
Layout.fillWidth: true
width: column.width - column.Layout.leftMargin - column.Layout.rightMargin
implicitHeight: 50
display: Controls.AbstractButton.TextBesideIcon
text: collapsed? "" : i18n("Search")
icon.name: "search"
checked: pageStack.currentItem && pageStack.currentItem.objectName == "searchPage"
onClicked: {
searchField.forceActiveFocus()
focusSearch()
}
}
Kirigami.NavigationTabButton {
id: favouritesButton
Layout.fillWidth: true
width: column.width - column.Layout.leftMargin - column.Layout.rightMargin
implicitHeight: 50
display: Controls.AbstractButton.TextBesideIcon
text: collapsed ? "" : i18n("Favourites")
icon.name: "non-starred-symbolic"
checked: pageStack.currentItem && pageStack.currentItem.objectName == "favourites"
onClicked: {
pageStack.clear()
pageStack.push("qrc:/PlaybackHistory.qml", {
"dataModel": Library.favourites,
"title": i18n("Favourites"),
"objectName": "favourites"
})}
}
Kirigami.NavigationTabButton {
id: historyButton
Layout.fillWidth: true
width: column.width - column.Layout.leftMargin - column.Layout.rightMargin
implicitHeight: 50
display: Controls.AbstractButton.TextBesideIcon
text: collapsed? "" : i18n("Played Songs")
icon.name: "edit-undo-history"
checked: pageStack.currentItem && pageStack.currentItem.objectName == "history"
onClicked: {
pageStack.clear()
pageStack.push("qrc:/PlaybackHistory.qml", {
"dataModel": Library.playbackHistory,
"title": i18n("Played Songs"),
"objectName": "history"
})}
}
Kirigami.NavigationTabButton {
id: playlistsButton
Layout.fillWidth: true
width: column.width - column.Layout.leftMargin - column.Layout.rightMargin
implicitHeight: 50
display: Controls.AbstractButton.TextBesideIcon
text: collapsed? "" : i18n("Playlists")
icon.name: "amarok_playlist"
checked: pageStack.currentItem && pageStack.currentItem.objectName == "playlists"
onClicked: {
pageStack.clear()
pageStack.push("qrc:/LocalPlaylistsPage.qml", {
"objectName": "playlists"
})}
}
}
}
Kirigami.Separator {
Layout.fillWidth: true
Layout.rightMargin: Kirigami.Units.smallSpacing
Layout.leftMargin: Kirigami.Units.smallSpacing
}
Kirigami.NavigationTabButton {
id: aboutButton
Layout.fillWidth: true
width: column.width - column.Layout.leftMargin - column.Layout.rightMargin
implicitHeight: 50
display: Controls.AbstractButton.TextBesideIcon
text: collapsed? "" : i18n("About")
checkable: false
icon.name: "help-about-symbolic"
onClicked: {
pageStack.pushDialogLayer("qrc:/AboutAudiotube.qml")
}
}
Kirigami.NavigationTabButton {
id: collapseButton
Layout.fillWidth: true
width: column.width - column.Layout.leftMargin - column.Layout.rightMargin
display: Controls.AbstractButton.TextBesideIcon
text: collapsed? "" : i18n("Collapse Sidebar")
checked: collapsed == true
implicitHeight: 50
icon.name: "sidebar-collapse"
onClicked: {
if (!sidebar.collapsed)
collapse.running = true
else
show.running = true
sidebar.collapsed = !sidebar.collapsed
}
}
}
}
+274
View File
@@ -0,0 +1,274 @@
// SPDX-FileCopyrightText: 2023 Mathis Brüchert <[email protected]>
//
// SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
import QtQuick 2.15
import QtQuick.Controls 2.15 as Controls
import org.kde.ytmusic 1.0
import org.kde.kirigami 2.19 as Kirigami
import QtQuick.Layouts 1.15
import "dialogs"
Item {
id:root
property string videoId
property list<Kirigami.Action> pageSpecificActions
ShareMenu {
id: shareMenu
}
PlaylistDialog{
id: playlistDialog
}
function openForSong(videoId, songTitle, artists, artistsDisplayString) {
shareMenu.url = "https://music.youtube.com/watch?v=" + videoId
shareMenu.inputTitle= songTitle
menu.videoId = videoId
drawer.videoId = videoId
playlistDialog.videoId = videoId
root.videoId = videoId
menu.songTitle = songTitle
drawer.songTitle = songTitle
playlistDialog.songTitle = songTitle
menu.artists = artists
drawer.artists = artists
menu.artistsDisplayString = artistsDisplayString
drawer.artistsDisplayString = artistsDisplayString
playlistDialog.artists = artistsDisplayString
if (Kirigami.Settings.isMobile) {
drawer.interactive = true
drawer.open()
} else {
menu.popup()
}
}
BottomDrawer {
id: drawer
property string videoId
property string songTitle
property var artists
property string artistsDisplayString
headerContentItem: RowLayout {
spacing: 10
Layout.topMargin: 0
Kirigami.ShadowedRectangle {
Layout.rightMargin: 5
Layout.topMargin: 0
color: Kirigami.Theme.backgroundColor
width: 60
height: width
radius: 5
shadow.size: 15
shadow.xOffset: 5
shadow.yOffset: 5
shadow.color: Qt.rgba(0, 0, 0, 0.2)
RoundedImage {
source: thumbnailSource.cachedPath
height: width
width: parent.width
radius: parent.radius
}
}
ColumnLayout {
Layout.margins: 0
Layout.topMargin: 0
Controls.Label{
text: drawer.songTitle
elide: Text.ElideRight
Layout.fillWidth: true
}
Controls.Label{
text: drawer.artistsDisplayString
color: Kirigami.Theme.disabledTextColor
elide: Text.ElideRight
Layout.fillWidth: true
}
}
}
drawerContentItem: ColumnLayout {
ThumbnailSource {
id: thumbnailSource
videoId: drawer.videoId
}
Kirigami.BasicListItem{
Layout.topMargin: 10
label: i18n("Play Next")
icon: "go-next"
onClicked: {
UserPlaylistModel.playNext(drawer.videoId, drawer.songTitle, drawer.artists)
drawer.close()
}
}
Kirigami.BasicListItem{
label: i18n("Add to queue")
icon: "media-playlist-append"
onClicked: {
UserPlaylistModel.append(drawer.videoId, drawer.songTitle, drawer.artists)
drawer.close()
}
}
Kirigami.BasicListItem{
readonly property QtObject favouriteWatcher: Library.favouriteWatcher(drawer.videoId)
label: favouriteWatcher ? (favouriteWatcher.isFavourite ? i18n("Remove Favourite"): i18n("Add Favourite")): ""
icon: favouriteWatcher ? (favouriteWatcher.isFavourite ? "starred-symbolic" : "non-starred-symbolic") : ""
onClicked: {
if (favouriteWatcher) {
if (favouriteWatcher.isFavourite) {
Library.removeFavourite(drawer.videoId)
} else {
Library.addFavourite(drawer.videoId, drawer.songTitle, drawer.artistsDisplayString, "")
}
}
drawer.close()
}
}
Kirigami.BasicListItem{
readonly property QtObject wasPlayedWatcher: Library.wasPlayedWatcher(drawer.videoId)
label: i18n("Remove from History")
icon: "list-remove"
onClicked: {
Library.removePlaybackHistoryItem(drawer.videoId)
drawer.close()
}
visible: wasPlayedWatcher ? wasPlayedWatcher.wasPlayed : false
enabled: wasPlayedWatcher ? wasPlayedWatcher.wasPlayed : false
}
Kirigami.BasicListItem{
readonly property QtObject wasPlayedWatcher: Library.wasPlayedWatcher(drawer.videoId)
label: i18n("Add to playlist")
icon: "media-playlist-append"
onClicked: {
playlistDialog.open()
drawer.close()
}
}
// Page specific actions //
Repeater {
model: root.pageSpecificActions
delegate: Kirigami.BasicListItem{
required property var modelData
label: modelData.text
icon: modelData.icon.name
onClicked: {
modelData.triggered()
drawer.close()
}
}
}
Kirigami.BasicListItem{
readonly property QtObject wasPlayedWatcher: Library.wasPlayedWatcher(drawer.videoId)
label: i18n("Share Song")
icon: "emblem-shared-symbolic"
onClicked: {
shareMenu.open()
drawer.close()
}
}
Item{
Layout.fillHeight: true
}
}
}
Controls.Menu {
property string videoId
property string songTitle
property var artists
property string artistsDisplayString
id: menu
Controls.MenuItem {
text: i18n("Play Next")
icon.name: "go-next"
onTriggered: UserPlaylistModel.playNext(menu.videoId, menu.songTitle, menu.artists)
}
Controls.MenuItem {
text: i18n("Add to queue")
icon.name: "media-playlist-append"
onTriggered: UserPlaylistModel.append(menu.videoId, menu.songTitle, menu.artists)
}
Controls.MenuSeparator{}
Controls.MenuItem {
readonly property QtObject favouriteWatcher: Library.favouriteWatcher(menu.videoId)
text: favouriteWatcher ? (favouriteWatcher.isFavourite ? i18n("Remove Favourite"): i18n("Add Favourite")): ""
icon.name: favouriteWatcher ? (favouriteWatcher.isFavourite ? "starred-symbolic" : "non-starred-symbolic") : ""
onTriggered: {
if (favouriteWatcher) {
if (favouriteWatcher.isFavourite) {
Library.removeFavourite(menu.videoId)
} else {
Library.addFavourite(menu.videoId, menu.songTitle, menu.artistsDisplayString, "")
}
}
}
}
Controls.MenuItem{
readonly property QtObject wasPlayedWatcher: Library.wasPlayedWatcher(menu.videoId)
text: i18n("Remove from History")
icon.name: "list-remove"
onTriggered: {
Library.removePlaybackHistoryItem(menu.videoId)
}
enabled: wasPlayedWatcher ? wasPlayedWatcher.wasPlayed : false
visible: wasPlayedWatcher ? wasPlayedWatcher.wasPlayed : false
}
Controls.MenuItem {
text: i18n("Add to playlist")
icon.name: "media-playlist-append"
onTriggered: playlistDialog.open()
}
// Page specific actions //
Controls.MenuSeparator{ visible: instantiator.count !== 0 }
Instantiator {
id: instantiator
model: root.pageSpecificActions
onObjectAdded: menu.insertItem(index+8, object)
onObjectRemoved: menu.removeItem(object)
delegate: Controls.MenuItem {
required property var modelData
icon.name: modelData.icon.name
text:modelData.text
onTriggered: modelData.triggered()
}
}
Controls.MenuSeparator{}
Controls.MenuItem {
text: i18n("Share Song")
icon.name: "emblem-shared-symbolic"
onTriggered: shareMenu.open()
}
}
}
@@ -0,0 +1,33 @@
// SPDX-FileCopyrightText: 2023 Mathis Brüchert <[email protected]>
//
// SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
import QtQuick 2.1
import QtQuick.Controls 2.12 as Controls
import QtQuick.Layouts 1.3
import org.kde.kirigami 2.19 as Kirigami
import org.kde.ytmusic 1.0
import ".."
Kirigami.PromptDialog {
property QtObject model
id: addPlaylistDialog
title: i18n("Add playlist")
standardButtons: Kirigami.Dialog.Ok | Kirigami.Dialog.Cancel
mainItem: Kirigami.FormLayout {
Controls.TextField {
id: titleField
Kirigami.FormData.label: i18n("Playlist Title")
}
Controls.TextField {
id: descriptionField
Kirigami.FormData.label: i18n("Playlist Description")
}
}
onAccepted: model.addPlaylist(titleField.text, descriptionField.text)
}
+111
View File
@@ -0,0 +1,111 @@
// SPDX-FileCopyrightText: 2023 Mathis Brüchert <[email protected]>
//
// SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
import QtQuick 2.1
import QtQuick.Controls 2.12 as Controls
import QtQuick.Layouts 1.3
import org.kde.kirigami 2.19 as Kirigami
import org.kde.ytmusic 1.0
import ".."
Kirigami.PromptDialog {
id: playlistsDialog
contentLeftPadding:0
contentRightPadding:0
contentTopPadding:0
contentBottomPadding:0
title:i18n("Add Song to Playlist")
property string videoId
property string songTitle
property string artists
property string album: ""
standardButtons: Kirigami.Dialog.NoButton
customFooterActions: [
Kirigami.Action {
text: i18n("New Playlist")
iconName: "list-add"
onTriggered: {
addPlaylistDialog.open()
}
}
]
mainItem: ListView {
AddPlaylistDialog{
id:addPlaylistDialog
model: localPlaylistsModel
}
implicitHeight: 200
model: LocalPlaylistsModel {
id: localPlaylistsModel
}
delegate: Kirigami.AbstractListItem {
required property string title
required property string description
required property int playlistId
required property var thumbnailIds
required property int index
RowLayout {
Layout.fillHeight: true
LocalPlaylistModel{id:localPlaylistModel}
ThumbnailSource {
id: thumbnailSource1
videoId: thumbnailIds[0]
}
ThumbnailSource {
id: thumbnailSource2
videoId: thumbnailIds[1] ?? thumbnailIds[0]
}
ThumbnailSource {
id: thumbnailSource3
videoId: thumbnailIds[2] ?? thumbnailIds[0]
}
ThumbnailSource {
id: thumbnailSource4
videoId: thumbnailIds[3] ?? thumbnailIds[0]
}
PlaylistCover {
source1: thumbnailSource1.cachedPath
source2: thumbnailSource2.cachedPath
source3: thumbnailSource3.cachedPath
source4: thumbnailSource4.cachedPath
height: 35
width: height
radius: 5
}
ColumnLayout {
Controls.Label {
Layout.fillWidth: true
text: title
elide: Qt.ElideRight
}
Controls.Label {
Layout.fillWidth: true
visible: description
color: Kirigami.Theme.disabledTextColor
text: description
elide: Qt.ElideRight
}
}
}
onClicked: {
localPlaylistsModel.addPlaylistEntry(playlistId, videoId, songTitle, artists, album )
playlistsDialog.close()
}
}
}
}
@@ -0,0 +1,37 @@
// SPDX-FileCopyrightText: 2023 Mathis Brüchert <[email protected]>
//
// SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
import QtQuick 2.1
import QtQuick.Controls 2.12 as Controls
import QtQuick.Layouts 1.3
import org.kde.kirigami 2.19 as Kirigami
import org.kde.ytmusic 1.0
import ".."
Kirigami.PromptDialog {
property var modelData
property LocalPlaylistsModel playlistsModel
id: addPlaylistDialog
title: i18n("Rename playlist")
standardButtons: Kirigami.Dialog.Ok | Kirigami.Dialog.Cancel
mainItem: Kirigami.FormLayout {
Controls.TextField {
id: titleField
Kirigami.FormData.label: i18n("Playlist Title")
text: modelData.title
}
Controls.TextField {
id: descriptionField
Kirigami.FormData.label: i18n("Playlist Description")
text: modelData.description
}
}
onAccepted: playlistsModel.renamePlaylist(modelData.playlistId, titleField.text, descriptionField.text)
}
+180 -59
View File
@@ -6,15 +6,51 @@ import QtQuick 2.1
import QtQuick.Controls 2.12 as Controls
import QtQuick.Layouts 1.3
import org.kde.kirigami 2.14 as Kirigami
import QtGraphicalEffects 1.0
import org.kde.ytmusic 1.0
Kirigami.ApplicationWindow {
id: root
minimumWidth: 300
minimumHeight: 300
pageStack.globalToolBar.style: wideScreen? Kirigami.ApplicationHeaderStyle.None: Kirigami.ApplicationHeaderStyle.Breadcrumb
property alias searchField: searchField
color: "transparent"
Blur{id:blur}
Component.onCompleted: {
blur.setBlur(sidebar, true);
}
pageStack.columnView.columnResizeMode: Kirigami.ColumnView.SingleColumn
property alias searchField: searchLoader // TODO
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: wideScreen
}
Sidebar {
id:sidebar
visible: wideScreen
height: pageStack.height - playerFooter.implicitHeight
}
NavigationBar{
id: bottombar
visible: !wideScreen
}
header: Controls.Control {
visible: wideScreen || root.showSearch
padding: Kirigami.Units.largeSpacing
background: Rectangle {
@@ -25,67 +61,47 @@ Kirigami.ApplicationWindow {
Kirigami.Theme.colorSet: Kirigami.Theme.Header
color: Kirigami.Theme.backgroundColor
}
contentItem: RowLayout{
Item {
Layout.fillWidth: true
}
Kirigami.SearchField {
id: searchField
delaySearch: true
selectByMouse: true
Layout.fillWidth: true
Layout.maximumWidth: 400
onPressed: {
popup.open()
contentItem: RowLayout {
spacing: 0
Row {
Layout.alignment: Qt.AlignLeft
Controls.ToolButton {
id: back
enabled: applicationWindow().pageStack.layers.depth > 1 || (applicationWindow().pageStack.depth > 1 && (applicationWindow().pageStack.currentIndex > 0 || applicationWindow().pageStack.contentItem.contentX > 0)) // Copied from https://invent.kde.org/frameworks/kirigami/-/blob/master/src/controls/templates/private/BackButton.qml#L16
icon.name: "draw-arrow-back"
onClicked: pageStack.goBack()
visible: wideScreen
}
Controls.Popup {
id: popup
x: searchField.y
y: searchField.y + searchField.height
visible: true
width: searchField.width
height: completionList
? Math.min(completionList.count * Kirigami.Units.gridUnit * 2 + Kirigami.Units.gridUnit * 2, Kirigami.Units.gridUnit * 20)
: Kirigami.Units.gridUnit * 20
contentItem: Controls.ScrollView {
Controls.ScrollBar.horizontal.policy: Controls.ScrollBar.AlwaysOff
ListView {
id: completionList
model: Library.searches
delegate: Controls.ItemDelegate {
Kirigami.Theme.colorSet: Kirigami.Theme.Window
Kirigami.Theme.inherit: false
id: completionDelegate
width: parent.width
height: Kirigami.Units.gridUnit * 2
text: model.display
onClicked: {
searchField.text = model.display
searchField.accepted()
}
}
}
}
}
onAccepted: {
pageStack.clear()
if (text) {
Library.addSearch(text)
pageStack.push("qrc:/SearchPage.qml", {
"searchQuery": text})
} else {
pageStack.replace("qrc:/LibraryPage.qml")
}
popup.close()
Controls.ToolButton {
icon.name: "draw-arrow-forward"
enabled: applicationWindow().pageStack.currentIndex < applicationWindow().pageStack.depth-1
onClicked: pageStack.goForward()
visible: wideScreen
}
}
// spacer
Item {
visible: wideScreen
Layout.fillWidth: !root.wideScreen
}
SearchWithDropdown {
id: searchLoader
visible: root.wideScreen || root.showSearch
Layout.alignment: Qt.AlignHCenter
Layout.fillWidth: true
Layout.fillHeight: true
height: back.height
width: wideScreen?null:root.width
Layout.maximumWidth: wideScreen ? 400 : root.width
}
Item {
width: 2*back.width
visible: wideScreen
}
}
}
@@ -97,6 +113,7 @@ Kirigami.ApplicationWindow {
}
pageStack.initialPage: "qrc:/LibraryPage.qml"
pageStack.clip: true
function play(videoId) {
UserPlaylistModel.initialVideoId = videoId
@@ -111,6 +128,15 @@ Kirigami.ApplicationWindow {
UserPlaylistModel.playlistId = playlistId
}
function playFavourites(shuffle) {
UserPlaylistModel.playFavourites(Library.favourites, shuffle)
}
function playPlaybackHistory(model, shuffle) {
UserPlaylistModel.playPlaybackHistory(model, shuffle)
}
function focusSearch(){searchLoader.forceFocus()}
Connections {
target: ErrorHandler
@@ -119,15 +145,110 @@ Kirigami.ApplicationWindow {
showPassiveNotification(error)
}
}
Component {
id: searchAlbum
ColumnLayout {
id: mpdelegateItem
width: 100
Layout.maximumWidth: 70
Kirigami.ShadowedRectangle {
id: recCover
MouseArea {
id: recArea
anchors.fill: parent
onClicked: play(model.videoId)
hoverEnabled: !Kirigami.Settings.hasTransientTouchInput
onEntered: {
if (!Kirigami.Settings.hasTransientTouchInput)
recSelected.visible = true
searchTitle.color = Kirigami.Theme.hoverColor
searchTitle.font.bold = true
}
onExited:{
recSelected.visible = false
searchTitle.color = Kirigami.Theme.textColor
searchTitle.font.bold = 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"
ThumbnailSource {
id: thumbnailSource
videoId: model ? model.videoId : ""
}
RoundedImage {
source: thumbnailSource.cachedPath
height: parent.height
width: height
radius: 10
}
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 {
id: searchTitle
leftPadding:5
Layout.maximumWidth: 70
text: model ? model.title : ""
elide: Qt.ElideRight
wrapMode: Text.WordWrap
Layout.maximumHeight: 40
}
Item {
height: 5
}
}
}
pageStack.anchors.bottomMargin: playerFooter.minimizedPlayerHeight + 1
pageStack.anchors.bottomMargin: wideScreen ? playerFooter.minimizedPlayerHeight: playerFooter.minimizedPlayerHeight+bottombar.height
pageStack.anchors.leftMargin: wideScreen ? sidebar.width:0
// media player
PlayerFooter {
id: playerFooter
anchors.topMargin: -root.header.height
anchors.fill: parent
footerSpacing: wideScreen ? 0 : bottombar.height
// only expand flicking area to full screen when it is open
z: (contentY === 0) ? -1 : 999
}
+1 -1
View File
@@ -8,7 +8,7 @@
int main() {
const auto ytm = YTMusic();
const auto results = ytm.search("Another one bites the dust");
const auto results = ytm.search("NAMASPAMUS");
std::cout << "Found " << results.size() << " results." << std::endl;
+160 -57
View File
@@ -6,9 +6,8 @@
#include <QStandardPaths>
#include <QDir>
#include <QNetworkReply>
#include <QNetworkRequest>
#include <QStringBuilder>
#include <QGuiApplication>
#include "asyncdatabase.h"
@@ -28,6 +27,25 @@ Library::Library(QObject *parent)
}()))
{
m_database->runMigrations(":/migrations/");
m_searches = new SearchHistoryModel(m_database->getResults<SingleValue<QString>>("select distinct (search_query) from searches order by search_id desc"), this);
connect(this, &Library::changeFavourites, [this]() {
auto future = m_database->getResults<Song>("select * from favourites natural join songs order by favourites.rowid desc");
m_favourites= new FavouritesModel(std::move(future), this);
Q_EMIT favouritesChanged();
});
Q_EMIT changeFavourites();
connect(this, &Library::changePlaybackHistory, [this]() {
//playbackHistory
auto future = m_database->getResults<PlayedSong>("select * from played_songs natural join songs");
m_playbackHistory = new PlaybackHistoryModel(std::move(future), this);
//mostPlayed
auto future2 = m_database->getResults<PlayedSong>("select * from played_songs natural join songs order by plays desc limit 10");
m_mostPlayed = new PlaybackHistoryModel(std::move(future2), this);
Q_EMIT playbackHistoryChanged();
});
Q_EMIT changePlaybackHistory();
}
Library::~Library() = default;
@@ -40,20 +58,19 @@ Library &Library::instance()
FavouritesModel *Library::favourites()
{
auto future = m_database->getResults<Song>("select * from favourites natural join songs");
return new FavouritesModel(std::move(future), this);
return m_favourites;
}
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(m_database->execute("insert or ignore into favourites (video_id) values (?)", videoId), this, &Library::favouritesChanged);
connectFuture(addSong(videoId, title, artist, album), this, [=, this] {
connectFuture(m_database->execute("insert or ignore into favourites (video_id) values (?)", videoId), this, &Library::changeFavourites);
});
}
void Library::removeFavourite(const QString &videoId)
{
connectFuture(m_database->execute("delete from favourites where video_id = ?", videoId), this, &Library::favouritesChanged);
connectFuture(m_database->execute("delete from favourites where video_id = ?", videoId), this, &Library::changeFavourites);
}
FavouriteWatcher *Library::favouriteWatcher(const QString &videoId)
@@ -66,33 +83,65 @@ 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 m_searches;
}
void Library::addSearch(const QString &text)
{
m_searches->addSearch(text);
connectFuture(m_database->execute("insert into searches (search_query) values (?)", text), this, &Library::searchesChanged);
}
PlaybackHistoryModel *Library::playbackHistory()
void Library::addTemporarySearch(const QString &text)
{
auto future = m_database->getResults<PlayedSong>("select * from played_songs natural join songs");
return new PlaybackHistoryModel(std::move(future), this);
m_searches->addSearch(text);
Q_EMIT searchesChanged();
}
void Library::addPlaybackHistoryItem(const QString &videoId, const QString &title)
void Library::removeSearch(const QString &text) {
m_searches->removeSearch(text);
connectFuture(m_database->execute("delete from searches where search_query = ?", text), this, &Library::searchesChanged);
}
void Library::removeTemporarySearch(const QString& text)
{
connectFuture(addSong(videoId, title), this, [=, this] {
m_searches->removeSearch(text);
Q_EMIT searchesChanged();
}
PlaybackHistoryModel *Library::playbackHistory()
{
return m_playbackHistory;
}
void Library::addPlaybackHistoryItem(const QString &videoId, const QString &title, const QString &artist, const QString &album)
{
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);
connectFuture(m_database->execute("update played_songs set plays = plays + 1 where video_id = ? ", videoId), this, &Library::changePlaybackHistory);
});
});
}
void Library::removePlaybackHistoryItem(const QString &videoId)
{
connectFuture(m_database->execute("delete from played_songs where video_id = ?", videoId), this, &Library::changePlaybackHistory);
}
WasPlayedWatcher *Library::wasPlayedWatcher(const QString& videoId)
{
if(videoId.isEmpty()){
return nullptr;
}
return new WasPlayedWatcher(this, videoId);
}
PlaybackHistoryModel *Library::mostPlayed()
{
auto future = m_database->getResults<PlayedSong>("select * from played_songs natural join songs order by plays desc limit 10");
return new PlaybackHistoryModel(std::move(future), this);
return m_mostPlayed;
}
QNetworkAccessManager &Library::nam()
@@ -100,38 +149,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);
}
void ThumbnailSource::setVideoId(const QString &id) {
if (m_videoId == id) {
return;
}
m_videoId = id;
Q_EMIT videoIdChanged();
const QString cacheDir = QStandardPaths::writableLocation(QStandardPaths::CacheLocation) % QDir::separator() % "thumbnails";
QDir(cacheDir).mkpath(QStringLiteral("."));
const QString cacheLocation = cacheDir % QDir::separator() % id % ".webp";
if (QFile::exists(cacheLocation)) {
setCachedPath(QUrl::fromLocalFile(cacheLocation));
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));
});
});
// 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);
}
PlaybackHistoryModel::PlaybackHistoryModel(QFuture<std::vector<PlayedSong> > &&songs, QObject *parent)
@@ -148,7 +169,8 @@ QHash<int, QByteArray> PlaybackHistoryModel::roleNames() const {
return {
{Roles::VideoId, "videoId"},
{Roles::Title, "title"},
{Roles::Artist, "artist"},
{Roles::Artists, "artists"},
{Roles::ArtistsDisplayString, "artistsDisplayString"},
{Roles::Plays, "plays"}
};
}
@@ -163,7 +185,14 @@ QVariant PlaybackHistoryModel::data(const QModelIndex &index, int role) const {
return m_playedSongs.at(index.row()).videoId;
case Roles::Title:
return m_playedSongs.at(index.row()).title;
case Roles::Artist:
case Roles::Artists:
return QVariant::fromValue(std::vector<meta::Artist> {
{
m_playedSongs.at(index.row()).artist.toStdString(),
{}
}
});
case Roles::ArtistsDisplayString:
return m_playedSongs.at(index.row()).artist;
case Roles::Plays:
return m_playedSongs.at(index.row()).plays;
@@ -172,6 +201,12 @@ QVariant PlaybackHistoryModel::data(const QModelIndex &index, int role) const {
Q_UNREACHABLE();
}
std::vector<PlayedSong> PlaybackHistoryModel::getPlayedSong() const
{
return m_playedSongs;
}
FavouritesModel::FavouritesModel(QFuture<std::vector<Song>> &&songs, QObject *parent)
: QAbstractListModel(parent)
{
@@ -186,7 +221,8 @@ QHash<int, QByteArray> FavouritesModel::roleNames() const {
return {
{Roles::VideoId, "videoId"},
{Roles::Title, "title"},
{Roles::Artist, "artist"}
{Roles::Artists, "artists"},
{Roles::ArtistsDisplayString, "artistsDisplayString"}
};
}
@@ -200,20 +236,31 @@ QVariant FavouritesModel::data(const QModelIndex &index, int role) const {
return m_favouriteSongs.at(index.row()).videoId;
case Roles::Title:
return m_favouriteSongs.at(index.row()).title;
case Roles::Artist:
case Roles::ArtistsDisplayString:
return m_favouriteSongs.at(index.row()).artist;
case Roles::Artists:
return QVariant::fromValue(std::vector<meta::Artist> {
{
m_favouriteSongs.at(index.row()).artist.toStdString(),
{}
}
});
}
Q_UNREACHABLE();
}
std::vector<Song> FavouritesModel::getFavouriteSongs() const {
return m_favouriteSongs;
}
FavouriteWatcher::FavouriteWatcher(Library *library, const QString &videoId)
: QObject(library), m_videoId(videoId), m_library(library)
{
auto update = [this] {
connectFuture(m_library->database().getResult<SingleValue<int>>("select count(*) from favourites where video_id = ?", m_videoId), this, [this](auto count) {
connectFuture(m_library->database().getResult<SingleValue<bool>>("select count(*) > 0 from favourites where video_id = ?", m_videoId), this, [this](auto count) {
if (count) {
m_isFavourite = count->value > 0;
m_isFavourite = count->value;
Q_EMIT isFavouriteChanged();
}
});
@@ -240,11 +287,67 @@ int SearchHistoryModel::rowCount(const QModelIndex &parent) const {
return parent.isValid() ? 0 : m_history.size();
}
void SearchHistoryModel::removeSearch(const QString &search) {
int row = getRow(search);
beginRemoveRows({}, row, row);
m_history.erase(m_history.begin() + row);
endRemoveRows();
}
size_t SearchHistoryModel::getRow(const QString &search) const {
auto itr = find_if(m_history.begin(), m_history.end(), [&](const auto &checkedValue) {
return checkedValue.value == search;
});
size_t i = std::distance(m_history.begin(), itr);
Q_ASSERT(i < m_history.size());
return i;
}
QVariant SearchHistoryModel::data(const QModelIndex &index, int role) const {
switch (role) {
case Qt::DisplayRole:
return m_history[index.row()].value;
case Qt::DisplayRole:
return m_history[index.row()].value;
}
Q_UNREACHABLE();
}
void SearchHistoryModel::addSearch(const QString& search) {
auto itr = find_if(m_history.begin(), m_history.end(), [&](const auto &checkedValue) {
return checkedValue.value == search;
});
if(itr == m_history.end()) {
beginInsertRows({}, 0, 0);
m_history.insert(m_history.begin(), {search});
endInsertRows();
}
}
WasPlayedWatcher::WasPlayedWatcher(Library* library, const QString& videoId)
: QObject(library), m_videoId(videoId), m_library(library)
{
connect(m_library, &Library::playbackHistoryChanged, this, &WasPlayedWatcher::query);
query();
}
void WasPlayedWatcher::query()
{
connectFuture(m_library->database().getResult<SingleValue<bool>>("select count(*) > 0 from played_songs where video_id = ?", m_videoId), this, &WasPlayedWatcher::update);
}
bool WasPlayedWatcher::wasPlayed() const
{
return m_wasPlayed;
}
void WasPlayedWatcher::update(std::optional<SingleValue<bool>> result)
{
if(result.has_value())
{
m_wasPlayed = result->value;
Q_EMIT wasPlayedChanged();
}
}
+50 -34
View File
@@ -8,6 +8,7 @@
#include <QQuickAsyncImageProvider>
#include <QNetworkAccessManager>
#include <QAbstractListModel>
#include <QSortFilterProxyModel>
#include <memory>
@@ -15,6 +16,7 @@
#include "asyncdatabase.h"
class FavouriteWatcher;
class WasPlayedWatcher;
struct Song {
using ColumnTypes = std::tuple<QString, QString, QString, QString>;
@@ -36,7 +38,8 @@ class FavouritesModel : public QAbstractListModel {
enum Roles {
VideoId = Qt::UserRole + 1,
Title,
Artist,
Artists,
ArtistsDisplayString
};
public:
@@ -45,6 +48,7 @@ public:
QHash<int, QByteArray> roleNames() const override;
int rowCount(const QModelIndex &parent) const override;
QVariant data(const QModelIndex &index, int role) const override;
std::vector<Song> getFavouriteSongs() const;
private:
std::vector<Song> m_favouriteSongs;
@@ -68,19 +72,22 @@ struct PlayedSong {
class PlaybackHistoryModel : public QAbstractListModel {
Q_OBJECT
public:
enum Roles {
VideoId = Qt::UserRole + 1,
Title,
Artist,
Artists,
ArtistsDisplayString,
Plays
};
Q_ENUM(Roles);
public:
PlaybackHistoryModel(QFuture<std::vector<PlayedSong>> &&songs, QObject *parent = nullptr);
QHash<int, QByteArray> roleNames() const override;
int rowCount(const QModelIndex &parent) const override;
QVariant data(const QModelIndex &index, int role) const override;
std::vector<PlayedSong> getPlayedSong() const;
private:
std::vector<PlayedSong> m_playedSongs;
@@ -92,9 +99,12 @@ class SearchHistoryModel : public QAbstractListModel {
public:
SearchHistoryModel(QFuture<std::vector<SingleValue<QString>>> &&historyFuture, QObject *parent = nullptr);
int rowCount(const QModelIndex &parent) const override;
void removeSearch(const QString &search);
QVariant data(const QModelIndex &index, int role) const override;
void addSearch(QString const& search);
private:
size_t getRow(QString const &search) const;
std::vector<SingleValue<QString>> m_history;
};
@@ -102,7 +112,7 @@ class Library : public QObject
{
Q_OBJECT
Q_PROPERTY(QAbstractListModel *favourites READ favourites NOTIFY favouritesChanged)
Q_PROPERTY(QAbstractListModel *searches READ searches NOTIFY searchesChanged)
Q_PROPERTY(QAbstractListModel *searches READ searches CONSTANT)
Q_PROPERTY(QAbstractListModel *playbackHistory READ playbackHistory NOTIFY playbackHistoryChanged)
Q_PROPERTY(QAbstractListModel *mostPlayed READ mostPlayed NOTIFY playbackHistoryChanged)
@@ -114,17 +124,26 @@ public:
FavouritesModel *favourites();
Q_SIGNAL void favouritesChanged();
Q_INVOKABLE void addFavourite(const QString &videoId, const QString &title);
Q_SIGNAL void changeFavourites();
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);
SearchHistoryModel *searches();
Q_SIGNAL void searchesChanged();
Q_INVOKABLE void addSearch(const QString &text);
Q_INVOKABLE void addTemporarySearch(const QString &text);
Q_INVOKABLE void removeSearch(const QString &text);
Q_INVOKABLE void removeTemporarySearch(const QString &text);
PlaybackHistoryModel *playbackHistory();
Q_SIGNAL void playbackHistoryChanged();
Q_INVOKABLE void addPlaybackHistoryItem(const QString &videoId, const QString &title);
Q_SIGNAL void changePlaybackHistory();
Q_INVOKABLE void addPlaybackHistoryItem(const QString &videoId, const QString &title, const QString &artist, const QString &album);
Q_INVOKABLE void removePlaybackHistoryItem(const QString &videoId);
Q_INVOKABLE WasPlayedWatcher *wasPlayedWatcher(const QString &videoId);
Q_SIGNAL void playlistsChanged();
PlaybackHistoryModel *mostPlayed();
@@ -132,39 +151,16 @@ public:
ThreadedDatabase &database() {
return *m_database;
}
QFuture<void> addSong(const QString &videoId, const QString &title, const QString &artist, const QString &album);
private:
QFuture<void> addSong(const QString &videoId, const QString &title);
QNetworkAccessManager m_networkImageCacher;
std::unique_ptr<ThreadedDatabase> m_database;
};
class ThumbnailSource : public QObject {
Q_OBJECT
Q_PROPERTY(QString videoId READ videoId WRITE setVideoId NOTIFY videoIdChanged)
Q_PROPERTY(QUrl cachedPath READ cachedPath NOTIFY cachedPathChanged)
QString videoId() const {
return m_videoId;
}
void setVideoId(const QString &id);
Q_SIGNAL void videoIdChanged();
QUrl cachedPath() const {
return m_cachedPath;
}
void setCachedPath(const QUrl &path) {
m_cachedPath = path;
cachedPathChanged();
}
Q_SIGNAL void cachedPathChanged();
private:
QString m_videoId;
QUrl m_cachedPath;
SearchHistoryModel *m_searches;
FavouritesModel *m_favourites;
PlaybackHistoryModel *m_mostPlayed;
PlaybackHistoryModel *m_playbackHistory;
};
class FavouriteWatcher : public QObject {
@@ -185,3 +181,23 @@ private:
Library *m_library;
bool m_isFavourite = false;
};
class WasPlayedWatcher : public QObject {
Q_OBJECT
Q_PROPERTY(bool wasPlayed READ wasPlayed NOTIFY wasPlayedChanged)
public:
WasPlayedWatcher(Library *Library, const QString &VideoId);
bool wasPlayed() const;
Q_SIGNAL void wasPlayedChanged();
private:
bool m_wasPlayed = false;
QString m_videoId;
Library *m_library;
Q_SLOT void update(std::optional<SingleValue<bool>> result);
Q_SLOT void query();
};
+89
View File
@@ -0,0 +1,89 @@
// SPDX-FileCopyrightText: 2022 Jonah Brüchert <[email protected]>
//
// SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
#include "localplaylistmodel.h"
#include "library.h"
LocalPlaylistModel::LocalPlaylistModel(QObject *parent)
: QAbstractListModel(parent)
{
connect(this, &LocalPlaylistModel::playlistIdChanged,
this, &LocalPlaylistModel::refreshModel);
connect(this, &LocalPlaylistModel::playlistIdChanged,
this, &LocalPlaylistModel::refreshModel);
}
int LocalPlaylistModel::rowCount(const QModelIndex &index) const
{
return index.isValid() ? 0 : m_entries.size();
}
QHash<int, QByteArray> LocalPlaylistModel::roleNames() const
{
return {
{ Roles::VideoId, "videoId" },
{ Roles::Title, "title" },
{ Roles::Artists, "artists"},
{ Roles::ArtistsDisplayString, "artistsDisplayString"}
};
}
QVariant LocalPlaylistModel::data(const QModelIndex &index, int role) const
{
switch (role) {
case Roles::Title:
return m_entries[index.row()].title;
case Roles::VideoId:
return m_entries[index.row()].videoId;
case Roles::Artists:
return QVariant::fromValue(std::vector<meta::Artist> {
{
m_entries.at(index.row()).artists.toStdString(),
{}
}
});
case Roles::ArtistsDisplayString:
return m_entries.at(index.row()).artists;
}
Q_UNREACHABLE();
}
QString LocalPlaylistModel::playlistId() const
{
return m_playlistId;
}
void LocalPlaylistModel::setPlaylistId(const QString &playlistId)
{
m_playlistId = playlistId;
Q_EMIT playlistIdChanged();
}
void LocalPlaylistModel::refreshModel()
{
auto future = Library::instance()
.database()
.getResults<PlaylistEntry>(
"select video_id, title, artist, album from "
"playlist_entries natural join songs where playlist_id = ?", m_playlistId);
connectFuture(future, this, [this](auto entries) {
beginResetModel();
m_entries = entries;
endResetModel();
});
}
const std::vector<PlaylistEntry> &LocalPlaylistModel::entries() const
{
return m_entries;
}
void LocalPlaylistModel::removeSong(QString videoId, qint64 playlistId)
{
connectFuture(Library::instance().database().execute("delete from playlist_entries where playlist_id = ? and video_id = ?", playlistId, videoId), this, &LocalPlaylistModel::refreshModel);
}
+55
View File
@@ -0,0 +1,55 @@
// SPDX-FileCopyrightText: 2022 Jonah Brüchert <[email protected]>
//
// SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
#pragma once
#include <QAbstractListModel>
#include <vector>
struct PlaylistEntry {
using ColumnTypes = std::tuple<QString, QString, QString, QString>;
static PlaylistEntry fromSql(ColumnTypes tuple) {
auto [videoId, title, artists, album] = tuple;
return PlaylistEntry { videoId, title, artists, album };
}
QString videoId;
QString title;
QString artists;
QString album;
};
class LocalPlaylistModel : public QAbstractListModel
{
Q_OBJECT
Q_PROPERTY(QString playlistId READ playlistId WRITE setPlaylistId NOTIFY playlistIdChanged)
enum Roles {
VideoId = Qt::UserRole + 1,
Title,
Artists,
ArtistsDisplayString
};
public:
LocalPlaylistModel(QObject *parent = nullptr);
int rowCount(const QModelIndex &index) const override;
QHash<int, QByteArray> roleNames() const override;
QVariant data(const QModelIndex &index, int role) const override;
QString playlistId() const;
void setPlaylistId(const QString &playlistId);
Q_SIGNAL void playlistIdChanged();
Q_INVOKABLE void removeSong(QString videoId, qint64 playlistId);
void refreshModel();
const std::vector<PlaylistEntry> &entries() const;
private:
QString m_playlistId;
std::vector<PlaylistEntry> m_entries;
};
+93
View File
@@ -0,0 +1,93 @@
// SPDX-FileCopyrightText: 2022 Jonah Brüchert <[email protected]>
//
// SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
#include "localplaylistsmodel.h"
#include "library.h"
Q_DECLARE_METATYPE(std::vector<QString>);
LocalPlaylistsModel::LocalPlaylistsModel(QObject *parent)
: QAbstractListModel(parent)
{
connect(&Library::instance(), &Library::playlistsChanged,
this, &LocalPlaylistsModel::refreshModel);
refreshModel();
}
int LocalPlaylistsModel::rowCount(const QModelIndex &index) const
{
return index.isValid() ? 0 : m_playlists.size();
}
QHash<int, QByteArray> LocalPlaylistsModel::roleNames() const
{
return {
{Roles::PlaylistId, "playlistId"},
{Roles::Title, "title"},
{Roles::Description, "description"},
{Roles::CreatedOn, "createdOn"},
{Roles::ThumbnailIds, "thumbnailIds"},
};
}
QVariant LocalPlaylistsModel::data(const QModelIndex &index, int role) const
{
switch (role) {
case Roles::PlaylistId:
return m_playlists[index.row()].playlistId;
case Roles::Title:
return m_playlists[index.row()].title;
case Roles::Description:
return m_playlists[index.row()].description;
case Roles::CreatedOn:
return m_playlists[index.row()].createdOn;
case Roles::ThumbnailIds:
return QVariant::fromValue(m_thumbnailIds.at(index.row()));
}
Q_UNREACHABLE();
}
void LocalPlaylistsModel::refreshModel()
{
connectFuture(Library::instance().database().getResults<Playlist>("select * from playlists"), this, [this](const auto &&playlists) {
qDebug() << "number of playlists" << playlists.size();
m_thumbnailIds.resize(playlists.size());
for (size_t i = 0; i < playlists.size(); i++) {
auto future = Library::instance().database().getResults<SingleValue<QString>>("select video_id from playlist_entries where playlist_id = ? order by random() limit 4", playlists.at(i).playlistId);
connectFuture(future, this, [this, playlists, i](auto &&ids) {
std::ranges::transform(ids, std::back_inserter(m_thumbnailIds[i]), [](auto &&id) { return id.value; });
dataChanged(index(i), index(i), {Roles::ThumbnailIds});
});
}
beginResetModel();
m_playlists = playlists;
endResetModel();
});
}
void LocalPlaylistsModel::addPlaylist(const QString &title, const QString &description)
{
connectFuture(Library::instance().database().execute("insert into playlists (title, description) values (?, ?)", title, description), &Library::instance(), &Library::playlistsChanged);
}
void LocalPlaylistsModel::addPlaylistEntry(qint64 playlistId, const QString &videoId, const QString &title, const QString &artist, const QString &album)
{
connectFuture(Library::instance().addSong(videoId, title, artist, album), this, [=, this] {
connectFuture(Library::instance().database().execute("insert into playlist_entries (playlist_id, video_id) values (?, ?)", playlistId, videoId), this, [=, this] {
Q_EMIT playlistEntriesChanged(playlistId);
});
});
}
void LocalPlaylistsModel::renamePlaylist(qint64 playlistId, const QString &name, const QString &description)
{
connectFuture(Library::instance().database().execute("update playlists set title = ? , description = ? where playlist_id = ?", name, description, playlistId), this, &LocalPlaylistsModel::refreshModel);
}
void LocalPlaylistsModel::deletePlaylist(qint64 playlistId)
{
connectFuture(Library::instance().database().execute("delete from playlists where playlist_id = ?", playlistId), this, &LocalPlaylistsModel::refreshModel);
}
+61
View File
@@ -0,0 +1,61 @@
// SPDX-FileCopyrightText: 2022 Jonah Brüchert <[email protected]>
//
// SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
#pragma once
#include <QAbstractListModel>
#include <QDateTime>
#include <asyncdatabase.h>
struct Playlist {
using ColumnTypes = std::tuple<qint64, QString, QString, QDateTime>;
Playlist static fromSql(ColumnTypes tuple) {
auto [playlistId, title, description, createdOn] = tuple;
return Playlist { playlistId, title, description, createdOn };
}
qint64 playlistId;
QString title;
QString description;
QDateTime createdOn;
};
class LocalPlaylistsModel : public QAbstractListModel
{
Q_OBJECT
enum Roles {
PlaylistId,
Title,
Description,
CreatedOn,
ThumbnailIds
};
public:
LocalPlaylistsModel(QObject *parent = nullptr);
int rowCount(const QModelIndex &index) const override;
QHash<int, QByteArray> roleNames() const override;
QVariant data(const QModelIndex &index, int role) const override;
Q_INVOKABLE void addPlaylist(const QString &title, const QString &description);
Q_INVOKABLE void addPlaylistEntry(qint64 playlistId, const QString &videoId, const QString &title, const QString &artist, const QString &album);
Q_INVOKABLE void renamePlaylist(qint64 playlistId, const QString &name, const QString &description);
Q_INVOKABLE void deletePlaylist(qint64 playlistId);
Q_SIGNAL void playlistEntriesChanged(quint64 playlistId);
void refreshModel();
private:
std::vector<Playlist> m_playlists;
std::vector<std::vector<QString>> m_thumbnailIds;
};
+54 -1
View File
@@ -5,12 +5,19 @@
#include <QApplication>
#include <QQmlApplicationEngine>
#include <QtQml>
#include <QSortFilterProxyModel>
#include <QUrl>
#include <QQuickWindow>
#include <QQuickStyle>
#include <QStyle>
#include <QStyleFactory>
#include <KLocalizedContext>
#include <KLocalizedString>
#include <KCrash>
#include <KAboutData>
#include "clipboard.h"
#include "searchmodel.h"
#include "albummodel.h"
#include "videoinfoextractor.h"
@@ -20,6 +27,10 @@
#include "playlistmodel.h"
#include "playerutils.h"
#include "library.h"
#include "thumbnailsource.h"
#include "blur.h"
#include "localplaylistmodel.h"
#include "localplaylistsmodel.h"
#include "asyncdatabase.h"
@@ -29,13 +40,40 @@ Q_DECL_EXPORT int main(int argc, char *argv[])
{
QGuiApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
QApplication app(argc, argv);
// set default style and icon theme
QIcon::setFallbackThemeName(QStringLiteral("breeze"));
if (qEnvironmentVariableIsEmpty("QT_QUICK_CONTROLS_STYLE") && QQuickStyle::name().isEmpty()) {
QQuickStyle::setStyle(QStringLiteral("org.kde.desktop"));
QApplication::setStyle(QStyleFactory::create(QStringLiteral("Breeze")));
}
QCoreApplication::setOrganizationName(QStringLiteral("KDE"));
QCoreApplication::setOrganizationDomain(QStringLiteral("kde.org"));
QCoreApplication::setApplicationName(QStringLiteral("audiotube"));
KLocalizedString::setApplicationDomain("audiotube");
KAboutData::setApplicationData(KAboutData(QStringLiteral("audiotube"), QStringLiteral("AudioTube")));
KAboutData about(QStringLiteral("audiotube"),
i18n("AudioTube"),
QStringLiteral(AUDIOTUBE_VERSION_STRING),
i18n("YouTube Music Player"),
KAboutLicense::GPL_V3,
i18n("© 2021-2023 Jonah Brüchert, 2021-2023 KDE Community"));
about.addAuthor(i18n("Jonah Brüchert"), i18n("Maintainer"), QStringLiteral("[email protected]"));
about.addAuthor(i18n("Mathis Brüchert"), i18n("Designer"), QStringLiteral("[email protected]"));
about.setTranslator(i18nc("NAME OF TRANSLATORS", "Your names"), i18nc("EMAIL OF TRANSLATORS", "Your emails"));
about.setOrganizationDomain("kde.org");
about.setBugAddress("https://bugs.kde.org/describecomponents.cgi?product=audiotube");
auto future = YTMusicThread::instance()->version();
connectFuture(future, &app, [&about](const auto &version) {
about.addComponent(QStringLiteral("ytmusicapi"), i18n("Unofficial API for YouTube Music"), version);
KAboutData::setApplicationData(about);
});
QGuiApplication::setWindowIcon(QIcon::fromTheme(QStringLiteral("org.kde.audiotube")));
KCrash::initialize();
QQmlApplicationEngine engine;
@@ -45,18 +83,33 @@ 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");
qmlRegisterType<Blur>(URI, 1, 0, "Blur");
qmlRegisterType<LocalPlaylistModel>(URI, 1, 0, "LocalPlaylistModel");
qmlRegisterType<LocalPlaylistsModel>(URI, 1, 0, "LocalPlaylistsModel");
qmlRegisterSingletonType(URI, 1, 0, "About", [](QQmlEngine *engine, QJSEngine *) -> QJSValue {
return engine->toScriptValue(KAboutData::applicationData());
});
qmlRegisterSingletonType<UserPlaylistModel>(URI, 1, 0, "UserPlaylistModel", [](QQmlEngine *, QJSEngine *) {
return new UserPlaylistModel();
});
qmlRegisterSingletonType<ErrorHandler>(URI, 1, 0, "ErrorHandler", [](QQmlEngine *, QJSEngine *) {
return new ErrorHandler();
});
qmlRegisterSingletonType<PlayerUtils>(URI, 1, 0, "PlayerUtils", [](QQmlEngine *, QJSEngine *) {
return new PlayerUtils();
});
qmlRegisterSingletonType<Clipboard>(URI, 1, 0, "Clipboard", [](QQmlEngine *, QJSEngine *) {
return new Clipboard();
});
qmlRegisterSingletonInstance<Library>(URI, 1, 0, "Library", &Library::instance());
qmlRegisterType<ThumbnailSource>(URI, 1, 0, "ThumbnailSource");
qmlRegisterAnonymousType<FavouriteWatcher>(URI, 1);
qmlRegisterAnonymousType<WasPlayedWatcher>(URI, 1);
engine.rootContext()->setContextObject(new KLocalizedContext(&engine));
engine.load(QUrl(QStringLiteral("qrc:///main.qml")));
@@ -0,0 +1,6 @@
-- SPDX-FileCopyrightText: 2022 Jonah Brüchert <[email protected]>
--
-- SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
drop table playlists;
drop table playlist_entries;
@@ -0,0 +1,18 @@
-- SPDX-FileCopyrightText: 2022 Jonah Brüchert <[email protected]>
--
-- SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
create table playlists (
playlist_id Integer primary key autoincrement not null,
title Text not null,
description Text,
created_on Timestamp not null default current_timestamp
);
create table playlist_entries (
playlist_id Integer not null,
video_id Text not null,
primary key (playlist_id, video_id)
foreign key (video_id) references songs(video_id),
foreign key (playlist_id) references playlists(playlist_id)
);
Loaded 100 of 115 files, more files were not shown because too many files have changed in this diff. Show more