Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3952f804c5 | ||
|
|
a1781e7c04 | ||
|
|
bff8b82692 | ||
|
|
ca16913330 |
No files matched your search
@@ -10,9 +10,3 @@ build/
|
||||
compile_commands.json
|
||||
.cache
|
||||
.qmlls.ini
|
||||
|
||||
# makepkg output
|
||||
/packaging/arch/src/
|
||||
/packaging/arch/pkg/
|
||||
/packaging/arch/audiotube/
|
||||
/packaging/arch/*.pkg.tar.*
|
||||
@@ -23,8 +23,3 @@ Files: logo.png
|
||||
org.kde.audiotube.svg
|
||||
Copyright: 2021 Mathis Brüchert <[email protected]>
|
||||
License: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
|
||||
|
||||
Files: src/resources/cast-symbolic.svg
|
||||
src/resources/org.kde.audiotube-symbolic.svg
|
||||
Copyright: 2026 AudioTube contributors
|
||||
License: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
|
||||
+5
-6
@@ -6,8 +6,8 @@ cmake_minimum_required(VERSION 3.16.0)
|
||||
|
||||
# KDE Applications version, managed by release script.
|
||||
set(RELEASE_SERVICE_VERSION_MAJOR "26")
|
||||
set(RELEASE_SERVICE_VERSION_MINOR "11")
|
||||
set(RELEASE_SERVICE_VERSION_MICRO "70")
|
||||
set(RELEASE_SERVICE_VERSION_MINOR "07")
|
||||
set(RELEASE_SERVICE_VERSION_MICRO "80")
|
||||
set(RELEASE_SERVICE_VERSION "${RELEASE_SERVICE_VERSION_MAJOR}.${RELEASE_SERVICE_VERSION_MINOR}.${RELEASE_SERVICE_VERSION_MICRO}")
|
||||
|
||||
project(audiotube VERSION ${RELEASE_SERVICE_VERSION})
|
||||
@@ -40,14 +40,14 @@ ecm_setup_version(${PROJECT_VERSION}
|
||||
|
||||
kde_enable_exceptions()
|
||||
|
||||
find_package(Qt6 ${QT_MIN_VERSION} REQUIRED COMPONENTS Core Gui Qml QuickControls2 Svg Sql Widgets Multimedia Concurrent DBus Network)
|
||||
find_package(KF6 REQUIRED COMPONENTS Kirigami I18n CoreAddons Crash WindowSystem IconThemes Config StatusNotifierItem)
|
||||
find_package(Qt6 ${QT_MIN_VERSION} REQUIRED COMPONENTS Core Gui Qml QuickControls2 Svg Sql Widgets Multimedia Concurrent DBus)
|
||||
find_package(KF6 REQUIRED COMPONENTS Kirigami I18n CoreAddons Crash WindowSystem IconThemes Config)
|
||||
find_package(Python3 COMPONENTS Development.Embed REQUIRED)
|
||||
set(PYBIND11_FINDPYTHON ON)
|
||||
find_package(pybind11 REQUIRED)
|
||||
find_package(Ytdlp REQUIRED RUNTIME)
|
||||
find_package(YTMusicAPI 1.10.2 REQUIRED RUNTIME)
|
||||
find_package(KF6KirigamiAddons 1.12.0 REQUIRED)
|
||||
find_package(KF6KirigamiAddons 0.11.0 REQUIRED)
|
||||
find_package(FutureSQL6 REQUIRED)
|
||||
find_package(QCoro6 0.10.0 REQUIRED COMPONENTS Core)
|
||||
|
||||
@@ -62,6 +62,5 @@ add_subdirectory(src)
|
||||
install(PROGRAMS org.kde.audiotube.desktop DESTINATION ${KDE_INSTALL_APPDIR})
|
||||
install(FILES org.kde.audiotube.appdata.xml DESTINATION ${KDE_INSTALL_METAINFODIR})
|
||||
install(FILES org.kde.audiotube.svg DESTINATION ${KDE_INSTALL_FULL_ICONDIR}/hicolor/scalable/apps)
|
||||
install(FILES src/resources/org.kde.audiotube-symbolic.svg DESTINATION ${KDE_INSTALL_FULL_ICONDIR}/hicolor/symbolic/apps)
|
||||
|
||||
feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES)
|
||||
+4
-4
@@ -7,8 +7,8 @@
|
||||
"sources": [
|
||||
{
|
||||
"type": "archive",
|
||||
"url": "https://github.com/denoland/deno/releases/download/v2.9.5/deno-x86_64-unknown-linux-gnu.zip",
|
||||
"sha256": "8b010a3b1a4a0188a67cdb8a7a27348b2a501af78aec7fc74f2ace167368d530",
|
||||
"url": "https://github.com/denoland/deno/releases/download/v2.7.2/deno-x86_64-unknown-linux-gnu.zip",
|
||||
"sha256": "bc3af4d1bedd7893664b925c0f39fb08f7b12242e57ed4acdc0cf64540b4449c",
|
||||
"x-checker-data": {
|
||||
"type": "json",
|
||||
"url": "https://api.github.com/repos/denoland/deno/releases/latest",
|
||||
@@ -21,8 +21,8 @@
|
||||
},
|
||||
{
|
||||
"type": "archive",
|
||||
"url": "https://github.com/denoland/deno/releases/download/v2.9.5/deno-aarch64-unknown-linux-gnu.zip",
|
||||
"sha256": "6b7cae3a8fc4385a59dea3146fcb8bad7fea4230e0ad36a8c692afacbc254be0",
|
||||
"url": "https://github.com/denoland/deno/releases/download/v2.7.2/deno-aarch64-unknown-linux-gnu.zip",
|
||||
"sha256": "c36c0b284d084dfe7045a106e60bd98d919183fd69d7902a42f3c7a244bf4386",
|
||||
"x-checker-data": {
|
||||
"type": "json",
|
||||
"url": "https://api.github.com/repos/denoland/deno/releases/latest",
|
||||
|
||||
@@ -7,18 +7,18 @@
|
||||
"sources": [
|
||||
{
|
||||
"type": "file",
|
||||
"url": "https://files.pythonhosted.org/packages/0b/a7/71ac2cff56fec219ed242bb11b8efb69fcc4bec75db06fb7bfe35de520e6/certifi-2026.7.22-py3-none-any.whl",
|
||||
"sha256": "62f22742b58a1a33014a2b6b706588a8d7e2a88ae7bd1a6ebe8c992928483775"
|
||||
"url": "https://files.pythonhosted.org/packages/59/8c/57e832b7af6d7c5abe66eb3fbe3a3a32f4d11ea23a1aa7131371035be991/certifi-2026.5.20-py3-none-any.whl",
|
||||
"sha256": "3c52e209ba0a4ad7aebe60436a4ab349c39e1e602e8c134221e546902ad25897"
|
||||
},
|
||||
{
|
||||
"type": "file",
|
||||
"url": "https://files.pythonhosted.org/packages/cc/61/d01fc49b8dea277640b55a9e15960dbca9fdc8c9fde18e572d39c59f4019/charset_normalizer-3.5.1-py3-none-any.whl",
|
||||
"sha256": "6df0ec430f9a831772c23ca5a224cba36517a58a84bb32c32bb59a9fa67c47f6"
|
||||
"url": "https://files.pythonhosted.org/packages/db/8f/61959034484a4a7c527811f4721e75d02d653a35afb0b6054474d8185d4c/charset_normalizer-3.4.7-py3-none-any.whl",
|
||||
"sha256": "3dce51d0f5e7951f8bb4900c257dad282f49190fdbebecd4ba99bcc41fef404d"
|
||||
},
|
||||
{
|
||||
"type": "file",
|
||||
"url": "https://files.pythonhosted.org/packages/57/b0/0e52c878c53f245edd3a11020f20979b3f490f245af532c7cae3027754b5/idna-3.19-py3-none-any.whl",
|
||||
"sha256": "815e7be7a7806d54abb586dc943addc79e8b2ee16915059658cbeff4b1b43bf4"
|
||||
"url": "https://files.pythonhosted.org/packages/1e/5e/d4e9f1a599fb8e573b7b87160658329fbf28d19eac2718f51fc3def3aa5a/idna-3.18-py3-none-any.whl",
|
||||
"sha256": "7f952cbe720b688055e3f87de14f5c3e5fdaa8bc3928985c4077ca689de849a2"
|
||||
},
|
||||
{
|
||||
"type": "file",
|
||||
@@ -27,13 +27,13 @@
|
||||
},
|
||||
{
|
||||
"type": "file",
|
||||
"url": "https://files.pythonhosted.org/packages/92/9d/c4e665119135114480843e7ab388fa94d8480650450e6f8e26b70d323a4c/urllib3-2.8.0-py3-none-any.whl",
|
||||
"sha256": "0cf3cae568d36aa9576b28dfb35f11328f1cb974ca7647d9475ebb86c75ac6e3"
|
||||
"url": "https://files.pythonhosted.org/packages/7f/3e/5db95bcf282c52709639744ca2a8b149baccf648e39c8cc87553df9eae0c/urllib3-2.7.0-py3-none-any.whl",
|
||||
"sha256": "9fb4c81ebbb1ce9531cce37674bbc6f1360472bc18ca9a553ede278ef7276897"
|
||||
},
|
||||
{
|
||||
"type": "file",
|
||||
"url": "https://files.pythonhosted.org/packages/29/ad/6d471ea9d81e1f59a4d01badda21e7f3f508b94ed171c677b6547b292f73/ytmusicapi-1.12.3-py3-none-any.whl",
|
||||
"sha256": "f65db840907a43ca23b29bd563951a1e390fbe2089d7aa4ddbe2043824b2acd9"
|
||||
"url": "https://files.pythonhosted.org/packages/53/6d/f7156e7ab9953d09e14ef538de4e92c484169fac19d207b19b9d9eb9c845/ytmusicapi-1.12.1-py3-none-any.whl",
|
||||
"sha256": "2a53f6df504b97b93a4d41c804b699b46190207cb9d864fcf4edeb338b1f15d9"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -45,6 +45,7 @@ SPDX-License-Identifier: CC0-1.0
|
||||
<name xml:lang="sl">AudioTube</name>
|
||||
<name xml:lang="sv">AudioTube</name>
|
||||
<name xml:lang="tr">AudioTube</name>
|
||||
<name xml:lang="ug">AudioTube</name>
|
||||
<name xml:lang="uk">AudioTube</name>
|
||||
<name xml:lang="zh-CN">AudioTube</name>
|
||||
<name xml:lang="zh-TW">AudioTube</name>
|
||||
@@ -94,9 +95,6 @@ SPDX-License-Identifier: CC0-1.0
|
||||
<name translate="no">KDE</name>
|
||||
</developer>
|
||||
<releases>
|
||||
<release version="26.08.2" date="2026-10-08"/>
|
||||
<release version="26.08.1" date="2026-09-10"/>
|
||||
<release version="26.08.0" date="2026-08-20"/>
|
||||
<release version="26.04.3" date="2026-07-02"/>
|
||||
<release version="26.04.2" date="2026-06-04"/>
|
||||
<release version="26.04.1" date="2026-05-07"/>
|
||||
|
||||
@@ -38,6 +38,7 @@ Name[sk]=AudioTube
|
||||
Name[sl]=AudioTube
|
||||
Name[sv]=AudioTube
|
||||
Name[tr]=AudioTube
|
||||
Name[ug]=AudioTube
|
||||
Name[uk]=AudioTube
|
||||
Name[zh_CN]=AudioTube
|
||||
Name[zh_TW]=AudioTube
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"id": "org.kde.audiotube",
|
||||
"runtime": "org.kde.Platform",
|
||||
"runtime-version": "6.11",
|
||||
"runtime-version": "6.10",
|
||||
"sdk": "org.kde.Sdk",
|
||||
"command": "audiotube",
|
||||
"tags": [
|
||||
@@ -11,8 +11,6 @@
|
||||
"finish-args": [
|
||||
"--device=dri",
|
||||
"--own-name=org.mpris.MediaPlayer2.AudioTube",
|
||||
"--own-name=org.kde.StatusNotifierItem-2-*",
|
||||
"--talk-name=org.kde.StatusNotifierWatcher",
|
||||
"--share=ipc",
|
||||
"--share=network",
|
||||
"--socket=fallback-x11",
|
||||
@@ -36,8 +34,8 @@
|
||||
"sources": [
|
||||
{
|
||||
"type": "file",
|
||||
"url": "https://files.pythonhosted.org/packages/69/b2/8cd1613f56eed7ceb64fbd4df3f1c01246bfb098e6f398228bafda22b80b/yt_dlp-2026.8.19-py3-none-any.whl",
|
||||
"sha256": "1d57897e94c6665a0a6f9bc54b34e584284e32c034ffab3a7df25d8f7b24eedf",
|
||||
"url": "https://files.pythonhosted.org/packages/f3/ee/188a3dadf9dfdac713243521f919feca1cd091d4358c9ea7e8ebb710a7cc/yt_dlp-2026.6.9-py3-none-any.whl",
|
||||
"sha256": "442ba4c75724b9496144c8434b617962ee08d0ee7c26ec663848fe9b78d5a3e4",
|
||||
"x-checker-data": {
|
||||
"type": "pypi",
|
||||
"name": "yt-dlp",
|
||||
@@ -79,8 +77,8 @@
|
||||
"sources": [
|
||||
{
|
||||
"type": "archive",
|
||||
"url": "https://github.com/pybind/pybind11/archive/refs/tags/v3.1.0.tar.gz",
|
||||
"sha256": "ef712655692a2e9bf7bb7874c022564a45f91d847ddee987e720cd9e28849665",
|
||||
"url": "https://github.com/pybind/pybind11/archive/refs/tags/v3.0.4.tar.gz",
|
||||
"sha256": "74b6a2c2b4573a400cafb6ecbf60c98df300cd3d0041296b913d02b2cbbb2676",
|
||||
"x-checker-data": {
|
||||
"type": "anitya",
|
||||
"project-id": 13384,
|
||||
|
||||
@@ -1,78 +0,0 @@
|
||||
# SPDX-License-Identifier: CC0-1.0
|
||||
#
|
||||
# Builds AudioTube from the git repository, including the system tray icon and Google Cast support:
|
||||
#
|
||||
# git clone https://git.salastil.com/Salastil/audiotube.git
|
||||
# cd audiotube/packaging/arch
|
||||
# makepkg -si
|
||||
|
||||
pkgname=audiotube-git
|
||||
pkgver=26.11.70.r0.g0000000
|
||||
pkgrel=1
|
||||
pkgdesc='Client for YouTube Music (git version with system tray and Google Cast)'
|
||||
arch=('x86_64' 'aarch64')
|
||||
url='https://git.salastil.com/Salastil/audiotube'
|
||||
license=('GPL-2.0-or-later' 'LGPL-2.0-or-later')
|
||||
depends=(
|
||||
'futuresql'
|
||||
'glibc'
|
||||
'gst-plugins-bad'
|
||||
'gst-plugins-good'
|
||||
'kconfig'
|
||||
'kcoreaddons'
|
||||
'kcrash'
|
||||
'ki18n'
|
||||
'kiconthemes'
|
||||
'kirigami'
|
||||
'kirigami-addons'
|
||||
'kstatusnotifieritem'
|
||||
'kwindowsystem'
|
||||
'libgcc'
|
||||
'libstdc++'
|
||||
'purpose'
|
||||
'python'
|
||||
'python-ytmusicapi'
|
||||
'qcoro'
|
||||
'qt6-base'
|
||||
'qt6-declarative'
|
||||
'qt6-imageformats'
|
||||
'qt6-multimedia'
|
||||
'qt6-multimedia-gstreamer'
|
||||
'qt6-svg'
|
||||
'yt-dlp'
|
||||
)
|
||||
makedepends=(
|
||||
'cmake'
|
||||
'extra-cmake-modules'
|
||||
'git'
|
||||
'ninja'
|
||||
'pybind11'
|
||||
)
|
||||
optdepends=(
|
||||
'deno: JavaScript runtime that yt-dlp may need to extract some streams'
|
||||
'qt6ct: Qt theme configuration, used for the application palette outside of Plasma'
|
||||
)
|
||||
provides=("${pkgname%-git}")
|
||||
conflicts=("${pkgname%-git}")
|
||||
source=("${pkgname%-git}::git+https://git.salastil.com/Salastil/audiotube.git")
|
||||
sha256sums=('SKIP')
|
||||
|
||||
pkgver() {
|
||||
cd "${pkgname%-git}"
|
||||
local version
|
||||
version=$(sed -n 's/^set(RELEASE_SERVICE_VERSION_\(MAJOR\|MINOR\|MICRO\) "\(.*\)")/\2/p' CMakeLists.txt | paste -sd.)
|
||||
printf '%s.r%s.g%s' "$version" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)"
|
||||
}
|
||||
|
||||
build() {
|
||||
cmake -S "${pkgname%-git}" -B build -G Ninja \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
-DCMAKE_INSTALL_PREFIX=/usr \
|
||||
-DBUILD_TESTING=OFF \
|
||||
-DPython3_EXECUTABLE=/usr/bin/python3
|
||||
cmake --build build
|
||||
}
|
||||
|
||||
package() {
|
||||
DESTDIR="$pkgdir" cmake --install build
|
||||
}
|
||||
+40
-36
@@ -6,7 +6,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: audiotube\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2026-10-01 17:39+0000\n"
|
||||
"POT-Creation-Date: 2026-02-20 00:44+0000\n"
|
||||
"PO-Revision-Date: 2026-02-21 17:46+0400\n"
|
||||
"Last-Translator: Zayed Al-Saidi <[email protected]>\n"
|
||||
"Language-Team: ar\n"
|
||||
@@ -278,7 +278,7 @@ msgstr "قائمة التشغيل هذه لا تزال فارغة"
|
||||
msgid "Import Playlist"
|
||||
msgstr "استورد قائمة التّشغيل"
|
||||
|
||||
#: contents/ui/Main.qml:160 main.cpp:52
|
||||
#: contents/ui/Main.qml:160 main.cpp:88
|
||||
#, kde-format
|
||||
msgid "AudioTube"
|
||||
msgstr "تيوب الصوتي"
|
||||
@@ -299,84 +299,84 @@ msgstr "أغلق المشغل المكبّر"
|
||||
msgid "No media playing"
|
||||
msgstr "لا يوجد وسائط تعمل"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:553 contents/ui/SongMenu.qml:107
|
||||
#: contents/ui/MaximizedPlayerPage.qml:538 contents/ui/SongMenu.qml:107
|
||||
#, kde-format
|
||||
msgid "Remove from Favorites"
|
||||
msgstr "أزل من المفضلة"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:553 contents/ui/SongMenu.qml:107
|
||||
#: contents/ui/MaximizedPlayerPage.qml:538 contents/ui/SongMenu.qml:107
|
||||
#, kde-format
|
||||
msgid "Add to Favorites"
|
||||
msgstr "أضف للمفضلة"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:578
|
||||
#: contents/ui/MaximizedPlayerPage.qml:563
|
||||
#, kde-format
|
||||
msgid "Open Volume Drawer"
|
||||
msgstr "افتح درج الصوت"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:685
|
||||
#: contents/ui/MaximizedPlayerPage.qml:670
|
||||
#, kde-format
|
||||
msgid "Unmute Audio"
|
||||
msgstr "ألغ كتم الصوت"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:685
|
||||
#: contents/ui/MaximizedPlayerPage.qml:670
|
||||
#, kde-format
|
||||
msgid "Mute Audio"
|
||||
msgstr "كتم الصوت"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:724
|
||||
#: contents/ui/MaximizedPlayerPage.qml:709
|
||||
#, kde-format
|
||||
msgctxt "%1 is the audio volume in percent"
|
||||
msgid "%1%"
|
||||
msgstr "%1٪"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:754
|
||||
#: contents/ui/MaximizedPlayerPage.qml:739
|
||||
#, kde-format
|
||||
msgid "Hide Lyrics"
|
||||
msgstr "أخف الكلمات"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:754
|
||||
#: contents/ui/MaximizedPlayerPage.qml:739
|
||||
#, kde-format
|
||||
msgid "Show Lyrics"
|
||||
msgstr "اعرض كلمات الأغاني"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:774 contents/ui/SongMenu.qml:139
|
||||
#: contents/ui/MaximizedPlayerPage.qml:759 contents/ui/SongMenu.qml:139
|
||||
#, kde-format
|
||||
msgid "Share Song"
|
||||
msgstr "شارك الأغنية"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:815
|
||||
#: contents/ui/MaximizedPlayerPage.qml:800
|
||||
#, kde-format
|
||||
msgid "Add to a local playlist"
|
||||
msgstr "أضف إلى قائمة التّشغيل المحلية"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:852
|
||||
#: contents/ui/MaximizedPlayerPage.qml:837
|
||||
#, kde-format
|
||||
msgid "Hide Queue"
|
||||
msgstr "أخف قائمة الانتظار"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:852
|
||||
#: contents/ui/MaximizedPlayerPage.qml:837
|
||||
#, kde-format
|
||||
msgid "Show Queue"
|
||||
msgstr "أظهر قائمة الانتظار"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1084
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1329
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1069
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1314
|
||||
#, kde-format
|
||||
msgid "Remove Song"
|
||||
msgstr "أزِل أغنية"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1119
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1104
|
||||
#, kde-format
|
||||
msgid "Clear Queue"
|
||||
msgstr "امحُ الطّابور"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1144
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1129
|
||||
#, kde-format
|
||||
msgid "Shuffle Queue"
|
||||
msgstr "اخلط قائمة الانتظار"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1177
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1162
|
||||
#, kde-format
|
||||
msgid "Upcoming Songs"
|
||||
msgstr "الأغاني القادمة"
|
||||
@@ -466,6 +466,16 @@ msgstr "لا يوجد تطابق من البحوث الأخيرة"
|
||||
msgid "Share to"
|
||||
msgstr "شارك مع"
|
||||
|
||||
#: contents/ui/ShareMenu.qml:49 contents/ui/ShareMenu.qml:103
|
||||
#, kde-format
|
||||
msgid "Copy Link"
|
||||
msgstr "انسخ الرابط"
|
||||
|
||||
#: contents/ui/ShareMenu.qml:54 contents/ui/ShareMenu.qml:108
|
||||
#, kde-format
|
||||
msgid "Link copied to clipboard"
|
||||
msgstr "نُسخ الرابط إلى الحافظة"
|
||||
|
||||
#: contents/ui/Sidebar.qml:108
|
||||
#, kde-format
|
||||
msgid "Home"
|
||||
@@ -506,50 +516,50 @@ msgstr "أزل من التّاريخ"
|
||||
msgid "Add to playlist"
|
||||
msgstr "أضف إلى قائمة التّشغيل"
|
||||
|
||||
#: main.cpp:54
|
||||
#: main.cpp:90
|
||||
#, kde-format
|
||||
msgctxt "YouTube Music is a music streaming service by Google"
|
||||
msgid "Stream music from YouTube Music"
|
||||
msgstr "بث الموسيقى من YouTube Music"
|
||||
|
||||
#: main.cpp:56
|
||||
#: main.cpp:92
|
||||
#, kde-format
|
||||
msgid "© 2021–2024 Jonah Brüchert, 2021–2024 KDE Community"
|
||||
msgstr "© 2021–2024 جونا بروشيرت، 2021-2024 مجتمع كيدي"
|
||||
|
||||
#: main.cpp:57
|
||||
#: main.cpp:93
|
||||
#, kde-format
|
||||
msgid "Jonah Brüchert"
|
||||
msgstr "جوناه بروكيرت"
|
||||
|
||||
#: main.cpp:57
|
||||
#: main.cpp:93
|
||||
#, kde-format
|
||||
msgid "Maintainer"
|
||||
msgstr "الصائن"
|
||||
|
||||
#: main.cpp:58
|
||||
#: main.cpp:94
|
||||
#, kde-format
|
||||
msgid "Mathis Brüchert"
|
||||
msgstr "ماتيس بروشيرت"
|
||||
|
||||
#: main.cpp:58
|
||||
#: main.cpp:94
|
||||
#, kde-format
|
||||
msgid "Designer"
|
||||
msgstr "المصمم"
|
||||
|
||||
#: main.cpp:59
|
||||
#: main.cpp:95
|
||||
#, kde-format
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
msgid "Your names"
|
||||
msgstr "زايد السعيدي"
|
||||
|
||||
#: main.cpp:59
|
||||
#: main.cpp:95
|
||||
#, kde-format
|
||||
msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr "[email protected]"
|
||||
|
||||
#: main.cpp:66
|
||||
#: main.cpp:102
|
||||
#, kde-format
|
||||
msgctxt "YouTube Music is a music streaming service by Google"
|
||||
msgid "Unofficial API for YouTube Music"
|
||||
@@ -560,22 +570,16 @@ msgstr "واجهة برمجة التطبيقات غير الرسمية لموس
|
||||
msgid "No description"
|
||||
msgstr "لا يوجد وصف"
|
||||
|
||||
#: playlistimporter.cpp:68
|
||||
#: playlistimporter.cpp:62
|
||||
#, kde-format
|
||||
msgid "No title"
|
||||
msgstr "بلا عنوان"
|
||||
|
||||
#: playlistimporter.cpp:71
|
||||
#: playlistimporter.cpp:64
|
||||
#, kde-format
|
||||
msgid "No album"
|
||||
msgstr "لا يوجد ألبوم"
|
||||
|
||||
#~ msgid "Copy Link"
|
||||
#~ msgstr "انسخ الرابط"
|
||||
|
||||
#~ msgid "Link copied to clipboard"
|
||||
#~ msgstr "نُسخ الرابط إلى الحافظة"
|
||||
|
||||
#~ msgid "Remove Favorite"
|
||||
#~ msgstr "أزل المفضلة"
|
||||
|
||||
|
||||
+40
-30
@@ -6,7 +6,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: audiotube\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2026-10-01 17:39+0000\n"
|
||||
"POT-Creation-Date: 2026-02-20 00:44+0000\n"
|
||||
"PO-Revision-Date: 2024-03-27 21:55+0100\n"
|
||||
"Last-Translator: Enol P. <[email protected]>\n"
|
||||
"Language-Team: Asturian <[email protected]>\n"
|
||||
@@ -275,7 +275,7 @@ msgstr ""
|
||||
msgid "Import Playlist"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/Main.qml:160 main.cpp:52
|
||||
#: contents/ui/Main.qml:160 main.cpp:88
|
||||
#, kde-format
|
||||
msgid "AudioTube"
|
||||
msgstr ""
|
||||
@@ -296,85 +296,85 @@ msgstr ""
|
||||
msgid "No media playing"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:553 contents/ui/SongMenu.qml:107
|
||||
#: contents/ui/MaximizedPlayerPage.qml:538 contents/ui/SongMenu.qml:107
|
||||
#, kde-format
|
||||
msgid "Remove from Favorites"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:553 contents/ui/SongMenu.qml:107
|
||||
#: contents/ui/MaximizedPlayerPage.qml:538 contents/ui/SongMenu.qml:107
|
||||
#, kde-format
|
||||
msgid "Add to Favorites"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:578
|
||||
#: contents/ui/MaximizedPlayerPage.qml:563
|
||||
#, kde-format
|
||||
msgid "Open Volume Drawer"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:685
|
||||
#: contents/ui/MaximizedPlayerPage.qml:670
|
||||
#, kde-format
|
||||
msgid "Unmute Audio"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:685
|
||||
#: contents/ui/MaximizedPlayerPage.qml:670
|
||||
#, kde-format
|
||||
msgid "Mute Audio"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:724
|
||||
#: contents/ui/MaximizedPlayerPage.qml:709
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "%1%"
|
||||
msgctxt "%1 is the audio volume in percent"
|
||||
msgid "%1%"
|
||||
msgstr "%1%"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:754
|
||||
#: contents/ui/MaximizedPlayerPage.qml:739
|
||||
#, kde-format
|
||||
msgid "Hide Lyrics"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:754
|
||||
#: contents/ui/MaximizedPlayerPage.qml:739
|
||||
#, kde-format
|
||||
msgid "Show Lyrics"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:774 contents/ui/SongMenu.qml:139
|
||||
#: contents/ui/MaximizedPlayerPage.qml:759 contents/ui/SongMenu.qml:139
|
||||
#, kde-format
|
||||
msgid "Share Song"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:815
|
||||
#: contents/ui/MaximizedPlayerPage.qml:800
|
||||
#, kde-format
|
||||
msgid "Add to a local playlist"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:852
|
||||
#: contents/ui/MaximizedPlayerPage.qml:837
|
||||
#, kde-format
|
||||
msgid "Hide Queue"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:852
|
||||
#: contents/ui/MaximizedPlayerPage.qml:837
|
||||
#, kde-format
|
||||
msgid "Show Queue"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1084
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1329
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1069
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1314
|
||||
#, kde-format
|
||||
msgid "Remove Song"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1119
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1104
|
||||
#, kde-format
|
||||
msgid "Clear Queue"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1144
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1129
|
||||
#, kde-format
|
||||
msgid "Shuffle Queue"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1177
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1162
|
||||
#, kde-format
|
||||
msgid "Upcoming Songs"
|
||||
msgstr ""
|
||||
@@ -460,6 +460,16 @@ msgstr ""
|
||||
msgid "Share to"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/ShareMenu.qml:49 contents/ui/ShareMenu.qml:103
|
||||
#, kde-format
|
||||
msgid "Copy Link"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/ShareMenu.qml:54 contents/ui/ShareMenu.qml:108
|
||||
#, kde-format
|
||||
msgid "Link copied to clipboard"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/Sidebar.qml:108
|
||||
#, kde-format
|
||||
msgid "Home"
|
||||
@@ -500,50 +510,50 @@ msgstr ""
|
||||
msgid "Add to playlist"
|
||||
msgstr ""
|
||||
|
||||
#: main.cpp:54
|
||||
#: main.cpp:90
|
||||
#, kde-format
|
||||
msgctxt "YouTube Music is a music streaming service by Google"
|
||||
msgid "Stream music from YouTube Music"
|
||||
msgstr ""
|
||||
|
||||
#: main.cpp:56
|
||||
#: main.cpp:92
|
||||
#, kde-format
|
||||
msgid "© 2021–2024 Jonah Brüchert, 2021–2024 KDE Community"
|
||||
msgstr ""
|
||||
|
||||
#: main.cpp:57
|
||||
#: main.cpp:93
|
||||
#, kde-format
|
||||
msgid "Jonah Brüchert"
|
||||
msgstr ""
|
||||
|
||||
#: main.cpp:57
|
||||
#: main.cpp:93
|
||||
#, kde-format
|
||||
msgid "Maintainer"
|
||||
msgstr ""
|
||||
|
||||
#: main.cpp:58
|
||||
#: main.cpp:94
|
||||
#, kde-format
|
||||
msgid "Mathis Brüchert"
|
||||
msgstr ""
|
||||
|
||||
#: main.cpp:58
|
||||
#: main.cpp:94
|
||||
#, kde-format
|
||||
msgid "Designer"
|
||||
msgstr ""
|
||||
|
||||
#: main.cpp:59
|
||||
#: main.cpp:95
|
||||
#, kde-format
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
msgid "Your names"
|
||||
msgstr ""
|
||||
|
||||
#: main.cpp:59
|
||||
#: main.cpp:95
|
||||
#, kde-format
|
||||
msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr ""
|
||||
|
||||
#: main.cpp:66
|
||||
#: main.cpp:102
|
||||
#, kde-format
|
||||
msgctxt "YouTube Music is a music streaming service by Google"
|
||||
msgid "Unofficial API for YouTube Music"
|
||||
@@ -554,12 +564,12 @@ msgstr ""
|
||||
msgid "No description"
|
||||
msgstr ""
|
||||
|
||||
#: playlistimporter.cpp:68
|
||||
#: playlistimporter.cpp:62
|
||||
#, kde-format
|
||||
msgid "No title"
|
||||
msgstr ""
|
||||
|
||||
#: playlistimporter.cpp:71
|
||||
#: playlistimporter.cpp:64
|
||||
#, kde-format
|
||||
msgid "No album"
|
||||
msgstr ""
|
||||
+40
-30
@@ -6,7 +6,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: audiotube\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2026-10-01 17:39+0000\n"
|
||||
"POT-Creation-Date: 2026-02-20 00:44+0000\n"
|
||||
"PO-Revision-Date: 2022-06-19 12:16+0400\n"
|
||||
"Last-Translator: Kheyyam <[email protected]>\n"
|
||||
"Language-Team: Azerbaijani <[email protected]>\n"
|
||||
@@ -296,7 +296,7 @@ msgstr ""
|
||||
msgid "Import Playlist"
|
||||
msgstr "Mahnı siyahıları"
|
||||
|
||||
#: contents/ui/Main.qml:160 main.cpp:52
|
||||
#: contents/ui/Main.qml:160 main.cpp:88
|
||||
#, kde-format
|
||||
msgid "AudioTube"
|
||||
msgstr "AudioTube"
|
||||
@@ -318,93 +318,93 @@ msgstr ""
|
||||
msgid "No media playing"
|
||||
msgstr "Media faylı oynadılmır"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:553 contents/ui/SongMenu.qml:107
|
||||
#: contents/ui/MaximizedPlayerPage.qml:538 contents/ui/SongMenu.qml:107
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Favourites"
|
||||
msgid "Remove from Favorites"
|
||||
msgstr "Süçilmişlər"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:553 contents/ui/SongMenu.qml:107
|
||||
#: contents/ui/MaximizedPlayerPage.qml:538 contents/ui/SongMenu.qml:107
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Favourites"
|
||||
msgid "Add to Favorites"
|
||||
msgstr "Süçilmişlər"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:578
|
||||
#: contents/ui/MaximizedPlayerPage.qml:563
|
||||
#, kde-format
|
||||
msgid "Open Volume Drawer"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:685
|
||||
#: contents/ui/MaximizedPlayerPage.qml:670
|
||||
#, kde-format
|
||||
msgid "Unmute Audio"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:685
|
||||
#: contents/ui/MaximizedPlayerPage.qml:670
|
||||
#, kde-format
|
||||
msgid "Mute Audio"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:724
|
||||
#: contents/ui/MaximizedPlayerPage.qml:709
|
||||
#, kde-format
|
||||
msgctxt "%1 is the audio volume in percent"
|
||||
msgid "%1%"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:754
|
||||
#: contents/ui/MaximizedPlayerPage.qml:739
|
||||
#, kde-format
|
||||
msgid "Hide Lyrics"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:754
|
||||
#: contents/ui/MaximizedPlayerPage.qml:739
|
||||
#, kde-format
|
||||
msgid "Show Lyrics"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:774 contents/ui/SongMenu.qml:139
|
||||
#: contents/ui/MaximizedPlayerPage.qml:759 contents/ui/SongMenu.qml:139
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Favourite Songs"
|
||||
msgid "Share Song"
|
||||
msgstr "Seçilmiş mahnılar"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:815
|
||||
#: contents/ui/MaximizedPlayerPage.qml:800
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Add to Playlist"
|
||||
msgid "Add to a local playlist"
|
||||
msgstr "Mahnı siyahısına əlavə edin"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:852
|
||||
#: contents/ui/MaximizedPlayerPage.qml:837
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Queue"
|
||||
msgid "Hide Queue"
|
||||
msgstr "Növbə"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:852
|
||||
#: contents/ui/MaximizedPlayerPage.qml:837
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Queue"
|
||||
msgid "Show Queue"
|
||||
msgstr "Növbə"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1084
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1329
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1069
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1314
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Favourites"
|
||||
msgid "Remove Song"
|
||||
msgstr "Süçilmişlər"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1119
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1104
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Queue"
|
||||
msgid "Clear Queue"
|
||||
msgstr "Növbə"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1144
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1129
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Shuffle"
|
||||
msgid "Shuffle Queue"
|
||||
msgstr "Qarışıq"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1177
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1162
|
||||
#, kde-format
|
||||
msgid "Upcoming Songs"
|
||||
msgstr ""
|
||||
@@ -496,6 +496,16 @@ msgstr ""
|
||||
msgid "Share to"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/ShareMenu.qml:49 contents/ui/ShareMenu.qml:103
|
||||
#, kde-format
|
||||
msgid "Copy Link"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/ShareMenu.qml:54 contents/ui/ShareMenu.qml:108
|
||||
#, kde-format
|
||||
msgid "Link copied to clipboard"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/Sidebar.qml:108
|
||||
#, kde-format
|
||||
msgid "Home"
|
||||
@@ -537,51 +547,51 @@ msgstr ""
|
||||
msgid "Add to playlist"
|
||||
msgstr "Mahnı siyahısına əlavə edin"
|
||||
|
||||
#: main.cpp:54
|
||||
#: main.cpp:90
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Find music on YouTube Music"
|
||||
msgctxt "YouTube Music is a music streaming service by Google"
|
||||
msgid "Stream music from YouTube Music"
|
||||
msgstr "Musiqini YouTube Musiqi-də tapın"
|
||||
|
||||
#: main.cpp:56
|
||||
#: main.cpp:92
|
||||
#, kde-format
|
||||
msgid "© 2021–2024 Jonah Brüchert, 2021–2024 KDE Community"
|
||||
msgstr ""
|
||||
|
||||
#: main.cpp:57
|
||||
#: main.cpp:93
|
||||
#, kde-format
|
||||
msgid "Jonah Brüchert"
|
||||
msgstr ""
|
||||
|
||||
#: main.cpp:57
|
||||
#: main.cpp:93
|
||||
#, kde-format
|
||||
msgid "Maintainer"
|
||||
msgstr ""
|
||||
|
||||
#: main.cpp:58
|
||||
#: main.cpp:94
|
||||
#, kde-format
|
||||
msgid "Mathis Brüchert"
|
||||
msgstr ""
|
||||
|
||||
#: main.cpp:58
|
||||
#: main.cpp:94
|
||||
#, kde-format
|
||||
msgid "Designer"
|
||||
msgstr ""
|
||||
|
||||
#: main.cpp:59
|
||||
#: main.cpp:95
|
||||
#, kde-format
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
msgid "Your names"
|
||||
msgstr "Xəyyam Qocayev"
|
||||
|
||||
#: main.cpp:59
|
||||
#: main.cpp:95
|
||||
#, kde-format
|
||||
msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr "[email protected]"
|
||||
|
||||
#: main.cpp:66
|
||||
#: main.cpp:102
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Find music on YouTube Music"
|
||||
msgctxt "YouTube Music is a music streaming service by Google"
|
||||
@@ -594,12 +604,12 @@ msgstr "Musiqini YouTube Musiqi-də tapın"
|
||||
msgid "No description"
|
||||
msgstr "Mahnı siyahıları"
|
||||
|
||||
#: playlistimporter.cpp:68
|
||||
#: playlistimporter.cpp:62
|
||||
#, kde-format
|
||||
msgid "No title"
|
||||
msgstr ""
|
||||
|
||||
#: playlistimporter.cpp:71
|
||||
#: playlistimporter.cpp:64
|
||||
#, kde-format
|
||||
msgid "No album"
|
||||
msgstr ""
|
||||
|
||||
+41
-37
@@ -4,12 +4,12 @@
|
||||
# version 3 or later versions approved by the membership of KDE e.V.
|
||||
#
|
||||
# SPDX-FileCopyrightText: 2021 Antoni Bella Pérez <[email protected]>
|
||||
# SPDX-FileCopyrightText: 2022-2026 Josep M. Ferrer <[email protected]>
|
||||
# SPDX-FileCopyrightText: 2022, 2023, 2024, 2025, 2026 Josep M. Ferrer <[email protected]>
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: audiotube\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2026-10-01 17:39+0000\n"
|
||||
"POT-Creation-Date: 2026-02-20 00:44+0000\n"
|
||||
"PO-Revision-Date: 2026-02-20 13:02+0100\n"
|
||||
"Last-Translator: Josep M. Ferrer <[email protected]>\n"
|
||||
"Language-Team: Catalan <[email protected]>\n"
|
||||
@@ -282,7 +282,7 @@ msgstr "Aquesta llista de reproducció encara està buida"
|
||||
msgid "Import Playlist"
|
||||
msgstr "Importa una llista de reproducció"
|
||||
|
||||
#: contents/ui/Main.qml:160 main.cpp:52
|
||||
#: contents/ui/Main.qml:160 main.cpp:88
|
||||
#, kde-format
|
||||
msgid "AudioTube"
|
||||
msgstr "AudioTube"
|
||||
@@ -303,84 +303,84 @@ msgstr "Tanca el reproductor maximitzat"
|
||||
msgid "No media playing"
|
||||
msgstr "No s'està reproduint cap fitxer multimèdia"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:553 contents/ui/SongMenu.qml:107
|
||||
#: contents/ui/MaximizedPlayerPage.qml:538 contents/ui/SongMenu.qml:107
|
||||
#, kde-format
|
||||
msgid "Remove from Favorites"
|
||||
msgstr "Elimina de les preferides"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:553 contents/ui/SongMenu.qml:107
|
||||
#: contents/ui/MaximizedPlayerPage.qml:538 contents/ui/SongMenu.qml:107
|
||||
#, kde-format
|
||||
msgid "Add to Favorites"
|
||||
msgstr "Afegeix a les preferides"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:578
|
||||
#: contents/ui/MaximizedPlayerPage.qml:563
|
||||
#, kde-format
|
||||
msgid "Open Volume Drawer"
|
||||
msgstr "Obre el calaix del volum"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:685
|
||||
#: contents/ui/MaximizedPlayerPage.qml:670
|
||||
#, kde-format
|
||||
msgid "Unmute Audio"
|
||||
msgstr "Activa el so de l'àudio"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:685
|
||||
#: contents/ui/MaximizedPlayerPage.qml:670
|
||||
#, kde-format
|
||||
msgid "Mute Audio"
|
||||
msgstr "Silencia l'àudio"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:724
|
||||
#: contents/ui/MaximizedPlayerPage.qml:709
|
||||
#, kde-format
|
||||
msgctxt "%1 is the audio volume in percent"
|
||||
msgid "%1%"
|
||||
msgstr "%1%"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:754
|
||||
#: contents/ui/MaximizedPlayerPage.qml:739
|
||||
#, kde-format
|
||||
msgid "Hide Lyrics"
|
||||
msgstr "Oculta la lletra"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:754
|
||||
#: contents/ui/MaximizedPlayerPage.qml:739
|
||||
#, kde-format
|
||||
msgid "Show Lyrics"
|
||||
msgstr "Mostra la lletra"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:774 contents/ui/SongMenu.qml:139
|
||||
#: contents/ui/MaximizedPlayerPage.qml:759 contents/ui/SongMenu.qml:139
|
||||
#, kde-format
|
||||
msgid "Share Song"
|
||||
msgstr "Comparteix una cançó"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:815
|
||||
#: contents/ui/MaximizedPlayerPage.qml:800
|
||||
#, kde-format
|
||||
msgid "Add to a local playlist"
|
||||
msgstr "Afegeix a una llista de reproducció local"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:852
|
||||
#: contents/ui/MaximizedPlayerPage.qml:837
|
||||
#, kde-format
|
||||
msgid "Hide Queue"
|
||||
msgstr "Oculta la cua"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:852
|
||||
#: contents/ui/MaximizedPlayerPage.qml:837
|
||||
#, kde-format
|
||||
msgid "Show Queue"
|
||||
msgstr "Mostra la cua"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1084
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1329
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1069
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1314
|
||||
#, kde-format
|
||||
msgid "Remove Song"
|
||||
msgstr "Elimina la cançó"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1119
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1104
|
||||
#, kde-format
|
||||
msgid "Clear Queue"
|
||||
msgstr "Neteja la cua"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1144
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1129
|
||||
#, kde-format
|
||||
msgid "Shuffle Queue"
|
||||
msgstr "Barreja la cua"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1177
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1162
|
||||
#, kde-format
|
||||
msgid "Upcoming Songs"
|
||||
msgstr "Cançons següents"
|
||||
@@ -468,6 +468,16 @@ msgstr "No hi ha cerques anteriors coincidents"
|
||||
msgid "Share to"
|
||||
msgstr "Comparteix a"
|
||||
|
||||
#: contents/ui/ShareMenu.qml:49 contents/ui/ShareMenu.qml:103
|
||||
#, kde-format
|
||||
msgid "Copy Link"
|
||||
msgstr "Copia l'enllaç"
|
||||
|
||||
#: contents/ui/ShareMenu.qml:54 contents/ui/ShareMenu.qml:108
|
||||
#, kde-format
|
||||
msgid "Link copied to clipboard"
|
||||
msgstr "L'enllaç s'ha copiat al porta-retalls"
|
||||
|
||||
#: contents/ui/Sidebar.qml:108
|
||||
#, kde-format
|
||||
msgid "Home"
|
||||
@@ -508,50 +518,50 @@ msgstr "Elimina de l'historial"
|
||||
msgid "Add to playlist"
|
||||
msgstr "Afegeix a la llista de reproducció"
|
||||
|
||||
#: main.cpp:54
|
||||
#: main.cpp:90
|
||||
#, kde-format
|
||||
msgctxt "YouTube Music is a music streaming service by Google"
|
||||
msgid "Stream music from YouTube Music"
|
||||
msgstr "Flux de música des de YouTube Music"
|
||||
|
||||
#: main.cpp:56
|
||||
#: main.cpp:92
|
||||
#, kde-format
|
||||
msgid "© 2021–2024 Jonah Brüchert, 2021–2024 KDE Community"
|
||||
msgstr "© 2021–2024 Jonah Brüchert, 2021–2024 KDE Community"
|
||||
|
||||
#: main.cpp:57
|
||||
#: main.cpp:93
|
||||
#, kde-format
|
||||
msgid "Jonah Brüchert"
|
||||
msgstr "Jonah Brüchert"
|
||||
|
||||
#: main.cpp:57
|
||||
#: main.cpp:93
|
||||
#, kde-format
|
||||
msgid "Maintainer"
|
||||
msgstr "Mantenidor"
|
||||
|
||||
#: main.cpp:58
|
||||
#: main.cpp:94
|
||||
#, kde-format
|
||||
msgid "Mathis Brüchert"
|
||||
msgstr "Mathis Brüchert"
|
||||
|
||||
#: main.cpp:58
|
||||
#: main.cpp:94
|
||||
#, kde-format
|
||||
msgid "Designer"
|
||||
msgstr "Dissenyador"
|
||||
|
||||
#: main.cpp:59
|
||||
#: main.cpp:95
|
||||
#, kde-format
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
msgid "Your names"
|
||||
msgstr "Antoni Bella"
|
||||
|
||||
#: main.cpp:59
|
||||
#: main.cpp:95
|
||||
#, kde-format
|
||||
msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr "[email protected]"
|
||||
|
||||
#: main.cpp:66
|
||||
#: main.cpp:102
|
||||
#, kde-format
|
||||
msgctxt "YouTube Music is a music streaming service by Google"
|
||||
msgid "Unofficial API for YouTube Music"
|
||||
@@ -562,22 +572,16 @@ msgstr "API no oficial per a YouTube Music"
|
||||
msgid "No description"
|
||||
msgstr "Sense descripció"
|
||||
|
||||
#: playlistimporter.cpp:68
|
||||
#: playlistimporter.cpp:62
|
||||
#, kde-format
|
||||
msgid "No title"
|
||||
msgstr "Sense títol"
|
||||
|
||||
#: playlistimporter.cpp:71
|
||||
#: playlistimporter.cpp:64
|
||||
#, kde-format
|
||||
msgid "No album"
|
||||
msgstr "Sense àlbum"
|
||||
|
||||
#~ msgid "Copy Link"
|
||||
#~ msgstr "Copia l'enllaç"
|
||||
|
||||
#~ msgid "Link copied to clipboard"
|
||||
#~ msgstr "L'enllaç s'ha copiat al porta-retalls"
|
||||
|
||||
#~ msgid "Remove Favorite"
|
||||
#~ msgstr "Elimina de les preferides"
|
||||
|
||||
|
||||
+42
-38
@@ -4,12 +4,12 @@
|
||||
# version 3 or later versions approved by the membership of KDE e.V.
|
||||
#
|
||||
# SPDX-FileCopyrightText: 2021 Antoni Bella Pérez <[email protected]>
|
||||
# SPDX-FileCopyrightText: 2022-2026 Josep M. Ferrer <[email protected]>
|
||||
# SPDX-FileCopyrightText: 2022, 2023, 2024, 2025, 2026 Josep M. Ferrer <[email protected]>
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: audiotube\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2026-10-01 17:39+0000\n"
|
||||
"POT-Creation-Date: 2026-02-20 00:44+0000\n"
|
||||
"PO-Revision-Date: 2026-02-20 13:02+0100\n"
|
||||
"Last-Translator: Josep M. Ferrer <[email protected]>\n"
|
||||
"Language-Team: Catalan <[email protected]>\n"
|
||||
@@ -282,7 +282,7 @@ msgstr "Esta llista de reproducció encara està buida"
|
||||
msgid "Import Playlist"
|
||||
msgstr "Importa una llista de reproducció"
|
||||
|
||||
#: contents/ui/Main.qml:160 main.cpp:52
|
||||
#: contents/ui/Main.qml:160 main.cpp:88
|
||||
#, kde-format
|
||||
msgid "AudioTube"
|
||||
msgstr "AudioTube"
|
||||
@@ -303,84 +303,84 @@ msgstr "Tanca el reproductor maximitzat"
|
||||
msgid "No media playing"
|
||||
msgstr "No s'està reproduint cap fitxer multimèdia"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:553 contents/ui/SongMenu.qml:107
|
||||
#: contents/ui/MaximizedPlayerPage.qml:538 contents/ui/SongMenu.qml:107
|
||||
#, kde-format
|
||||
msgid "Remove from Favorites"
|
||||
msgstr "Elimina de les preferides"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:553 contents/ui/SongMenu.qml:107
|
||||
#: contents/ui/MaximizedPlayerPage.qml:538 contents/ui/SongMenu.qml:107
|
||||
#, kde-format
|
||||
msgid "Add to Favorites"
|
||||
msgstr "Afig a les preferides"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:578
|
||||
#: contents/ui/MaximizedPlayerPage.qml:563
|
||||
#, kde-format
|
||||
msgid "Open Volume Drawer"
|
||||
msgstr "Obri el calaix del volum"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:685
|
||||
#: contents/ui/MaximizedPlayerPage.qml:670
|
||||
#, kde-format
|
||||
msgid "Unmute Audio"
|
||||
msgstr "Activa el so de l'àudio"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:685
|
||||
#: contents/ui/MaximizedPlayerPage.qml:670
|
||||
#, kde-format
|
||||
msgid "Mute Audio"
|
||||
msgstr "Silencia l'àudio"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:724
|
||||
#: contents/ui/MaximizedPlayerPage.qml:709
|
||||
#, kde-format
|
||||
msgctxt "%1 is the audio volume in percent"
|
||||
msgid "%1%"
|
||||
msgstr "%1%"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:754
|
||||
#: contents/ui/MaximizedPlayerPage.qml:739
|
||||
#, kde-format
|
||||
msgid "Hide Lyrics"
|
||||
msgstr "Oculta la lletra"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:754
|
||||
#: contents/ui/MaximizedPlayerPage.qml:739
|
||||
#, kde-format
|
||||
msgid "Show Lyrics"
|
||||
msgstr "Mostra la lletra"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:774 contents/ui/SongMenu.qml:139
|
||||
#: contents/ui/MaximizedPlayerPage.qml:759 contents/ui/SongMenu.qml:139
|
||||
#, kde-format
|
||||
msgid "Share Song"
|
||||
msgstr "Compartix una cançó"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:815
|
||||
#: contents/ui/MaximizedPlayerPage.qml:800
|
||||
#, kde-format
|
||||
msgid "Add to a local playlist"
|
||||
msgstr "Afig a una llista de reproducció local"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:852
|
||||
#: contents/ui/MaximizedPlayerPage.qml:837
|
||||
#, kde-format
|
||||
msgid "Hide Queue"
|
||||
msgstr "Oculta la cua"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:852
|
||||
#: contents/ui/MaximizedPlayerPage.qml:837
|
||||
#, kde-format
|
||||
msgid "Show Queue"
|
||||
msgstr "Mostra la cua"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1084
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1329
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1069
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1314
|
||||
#, kde-format
|
||||
msgid "Remove Song"
|
||||
msgstr "Elimina la cançó"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1119
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1104
|
||||
#, kde-format
|
||||
msgid "Clear Queue"
|
||||
msgstr "Neteja la cua"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1144
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1129
|
||||
#, kde-format
|
||||
msgid "Shuffle Queue"
|
||||
msgstr "Barreja la cua"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1177
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1162
|
||||
#, kde-format
|
||||
msgid "Upcoming Songs"
|
||||
msgstr "Cançons següents"
|
||||
@@ -468,6 +468,16 @@ msgstr "No hi ha busques anteriors coincidents"
|
||||
msgid "Share to"
|
||||
msgstr "Compartix a"
|
||||
|
||||
#: contents/ui/ShareMenu.qml:49 contents/ui/ShareMenu.qml:103
|
||||
#, kde-format
|
||||
msgid "Copy Link"
|
||||
msgstr "Copia l'enllaç"
|
||||
|
||||
#: contents/ui/ShareMenu.qml:54 contents/ui/ShareMenu.qml:108
|
||||
#, kde-format
|
||||
msgid "Link copied to clipboard"
|
||||
msgstr "L'enllaç s'ha copiat a dins del porta-retalls"
|
||||
|
||||
#: contents/ui/Sidebar.qml:108
|
||||
#, kde-format
|
||||
msgid "Home"
|
||||
@@ -508,50 +518,50 @@ msgstr "Elimina de l'historial"
|
||||
msgid "Add to playlist"
|
||||
msgstr "Afig a la llista de reproducció"
|
||||
|
||||
#: main.cpp:54
|
||||
#: main.cpp:90
|
||||
#, kde-format
|
||||
msgctxt "YouTube Music is a music streaming service by Google"
|
||||
msgid "Stream music from YouTube Music"
|
||||
msgstr "Flux de música des de YouTube Music"
|
||||
|
||||
#: main.cpp:56
|
||||
#: main.cpp:92
|
||||
#, kde-format
|
||||
msgid "© 2021–2024 Jonah Brüchert, 2021–2024 KDE Community"
|
||||
msgstr "© 2021–2024 Jonah Brüchert, 2021–2024 La comunitat KDE"
|
||||
msgstr "© 2021–2024 Jonah Brüchert, 2021–2024 Comunitat KDE"
|
||||
|
||||
#: main.cpp:57
|
||||
#: main.cpp:93
|
||||
#, kde-format
|
||||
msgid "Jonah Brüchert"
|
||||
msgstr "Jonah Brüchert"
|
||||
|
||||
#: main.cpp:57
|
||||
#: main.cpp:93
|
||||
#, kde-format
|
||||
msgid "Maintainer"
|
||||
msgstr "Mantenidor"
|
||||
|
||||
#: main.cpp:58
|
||||
#: main.cpp:94
|
||||
#, kde-format
|
||||
msgid "Mathis Brüchert"
|
||||
msgstr "Mathis Brüchert"
|
||||
|
||||
#: main.cpp:58
|
||||
#: main.cpp:94
|
||||
#, kde-format
|
||||
msgid "Designer"
|
||||
msgstr "Dissenyador"
|
||||
|
||||
#: main.cpp:59
|
||||
#: main.cpp:95
|
||||
#, kde-format
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
msgid "Your names"
|
||||
msgstr "Antoni Bella"
|
||||
|
||||
#: main.cpp:59
|
||||
#: main.cpp:95
|
||||
#, kde-format
|
||||
msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr "[email protected]"
|
||||
|
||||
#: main.cpp:66
|
||||
#: main.cpp:102
|
||||
#, kde-format
|
||||
msgctxt "YouTube Music is a music streaming service by Google"
|
||||
msgid "Unofficial API for YouTube Music"
|
||||
@@ -562,18 +572,12 @@ msgstr "API no oficial per a YouTube Music"
|
||||
msgid "No description"
|
||||
msgstr "Sense descripció"
|
||||
|
||||
#: playlistimporter.cpp:68
|
||||
#: playlistimporter.cpp:62
|
||||
#, kde-format
|
||||
msgid "No title"
|
||||
msgstr "Sense títol"
|
||||
|
||||
#: playlistimporter.cpp:71
|
||||
#: playlistimporter.cpp:64
|
||||
#, kde-format
|
||||
msgid "No album"
|
||||
msgstr "Sense àlbum"
|
||||
|
||||
#~ msgid "Copy Link"
|
||||
#~ msgstr "Copia l'enllaç"
|
||||
|
||||
#~ msgid "Link copied to clipboard"
|
||||
#~ msgstr "L'enllaç s'ha copiat a dins del porta-retalls"
|
||||
+40
-36
@@ -6,7 +6,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: audiotube\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2026-10-01 17:39+0000\n"
|
||||
"POT-Creation-Date: 2026-02-20 00:44+0000\n"
|
||||
"PO-Revision-Date: 2026-03-16 11:35+0100\n"
|
||||
"Last-Translator: Vít Pelčák <[email protected]>\n"
|
||||
"Language-Team: Czech <[email protected]>\n"
|
||||
@@ -279,7 +279,7 @@ msgstr "Tento seznam skladeb je prázdný"
|
||||
msgid "Import Playlist"
|
||||
msgstr "Importovat seznam skladeb"
|
||||
|
||||
#: contents/ui/Main.qml:160 main.cpp:52
|
||||
#: contents/ui/Main.qml:160 main.cpp:88
|
||||
#, kde-format
|
||||
msgid "AudioTube"
|
||||
msgstr "AudioTube"
|
||||
@@ -300,84 +300,84 @@ msgstr "Zavřít minimalizovaný přehrávač"
|
||||
msgid "No media playing"
|
||||
msgstr "Nepřehrává se žádné médium"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:553 contents/ui/SongMenu.qml:107
|
||||
#: contents/ui/MaximizedPlayerPage.qml:538 contents/ui/SongMenu.qml:107
|
||||
#, kde-format
|
||||
msgid "Remove from Favorites"
|
||||
msgstr "Odstranit z oblíbených"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:553 contents/ui/SongMenu.qml:107
|
||||
#: contents/ui/MaximizedPlayerPage.qml:538 contents/ui/SongMenu.qml:107
|
||||
#, kde-format
|
||||
msgid "Add to Favorites"
|
||||
msgstr "Přidat do oblíbených"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:578
|
||||
#: contents/ui/MaximizedPlayerPage.qml:563
|
||||
#, kde-format
|
||||
msgid "Open Volume Drawer"
|
||||
msgstr "Otevřít šuplík hlasitosti"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:685
|
||||
#: contents/ui/MaximizedPlayerPage.qml:670
|
||||
#, kde-format
|
||||
msgid "Unmute Audio"
|
||||
msgstr "Povolit zvuk"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:685
|
||||
#: contents/ui/MaximizedPlayerPage.qml:670
|
||||
#, kde-format
|
||||
msgid "Mute Audio"
|
||||
msgstr "Ztlumit zvuk"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:724
|
||||
#: contents/ui/MaximizedPlayerPage.qml:709
|
||||
#, kde-format
|
||||
msgctxt "%1 is the audio volume in percent"
|
||||
msgid "%1%"
|
||||
msgstr "%1%"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:754
|
||||
#: contents/ui/MaximizedPlayerPage.qml:739
|
||||
#, kde-format
|
||||
msgid "Hide Lyrics"
|
||||
msgstr "Skrýt text písně"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:754
|
||||
#: contents/ui/MaximizedPlayerPage.qml:739
|
||||
#, kde-format
|
||||
msgid "Show Lyrics"
|
||||
msgstr "Zobrazit text písně"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:774 contents/ui/SongMenu.qml:139
|
||||
#: contents/ui/MaximizedPlayerPage.qml:759 contents/ui/SongMenu.qml:139
|
||||
#, kde-format
|
||||
msgid "Share Song"
|
||||
msgstr "Sdílet píseň"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:815
|
||||
#: contents/ui/MaximizedPlayerPage.qml:800
|
||||
#, kde-format
|
||||
msgid "Add to a local playlist"
|
||||
msgstr "Přidat do místního seznamu stop"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:852
|
||||
#: contents/ui/MaximizedPlayerPage.qml:837
|
||||
#, kde-format
|
||||
msgid "Hide Queue"
|
||||
msgstr "Skrýt frontu"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:852
|
||||
#: contents/ui/MaximizedPlayerPage.qml:837
|
||||
#, kde-format
|
||||
msgid "Show Queue"
|
||||
msgstr "Zobrazit frontu"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1084
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1329
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1069
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1314
|
||||
#, kde-format
|
||||
msgid "Remove Song"
|
||||
msgstr "Odstranit skladbu"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1119
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1104
|
||||
#, kde-format
|
||||
msgid "Clear Queue"
|
||||
msgstr "Vymazat frontu"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1144
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1129
|
||||
#, kde-format
|
||||
msgid "Shuffle Queue"
|
||||
msgstr "Zamíchat frontu"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1177
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1162
|
||||
#, kde-format
|
||||
msgid "Upcoming Songs"
|
||||
msgstr "Nadcházející písně"
|
||||
@@ -466,6 +466,16 @@ msgstr "Neodpovídají žádná předchozí hledání"
|
||||
msgid "Share to"
|
||||
msgstr "Sdílet s"
|
||||
|
||||
#: contents/ui/ShareMenu.qml:49 contents/ui/ShareMenu.qml:103
|
||||
#, kde-format
|
||||
msgid "Copy Link"
|
||||
msgstr "Kopírovat odkaz"
|
||||
|
||||
#: contents/ui/ShareMenu.qml:54 contents/ui/ShareMenu.qml:108
|
||||
#, kde-format
|
||||
msgid "Link copied to clipboard"
|
||||
msgstr "Odkaz byl zkopírován do schránky"
|
||||
|
||||
#: contents/ui/Sidebar.qml:108
|
||||
#, kde-format
|
||||
msgid "Home"
|
||||
@@ -506,50 +516,50 @@ msgstr "Odstranit z historie"
|
||||
msgid "Add to playlist"
|
||||
msgstr "Přidat do seznamu stop"
|
||||
|
||||
#: main.cpp:54
|
||||
#: main.cpp:90
|
||||
#, kde-format
|
||||
msgctxt "YouTube Music is a music streaming service by Google"
|
||||
msgid "Stream music from YouTube Music"
|
||||
msgstr "Přehrávejte hudbu z Hudba YouTube"
|
||||
|
||||
#: main.cpp:56
|
||||
#: main.cpp:92
|
||||
#, kde-format
|
||||
msgid "© 2021–2024 Jonah Brüchert, 2021–2024 KDE Community"
|
||||
msgstr "© 2021-2024 Jonah Brüchert, 2021-2024 Komunita KDE"
|
||||
|
||||
#: main.cpp:57
|
||||
#: main.cpp:93
|
||||
#, kde-format
|
||||
msgid "Jonah Brüchert"
|
||||
msgstr "Jonah Brüchert"
|
||||
|
||||
#: main.cpp:57
|
||||
#: main.cpp:93
|
||||
#, kde-format
|
||||
msgid "Maintainer"
|
||||
msgstr "Správce"
|
||||
|
||||
#: main.cpp:58
|
||||
#: main.cpp:94
|
||||
#, kde-format
|
||||
msgid "Mathis Brüchert"
|
||||
msgstr "Mathis Brüchert"
|
||||
|
||||
#: main.cpp:58
|
||||
#: main.cpp:94
|
||||
#, kde-format
|
||||
msgid "Designer"
|
||||
msgstr "Návrhář"
|
||||
|
||||
#: main.cpp:59
|
||||
#: main.cpp:95
|
||||
#, kde-format
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
msgid "Your names"
|
||||
msgstr "Vít Pelčák"
|
||||
|
||||
#: main.cpp:59
|
||||
#: main.cpp:95
|
||||
#, kde-format
|
||||
msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr "[email protected]"
|
||||
|
||||
#: main.cpp:66
|
||||
#: main.cpp:102
|
||||
#, kde-format
|
||||
msgctxt "YouTube Music is a music streaming service by Google"
|
||||
msgid "Unofficial API for YouTube Music"
|
||||
@@ -560,22 +570,16 @@ msgstr "Neoficiální API pro hudbu YouTube"
|
||||
msgid "No description"
|
||||
msgstr "Žádný popis"
|
||||
|
||||
#: playlistimporter.cpp:68
|
||||
#: playlistimporter.cpp:62
|
||||
#, kde-format
|
||||
msgid "No title"
|
||||
msgstr "Bez názvu"
|
||||
|
||||
#: playlistimporter.cpp:71
|
||||
#: playlistimporter.cpp:64
|
||||
#, kde-format
|
||||
msgid "No album"
|
||||
msgstr "Žádné album"
|
||||
|
||||
#~ msgid "Copy Link"
|
||||
#~ msgstr "Kopírovat odkaz"
|
||||
|
||||
#~ msgid "Link copied to clipboard"
|
||||
#~ msgstr "Odkaz byl zkopírován do schránky"
|
||||
|
||||
#~ msgid "Remove Favorite"
|
||||
#~ msgstr "Odstranit oblíbené"
|
||||
|
||||
|
||||
+42
-38
@@ -1,17 +1,17 @@
|
||||
# Copyright (C) 2024 This file is copyright:
|
||||
# This file is distributed under the same license as the audiotube package.
|
||||
# SPDX-FileCopyrightText: 2021 Burkhard Lück <[email protected]>
|
||||
# SPDX-FileCopyrightText: 2021-2023 Frederik Schwarzer <[email protected]>
|
||||
# SPDX-FileCopyrightText: 2021, 2022, 2023 Frederik Schwarzer <[email protected]>
|
||||
# SPDX-FileCopyrightText: 2022 Frank Steinmetzger <[email protected]>
|
||||
# SPDX-FileCopyrightText: 2024 Johannes Obermayr <[email protected]>
|
||||
# SPDX-FileCopyrightText: 2025 Alexander Becker <[email protected]>
|
||||
# SPDX-FileCopyrightText: 2026 Alois Spitzbart <[email protected]>
|
||||
# SPDX-FileCopyrightText: 2026 Philipp Kiemle <[email protected]>
|
||||
# SPDX-FileCopyrightText: 2026 Alois Spitzbart <[email protected]>
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: audiotube\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2026-10-01 17:39+0000\n"
|
||||
"POT-Creation-Date: 2026-02-20 00:44+0000\n"
|
||||
"PO-Revision-Date: 2026-04-12 10:07+0200\n"
|
||||
"Last-Translator: Alois Spitzbart <[email protected]>\n"
|
||||
"Language-Team: German <[email protected]>\n"
|
||||
@@ -284,7 +284,7 @@ msgstr "Diese Wiedergabeliste ist noch leer"
|
||||
msgid "Import Playlist"
|
||||
msgstr "Wiedergabeliste importieren"
|
||||
|
||||
#: contents/ui/Main.qml:160 main.cpp:52
|
||||
#: contents/ui/Main.qml:160 main.cpp:88
|
||||
#, kde-format
|
||||
msgid "AudioTube"
|
||||
msgstr "AudioTube"
|
||||
@@ -305,84 +305,84 @@ msgstr "Maximierte Wiedergabe beenden"
|
||||
msgid "No media playing"
|
||||
msgstr "Es werden keine Medien wiedergegeben"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:553 contents/ui/SongMenu.qml:107
|
||||
#: contents/ui/MaximizedPlayerPage.qml:538 contents/ui/SongMenu.qml:107
|
||||
#, kde-format
|
||||
msgid "Remove from Favorites"
|
||||
msgstr "Aus Favoriten entfernen"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:553 contents/ui/SongMenu.qml:107
|
||||
#: contents/ui/MaximizedPlayerPage.qml:538 contents/ui/SongMenu.qml:107
|
||||
#, kde-format
|
||||
msgid "Add to Favorites"
|
||||
msgstr "Zu Favoriten hinzufügen"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:578
|
||||
#: contents/ui/MaximizedPlayerPage.qml:563
|
||||
#, kde-format
|
||||
msgid "Open Volume Drawer"
|
||||
msgstr "Lautstärkenleiste öffnen"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:685
|
||||
#: contents/ui/MaximizedPlayerPage.qml:670
|
||||
#, kde-format
|
||||
msgid "Unmute Audio"
|
||||
msgstr "Audio-Stummschaltung aufheben"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:685
|
||||
#: contents/ui/MaximizedPlayerPage.qml:670
|
||||
#, kde-format
|
||||
msgid "Mute Audio"
|
||||
msgstr "Audio stumm schalten"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:724
|
||||
#: contents/ui/MaximizedPlayerPage.qml:709
|
||||
#, kde-format
|
||||
msgctxt "%1 is the audio volume in percent"
|
||||
msgid "%1%"
|
||||
msgstr "%1 %"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:754
|
||||
#: contents/ui/MaximizedPlayerPage.qml:739
|
||||
#, kde-format
|
||||
msgid "Hide Lyrics"
|
||||
msgstr "Liedtext ausblenden"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:754
|
||||
#: contents/ui/MaximizedPlayerPage.qml:739
|
||||
#, kde-format
|
||||
msgid "Show Lyrics"
|
||||
msgstr "Liedtext anzeigen"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:774 contents/ui/SongMenu.qml:139
|
||||
#: contents/ui/MaximizedPlayerPage.qml:759 contents/ui/SongMenu.qml:139
|
||||
#, kde-format
|
||||
msgid "Share Song"
|
||||
msgstr "Lied teilen"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:815
|
||||
#: contents/ui/MaximizedPlayerPage.qml:800
|
||||
#, kde-format
|
||||
msgid "Add to a local playlist"
|
||||
msgstr "Zu einer lokalen Wiedergabeliste hinzufügen"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:852
|
||||
#: contents/ui/MaximizedPlayerPage.qml:837
|
||||
#, kde-format
|
||||
msgid "Hide Queue"
|
||||
msgstr "Warteschlange ausblenden"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:852
|
||||
#: contents/ui/MaximizedPlayerPage.qml:837
|
||||
#, kde-format
|
||||
msgid "Show Queue"
|
||||
msgstr "Warteschlange anzeigen"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1084
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1329
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1069
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1314
|
||||
#, kde-format
|
||||
msgid "Remove Song"
|
||||
msgstr "Lied entfernen"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1119
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1104
|
||||
#, kde-format
|
||||
msgid "Clear Queue"
|
||||
msgstr "Warteschlange leeren"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1144
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1129
|
||||
#, kde-format
|
||||
msgid "Shuffle Queue"
|
||||
msgstr "Warteschlange durchmischen"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1177
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1162
|
||||
#, kde-format
|
||||
msgid "Upcoming Songs"
|
||||
msgstr "Kommende Lieder"
|
||||
@@ -470,6 +470,16 @@ msgstr "Keine passenden vorherigen Suchvorgänge"
|
||||
msgid "Share to"
|
||||
msgstr "Teilen auf"
|
||||
|
||||
#: contents/ui/ShareMenu.qml:49 contents/ui/ShareMenu.qml:103
|
||||
#, kde-format
|
||||
msgid "Copy Link"
|
||||
msgstr "Verknüpfung kopieren"
|
||||
|
||||
#: contents/ui/ShareMenu.qml:54 contents/ui/ShareMenu.qml:108
|
||||
#, kde-format
|
||||
msgid "Link copied to clipboard"
|
||||
msgstr "Verknüpfung in die Zwischenablage kopiert"
|
||||
|
||||
#: contents/ui/Sidebar.qml:108
|
||||
#, kde-format
|
||||
msgid "Home"
|
||||
@@ -510,50 +520,50 @@ msgstr "Aus Verlauf löschen"
|
||||
msgid "Add to playlist"
|
||||
msgstr "Zur Wiedergabeliste hinzufügen"
|
||||
|
||||
#: main.cpp:54
|
||||
#: main.cpp:90
|
||||
#, kde-format
|
||||
msgctxt "YouTube Music is a music streaming service by Google"
|
||||
msgid "Stream music from YouTube Music"
|
||||
msgstr "Musik von YouTube Music streamen"
|
||||
|
||||
#: main.cpp:56
|
||||
#: main.cpp:92
|
||||
#, kde-format
|
||||
msgid "© 2021–2024 Jonah Brüchert, 2021–2024 KDE Community"
|
||||
msgstr "© 2021–2024 Jonah Brüchert, 2021–2024 KDE-Gemeinschaft"
|
||||
|
||||
#: main.cpp:57
|
||||
#: main.cpp:93
|
||||
#, kde-format
|
||||
msgid "Jonah Brüchert"
|
||||
msgstr "Jonah Brüchert"
|
||||
|
||||
#: main.cpp:57
|
||||
#: main.cpp:93
|
||||
#, kde-format
|
||||
msgid "Maintainer"
|
||||
msgstr "Betreuer"
|
||||
|
||||
#: main.cpp:58
|
||||
#: main.cpp:94
|
||||
#, kde-format
|
||||
msgid "Mathis Brüchert"
|
||||
msgstr "Mathis Brüchert"
|
||||
|
||||
#: main.cpp:58
|
||||
#: main.cpp:94
|
||||
#, kde-format
|
||||
msgid "Designer"
|
||||
msgstr "Designer"
|
||||
|
||||
#: main.cpp:59
|
||||
#: main.cpp:95
|
||||
#, kde-format
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
msgid "Your names"
|
||||
msgstr "Deutsches KDE-Übersetzungsteam"
|
||||
|
||||
#: main.cpp:59
|
||||
#: main.cpp:95
|
||||
#, kde-format
|
||||
msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr "[email protected]"
|
||||
|
||||
#: main.cpp:66
|
||||
#: main.cpp:102
|
||||
#, kde-format
|
||||
msgctxt "YouTube Music is a music streaming service by Google"
|
||||
msgid "Unofficial API for YouTube Music"
|
||||
@@ -564,22 +574,16 @@ msgstr "Inoffizielle API für YouTube Music"
|
||||
msgid "No description"
|
||||
msgstr "Keine Beschreibung"
|
||||
|
||||
#: playlistimporter.cpp:68
|
||||
#: playlistimporter.cpp:62
|
||||
#, kde-format
|
||||
msgid "No title"
|
||||
msgstr "Kein Titel"
|
||||
|
||||
#: playlistimporter.cpp:71
|
||||
#: playlistimporter.cpp:64
|
||||
#, kde-format
|
||||
msgid "No album"
|
||||
msgstr "Kein Album"
|
||||
|
||||
#~ msgid "Copy Link"
|
||||
#~ msgstr "Verknüpfung kopieren"
|
||||
|
||||
#~ msgid "Link copied to clipboard"
|
||||
#~ msgstr "Verknüpfung in die Zwischenablage kopiert"
|
||||
|
||||
#~ msgid "Remove Favorite"
|
||||
#~ msgstr "Favoriten entfernen"
|
||||
|
||||
|
||||
+40
-36
@@ -6,7 +6,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: audiotube\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2026-10-01 17:39+0000\n"
|
||||
"POT-Creation-Date: 2026-02-20 00:44+0000\n"
|
||||
"PO-Revision-Date: 2024-05-20 19:30+0100\n"
|
||||
"Last-Translator: Steve Allewell <[email protected]>\n"
|
||||
"Language-Team: British English\n"
|
||||
@@ -286,7 +286,7 @@ msgstr "This playlist is still empty"
|
||||
msgid "Import Playlist"
|
||||
msgstr "Import Playlist"
|
||||
|
||||
#: contents/ui/Main.qml:160 main.cpp:52
|
||||
#: contents/ui/Main.qml:160 main.cpp:88
|
||||
#, kde-format
|
||||
msgid "AudioTube"
|
||||
msgstr "AudioTube"
|
||||
@@ -307,88 +307,88 @@ msgstr "Close Maximised Player"
|
||||
msgid "No media playing"
|
||||
msgstr "No media playing"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:553 contents/ui/SongMenu.qml:107
|
||||
#: contents/ui/MaximizedPlayerPage.qml:538 contents/ui/SongMenu.qml:107
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Remove from Favourites"
|
||||
msgid "Remove from Favorites"
|
||||
msgstr "Remove from Favourites"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:553 contents/ui/SongMenu.qml:107
|
||||
#: contents/ui/MaximizedPlayerPage.qml:538 contents/ui/SongMenu.qml:107
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Add to Favourites"
|
||||
msgid "Add to Favorites"
|
||||
msgstr "Add to Favourites"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:578
|
||||
#: contents/ui/MaximizedPlayerPage.qml:563
|
||||
#, kde-format
|
||||
msgid "Open Volume Drawer"
|
||||
msgstr "Open Volume Drawer"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:685
|
||||
#: contents/ui/MaximizedPlayerPage.qml:670
|
||||
#, kde-format
|
||||
msgid "Unmute Audio"
|
||||
msgstr "Unmute Audio"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:685
|
||||
#: contents/ui/MaximizedPlayerPage.qml:670
|
||||
#, kde-format
|
||||
msgid "Mute Audio"
|
||||
msgstr "Mute Audio"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:724
|
||||
#: contents/ui/MaximizedPlayerPage.qml:709
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "%1%"
|
||||
msgctxt "%1 is the audio volume in percent"
|
||||
msgid "%1%"
|
||||
msgstr "%1%"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:754
|
||||
#: contents/ui/MaximizedPlayerPage.qml:739
|
||||
#, kde-format
|
||||
msgid "Hide Lyrics"
|
||||
msgstr "Hide Lyrics"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:754
|
||||
#: contents/ui/MaximizedPlayerPage.qml:739
|
||||
#, kde-format
|
||||
msgid "Show Lyrics"
|
||||
msgstr "Show Lyrics"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:774 contents/ui/SongMenu.qml:139
|
||||
#: contents/ui/MaximizedPlayerPage.qml:759 contents/ui/SongMenu.qml:139
|
||||
#, kde-format
|
||||
msgid "Share Song"
|
||||
msgstr "Share Song"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:815
|
||||
#: contents/ui/MaximizedPlayerPage.qml:800
|
||||
#, kde-format
|
||||
msgid "Add to a local playlist"
|
||||
msgstr "Add to a local playlist"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:852
|
||||
#: contents/ui/MaximizedPlayerPage.qml:837
|
||||
#, kde-format
|
||||
msgid "Hide Queue"
|
||||
msgstr "Hide Queue"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:852
|
||||
#: contents/ui/MaximizedPlayerPage.qml:837
|
||||
#, kde-format
|
||||
msgid "Show Queue"
|
||||
msgstr "Show Queue"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1084
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1329
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1069
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1314
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Remove Favourite"
|
||||
msgid "Remove Song"
|
||||
msgstr "Remove Favourite"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1119
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1104
|
||||
#, kde-format
|
||||
msgid "Clear Queue"
|
||||
msgstr "Clear Queue"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1144
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1129
|
||||
#, kde-format
|
||||
msgid "Shuffle Queue"
|
||||
msgstr "Shuffle Queue"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1177
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1162
|
||||
#, kde-format
|
||||
msgid "Upcoming Songs"
|
||||
msgstr "Upcoming Songs"
|
||||
@@ -479,6 +479,16 @@ msgstr "No matching previous searches"
|
||||
msgid "Share to"
|
||||
msgstr "Share to"
|
||||
|
||||
#: contents/ui/ShareMenu.qml:49 contents/ui/ShareMenu.qml:103
|
||||
#, kde-format
|
||||
msgid "Copy Link"
|
||||
msgstr "Copy Link"
|
||||
|
||||
#: contents/ui/ShareMenu.qml:54 contents/ui/ShareMenu.qml:108
|
||||
#, kde-format
|
||||
msgid "Link copied to clipboard"
|
||||
msgstr "Link copied to clipboard"
|
||||
|
||||
#: contents/ui/Sidebar.qml:108
|
||||
#, kde-format
|
||||
msgid "Home"
|
||||
@@ -519,51 +529,51 @@ msgstr "Remove from History"
|
||||
msgid "Add to playlist"
|
||||
msgstr "Add to playlist"
|
||||
|
||||
#: main.cpp:54
|
||||
#: main.cpp:90
|
||||
#, kde-format
|
||||
msgctxt "YouTube Music is a music streaming service by Google"
|
||||
msgid "Stream music from YouTube Music"
|
||||
msgstr "Stream music from YouTube Music"
|
||||
|
||||
#: main.cpp:56
|
||||
#: main.cpp:92
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "© 2021-2024 Jonah Brüchert, 2021-2024 KDE Community"
|
||||
msgid "© 2021–2024 Jonah Brüchert, 2021–2024 KDE Community"
|
||||
msgstr "© 2021-2024 Jonah Brüchert, 2021-2024 KDE Community"
|
||||
|
||||
#: main.cpp:57
|
||||
#: main.cpp:93
|
||||
#, kde-format
|
||||
msgid "Jonah Brüchert"
|
||||
msgstr "Jonah Brüchert"
|
||||
|
||||
#: main.cpp:57
|
||||
#: main.cpp:93
|
||||
#, kde-format
|
||||
msgid "Maintainer"
|
||||
msgstr "Maintainer"
|
||||
|
||||
#: main.cpp:58
|
||||
#: main.cpp:94
|
||||
#, kde-format
|
||||
msgid "Mathis Brüchert"
|
||||
msgstr "Mathis Brüchert"
|
||||
|
||||
#: main.cpp:58
|
||||
#: main.cpp:94
|
||||
#, kde-format
|
||||
msgid "Designer"
|
||||
msgstr "Designer"
|
||||
|
||||
#: main.cpp:59
|
||||
#: main.cpp:95
|
||||
#, kde-format
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
msgid "Your names"
|
||||
msgstr "Steve Allewell"
|
||||
|
||||
#: main.cpp:59
|
||||
#: main.cpp:95
|
||||
#, kde-format
|
||||
msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr "[email protected]"
|
||||
|
||||
#: main.cpp:66
|
||||
#: main.cpp:102
|
||||
#, kde-format
|
||||
msgctxt "YouTube Music is a music streaming service by Google"
|
||||
msgid "Unofficial API for YouTube Music"
|
||||
@@ -574,22 +584,16 @@ msgstr "Unofficial API for YouTube Music"
|
||||
msgid "No description"
|
||||
msgstr "No description"
|
||||
|
||||
#: playlistimporter.cpp:68
|
||||
#: playlistimporter.cpp:62
|
||||
#, kde-format
|
||||
msgid "No title"
|
||||
msgstr "No title"
|
||||
|
||||
#: playlistimporter.cpp:71
|
||||
#: playlistimporter.cpp:64
|
||||
#, kde-format
|
||||
msgid "No album"
|
||||
msgstr "No album"
|
||||
|
||||
#~ msgid "Copy Link"
|
||||
#~ msgstr "Copy Link"
|
||||
|
||||
#~ msgid "Link copied to clipboard"
|
||||
#~ msgstr "Link copied to clipboard"
|
||||
|
||||
#, fuzzy
|
||||
#~| msgid "Remove Favourite"
|
||||
#~ msgid "Remove Favorite"
|
||||
|
||||
+40
-36
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: audiotube\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2026-10-01 17:39+0000\n"
|
||||
"POT-Creation-Date: 2026-02-20 00:44+0000\n"
|
||||
"PO-Revision-Date: 2024-05-04 23:30+0100\n"
|
||||
"Last-Translator: Oliver Kellogg <[email protected]>\n"
|
||||
"Language-Team: Esperanto <[email protected]>\n"
|
||||
@@ -287,7 +287,7 @@ msgstr "Ĉi tiu ludlisto ankoraŭ estas malplena"
|
||||
msgid "Import Playlist"
|
||||
msgstr "Importi Ludliston"
|
||||
|
||||
#: contents/ui/Main.qml:160 main.cpp:52
|
||||
#: contents/ui/Main.qml:160 main.cpp:88
|
||||
#, kde-format
|
||||
msgid "AudioTube"
|
||||
msgstr "AudioTube"
|
||||
@@ -308,88 +308,88 @@ msgstr "Fermi Maksimumigitan Ludanton"
|
||||
msgid "No media playing"
|
||||
msgstr "Neniu aŭdvidaĵo ludanta"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:553 contents/ui/SongMenu.qml:107
|
||||
#: contents/ui/MaximizedPlayerPage.qml:538 contents/ui/SongMenu.qml:107
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Remove from Favourites"
|
||||
msgid "Remove from Favorites"
|
||||
msgstr "Forigi el Favoritoj"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:553 contents/ui/SongMenu.qml:107
|
||||
#: contents/ui/MaximizedPlayerPage.qml:538 contents/ui/SongMenu.qml:107
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Add to Favourites"
|
||||
msgid "Add to Favorites"
|
||||
msgstr "Aldoni al Favoritoj"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:578
|
||||
#: contents/ui/MaximizedPlayerPage.qml:563
|
||||
#, kde-format
|
||||
msgid "Open Volume Drawer"
|
||||
msgstr "Malfermi Laŭteckeston"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:685
|
||||
#: contents/ui/MaximizedPlayerPage.qml:670
|
||||
#, kde-format
|
||||
msgid "Unmute Audio"
|
||||
msgstr "Malŝalti Audio"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:685
|
||||
#: contents/ui/MaximizedPlayerPage.qml:670
|
||||
#, kde-format
|
||||
msgid "Mute Audio"
|
||||
msgstr "Silentigi Audio"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:724
|
||||
#: contents/ui/MaximizedPlayerPage.qml:709
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "%1%"
|
||||
msgctxt "%1 is the audio volume in percent"
|
||||
msgid "%1%"
|
||||
msgstr "%1%"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:754
|
||||
#: contents/ui/MaximizedPlayerPage.qml:739
|
||||
#, kde-format
|
||||
msgid "Hide Lyrics"
|
||||
msgstr "Kaŝi Kantotekstojn"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:754
|
||||
#: contents/ui/MaximizedPlayerPage.qml:739
|
||||
#, kde-format
|
||||
msgid "Show Lyrics"
|
||||
msgstr "Montri kantotekstojn"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:774 contents/ui/SongMenu.qml:139
|
||||
#: contents/ui/MaximizedPlayerPage.qml:759 contents/ui/SongMenu.qml:139
|
||||
#, kde-format
|
||||
msgid "Share Song"
|
||||
msgstr "Kunhavigi Kanton"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:815
|
||||
#: contents/ui/MaximizedPlayerPage.qml:800
|
||||
#, kde-format
|
||||
msgid "Add to a local playlist"
|
||||
msgstr "Aldoni al loka ludlisto"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:852
|
||||
#: contents/ui/MaximizedPlayerPage.qml:837
|
||||
#, kde-format
|
||||
msgid "Hide Queue"
|
||||
msgstr "Kaŝi Vicon"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:852
|
||||
#: contents/ui/MaximizedPlayerPage.qml:837
|
||||
#, kde-format
|
||||
msgid "Show Queue"
|
||||
msgstr "Montri Vicon"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1084
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1329
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1069
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1314
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Remove Favourite"
|
||||
msgid "Remove Song"
|
||||
msgstr "Forigi Favoriton"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1119
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1104
|
||||
#, kde-format
|
||||
msgid "Clear Queue"
|
||||
msgstr "Viŝi Vicon"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1144
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1129
|
||||
#, kde-format
|
||||
msgid "Shuffle Queue"
|
||||
msgstr "Miksi Vicon"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1177
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1162
|
||||
#, kde-format
|
||||
msgid "Upcoming Songs"
|
||||
msgstr "Venontaj Kantoj"
|
||||
@@ -480,6 +480,16 @@ msgstr "Neniuj kongruaj antaŭaj serĉoj"
|
||||
msgid "Share to"
|
||||
msgstr "Kunhavigi al"
|
||||
|
||||
#: contents/ui/ShareMenu.qml:49 contents/ui/ShareMenu.qml:103
|
||||
#, kde-format
|
||||
msgid "Copy Link"
|
||||
msgstr "Kopii Ligilon"
|
||||
|
||||
#: contents/ui/ShareMenu.qml:54 contents/ui/ShareMenu.qml:108
|
||||
#, kde-format
|
||||
msgid "Link copied to clipboard"
|
||||
msgstr "Ligilo kopiita al tondujo"
|
||||
|
||||
#: contents/ui/Sidebar.qml:108
|
||||
#, kde-format
|
||||
msgid "Home"
|
||||
@@ -520,51 +530,51 @@ msgstr "Forigi el Historio"
|
||||
msgid "Add to playlist"
|
||||
msgstr "Aldoni al ludlisto"
|
||||
|
||||
#: main.cpp:54
|
||||
#: main.cpp:90
|
||||
#, kde-format
|
||||
msgctxt "YouTube Music is a music streaming service by Google"
|
||||
msgid "Stream music from YouTube Music"
|
||||
msgstr "Fluigi muzikon de YouTube Music"
|
||||
|
||||
#: main.cpp:56
|
||||
#: main.cpp:92
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "© 2021-2024 Jonah Brüchert, 2021-2024 KDE Community"
|
||||
msgid "© 2021–2024 Jonah Brüchert, 2021–2024 KDE Community"
|
||||
msgstr "© 2021-2024 Jonah Brüchert, 2021-2023 KDE-Komunumo"
|
||||
|
||||
#: main.cpp:57
|
||||
#: main.cpp:93
|
||||
#, kde-format
|
||||
msgid "Jonah Brüchert"
|
||||
msgstr "Jonah Brüchert"
|
||||
|
||||
#: main.cpp:57
|
||||
#: main.cpp:93
|
||||
#, kde-format
|
||||
msgid "Maintainer"
|
||||
msgstr "Prizorganto"
|
||||
|
||||
#: main.cpp:58
|
||||
#: main.cpp:94
|
||||
#, kde-format
|
||||
msgid "Mathis Brüchert"
|
||||
msgstr "Mathis Brüchert"
|
||||
|
||||
#: main.cpp:58
|
||||
#: main.cpp:94
|
||||
#, kde-format
|
||||
msgid "Designer"
|
||||
msgstr "Dezajnisto"
|
||||
|
||||
#: main.cpp:59
|
||||
#: main.cpp:95
|
||||
#, kde-format
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
msgid "Your names"
|
||||
msgstr "Oliver Kellogg"
|
||||
|
||||
#: main.cpp:59
|
||||
#: main.cpp:95
|
||||
#, kde-format
|
||||
msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr "[email protected]"
|
||||
|
||||
#: main.cpp:66
|
||||
#: main.cpp:102
|
||||
#, kde-format
|
||||
msgctxt "YouTube Music is a music streaming service by Google"
|
||||
msgid "Unofficial API for YouTube Music"
|
||||
@@ -575,22 +585,16 @@ msgstr "Neoficiala API por YouTube Music"
|
||||
msgid "No description"
|
||||
msgstr "Neniu priskribo"
|
||||
|
||||
#: playlistimporter.cpp:68
|
||||
#: playlistimporter.cpp:62
|
||||
#, kde-format
|
||||
msgid "No title"
|
||||
msgstr "Neniu titolo"
|
||||
|
||||
#: playlistimporter.cpp:71
|
||||
#: playlistimporter.cpp:64
|
||||
#, kde-format
|
||||
msgid "No album"
|
||||
msgstr "Neniu albumo"
|
||||
|
||||
#~ msgid "Copy Link"
|
||||
#~ msgstr "Kopii Ligilon"
|
||||
|
||||
#~ msgid "Link copied to clipboard"
|
||||
#~ msgstr "Ligilo kopiita al tondujo"
|
||||
|
||||
#, fuzzy
|
||||
#~| msgid "Remove Favourite"
|
||||
#~ msgid "Remove Favorite"
|
||||
|
||||
+40
-36
@@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: audiotube\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2026-10-01 17:39+0000\n"
|
||||
"POT-Creation-Date: 2026-02-20 00:44+0000\n"
|
||||
"PO-Revision-Date: 2026-02-21 00:33+0100\n"
|
||||
"Last-Translator: Eloy Cuadra <[email protected]>\n"
|
||||
"Language-Team: Spanish <[email protected]>\n"
|
||||
@@ -281,7 +281,7 @@ msgstr "Esta lista de reproducción está vacía"
|
||||
msgid "Import Playlist"
|
||||
msgstr "Importar lista de reproducción"
|
||||
|
||||
#: contents/ui/Main.qml:160 main.cpp:52
|
||||
#: contents/ui/Main.qml:160 main.cpp:88
|
||||
#, kde-format
|
||||
msgid "AudioTube"
|
||||
msgstr "AudioTube"
|
||||
@@ -302,84 +302,84 @@ msgstr "Cerrar reproductor maximizado"
|
||||
msgid "No media playing"
|
||||
msgstr "Ningún medio en reproducción"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:553 contents/ui/SongMenu.qml:107
|
||||
#: contents/ui/MaximizedPlayerPage.qml:538 contents/ui/SongMenu.qml:107
|
||||
#, kde-format
|
||||
msgid "Remove from Favorites"
|
||||
msgstr "Eliminar de favoritas"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:553 contents/ui/SongMenu.qml:107
|
||||
#: contents/ui/MaximizedPlayerPage.qml:538 contents/ui/SongMenu.qml:107
|
||||
#, kde-format
|
||||
msgid "Add to Favorites"
|
||||
msgstr "Añadir a favoritas"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:578
|
||||
#: contents/ui/MaximizedPlayerPage.qml:563
|
||||
#, kde-format
|
||||
msgid "Open Volume Drawer"
|
||||
msgstr "Abrir cajón del volumen"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:685
|
||||
#: contents/ui/MaximizedPlayerPage.qml:670
|
||||
#, kde-format
|
||||
msgid "Unmute Audio"
|
||||
msgstr "Reanudar el sonido"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:685
|
||||
#: contents/ui/MaximizedPlayerPage.qml:670
|
||||
#, kde-format
|
||||
msgid "Mute Audio"
|
||||
msgstr "Silenciar el sonido"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:724
|
||||
#: contents/ui/MaximizedPlayerPage.qml:709
|
||||
#, kde-format
|
||||
msgctxt "%1 is the audio volume in percent"
|
||||
msgid "%1%"
|
||||
msgstr "%1 %"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:754
|
||||
#: contents/ui/MaximizedPlayerPage.qml:739
|
||||
#, kde-format
|
||||
msgid "Hide Lyrics"
|
||||
msgstr "Ocultar letra"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:754
|
||||
#: contents/ui/MaximizedPlayerPage.qml:739
|
||||
#, kde-format
|
||||
msgid "Show Lyrics"
|
||||
msgstr "Mostrar letra"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:774 contents/ui/SongMenu.qml:139
|
||||
#: contents/ui/MaximizedPlayerPage.qml:759 contents/ui/SongMenu.qml:139
|
||||
#, kde-format
|
||||
msgid "Share Song"
|
||||
msgstr "Compartir canción"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:815
|
||||
#: contents/ui/MaximizedPlayerPage.qml:800
|
||||
#, kde-format
|
||||
msgid "Add to a local playlist"
|
||||
msgstr "Añadir a una lista de reproducción local"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:852
|
||||
#: contents/ui/MaximizedPlayerPage.qml:837
|
||||
#, kde-format
|
||||
msgid "Hide Queue"
|
||||
msgstr "Ocultar cola"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:852
|
||||
#: contents/ui/MaximizedPlayerPage.qml:837
|
||||
#, kde-format
|
||||
msgid "Show Queue"
|
||||
msgstr "Mostrar cola"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1084
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1329
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1069
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1314
|
||||
#, kde-format
|
||||
msgid "Remove Song"
|
||||
msgstr "Eliminar canción"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1119
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1104
|
||||
#, kde-format
|
||||
msgid "Clear Queue"
|
||||
msgstr "Borrar cola"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1144
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1129
|
||||
#, kde-format
|
||||
msgid "Shuffle Queue"
|
||||
msgstr "Desordenar cola"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1177
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1162
|
||||
#, kde-format
|
||||
msgid "Upcoming Songs"
|
||||
msgstr "Próximas canciones"
|
||||
@@ -467,6 +467,16 @@ msgstr "No hay búsquedas anteriores coincidentes"
|
||||
msgid "Share to"
|
||||
msgstr "Compartir con"
|
||||
|
||||
#: contents/ui/ShareMenu.qml:49 contents/ui/ShareMenu.qml:103
|
||||
#, kde-format
|
||||
msgid "Copy Link"
|
||||
msgstr "Copiar enlace"
|
||||
|
||||
#: contents/ui/ShareMenu.qml:54 contents/ui/ShareMenu.qml:108
|
||||
#, kde-format
|
||||
msgid "Link copied to clipboard"
|
||||
msgstr "Se ha copiado el enlace en el portapapeles"
|
||||
|
||||
#: contents/ui/Sidebar.qml:108
|
||||
#, kde-format
|
||||
msgid "Home"
|
||||
@@ -507,50 +517,50 @@ msgstr "Eliminar del historial"
|
||||
msgid "Add to playlist"
|
||||
msgstr "Añadir a la lista de reproducción"
|
||||
|
||||
#: main.cpp:54
|
||||
#: main.cpp:90
|
||||
#, kde-format
|
||||
msgctxt "YouTube Music is a music streaming service by Google"
|
||||
msgid "Stream music from YouTube Music"
|
||||
msgstr "Transmisión de música de YouTube Music"
|
||||
|
||||
#: main.cpp:56
|
||||
#: main.cpp:92
|
||||
#, kde-format
|
||||
msgid "© 2021–2024 Jonah Brüchert, 2021–2024 KDE Community"
|
||||
msgstr "© 2021–2024 Jonah Brüchert, 2021–2024 La Comunidad KDE"
|
||||
|
||||
#: main.cpp:57
|
||||
#: main.cpp:93
|
||||
#, kde-format
|
||||
msgid "Jonah Brüchert"
|
||||
msgstr "Jonah Brüchert"
|
||||
|
||||
#: main.cpp:57
|
||||
#: main.cpp:93
|
||||
#, kde-format
|
||||
msgid "Maintainer"
|
||||
msgstr "Responsable"
|
||||
|
||||
#: main.cpp:58
|
||||
#: main.cpp:94
|
||||
#, kde-format
|
||||
msgid "Mathis Brüchert"
|
||||
msgstr "Mathis Brüchert"
|
||||
|
||||
#: main.cpp:58
|
||||
#: main.cpp:94
|
||||
#, kde-format
|
||||
msgid "Designer"
|
||||
msgstr "Diseñador"
|
||||
|
||||
#: main.cpp:59
|
||||
#: main.cpp:95
|
||||
#, kde-format
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
msgid "Your names"
|
||||
msgstr "Eloy Cuadra"
|
||||
|
||||
#: main.cpp:59
|
||||
#: main.cpp:95
|
||||
#, kde-format
|
||||
msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr "[email protected]"
|
||||
|
||||
#: main.cpp:66
|
||||
#: main.cpp:102
|
||||
#, kde-format
|
||||
msgctxt "YouTube Music is a music streaming service by Google"
|
||||
msgid "Unofficial API for YouTube Music"
|
||||
@@ -561,18 +571,12 @@ msgstr "API no oficial de YouTube Music"
|
||||
msgid "No description"
|
||||
msgstr "Sin descripción"
|
||||
|
||||
#: playlistimporter.cpp:68
|
||||
#: playlistimporter.cpp:62
|
||||
#, kde-format
|
||||
msgid "No title"
|
||||
msgstr "Sin título"
|
||||
|
||||
#: playlistimporter.cpp:71
|
||||
#: playlistimporter.cpp:64
|
||||
#, kde-format
|
||||
msgid "No album"
|
||||
msgstr "Sin álbumes"
|
||||
|
||||
#~ msgid "Copy Link"
|
||||
#~ msgstr "Copiar enlace"
|
||||
|
||||
#~ msgid "Link copied to clipboard"
|
||||
#~ msgstr "Se ha copiado el enlace en el portapapeles"
|
||||
+40
-36
@@ -9,7 +9,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: audiotube\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2026-10-01 17:39+0000\n"
|
||||
"POT-Creation-Date: 2026-02-20 00:44+0000\n"
|
||||
"PO-Revision-Date: 2025-10-18 16:52+0200\n"
|
||||
"Last-Translator: Iñigo Salvador Azurmendi <[email protected]>\n"
|
||||
"Language-Team: Basque <[email protected]>\n"
|
||||
@@ -287,7 +287,7 @@ msgstr "Jotze-zerrenda hau oraindik hutsik dago"
|
||||
msgid "Import Playlist"
|
||||
msgstr "Inportatu jotze-zerrenda"
|
||||
|
||||
#: contents/ui/Main.qml:160 main.cpp:52
|
||||
#: contents/ui/Main.qml:160 main.cpp:88
|
||||
#, kde-format
|
||||
msgid "AudioTube"
|
||||
msgstr "AudioTube"
|
||||
@@ -308,86 +308,86 @@ msgstr "Itxi maximizatutako jotzailea"
|
||||
msgid "No media playing"
|
||||
msgstr "Ez da euskarririk jotzen ari"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:553 contents/ui/SongMenu.qml:107
|
||||
#: contents/ui/MaximizedPlayerPage.qml:538 contents/ui/SongMenu.qml:107
|
||||
#, kde-format
|
||||
msgid "Remove from Favorites"
|
||||
msgstr "Kendu gogokoetatik"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:553 contents/ui/SongMenu.qml:107
|
||||
#: contents/ui/MaximizedPlayerPage.qml:538 contents/ui/SongMenu.qml:107
|
||||
#, kde-format
|
||||
msgid "Add to Favorites"
|
||||
msgstr "Gehitu gogokoetara"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:578
|
||||
#: contents/ui/MaximizedPlayerPage.qml:563
|
||||
#, kde-format
|
||||
msgid "Open Volume Drawer"
|
||||
msgstr "Ireki bolumenaren tiradera"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:685
|
||||
#: contents/ui/MaximizedPlayerPage.qml:670
|
||||
#, kde-format
|
||||
msgid "Unmute Audio"
|
||||
msgstr "Ozendu audioa"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:685
|
||||
#: contents/ui/MaximizedPlayerPage.qml:670
|
||||
#, kde-format
|
||||
msgid "Mute Audio"
|
||||
msgstr "Isilarazi audioa"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:724
|
||||
#: contents/ui/MaximizedPlayerPage.qml:709
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "%1%"
|
||||
msgctxt "%1 is the audio volume in percent"
|
||||
msgid "%1%"
|
||||
msgstr "%%1"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:754
|
||||
#: contents/ui/MaximizedPlayerPage.qml:739
|
||||
#, kde-format
|
||||
msgid "Hide Lyrics"
|
||||
msgstr "Ezkutatu hitzak"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:754
|
||||
#: contents/ui/MaximizedPlayerPage.qml:739
|
||||
#, kde-format
|
||||
msgid "Show Lyrics"
|
||||
msgstr "Erakutsi hitzak"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:774 contents/ui/SongMenu.qml:139
|
||||
#: contents/ui/MaximizedPlayerPage.qml:759 contents/ui/SongMenu.qml:139
|
||||
#, kde-format
|
||||
msgid "Share Song"
|
||||
msgstr "Partekatu abestia"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:815
|
||||
#: contents/ui/MaximizedPlayerPage.qml:800
|
||||
#, kde-format
|
||||
msgid "Add to a local playlist"
|
||||
msgstr "Gehitu bertako jotze-zerrenda batera."
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:852
|
||||
#: contents/ui/MaximizedPlayerPage.qml:837
|
||||
#, kde-format
|
||||
msgid "Hide Queue"
|
||||
msgstr "Ezkutatu ilara"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:852
|
||||
#: contents/ui/MaximizedPlayerPage.qml:837
|
||||
#, kde-format
|
||||
msgid "Show Queue"
|
||||
msgstr "Erakutsi ilara"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1084
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1329
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1069
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1314
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Remove Favorite"
|
||||
msgid "Remove Song"
|
||||
msgstr "Kendu gogokoa"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1119
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1104
|
||||
#, kde-format
|
||||
msgid "Clear Queue"
|
||||
msgstr "Hustu ilara"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1144
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1129
|
||||
#, kde-format
|
||||
msgid "Shuffle Queue"
|
||||
msgstr "Nahastu ilara"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1177
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1162
|
||||
#, kde-format
|
||||
msgid "Upcoming Songs"
|
||||
msgstr "Hurrengo abestiak"
|
||||
@@ -478,6 +478,16 @@ msgstr "Ez dago bat datorren aurreko bilaketarik"
|
||||
msgid "Share to"
|
||||
msgstr "Partekatu honi,"
|
||||
|
||||
#: contents/ui/ShareMenu.qml:49 contents/ui/ShareMenu.qml:103
|
||||
#, kde-format
|
||||
msgid "Copy Link"
|
||||
msgstr "Kopiatu esteka"
|
||||
|
||||
#: contents/ui/ShareMenu.qml:54 contents/ui/ShareMenu.qml:108
|
||||
#, kde-format
|
||||
msgid "Link copied to clipboard"
|
||||
msgstr "Esteka arbelera kopiatu da"
|
||||
|
||||
#: contents/ui/Sidebar.qml:108
|
||||
#, kde-format
|
||||
msgid "Home"
|
||||
@@ -518,51 +528,51 @@ msgstr "Kendu historiatik"
|
||||
msgid "Add to playlist"
|
||||
msgstr "Gehitu jotze-zerrendara"
|
||||
|
||||
#: main.cpp:54
|
||||
#: main.cpp:90
|
||||
#, kde-format
|
||||
msgctxt "YouTube Music is a music streaming service by Google"
|
||||
msgid "Stream music from YouTube Music"
|
||||
msgstr "«YouTube Music»etik musika korrontea"
|
||||
|
||||
#: main.cpp:56
|
||||
#: main.cpp:92
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "© 2021-2024 Jonah Brüchert, 2021-2024 KDE Community"
|
||||
msgid "© 2021–2024 Jonah Brüchert, 2021–2024 KDE Community"
|
||||
msgstr "© 2021-2024 Jonah Brüchert, 2021-2024 KDE Komunitatea"
|
||||
|
||||
#: main.cpp:57
|
||||
#: main.cpp:93
|
||||
#, kde-format
|
||||
msgid "Jonah Brüchert"
|
||||
msgstr "Jonah Brüchert"
|
||||
|
||||
#: main.cpp:57
|
||||
#: main.cpp:93
|
||||
#, kde-format
|
||||
msgid "Maintainer"
|
||||
msgstr "Arduraduna"
|
||||
|
||||
#: main.cpp:58
|
||||
#: main.cpp:94
|
||||
#, kde-format
|
||||
msgid "Mathis Brüchert"
|
||||
msgstr "Mathis Brüchert"
|
||||
|
||||
#: main.cpp:58
|
||||
#: main.cpp:94
|
||||
#, kde-format
|
||||
msgid "Designer"
|
||||
msgstr "Diseinatzailea"
|
||||
|
||||
#: main.cpp:59
|
||||
#: main.cpp:95
|
||||
#, kde-format
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
msgid "Your names"
|
||||
msgstr "Iñigo Salvador Azurmendi"
|
||||
|
||||
#: main.cpp:59
|
||||
#: main.cpp:95
|
||||
#, kde-format
|
||||
msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr "[email protected]"
|
||||
|
||||
#: main.cpp:66
|
||||
#: main.cpp:102
|
||||
#, kde-format
|
||||
msgctxt "YouTube Music is a music streaming service by Google"
|
||||
msgid "Unofficial API for YouTube Music"
|
||||
@@ -573,22 +583,16 @@ msgstr "«YouTube Music»erako API ez-ofiziala"
|
||||
msgid "No description"
|
||||
msgstr "Deskribapenik ez"
|
||||
|
||||
#: playlistimporter.cpp:68
|
||||
#: playlistimporter.cpp:62
|
||||
#, kde-format
|
||||
msgid "No title"
|
||||
msgstr "Titulurik ez"
|
||||
|
||||
#: playlistimporter.cpp:71
|
||||
#: playlistimporter.cpp:64
|
||||
#, kde-format
|
||||
msgid "No album"
|
||||
msgstr "Albumik ez"
|
||||
|
||||
#~ msgid "Copy Link"
|
||||
#~ msgstr "Kopiatu esteka"
|
||||
|
||||
#~ msgid "Link copied to clipboard"
|
||||
#~ msgstr "Esteka arbelera kopiatu da"
|
||||
|
||||
#~ msgid "Remove Favorite"
|
||||
#~ msgstr "Kendu gogokoa"
|
||||
|
||||
|
||||
+52
-47
@@ -6,8 +6,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: audiotube\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2026-10-01 17:39+0000\n"
|
||||
"PO-Revision-Date: 2026-08-26 12:19+0300\n"
|
||||
"POT-Creation-Date: 2026-02-20 00:44+0000\n"
|
||||
"PO-Revision-Date: 2026-02-26 10:05+0200\n"
|
||||
"Last-Translator: Tommi Nieminen <[email protected]>\n"
|
||||
"Language-Team: Finnish <[email protected]>\n"
|
||||
"Language: fi\n"
|
||||
@@ -123,7 +123,7 @@ msgstr "Videot"
|
||||
#: contents/ui/BentoCard.qml:158
|
||||
#, kde-format
|
||||
msgid "More options"
|
||||
msgstr "Enemmän valintoja"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/ConfirmationMessage.qml:16
|
||||
#, kde-format
|
||||
@@ -184,23 +184,24 @@ msgstr "Muuta soittolistan nimeä"
|
||||
#, kde-format
|
||||
msgctxt "@title:window"
|
||||
msgid "Explore"
|
||||
msgstr "Tutki"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/HeroCard.qml:128
|
||||
#, kde-format
|
||||
msgid "Featured Pick"
|
||||
msgstr "Esitelty poiminta"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/HeroCard.qml:167
|
||||
#, kde-format
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Play Next"
|
||||
msgid "Play Now"
|
||||
msgstr "Toista nyt"
|
||||
msgstr "Toista seuraava"
|
||||
|
||||
#: contents/ui/HomePage.qml:18
|
||||
#, kde-format
|
||||
msgctxt "@title:window"
|
||||
msgid "Home"
|
||||
msgstr "Koti"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/LibraryPage.qml:32 contents/ui/LibraryPage.qml:135
|
||||
#: contents/ui/NavigationBar.qml:47 contents/ui/NavigationBar.qml:53
|
||||
@@ -278,7 +279,7 @@ msgstr "Soittolista on yhä tyhjä"
|
||||
msgid "Import Playlist"
|
||||
msgstr "Tuo soittolista"
|
||||
|
||||
#: contents/ui/Main.qml:160 main.cpp:52
|
||||
#: contents/ui/Main.qml:160 main.cpp:88
|
||||
#, kde-format
|
||||
msgid "AudioTube"
|
||||
msgstr "AudioTube"
|
||||
@@ -299,84 +300,84 @@ msgstr "Sulje suurennettu soitin"
|
||||
msgid "No media playing"
|
||||
msgstr "Mitään ei toisteta"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:553 contents/ui/SongMenu.qml:107
|
||||
#: contents/ui/MaximizedPlayerPage.qml:538 contents/ui/SongMenu.qml:107
|
||||
#, kde-format
|
||||
msgid "Remove from Favorites"
|
||||
msgstr "Poista suosikeista"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:553 contents/ui/SongMenu.qml:107
|
||||
#: contents/ui/MaximizedPlayerPage.qml:538 contents/ui/SongMenu.qml:107
|
||||
#, kde-format
|
||||
msgid "Add to Favorites"
|
||||
msgstr "Lisää suosikkeihin"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:578
|
||||
#: contents/ui/MaximizedPlayerPage.qml:563
|
||||
#, kde-format
|
||||
msgid "Open Volume Drawer"
|
||||
msgstr "Avaa äänenvoimakkuus"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:685
|
||||
#: contents/ui/MaximizedPlayerPage.qml:670
|
||||
#, kde-format
|
||||
msgid "Unmute Audio"
|
||||
msgstr "Poista äänen vaimennus"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:685
|
||||
#: contents/ui/MaximizedPlayerPage.qml:670
|
||||
#, kde-format
|
||||
msgid "Mute Audio"
|
||||
msgstr "Vaimenna ääni"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:724
|
||||
#: contents/ui/MaximizedPlayerPage.qml:709
|
||||
#, kde-format
|
||||
msgctxt "%1 is the audio volume in percent"
|
||||
msgid "%1%"
|
||||
msgstr "%1 %"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:754
|
||||
#: contents/ui/MaximizedPlayerPage.qml:739
|
||||
#, kde-format
|
||||
msgid "Hide Lyrics"
|
||||
msgstr "Piilota sanat"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:754
|
||||
#: contents/ui/MaximizedPlayerPage.qml:739
|
||||
#, kde-format
|
||||
msgid "Show Lyrics"
|
||||
msgstr "Näytä sanoitukset"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:774 contents/ui/SongMenu.qml:139
|
||||
#: contents/ui/MaximizedPlayerPage.qml:759 contents/ui/SongMenu.qml:139
|
||||
#, kde-format
|
||||
msgid "Share Song"
|
||||
msgstr "Jaa kappale"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:815
|
||||
#: contents/ui/MaximizedPlayerPage.qml:800
|
||||
#, kde-format
|
||||
msgid "Add to a local playlist"
|
||||
msgstr "Lisää paikalliseen soittolistaan"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:852
|
||||
#: contents/ui/MaximizedPlayerPage.qml:837
|
||||
#, kde-format
|
||||
msgid "Hide Queue"
|
||||
msgstr "Piilota jono"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:852
|
||||
#: contents/ui/MaximizedPlayerPage.qml:837
|
||||
#, kde-format
|
||||
msgid "Show Queue"
|
||||
msgstr "Näytä jono"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1084
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1329
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1069
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1314
|
||||
#, kde-format
|
||||
msgid "Remove Song"
|
||||
msgstr "Poista kappale"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1119
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1104
|
||||
#, kde-format
|
||||
msgid "Clear Queue"
|
||||
msgstr "Tyhjennä jono"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1144
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1129
|
||||
#, kde-format
|
||||
msgid "Shuffle Queue"
|
||||
msgstr "Sekoita jono"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1177
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1162
|
||||
#, kde-format
|
||||
msgid "Upcoming Songs"
|
||||
msgstr "Tulossa olevat kappaleet"
|
||||
@@ -386,8 +387,8 @@ msgstr "Tulossa olevat kappaleet"
|
||||
msgctxt "song count"
|
||||
msgid "%1 song"
|
||||
msgid_plural "%1 songs"
|
||||
msgstr[0] "%1 kappale"
|
||||
msgstr[1] "%1 kappaletta"
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: contents/ui/NavigationBar.qml:23 contents/ui/Sidebar.qml:124
|
||||
#, kde-format
|
||||
@@ -463,15 +464,25 @@ msgstr "Ei osumia aiemmista hauista"
|
||||
msgid "Share to"
|
||||
msgstr "Jaa kohteeseen"
|
||||
|
||||
#: contents/ui/ShareMenu.qml:49 contents/ui/ShareMenu.qml:103
|
||||
#, kde-format
|
||||
msgid "Copy Link"
|
||||
msgstr "Kopioi linkki"
|
||||
|
||||
#: contents/ui/ShareMenu.qml:54 contents/ui/ShareMenu.qml:108
|
||||
#, kde-format
|
||||
msgid "Link copied to clipboard"
|
||||
msgstr "Linkki kopioitu leikepöydälle"
|
||||
|
||||
#: contents/ui/Sidebar.qml:108
|
||||
#, kde-format
|
||||
msgid "Home"
|
||||
msgstr "Koti"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/Sidebar.qml:176
|
||||
#, kde-format
|
||||
msgid "Explore"
|
||||
msgstr "Tutki"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/Sidebar.qml:233
|
||||
#, kde-format
|
||||
@@ -503,50 +514,50 @@ msgstr "Poista historiasta"
|
||||
msgid "Add to playlist"
|
||||
msgstr "Lisää soittolistaan"
|
||||
|
||||
#: main.cpp:54
|
||||
#: main.cpp:90
|
||||
#, kde-format
|
||||
msgctxt "YouTube Music is a music streaming service by Google"
|
||||
msgid "Stream music from YouTube Music"
|
||||
msgstr "Suoratoista musiikkia YouTube Musicista"
|
||||
|
||||
#: main.cpp:56
|
||||
#: main.cpp:92
|
||||
#, kde-format
|
||||
msgid "© 2021–2024 Jonah Brüchert, 2021–2024 KDE Community"
|
||||
msgstr "© 2021–2024 Jonah Brüchert, 2021–2024 KDE-yhteisö"
|
||||
|
||||
#: main.cpp:57
|
||||
#: main.cpp:93
|
||||
#, kde-format
|
||||
msgid "Jonah Brüchert"
|
||||
msgstr "Jonah Brüchert"
|
||||
|
||||
#: main.cpp:57
|
||||
#: main.cpp:93
|
||||
#, kde-format
|
||||
msgid "Maintainer"
|
||||
msgstr "Ylläpitäjä"
|
||||
|
||||
#: main.cpp:58
|
||||
#: main.cpp:94
|
||||
#, kde-format
|
||||
msgid "Mathis Brüchert"
|
||||
msgstr "Mathis Brüchert"
|
||||
|
||||
#: main.cpp:58
|
||||
#: main.cpp:94
|
||||
#, kde-format
|
||||
msgid "Designer"
|
||||
msgstr "Suunnittelija"
|
||||
|
||||
#: main.cpp:59
|
||||
#: main.cpp:95
|
||||
#, kde-format
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
msgid "Your names"
|
||||
msgstr "Tommi Nieminen"
|
||||
|
||||
#: main.cpp:59
|
||||
#: main.cpp:95
|
||||
#, kde-format
|
||||
msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr "[email protected]"
|
||||
|
||||
#: main.cpp:66
|
||||
#: main.cpp:102
|
||||
#, kde-format
|
||||
msgctxt "YouTube Music is a music streaming service by Google"
|
||||
msgid "Unofficial API for YouTube Music"
|
||||
@@ -557,22 +568,16 @@ msgstr "Epävirallinen YouTube Music -API"
|
||||
msgid "No description"
|
||||
msgstr "Ei kuvausta"
|
||||
|
||||
#: playlistimporter.cpp:68
|
||||
#: playlistimporter.cpp:62
|
||||
#, kde-format
|
||||
msgid "No title"
|
||||
msgstr "Ei otsikkoa"
|
||||
|
||||
#: playlistimporter.cpp:71
|
||||
#: playlistimporter.cpp:64
|
||||
#, kde-format
|
||||
msgid "No album"
|
||||
msgstr "Ei albumia"
|
||||
|
||||
#~ msgid "Copy Link"
|
||||
#~ msgstr "Kopioi linkki"
|
||||
|
||||
#~ msgid "Link copied to clipboard"
|
||||
#~ msgstr "Linkki kopioitu leikepöydälle"
|
||||
|
||||
#~ msgid "Remove Favorite"
|
||||
#~ msgstr "Poista suosikki"
|
||||
|
||||
|
||||
+40
-36
@@ -4,7 +4,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: audiotube\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2026-10-01 17:39+0000\n"
|
||||
"POT-Creation-Date: 2026-02-20 00:44+0000\n"
|
||||
"PO-Revision-Date: 2026-02-21 08:57+0100\n"
|
||||
"Last-Translator: Xavier Besnard <[email protected]>\n"
|
||||
"Language-Team: \n"
|
||||
@@ -278,7 +278,7 @@ msgstr "La liste de lecture est vide pour l'instant."
|
||||
msgid "Import Playlist"
|
||||
msgstr "Importer une liste de lecture"
|
||||
|
||||
#: contents/ui/Main.qml:160 main.cpp:52
|
||||
#: contents/ui/Main.qml:160 main.cpp:88
|
||||
#, kde-format
|
||||
msgid "AudioTube"
|
||||
msgstr "AudioTube"
|
||||
@@ -299,84 +299,84 @@ msgstr "Fermer le lecteur en mode maximisé"
|
||||
msgid "No media playing"
|
||||
msgstr "Aucun média en lecture"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:553 contents/ui/SongMenu.qml:107
|
||||
#: contents/ui/MaximizedPlayerPage.qml:538 contents/ui/SongMenu.qml:107
|
||||
#, kde-format
|
||||
msgid "Remove from Favorites"
|
||||
msgstr "Supprimer des signets"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:553 contents/ui/SongMenu.qml:107
|
||||
#: contents/ui/MaximizedPlayerPage.qml:538 contents/ui/SongMenu.qml:107
|
||||
#, kde-format
|
||||
msgid "Add to Favorites"
|
||||
msgstr "Ajouter aux signets"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:578
|
||||
#: contents/ui/MaximizedPlayerPage.qml:563
|
||||
#, kde-format
|
||||
msgid "Open Volume Drawer"
|
||||
msgstr "Ouvrir le réglage de volume"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:685
|
||||
#: contents/ui/MaximizedPlayerPage.qml:670
|
||||
#, kde-format
|
||||
msgid "Unmute Audio"
|
||||
msgstr "Remettre le son"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:685
|
||||
#: contents/ui/MaximizedPlayerPage.qml:670
|
||||
#, kde-format
|
||||
msgid "Mute Audio"
|
||||
msgstr "Mettre le son en pause"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:724
|
||||
#: contents/ui/MaximizedPlayerPage.qml:709
|
||||
#, kde-format
|
||||
msgctxt "%1 is the audio volume in percent"
|
||||
msgid "%1%"
|
||||
msgstr "%1 %"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:754
|
||||
#: contents/ui/MaximizedPlayerPage.qml:739
|
||||
#, kde-format
|
||||
msgid "Hide Lyrics"
|
||||
msgstr "Masquer les paroles"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:754
|
||||
#: contents/ui/MaximizedPlayerPage.qml:739
|
||||
#, kde-format
|
||||
msgid "Show Lyrics"
|
||||
msgstr "Afficher les paroles"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:774 contents/ui/SongMenu.qml:139
|
||||
#: contents/ui/MaximizedPlayerPage.qml:759 contents/ui/SongMenu.qml:139
|
||||
#, kde-format
|
||||
msgid "Share Song"
|
||||
msgstr "Partager une chanson"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:815
|
||||
#: contents/ui/MaximizedPlayerPage.qml:800
|
||||
#, kde-format
|
||||
msgid "Add to a local playlist"
|
||||
msgstr "Ajouter à la liste locale de lecture"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:852
|
||||
#: contents/ui/MaximizedPlayerPage.qml:837
|
||||
#, kde-format
|
||||
msgid "Hide Queue"
|
||||
msgstr "Masquer la file d'attente"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:852
|
||||
#: contents/ui/MaximizedPlayerPage.qml:837
|
||||
#, kde-format
|
||||
msgid "Show Queue"
|
||||
msgstr "Afficher la file d'attente"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1084
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1329
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1069
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1314
|
||||
#, kde-format
|
||||
msgid "Remove Song"
|
||||
msgstr "Supprimer une chanson"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1119
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1104
|
||||
#, kde-format
|
||||
msgid "Clear Queue"
|
||||
msgstr "Effacer la file d'attente"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1144
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1129
|
||||
#, kde-format
|
||||
msgid "Shuffle Queue"
|
||||
msgstr "Re-distribuer la file d'attente"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1177
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1162
|
||||
#, kde-format
|
||||
msgid "Upcoming Songs"
|
||||
msgstr "Prochaines chansons"
|
||||
@@ -464,6 +464,16 @@ msgstr "Aucune correspondance avec les recherches précédentes"
|
||||
msgid "Share to"
|
||||
msgstr "Partager vers"
|
||||
|
||||
#: contents/ui/ShareMenu.qml:49 contents/ui/ShareMenu.qml:103
|
||||
#, kde-format
|
||||
msgid "Copy Link"
|
||||
msgstr "Copier un lien"
|
||||
|
||||
#: contents/ui/ShareMenu.qml:54 contents/ui/ShareMenu.qml:108
|
||||
#, kde-format
|
||||
msgid "Link copied to clipboard"
|
||||
msgstr "Lien copié dans le presse-papier."
|
||||
|
||||
#: contents/ui/Sidebar.qml:108
|
||||
#, kde-format
|
||||
msgid "Home"
|
||||
@@ -504,50 +514,50 @@ msgstr "Supprimer de l'historique"
|
||||
msgid "Add to playlist"
|
||||
msgstr "Ajouter à la liste de lecture"
|
||||
|
||||
#: main.cpp:54
|
||||
#: main.cpp:90
|
||||
#, kde-format
|
||||
msgctxt "YouTube Music is a music streaming service by Google"
|
||||
msgid "Stream music from YouTube Music"
|
||||
msgstr "Musique en streaming provenant de « YouTube Musique »"
|
||||
|
||||
#: main.cpp:56
|
||||
#: main.cpp:92
|
||||
#, kde-format
|
||||
msgid "© 2021–2024 Jonah Brüchert, 2021–2024 KDE Community"
|
||||
msgstr "© 2021 - 2024 Jonah Brüchert, 2021 - 2024 La communauté de KDE"
|
||||
|
||||
#: main.cpp:57
|
||||
#: main.cpp:93
|
||||
#, kde-format
|
||||
msgid "Jonah Brüchert"
|
||||
msgstr "Jonah Brüchert"
|
||||
|
||||
#: main.cpp:57
|
||||
#: main.cpp:93
|
||||
#, kde-format
|
||||
msgid "Maintainer"
|
||||
msgstr "Mainteneur"
|
||||
|
||||
#: main.cpp:58
|
||||
#: main.cpp:94
|
||||
#, kde-format
|
||||
msgid "Mathis Brüchert"
|
||||
msgstr "Mathis Brüchert"
|
||||
|
||||
#: main.cpp:58
|
||||
#: main.cpp:94
|
||||
#, kde-format
|
||||
msgid "Designer"
|
||||
msgstr "Concepteur"
|
||||
|
||||
#: main.cpp:59
|
||||
#: main.cpp:95
|
||||
#, kde-format
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
msgid "Your names"
|
||||
msgstr "Xavier Besnard"
|
||||
|
||||
#: main.cpp:59
|
||||
#: main.cpp:95
|
||||
#, kde-format
|
||||
msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr "[email protected]"
|
||||
|
||||
#: main.cpp:66
|
||||
#: main.cpp:102
|
||||
#, kde-format
|
||||
msgctxt "YouTube Music is a music streaming service by Google"
|
||||
msgid "Unofficial API for YouTube Music"
|
||||
@@ -558,22 +568,16 @@ msgstr "API non officiel pour le site « YouTube Musique »"
|
||||
msgid "No description"
|
||||
msgstr "Aucune description"
|
||||
|
||||
#: playlistimporter.cpp:68
|
||||
#: playlistimporter.cpp:62
|
||||
#, kde-format
|
||||
msgid "No title"
|
||||
msgstr "Aucun titre"
|
||||
|
||||
#: playlistimporter.cpp:71
|
||||
#: playlistimporter.cpp:64
|
||||
#, kde-format
|
||||
msgid "No album"
|
||||
msgstr "Aucun album"
|
||||
|
||||
#~ msgid "Copy Link"
|
||||
#~ msgstr "Copier un lien"
|
||||
|
||||
#~ msgid "Link copied to clipboard"
|
||||
#~ msgstr "Lien copié dans le presse-papier."
|
||||
|
||||
#~ msgid "Remove Favorite"
|
||||
#~ msgstr "Supprimer un signet"
|
||||
|
||||
|
||||
+40
-30
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: audiotube\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2026-10-01 17:39+0000\n"
|
||||
"POT-Creation-Date: 2026-02-20 00:44+0000\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Irish Gaelic <[email protected]>\n"
|
||||
@@ -276,7 +276,7 @@ msgstr ""
|
||||
msgid "Import Playlist"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/Main.qml:160 main.cpp:52
|
||||
#: contents/ui/Main.qml:160 main.cpp:88
|
||||
#, kde-format
|
||||
msgid "AudioTube"
|
||||
msgstr ""
|
||||
@@ -297,84 +297,84 @@ msgstr ""
|
||||
msgid "No media playing"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:553 contents/ui/SongMenu.qml:107
|
||||
#: contents/ui/MaximizedPlayerPage.qml:538 contents/ui/SongMenu.qml:107
|
||||
#, kde-format
|
||||
msgid "Remove from Favorites"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:553 contents/ui/SongMenu.qml:107
|
||||
#: contents/ui/MaximizedPlayerPage.qml:538 contents/ui/SongMenu.qml:107
|
||||
#, kde-format
|
||||
msgid "Add to Favorites"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:578
|
||||
#: contents/ui/MaximizedPlayerPage.qml:563
|
||||
#, kde-format
|
||||
msgid "Open Volume Drawer"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:685
|
||||
#: contents/ui/MaximizedPlayerPage.qml:670
|
||||
#, kde-format
|
||||
msgid "Unmute Audio"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:685
|
||||
#: contents/ui/MaximizedPlayerPage.qml:670
|
||||
#, kde-format
|
||||
msgid "Mute Audio"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:724
|
||||
#: contents/ui/MaximizedPlayerPage.qml:709
|
||||
#, kde-format
|
||||
msgctxt "%1 is the audio volume in percent"
|
||||
msgid "%1%"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:754
|
||||
#: contents/ui/MaximizedPlayerPage.qml:739
|
||||
#, kde-format
|
||||
msgid "Hide Lyrics"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:754
|
||||
#: contents/ui/MaximizedPlayerPage.qml:739
|
||||
#, kde-format
|
||||
msgid "Show Lyrics"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:774 contents/ui/SongMenu.qml:139
|
||||
#: contents/ui/MaximizedPlayerPage.qml:759 contents/ui/SongMenu.qml:139
|
||||
#, kde-format
|
||||
msgid "Share Song"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:815
|
||||
#: contents/ui/MaximizedPlayerPage.qml:800
|
||||
#, kde-format
|
||||
msgid "Add to a local playlist"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:852
|
||||
#: contents/ui/MaximizedPlayerPage.qml:837
|
||||
#, kde-format
|
||||
msgid "Hide Queue"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:852
|
||||
#: contents/ui/MaximizedPlayerPage.qml:837
|
||||
#, kde-format
|
||||
msgid "Show Queue"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1084
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1329
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1069
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1314
|
||||
#, kde-format
|
||||
msgid "Remove Song"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1119
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1104
|
||||
#, kde-format
|
||||
msgid "Clear Queue"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1144
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1129
|
||||
#, kde-format
|
||||
msgid "Shuffle Queue"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1177
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1162
|
||||
#, kde-format
|
||||
msgid "Upcoming Songs"
|
||||
msgstr ""
|
||||
@@ -463,6 +463,16 @@ msgstr ""
|
||||
msgid "Share to"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/ShareMenu.qml:49 contents/ui/ShareMenu.qml:103
|
||||
#, kde-format
|
||||
msgid "Copy Link"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/ShareMenu.qml:54 contents/ui/ShareMenu.qml:108
|
||||
#, kde-format
|
||||
msgid "Link copied to clipboard"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/Sidebar.qml:108
|
||||
#, kde-format
|
||||
msgid "Home"
|
||||
@@ -503,50 +513,50 @@ msgstr ""
|
||||
msgid "Add to playlist"
|
||||
msgstr ""
|
||||
|
||||
#: main.cpp:54
|
||||
#: main.cpp:90
|
||||
#, kde-format
|
||||
msgctxt "YouTube Music is a music streaming service by Google"
|
||||
msgid "Stream music from YouTube Music"
|
||||
msgstr ""
|
||||
|
||||
#: main.cpp:56
|
||||
#: main.cpp:92
|
||||
#, kde-format
|
||||
msgid "© 2021–2024 Jonah Brüchert, 2021–2024 KDE Community"
|
||||
msgstr ""
|
||||
|
||||
#: main.cpp:57
|
||||
#: main.cpp:93
|
||||
#, kde-format
|
||||
msgid "Jonah Brüchert"
|
||||
msgstr ""
|
||||
|
||||
#: main.cpp:57
|
||||
#: main.cpp:93
|
||||
#, kde-format
|
||||
msgid "Maintainer"
|
||||
msgstr ""
|
||||
|
||||
#: main.cpp:58
|
||||
#: main.cpp:94
|
||||
#, kde-format
|
||||
msgid "Mathis Brüchert"
|
||||
msgstr ""
|
||||
|
||||
#: main.cpp:58
|
||||
#: main.cpp:94
|
||||
#, kde-format
|
||||
msgid "Designer"
|
||||
msgstr ""
|
||||
|
||||
#: main.cpp:59
|
||||
#: main.cpp:95
|
||||
#, kde-format
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
msgid "Your names"
|
||||
msgstr ""
|
||||
|
||||
#: main.cpp:59
|
||||
#: main.cpp:95
|
||||
#, kde-format
|
||||
msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr ""
|
||||
|
||||
#: main.cpp:66
|
||||
#: main.cpp:102
|
||||
#, kde-format
|
||||
msgctxt "YouTube Music is a music streaming service by Google"
|
||||
msgid "Unofficial API for YouTube Music"
|
||||
@@ -557,12 +567,12 @@ msgstr ""
|
||||
msgid "No description"
|
||||
msgstr ""
|
||||
|
||||
#: playlistimporter.cpp:68
|
||||
#: playlistimporter.cpp:62
|
||||
#, kde-format
|
||||
msgid "No title"
|
||||
msgstr ""
|
||||
|
||||
#: playlistimporter.cpp:71
|
||||
#: playlistimporter.cpp:64
|
||||
#, kde-format
|
||||
msgid "No album"
|
||||
msgstr ""
|
||||
+40
-36
@@ -6,7 +6,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: audiotube\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2026-10-01 17:39+0000\n"
|
||||
"POT-Creation-Date: 2026-02-20 00:44+0000\n"
|
||||
"PO-Revision-Date: 2025-01-12 16:48+0100\n"
|
||||
"Last-Translator: Adrián Chaves (Gallaecio) <[email protected]>\n"
|
||||
"Language-Team: Proxecto Trasno ([email protected])\n"
|
||||
@@ -284,7 +284,7 @@ msgstr "A lista de reprodución está baleira."
|
||||
msgid "Import Playlist"
|
||||
msgstr "Importar unha lista de reprodución"
|
||||
|
||||
#: contents/ui/Main.qml:160 main.cpp:52
|
||||
#: contents/ui/Main.qml:160 main.cpp:88
|
||||
#, kde-format
|
||||
msgid "AudioTube"
|
||||
msgstr "AudioTube"
|
||||
@@ -305,88 +305,88 @@ msgstr "Pechar o reprodutor maximizado"
|
||||
msgid "No media playing"
|
||||
msgstr "Non se está a reproducir nada."
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:553 contents/ui/SongMenu.qml:107
|
||||
#: contents/ui/MaximizedPlayerPage.qml:538 contents/ui/SongMenu.qml:107
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Remove from Favourites"
|
||||
msgid "Remove from Favorites"
|
||||
msgstr "Retirar das favoritas"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:553 contents/ui/SongMenu.qml:107
|
||||
#: contents/ui/MaximizedPlayerPage.qml:538 contents/ui/SongMenu.qml:107
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Add to Favourites"
|
||||
msgid "Add to Favorites"
|
||||
msgstr "Engadir ás favoritas"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:578
|
||||
#: contents/ui/MaximizedPlayerPage.qml:563
|
||||
#, kde-format
|
||||
msgid "Open Volume Drawer"
|
||||
msgstr "Abrir o caixón do volume"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:685
|
||||
#: contents/ui/MaximizedPlayerPage.qml:670
|
||||
#, kde-format
|
||||
msgid "Unmute Audio"
|
||||
msgstr "Activar o son"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:685
|
||||
#: contents/ui/MaximizedPlayerPage.qml:670
|
||||
#, kde-format
|
||||
msgid "Mute Audio"
|
||||
msgstr "Silenciar"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:724
|
||||
#: contents/ui/MaximizedPlayerPage.qml:709
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "%1%"
|
||||
msgctxt "%1 is the audio volume in percent"
|
||||
msgid "%1%"
|
||||
msgstr "%1%"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:754
|
||||
#: contents/ui/MaximizedPlayerPage.qml:739
|
||||
#, kde-format
|
||||
msgid "Hide Lyrics"
|
||||
msgstr "Agochar a letra"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:754
|
||||
#: contents/ui/MaximizedPlayerPage.qml:739
|
||||
#, kde-format
|
||||
msgid "Show Lyrics"
|
||||
msgstr "Amosar a letra"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:774 contents/ui/SongMenu.qml:139
|
||||
#: contents/ui/MaximizedPlayerPage.qml:759 contents/ui/SongMenu.qml:139
|
||||
#, kde-format
|
||||
msgid "Share Song"
|
||||
msgstr "Compartir a canción"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:815
|
||||
#: contents/ui/MaximizedPlayerPage.qml:800
|
||||
#, kde-format
|
||||
msgid "Add to a local playlist"
|
||||
msgstr "Engadir a unha lista de reprodución local"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:852
|
||||
#: contents/ui/MaximizedPlayerPage.qml:837
|
||||
#, kde-format
|
||||
msgid "Hide Queue"
|
||||
msgstr "Agochar a cola"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:852
|
||||
#: contents/ui/MaximizedPlayerPage.qml:837
|
||||
#, kde-format
|
||||
msgid "Show Queue"
|
||||
msgstr "Amosar a cola"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1084
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1329
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1069
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1314
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Remove Favourite"
|
||||
msgid "Remove Song"
|
||||
msgstr "Retiras das favoritas"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1119
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1104
|
||||
#, kde-format
|
||||
msgid "Clear Queue"
|
||||
msgstr "Borrar a cola"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1144
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1129
|
||||
#, kde-format
|
||||
msgid "Shuffle Queue"
|
||||
msgstr "Desordenar a cola"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1177
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1162
|
||||
#, kde-format
|
||||
msgid "Upcoming Songs"
|
||||
msgstr "Vindeiras cancións"
|
||||
@@ -475,6 +475,16 @@ msgstr "Ningunha busca anterior coincide."
|
||||
msgid "Share to"
|
||||
msgstr "Compartir con"
|
||||
|
||||
#: contents/ui/ShareMenu.qml:49 contents/ui/ShareMenu.qml:103
|
||||
#, kde-format
|
||||
msgid "Copy Link"
|
||||
msgstr "Copiar a ligazón"
|
||||
|
||||
#: contents/ui/ShareMenu.qml:54 contents/ui/ShareMenu.qml:108
|
||||
#, kde-format
|
||||
msgid "Link copied to clipboard"
|
||||
msgstr "A ligazón copiouse no portapapeis."
|
||||
|
||||
#: contents/ui/Sidebar.qml:108
|
||||
#, kde-format
|
||||
msgid "Home"
|
||||
@@ -515,51 +525,51 @@ msgstr "Retirar do historial"
|
||||
msgid "Add to playlist"
|
||||
msgstr "Engadir á lista de reprodución"
|
||||
|
||||
#: main.cpp:54
|
||||
#: main.cpp:90
|
||||
#, kde-format
|
||||
msgctxt "YouTube Music is a music streaming service by Google"
|
||||
msgid "Stream music from YouTube Music"
|
||||
msgstr "Escoita música de YouTube Music"
|
||||
|
||||
#: main.cpp:56
|
||||
#: main.cpp:92
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "© 2021-2024 Jonah Brüchert, 2021-2024 KDE Community"
|
||||
msgid "© 2021–2024 Jonah Brüchert, 2021–2024 KDE Community"
|
||||
msgstr "© 2021-2024 Jonah Brüchert; 2021-2024 Comunidade KDE"
|
||||
|
||||
#: main.cpp:57
|
||||
#: main.cpp:93
|
||||
#, kde-format
|
||||
msgid "Jonah Brüchert"
|
||||
msgstr "Jonah Brüchert"
|
||||
|
||||
#: main.cpp:57
|
||||
#: main.cpp:93
|
||||
#, kde-format
|
||||
msgid "Maintainer"
|
||||
msgstr "Mantemento."
|
||||
|
||||
#: main.cpp:58
|
||||
#: main.cpp:94
|
||||
#, kde-format
|
||||
msgid "Mathis Brüchert"
|
||||
msgstr "Mathis Brüchert"
|
||||
|
||||
#: main.cpp:58
|
||||
#: main.cpp:94
|
||||
#, kde-format
|
||||
msgid "Designer"
|
||||
msgstr "Deseño."
|
||||
|
||||
#: main.cpp:59
|
||||
#: main.cpp:95
|
||||
#, kde-format
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
msgid "Your names"
|
||||
msgstr "Adrian Chaves (Gallaecio)"
|
||||
|
||||
#: main.cpp:59
|
||||
#: main.cpp:95
|
||||
#, kde-format
|
||||
msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr "[email protected]"
|
||||
|
||||
#: main.cpp:66
|
||||
#: main.cpp:102
|
||||
#, kde-format
|
||||
msgctxt "YouTube Music is a music streaming service by Google"
|
||||
msgid "Unofficial API for YouTube Music"
|
||||
@@ -570,22 +580,16 @@ msgstr "API non oficial de YouTube Music"
|
||||
msgid "No description"
|
||||
msgstr "Sen descrición"
|
||||
|
||||
#: playlistimporter.cpp:68
|
||||
#: playlistimporter.cpp:62
|
||||
#, kde-format
|
||||
msgid "No title"
|
||||
msgstr "Sen título"
|
||||
|
||||
#: playlistimporter.cpp:71
|
||||
#: playlistimporter.cpp:64
|
||||
#, kde-format
|
||||
msgid "No album"
|
||||
msgstr "Sen álbum"
|
||||
|
||||
#~ msgid "Copy Link"
|
||||
#~ msgstr "Copiar a ligazón"
|
||||
|
||||
#~ msgid "Link copied to clipboard"
|
||||
#~ msgstr "A ligazón copiouse no portapapeis."
|
||||
|
||||
#, fuzzy
|
||||
#~| msgid "Remove Favourite"
|
||||
#~ msgid "Remove Favorite"
|
||||
|
||||
+40
-36
@@ -6,7 +6,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: audiotube\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2026-10-01 17:39+0000\n"
|
||||
"POT-Creation-Date: 2026-02-20 00:44+0000\n"
|
||||
"PO-Revision-Date: 2026-02-22 08:33+0200\n"
|
||||
"Last-Translator: Yaron Shahrabani <[email protected]>\n"
|
||||
"Language-Team: צוות התרגום של KDE ישראל\n"
|
||||
@@ -277,7 +277,7 @@ msgstr "רשימת הנגינה עדיין ריקה"
|
||||
msgid "Import Playlist"
|
||||
msgstr "ייבוא רשימת נגינה"
|
||||
|
||||
#: contents/ui/Main.qml:160 main.cpp:52
|
||||
#: contents/ui/Main.qml:160 main.cpp:88
|
||||
#, kde-format
|
||||
msgid "AudioTube"
|
||||
msgstr "AudioTube"
|
||||
@@ -298,84 +298,84 @@ msgstr "סגירת נגן מוגדל"
|
||||
msgid "No media playing"
|
||||
msgstr "לא מתנגנת מדיה"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:553 contents/ui/SongMenu.qml:107
|
||||
#: contents/ui/MaximizedPlayerPage.qml:538 contents/ui/SongMenu.qml:107
|
||||
#, kde-format
|
||||
msgid "Remove from Favorites"
|
||||
msgstr "הסרה מהמועדפים"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:553 contents/ui/SongMenu.qml:107
|
||||
#: contents/ui/MaximizedPlayerPage.qml:538 contents/ui/SongMenu.qml:107
|
||||
#, kde-format
|
||||
msgid "Add to Favorites"
|
||||
msgstr "הוספה למועדפים"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:578
|
||||
#: contents/ui/MaximizedPlayerPage.qml:563
|
||||
#, kde-format
|
||||
msgid "Open Volume Drawer"
|
||||
msgstr "פתיחת מגירת עוצמת שמע"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:685
|
||||
#: contents/ui/MaximizedPlayerPage.qml:670
|
||||
#, kde-format
|
||||
msgid "Unmute Audio"
|
||||
msgstr "ביטול השתקה"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:685
|
||||
#: contents/ui/MaximizedPlayerPage.qml:670
|
||||
#, kde-format
|
||||
msgid "Mute Audio"
|
||||
msgstr "השתקת שמע"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:724
|
||||
#: contents/ui/MaximizedPlayerPage.qml:709
|
||||
#, kde-format
|
||||
msgctxt "%1 is the audio volume in percent"
|
||||
msgid "%1%"
|
||||
msgstr "%1%"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:754
|
||||
#: contents/ui/MaximizedPlayerPage.qml:739
|
||||
#, kde-format
|
||||
msgid "Hide Lyrics"
|
||||
msgstr "הסתרת מילות השיר"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:754
|
||||
#: contents/ui/MaximizedPlayerPage.qml:739
|
||||
#, kde-format
|
||||
msgid "Show Lyrics"
|
||||
msgstr "הצגת מילות השיר"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:774 contents/ui/SongMenu.qml:139
|
||||
#: contents/ui/MaximizedPlayerPage.qml:759 contents/ui/SongMenu.qml:139
|
||||
#, kde-format
|
||||
msgid "Share Song"
|
||||
msgstr "שיתוף השיר"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:815
|
||||
#: contents/ui/MaximizedPlayerPage.qml:800
|
||||
#, kde-format
|
||||
msgid "Add to a local playlist"
|
||||
msgstr "הוספה לרשימת הנגינה המקומית"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:852
|
||||
#: contents/ui/MaximizedPlayerPage.qml:837
|
||||
#, kde-format
|
||||
msgid "Hide Queue"
|
||||
msgstr "הסתרת התור"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:852
|
||||
#: contents/ui/MaximizedPlayerPage.qml:837
|
||||
#, kde-format
|
||||
msgid "Show Queue"
|
||||
msgstr "הצגת התור"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1084
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1329
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1069
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1314
|
||||
#, kde-format
|
||||
msgid "Remove Song"
|
||||
msgstr "הסרת שיר"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1119
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1104
|
||||
#, kde-format
|
||||
msgid "Clear Queue"
|
||||
msgstr "פינוי התור"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1144
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1129
|
||||
#, kde-format
|
||||
msgid "Shuffle Queue"
|
||||
msgstr "ערבוב התור"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1177
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1162
|
||||
#, kde-format
|
||||
msgid "Upcoming Songs"
|
||||
msgstr "השירים הבאים"
|
||||
@@ -463,6 +463,16 @@ msgstr "אין חיפושים קודמים תואמים"
|
||||
msgid "Share to"
|
||||
msgstr "שיתוף אל"
|
||||
|
||||
#: contents/ui/ShareMenu.qml:49 contents/ui/ShareMenu.qml:103
|
||||
#, kde-format
|
||||
msgid "Copy Link"
|
||||
msgstr "העתקת קישור"
|
||||
|
||||
#: contents/ui/ShareMenu.qml:54 contents/ui/ShareMenu.qml:108
|
||||
#, kde-format
|
||||
msgid "Link copied to clipboard"
|
||||
msgstr "הקישור הועתק ללוח הגזירים"
|
||||
|
||||
#: contents/ui/Sidebar.qml:108
|
||||
#, kde-format
|
||||
msgid "Home"
|
||||
@@ -503,50 +513,50 @@ msgstr "הסרה מההיסטוריה"
|
||||
msgid "Add to playlist"
|
||||
msgstr "הוספה לרשימת הנגינה"
|
||||
|
||||
#: main.cpp:54
|
||||
#: main.cpp:90
|
||||
#, kde-format
|
||||
msgctxt "YouTube Music is a music streaming service by Google"
|
||||
msgid "Stream music from YouTube Music"
|
||||
msgstr "הזרמת מוזיקה מ־YouTube Music"
|
||||
|
||||
#: main.cpp:56
|
||||
#: main.cpp:92
|
||||
#, kde-format
|
||||
msgid "© 2021–2024 Jonah Brüchert, 2021–2024 KDE Community"
|
||||
msgstr "© 2021-2024 יונה ברכרט, 2021-2024 קהילת KDE"
|
||||
|
||||
#: main.cpp:57
|
||||
#: main.cpp:93
|
||||
#, kde-format
|
||||
msgid "Jonah Brüchert"
|
||||
msgstr "יונה ברכרט"
|
||||
|
||||
#: main.cpp:57
|
||||
#: main.cpp:93
|
||||
#, kde-format
|
||||
msgid "Maintainer"
|
||||
msgstr "מתחזק"
|
||||
|
||||
#: main.cpp:58
|
||||
#: main.cpp:94
|
||||
#, kde-format
|
||||
msgid "Mathis Brüchert"
|
||||
msgstr "מתיס בריכרט"
|
||||
|
||||
#: main.cpp:58
|
||||
#: main.cpp:94
|
||||
#, kde-format
|
||||
msgid "Designer"
|
||||
msgstr "מעצב"
|
||||
|
||||
#: main.cpp:59
|
||||
#: main.cpp:95
|
||||
#, kde-format
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
msgid "Your names"
|
||||
msgstr "צוות התרגום של KDE ישראל"
|
||||
|
||||
#: main.cpp:59
|
||||
#: main.cpp:95
|
||||
#, kde-format
|
||||
msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr "[email protected]"
|
||||
|
||||
#: main.cpp:66
|
||||
#: main.cpp:102
|
||||
#, kde-format
|
||||
msgctxt "YouTube Music is a music streaming service by Google"
|
||||
msgid "Unofficial API for YouTube Music"
|
||||
@@ -557,22 +567,16 @@ msgstr "API בלתי רשמי ל־YouTube Music"
|
||||
msgid "No description"
|
||||
msgstr "אין תיאור"
|
||||
|
||||
#: playlistimporter.cpp:68
|
||||
#: playlistimporter.cpp:62
|
||||
#, kde-format
|
||||
msgid "No title"
|
||||
msgstr "אין כותרת"
|
||||
|
||||
#: playlistimporter.cpp:71
|
||||
#: playlistimporter.cpp:64
|
||||
#, kde-format
|
||||
msgid "No album"
|
||||
msgstr "אין אלבום"
|
||||
|
||||
#~ msgid "Copy Link"
|
||||
#~ msgstr "העתקת קישור"
|
||||
|
||||
#~ msgid "Link copied to clipboard"
|
||||
#~ msgstr "הקישור הועתק ללוח הגזירים"
|
||||
|
||||
#~ msgid "Remove Favorite"
|
||||
#~ msgstr "הסרה מהמועדפים"
|
||||
|
||||
|
||||
+40
-30
@@ -6,7 +6,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: audiotube\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2026-10-01 17:39+0000\n"
|
||||
"POT-Creation-Date: 2026-02-20 00:44+0000\n"
|
||||
"PO-Revision-Date: 2021-09-17 20:09+0530\n"
|
||||
"Last-Translator: Raghavendra Kamath <[email protected]>\n"
|
||||
"Language-Team: kde-hindi\n"
|
||||
@@ -294,7 +294,7 @@ msgstr ""
|
||||
msgid "Import Playlist"
|
||||
msgstr "गीत-सूचीयाँ"
|
||||
|
||||
#: contents/ui/Main.qml:160 main.cpp:52
|
||||
#: contents/ui/Main.qml:160 main.cpp:88
|
||||
#, kde-format
|
||||
msgid "AudioTube"
|
||||
msgstr "ओडियो-ट्यूब"
|
||||
@@ -316,90 +316,90 @@ msgstr ""
|
||||
msgid "No media playing"
|
||||
msgstr "कोई मीडिया नहीं बजा रहा है"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:553 contents/ui/SongMenu.qml:107
|
||||
#: contents/ui/MaximizedPlayerPage.qml:538 contents/ui/SongMenu.qml:107
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Playlists"
|
||||
msgid "Remove from Favorites"
|
||||
msgstr "गीत-सूचीयाँ"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:553 contents/ui/SongMenu.qml:107
|
||||
#: contents/ui/MaximizedPlayerPage.qml:538 contents/ui/SongMenu.qml:107
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Add to Playlist"
|
||||
msgid "Add to Favorites"
|
||||
msgstr "गीत-सूची में जोड़ें"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:578
|
||||
#: contents/ui/MaximizedPlayerPage.qml:563
|
||||
#, kde-format
|
||||
msgid "Open Volume Drawer"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:685
|
||||
#: contents/ui/MaximizedPlayerPage.qml:670
|
||||
#, kde-format
|
||||
msgid "Unmute Audio"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:685
|
||||
#: contents/ui/MaximizedPlayerPage.qml:670
|
||||
#, kde-format
|
||||
msgid "Mute Audio"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:724
|
||||
#: contents/ui/MaximizedPlayerPage.qml:709
|
||||
#, kde-format
|
||||
msgctxt "%1 is the audio volume in percent"
|
||||
msgid "%1%"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:754
|
||||
#: contents/ui/MaximizedPlayerPage.qml:739
|
||||
#, kde-format
|
||||
msgid "Hide Lyrics"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:754
|
||||
#: contents/ui/MaximizedPlayerPage.qml:739
|
||||
#, kde-format
|
||||
msgid "Show Lyrics"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:774 contents/ui/SongMenu.qml:139
|
||||
#: contents/ui/MaximizedPlayerPage.qml:759 contents/ui/SongMenu.qml:139
|
||||
#, kde-format
|
||||
msgid "Share Song"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:815
|
||||
#: contents/ui/MaximizedPlayerPage.qml:800
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Add to Playlist"
|
||||
msgid "Add to a local playlist"
|
||||
msgstr "गीत-सूची में जोड़ें"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:852
|
||||
#: contents/ui/MaximizedPlayerPage.qml:837
|
||||
#, kde-format
|
||||
msgid "Hide Queue"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:852
|
||||
#: contents/ui/MaximizedPlayerPage.qml:837
|
||||
#, kde-format
|
||||
msgid "Show Queue"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1084
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1329
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1069
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1314
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Playlists"
|
||||
msgid "Remove Song"
|
||||
msgstr "गीत-सूचीयाँ"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1119
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1104
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Clear"
|
||||
msgid "Clear Queue"
|
||||
msgstr "साफ करें"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1144
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1129
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Shuffle"
|
||||
msgid "Shuffle Queue"
|
||||
msgstr "फेंटें"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1177
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1162
|
||||
#, kde-format
|
||||
msgid "Upcoming Songs"
|
||||
msgstr ""
|
||||
@@ -490,6 +490,16 @@ msgstr ""
|
||||
msgid "Share to"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/ShareMenu.qml:49 contents/ui/ShareMenu.qml:103
|
||||
#, kde-format
|
||||
msgid "Copy Link"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/ShareMenu.qml:54 contents/ui/ShareMenu.qml:108
|
||||
#, kde-format
|
||||
msgid "Link copied to clipboard"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/Sidebar.qml:108
|
||||
#, kde-format
|
||||
msgid "Home"
|
||||
@@ -531,51 +541,51 @@ msgstr ""
|
||||
msgid "Add to playlist"
|
||||
msgstr "गीत-सूची में जोड़ें"
|
||||
|
||||
#: main.cpp:54
|
||||
#: main.cpp:90
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Find music on YouTube Music"
|
||||
msgctxt "YouTube Music is a music streaming service by Google"
|
||||
msgid "Stream music from YouTube Music"
|
||||
msgstr "यूट्यूब संगीत पर संगीत ढूंढें"
|
||||
|
||||
#: main.cpp:56
|
||||
#: main.cpp:92
|
||||
#, kde-format
|
||||
msgid "© 2021–2024 Jonah Brüchert, 2021–2024 KDE Community"
|
||||
msgstr ""
|
||||
|
||||
#: main.cpp:57
|
||||
#: main.cpp:93
|
||||
#, kde-format
|
||||
msgid "Jonah Brüchert"
|
||||
msgstr ""
|
||||
|
||||
#: main.cpp:57
|
||||
#: main.cpp:93
|
||||
#, kde-format
|
||||
msgid "Maintainer"
|
||||
msgstr ""
|
||||
|
||||
#: main.cpp:58
|
||||
#: main.cpp:94
|
||||
#, kde-format
|
||||
msgid "Mathis Brüchert"
|
||||
msgstr ""
|
||||
|
||||
#: main.cpp:58
|
||||
#: main.cpp:94
|
||||
#, kde-format
|
||||
msgid "Designer"
|
||||
msgstr ""
|
||||
|
||||
#: main.cpp:59
|
||||
#: main.cpp:95
|
||||
#, kde-format
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
msgid "Your names"
|
||||
msgstr "राघवेंद्र कामत"
|
||||
|
||||
#: main.cpp:59
|
||||
#: main.cpp:95
|
||||
#, kde-format
|
||||
msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr "[email protected]"
|
||||
|
||||
#: main.cpp:66
|
||||
#: main.cpp:102
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Find music on YouTube Music"
|
||||
msgctxt "YouTube Music is a music streaming service by Google"
|
||||
@@ -588,12 +598,12 @@ msgstr "यूट्यूब संगीत पर संगीत ढूं
|
||||
msgid "No description"
|
||||
msgstr "गीत-सूचीयाँ"
|
||||
|
||||
#: playlistimporter.cpp:68
|
||||
#: playlistimporter.cpp:62
|
||||
#, kde-format
|
||||
msgid "No title"
|
||||
msgstr ""
|
||||
|
||||
#: playlistimporter.cpp:71
|
||||
#: playlistimporter.cpp:64
|
||||
#, kde-format
|
||||
msgid "No album"
|
||||
msgstr ""
|
||||
|
||||
+40
-36
@@ -6,7 +6,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: audiotube\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2026-10-01 17:39+0000\n"
|
||||
"POT-Creation-Date: 2026-02-20 00:44+0000\n"
|
||||
"PO-Revision-Date: 2026-06-25 22:18+0200\n"
|
||||
"Last-Translator: Kristof Kiszel <[email protected]>\n"
|
||||
"Language-Team: Hungarian <[email protected]>\n"
|
||||
@@ -279,7 +279,7 @@ msgstr "Ez a lejátszólista még mindig üres"
|
||||
msgid "Import Playlist"
|
||||
msgstr "Lejátszólista importálása"
|
||||
|
||||
#: contents/ui/Main.qml:160 main.cpp:52
|
||||
#: contents/ui/Main.qml:160 main.cpp:88
|
||||
#, kde-format
|
||||
msgid "AudioTube"
|
||||
msgstr "AudioTube"
|
||||
@@ -300,84 +300,84 @@ msgstr "Maximalizált lejátszó bezárása"
|
||||
msgid "No media playing"
|
||||
msgstr "Nincs médialejátszás"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:553 contents/ui/SongMenu.qml:107
|
||||
#: contents/ui/MaximizedPlayerPage.qml:538 contents/ui/SongMenu.qml:107
|
||||
#, kde-format
|
||||
msgid "Remove from Favorites"
|
||||
msgstr "Eltávolítás a kedvencekből"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:553 contents/ui/SongMenu.qml:107
|
||||
#: contents/ui/MaximizedPlayerPage.qml:538 contents/ui/SongMenu.qml:107
|
||||
#, kde-format
|
||||
msgid "Add to Favorites"
|
||||
msgstr "Hozzáadás a kedvencekhez"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:578
|
||||
#: contents/ui/MaximizedPlayerPage.qml:563
|
||||
#, kde-format
|
||||
msgid "Open Volume Drawer"
|
||||
msgstr "Hangerőcsúszka megnyitása"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:685
|
||||
#: contents/ui/MaximizedPlayerPage.qml:670
|
||||
#, kde-format
|
||||
msgid "Unmute Audio"
|
||||
msgstr "Visszahangosítás"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:685
|
||||
#: contents/ui/MaximizedPlayerPage.qml:670
|
||||
#, kde-format
|
||||
msgid "Mute Audio"
|
||||
msgstr "Némítás"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:724
|
||||
#: contents/ui/MaximizedPlayerPage.qml:709
|
||||
#, kde-format
|
||||
msgctxt "%1 is the audio volume in percent"
|
||||
msgid "%1%"
|
||||
msgstr "%1%"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:754
|
||||
#: contents/ui/MaximizedPlayerPage.qml:739
|
||||
#, kde-format
|
||||
msgid "Hide Lyrics"
|
||||
msgstr "Dalszöveg elrejtése"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:754
|
||||
#: contents/ui/MaximizedPlayerPage.qml:739
|
||||
#, kde-format
|
||||
msgid "Show Lyrics"
|
||||
msgstr "Dalszöveg megjelenítése"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:774 contents/ui/SongMenu.qml:139
|
||||
#: contents/ui/MaximizedPlayerPage.qml:759 contents/ui/SongMenu.qml:139
|
||||
#, kde-format
|
||||
msgid "Share Song"
|
||||
msgstr "Dal megosztása"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:815
|
||||
#: contents/ui/MaximizedPlayerPage.qml:800
|
||||
#, kde-format
|
||||
msgid "Add to a local playlist"
|
||||
msgstr "Hozzáadás helyi lejátszólistához"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:852
|
||||
#: contents/ui/MaximizedPlayerPage.qml:837
|
||||
#, kde-format
|
||||
msgid "Hide Queue"
|
||||
msgstr "Sor elrejtése"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:852
|
||||
#: contents/ui/MaximizedPlayerPage.qml:837
|
||||
#, kde-format
|
||||
msgid "Show Queue"
|
||||
msgstr "Sor megjelenítése"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1084
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1329
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1069
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1314
|
||||
#, kde-format
|
||||
msgid "Remove Song"
|
||||
msgstr "Dal eltávolítása"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1119
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1104
|
||||
#, kde-format
|
||||
msgid "Clear Queue"
|
||||
msgstr "Sor kiürítése"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1144
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1129
|
||||
#, kde-format
|
||||
msgid "Shuffle Queue"
|
||||
msgstr "Sor keverése"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1177
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1162
|
||||
#, kde-format
|
||||
msgid "Upcoming Songs"
|
||||
msgstr "Következő dalok"
|
||||
@@ -465,6 +465,16 @@ msgstr "Nincsenek egyező korábbi keresések"
|
||||
msgid "Share to"
|
||||
msgstr "Megosztás itt:"
|
||||
|
||||
#: contents/ui/ShareMenu.qml:49 contents/ui/ShareMenu.qml:103
|
||||
#, kde-format
|
||||
msgid "Copy Link"
|
||||
msgstr "Hivatkozás másolása"
|
||||
|
||||
#: contents/ui/ShareMenu.qml:54 contents/ui/ShareMenu.qml:108
|
||||
#, kde-format
|
||||
msgid "Link copied to clipboard"
|
||||
msgstr "Hivatkozás másolva a vágólapra"
|
||||
|
||||
#: contents/ui/Sidebar.qml:108
|
||||
#, kde-format
|
||||
msgid "Home"
|
||||
@@ -505,52 +515,52 @@ msgstr "Eltávolítás az előzményekből"
|
||||
msgid "Add to playlist"
|
||||
msgstr "Hozzáadás a lejátszólistához"
|
||||
|
||||
#: main.cpp:54
|
||||
#: main.cpp:90
|
||||
#, kde-format
|
||||
msgctxt "YouTube Music is a music streaming service by Google"
|
||||
msgid "Stream music from YouTube Music"
|
||||
msgstr "Zeneközvetítés a YouTube Musicról"
|
||||
|
||||
#: main.cpp:56
|
||||
#: main.cpp:92
|
||||
#, kde-format
|
||||
msgid "© 2021–2024 Jonah Brüchert, 2021–2024 KDE Community"
|
||||
msgstr ""
|
||||
"© Jonah Brüchert, 2021–2024.\n"
|
||||
"© A KDE közösség, 2021–2024."
|
||||
|
||||
#: main.cpp:57
|
||||
#: main.cpp:93
|
||||
#, kde-format
|
||||
msgid "Jonah Brüchert"
|
||||
msgstr "Jonah Brüchert"
|
||||
|
||||
#: main.cpp:57
|
||||
#: main.cpp:93
|
||||
#, kde-format
|
||||
msgid "Maintainer"
|
||||
msgstr "Karbantartó"
|
||||
|
||||
#: main.cpp:58
|
||||
#: main.cpp:94
|
||||
#, kde-format
|
||||
msgid "Mathis Brüchert"
|
||||
msgstr "Mathis Brüchert"
|
||||
|
||||
#: main.cpp:58
|
||||
#: main.cpp:94
|
||||
#, kde-format
|
||||
msgid "Designer"
|
||||
msgstr "Tervező"
|
||||
|
||||
#: main.cpp:59
|
||||
#: main.cpp:95
|
||||
#, kde-format
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
msgid "Your names"
|
||||
msgstr "Kiszel Kristóf"
|
||||
|
||||
#: main.cpp:59
|
||||
#: main.cpp:95
|
||||
#, kde-format
|
||||
msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr "[email protected]"
|
||||
|
||||
#: main.cpp:66
|
||||
#: main.cpp:102
|
||||
#, kde-format
|
||||
msgctxt "YouTube Music is a music streaming service by Google"
|
||||
msgid "Unofficial API for YouTube Music"
|
||||
@@ -561,22 +571,16 @@ msgstr "Nem hivatalos API a YouTube Musichoz"
|
||||
msgid "No description"
|
||||
msgstr "Nincs leírás"
|
||||
|
||||
#: playlistimporter.cpp:68
|
||||
#: playlistimporter.cpp:62
|
||||
#, kde-format
|
||||
msgid "No title"
|
||||
msgstr "Nincs cím"
|
||||
|
||||
#: playlistimporter.cpp:71
|
||||
#: playlistimporter.cpp:64
|
||||
#, kde-format
|
||||
msgid "No album"
|
||||
msgstr "Nincs album"
|
||||
|
||||
#~ msgid "Copy Link"
|
||||
#~ msgstr "Hivatkozás másolása"
|
||||
|
||||
#~ msgid "Link copied to clipboard"
|
||||
#~ msgstr "Hivatkozás másolva a vágólapra"
|
||||
|
||||
#~ msgid "Remove Favorite"
|
||||
#~ msgstr "Kedvenc eltávolítása"
|
||||
|
||||
|
||||
+40
-36
@@ -6,7 +6,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: audiotube\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2026-10-01 17:39+0000\n"
|
||||
"POT-Creation-Date: 2026-02-20 00:44+0000\n"
|
||||
"PO-Revision-Date: 2026-02-20 11:42+0100\n"
|
||||
"Last-Translator: giovanni <[email protected]>\n"
|
||||
"Language-Team: Interlingua <[email protected]>\n"
|
||||
@@ -279,7 +279,7 @@ msgstr "Iste lista de reproduction es vacue"
|
||||
msgid "Import Playlist"
|
||||
msgstr "Importa lista de reproduction"
|
||||
|
||||
#: contents/ui/Main.qml:160 main.cpp:52
|
||||
#: contents/ui/Main.qml:160 main.cpp:88
|
||||
#, kde-format
|
||||
msgid "AudioTube"
|
||||
msgstr "AudioTube"
|
||||
@@ -300,84 +300,84 @@ msgstr "Claude reproductor de sono (player) maximizate"
|
||||
msgid "No media playing"
|
||||
msgstr "Necun media reproducente"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:553 contents/ui/SongMenu.qml:107
|
||||
#: contents/ui/MaximizedPlayerPage.qml:538 contents/ui/SongMenu.qml:107
|
||||
#, kde-format
|
||||
msgid "Remove from Favorites"
|
||||
msgstr "Remove ex favoritos"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:553 contents/ui/SongMenu.qml:107
|
||||
#: contents/ui/MaximizedPlayerPage.qml:538 contents/ui/SongMenu.qml:107
|
||||
#, kde-format
|
||||
msgid "Add to Favorites"
|
||||
msgstr "Adde a favoritos"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:578
|
||||
#: contents/ui/MaximizedPlayerPage.qml:563
|
||||
#, kde-format
|
||||
msgid "Open Volume Drawer"
|
||||
msgstr "Aperi designator de volumine"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:685
|
||||
#: contents/ui/MaximizedPlayerPage.qml:670
|
||||
#, kde-format
|
||||
msgid "Unmute Audio"
|
||||
msgstr "Audio Non silente"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:685
|
||||
#: contents/ui/MaximizedPlayerPage.qml:670
|
||||
#, kde-format
|
||||
msgid "Mute Audio"
|
||||
msgstr "Audio Silente"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:724
|
||||
#: contents/ui/MaximizedPlayerPage.qml:709
|
||||
#, kde-format
|
||||
msgctxt "%1 is the audio volume in percent"
|
||||
msgid "%1%"
|
||||
msgstr "%1%"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:754
|
||||
#: contents/ui/MaximizedPlayerPage.qml:739
|
||||
#, kde-format
|
||||
msgid "Hide Lyrics"
|
||||
msgstr "Cela parolas de canto"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:754
|
||||
#: contents/ui/MaximizedPlayerPage.qml:739
|
||||
#, kde-format
|
||||
msgid "Show Lyrics"
|
||||
msgstr "Monstra parolas"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:774 contents/ui/SongMenu.qml:139
|
||||
#: contents/ui/MaximizedPlayerPage.qml:759 contents/ui/SongMenu.qml:139
|
||||
#, kde-format
|
||||
msgid "Share Song"
|
||||
msgstr "Comparti canto"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:815
|
||||
#: contents/ui/MaximizedPlayerPage.qml:800
|
||||
#, kde-format
|
||||
msgid "Add to a local playlist"
|
||||
msgstr "Adde a un lista de reproduction local"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:852
|
||||
#: contents/ui/MaximizedPlayerPage.qml:837
|
||||
#, kde-format
|
||||
msgid "Hide Queue"
|
||||
msgstr "Cela cauda"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:852
|
||||
#: contents/ui/MaximizedPlayerPage.qml:837
|
||||
#, kde-format
|
||||
msgid "Show Queue"
|
||||
msgstr "Monstra cauda"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1084
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1329
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1069
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1314
|
||||
#, kde-format
|
||||
msgid "Remove Song"
|
||||
msgstr "Remove Canto"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1119
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1104
|
||||
#, kde-format
|
||||
msgid "Clear Queue"
|
||||
msgstr "Netta cauda"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1144
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1129
|
||||
#, kde-format
|
||||
msgid "Shuffle Queue"
|
||||
msgstr "Misce (shuffle) cauda"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1177
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1162
|
||||
#, kde-format
|
||||
msgid "Upcoming Songs"
|
||||
msgstr "Cantos a venir"
|
||||
@@ -465,6 +465,16 @@ msgstr "Nulle previes cerca correspondente"
|
||||
msgid "Share to"
|
||||
msgstr "Comparti a"
|
||||
|
||||
#: contents/ui/ShareMenu.qml:49 contents/ui/ShareMenu.qml:103
|
||||
#, kde-format
|
||||
msgid "Copy Link"
|
||||
msgstr "Copia Ligamine"
|
||||
|
||||
#: contents/ui/ShareMenu.qml:54 contents/ui/ShareMenu.qml:108
|
||||
#, kde-format
|
||||
msgid "Link copied to clipboard"
|
||||
msgstr "Ligamine copiate a area de transferentia"
|
||||
|
||||
#: contents/ui/Sidebar.qml:108
|
||||
#, kde-format
|
||||
msgid "Home"
|
||||
@@ -505,50 +515,50 @@ msgstr "Remove ex chronologia"
|
||||
msgid "Add to playlist"
|
||||
msgstr "Adde al lista de reproduction"
|
||||
|
||||
#: main.cpp:54
|
||||
#: main.cpp:90
|
||||
#, kde-format
|
||||
msgctxt "YouTube Music is a music streaming service by Google"
|
||||
msgid "Stream music from YouTube Music"
|
||||
msgstr "Musica de stream (fluxo) ab YouTube Music"
|
||||
|
||||
#: main.cpp:56
|
||||
#: main.cpp:92
|
||||
#, kde-format
|
||||
msgid "© 2021–2024 Jonah Brüchert, 2021–2024 KDE Community"
|
||||
msgstr "© 2021–2024 Jonah Brüchert, 2021-2024 Communitate de KDE"
|
||||
|
||||
#: main.cpp:57
|
||||
#: main.cpp:93
|
||||
#, kde-format
|
||||
msgid "Jonah Brüchert"
|
||||
msgstr "Jonah Brüchert"
|
||||
|
||||
#: main.cpp:57
|
||||
#: main.cpp:93
|
||||
#, kde-format
|
||||
msgid "Maintainer"
|
||||
msgstr "Mantenitor"
|
||||
|
||||
#: main.cpp:58
|
||||
#: main.cpp:94
|
||||
#, kde-format
|
||||
msgid "Mathis Brüchert"
|
||||
msgstr "Mathis Brüchert"
|
||||
|
||||
#: main.cpp:58
|
||||
#: main.cpp:94
|
||||
#, kde-format
|
||||
msgid "Designer"
|
||||
msgstr "Designator"
|
||||
|
||||
#: main.cpp:59
|
||||
#: main.cpp:95
|
||||
#, kde-format
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
msgid "Your names"
|
||||
msgstr "Giovanni Sora"
|
||||
|
||||
#: main.cpp:59
|
||||
#: main.cpp:95
|
||||
#, kde-format
|
||||
msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr "[email protected]"
|
||||
|
||||
#: main.cpp:66
|
||||
#: main.cpp:102
|
||||
#, kde-format
|
||||
msgctxt "YouTube Music is a music streaming service by Google"
|
||||
msgid "Unofficial API for YouTube Music"
|
||||
@@ -559,22 +569,16 @@ msgstr "API non official per YouTube Music"
|
||||
msgid "No description"
|
||||
msgstr "Nulle description"
|
||||
|
||||
#: playlistimporter.cpp:68
|
||||
#: playlistimporter.cpp:62
|
||||
#, kde-format
|
||||
msgid "No title"
|
||||
msgstr "Necun titulo"
|
||||
|
||||
#: playlistimporter.cpp:71
|
||||
#: playlistimporter.cpp:64
|
||||
#, kde-format
|
||||
msgid "No album"
|
||||
msgstr "Necun album"
|
||||
|
||||
#~ msgid "Copy Link"
|
||||
#~ msgstr "Copia Ligamine"
|
||||
|
||||
#~ msgid "Link copied to clipboard"
|
||||
#~ msgstr "Ligamine copiate a area de transferentia"
|
||||
|
||||
#~ msgid "Remove Favorite"
|
||||
#~ msgstr "Remove favorito"
|
||||
|
||||
|
||||
+40
-36
@@ -6,7 +6,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: audiotube\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2026-10-01 17:39+0000\n"
|
||||
"POT-Creation-Date: 2026-02-20 00:44+0000\n"
|
||||
"PO-Revision-Date: 2023-06-16 19:34+0700\n"
|
||||
"Last-Translator: Linerly <[email protected]>\n"
|
||||
"Language-Team: Indonesian <[email protected]>\n"
|
||||
@@ -289,7 +289,7 @@ msgstr "Daftar putar ini masih kosong"
|
||||
msgid "Import Playlist"
|
||||
msgstr "Daftar Putar"
|
||||
|
||||
#: contents/ui/Main.qml:160 main.cpp:52
|
||||
#: contents/ui/Main.qml:160 main.cpp:88
|
||||
#, kde-format
|
||||
msgid "AudioTube"
|
||||
msgstr "AudioTube"
|
||||
@@ -311,96 +311,96 @@ msgstr "Tutup Pemutar Termaksimalkan"
|
||||
msgid "No media playing"
|
||||
msgstr "Tidak ada media yang diputarkan"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:553 contents/ui/SongMenu.qml:107
|
||||
#: contents/ui/MaximizedPlayerPage.qml:538 contents/ui/SongMenu.qml:107
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Remove Favourite"
|
||||
msgid "Remove from Favorites"
|
||||
msgstr "Hapus Favorit"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:553 contents/ui/SongMenu.qml:107
|
||||
#: contents/ui/MaximizedPlayerPage.qml:538 contents/ui/SongMenu.qml:107
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Add Favourite"
|
||||
msgid "Add to Favorites"
|
||||
msgstr "Tambahkan Favorit"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:578
|
||||
#: contents/ui/MaximizedPlayerPage.qml:563
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Open in Browser"
|
||||
msgid "Open Volume Drawer"
|
||||
msgstr "Buka di Peramban"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:685
|
||||
#: contents/ui/MaximizedPlayerPage.qml:670
|
||||
#, kde-format
|
||||
msgid "Unmute Audio"
|
||||
msgstr "Suarakan Audio"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:685
|
||||
#: contents/ui/MaximizedPlayerPage.qml:670
|
||||
#, kde-format
|
||||
msgid "Mute Audio"
|
||||
msgstr "Bisukan Audio"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:724
|
||||
#: contents/ui/MaximizedPlayerPage.qml:709
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "%1%"
|
||||
msgctxt "%1 is the audio volume in percent"
|
||||
msgid "%1%"
|
||||
msgstr "%1%"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:754
|
||||
#: contents/ui/MaximizedPlayerPage.qml:739
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Lyrics"
|
||||
msgid "Hide Lyrics"
|
||||
msgstr "Lirik"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:754
|
||||
#: contents/ui/MaximizedPlayerPage.qml:739
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Lyrics"
|
||||
msgid "Show Lyrics"
|
||||
msgstr "Lirik"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:774 contents/ui/SongMenu.qml:139
|
||||
#: contents/ui/MaximizedPlayerPage.qml:759 contents/ui/SongMenu.qml:139
|
||||
#, kde-format
|
||||
msgid "Share Song"
|
||||
msgstr "Bagikan Lagu"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:815
|
||||
#: contents/ui/MaximizedPlayerPage.qml:800
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Add to Playlist"
|
||||
msgid "Add to a local playlist"
|
||||
msgstr "Tambahkan ke Daftar Putar"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:852
|
||||
#: contents/ui/MaximizedPlayerPage.qml:837
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Queue"
|
||||
msgid "Hide Queue"
|
||||
msgstr "Antrean"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:852
|
||||
#: contents/ui/MaximizedPlayerPage.qml:837
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Queue"
|
||||
msgid "Show Queue"
|
||||
msgstr "Antrean"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1084
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1329
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1069
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1314
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Remove Favourite"
|
||||
msgid "Remove Song"
|
||||
msgstr "Hapus Favorit"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1119
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1104
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Queue"
|
||||
msgid "Clear Queue"
|
||||
msgstr "Antrean"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1144
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1129
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Shuffle"
|
||||
msgid "Shuffle Queue"
|
||||
msgstr "Acak"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1177
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1162
|
||||
#, kde-format
|
||||
msgid "Upcoming Songs"
|
||||
msgstr "Lagu Berikutnya"
|
||||
@@ -491,6 +491,16 @@ msgstr "Tidak ada pencarian sebelumnya yang cocok"
|
||||
msgid "Share to"
|
||||
msgstr "Bagikan ke"
|
||||
|
||||
#: contents/ui/ShareMenu.qml:49 contents/ui/ShareMenu.qml:103
|
||||
#, kde-format
|
||||
msgid "Copy Link"
|
||||
msgstr "Salin Tautan"
|
||||
|
||||
#: contents/ui/ShareMenu.qml:54 contents/ui/ShareMenu.qml:108
|
||||
#, kde-format
|
||||
msgid "Link copied to clipboard"
|
||||
msgstr "Tautan disalin ke papan klip"
|
||||
|
||||
#: contents/ui/Sidebar.qml:108
|
||||
#, kde-format
|
||||
msgid "Home"
|
||||
@@ -531,52 +541,52 @@ msgstr "Hapus dari Riwayat"
|
||||
msgid "Add to playlist"
|
||||
msgstr "Tambahkan ke daftar putar"
|
||||
|
||||
#: main.cpp:54
|
||||
#: main.cpp:90
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Unofficial API for YouTube Music"
|
||||
msgctxt "YouTube Music is a music streaming service by Google"
|
||||
msgid "Stream music from YouTube Music"
|
||||
msgstr "API tidak resmi untuk YouTube Music"
|
||||
|
||||
#: main.cpp:56
|
||||
#: main.cpp:92
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "© 2021-2023 Jonah Brüchert, 2021-2023 KDE Community"
|
||||
msgid "© 2021–2024 Jonah Brüchert, 2021–2024 KDE Community"
|
||||
msgstr "© 2021-2023 Jonah Brüchert, 2021-2023 Komunitas KDE"
|
||||
|
||||
#: main.cpp:57
|
||||
#: main.cpp:93
|
||||
#, kde-format
|
||||
msgid "Jonah Brüchert"
|
||||
msgstr "Jonah Brüchert"
|
||||
|
||||
#: main.cpp:57
|
||||
#: main.cpp:93
|
||||
#, kde-format
|
||||
msgid "Maintainer"
|
||||
msgstr "Pemelihara"
|
||||
|
||||
#: main.cpp:58
|
||||
#: main.cpp:94
|
||||
#, kde-format
|
||||
msgid "Mathis Brüchert"
|
||||
msgstr "Mathis Brüchert"
|
||||
|
||||
#: main.cpp:58
|
||||
#: main.cpp:94
|
||||
#, kde-format
|
||||
msgid "Designer"
|
||||
msgstr "Perancang"
|
||||
|
||||
#: main.cpp:59
|
||||
#: main.cpp:95
|
||||
#, kde-format
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
msgid "Your names"
|
||||
msgstr "Linerly"
|
||||
|
||||
#: main.cpp:59
|
||||
#: main.cpp:95
|
||||
#, kde-format
|
||||
msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr "[email protected]"
|
||||
|
||||
#: main.cpp:66
|
||||
#: main.cpp:102
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Unofficial API for YouTube Music"
|
||||
msgctxt "YouTube Music is a music streaming service by Google"
|
||||
@@ -589,22 +599,16 @@ msgstr "API tidak resmi untuk YouTube Music"
|
||||
msgid "No description"
|
||||
msgstr "Deskripsi Daftar Putar"
|
||||
|
||||
#: playlistimporter.cpp:68
|
||||
#: playlistimporter.cpp:62
|
||||
#, kde-format
|
||||
msgid "No title"
|
||||
msgstr "Tidak ada judul"
|
||||
|
||||
#: playlistimporter.cpp:71
|
||||
#: playlistimporter.cpp:64
|
||||
#, kde-format
|
||||
msgid "No album"
|
||||
msgstr "Tidak ada album"
|
||||
|
||||
#~ msgid "Copy Link"
|
||||
#~ msgstr "Salin Tautan"
|
||||
|
||||
#~ msgid "Link copied to clipboard"
|
||||
#~ msgstr "Tautan disalin ke papan klip"
|
||||
|
||||
#, fuzzy
|
||||
#~| msgid "Remove Favourite"
|
||||
#~ msgid "Remove Favorite"
|
||||
|
||||
+40
-36
@@ -6,7 +6,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: audiotube\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2026-10-01 17:39+0000\n"
|
||||
"POT-Creation-Date: 2026-02-20 00:44+0000\n"
|
||||
"PO-Revision-Date: 2026-03-10 17:28+0000\n"
|
||||
"Last-Translator: Sveinn í Felli <[email protected]>\n"
|
||||
"Language-Team: Icelandic\n"
|
||||
@@ -278,7 +278,7 @@ msgstr "Þessi spilunarlisti er tómur"
|
||||
msgid "Import Playlist"
|
||||
msgstr "Flytja inn spilunarlista"
|
||||
|
||||
#: contents/ui/Main.qml:160 main.cpp:52
|
||||
#: contents/ui/Main.qml:160 main.cpp:88
|
||||
#, kde-format
|
||||
msgid "AudioTube"
|
||||
msgstr "AudioTube"
|
||||
@@ -299,84 +299,84 @@ msgstr "Loka hámörkuðum spilara"
|
||||
msgid "No media playing"
|
||||
msgstr "Ekkert efni í spilun"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:553 contents/ui/SongMenu.qml:107
|
||||
#: contents/ui/MaximizedPlayerPage.qml:538 contents/ui/SongMenu.qml:107
|
||||
#, kde-format
|
||||
msgid "Remove from Favorites"
|
||||
msgstr "Fjarlægja úr eftirlætum"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:553 contents/ui/SongMenu.qml:107
|
||||
#: contents/ui/MaximizedPlayerPage.qml:538 contents/ui/SongMenu.qml:107
|
||||
#, kde-format
|
||||
msgid "Add to Favorites"
|
||||
msgstr "Bæta í eftirlæti"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:578
|
||||
#: contents/ui/MaximizedPlayerPage.qml:563
|
||||
#, kde-format
|
||||
msgid "Open Volume Drawer"
|
||||
msgstr "Opna hljóðstyrkssleða"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:685
|
||||
#: contents/ui/MaximizedPlayerPage.qml:670
|
||||
#, kde-format
|
||||
msgid "Unmute Audio"
|
||||
msgstr "Kveikja á hljóði"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:685
|
||||
#: contents/ui/MaximizedPlayerPage.qml:670
|
||||
#, kde-format
|
||||
msgid "Mute Audio"
|
||||
msgstr "Þagga hljóð"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:724
|
||||
#: contents/ui/MaximizedPlayerPage.qml:709
|
||||
#, kde-format
|
||||
msgctxt "%1 is the audio volume in percent"
|
||||
msgid "%1%"
|
||||
msgstr "%1%"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:754
|
||||
#: contents/ui/MaximizedPlayerPage.qml:739
|
||||
#, kde-format
|
||||
msgid "Hide Lyrics"
|
||||
msgstr "Fela lagatexta"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:754
|
||||
#: contents/ui/MaximizedPlayerPage.qml:739
|
||||
#, kde-format
|
||||
msgid "Show Lyrics"
|
||||
msgstr "Birta lagatexta"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:774 contents/ui/SongMenu.qml:139
|
||||
#: contents/ui/MaximizedPlayerPage.qml:759 contents/ui/SongMenu.qml:139
|
||||
#, kde-format
|
||||
msgid "Share Song"
|
||||
msgstr "Deila lagi"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:815
|
||||
#: contents/ui/MaximizedPlayerPage.qml:800
|
||||
#, kde-format
|
||||
msgid "Add to a local playlist"
|
||||
msgstr "Bæta við staðværan spilunarlista"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:852
|
||||
#: contents/ui/MaximizedPlayerPage.qml:837
|
||||
#, kde-format
|
||||
msgid "Hide Queue"
|
||||
msgstr "Fela spilunarröð"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:852
|
||||
#: contents/ui/MaximizedPlayerPage.qml:837
|
||||
#, kde-format
|
||||
msgid "Show Queue"
|
||||
msgstr "Sýna spilunarröð"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1084
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1329
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1069
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1314
|
||||
#, kde-format
|
||||
msgid "Remove Song"
|
||||
msgstr "Fjarlægja lag"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1119
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1104
|
||||
#, kde-format
|
||||
msgid "Clear Queue"
|
||||
msgstr "Hreinsa spilunarröð"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1144
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1129
|
||||
#, kde-format
|
||||
msgid "Shuffle Queue"
|
||||
msgstr "Stokka biðröðina"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1177
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1162
|
||||
#, kde-format
|
||||
msgid "Upcoming Songs"
|
||||
msgstr "Væntanleg lög"
|
||||
@@ -463,6 +463,16 @@ msgstr "Engin samsvörun við fyrri leitir"
|
||||
msgid "Share to"
|
||||
msgstr "Deila til"
|
||||
|
||||
#: contents/ui/ShareMenu.qml:49 contents/ui/ShareMenu.qml:103
|
||||
#, kde-format
|
||||
msgid "Copy Link"
|
||||
msgstr "Afrita tengil"
|
||||
|
||||
#: contents/ui/ShareMenu.qml:54 contents/ui/ShareMenu.qml:108
|
||||
#, kde-format
|
||||
msgid "Link copied to clipboard"
|
||||
msgstr "Tengill afritaður á klippispjald"
|
||||
|
||||
#: contents/ui/Sidebar.qml:108
|
||||
#, kde-format
|
||||
msgid "Home"
|
||||
@@ -503,50 +513,50 @@ msgstr "Fjarlægja úr vinnsluferli"
|
||||
msgid "Add to playlist"
|
||||
msgstr "Bæta við spilunarlista"
|
||||
|
||||
#: main.cpp:54
|
||||
#: main.cpp:90
|
||||
#, kde-format
|
||||
msgctxt "YouTube Music is a music streaming service by Google"
|
||||
msgid "Stream music from YouTube Music"
|
||||
msgstr "Streymdu tónlist frá YouTube Music"
|
||||
|
||||
#: main.cpp:56
|
||||
#: main.cpp:92
|
||||
#, kde-format
|
||||
msgid "© 2021–2024 Jonah Brüchert, 2021–2024 KDE Community"
|
||||
msgstr "© 2021-2024 Jonah Brüchert, 2021-2024 KDE-samfélagið"
|
||||
|
||||
#: main.cpp:57
|
||||
#: main.cpp:93
|
||||
#, kde-format
|
||||
msgid "Jonah Brüchert"
|
||||
msgstr "Jonah Brüchert"
|
||||
|
||||
#: main.cpp:57
|
||||
#: main.cpp:93
|
||||
#, kde-format
|
||||
msgid "Maintainer"
|
||||
msgstr "Umsjónarmaður"
|
||||
|
||||
#: main.cpp:58
|
||||
#: main.cpp:94
|
||||
#, kde-format
|
||||
msgid "Mathis Brüchert"
|
||||
msgstr "Mathis Brüchert"
|
||||
|
||||
#: main.cpp:58
|
||||
#: main.cpp:94
|
||||
#, kde-format
|
||||
msgid "Designer"
|
||||
msgstr "Hönnuður"
|
||||
|
||||
#: main.cpp:59
|
||||
#: main.cpp:95
|
||||
#, kde-format
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
msgid "Your names"
|
||||
msgstr "Sveinn í Felli"
|
||||
|
||||
#: main.cpp:59
|
||||
#: main.cpp:95
|
||||
#, kde-format
|
||||
msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr "[email protected]"
|
||||
|
||||
#: main.cpp:66
|
||||
#: main.cpp:102
|
||||
#, kde-format
|
||||
msgctxt "YouTube Music is a music streaming service by Google"
|
||||
msgid "Unofficial API for YouTube Music"
|
||||
@@ -557,22 +567,16 @@ msgstr "Óopinbert API-viðmót fyrir YouTube Music"
|
||||
msgid "No description"
|
||||
msgstr "Engin lýsing"
|
||||
|
||||
#: playlistimporter.cpp:68
|
||||
#: playlistimporter.cpp:62
|
||||
#, kde-format
|
||||
msgid "No title"
|
||||
msgstr "Enginn titill"
|
||||
|
||||
#: playlistimporter.cpp:71
|
||||
#: playlistimporter.cpp:64
|
||||
#, kde-format
|
||||
msgid "No album"
|
||||
msgstr "Engin hljómplata"
|
||||
|
||||
#~ msgid "Copy Link"
|
||||
#~ msgstr "Afrita tengil"
|
||||
|
||||
#~ msgid "Link copied to clipboard"
|
||||
#~ msgstr "Tengill afritaður á klippispjald"
|
||||
|
||||
#~ msgid "Remove Favorite"
|
||||
#~ msgstr "Fjarlægja eftirlæti"
|
||||
|
||||
|
||||
+40
-36
@@ -6,7 +6,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: audiotube\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2026-10-01 17:39+0000\n"
|
||||
"POT-Creation-Date: 2026-02-20 00:44+0000\n"
|
||||
"PO-Revision-Date: 2026-02-21 08:38+0100\n"
|
||||
"Last-Translator: Vincenzo Reale <[email protected]>\n"
|
||||
"Language-Team: Italian <[email protected]>\n"
|
||||
@@ -279,7 +279,7 @@ msgstr "Questa scaletta è ancora vuota"
|
||||
msgid "Import Playlist"
|
||||
msgstr "Importa scaletta"
|
||||
|
||||
#: contents/ui/Main.qml:160 main.cpp:52
|
||||
#: contents/ui/Main.qml:160 main.cpp:88
|
||||
#, kde-format
|
||||
msgid "AudioTube"
|
||||
msgstr "AudioTube"
|
||||
@@ -300,84 +300,84 @@ msgstr "Chiudi il lettore massimizzato"
|
||||
msgid "No media playing"
|
||||
msgstr "Nessun supporto in riproduzione"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:553 contents/ui/SongMenu.qml:107
|
||||
#: contents/ui/MaximizedPlayerPage.qml:538 contents/ui/SongMenu.qml:107
|
||||
#, kde-format
|
||||
msgid "Remove from Favorites"
|
||||
msgstr "Rimuovi dai preferiti"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:553 contents/ui/SongMenu.qml:107
|
||||
#: contents/ui/MaximizedPlayerPage.qml:538 contents/ui/SongMenu.qml:107
|
||||
#, kde-format
|
||||
msgid "Add to Favorites"
|
||||
msgstr "Aggiungi ai preferiti"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:578
|
||||
#: contents/ui/MaximizedPlayerPage.qml:563
|
||||
#, kde-format
|
||||
msgid "Open Volume Drawer"
|
||||
msgstr "Apri il cassetto del volume"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:685
|
||||
#: contents/ui/MaximizedPlayerPage.qml:670
|
||||
#, kde-format
|
||||
msgid "Unmute Audio"
|
||||
msgstr "Rimuovi il silenzio"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:685
|
||||
#: contents/ui/MaximizedPlayerPage.qml:670
|
||||
#, kde-format
|
||||
msgid "Mute Audio"
|
||||
msgstr "Silenzia l'audio"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:724
|
||||
#: contents/ui/MaximizedPlayerPage.qml:709
|
||||
#, kde-format
|
||||
msgctxt "%1 is the audio volume in percent"
|
||||
msgid "%1%"
|
||||
msgstr "%1%"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:754
|
||||
#: contents/ui/MaximizedPlayerPage.qml:739
|
||||
#, kde-format
|
||||
msgid "Hide Lyrics"
|
||||
msgstr "Nascondi i testi"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:754
|
||||
#: contents/ui/MaximizedPlayerPage.qml:739
|
||||
#, kde-format
|
||||
msgid "Show Lyrics"
|
||||
msgstr "Mostra i testi"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:774 contents/ui/SongMenu.qml:139
|
||||
#: contents/ui/MaximizedPlayerPage.qml:759 contents/ui/SongMenu.qml:139
|
||||
#, kde-format
|
||||
msgid "Share Song"
|
||||
msgstr "Condividi brano"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:815
|
||||
#: contents/ui/MaximizedPlayerPage.qml:800
|
||||
#, kde-format
|
||||
msgid "Add to a local playlist"
|
||||
msgstr "Aggiungi a una scaletta locale"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:852
|
||||
#: contents/ui/MaximizedPlayerPage.qml:837
|
||||
#, kde-format
|
||||
msgid "Hide Queue"
|
||||
msgstr "Nascondi la coda"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:852
|
||||
#: contents/ui/MaximizedPlayerPage.qml:837
|
||||
#, kde-format
|
||||
msgid "Show Queue"
|
||||
msgstr "Mostra la coda"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1084
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1329
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1069
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1314
|
||||
#, kde-format
|
||||
msgid "Remove Song"
|
||||
msgstr "Rimuovi brano"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1119
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1104
|
||||
#, kde-format
|
||||
msgid "Clear Queue"
|
||||
msgstr "Cancella la coda"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1144
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1129
|
||||
#, kde-format
|
||||
msgid "Shuffle Queue"
|
||||
msgstr "Mescola la coda"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1177
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1162
|
||||
#, kde-format
|
||||
msgid "Upcoming Songs"
|
||||
msgstr "Prossimi brani"
|
||||
@@ -465,6 +465,16 @@ msgstr "Nessuna ricerca precedente corrispondente"
|
||||
msgid "Share to"
|
||||
msgstr "Condividi con"
|
||||
|
||||
#: contents/ui/ShareMenu.qml:49 contents/ui/ShareMenu.qml:103
|
||||
#, kde-format
|
||||
msgid "Copy Link"
|
||||
msgstr "Copia collegamento"
|
||||
|
||||
#: contents/ui/ShareMenu.qml:54 contents/ui/ShareMenu.qml:108
|
||||
#, kde-format
|
||||
msgid "Link copied to clipboard"
|
||||
msgstr "Collegamento copiato negli appunti"
|
||||
|
||||
#: contents/ui/Sidebar.qml:108
|
||||
#, kde-format
|
||||
msgid "Home"
|
||||
@@ -505,50 +515,50 @@ msgstr "Rimuovi dalla cronologia"
|
||||
msgid "Add to playlist"
|
||||
msgstr "Aggiungi alla scaletta"
|
||||
|
||||
#: main.cpp:54
|
||||
#: main.cpp:90
|
||||
#, kde-format
|
||||
msgctxt "YouTube Music is a music streaming service by Google"
|
||||
msgid "Stream music from YouTube Music"
|
||||
msgstr "Riproduci musica da YouTube Music"
|
||||
|
||||
#: main.cpp:56
|
||||
#: main.cpp:92
|
||||
#, kde-format
|
||||
msgid "© 2021–2024 Jonah Brüchert, 2021–2024 KDE Community"
|
||||
msgstr "© 2021–2024 Jonah Brüchert, 2021–2024 Comunità KDE"
|
||||
|
||||
#: main.cpp:57
|
||||
#: main.cpp:93
|
||||
#, kde-format
|
||||
msgid "Jonah Brüchert"
|
||||
msgstr "Jonah Brüchert"
|
||||
|
||||
#: main.cpp:57
|
||||
#: main.cpp:93
|
||||
#, kde-format
|
||||
msgid "Maintainer"
|
||||
msgstr "Responsabile"
|
||||
|
||||
#: main.cpp:58
|
||||
#: main.cpp:94
|
||||
#, kde-format
|
||||
msgid "Mathis Brüchert"
|
||||
msgstr "Mathis Brüchert"
|
||||
|
||||
#: main.cpp:58
|
||||
#: main.cpp:94
|
||||
#, kde-format
|
||||
msgid "Designer"
|
||||
msgstr "Progettista"
|
||||
|
||||
#: main.cpp:59
|
||||
#: main.cpp:95
|
||||
#, kde-format
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
msgid "Your names"
|
||||
msgstr "Vincenzo Reale"
|
||||
|
||||
#: main.cpp:59
|
||||
#: main.cpp:95
|
||||
#, kde-format
|
||||
msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr "[email protected]"
|
||||
|
||||
#: main.cpp:66
|
||||
#: main.cpp:102
|
||||
#, kde-format
|
||||
msgctxt "YouTube Music is a music streaming service by Google"
|
||||
msgid "Unofficial API for YouTube Music"
|
||||
@@ -559,22 +569,16 @@ msgstr "API non ufficiale per YouTube Music"
|
||||
msgid "No description"
|
||||
msgstr "Nessuna descrizione"
|
||||
|
||||
#: playlistimporter.cpp:68
|
||||
#: playlistimporter.cpp:62
|
||||
#, kde-format
|
||||
msgid "No title"
|
||||
msgstr "Nessun titolo"
|
||||
|
||||
#: playlistimporter.cpp:71
|
||||
#: playlistimporter.cpp:64
|
||||
#, kde-format
|
||||
msgid "No album"
|
||||
msgstr "Nessun album"
|
||||
|
||||
#~ msgid "Copy Link"
|
||||
#~ msgstr "Copia collegamento"
|
||||
|
||||
#~ msgid "Link copied to clipboard"
|
||||
#~ msgstr "Collegamento copiato negli appunti"
|
||||
|
||||
#~ msgid "Remove Favorite"
|
||||
#~ msgstr "Rimuovi preferito"
|
||||
|
||||
|
||||
+40
-36
@@ -4,7 +4,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: audiotube\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2026-10-01 17:39+0000\n"
|
||||
"POT-Creation-Date: 2026-02-20 00:44+0000\n"
|
||||
"PO-Revision-Date: 2023-11-24 09:45+0900\n"
|
||||
"Last-Translator: maboroshin <pc.genkaku.in>\n"
|
||||
"Language-Team: Japanese <[email protected]>\n"
|
||||
@@ -284,7 +284,7 @@ msgstr "この再生リストはまだ曲が未登録"
|
||||
msgid "Import Playlist"
|
||||
msgstr "再生リストのインポート"
|
||||
|
||||
#: contents/ui/Main.qml:160 main.cpp:52
|
||||
#: contents/ui/Main.qml:160 main.cpp:88
|
||||
#, kde-format
|
||||
msgid "AudioTube"
|
||||
msgstr ""
|
||||
@@ -305,87 +305,87 @@ msgstr "最大化したプレーヤーを閉じる"
|
||||
msgid "No media playing"
|
||||
msgstr "再生中のメディアなし"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:553 contents/ui/SongMenu.qml:107
|
||||
#: contents/ui/MaximizedPlayerPage.qml:538 contents/ui/SongMenu.qml:107
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Remove from Favourites"
|
||||
msgid "Remove from Favorites"
|
||||
msgstr "お気に入りから削除"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:553 contents/ui/SongMenu.qml:107
|
||||
#: contents/ui/MaximizedPlayerPage.qml:538 contents/ui/SongMenu.qml:107
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Add to Favourites"
|
||||
msgid "Add to Favorites"
|
||||
msgstr "お気に入りに追加"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:578
|
||||
#: contents/ui/MaximizedPlayerPage.qml:563
|
||||
#, kde-format
|
||||
msgid "Open Volume Drawer"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:685
|
||||
#: contents/ui/MaximizedPlayerPage.qml:670
|
||||
#, kde-format
|
||||
msgid "Unmute Audio"
|
||||
msgstr "音声のミュート解除"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:685
|
||||
#: contents/ui/MaximizedPlayerPage.qml:670
|
||||
#, kde-format
|
||||
msgid "Mute Audio"
|
||||
msgstr "音声をミュート"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:724
|
||||
#: contents/ui/MaximizedPlayerPage.qml:709
|
||||
#, kde-format
|
||||
msgctxt "%1 is the audio volume in percent"
|
||||
msgid "%1%"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:754
|
||||
#: contents/ui/MaximizedPlayerPage.qml:739
|
||||
#, kde-format
|
||||
msgid "Hide Lyrics"
|
||||
msgstr "歌詞を隠す"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:754
|
||||
#: contents/ui/MaximizedPlayerPage.qml:739
|
||||
#, kde-format
|
||||
msgid "Show Lyrics"
|
||||
msgstr "歌詞を表示"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:774 contents/ui/SongMenu.qml:139
|
||||
#: contents/ui/MaximizedPlayerPage.qml:759 contents/ui/SongMenu.qml:139
|
||||
#, kde-format
|
||||
msgid "Share Song"
|
||||
msgstr "曲を共有"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:815
|
||||
#: contents/ui/MaximizedPlayerPage.qml:800
|
||||
#, kde-format
|
||||
msgid "Add to a local playlist"
|
||||
msgstr "端末内の再生リストに曲を追加"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:852
|
||||
#: contents/ui/MaximizedPlayerPage.qml:837
|
||||
#, kde-format
|
||||
msgid "Hide Queue"
|
||||
msgstr "再生キューを隠す"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:852
|
||||
#: contents/ui/MaximizedPlayerPage.qml:837
|
||||
#, kde-format
|
||||
msgid "Show Queue"
|
||||
msgstr "再生キューを表示"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1084
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1329
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1069
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1314
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Remove Favourite"
|
||||
msgid "Remove Song"
|
||||
msgstr "お気に入りから除去"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1119
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1104
|
||||
#, kde-format
|
||||
msgid "Clear Queue"
|
||||
msgstr "キューを消去"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1144
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1129
|
||||
#, kde-format
|
||||
msgid "Shuffle Queue"
|
||||
msgstr "キューをシャッフル"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1177
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1162
|
||||
#, kde-format
|
||||
msgid "Upcoming Songs"
|
||||
msgstr "次の曲"
|
||||
@@ -473,6 +473,16 @@ msgstr "以前の検索との一致なし"
|
||||
msgid "Share to"
|
||||
msgstr "共有"
|
||||
|
||||
#: contents/ui/ShareMenu.qml:49 contents/ui/ShareMenu.qml:103
|
||||
#, kde-format
|
||||
msgid "Copy Link"
|
||||
msgstr "リンクをコピー"
|
||||
|
||||
#: contents/ui/ShareMenu.qml:54 contents/ui/ShareMenu.qml:108
|
||||
#, kde-format
|
||||
msgid "Link copied to clipboard"
|
||||
msgstr "リンクをクリップボードにコピーしました"
|
||||
|
||||
#: contents/ui/Sidebar.qml:108
|
||||
#, kde-format
|
||||
msgid "Home"
|
||||
@@ -513,50 +523,50 @@ msgstr "履歴から除去"
|
||||
msgid "Add to playlist"
|
||||
msgstr "再生リストに追加"
|
||||
|
||||
#: main.cpp:54
|
||||
#: main.cpp:90
|
||||
#, kde-format
|
||||
msgctxt "YouTube Music is a music streaming service by Google"
|
||||
msgid "Stream music from YouTube Music"
|
||||
msgstr "YouTube Music から音楽を配信"
|
||||
|
||||
#: main.cpp:56
|
||||
#: main.cpp:92
|
||||
#, kde-format
|
||||
msgid "© 2021–2024 Jonah Brüchert, 2021–2024 KDE Community"
|
||||
msgstr ""
|
||||
|
||||
#: main.cpp:57
|
||||
#: main.cpp:93
|
||||
#, kde-format
|
||||
msgid "Jonah Brüchert"
|
||||
msgstr ""
|
||||
|
||||
#: main.cpp:57
|
||||
#: main.cpp:93
|
||||
#, kde-format
|
||||
msgid "Maintainer"
|
||||
msgstr "保守管理者"
|
||||
|
||||
#: main.cpp:58
|
||||
#: main.cpp:94
|
||||
#, kde-format
|
||||
msgid "Mathis Brüchert"
|
||||
msgstr ""
|
||||
|
||||
#: main.cpp:58
|
||||
#: main.cpp:94
|
||||
#, kde-format
|
||||
msgid "Designer"
|
||||
msgstr "デザイナー"
|
||||
|
||||
#: main.cpp:59
|
||||
#: main.cpp:95
|
||||
#, kde-format
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
msgid "Your names"
|
||||
msgstr "maboroshin"
|
||||
|
||||
#: main.cpp:59
|
||||
#: main.cpp:95
|
||||
#, kde-format
|
||||
msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr "pc.genkaku.in"
|
||||
|
||||
#: main.cpp:66
|
||||
#: main.cpp:102
|
||||
#, kde-format
|
||||
msgctxt "YouTube Music is a music streaming service by Google"
|
||||
msgid "Unofficial API for YouTube Music"
|
||||
@@ -567,22 +577,16 @@ msgstr "YouTube Music 用の非公式 API"
|
||||
msgid "No description"
|
||||
msgstr "説明なし"
|
||||
|
||||
#: playlistimporter.cpp:68
|
||||
#: playlistimporter.cpp:62
|
||||
#, kde-format
|
||||
msgid "No title"
|
||||
msgstr "タイトルなし"
|
||||
|
||||
#: playlistimporter.cpp:71
|
||||
#: playlistimporter.cpp:64
|
||||
#, kde-format
|
||||
msgid "No album"
|
||||
msgstr "アルバムなし"
|
||||
|
||||
#~ msgid "Copy Link"
|
||||
#~ msgstr "リンクをコピー"
|
||||
|
||||
#~ msgid "Link copied to clipboard"
|
||||
#~ msgstr "リンクをクリップボードにコピーしました"
|
||||
|
||||
#, fuzzy
|
||||
#~| msgid "Remove Favourite"
|
||||
#~ msgid "Remove Favorite"
|
||||
|
||||
+40
-36
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: audiotube\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2026-10-01 17:39+0000\n"
|
||||
"POT-Creation-Date: 2026-02-20 00:44+0000\n"
|
||||
"PO-Revision-Date: 2026-02-20 06:32+0100\n"
|
||||
"Last-Translator: Temuri Doghonadze <[email protected]>\n"
|
||||
"Language-Team: Georgian <[email protected]>\n"
|
||||
@@ -279,7 +279,7 @@ msgstr "ეს დასაკრავი სია ჯერ კიდევ
|
||||
msgid "Import Playlist"
|
||||
msgstr "დასაკრავი სიის შემოტანა"
|
||||
|
||||
#: contents/ui/Main.qml:160 main.cpp:52
|
||||
#: contents/ui/Main.qml:160 main.cpp:88
|
||||
#, kde-format
|
||||
msgid "AudioTube"
|
||||
msgstr "AudioTube"
|
||||
@@ -300,84 +300,84 @@ msgstr "მთელ ეკრანზე გაშლილი დამკვ
|
||||
msgid "No media playing"
|
||||
msgstr "არაფერს ვუკრავ"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:553 contents/ui/SongMenu.qml:107
|
||||
#: contents/ui/MaximizedPlayerPage.qml:538 contents/ui/SongMenu.qml:107
|
||||
#, kde-format
|
||||
msgid "Remove from Favorites"
|
||||
msgstr "რჩეულებიდან წაშლა"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:553 contents/ui/SongMenu.qml:107
|
||||
#: contents/ui/MaximizedPlayerPage.qml:538 contents/ui/SongMenu.qml:107
|
||||
#, kde-format
|
||||
msgid "Add to Favorites"
|
||||
msgstr "რჩეულებში ჩამატება"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:578
|
||||
#: contents/ui/MaximizedPlayerPage.qml:563
|
||||
#, kde-format
|
||||
msgid "Open Volume Drawer"
|
||||
msgstr "ხმის დახატვის გახსნა"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:685
|
||||
#: contents/ui/MaximizedPlayerPage.qml:670
|
||||
#, kde-format
|
||||
msgid "Unmute Audio"
|
||||
msgstr "ხმის ჩართვა"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:685
|
||||
#: contents/ui/MaximizedPlayerPage.qml:670
|
||||
#, kde-format
|
||||
msgid "Mute Audio"
|
||||
msgstr "ხმის დადუმება"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:724
|
||||
#: contents/ui/MaximizedPlayerPage.qml:709
|
||||
#, kde-format
|
||||
msgctxt "%1 is the audio volume in percent"
|
||||
msgid "%1%"
|
||||
msgstr "%1%"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:754
|
||||
#: contents/ui/MaximizedPlayerPage.qml:739
|
||||
#, kde-format
|
||||
msgid "Hide Lyrics"
|
||||
msgstr "ლირიკის დამალვა"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:754
|
||||
#: contents/ui/MaximizedPlayerPage.qml:739
|
||||
#, kde-format
|
||||
msgid "Show Lyrics"
|
||||
msgstr "ლირიკის ჩვენება"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:774 contents/ui/SongMenu.qml:139
|
||||
#: contents/ui/MaximizedPlayerPage.qml:759 contents/ui/SongMenu.qml:139
|
||||
#, kde-format
|
||||
msgid "Share Song"
|
||||
msgstr "სიმღერის გაზიარება"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:815
|
||||
#: contents/ui/MaximizedPlayerPage.qml:800
|
||||
#, kde-format
|
||||
msgid "Add to a local playlist"
|
||||
msgstr "ლოკალურ დასაკრავ სიაში ჩამატება"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:852
|
||||
#: contents/ui/MaximizedPlayerPage.qml:837
|
||||
#, kde-format
|
||||
msgid "Hide Queue"
|
||||
msgstr "რიგის დამალვა"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:852
|
||||
#: contents/ui/MaximizedPlayerPage.qml:837
|
||||
#, kde-format
|
||||
msgid "Show Queue"
|
||||
msgstr "რიგის ჩვენება"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1084
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1329
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1069
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1314
|
||||
#, kde-format
|
||||
msgid "Remove Song"
|
||||
msgstr "სიმღერის წაშლა"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1119
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1104
|
||||
#, kde-format
|
||||
msgid "Clear Queue"
|
||||
msgstr "რიგის გასუფთავება"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1144
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1129
|
||||
#, kde-format
|
||||
msgid "Shuffle Queue"
|
||||
msgstr "შემთხვევით"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1177
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1162
|
||||
#, kde-format
|
||||
msgid "Upcoming Songs"
|
||||
msgstr "მომავალი სიმღერები"
|
||||
@@ -464,6 +464,16 @@ msgstr "წინა ძებნებს არ ემთხვევა"
|
||||
msgid "Share to"
|
||||
msgstr "გაზიარება"
|
||||
|
||||
#: contents/ui/ShareMenu.qml:49 contents/ui/ShareMenu.qml:103
|
||||
#, kde-format
|
||||
msgid "Copy Link"
|
||||
msgstr "ბმულის კოპირება"
|
||||
|
||||
#: contents/ui/ShareMenu.qml:54 contents/ui/ShareMenu.qml:108
|
||||
#, kde-format
|
||||
msgid "Link copied to clipboard"
|
||||
msgstr "ბმული დაკოპირებულია"
|
||||
|
||||
#: contents/ui/Sidebar.qml:108
|
||||
#, kde-format
|
||||
msgid "Home"
|
||||
@@ -504,50 +514,50 @@ msgstr "ისტორიიდან წაშლა"
|
||||
msgid "Add to playlist"
|
||||
msgstr "დასაკრავ სიაში დამატება"
|
||||
|
||||
#: main.cpp:54
|
||||
#: main.cpp:90
|
||||
#, kde-format
|
||||
msgctxt "YouTube Music is a music streaming service by Google"
|
||||
msgid "Stream music from YouTube Music"
|
||||
msgstr "დასტრიმეთ მუსიკა YouTube Music-დან"
|
||||
|
||||
#: main.cpp:56
|
||||
#: main.cpp:92
|
||||
#, kde-format
|
||||
msgid "© 2021–2024 Jonah Brüchert, 2021–2024 KDE Community"
|
||||
msgstr "© 2021-2024 Jonah Brüchert, 2021-2024 KDE Community"
|
||||
|
||||
#: main.cpp:57
|
||||
#: main.cpp:93
|
||||
#, kde-format
|
||||
msgid "Jonah Brüchert"
|
||||
msgstr "Jonah Brüchert"
|
||||
|
||||
#: main.cpp:57
|
||||
#: main.cpp:93
|
||||
#, kde-format
|
||||
msgid "Maintainer"
|
||||
msgstr "წამყვანი პროგრამისტი"
|
||||
|
||||
#: main.cpp:58
|
||||
#: main.cpp:94
|
||||
#, kde-format
|
||||
msgid "Mathis Brüchert"
|
||||
msgstr "Mathis Brüchert"
|
||||
|
||||
#: main.cpp:58
|
||||
#: main.cpp:94
|
||||
#, kde-format
|
||||
msgid "Designer"
|
||||
msgstr "დიზაინერი"
|
||||
|
||||
#: main.cpp:59
|
||||
#: main.cpp:95
|
||||
#, kde-format
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
msgid "Your names"
|
||||
msgstr "Temuri Doghonadze"
|
||||
|
||||
#: main.cpp:59
|
||||
#: main.cpp:95
|
||||
#, kde-format
|
||||
msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr "[email protected]"
|
||||
|
||||
#: main.cpp:66
|
||||
#: main.cpp:102
|
||||
#, kde-format
|
||||
msgctxt "YouTube Music is a music streaming service by Google"
|
||||
msgid "Unofficial API for YouTube Music"
|
||||
@@ -558,22 +568,16 @@ msgstr "YouTube Music-ის არაოფიციალური API"
|
||||
msgid "No description"
|
||||
msgstr "აღწერის გარეშე"
|
||||
|
||||
#: playlistimporter.cpp:68
|
||||
#: playlistimporter.cpp:62
|
||||
#, kde-format
|
||||
msgid "No title"
|
||||
msgstr "სათაურის გარეშე"
|
||||
|
||||
#: playlistimporter.cpp:71
|
||||
#: playlistimporter.cpp:64
|
||||
#, kde-format
|
||||
msgid "No album"
|
||||
msgstr "ალბომის გარეშე"
|
||||
|
||||
#~ msgid "Copy Link"
|
||||
#~ msgstr "ბმულის კოპირება"
|
||||
|
||||
#~ msgid "Link copied to clipboard"
|
||||
#~ msgstr "ბმული დაკოპირებულია"
|
||||
|
||||
#~ msgid "Remove Favorite"
|
||||
#~ msgstr "რჩეულის წაშლა"
|
||||
|
||||
|
||||
+40
-36
@@ -6,7 +6,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: audiotube\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2026-10-01 17:39+0000\n"
|
||||
"POT-Creation-Date: 2026-02-20 00:44+0000\n"
|
||||
"PO-Revision-Date: 2026-05-25 18:35+0200\n"
|
||||
"Last-Translator: Shinjo Park <[email protected]>\n"
|
||||
"Language-Team: Korean <[email protected]>\n"
|
||||
@@ -277,7 +277,7 @@ msgstr "재생 목록이 비어 있습니다"
|
||||
msgid "Import Playlist"
|
||||
msgstr "재생 목록 가져오기"
|
||||
|
||||
#: contents/ui/Main.qml:160 main.cpp:52
|
||||
#: contents/ui/Main.qml:160 main.cpp:88
|
||||
#, kde-format
|
||||
msgid "AudioTube"
|
||||
msgstr "AudioTube"
|
||||
@@ -298,84 +298,84 @@ msgstr "최대화된 재생기 닫기"
|
||||
msgid "No media playing"
|
||||
msgstr "재생 중인 미디어 없음"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:553 contents/ui/SongMenu.qml:107
|
||||
#: contents/ui/MaximizedPlayerPage.qml:538 contents/ui/SongMenu.qml:107
|
||||
#, kde-format
|
||||
msgid "Remove from Favorites"
|
||||
msgstr "책갈피에서 삭제"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:553 contents/ui/SongMenu.qml:107
|
||||
#: contents/ui/MaximizedPlayerPage.qml:538 contents/ui/SongMenu.qml:107
|
||||
#, kde-format
|
||||
msgid "Add to Favorites"
|
||||
msgstr "책갈피에 추가"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:578
|
||||
#: contents/ui/MaximizedPlayerPage.qml:563
|
||||
#, kde-format
|
||||
msgid "Open Volume Drawer"
|
||||
msgstr "음량 서랍 열기"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:685
|
||||
#: contents/ui/MaximizedPlayerPage.qml:670
|
||||
#, kde-format
|
||||
msgid "Unmute Audio"
|
||||
msgstr "오디오 음소거 해제"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:685
|
||||
#: contents/ui/MaximizedPlayerPage.qml:670
|
||||
#, kde-format
|
||||
msgid "Mute Audio"
|
||||
msgstr "오디오 음소거"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:724
|
||||
#: contents/ui/MaximizedPlayerPage.qml:709
|
||||
#, kde-format
|
||||
msgctxt "%1 is the audio volume in percent"
|
||||
msgid "%1%"
|
||||
msgstr "%1%"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:754
|
||||
#: contents/ui/MaximizedPlayerPage.qml:739
|
||||
#, kde-format
|
||||
msgid "Hide Lyrics"
|
||||
msgstr "가사 숨기기"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:754
|
||||
#: contents/ui/MaximizedPlayerPage.qml:739
|
||||
#, kde-format
|
||||
msgid "Show Lyrics"
|
||||
msgstr "가사 표시"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:774 contents/ui/SongMenu.qml:139
|
||||
#: contents/ui/MaximizedPlayerPage.qml:759 contents/ui/SongMenu.qml:139
|
||||
#, kde-format
|
||||
msgid "Share Song"
|
||||
msgstr "노래 공유"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:815
|
||||
#: contents/ui/MaximizedPlayerPage.qml:800
|
||||
#, kde-format
|
||||
msgid "Add to a local playlist"
|
||||
msgstr "로컬 재생 목록에 추가"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:852
|
||||
#: contents/ui/MaximizedPlayerPage.qml:837
|
||||
#, kde-format
|
||||
msgid "Hide Queue"
|
||||
msgstr "대기열 숨기기"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:852
|
||||
#: contents/ui/MaximizedPlayerPage.qml:837
|
||||
#, kde-format
|
||||
msgid "Show Queue"
|
||||
msgstr "대기열 표시"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1084
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1329
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1069
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1314
|
||||
#, kde-format
|
||||
msgid "Remove Song"
|
||||
msgstr "곡 삭제"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1119
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1104
|
||||
#, kde-format
|
||||
msgid "Clear Queue"
|
||||
msgstr "대기열 비우기"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1144
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1129
|
||||
#, kde-format
|
||||
msgid "Shuffle Queue"
|
||||
msgstr "대기열 무순서 재생"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1177
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1162
|
||||
#, kde-format
|
||||
msgid "Upcoming Songs"
|
||||
msgstr "다음에 재생될 곡"
|
||||
@@ -460,6 +460,16 @@ msgstr "일치하는 이전 검색 없음"
|
||||
msgid "Share to"
|
||||
msgstr "다음으로 공유"
|
||||
|
||||
#: contents/ui/ShareMenu.qml:49 contents/ui/ShareMenu.qml:103
|
||||
#, kde-format
|
||||
msgid "Copy Link"
|
||||
msgstr "링크 복사"
|
||||
|
||||
#: contents/ui/ShareMenu.qml:54 contents/ui/ShareMenu.qml:108
|
||||
#, kde-format
|
||||
msgid "Link copied to clipboard"
|
||||
msgstr "클립보드에 링크 복사됨"
|
||||
|
||||
#: contents/ui/Sidebar.qml:108
|
||||
#, kde-format
|
||||
msgid "Home"
|
||||
@@ -500,50 +510,50 @@ msgstr "과거 기록에서 삭제"
|
||||
msgid "Add to playlist"
|
||||
msgstr "재생 목록에 추가"
|
||||
|
||||
#: main.cpp:54
|
||||
#: main.cpp:90
|
||||
#, kde-format
|
||||
msgctxt "YouTube Music is a music streaming service by Google"
|
||||
msgid "Stream music from YouTube Music"
|
||||
msgstr "YouTube Music에서 음악 스트리밍"
|
||||
|
||||
#: main.cpp:56
|
||||
#: main.cpp:92
|
||||
#, kde-format
|
||||
msgid "© 2021–2024 Jonah Brüchert, 2021–2024 KDE Community"
|
||||
msgstr "© 2021–2024 Jonah Brüchert, 2021–2024 KDE Community"
|
||||
|
||||
#: main.cpp:57
|
||||
#: main.cpp:93
|
||||
#, kde-format
|
||||
msgid "Jonah Brüchert"
|
||||
msgstr "Jonah Brüchert"
|
||||
|
||||
#: main.cpp:57
|
||||
#: main.cpp:93
|
||||
#, kde-format
|
||||
msgid "Maintainer"
|
||||
msgstr "관리자"
|
||||
|
||||
#: main.cpp:58
|
||||
#: main.cpp:94
|
||||
#, kde-format
|
||||
msgid "Mathis Brüchert"
|
||||
msgstr "Mathis Brüchert"
|
||||
|
||||
#: main.cpp:58
|
||||
#: main.cpp:94
|
||||
#, kde-format
|
||||
msgid "Designer"
|
||||
msgstr "디자이너"
|
||||
|
||||
#: main.cpp:59
|
||||
#: main.cpp:95
|
||||
#, kde-format
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
msgid "Your names"
|
||||
msgstr "박신조"
|
||||
|
||||
#: main.cpp:59
|
||||
#: main.cpp:95
|
||||
#, kde-format
|
||||
msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr "[email protected]"
|
||||
|
||||
#: main.cpp:66
|
||||
#: main.cpp:102
|
||||
#, kde-format
|
||||
msgctxt "YouTube Music is a music streaming service by Google"
|
||||
msgid "Unofficial API for YouTube Music"
|
||||
@@ -554,22 +564,16 @@ msgstr "YouTube Music 비공식 API"
|
||||
msgid "No description"
|
||||
msgstr "설명 없음"
|
||||
|
||||
#: playlistimporter.cpp:68
|
||||
#: playlistimporter.cpp:62
|
||||
#, kde-format
|
||||
msgid "No title"
|
||||
msgstr "제목 없음"
|
||||
|
||||
#: playlistimporter.cpp:71
|
||||
#: playlistimporter.cpp:64
|
||||
#, kde-format
|
||||
msgid "No album"
|
||||
msgstr "앨범 없음"
|
||||
|
||||
#~ msgid "Copy Link"
|
||||
#~ msgstr "링크 복사"
|
||||
|
||||
#~ msgid "Link copied to clipboard"
|
||||
#~ msgstr "클립보드에 링크 복사됨"
|
||||
|
||||
#~ msgid "Remove Favorite"
|
||||
#~ msgstr "책갈피 삭제"
|
||||
|
||||
|
||||
+40
-36
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: audiotube\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2026-10-01 17:39+0000\n"
|
||||
"POT-Creation-Date: 2026-02-20 00:44+0000\n"
|
||||
"PO-Revision-Date: 2026-02-21 00:26+0200\n"
|
||||
"Last-Translator: Automatically generated\n"
|
||||
"Language-Team: none\n"
|
||||
@@ -281,7 +281,7 @@ msgstr "Šis grojaraštis yra vis dar tuščias"
|
||||
msgid "Import Playlist"
|
||||
msgstr "Importuoti grojaraštį"
|
||||
|
||||
#: contents/ui/Main.qml:160 main.cpp:52
|
||||
#: contents/ui/Main.qml:160 main.cpp:88
|
||||
#, kde-format
|
||||
msgid "AudioTube"
|
||||
msgstr "AudioTube"
|
||||
@@ -302,84 +302,84 @@ msgstr "Užverti išskleistą grotuvą"
|
||||
msgid "No media playing"
|
||||
msgstr "Neatkuriama jokia medija"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:553 contents/ui/SongMenu.qml:107
|
||||
#: contents/ui/MaximizedPlayerPage.qml:538 contents/ui/SongMenu.qml:107
|
||||
#, kde-format
|
||||
msgid "Remove from Favorites"
|
||||
msgstr "Šalinti iš mėgstamų"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:553 contents/ui/SongMenu.qml:107
|
||||
#: contents/ui/MaximizedPlayerPage.qml:538 contents/ui/SongMenu.qml:107
|
||||
#, kde-format
|
||||
msgid "Add to Favorites"
|
||||
msgstr "Pridėti į mėgstamas"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:578
|
||||
#: contents/ui/MaximizedPlayerPage.qml:563
|
||||
#, kde-format
|
||||
msgid "Open Volume Drawer"
|
||||
msgstr "Atverti garsumo stalčių"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:685
|
||||
#: contents/ui/MaximizedPlayerPage.qml:670
|
||||
#, kde-format
|
||||
msgid "Unmute Audio"
|
||||
msgstr "Įjungti garso įrašo garsą"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:685
|
||||
#: contents/ui/MaximizedPlayerPage.qml:670
|
||||
#, kde-format
|
||||
msgid "Mute Audio"
|
||||
msgstr "Nutildyti garso įrašą"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:724
|
||||
#: contents/ui/MaximizedPlayerPage.qml:709
|
||||
#, kde-format
|
||||
msgctxt "%1 is the audio volume in percent"
|
||||
msgid "%1%"
|
||||
msgstr "%1%"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:754
|
||||
#: contents/ui/MaximizedPlayerPage.qml:739
|
||||
#, kde-format
|
||||
msgid "Hide Lyrics"
|
||||
msgstr "Slėpti dainos žodžius"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:754
|
||||
#: contents/ui/MaximizedPlayerPage.qml:739
|
||||
#, kde-format
|
||||
msgid "Show Lyrics"
|
||||
msgstr "Rodyti dainos žodžius"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:774 contents/ui/SongMenu.qml:139
|
||||
#: contents/ui/MaximizedPlayerPage.qml:759 contents/ui/SongMenu.qml:139
|
||||
#, kde-format
|
||||
msgid "Share Song"
|
||||
msgstr "Bendrinti dainą"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:815
|
||||
#: contents/ui/MaximizedPlayerPage.qml:800
|
||||
#, kde-format
|
||||
msgid "Add to a local playlist"
|
||||
msgstr "Pridėti į vietinį grojaraštį"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:852
|
||||
#: contents/ui/MaximizedPlayerPage.qml:837
|
||||
#, kde-format
|
||||
msgid "Hide Queue"
|
||||
msgstr "Slėpti eilę"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:852
|
||||
#: contents/ui/MaximizedPlayerPage.qml:837
|
||||
#, kde-format
|
||||
msgid "Show Queue"
|
||||
msgstr "Rodyti eilę"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1084
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1329
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1069
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1314
|
||||
#, kde-format
|
||||
msgid "Remove Song"
|
||||
msgstr "Šalinti dainą"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1119
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1104
|
||||
#, kde-format
|
||||
msgid "Clear Queue"
|
||||
msgstr "Išvalyti eilę"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1144
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1129
|
||||
#, kde-format
|
||||
msgid "Shuffle Queue"
|
||||
msgstr "Maišyti eilę"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1177
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1162
|
||||
#, kde-format
|
||||
msgid "Upcoming Songs"
|
||||
msgstr "Artėjančios dainos"
|
||||
@@ -469,6 +469,16 @@ msgstr "Nėra atitinkančių ankstesnių paieškų"
|
||||
msgid "Share to"
|
||||
msgstr "Bendrinti į"
|
||||
|
||||
#: contents/ui/ShareMenu.qml:49 contents/ui/ShareMenu.qml:103
|
||||
#, kde-format
|
||||
msgid "Copy Link"
|
||||
msgstr "Kopijuoti nuorodą"
|
||||
|
||||
#: contents/ui/ShareMenu.qml:54 contents/ui/ShareMenu.qml:108
|
||||
#, kde-format
|
||||
msgid "Link copied to clipboard"
|
||||
msgstr "Nuoroda nukopijuota į iškarpinę"
|
||||
|
||||
#: contents/ui/Sidebar.qml:108
|
||||
#, kde-format
|
||||
msgid "Home"
|
||||
@@ -509,50 +519,50 @@ msgstr "Šalinti iš istorijos"
|
||||
msgid "Add to playlist"
|
||||
msgstr "Pridėti į grojaraštį"
|
||||
|
||||
#: main.cpp:54
|
||||
#: main.cpp:90
|
||||
#, kde-format
|
||||
msgctxt "YouTube Music is a music streaming service by Google"
|
||||
msgid "Stream music from YouTube Music"
|
||||
msgstr "Transliuoti muziką iš „YouTube Music“"
|
||||
|
||||
#: main.cpp:56
|
||||
#: main.cpp:92
|
||||
#, kde-format
|
||||
msgid "© 2021–2024 Jonah Brüchert, 2021–2024 KDE Community"
|
||||
msgstr "© 2021–2024 Jonah Brüchert, 2021–2024 KDE bendruomenė"
|
||||
|
||||
#: main.cpp:57
|
||||
#: main.cpp:93
|
||||
#, kde-format
|
||||
msgid "Jonah Brüchert"
|
||||
msgstr "Jonah Brüchert"
|
||||
|
||||
#: main.cpp:57
|
||||
#: main.cpp:93
|
||||
#, kde-format
|
||||
msgid "Maintainer"
|
||||
msgstr "Prižiūrėtojas"
|
||||
|
||||
#: main.cpp:58
|
||||
#: main.cpp:94
|
||||
#, kde-format
|
||||
msgid "Mathis Brüchert"
|
||||
msgstr "Mathis Brüchert"
|
||||
|
||||
#: main.cpp:58
|
||||
#: main.cpp:94
|
||||
#, kde-format
|
||||
msgid "Designer"
|
||||
msgstr "Dizaineris"
|
||||
|
||||
#: main.cpp:59
|
||||
#: main.cpp:95
|
||||
#, kde-format
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
msgid "Your names"
|
||||
msgstr "Moo"
|
||||
|
||||
#: main.cpp:59
|
||||
#: main.cpp:95
|
||||
#, kde-format
|
||||
msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr "<>"
|
||||
|
||||
#: main.cpp:66
|
||||
#: main.cpp:102
|
||||
#, kde-format
|
||||
msgctxt "YouTube Music is a music streaming service by Google"
|
||||
msgid "Unofficial API for YouTube Music"
|
||||
@@ -563,22 +573,16 @@ msgstr "Neoficialus API, skirtas „YouTube Music“"
|
||||
msgid "No description"
|
||||
msgstr "Nėra aprašo"
|
||||
|
||||
#: playlistimporter.cpp:68
|
||||
#: playlistimporter.cpp:62
|
||||
#, kde-format
|
||||
msgid "No title"
|
||||
msgstr "Nėra pavadinimo"
|
||||
|
||||
#: playlistimporter.cpp:71
|
||||
#: playlistimporter.cpp:64
|
||||
#, kde-format
|
||||
msgid "No album"
|
||||
msgstr "Nėra albumo"
|
||||
|
||||
#~ msgid "Copy Link"
|
||||
#~ msgstr "Kopijuoti nuorodą"
|
||||
|
||||
#~ msgid "Link copied to clipboard"
|
||||
#~ msgstr "Nuoroda nukopijuota į iškarpinę"
|
||||
|
||||
#~ msgid "Remove Favorite"
|
||||
#~ msgstr "Šalinti mėgstamą"
|
||||
|
||||
|
||||
+40
-36
@@ -6,7 +6,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: audiotube\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2026-10-01 17:39+0000\n"
|
||||
"POT-Creation-Date: 2026-02-20 00:44+0000\n"
|
||||
"PO-Revision-Date: 2026-03-04 14:41+0200\n"
|
||||
"Last-Translator: Toms Trasūns <[email protected]>\n"
|
||||
"Language-Team: Latvian <[email protected]>\n"
|
||||
@@ -280,7 +280,7 @@ msgstr "Šis repertuārs joprojām ir tukšs"
|
||||
msgid "Import Playlist"
|
||||
msgstr "Importēt repertuāru"
|
||||
|
||||
#: contents/ui/Main.qml:160 main.cpp:52
|
||||
#: contents/ui/Main.qml:160 main.cpp:88
|
||||
#, kde-format
|
||||
msgid "AudioTube"
|
||||
msgstr "AudioTube"
|
||||
@@ -301,84 +301,84 @@ msgstr "Aizvērt maksimizēto atskaņotāju"
|
||||
msgid "No media playing"
|
||||
msgstr "Multividi neatskaņo"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:553 contents/ui/SongMenu.qml:107
|
||||
#: contents/ui/MaximizedPlayerPage.qml:538 contents/ui/SongMenu.qml:107
|
||||
#, kde-format
|
||||
msgid "Remove from Favorites"
|
||||
msgstr "Noņemt no izlases"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:553 contents/ui/SongMenu.qml:107
|
||||
#: contents/ui/MaximizedPlayerPage.qml:538 contents/ui/SongMenu.qml:107
|
||||
#, kde-format
|
||||
msgid "Add to Favorites"
|
||||
msgstr "Pievienot izlasei"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:578
|
||||
#: contents/ui/MaximizedPlayerPage.qml:563
|
||||
#, kde-format
|
||||
msgid "Open Volume Drawer"
|
||||
msgstr "Atvērt skaļuma atvilktni"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:685
|
||||
#: contents/ui/MaximizedPlayerPage.qml:670
|
||||
#, kde-format
|
||||
msgid "Unmute Audio"
|
||||
msgstr "Atjaunot skaņu"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:685
|
||||
#: contents/ui/MaximizedPlayerPage.qml:670
|
||||
#, kde-format
|
||||
msgid "Mute Audio"
|
||||
msgstr "Apklusināt"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:724
|
||||
#: contents/ui/MaximizedPlayerPage.qml:709
|
||||
#, kde-format
|
||||
msgctxt "%1 is the audio volume in percent"
|
||||
msgid "%1%"
|
||||
msgstr "%1 %"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:754
|
||||
#: contents/ui/MaximizedPlayerPage.qml:739
|
||||
#, kde-format
|
||||
msgid "Hide Lyrics"
|
||||
msgstr "Slēpt vārdus"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:754
|
||||
#: contents/ui/MaximizedPlayerPage.qml:739
|
||||
#, kde-format
|
||||
msgid "Show Lyrics"
|
||||
msgstr "Rādīt vārdus"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:774 contents/ui/SongMenu.qml:139
|
||||
#: contents/ui/MaximizedPlayerPage.qml:759 contents/ui/SongMenu.qml:139
|
||||
#, kde-format
|
||||
msgid "Share Song"
|
||||
msgstr "Kopīgot dziesmu"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:815
|
||||
#: contents/ui/MaximizedPlayerPage.qml:800
|
||||
#, kde-format
|
||||
msgid "Add to a local playlist"
|
||||
msgstr "Pievienot lokālajam repertuāram"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:852
|
||||
#: contents/ui/MaximizedPlayerPage.qml:837
|
||||
#, kde-format
|
||||
msgid "Hide Queue"
|
||||
msgstr "Slēpt rindu"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:852
|
||||
#: contents/ui/MaximizedPlayerPage.qml:837
|
||||
#, kde-format
|
||||
msgid "Show Queue"
|
||||
msgstr "Rādīt rindu"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1084
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1329
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1069
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1314
|
||||
#, kde-format
|
||||
msgid "Remove Song"
|
||||
msgstr "Noņemt dziesmu"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1119
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1104
|
||||
#, kde-format
|
||||
msgid "Clear Queue"
|
||||
msgstr "Notīrīt rindu"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1144
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1129
|
||||
#, kde-format
|
||||
msgid "Shuffle Queue"
|
||||
msgstr "Jaukt rindu"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1177
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1162
|
||||
#, kde-format
|
||||
msgid "Upcoming Songs"
|
||||
msgstr "Nākamās dziesmas"
|
||||
@@ -467,6 +467,16 @@ msgstr "Nav atbilstošu iepriekšējo meklēšanu"
|
||||
msgid "Share to"
|
||||
msgstr "Kopīgot uz"
|
||||
|
||||
#: contents/ui/ShareMenu.qml:49 contents/ui/ShareMenu.qml:103
|
||||
#, kde-format
|
||||
msgid "Copy Link"
|
||||
msgstr "Kopēt saiti"
|
||||
|
||||
#: contents/ui/ShareMenu.qml:54 contents/ui/ShareMenu.qml:108
|
||||
#, kde-format
|
||||
msgid "Link copied to clipboard"
|
||||
msgstr "Saite nokopēta starpliktuvē"
|
||||
|
||||
#: contents/ui/Sidebar.qml:108
|
||||
#, kde-format
|
||||
msgid "Home"
|
||||
@@ -507,50 +517,50 @@ msgstr "Noņemt no vēstures"
|
||||
msgid "Add to playlist"
|
||||
msgstr "Pievienot repertuāram"
|
||||
|
||||
#: main.cpp:54
|
||||
#: main.cpp:90
|
||||
#, kde-format
|
||||
msgctxt "YouTube Music is a music streaming service by Google"
|
||||
msgid "Stream music from YouTube Music"
|
||||
msgstr "Straumējiet mūziku no „YouTube Music“"
|
||||
|
||||
#: main.cpp:56
|
||||
#: main.cpp:92
|
||||
#, kde-format
|
||||
msgid "© 2021–2024 Jonah Brüchert, 2021–2024 KDE Community"
|
||||
msgstr "© 2021—2024 Jonah Brüchert, 2021—2024 KDE kopiena"
|
||||
|
||||
#: main.cpp:57
|
||||
#: main.cpp:93
|
||||
#, kde-format
|
||||
msgid "Jonah Brüchert"
|
||||
msgstr "Jonah Brüchert"
|
||||
|
||||
#: main.cpp:57
|
||||
#: main.cpp:93
|
||||
#, kde-format
|
||||
msgid "Maintainer"
|
||||
msgstr "Uzturētājs"
|
||||
|
||||
#: main.cpp:58
|
||||
#: main.cpp:94
|
||||
#, kde-format
|
||||
msgid "Mathis Brüchert"
|
||||
msgstr "Mathis Brüchert"
|
||||
|
||||
#: main.cpp:58
|
||||
#: main.cpp:94
|
||||
#, kde-format
|
||||
msgid "Designer"
|
||||
msgstr "Dizaineris"
|
||||
|
||||
#: main.cpp:59
|
||||
#: main.cpp:95
|
||||
#, kde-format
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
msgid "Your names"
|
||||
msgstr "Toms Trasūns"
|
||||
|
||||
#: main.cpp:59
|
||||
#: main.cpp:95
|
||||
#, kde-format
|
||||
msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr "[email protected]"
|
||||
|
||||
#: main.cpp:66
|
||||
#: main.cpp:102
|
||||
#, kde-format
|
||||
msgctxt "YouTube Music is a music streaming service by Google"
|
||||
msgid "Unofficial API for YouTube Music"
|
||||
@@ -561,22 +571,16 @@ msgstr "Neoficiāls „YouTube Music“ API"
|
||||
msgid "No description"
|
||||
msgstr "Nav apraksta"
|
||||
|
||||
#: playlistimporter.cpp:68
|
||||
#: playlistimporter.cpp:62
|
||||
#, kde-format
|
||||
msgid "No title"
|
||||
msgstr "Nav nosaukuma"
|
||||
|
||||
#: playlistimporter.cpp:71
|
||||
#: playlistimporter.cpp:64
|
||||
#, kde-format
|
||||
msgid "No album"
|
||||
msgstr "Nav albuma"
|
||||
|
||||
#~ msgid "Copy Link"
|
||||
#~ msgstr "Kopēt saiti"
|
||||
|
||||
#~ msgid "Link copied to clipboard"
|
||||
#~ msgstr "Saite nokopēta starpliktuvē"
|
||||
|
||||
#~ msgid "Remove Favorite"
|
||||
#~ msgstr "Noņemt no izlases"
|
||||
|
||||
|
||||
+40
-36
@@ -6,7 +6,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: audiotube\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2026-10-01 17:39+0000\n"
|
||||
"POT-Creation-Date: 2026-02-20 00:44+0000\n"
|
||||
"PO-Revision-Date: 2026-02-20 13:39+0100\n"
|
||||
"Last-Translator: Freek de Kruijf <[email protected]>\n"
|
||||
"Language-Team: \n"
|
||||
@@ -279,7 +279,7 @@ msgstr "Deze afspeellijst is nog leeg"
|
||||
msgid "Import Playlist"
|
||||
msgstr "Afspeellijst importeren"
|
||||
|
||||
#: contents/ui/Main.qml:160 main.cpp:52
|
||||
#: contents/ui/Main.qml:160 main.cpp:88
|
||||
#, kde-format
|
||||
msgid "AudioTube"
|
||||
msgstr "AudioTube"
|
||||
@@ -300,84 +300,84 @@ msgstr "Gemaximaliseerde speler sluiten"
|
||||
msgid "No media playing"
|
||||
msgstr "Er speelt geen medium"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:553 contents/ui/SongMenu.qml:107
|
||||
#: contents/ui/MaximizedPlayerPage.qml:538 contents/ui/SongMenu.qml:107
|
||||
#, kde-format
|
||||
msgid "Remove from Favorites"
|
||||
msgstr "Uit Favorieten verwijderen"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:553 contents/ui/SongMenu.qml:107
|
||||
#: contents/ui/MaximizedPlayerPage.qml:538 contents/ui/SongMenu.qml:107
|
||||
#, kde-format
|
||||
msgid "Add to Favorites"
|
||||
msgstr "Aan Favorieten toevoegen"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:578
|
||||
#: contents/ui/MaximizedPlayerPage.qml:563
|
||||
#, kde-format
|
||||
msgid "Open Volume Drawer"
|
||||
msgstr "Volume lader openen"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:685
|
||||
#: contents/ui/MaximizedPlayerPage.qml:670
|
||||
#, kde-format
|
||||
msgid "Unmute Audio"
|
||||
msgstr "Dempen van geluid opheffen"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:685
|
||||
#: contents/ui/MaximizedPlayerPage.qml:670
|
||||
#, kde-format
|
||||
msgid "Mute Audio"
|
||||
msgstr "Geluid dempen"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:724
|
||||
#: contents/ui/MaximizedPlayerPage.qml:709
|
||||
#, kde-format
|
||||
msgctxt "%1 is the audio volume in percent"
|
||||
msgid "%1%"
|
||||
msgstr "%1%"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:754
|
||||
#: contents/ui/MaximizedPlayerPage.qml:739
|
||||
#, kde-format
|
||||
msgid "Hide Lyrics"
|
||||
msgstr "Liedteksten verbergen"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:754
|
||||
#: contents/ui/MaximizedPlayerPage.qml:739
|
||||
#, kde-format
|
||||
msgid "Show Lyrics"
|
||||
msgstr "Liedteksten tonen"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:774 contents/ui/SongMenu.qml:139
|
||||
#: contents/ui/MaximizedPlayerPage.qml:759 contents/ui/SongMenu.qml:139
|
||||
#, kde-format
|
||||
msgid "Share Song"
|
||||
msgstr "Songs delen"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:815
|
||||
#: contents/ui/MaximizedPlayerPage.qml:800
|
||||
#, kde-format
|
||||
msgid "Add to a local playlist"
|
||||
msgstr "Aan een lokale afspeellijst toevoegen"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:852
|
||||
#: contents/ui/MaximizedPlayerPage.qml:837
|
||||
#, kde-format
|
||||
msgid "Hide Queue"
|
||||
msgstr "Wachtrij verbergen"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:852
|
||||
#: contents/ui/MaximizedPlayerPage.qml:837
|
||||
#, kde-format
|
||||
msgid "Show Queue"
|
||||
msgstr "Wachtrij tonen"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1084
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1329
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1069
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1314
|
||||
#, kde-format
|
||||
msgid "Remove Song"
|
||||
msgstr "Song verwijderen"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1119
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1104
|
||||
#, kde-format
|
||||
msgid "Clear Queue"
|
||||
msgstr "Wachtrij wissen"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1144
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1129
|
||||
#, kde-format
|
||||
msgid "Shuffle Queue"
|
||||
msgstr "Wachtrij voor willekeurig afspelen"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1177
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1162
|
||||
#, kde-format
|
||||
msgid "Upcoming Songs"
|
||||
msgstr "Aankomende songs"
|
||||
@@ -465,6 +465,16 @@ msgstr "Geen overeenkomende vorige zoekopdrachten"
|
||||
msgid "Share to"
|
||||
msgstr "Delen (share) naar"
|
||||
|
||||
#: contents/ui/ShareMenu.qml:49 contents/ui/ShareMenu.qml:103
|
||||
#, kde-format
|
||||
msgid "Copy Link"
|
||||
msgstr "Koppeling kopiëren"
|
||||
|
||||
#: contents/ui/ShareMenu.qml:54 contents/ui/ShareMenu.qml:108
|
||||
#, kde-format
|
||||
msgid "Link copied to clipboard"
|
||||
msgstr "Koppeling gekopieerd naar klembord"
|
||||
|
||||
#: contents/ui/Sidebar.qml:108
|
||||
#, kde-format
|
||||
msgid "Home"
|
||||
@@ -505,50 +515,50 @@ msgstr "Uit geschiedenis verwijderen"
|
||||
msgid "Add to playlist"
|
||||
msgstr "Aan afspeellijst toevoegen"
|
||||
|
||||
#: main.cpp:54
|
||||
#: main.cpp:90
|
||||
#, kde-format
|
||||
msgctxt "YouTube Music is a music streaming service by Google"
|
||||
msgid "Stream music from YouTube Music"
|
||||
msgstr "Muziek streamen van YouTube Music"
|
||||
|
||||
#: main.cpp:56
|
||||
#: main.cpp:92
|
||||
#, kde-format
|
||||
msgid "© 2021–2024 Jonah Brüchert, 2021–2024 KDE Community"
|
||||
msgstr "© 2021-2024 Jonah Brüchert, 2021–2024 KDE-gemeenschap"
|
||||
|
||||
#: main.cpp:57
|
||||
#: main.cpp:93
|
||||
#, kde-format
|
||||
msgid "Jonah Brüchert"
|
||||
msgstr "Jonah Brüchert"
|
||||
|
||||
#: main.cpp:57
|
||||
#: main.cpp:93
|
||||
#, kde-format
|
||||
msgid "Maintainer"
|
||||
msgstr "Onderhouder"
|
||||
|
||||
#: main.cpp:58
|
||||
#: main.cpp:94
|
||||
#, kde-format
|
||||
msgid "Mathis Brüchert"
|
||||
msgstr "Mathis Brüchert"
|
||||
|
||||
#: main.cpp:58
|
||||
#: main.cpp:94
|
||||
#, kde-format
|
||||
msgid "Designer"
|
||||
msgstr "Ontwerper"
|
||||
|
||||
#: main.cpp:59
|
||||
#: main.cpp:95
|
||||
#, kde-format
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
msgid "Your names"
|
||||
msgstr "Freek de Kruijf - 2021 t/m 2023"
|
||||
|
||||
#: main.cpp:59
|
||||
#: main.cpp:95
|
||||
#, kde-format
|
||||
msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr "[email protected]"
|
||||
|
||||
#: main.cpp:66
|
||||
#: main.cpp:102
|
||||
#, kde-format
|
||||
msgctxt "YouTube Music is a music streaming service by Google"
|
||||
msgid "Unofficial API for YouTube Music"
|
||||
@@ -559,22 +569,16 @@ msgstr "Niet officiële API voor YouTube Music"
|
||||
msgid "No description"
|
||||
msgstr "Geen beschrijving"
|
||||
|
||||
#: playlistimporter.cpp:68
|
||||
#: playlistimporter.cpp:62
|
||||
#, kde-format
|
||||
msgid "No title"
|
||||
msgstr "Geen titel"
|
||||
|
||||
#: playlistimporter.cpp:71
|
||||
#: playlistimporter.cpp:64
|
||||
#, kde-format
|
||||
msgid "No album"
|
||||
msgstr "Geen album"
|
||||
|
||||
#~ msgid "Copy Link"
|
||||
#~ msgstr "Koppeling kopiëren"
|
||||
|
||||
#~ msgid "Link copied to clipboard"
|
||||
#~ msgstr "Koppeling gekopieerd naar klembord"
|
||||
|
||||
#~ msgid "Remove Favorite"
|
||||
#~ msgstr "Favoriet verwijderen"
|
||||
|
||||
|
||||
+40
-31
@@ -1,12 +1,11 @@
|
||||
# Translation of audiotube to Norwegian Nynorsk
|
||||
#
|
||||
# Karl Ove Hufthammer <[email protected]>, 2022, 2023, 2024, 2025, 2026.
|
||||
# Øystein Steffensen-Alværvik <[email protected]>, 2022.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: audiotube\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2026-10-01 17:39+0000\n"
|
||||
"POT-Creation-Date: 2026-02-20 00:44+0000\n"
|
||||
"PO-Revision-Date: 2026-04-21 18:29+0200\n"
|
||||
"Last-Translator: Karl Ove Hufthammer <[email protected]>\n"
|
||||
"Language-Team: Norwegian Nynorsk <[email protected]>\n"
|
||||
@@ -280,7 +279,7 @@ msgstr "Spelelista er framleis tom"
|
||||
msgid "Import Playlist"
|
||||
msgstr "Importer speleliste"
|
||||
|
||||
#: contents/ui/Main.qml:160 main.cpp:52
|
||||
#: contents/ui/Main.qml:160 main.cpp:88
|
||||
#, kde-format
|
||||
msgid "AudioTube"
|
||||
msgstr "AudioTube"
|
||||
@@ -301,84 +300,84 @@ msgstr "Lukk maksimert spelar"
|
||||
msgid "No media playing"
|
||||
msgstr "Inkje medium vert spela av"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:553 contents/ui/SongMenu.qml:107
|
||||
#: contents/ui/MaximizedPlayerPage.qml:538 contents/ui/SongMenu.qml:107
|
||||
#, kde-format
|
||||
msgid "Remove from Favorites"
|
||||
msgstr "Fjern frå favorittar"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:553 contents/ui/SongMenu.qml:107
|
||||
#: contents/ui/MaximizedPlayerPage.qml:538 contents/ui/SongMenu.qml:107
|
||||
#, kde-format
|
||||
msgid "Add to Favorites"
|
||||
msgstr "Legg til favorittar"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:578
|
||||
#: contents/ui/MaximizedPlayerPage.qml:563
|
||||
#, kde-format
|
||||
msgid "Open Volume Drawer"
|
||||
msgstr "Opna lydstyrke-skuff"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:685
|
||||
#: contents/ui/MaximizedPlayerPage.qml:670
|
||||
#, kde-format
|
||||
msgid "Unmute Audio"
|
||||
msgstr "Slå av lyddemping"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:685
|
||||
#: contents/ui/MaximizedPlayerPage.qml:670
|
||||
#, kde-format
|
||||
msgid "Mute Audio"
|
||||
msgstr "Demp lyd"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:724
|
||||
#: contents/ui/MaximizedPlayerPage.qml:709
|
||||
#, kde-format
|
||||
msgctxt "%1 is the audio volume in percent"
|
||||
msgid "%1%"
|
||||
msgstr "%1 %"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:754
|
||||
#: contents/ui/MaximizedPlayerPage.qml:739
|
||||
#, kde-format
|
||||
msgid "Hide Lyrics"
|
||||
msgstr "Gøym songtekst"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:754
|
||||
#: contents/ui/MaximizedPlayerPage.qml:739
|
||||
#, kde-format
|
||||
msgid "Show Lyrics"
|
||||
msgstr "Vis songtekst"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:774 contents/ui/SongMenu.qml:139
|
||||
#: contents/ui/MaximizedPlayerPage.qml:759 contents/ui/SongMenu.qml:139
|
||||
#, kde-format
|
||||
msgid "Share Song"
|
||||
msgstr "Del song"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:815
|
||||
#: contents/ui/MaximizedPlayerPage.qml:800
|
||||
#, kde-format
|
||||
msgid "Add to a local playlist"
|
||||
msgstr "Legg til i lokal speleliste"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:852
|
||||
#: contents/ui/MaximizedPlayerPage.qml:837
|
||||
#, kde-format
|
||||
msgid "Hide Queue"
|
||||
msgstr "Gøym avspelingskøen"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:852
|
||||
#: contents/ui/MaximizedPlayerPage.qml:837
|
||||
#, kde-format
|
||||
msgid "Show Queue"
|
||||
msgstr "Vis avspelingskøen"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1084
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1329
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1069
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1314
|
||||
#, kde-format
|
||||
msgid "Remove Song"
|
||||
msgstr "Fjern song"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1119
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1104
|
||||
#, kde-format
|
||||
msgid "Clear Queue"
|
||||
msgstr "Tøm avspelingskøen"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1144
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1129
|
||||
#, kde-format
|
||||
msgid "Shuffle Queue"
|
||||
msgstr "Stokk om på avspelingskøen"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1177
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1162
|
||||
#, kde-format
|
||||
msgid "Upcoming Songs"
|
||||
msgstr "Framtidige songar"
|
||||
@@ -465,6 +464,16 @@ msgstr "Ingen samsvarande tidlegare søk"
|
||||
msgid "Share to"
|
||||
msgstr "Del til"
|
||||
|
||||
#: contents/ui/ShareMenu.qml:49 contents/ui/ShareMenu.qml:103
|
||||
#, kde-format
|
||||
msgid "Copy Link"
|
||||
msgstr "Kopier lenkje"
|
||||
|
||||
#: contents/ui/ShareMenu.qml:54 contents/ui/ShareMenu.qml:108
|
||||
#, kde-format
|
||||
msgid "Link copied to clipboard"
|
||||
msgstr "Lenkje kopiert til utklippstavla"
|
||||
|
||||
#: contents/ui/Sidebar.qml:108
|
||||
#, kde-format
|
||||
msgid "Home"
|
||||
@@ -505,50 +514,50 @@ msgstr "Fjern frå loggen"
|
||||
msgid "Add to playlist"
|
||||
msgstr "Legg til i speleliste"
|
||||
|
||||
#: main.cpp:54
|
||||
#: main.cpp:90
|
||||
#, kde-format
|
||||
msgctxt "YouTube Music is a music streaming service by Google"
|
||||
msgid "Stream music from YouTube Music"
|
||||
msgstr "Straum musikk frå YouTube Music"
|
||||
|
||||
#: main.cpp:56
|
||||
#: main.cpp:92
|
||||
#, kde-format
|
||||
msgid "© 2021–2024 Jonah Brüchert, 2021–2024 KDE Community"
|
||||
msgstr "© 2021–2024 Jonah Brüchert, 2021–2024 KDE-fellesskapet"
|
||||
|
||||
#: main.cpp:57
|
||||
#: main.cpp:93
|
||||
#, kde-format
|
||||
msgid "Jonah Brüchert"
|
||||
msgstr "Jonah Brüchert"
|
||||
|
||||
#: main.cpp:57
|
||||
#: main.cpp:93
|
||||
#, kde-format
|
||||
msgid "Maintainer"
|
||||
msgstr "Vedlikehaldar"
|
||||
|
||||
#: main.cpp:58
|
||||
#: main.cpp:94
|
||||
#, kde-format
|
||||
msgid "Mathis Brüchert"
|
||||
msgstr "Mathis Brüchert"
|
||||
|
||||
#: main.cpp:58
|
||||
#: main.cpp:94
|
||||
#, kde-format
|
||||
msgid "Designer"
|
||||
msgstr "Designar"
|
||||
|
||||
#: main.cpp:59
|
||||
#: main.cpp:95
|
||||
#, kde-format
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
msgid "Your names"
|
||||
msgstr "Øystein Steffensen-Alværvik,Karl Ove Hufthammer"
|
||||
|
||||
#: main.cpp:59
|
||||
#: main.cpp:95
|
||||
#, kde-format
|
||||
msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr "[email protected],[email protected]"
|
||||
|
||||
#: main.cpp:66
|
||||
#: main.cpp:102
|
||||
#, kde-format
|
||||
msgctxt "YouTube Music is a music streaming service by Google"
|
||||
msgid "Unofficial API for YouTube Music"
|
||||
@@ -559,12 +568,12 @@ msgstr "Uoffisielt API for YouTube Music"
|
||||
msgid "No description"
|
||||
msgstr "Inga skildring"
|
||||
|
||||
#: playlistimporter.cpp:68
|
||||
#: playlistimporter.cpp:62
|
||||
#, kde-format
|
||||
msgid "No title"
|
||||
msgstr "Utan tittel"
|
||||
|
||||
#: playlistimporter.cpp:71
|
||||
#: playlistimporter.cpp:64
|
||||
#, kde-format
|
||||
msgid "No album"
|
||||
msgstr "Ingen album"
|
||||
+40
-30
@@ -6,7 +6,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: audiotube\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2026-10-01 17:39+0000\n"
|
||||
"POT-Creation-Date: 2026-02-20 00:44+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"
|
||||
@@ -293,7 +293,7 @@ msgstr ""
|
||||
msgid "Import Playlist"
|
||||
msgstr "ਪਲੇਅਲਿਸਟਾਂ"
|
||||
|
||||
#: contents/ui/Main.qml:160 main.cpp:52
|
||||
#: contents/ui/Main.qml:160 main.cpp:88
|
||||
#, kde-format
|
||||
msgid "AudioTube"
|
||||
msgstr "ਆਡੀਓ-ਟਿਊਬ"
|
||||
@@ -315,90 +315,90 @@ msgstr ""
|
||||
msgid "No media playing"
|
||||
msgstr "ਕੋਈ ਮੀਡੀਆ ਨਹੀਂ ਚੱਲਦਾ"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:553 contents/ui/SongMenu.qml:107
|
||||
#: contents/ui/MaximizedPlayerPage.qml:538 contents/ui/SongMenu.qml:107
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Playlists"
|
||||
msgid "Remove from Favorites"
|
||||
msgstr "ਪਲੇਅਲਿਸਟਾਂ"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:553 contents/ui/SongMenu.qml:107
|
||||
#: contents/ui/MaximizedPlayerPage.qml:538 contents/ui/SongMenu.qml:107
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Add to Playlist"
|
||||
msgid "Add to Favorites"
|
||||
msgstr "ਪਲੇਅਲਿਸਟ ਵਿੱਚ ਜੋੜੋ"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:578
|
||||
#: contents/ui/MaximizedPlayerPage.qml:563
|
||||
#, kde-format
|
||||
msgid "Open Volume Drawer"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:685
|
||||
#: contents/ui/MaximizedPlayerPage.qml:670
|
||||
#, kde-format
|
||||
msgid "Unmute Audio"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:685
|
||||
#: contents/ui/MaximizedPlayerPage.qml:670
|
||||
#, kde-format
|
||||
msgid "Mute Audio"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:724
|
||||
#: contents/ui/MaximizedPlayerPage.qml:709
|
||||
#, kde-format
|
||||
msgctxt "%1 is the audio volume in percent"
|
||||
msgid "%1%"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:754
|
||||
#: contents/ui/MaximizedPlayerPage.qml:739
|
||||
#, kde-format
|
||||
msgid "Hide Lyrics"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:754
|
||||
#: contents/ui/MaximizedPlayerPage.qml:739
|
||||
#, kde-format
|
||||
msgid "Show Lyrics"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:774 contents/ui/SongMenu.qml:139
|
||||
#: contents/ui/MaximizedPlayerPage.qml:759 contents/ui/SongMenu.qml:139
|
||||
#, kde-format
|
||||
msgid "Share Song"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:815
|
||||
#: contents/ui/MaximizedPlayerPage.qml:800
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Add to Playlist"
|
||||
msgid "Add to a local playlist"
|
||||
msgstr "ਪਲੇਅਲਿਸਟ ਵਿੱਚ ਜੋੜੋ"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:852
|
||||
#: contents/ui/MaximizedPlayerPage.qml:837
|
||||
#, kde-format
|
||||
msgid "Hide Queue"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:852
|
||||
#: contents/ui/MaximizedPlayerPage.qml:837
|
||||
#, kde-format
|
||||
msgid "Show Queue"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1084
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1329
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1069
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1314
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Playlists"
|
||||
msgid "Remove Song"
|
||||
msgstr "ਪਲੇਅਲਿਸਟਾਂ"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1119
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1104
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Clear"
|
||||
msgid "Clear Queue"
|
||||
msgstr "ਮਿਟਾਓ"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1144
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1129
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Shuffle"
|
||||
msgid "Shuffle Queue"
|
||||
msgstr "ਰਲਵੇਂ"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1177
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1162
|
||||
#, kde-format
|
||||
msgid "Upcoming Songs"
|
||||
msgstr ""
|
||||
@@ -488,6 +488,16 @@ msgstr ""
|
||||
msgid "Share to"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/ShareMenu.qml:49 contents/ui/ShareMenu.qml:103
|
||||
#, kde-format
|
||||
msgid "Copy Link"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/ShareMenu.qml:54 contents/ui/ShareMenu.qml:108
|
||||
#, kde-format
|
||||
msgid "Link copied to clipboard"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/Sidebar.qml:108
|
||||
#, kde-format
|
||||
msgid "Home"
|
||||
@@ -529,51 +539,51 @@ msgstr ""
|
||||
msgid "Add to playlist"
|
||||
msgstr "ਪਲੇਅਲਿਸਟ ਵਿੱਚ ਜੋੜੋ"
|
||||
|
||||
#: main.cpp:54
|
||||
#: main.cpp:90
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Find music on YouTube Music"
|
||||
msgctxt "YouTube Music is a music streaming service by Google"
|
||||
msgid "Stream music from YouTube Music"
|
||||
msgstr "ਯੂਟਿਊਬ ਸੰਗੀਤ ਉੱਤੇ ਸੰਗੀਤ ਲੱਭੋ"
|
||||
|
||||
#: main.cpp:56
|
||||
#: main.cpp:92
|
||||
#, kde-format
|
||||
msgid "© 2021–2024 Jonah Brüchert, 2021–2024 KDE Community"
|
||||
msgstr ""
|
||||
|
||||
#: main.cpp:57
|
||||
#: main.cpp:93
|
||||
#, kde-format
|
||||
msgid "Jonah Brüchert"
|
||||
msgstr ""
|
||||
|
||||
#: main.cpp:57
|
||||
#: main.cpp:93
|
||||
#, kde-format
|
||||
msgid "Maintainer"
|
||||
msgstr ""
|
||||
|
||||
#: main.cpp:58
|
||||
#: main.cpp:94
|
||||
#, kde-format
|
||||
msgid "Mathis Brüchert"
|
||||
msgstr ""
|
||||
|
||||
#: main.cpp:58
|
||||
#: main.cpp:94
|
||||
#, kde-format
|
||||
msgid "Designer"
|
||||
msgstr ""
|
||||
|
||||
#: main.cpp:59
|
||||
#: main.cpp:95
|
||||
#, kde-format
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
msgid "Your names"
|
||||
msgstr "ਅਮਨਪਰੀਤ ਸਿੰਘ ਆਲਮ ੨੦੨੧"
|
||||
|
||||
#: main.cpp:59
|
||||
#: main.cpp:95
|
||||
#, kde-format
|
||||
msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr "alam yellow @ gmail.com"
|
||||
|
||||
#: main.cpp:66
|
||||
#: main.cpp:102
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Find music on YouTube Music"
|
||||
msgctxt "YouTube Music is a music streaming service by Google"
|
||||
@@ -586,12 +596,12 @@ msgstr "ਯੂਟਿਊਬ ਸੰਗੀਤ ਉੱਤੇ ਸੰਗੀਤ ਲੱ
|
||||
msgid "No description"
|
||||
msgstr "ਪਲੇਅਲਿਸਟਾਂ"
|
||||
|
||||
#: playlistimporter.cpp:68
|
||||
#: playlistimporter.cpp:62
|
||||
#, kde-format
|
||||
msgid "No title"
|
||||
msgstr ""
|
||||
|
||||
#: playlistimporter.cpp:71
|
||||
#: playlistimporter.cpp:64
|
||||
#, kde-format
|
||||
msgid "No album"
|
||||
msgstr ""
|
||||
|
||||
+40
-36
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: audiotube\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2026-10-01 17:39+0000\n"
|
||||
"POT-Creation-Date: 2026-02-20 00:44+0000\n"
|
||||
"PO-Revision-Date: 2026-04-18 14:22+0200\n"
|
||||
"Last-Translator: Łukasz Wojniłowicz <[email protected]>\n"
|
||||
"Language-Team: pl\n"
|
||||
@@ -281,7 +281,7 @@ msgstr "Lista odtwarzania nadal jest pusta"
|
||||
msgid "Import Playlist"
|
||||
msgstr "Zaimportuj listę odtwarzania"
|
||||
|
||||
#: contents/ui/Main.qml:160 main.cpp:52
|
||||
#: contents/ui/Main.qml:160 main.cpp:88
|
||||
#, kde-format
|
||||
msgid "AudioTube"
|
||||
msgstr "AudioTube"
|
||||
@@ -302,84 +302,84 @@ msgstr "Zamknij zmaksymalizowany odtwarzacz"
|
||||
msgid "No media playing"
|
||||
msgstr "Nic nie jest odtwarzane"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:553 contents/ui/SongMenu.qml:107
|
||||
#: contents/ui/MaximizedPlayerPage.qml:538 contents/ui/SongMenu.qml:107
|
||||
#, kde-format
|
||||
msgid "Remove from Favorites"
|
||||
msgstr "Usuń z ulubionych"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:553 contents/ui/SongMenu.qml:107
|
||||
#: contents/ui/MaximizedPlayerPage.qml:538 contents/ui/SongMenu.qml:107
|
||||
#, kde-format
|
||||
msgid "Add to Favorites"
|
||||
msgstr "Dodaj do ulubionych"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:578
|
||||
#: contents/ui/MaximizedPlayerPage.qml:563
|
||||
#, kde-format
|
||||
msgid "Open Volume Drawer"
|
||||
msgstr "Otwórz szufladę głośności"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:685
|
||||
#: contents/ui/MaximizedPlayerPage.qml:670
|
||||
#, kde-format
|
||||
msgid "Unmute Audio"
|
||||
msgstr "Usuń wyciszenie dźwięku"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:685
|
||||
#: contents/ui/MaximizedPlayerPage.qml:670
|
||||
#, kde-format
|
||||
msgid "Mute Audio"
|
||||
msgstr "Wycisz dźwięk"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:724
|
||||
#: contents/ui/MaximizedPlayerPage.qml:709
|
||||
#, kde-format
|
||||
msgctxt "%1 is the audio volume in percent"
|
||||
msgid "%1%"
|
||||
msgstr "%1%"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:754
|
||||
#: contents/ui/MaximizedPlayerPage.qml:739
|
||||
#, kde-format
|
||||
msgid "Hide Lyrics"
|
||||
msgstr "Ukryj słowa"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:754
|
||||
#: contents/ui/MaximizedPlayerPage.qml:739
|
||||
#, kde-format
|
||||
msgid "Show Lyrics"
|
||||
msgstr "Pokaż słowa"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:774 contents/ui/SongMenu.qml:139
|
||||
#: contents/ui/MaximizedPlayerPage.qml:759 contents/ui/SongMenu.qml:139
|
||||
#, kde-format
|
||||
msgid "Share Song"
|
||||
msgstr "Udostępnij utwór"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:815
|
||||
#: contents/ui/MaximizedPlayerPage.qml:800
|
||||
#, kde-format
|
||||
msgid "Add to a local playlist"
|
||||
msgstr "Dodaj do miejscowej listy odtwarzania"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:852
|
||||
#: contents/ui/MaximizedPlayerPage.qml:837
|
||||
#, kde-format
|
||||
msgid "Hide Queue"
|
||||
msgstr "Ukryj kolejkę"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:852
|
||||
#: contents/ui/MaximizedPlayerPage.qml:837
|
||||
#, kde-format
|
||||
msgid "Show Queue"
|
||||
msgstr "Pokaż kolejkę"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1084
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1329
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1069
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1314
|
||||
#, kde-format
|
||||
msgid "Remove Song"
|
||||
msgstr "Usuń utwór"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1119
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1104
|
||||
#, kde-format
|
||||
msgid "Clear Queue"
|
||||
msgstr "Wyczyść kolejkę"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1144
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1129
|
||||
#, kde-format
|
||||
msgid "Shuffle Queue"
|
||||
msgstr "Wymieszaj kolejkę"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1177
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1162
|
||||
#, kde-format
|
||||
msgid "Upcoming Songs"
|
||||
msgstr "Nadchodzące utwory"
|
||||
@@ -468,6 +468,16 @@ msgstr "Żadne z poprzednich wyszukiwań nie odpowiada"
|
||||
msgid "Share to"
|
||||
msgstr "Udostępnij"
|
||||
|
||||
#: contents/ui/ShareMenu.qml:49 contents/ui/ShareMenu.qml:103
|
||||
#, kde-format
|
||||
msgid "Copy Link"
|
||||
msgstr "Skopiuj odnośnik"
|
||||
|
||||
#: contents/ui/ShareMenu.qml:54 contents/ui/ShareMenu.qml:108
|
||||
#, kde-format
|
||||
msgid "Link copied to clipboard"
|
||||
msgstr "Skopiowano odnośnik do schowka"
|
||||
|
||||
#: contents/ui/Sidebar.qml:108
|
||||
#, kde-format
|
||||
msgid "Home"
|
||||
@@ -508,50 +518,50 @@ msgstr "Usuń z historii"
|
||||
msgid "Add to playlist"
|
||||
msgstr "Dodaj do listy odtwarzania"
|
||||
|
||||
#: main.cpp:54
|
||||
#: main.cpp:90
|
||||
#, kde-format
|
||||
msgctxt "YouTube Music is a music streaming service by Google"
|
||||
msgid "Stream music from YouTube Music"
|
||||
msgstr "Strumieniuj muzykę z Muzyki YouTube"
|
||||
|
||||
#: main.cpp:56
|
||||
#: main.cpp:92
|
||||
#, kde-format
|
||||
msgid "© 2021–2024 Jonah Brüchert, 2021–2024 KDE Community"
|
||||
msgstr "© 2021–2024 Jonah Brüchert, 2021–2024 Społeczność KDE"
|
||||
|
||||
#: main.cpp:57
|
||||
#: main.cpp:93
|
||||
#, kde-format
|
||||
msgid "Jonah Brüchert"
|
||||
msgstr "Jonah Brüchert"
|
||||
|
||||
#: main.cpp:57
|
||||
#: main.cpp:93
|
||||
#, kde-format
|
||||
msgid "Maintainer"
|
||||
msgstr "Opiekun"
|
||||
|
||||
#: main.cpp:58
|
||||
#: main.cpp:94
|
||||
#, kde-format
|
||||
msgid "Mathis Brüchert"
|
||||
msgstr "Mathis Brüchert"
|
||||
|
||||
#: main.cpp:58
|
||||
#: main.cpp:94
|
||||
#, kde-format
|
||||
msgid "Designer"
|
||||
msgstr "Projektant"
|
||||
|
||||
#: main.cpp:59
|
||||
#: main.cpp:95
|
||||
#, kde-format
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
msgid "Your names"
|
||||
msgstr "Łukasz Wojniłowicz, Ignacy Kajdan"
|
||||
|
||||
#: main.cpp:59
|
||||
#: main.cpp:95
|
||||
#, kde-format
|
||||
msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr "[email protected], [email protected]"
|
||||
|
||||
#: main.cpp:66
|
||||
#: main.cpp:102
|
||||
#, kde-format
|
||||
msgctxt "YouTube Music is a music streaming service by Google"
|
||||
msgid "Unofficial API for YouTube Music"
|
||||
@@ -562,22 +572,16 @@ msgstr "Nieoficjalne API do Muzyki YouTube"
|
||||
msgid "No description"
|
||||
msgstr "Brak opisu"
|
||||
|
||||
#: playlistimporter.cpp:68
|
||||
#: playlistimporter.cpp:62
|
||||
#, kde-format
|
||||
msgid "No title"
|
||||
msgstr "Nienazwane"
|
||||
|
||||
#: playlistimporter.cpp:71
|
||||
#: playlistimporter.cpp:64
|
||||
#, kde-format
|
||||
msgid "No album"
|
||||
msgstr "Nie ma żadnego albumu"
|
||||
|
||||
#~ msgid "Copy Link"
|
||||
#~ msgstr "Skopiuj odnośnik"
|
||||
|
||||
#~ msgid "Link copied to clipboard"
|
||||
#~ msgstr "Skopiowano odnośnik do schowka"
|
||||
|
||||
#, fuzzy
|
||||
#~| msgid "Remove Favourite"
|
||||
#~ msgid "Remove Favorite"
|
||||
|
||||
+40
-36
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: audiotube\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2026-10-01 17:39+0000\n"
|
||||
"POT-Creation-Date: 2026-02-20 00:44+0000\n"
|
||||
"PO-Revision-Date: 2023-07-08 12:56+0100\n"
|
||||
"Last-Translator: José Nuno Coelho Pires <[email protected]>\n"
|
||||
"Language-Team: Portuguese <[email protected]>\n"
|
||||
@@ -289,7 +289,7 @@ msgstr "Esta lista de reprodução continua vazia"
|
||||
msgid "Import Playlist"
|
||||
msgstr "Importar uma Lista de Reprodução"
|
||||
|
||||
#: contents/ui/Main.qml:160 main.cpp:52
|
||||
#: contents/ui/Main.qml:160 main.cpp:88
|
||||
#, kde-format
|
||||
msgid "AudioTube"
|
||||
msgstr "AudioTube"
|
||||
@@ -310,88 +310,88 @@ msgstr "Fechar o Leitor Maximizado"
|
||||
msgid "No media playing"
|
||||
msgstr "Nada em reprodução"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:553 contents/ui/SongMenu.qml:107
|
||||
#: contents/ui/MaximizedPlayerPage.qml:538 contents/ui/SongMenu.qml:107
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Remove from Favourites"
|
||||
msgid "Remove from Favorites"
|
||||
msgstr "Remover dos Favoritos"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:553 contents/ui/SongMenu.qml:107
|
||||
#: contents/ui/MaximizedPlayerPage.qml:538 contents/ui/SongMenu.qml:107
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Add to Favourites"
|
||||
msgid "Add to Favorites"
|
||||
msgstr "Adicionar aos Favoritos"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:578
|
||||
#: contents/ui/MaximizedPlayerPage.qml:563
|
||||
#, kde-format
|
||||
msgid "Open Volume Drawer"
|
||||
msgstr "Abrir a Área do Volume"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:685
|
||||
#: contents/ui/MaximizedPlayerPage.qml:670
|
||||
#, kde-format
|
||||
msgid "Unmute Audio"
|
||||
msgstr "Repor o Áudio"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:685
|
||||
#: contents/ui/MaximizedPlayerPage.qml:670
|
||||
#, kde-format
|
||||
msgid "Mute Audio"
|
||||
msgstr "Silenciar o Áudio"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:724
|
||||
#: contents/ui/MaximizedPlayerPage.qml:709
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "%1%"
|
||||
msgctxt "%1 is the audio volume in percent"
|
||||
msgid "%1%"
|
||||
msgstr "%1%"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:754
|
||||
#: contents/ui/MaximizedPlayerPage.qml:739
|
||||
#, kde-format
|
||||
msgid "Hide Lyrics"
|
||||
msgstr "Esconder as Letras Musicais"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:754
|
||||
#: contents/ui/MaximizedPlayerPage.qml:739
|
||||
#, kde-format
|
||||
msgid "Show Lyrics"
|
||||
msgstr "Mostrar as Letras Musicais"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:774 contents/ui/SongMenu.qml:139
|
||||
#: contents/ui/MaximizedPlayerPage.qml:759 contents/ui/SongMenu.qml:139
|
||||
#, kde-format
|
||||
msgid "Share Song"
|
||||
msgstr "Partilhar a Música"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:815
|
||||
#: contents/ui/MaximizedPlayerPage.qml:800
|
||||
#, kde-format
|
||||
msgid "Add to a local playlist"
|
||||
msgstr "Adicionar a uma lista de reprodução local"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:852
|
||||
#: contents/ui/MaximizedPlayerPage.qml:837
|
||||
#, kde-format
|
||||
msgid "Hide Queue"
|
||||
msgstr "Esconder a Fila"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:852
|
||||
#: contents/ui/MaximizedPlayerPage.qml:837
|
||||
#, kde-format
|
||||
msgid "Show Queue"
|
||||
msgstr "Mostrar a Fila"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1084
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1329
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1069
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1314
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Remove Favourite"
|
||||
msgid "Remove Song"
|
||||
msgstr "Remover o Favorito"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1119
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1104
|
||||
#, kde-format
|
||||
msgid "Clear Queue"
|
||||
msgstr "Limpar a Fila"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1144
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1129
|
||||
#, kde-format
|
||||
msgid "Shuffle Queue"
|
||||
msgstr "Baralhar a Fila"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1177
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1162
|
||||
#, kde-format
|
||||
msgid "Upcoming Songs"
|
||||
msgstr "Próximas Músicas"
|
||||
@@ -482,6 +482,16 @@ msgstr "Sem pesquisas anteriores correspondentes"
|
||||
msgid "Share to"
|
||||
msgstr "Partilhar em"
|
||||
|
||||
#: contents/ui/ShareMenu.qml:49 contents/ui/ShareMenu.qml:103
|
||||
#, kde-format
|
||||
msgid "Copy Link"
|
||||
msgstr "Copiar a Ligação"
|
||||
|
||||
#: contents/ui/ShareMenu.qml:54 contents/ui/ShareMenu.qml:108
|
||||
#, kde-format
|
||||
msgid "Link copied to clipboard"
|
||||
msgstr "Ligação copiada para a área de transferência"
|
||||
|
||||
#: contents/ui/Sidebar.qml:108
|
||||
#, kde-format
|
||||
msgid "Home"
|
||||
@@ -522,52 +532,52 @@ msgstr "Remover do Histórico"
|
||||
msgid "Add to playlist"
|
||||
msgstr "Adicionar à lista de reprodução"
|
||||
|
||||
#: main.cpp:54
|
||||
#: main.cpp:90
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Unofficial API for YouTube Music"
|
||||
msgctxt "YouTube Music is a music streaming service by Google"
|
||||
msgid "Stream music from YouTube Music"
|
||||
msgstr "API não oficial do YouTube Music"
|
||||
|
||||
#: main.cpp:56
|
||||
#: main.cpp:92
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "© 2021-2023 Jonah Brüchert, 2021-2023 KDE Community"
|
||||
msgid "© 2021–2024 Jonah Brüchert, 2021–2024 KDE Community"
|
||||
msgstr "© 2021-2023 de Jonah Brüchert, 2021-2023 da Comunidade do KDE"
|
||||
|
||||
#: main.cpp:57
|
||||
#: main.cpp:93
|
||||
#, kde-format
|
||||
msgid "Jonah Brüchert"
|
||||
msgstr "Jonah Brüchert"
|
||||
|
||||
#: main.cpp:57
|
||||
#: main.cpp:93
|
||||
#, kde-format
|
||||
msgid "Maintainer"
|
||||
msgstr "Manutenção"
|
||||
|
||||
#: main.cpp:58
|
||||
#: main.cpp:94
|
||||
#, kde-format
|
||||
msgid "Mathis Brüchert"
|
||||
msgstr "Mathis Brüchert"
|
||||
|
||||
#: main.cpp:58
|
||||
#: main.cpp:94
|
||||
#, kde-format
|
||||
msgid "Designer"
|
||||
msgstr "Desenhador"
|
||||
|
||||
#: main.cpp:59
|
||||
#: main.cpp:95
|
||||
#, kde-format
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
msgid "Your names"
|
||||
msgstr "José Nuno Pires"
|
||||
|
||||
#: main.cpp:59
|
||||
#: main.cpp:95
|
||||
#, kde-format
|
||||
msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr "[email protected]"
|
||||
|
||||
#: main.cpp:66
|
||||
#: main.cpp:102
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Unofficial API for YouTube Music"
|
||||
msgctxt "YouTube Music is a music streaming service by Google"
|
||||
@@ -579,22 +589,16 @@ msgstr "API não oficial do YouTube Music"
|
||||
msgid "No description"
|
||||
msgstr "Sem descrição"
|
||||
|
||||
#: playlistimporter.cpp:68
|
||||
#: playlistimporter.cpp:62
|
||||
#, kde-format
|
||||
msgid "No title"
|
||||
msgstr "Sem título"
|
||||
|
||||
#: playlistimporter.cpp:71
|
||||
#: playlistimporter.cpp:64
|
||||
#, kde-format
|
||||
msgid "No album"
|
||||
msgstr "Sem álbum"
|
||||
|
||||
#~ msgid "Copy Link"
|
||||
#~ msgstr "Copiar a Ligação"
|
||||
|
||||
#~ msgid "Link copied to clipboard"
|
||||
#~ msgstr "Ligação copiada para a área de transferência"
|
||||
|
||||
#, fuzzy
|
||||
#~| msgid "Remove Favourite"
|
||||
#~ msgid "Remove Favorite"
|
||||
|
||||
+40
-36
@@ -9,7 +9,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: audiotube\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2026-10-01 17:39+0000\n"
|
||||
"POT-Creation-Date: 2026-02-20 00:44+0000\n"
|
||||
"PO-Revision-Date: 2026-02-20 09:14-0300\n"
|
||||
"Last-Translator: Marcus Gama <[email protected]>\n"
|
||||
"Language-Team: Brazilian Portuguese <[email protected]>\n"
|
||||
@@ -282,7 +282,7 @@ msgstr "Esta lista de música está vazia"
|
||||
msgid "Import Playlist"
|
||||
msgstr "Importar lista de músicas"
|
||||
|
||||
#: contents/ui/Main.qml:160 main.cpp:52
|
||||
#: contents/ui/Main.qml:160 main.cpp:88
|
||||
#, kde-format
|
||||
msgid "AudioTube"
|
||||
msgstr "AudioTube"
|
||||
@@ -303,84 +303,84 @@ msgstr "Fechar reprodutor maximizado"
|
||||
msgid "No media playing"
|
||||
msgstr "Nenhuma mídia em reprodução"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:553 contents/ui/SongMenu.qml:107
|
||||
#: contents/ui/MaximizedPlayerPage.qml:538 contents/ui/SongMenu.qml:107
|
||||
#, kde-format
|
||||
msgid "Remove from Favorites"
|
||||
msgstr "Remover dos favoritos"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:553 contents/ui/SongMenu.qml:107
|
||||
#: contents/ui/MaximizedPlayerPage.qml:538 contents/ui/SongMenu.qml:107
|
||||
#, kde-format
|
||||
msgid "Add to Favorites"
|
||||
msgstr "Adicionar aos favoritos"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:578
|
||||
#: contents/ui/MaximizedPlayerPage.qml:563
|
||||
#, kde-format
|
||||
msgid "Open Volume Drawer"
|
||||
msgstr "Abrir gaveta de volume"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:685
|
||||
#: contents/ui/MaximizedPlayerPage.qml:670
|
||||
#, kde-format
|
||||
msgid "Unmute Audio"
|
||||
msgstr "Ativar som"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:685
|
||||
#: contents/ui/MaximizedPlayerPage.qml:670
|
||||
#, kde-format
|
||||
msgid "Mute Audio"
|
||||
msgstr "Desativar som"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:724
|
||||
#: contents/ui/MaximizedPlayerPage.qml:709
|
||||
#, kde-format
|
||||
msgctxt "%1 is the audio volume in percent"
|
||||
msgid "%1%"
|
||||
msgstr "%1%"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:754
|
||||
#: contents/ui/MaximizedPlayerPage.qml:739
|
||||
#, kde-format
|
||||
msgid "Hide Lyrics"
|
||||
msgstr "Ocultar letras"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:754
|
||||
#: contents/ui/MaximizedPlayerPage.qml:739
|
||||
#, kde-format
|
||||
msgid "Show Lyrics"
|
||||
msgstr "Mostrar letras"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:774 contents/ui/SongMenu.qml:139
|
||||
#: contents/ui/MaximizedPlayerPage.qml:759 contents/ui/SongMenu.qml:139
|
||||
#, kde-format
|
||||
msgid "Share Song"
|
||||
msgstr "Compartilhar música"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:815
|
||||
#: contents/ui/MaximizedPlayerPage.qml:800
|
||||
#, kde-format
|
||||
msgid "Add to a local playlist"
|
||||
msgstr "Adicionar à lista de músicas local"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:852
|
||||
#: contents/ui/MaximizedPlayerPage.qml:837
|
||||
#, kde-format
|
||||
msgid "Hide Queue"
|
||||
msgstr "Ocultar fila"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:852
|
||||
#: contents/ui/MaximizedPlayerPage.qml:837
|
||||
#, kde-format
|
||||
msgid "Show Queue"
|
||||
msgstr "Mostrar fila"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1084
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1329
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1069
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1314
|
||||
#, kde-format
|
||||
msgid "Remove Song"
|
||||
msgstr "Remover música"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1119
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1104
|
||||
#, kde-format
|
||||
msgid "Clear Queue"
|
||||
msgstr "Limpar fila"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1144
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1129
|
||||
#, kde-format
|
||||
msgid "Shuffle Queue"
|
||||
msgstr "Embaralhar fila"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1177
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1162
|
||||
#, kde-format
|
||||
msgid "Upcoming Songs"
|
||||
msgstr "Próximas músicas"
|
||||
@@ -468,6 +468,16 @@ msgstr "Nenhuma pesquisa anterior correspondente"
|
||||
msgid "Share to"
|
||||
msgstr "Compartilhar para"
|
||||
|
||||
#: contents/ui/ShareMenu.qml:49 contents/ui/ShareMenu.qml:103
|
||||
#, kde-format
|
||||
msgid "Copy Link"
|
||||
msgstr "Copiar link"
|
||||
|
||||
#: contents/ui/ShareMenu.qml:54 contents/ui/ShareMenu.qml:108
|
||||
#, kde-format
|
||||
msgid "Link copied to clipboard"
|
||||
msgstr "Link copiado para a área de transferência"
|
||||
|
||||
#: contents/ui/Sidebar.qml:108
|
||||
#, kde-format
|
||||
msgid "Home"
|
||||
@@ -508,50 +518,50 @@ msgstr "Remover do histórico"
|
||||
msgid "Add to playlist"
|
||||
msgstr "Adicionar à lista de músicas"
|
||||
|
||||
#: main.cpp:54
|
||||
#: main.cpp:90
|
||||
#, kde-format
|
||||
msgctxt "YouTube Music is a music streaming service by Google"
|
||||
msgid "Stream music from YouTube Music"
|
||||
msgstr "Transmita música do YouTube Music"
|
||||
|
||||
#: main.cpp:56
|
||||
#: main.cpp:92
|
||||
#, kde-format
|
||||
msgid "© 2021–2024 Jonah Brüchert, 2021–2024 KDE Community"
|
||||
msgstr "© 2021–2024 Jonah Brüchert, 2021–2024 Comunidade KDE"
|
||||
|
||||
#: main.cpp:57
|
||||
#: main.cpp:93
|
||||
#, kde-format
|
||||
msgid "Jonah Brüchert"
|
||||
msgstr "Jonah Brüchert"
|
||||
|
||||
#: main.cpp:57
|
||||
#: main.cpp:93
|
||||
#, kde-format
|
||||
msgid "Maintainer"
|
||||
msgstr "Mantenedor"
|
||||
|
||||
#: main.cpp:58
|
||||
#: main.cpp:94
|
||||
#, kde-format
|
||||
msgid "Mathis Brüchert"
|
||||
msgstr "Mathis Brüchert"
|
||||
|
||||
#: main.cpp:58
|
||||
#: main.cpp:94
|
||||
#, kde-format
|
||||
msgid "Designer"
|
||||
msgstr "Designer"
|
||||
|
||||
#: main.cpp:59
|
||||
#: main.cpp:95
|
||||
#, kde-format
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
msgid "Your names"
|
||||
msgstr "Luiz Fernando Ranghetti"
|
||||
|
||||
#: main.cpp:59
|
||||
#: main.cpp:95
|
||||
#, kde-format
|
||||
msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr "[email protected]"
|
||||
|
||||
#: main.cpp:66
|
||||
#: main.cpp:102
|
||||
#, kde-format
|
||||
msgctxt "YouTube Music is a music streaming service by Google"
|
||||
msgid "Unofficial API for YouTube Music"
|
||||
@@ -562,22 +572,16 @@ msgstr "API não oficial do YouTube Music"
|
||||
msgid "No description"
|
||||
msgstr "Sem descrição"
|
||||
|
||||
#: playlistimporter.cpp:68
|
||||
#: playlistimporter.cpp:62
|
||||
#, kde-format
|
||||
msgid "No title"
|
||||
msgstr "Nenhuma música"
|
||||
|
||||
#: playlistimporter.cpp:71
|
||||
#: playlistimporter.cpp:64
|
||||
#, kde-format
|
||||
msgid "No album"
|
||||
msgstr "Nenhum álbum"
|
||||
|
||||
#~ msgid "Copy Link"
|
||||
#~ msgstr "Copiar link"
|
||||
|
||||
#~ msgid "Link copied to clipboard"
|
||||
#~ msgstr "Link copiado para a área de transferência"
|
||||
|
||||
#~ msgid "Remove Favorite"
|
||||
#~ msgstr "Remover favorito"
|
||||
|
||||
|
||||
+42
-38
@@ -7,8 +7,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: audiotube\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2026-10-01 17:39+0000\n"
|
||||
"PO-Revision-Date: 2026-10-09 15:24+0200\n"
|
||||
"POT-Creation-Date: 2026-02-20 00:44+0000\n"
|
||||
"PO-Revision-Date: 2026-02-21 14:11+0200\n"
|
||||
"Last-Translator: Alexander Yavorskiy <[email protected]>\n"
|
||||
"Language-Team: Russian <[email protected]>\n"
|
||||
"Language: ru\n"
|
||||
@@ -280,7 +280,7 @@ msgstr "Список воспроизведения всё ещё пуст"
|
||||
msgid "Import Playlist"
|
||||
msgstr "Импорт списка воспроизведения"
|
||||
|
||||
#: contents/ui/Main.qml:160 main.cpp:52
|
||||
#: contents/ui/Main.qml:160 main.cpp:88
|
||||
#, kde-format
|
||||
msgid "AudioTube"
|
||||
msgstr "AudioTube"
|
||||
@@ -301,84 +301,84 @@ msgstr "Закрыть развёрнутый проигрыватель"
|
||||
msgid "No media playing"
|
||||
msgstr "Ничего не воспроизводится"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:553 contents/ui/SongMenu.qml:107
|
||||
#: contents/ui/MaximizedPlayerPage.qml:538 contents/ui/SongMenu.qml:107
|
||||
#, kde-format
|
||||
msgid "Remove from Favorites"
|
||||
msgstr "Убрать из избранного"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:553 contents/ui/SongMenu.qml:107
|
||||
#: contents/ui/MaximizedPlayerPage.qml:538 contents/ui/SongMenu.qml:107
|
||||
#, kde-format
|
||||
msgid "Add to Favorites"
|
||||
msgstr "Добавить в избранное"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:578
|
||||
#: contents/ui/MaximizedPlayerPage.qml:563
|
||||
#, kde-format
|
||||
msgid "Open Volume Drawer"
|
||||
msgstr "Открыть выдвижную панель громкости"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:685
|
||||
#: contents/ui/MaximizedPlayerPage.qml:670
|
||||
#, kde-format
|
||||
msgid "Unmute Audio"
|
||||
msgstr "Включить звук"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:685
|
||||
#: contents/ui/MaximizedPlayerPage.qml:670
|
||||
#, kde-format
|
||||
msgid "Mute Audio"
|
||||
msgstr "Отключить звук"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:724
|
||||
#: contents/ui/MaximizedPlayerPage.qml:709
|
||||
#, kde-format
|
||||
msgctxt "%1 is the audio volume in percent"
|
||||
msgid "%1%"
|
||||
msgstr "%1%"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:754
|
||||
#: contents/ui/MaximizedPlayerPage.qml:739
|
||||
#, kde-format
|
||||
msgid "Hide Lyrics"
|
||||
msgstr "Скрыть текст"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:754
|
||||
#: contents/ui/MaximizedPlayerPage.qml:739
|
||||
#, kde-format
|
||||
msgid "Show Lyrics"
|
||||
msgstr "Показать текст"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:774 contents/ui/SongMenu.qml:139
|
||||
#: contents/ui/MaximizedPlayerPage.qml:759 contents/ui/SongMenu.qml:139
|
||||
#, kde-format
|
||||
msgid "Share Song"
|
||||
msgstr "Опубликовать трек"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:815
|
||||
#: contents/ui/MaximizedPlayerPage.qml:800
|
||||
#, kde-format
|
||||
msgid "Add to a local playlist"
|
||||
msgstr "Добавить в локальный список воспроизведения"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:852
|
||||
#: contents/ui/MaximizedPlayerPage.qml:837
|
||||
#, kde-format
|
||||
msgid "Hide Queue"
|
||||
msgstr "Скрыть очередь воспроизведения"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:852
|
||||
#: contents/ui/MaximizedPlayerPage.qml:837
|
||||
#, kde-format
|
||||
msgid "Show Queue"
|
||||
msgstr "Показать очередь воспроизведения"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1084
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1329
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1069
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1314
|
||||
#, kde-format
|
||||
msgid "Remove Song"
|
||||
msgstr "Удалить песню"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1119
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1104
|
||||
#, kde-format
|
||||
msgid "Clear Queue"
|
||||
msgstr "Очистить очередь воспроизведения"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1144
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1129
|
||||
#, kde-format
|
||||
msgid "Shuffle Queue"
|
||||
msgstr "Перемешать очередь воспроизведения"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1177
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1162
|
||||
#, kde-format
|
||||
msgid "Upcoming Songs"
|
||||
msgstr "Следующие треки"
|
||||
@@ -446,7 +446,7 @@ msgstr "Лучшие результаты"
|
||||
#: contents/ui/SearchPage.qml:41 playlistimporter.cpp:24
|
||||
#, kde-format
|
||||
msgid "Unknown"
|
||||
msgstr "Неизвестно"
|
||||
msgstr "Неизвестный тип"
|
||||
|
||||
#: contents/ui/SearchPage.qml:74
|
||||
#, kde-format
|
||||
@@ -468,6 +468,16 @@ msgstr "Не найдено соответствующих предыдущих
|
||||
msgid "Share to"
|
||||
msgstr "Выбор способа публикации"
|
||||
|
||||
#: contents/ui/ShareMenu.qml:49 contents/ui/ShareMenu.qml:103
|
||||
#, kde-format
|
||||
msgid "Copy Link"
|
||||
msgstr "Копировать адрес ссылки"
|
||||
|
||||
#: contents/ui/ShareMenu.qml:54 contents/ui/ShareMenu.qml:108
|
||||
#, kde-format
|
||||
msgid "Link copied to clipboard"
|
||||
msgstr "Ссылка скопирована в буфер обмена"
|
||||
|
||||
#: contents/ui/Sidebar.qml:108
|
||||
#, kde-format
|
||||
msgid "Home"
|
||||
@@ -508,50 +518,50 @@ msgstr "Удалить из журнала"
|
||||
msgid "Add to playlist"
|
||||
msgstr "Добавить в список воспроизведения"
|
||||
|
||||
#: main.cpp:54
|
||||
#: main.cpp:90
|
||||
#, kde-format
|
||||
msgctxt "YouTube Music is a music streaming service by Google"
|
||||
msgid "Stream music from YouTube Music"
|
||||
msgstr "Потоковое прослушивание YouTube Music"
|
||||
|
||||
#: main.cpp:56
|
||||
#: main.cpp:92
|
||||
#, kde-format
|
||||
msgid "© 2021–2024 Jonah Brüchert, 2021–2024 KDE Community"
|
||||
msgstr "© Jonah Brüchert, 2021-2024, сообщество KDE, 2021-2024"
|
||||
|
||||
#: main.cpp:57
|
||||
#: main.cpp:93
|
||||
#, kde-format
|
||||
msgid "Jonah Brüchert"
|
||||
msgstr "Jonah Brüchert"
|
||||
|
||||
#: main.cpp:57
|
||||
#: main.cpp:93
|
||||
#, kde-format
|
||||
msgid "Maintainer"
|
||||
msgstr "Сопровождающий"
|
||||
|
||||
#: main.cpp:58
|
||||
#: main.cpp:94
|
||||
#, kde-format
|
||||
msgid "Mathis Brüchert"
|
||||
msgstr "Mathis Brüchert"
|
||||
|
||||
#: main.cpp:58
|
||||
#: main.cpp:94
|
||||
#, kde-format
|
||||
msgid "Designer"
|
||||
msgstr "Дизайнер"
|
||||
|
||||
#: main.cpp:59
|
||||
#: main.cpp:95
|
||||
#, kde-format
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
msgid "Your names"
|
||||
msgstr "Александр Яворский, Павел Чернышов, Мария Шикунова"
|
||||
|
||||
#: main.cpp:59
|
||||
#: main.cpp:95
|
||||
#, kde-format
|
||||
msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr "[email protected], [email protected], [email protected]"
|
||||
|
||||
#: main.cpp:66
|
||||
#: main.cpp:102
|
||||
#, kde-format
|
||||
msgctxt "YouTube Music is a music streaming service by Google"
|
||||
msgid "Unofficial API for YouTube Music"
|
||||
@@ -562,22 +572,16 @@ msgstr "Неофициальный API для YouTube Music"
|
||||
msgid "No description"
|
||||
msgstr "Описание отсутствует"
|
||||
|
||||
#: playlistimporter.cpp:68
|
||||
#: playlistimporter.cpp:62
|
||||
#, kde-format
|
||||
msgid "No title"
|
||||
msgstr "Название отсутствует"
|
||||
|
||||
#: playlistimporter.cpp:71
|
||||
#: playlistimporter.cpp:64
|
||||
#, kde-format
|
||||
msgid "No album"
|
||||
msgstr "Альбом отсутствует"
|
||||
|
||||
#~ msgid "Copy Link"
|
||||
#~ msgstr "Копировать адрес ссылки"
|
||||
|
||||
#~ msgid "Link copied to clipboard"
|
||||
#~ msgstr "Ссылка скопирована в буфер обмена"
|
||||
|
||||
#~ msgid "Remove Favorite"
|
||||
#~ msgstr "Убрать из избранного"
|
||||
|
||||
|
||||
+40
-36
@@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: audiotube\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2026-10-01 17:39+0000\n"
|
||||
"POT-Creation-Date: 2026-02-20 00:44+0000\n"
|
||||
"PO-Revision-Date: 2024-12-24 20:39+0530\n"
|
||||
"Last-Translator: kali <[email protected]>\n"
|
||||
"Language-Team: Sanskrit <[email protected]>\n"
|
||||
@@ -287,7 +287,7 @@ msgstr "इयं प्लेलिस्ट् अद्यापि रिक
|
||||
msgid "Import Playlist"
|
||||
msgstr "प्लेलिस्ट आयात करें"
|
||||
|
||||
#: contents/ui/Main.qml:160 main.cpp:52
|
||||
#: contents/ui/Main.qml:160 main.cpp:88
|
||||
#, kde-format
|
||||
msgid "AudioTube"
|
||||
msgstr "ऑडियोट्यूब"
|
||||
@@ -308,88 +308,88 @@ msgstr "अधिकतमं खिलाडी बन्दं कुर्व
|
||||
msgid "No media playing"
|
||||
msgstr "न मीडिया वाद्यते"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:553 contents/ui/SongMenu.qml:107
|
||||
#: contents/ui/MaximizedPlayerPage.qml:538 contents/ui/SongMenu.qml:107
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Remove from Favourites"
|
||||
msgid "Remove from Favorites"
|
||||
msgstr "प्रियतः निष्कासयन्तु"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:553 contents/ui/SongMenu.qml:107
|
||||
#: contents/ui/MaximizedPlayerPage.qml:538 contents/ui/SongMenu.qml:107
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Add to Favourites"
|
||||
msgid "Add to Favorites"
|
||||
msgstr "प्रियं योजयतु"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:578
|
||||
#: contents/ui/MaximizedPlayerPage.qml:563
|
||||
#, kde-format
|
||||
msgid "Open Volume Drawer"
|
||||
msgstr "ओपन वॉल्यूम दराज"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:685
|
||||
#: contents/ui/MaximizedPlayerPage.qml:670
|
||||
#, kde-format
|
||||
msgid "Unmute Audio"
|
||||
msgstr "असन्तुष्टि श्रव्य"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:685
|
||||
#: contents/ui/MaximizedPlayerPage.qml:670
|
||||
#, kde-format
|
||||
msgid "Mute Audio"
|
||||
msgstr "म्यूट ऑडियो"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:724
|
||||
#: contents/ui/MaximizedPlayerPage.qml:709
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "%1%"
|
||||
msgctxt "%1 is the audio volume in percent"
|
||||
msgid "%1%"
|
||||
msgstr "%1% "
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:754
|
||||
#: contents/ui/MaximizedPlayerPage.qml:739
|
||||
#, kde-format
|
||||
msgid "Hide Lyrics"
|
||||
msgstr "गीतं गोपयतु"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:754
|
||||
#: contents/ui/MaximizedPlayerPage.qml:739
|
||||
#, kde-format
|
||||
msgid "Show Lyrics"
|
||||
msgstr "गीतं दर्शयतु"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:774 contents/ui/SongMenu.qml:139
|
||||
#: contents/ui/MaximizedPlayerPage.qml:759 contents/ui/SongMenu.qml:139
|
||||
#, kde-format
|
||||
msgid "Share Song"
|
||||
msgstr "शेयर गीत"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:815
|
||||
#: contents/ui/MaximizedPlayerPage.qml:800
|
||||
#, kde-format
|
||||
msgid "Add to a local playlist"
|
||||
msgstr "स्थानीयप्लेलिस्ट् मध्ये योजयन्तु"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:852
|
||||
#: contents/ui/MaximizedPlayerPage.qml:837
|
||||
#, kde-format
|
||||
msgid "Hide Queue"
|
||||
msgstr "कतारं गोपयतु"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:852
|
||||
#: contents/ui/MaximizedPlayerPage.qml:837
|
||||
#, kde-format
|
||||
msgid "Show Queue"
|
||||
msgstr "कतारं दर्शयतु"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1084
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1329
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1069
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1314
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Remove Favourite"
|
||||
msgid "Remove Song"
|
||||
msgstr "प्रियं निष्कासयन्तु"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1119
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1104
|
||||
#, kde-format
|
||||
msgid "Clear Queue"
|
||||
msgstr "कतारं स्वच्छं कुर्वन्तु"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1144
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1129
|
||||
#, kde-format
|
||||
msgid "Shuffle Queue"
|
||||
msgstr "शफल कतार"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1177
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1162
|
||||
#, kde-format
|
||||
msgid "Upcoming Songs"
|
||||
msgstr "आगामी गीत"
|
||||
@@ -479,6 +479,16 @@ msgstr "पूर्वसन्धानस्य मेलनं नास्
|
||||
msgid "Share to"
|
||||
msgstr "Share to"
|
||||
|
||||
#: contents/ui/ShareMenu.qml:49 contents/ui/ShareMenu.qml:103
|
||||
#, kde-format
|
||||
msgid "Copy Link"
|
||||
msgstr "प्रतिलिपि लिङ्क"
|
||||
|
||||
#: contents/ui/ShareMenu.qml:54 contents/ui/ShareMenu.qml:108
|
||||
#, kde-format
|
||||
msgid "Link copied to clipboard"
|
||||
msgstr "लिङ्क् क्लिप्बोर्ड् प्रति प्रतिलिपितः"
|
||||
|
||||
#: contents/ui/Sidebar.qml:108
|
||||
#, kde-format
|
||||
msgid "Home"
|
||||
@@ -519,51 +529,51 @@ msgstr "इतिहासात् निष्कासयन्तु"
|
||||
msgid "Add to playlist"
|
||||
msgstr "प्लेलिस्ट् मध्ये योजयन्तु"
|
||||
|
||||
#: main.cpp:54
|
||||
#: main.cpp:90
|
||||
#, kde-format
|
||||
msgctxt "YouTube Music is a music streaming service by Google"
|
||||
msgid "Stream music from YouTube Music"
|
||||
msgstr "YouTube Music इत्यस्मात् संगीतं प्रवाहयन्तु"
|
||||
|
||||
#: main.cpp:56
|
||||
#: main.cpp:92
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "© 2021-2024 Jonah Brüchert, 2021-2024 KDE Community"
|
||||
msgid "© 2021–2024 Jonah Brüchert, 2021–2024 KDE Community"
|
||||
msgstr "© 2021-2024 जोनाह ब्रुचेर्ट, 2021-2024 केडीई समुदाय"
|
||||
|
||||
#: main.cpp:57
|
||||
#: main.cpp:93
|
||||
#, kde-format
|
||||
msgid "Jonah Brüchert"
|
||||
msgstr "जोनाह ब्रुचेर्ट"
|
||||
|
||||
#: main.cpp:57
|
||||
#: main.cpp:93
|
||||
#, kde-format
|
||||
msgid "Maintainer"
|
||||
msgstr "परिपालकः"
|
||||
|
||||
#: main.cpp:58
|
||||
#: main.cpp:94
|
||||
#, kde-format
|
||||
msgid "Mathis Brüchert"
|
||||
msgstr "माथिस ब्रुचेर्ट"
|
||||
|
||||
#: main.cpp:58
|
||||
#: main.cpp:94
|
||||
#, kde-format
|
||||
msgid "Designer"
|
||||
msgstr "डिजाइनर"
|
||||
|
||||
#: main.cpp:59
|
||||
#: main.cpp:95
|
||||
#, kde-format
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
msgid "Your names"
|
||||
msgstr "श्रीकान्त् कलवार्"
|
||||
|
||||
#: main.cpp:59
|
||||
#: main.cpp:95
|
||||
#, kde-format
|
||||
msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr "[email protected]"
|
||||
|
||||
#: main.cpp:66
|
||||
#: main.cpp:102
|
||||
#, kde-format
|
||||
msgctxt "YouTube Music is a music streaming service by Google"
|
||||
msgid "Unofficial API for YouTube Music"
|
||||
@@ -574,22 +584,16 @@ msgstr "YouTube Music कृते अनधिकृतः एपिआइ"
|
||||
msgid "No description"
|
||||
msgstr "न वर्णनम्"
|
||||
|
||||
#: playlistimporter.cpp:68
|
||||
#: playlistimporter.cpp:62
|
||||
#, kde-format
|
||||
msgid "No title"
|
||||
msgstr "न उपाधिः"
|
||||
|
||||
#: playlistimporter.cpp:71
|
||||
#: playlistimporter.cpp:64
|
||||
#, kde-format
|
||||
msgid "No album"
|
||||
msgstr "एल्बम् नास्ति"
|
||||
|
||||
#~ msgid "Copy Link"
|
||||
#~ msgstr "प्रतिलिपि लिङ्क"
|
||||
|
||||
#~ msgid "Link copied to clipboard"
|
||||
#~ msgstr "लिङ्क् क्लिप्बोर्ड् प्रति प्रतिलिपितः"
|
||||
|
||||
#, fuzzy
|
||||
#~| msgid "Remove Favourite"
|
||||
#~ msgid "Remove Favorite"
|
||||
|
||||
+40
-36
@@ -4,7 +4,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: audiotube\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2026-10-01 17:39+0000\n"
|
||||
"POT-Creation-Date: 2026-02-20 00:44+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"
|
||||
@@ -276,7 +276,7 @@ msgstr "Tento playlist je stále prázdny"
|
||||
msgid "Import Playlist"
|
||||
msgstr "Importovať playlist"
|
||||
|
||||
#: contents/ui/Main.qml:160 main.cpp:52
|
||||
#: contents/ui/Main.qml:160 main.cpp:88
|
||||
#, kde-format
|
||||
msgid "AudioTube"
|
||||
msgstr "AudioTube"
|
||||
@@ -297,84 +297,84 @@ msgstr "Zavrieť maximalizovaný prehrávač"
|
||||
msgid "No media playing"
|
||||
msgstr "Neprehráva sa žiadne médium"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:553 contents/ui/SongMenu.qml:107
|
||||
#: contents/ui/MaximizedPlayerPage.qml:538 contents/ui/SongMenu.qml:107
|
||||
#, kde-format
|
||||
msgid "Remove from Favorites"
|
||||
msgstr "Odstrániť z obľúbených"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:553 contents/ui/SongMenu.qml:107
|
||||
#: contents/ui/MaximizedPlayerPage.qml:538 contents/ui/SongMenu.qml:107
|
||||
#, kde-format
|
||||
msgid "Add to Favorites"
|
||||
msgstr "Pridať do obľúbených"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:578
|
||||
#: contents/ui/MaximizedPlayerPage.qml:563
|
||||
#, kde-format
|
||||
msgid "Open Volume Drawer"
|
||||
msgstr "Otvoriť ovládač hlasitosti"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:685
|
||||
#: contents/ui/MaximizedPlayerPage.qml:670
|
||||
#, kde-format
|
||||
msgid "Unmute Audio"
|
||||
msgstr "Zapnúť zvuk"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:685
|
||||
#: contents/ui/MaximizedPlayerPage.qml:670
|
||||
#, kde-format
|
||||
msgid "Mute Audio"
|
||||
msgstr "Stlmiť zvuk"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:724
|
||||
#: contents/ui/MaximizedPlayerPage.qml:709
|
||||
#, kde-format
|
||||
msgctxt "%1 is the audio volume in percent"
|
||||
msgid "%1%"
|
||||
msgstr "%1%"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:754
|
||||
#: contents/ui/MaximizedPlayerPage.qml:739
|
||||
#, kde-format
|
||||
msgid "Hide Lyrics"
|
||||
msgstr "Skryť text piesne"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:754
|
||||
#: contents/ui/MaximizedPlayerPage.qml:739
|
||||
#, kde-format
|
||||
msgid "Show Lyrics"
|
||||
msgstr "Zobraziť text piesne"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:774 contents/ui/SongMenu.qml:139
|
||||
#: contents/ui/MaximizedPlayerPage.qml:759 contents/ui/SongMenu.qml:139
|
||||
#, kde-format
|
||||
msgid "Share Song"
|
||||
msgstr "Zdieľať skladbu"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:815
|
||||
#: contents/ui/MaximizedPlayerPage.qml:800
|
||||
#, kde-format
|
||||
msgid "Add to a local playlist"
|
||||
msgstr "Pridať do lokálneho playlistu"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:852
|
||||
#: contents/ui/MaximizedPlayerPage.qml:837
|
||||
#, kde-format
|
||||
msgid "Hide Queue"
|
||||
msgstr "Skryť frontu"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:852
|
||||
#: contents/ui/MaximizedPlayerPage.qml:837
|
||||
#, kde-format
|
||||
msgid "Show Queue"
|
||||
msgstr "Zobraziť frontu"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1084
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1329
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1069
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1314
|
||||
#, kde-format
|
||||
msgid "Remove Song"
|
||||
msgstr "Odstrániť skladbu"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1119
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1104
|
||||
#, kde-format
|
||||
msgid "Clear Queue"
|
||||
msgstr "Vyčistiť frontu"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1144
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1129
|
||||
#, kde-format
|
||||
msgid "Shuffle Queue"
|
||||
msgstr "Zamiešať frontu"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1177
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1162
|
||||
#, kde-format
|
||||
msgid "Upcoming Songs"
|
||||
msgstr "Nasledujúce skladby"
|
||||
@@ -463,6 +463,16 @@ msgstr "Žiadne zodpovedajúce predchádzajúce hľadania"
|
||||
msgid "Share to"
|
||||
msgstr "Zdieľať do"
|
||||
|
||||
#: contents/ui/ShareMenu.qml:49 contents/ui/ShareMenu.qml:103
|
||||
#, kde-format
|
||||
msgid "Copy Link"
|
||||
msgstr "Kopírovať odkaz"
|
||||
|
||||
#: contents/ui/ShareMenu.qml:54 contents/ui/ShareMenu.qml:108
|
||||
#, kde-format
|
||||
msgid "Link copied to clipboard"
|
||||
msgstr "Odkaz bol skopírovaný do schránky"
|
||||
|
||||
#: contents/ui/Sidebar.qml:108
|
||||
#, kde-format
|
||||
msgid "Home"
|
||||
@@ -503,50 +513,50 @@ msgstr "Odstrániť z histórie"
|
||||
msgid "Add to playlist"
|
||||
msgstr "Pridať do playlistu"
|
||||
|
||||
#: main.cpp:54
|
||||
#: main.cpp:90
|
||||
#, kde-format
|
||||
msgctxt "YouTube Music is a music streaming service by Google"
|
||||
msgid "Stream music from YouTube Music"
|
||||
msgstr "Streamovanie hudby zo služby YouTube Music"
|
||||
|
||||
#: main.cpp:56
|
||||
#: main.cpp:92
|
||||
#, kde-format
|
||||
msgid "© 2021–2024 Jonah Brüchert, 2021–2024 KDE Community"
|
||||
msgstr "© 2021–2024 Jonah Brüchert, 2021–2024 KDE komunita"
|
||||
|
||||
#: main.cpp:57
|
||||
#: main.cpp:93
|
||||
#, kde-format
|
||||
msgid "Jonah Brüchert"
|
||||
msgstr "Jonah Brüchert"
|
||||
|
||||
#: main.cpp:57
|
||||
#: main.cpp:93
|
||||
#, kde-format
|
||||
msgid "Maintainer"
|
||||
msgstr "Správca"
|
||||
|
||||
#: main.cpp:58
|
||||
#: main.cpp:94
|
||||
#, kde-format
|
||||
msgid "Mathis Brüchert"
|
||||
msgstr "Mathis Brüchert"
|
||||
|
||||
#: main.cpp:58
|
||||
#: main.cpp:94
|
||||
#, kde-format
|
||||
msgid "Designer"
|
||||
msgstr "Návrhár"
|
||||
|
||||
#: main.cpp:59
|
||||
#: main.cpp:95
|
||||
#, kde-format
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
msgid "Your names"
|
||||
msgstr "Roman Paholík"
|
||||
|
||||
#: main.cpp:59
|
||||
#: main.cpp:95
|
||||
#, kde-format
|
||||
msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr "[email protected]"
|
||||
|
||||
#: main.cpp:66
|
||||
#: main.cpp:102
|
||||
#, kde-format
|
||||
msgctxt "YouTube Music is a music streaming service by Google"
|
||||
msgid "Unofficial API for YouTube Music"
|
||||
@@ -557,22 +567,16 @@ msgstr "Neoficiálne API pre YouTube Music"
|
||||
msgid "No description"
|
||||
msgstr "Žiadny popis"
|
||||
|
||||
#: playlistimporter.cpp:68
|
||||
#: playlistimporter.cpp:62
|
||||
#, kde-format
|
||||
msgid "No title"
|
||||
msgstr "Žiadny názov"
|
||||
|
||||
#: playlistimporter.cpp:71
|
||||
#: playlistimporter.cpp:64
|
||||
#, kde-format
|
||||
msgid "No album"
|
||||
msgstr "Bez albumu"
|
||||
|
||||
#~ msgid "Copy Link"
|
||||
#~ msgstr "Kopírovať odkaz"
|
||||
|
||||
#~ msgid "Link copied to clipboard"
|
||||
#~ msgstr "Odkaz bol skopírovaný do schránky"
|
||||
|
||||
#, fuzzy
|
||||
#~ msgid "Remove Favorite"
|
||||
#~ msgstr "Zoznamy skladieb"
|
||||
|
||||
+40
-36
@@ -6,7 +6,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: audiotube\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2026-10-01 17:39+0000\n"
|
||||
"POT-Creation-Date: 2026-02-20 00:44+0000\n"
|
||||
"PO-Revision-Date: 2026-02-20 07:39+0100\n"
|
||||
"Last-Translator: Matjaž Jeran <[email protected]>\n"
|
||||
"Language-Team: Slovenian <[email protected]>\n"
|
||||
@@ -278,7 +278,7 @@ msgstr "Ta seznam predvajanja je še prazen"
|
||||
msgid "Import Playlist"
|
||||
msgstr "Uvozi seznam predvajanja"
|
||||
|
||||
#: contents/ui/Main.qml:160 main.cpp:52
|
||||
#: contents/ui/Main.qml:160 main.cpp:88
|
||||
#, kde-format
|
||||
msgid "AudioTube"
|
||||
msgstr "AudioTube"
|
||||
@@ -299,84 +299,84 @@ msgstr "Zapri maksimiziran predvajalnik"
|
||||
msgid "No media playing"
|
||||
msgstr "Nič se ne predvaja"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:553 contents/ui/SongMenu.qml:107
|
||||
#: contents/ui/MaximizedPlayerPage.qml:538 contents/ui/SongMenu.qml:107
|
||||
#, kde-format
|
||||
msgid "Remove from Favorites"
|
||||
msgstr "Odstrani iz priljubljenih"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:553 contents/ui/SongMenu.qml:107
|
||||
#: contents/ui/MaximizedPlayerPage.qml:538 contents/ui/SongMenu.qml:107
|
||||
#, kde-format
|
||||
msgid "Add to Favorites"
|
||||
msgstr "Dodaj med priljubljene"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:578
|
||||
#: contents/ui/MaximizedPlayerPage.qml:563
|
||||
#, kde-format
|
||||
msgid "Open Volume Drawer"
|
||||
msgstr "Odpri predal glasnosti"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:685
|
||||
#: contents/ui/MaximizedPlayerPage.qml:670
|
||||
#, kde-format
|
||||
msgid "Unmute Audio"
|
||||
msgstr "Povrni zvok"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:685
|
||||
#: contents/ui/MaximizedPlayerPage.qml:670
|
||||
#, kde-format
|
||||
msgid "Mute Audio"
|
||||
msgstr "Utišaj"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:724
|
||||
#: contents/ui/MaximizedPlayerPage.qml:709
|
||||
#, kde-format
|
||||
msgctxt "%1 is the audio volume in percent"
|
||||
msgid "%1%"
|
||||
msgstr "%1%"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:754
|
||||
#: contents/ui/MaximizedPlayerPage.qml:739
|
||||
#, kde-format
|
||||
msgid "Hide Lyrics"
|
||||
msgstr "Skrij besedila"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:754
|
||||
#: contents/ui/MaximizedPlayerPage.qml:739
|
||||
#, kde-format
|
||||
msgid "Show Lyrics"
|
||||
msgstr "Prikazuj besedila"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:774 contents/ui/SongMenu.qml:139
|
||||
#: contents/ui/MaximizedPlayerPage.qml:759 contents/ui/SongMenu.qml:139
|
||||
#, kde-format
|
||||
msgid "Share Song"
|
||||
msgstr "Deli pesem"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:815
|
||||
#: contents/ui/MaximizedPlayerPage.qml:800
|
||||
#, kde-format
|
||||
msgid "Add to a local playlist"
|
||||
msgstr "Dodaj v lokalni seznam predvajanja"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:852
|
||||
#: contents/ui/MaximizedPlayerPage.qml:837
|
||||
#, kde-format
|
||||
msgid "Hide Queue"
|
||||
msgstr "Skrij čakalno vrsto"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:852
|
||||
#: contents/ui/MaximizedPlayerPage.qml:837
|
||||
#, kde-format
|
||||
msgid "Show Queue"
|
||||
msgstr "Prikazuj čakalno vrsto"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1084
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1329
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1069
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1314
|
||||
#, kde-format
|
||||
msgid "Remove Song"
|
||||
msgstr "Odstrani pesem"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1119
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1104
|
||||
#, kde-format
|
||||
msgid "Clear Queue"
|
||||
msgstr "Počisti čakalno vrsto"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1144
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1129
|
||||
#, kde-format
|
||||
msgid "Shuffle Queue"
|
||||
msgstr "Premešaj čakalno vrsto"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1177
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1162
|
||||
#, kde-format
|
||||
msgid "Upcoming Songs"
|
||||
msgstr "Prihajajoče pesmi"
|
||||
@@ -464,6 +464,16 @@ msgstr "Ni zadetkov iz prejšnjih iskanj"
|
||||
msgid "Share to"
|
||||
msgstr "Deli z"
|
||||
|
||||
#: contents/ui/ShareMenu.qml:49 contents/ui/ShareMenu.qml:103
|
||||
#, kde-format
|
||||
msgid "Copy Link"
|
||||
msgstr "Kopiraj povezavo"
|
||||
|
||||
#: contents/ui/ShareMenu.qml:54 contents/ui/ShareMenu.qml:108
|
||||
#, kde-format
|
||||
msgid "Link copied to clipboard"
|
||||
msgstr "Povezava skopirana na odložišče"
|
||||
|
||||
#: contents/ui/Sidebar.qml:108
|
||||
#, kde-format
|
||||
msgid "Home"
|
||||
@@ -504,50 +514,50 @@ msgstr "Odstrani iz zgodovine"
|
||||
msgid "Add to playlist"
|
||||
msgstr "Dodaj v seznam predvajanja"
|
||||
|
||||
#: main.cpp:54
|
||||
#: main.cpp:90
|
||||
#, kde-format
|
||||
msgctxt "YouTube Music is a music streaming service by Google"
|
||||
msgid "Stream music from YouTube Music"
|
||||
msgstr "Pretočna glasba iz storitve YouTube Music"
|
||||
|
||||
#: main.cpp:56
|
||||
#: main.cpp:92
|
||||
#, kde-format
|
||||
msgid "© 2021–2024 Jonah Brüchert, 2021–2024 KDE Community"
|
||||
msgstr "© 2021-2024 Jonah Brüchert, 2021-2024 Skupnost KDE"
|
||||
|
||||
#: main.cpp:57
|
||||
#: main.cpp:93
|
||||
#, kde-format
|
||||
msgid "Jonah Brüchert"
|
||||
msgstr "Jonah Brüchert"
|
||||
|
||||
#: main.cpp:57
|
||||
#: main.cpp:93
|
||||
#, kde-format
|
||||
msgid "Maintainer"
|
||||
msgstr "Vzdrževalec"
|
||||
|
||||
#: main.cpp:58
|
||||
#: main.cpp:94
|
||||
#, kde-format
|
||||
msgid "Mathis Brüchert"
|
||||
msgstr "Mathis Brüchert"
|
||||
|
||||
#: main.cpp:58
|
||||
#: main.cpp:94
|
||||
#, kde-format
|
||||
msgid "Designer"
|
||||
msgstr "Oblikovalec"
|
||||
|
||||
#: main.cpp:59
|
||||
#: main.cpp:95
|
||||
#, kde-format
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
msgid "Your names"
|
||||
msgstr "Matjaž Jeran"
|
||||
|
||||
#: main.cpp:59
|
||||
#: main.cpp:95
|
||||
#, kde-format
|
||||
msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr "[email protected]"
|
||||
|
||||
#: main.cpp:66
|
||||
#: main.cpp:102
|
||||
#, kde-format
|
||||
msgctxt "YouTube Music is a music streaming service by Google"
|
||||
msgid "Unofficial API for YouTube Music"
|
||||
@@ -558,22 +568,16 @@ msgstr "Neuradni API za Youtube Music"
|
||||
msgid "No description"
|
||||
msgstr "Ni opisa"
|
||||
|
||||
#: playlistimporter.cpp:68
|
||||
#: playlistimporter.cpp:62
|
||||
#, kde-format
|
||||
msgid "No title"
|
||||
msgstr "Ni naslova"
|
||||
|
||||
#: playlistimporter.cpp:71
|
||||
#: playlistimporter.cpp:64
|
||||
#, kde-format
|
||||
msgid "No album"
|
||||
msgstr "Ni albuma"
|
||||
|
||||
#~ msgid "Copy Link"
|
||||
#~ msgstr "Kopiraj povezavo"
|
||||
|
||||
#~ msgid "Link copied to clipboard"
|
||||
#~ msgstr "Povezava skopirana na odložišče"
|
||||
|
||||
#~ msgid "Remove Favorite"
|
||||
#~ msgstr "Odstrani priljubljeno"
|
||||
|
||||
|
||||
+40
-36
@@ -6,7 +6,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: audiotube\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2026-10-01 17:39+0000\n"
|
||||
"POT-Creation-Date: 2026-02-20 00:44+0000\n"
|
||||
"PO-Revision-Date: 2026-07-05 17:17+0200\n"
|
||||
"Last-Translator: Stefan Asserhäll <[email protected]>\n"
|
||||
"Language-Team: Swedish <[email protected]>\n"
|
||||
@@ -277,7 +277,7 @@ msgstr "Spellistan är fortfarande tom"
|
||||
msgid "Import Playlist"
|
||||
msgstr "Importera spellista"
|
||||
|
||||
#: contents/ui/Main.qml:160 main.cpp:52
|
||||
#: contents/ui/Main.qml:160 main.cpp:88
|
||||
#, kde-format
|
||||
msgid "AudioTube"
|
||||
msgstr "AudioTube"
|
||||
@@ -298,84 +298,84 @@ msgstr "Stäng maximerad spelare"
|
||||
msgid "No media playing"
|
||||
msgstr "Inga media spelar"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:553 contents/ui/SongMenu.qml:107
|
||||
#: contents/ui/MaximizedPlayerPage.qml:538 contents/ui/SongMenu.qml:107
|
||||
#, kde-format
|
||||
msgid "Remove from Favorites"
|
||||
msgstr "Ta bort från favoriter"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:553 contents/ui/SongMenu.qml:107
|
||||
#: contents/ui/MaximizedPlayerPage.qml:538 contents/ui/SongMenu.qml:107
|
||||
#, kde-format
|
||||
msgid "Add to Favorites"
|
||||
msgstr "Lägg till i favoriter"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:578
|
||||
#: contents/ui/MaximizedPlayerPage.qml:563
|
||||
#, kde-format
|
||||
msgid "Open Volume Drawer"
|
||||
msgstr "Öppna volymlåda"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:685
|
||||
#: contents/ui/MaximizedPlayerPage.qml:670
|
||||
#, kde-format
|
||||
msgid "Unmute Audio"
|
||||
msgstr "Ljud på"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:685
|
||||
#: contents/ui/MaximizedPlayerPage.qml:670
|
||||
#, kde-format
|
||||
msgid "Mute Audio"
|
||||
msgstr "Tysta ljud"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:724
|
||||
#: contents/ui/MaximizedPlayerPage.qml:709
|
||||
#, kde-format
|
||||
msgctxt "%1 is the audio volume in percent"
|
||||
msgid "%1%"
|
||||
msgstr "%1 %"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:754
|
||||
#: contents/ui/MaximizedPlayerPage.qml:739
|
||||
#, kde-format
|
||||
msgid "Hide Lyrics"
|
||||
msgstr "Dölj Sångtext"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:754
|
||||
#: contents/ui/MaximizedPlayerPage.qml:739
|
||||
#, kde-format
|
||||
msgid "Show Lyrics"
|
||||
msgstr "Visa sångtext"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:774 contents/ui/SongMenu.qml:139
|
||||
#: contents/ui/MaximizedPlayerPage.qml:759 contents/ui/SongMenu.qml:139
|
||||
#, kde-format
|
||||
msgid "Share Song"
|
||||
msgstr "Dela låt"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:815
|
||||
#: contents/ui/MaximizedPlayerPage.qml:800
|
||||
#, kde-format
|
||||
msgid "Add to a local playlist"
|
||||
msgstr "Lägg till i lokal spellista"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:852
|
||||
#: contents/ui/MaximizedPlayerPage.qml:837
|
||||
#, kde-format
|
||||
msgid "Hide Queue"
|
||||
msgstr "Dölj kö"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:852
|
||||
#: contents/ui/MaximizedPlayerPage.qml:837
|
||||
#, kde-format
|
||||
msgid "Show Queue"
|
||||
msgstr "Visa kö"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1084
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1329
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1069
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1314
|
||||
#, kde-format
|
||||
msgid "Remove Song"
|
||||
msgstr "Ta bort låt"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1119
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1104
|
||||
#, kde-format
|
||||
msgid "Clear Queue"
|
||||
msgstr "Rensa kö"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1144
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1129
|
||||
#, kde-format
|
||||
msgid "Shuffle Queue"
|
||||
msgstr "Blanda kö"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1177
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1162
|
||||
#, kde-format
|
||||
msgid "Upcoming Songs"
|
||||
msgstr "Kommande låtar"
|
||||
@@ -461,6 +461,16 @@ msgstr "Inga matchande tidigare sökningar"
|
||||
msgid "Share to"
|
||||
msgstr "Dela med"
|
||||
|
||||
#: contents/ui/ShareMenu.qml:49 contents/ui/ShareMenu.qml:103
|
||||
#, kde-format
|
||||
msgid "Copy Link"
|
||||
msgstr "Kopiera länk"
|
||||
|
||||
#: contents/ui/ShareMenu.qml:54 contents/ui/ShareMenu.qml:108
|
||||
#, kde-format
|
||||
msgid "Link copied to clipboard"
|
||||
msgstr "Länk kopierad till klippbordet"
|
||||
|
||||
#: contents/ui/Sidebar.qml:108
|
||||
#, kde-format
|
||||
msgid "Home"
|
||||
@@ -501,50 +511,50 @@ msgstr "Ta bort från historik"
|
||||
msgid "Add to playlist"
|
||||
msgstr "Lägg till i spellista"
|
||||
|
||||
#: main.cpp:54
|
||||
#: main.cpp:90
|
||||
#, kde-format
|
||||
msgctxt "YouTube Music is a music streaming service by Google"
|
||||
msgid "Stream music from YouTube Music"
|
||||
msgstr "Strömma musik från YouTube musik"
|
||||
|
||||
#: main.cpp:56
|
||||
#: main.cpp:92
|
||||
#, kde-format
|
||||
msgid "© 2021–2024 Jonah Brüchert, 2021–2024 KDE Community"
|
||||
msgstr "© 2021–2024 Jonah Brüchert, 2021–2024 KDE-gemenskapen"
|
||||
|
||||
#: main.cpp:57
|
||||
#: main.cpp:93
|
||||
#, kde-format
|
||||
msgid "Jonah Brüchert"
|
||||
msgstr "Jonah Brüchert"
|
||||
|
||||
#: main.cpp:57
|
||||
#: main.cpp:93
|
||||
#, kde-format
|
||||
msgid "Maintainer"
|
||||
msgstr "Underhåll"
|
||||
|
||||
#: main.cpp:58
|
||||
#: main.cpp:94
|
||||
#, kde-format
|
||||
msgid "Mathis Brüchert"
|
||||
msgstr "Mathis Brüchert"
|
||||
|
||||
#: main.cpp:58
|
||||
#: main.cpp:94
|
||||
#, kde-format
|
||||
msgid "Designer"
|
||||
msgstr "Designer"
|
||||
|
||||
#: main.cpp:59
|
||||
#: main.cpp:95
|
||||
#, kde-format
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
msgid "Your names"
|
||||
msgstr "Stefan Asserhäll"
|
||||
|
||||
#: main.cpp:59
|
||||
#: main.cpp:95
|
||||
#, kde-format
|
||||
msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr "[email protected]"
|
||||
|
||||
#: main.cpp:66
|
||||
#: main.cpp:102
|
||||
#, kde-format
|
||||
msgctxt "YouTube Music is a music streaming service by Google"
|
||||
msgid "Unofficial API for YouTube Music"
|
||||
@@ -555,22 +565,16 @@ msgstr "Inofficiellt programmeringsgränssnitt för YouTube musik"
|
||||
msgid "No description"
|
||||
msgstr "Ingen beskrivning"
|
||||
|
||||
#: playlistimporter.cpp:68
|
||||
#: playlistimporter.cpp:62
|
||||
#, kde-format
|
||||
msgid "No title"
|
||||
msgstr "Namnlös"
|
||||
|
||||
#: playlistimporter.cpp:71
|
||||
#: playlistimporter.cpp:64
|
||||
#, kde-format
|
||||
msgid "No album"
|
||||
msgstr "Inget album"
|
||||
|
||||
#~ msgid "Copy Link"
|
||||
#~ msgstr "Kopiera länk"
|
||||
|
||||
#~ msgid "Link copied to clipboard"
|
||||
#~ msgstr "Länk kopierad till klippbordet"
|
||||
|
||||
#~ msgid "Remove Favorite"
|
||||
#~ msgstr "Ta bort favorit"
|
||||
|
||||
|
||||
+40
-36
@@ -6,7 +6,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: audiotube\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2026-10-01 17:39+0000\n"
|
||||
"POT-Creation-Date: 2026-02-20 00:44+0000\n"
|
||||
"PO-Revision-Date: 2026-05-02 19:10+0300\n"
|
||||
"Last-Translator: Emir SARI <[email protected]>\n"
|
||||
"Language-Team: Turkish <[email protected]>\n"
|
||||
@@ -279,7 +279,7 @@ msgstr "Bu çalma listesi hâlâ boş"
|
||||
msgid "Import Playlist"
|
||||
msgstr "Çalma Listesi İçe Aktar"
|
||||
|
||||
#: contents/ui/Main.qml:160 main.cpp:52
|
||||
#: contents/ui/Main.qml:160 main.cpp:88
|
||||
#, kde-format
|
||||
msgid "AudioTube"
|
||||
msgstr "AudioTube"
|
||||
@@ -300,84 +300,84 @@ msgstr "Büyütülmüş Çaları Kapat"
|
||||
msgid "No media playing"
|
||||
msgstr "Ortam çalmıyor"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:553 contents/ui/SongMenu.qml:107
|
||||
#: contents/ui/MaximizedPlayerPage.qml:538 contents/ui/SongMenu.qml:107
|
||||
#, kde-format
|
||||
msgid "Remove from Favorites"
|
||||
msgstr "Favorilerden Kaldır"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:553 contents/ui/SongMenu.qml:107
|
||||
#: contents/ui/MaximizedPlayerPage.qml:538 contents/ui/SongMenu.qml:107
|
||||
#, kde-format
|
||||
msgid "Add to Favorites"
|
||||
msgstr "Favorilere Ekle"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:578
|
||||
#: contents/ui/MaximizedPlayerPage.qml:563
|
||||
#, kde-format
|
||||
msgid "Open Volume Drawer"
|
||||
msgstr "Ses Düzeyi Çekmecesini Aç"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:685
|
||||
#: contents/ui/MaximizedPlayerPage.qml:670
|
||||
#, kde-format
|
||||
msgid "Unmute Audio"
|
||||
msgstr "Sesi Aç"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:685
|
||||
#: contents/ui/MaximizedPlayerPage.qml:670
|
||||
#, kde-format
|
||||
msgid "Mute Audio"
|
||||
msgstr "Sesi Kapat"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:724
|
||||
#: contents/ui/MaximizedPlayerPage.qml:709
|
||||
#, kde-format
|
||||
msgctxt "%1 is the audio volume in percent"
|
||||
msgid "%1%"
|
||||
msgstr "%%1"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:754
|
||||
#: contents/ui/MaximizedPlayerPage.qml:739
|
||||
#, kde-format
|
||||
msgid "Hide Lyrics"
|
||||
msgstr "Şarkı Sözlerini Gizle"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:754
|
||||
#: contents/ui/MaximizedPlayerPage.qml:739
|
||||
#, kde-format
|
||||
msgid "Show Lyrics"
|
||||
msgstr "Şarkı Sözlerini Göster"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:774 contents/ui/SongMenu.qml:139
|
||||
#: contents/ui/MaximizedPlayerPage.qml:759 contents/ui/SongMenu.qml:139
|
||||
#, kde-format
|
||||
msgid "Share Song"
|
||||
msgstr "Şarkıyı Paylaş"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:815
|
||||
#: contents/ui/MaximizedPlayerPage.qml:800
|
||||
#, kde-format
|
||||
msgid "Add to a local playlist"
|
||||
msgstr "Yerel bir çalma listesine ekle"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:852
|
||||
#: contents/ui/MaximizedPlayerPage.qml:837
|
||||
#, kde-format
|
||||
msgid "Hide Queue"
|
||||
msgstr "Kuyruğu Gizle"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:852
|
||||
#: contents/ui/MaximizedPlayerPage.qml:837
|
||||
#, kde-format
|
||||
msgid "Show Queue"
|
||||
msgstr "Kuyruğu Göster"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1084
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1329
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1069
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1314
|
||||
#, kde-format
|
||||
msgid "Remove Song"
|
||||
msgstr "Şarkıyı Kaldır"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1119
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1104
|
||||
#, kde-format
|
||||
msgid "Clear Queue"
|
||||
msgstr "Kuyruğu Temizle"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1144
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1129
|
||||
#, kde-format
|
||||
msgid "Shuffle Queue"
|
||||
msgstr "Kuyruğu Karıştır"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1177
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1162
|
||||
#, kde-format
|
||||
msgid "Upcoming Songs"
|
||||
msgstr "Sıradaki Şarkılar"
|
||||
@@ -465,6 +465,16 @@ msgstr "Daha önceden yapılmış eşleşen arama yok"
|
||||
msgid "Share to"
|
||||
msgstr "Paylaşılacak konum"
|
||||
|
||||
#: contents/ui/ShareMenu.qml:49 contents/ui/ShareMenu.qml:103
|
||||
#, kde-format
|
||||
msgid "Copy Link"
|
||||
msgstr "Bağlantıyı Kopyala"
|
||||
|
||||
#: contents/ui/ShareMenu.qml:54 contents/ui/ShareMenu.qml:108
|
||||
#, kde-format
|
||||
msgid "Link copied to clipboard"
|
||||
msgstr "Bağlantı panoya kopyalandı"
|
||||
|
||||
#: contents/ui/Sidebar.qml:108
|
||||
#, kde-format
|
||||
msgid "Home"
|
||||
@@ -505,50 +515,50 @@ msgstr "Geçmişten Kaldır"
|
||||
msgid "Add to playlist"
|
||||
msgstr "Çalma listesine ekle"
|
||||
|
||||
#: main.cpp:54
|
||||
#: main.cpp:90
|
||||
#, kde-format
|
||||
msgctxt "YouTube Music is a music streaming service by Google"
|
||||
msgid "Stream music from YouTube Music"
|
||||
msgstr "YouTube Müzik’ten müzik çal"
|
||||
|
||||
#: main.cpp:56
|
||||
#: main.cpp:92
|
||||
#, kde-format
|
||||
msgid "© 2021–2024 Jonah Brüchert, 2021–2024 KDE Community"
|
||||
msgstr "© 2021–2024 Jonah Brüchert, 2021–2026 KDE Topluluğu"
|
||||
|
||||
#: main.cpp:57
|
||||
#: main.cpp:93
|
||||
#, kde-format
|
||||
msgid "Jonah Brüchert"
|
||||
msgstr "Jonah Brüchert"
|
||||
|
||||
#: main.cpp:57
|
||||
#: main.cpp:93
|
||||
#, kde-format
|
||||
msgid "Maintainer"
|
||||
msgstr "Bakımcı"
|
||||
|
||||
#: main.cpp:58
|
||||
#: main.cpp:94
|
||||
#, kde-format
|
||||
msgid "Mathis Brüchert"
|
||||
msgstr "Mathis Brüchert"
|
||||
|
||||
#: main.cpp:58
|
||||
#: main.cpp:94
|
||||
#, kde-format
|
||||
msgid "Designer"
|
||||
msgstr "Tasarımcı"
|
||||
|
||||
#: main.cpp:59
|
||||
#: main.cpp:95
|
||||
#, kde-format
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
msgid "Your names"
|
||||
msgstr "Emir SARI"
|
||||
|
||||
#: main.cpp:59
|
||||
#: main.cpp:95
|
||||
#, kde-format
|
||||
msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr "[email protected]"
|
||||
|
||||
#: main.cpp:66
|
||||
#: main.cpp:102
|
||||
#, kde-format
|
||||
msgctxt "YouTube Music is a music streaming service by Google"
|
||||
msgid "Unofficial API for YouTube Music"
|
||||
@@ -559,22 +569,16 @@ msgstr "YouTube Müzik için resmî olmayan API"
|
||||
msgid "No description"
|
||||
msgstr "Açıklama yok"
|
||||
|
||||
#: playlistimporter.cpp:68
|
||||
#: playlistimporter.cpp:62
|
||||
#, kde-format
|
||||
msgid "No title"
|
||||
msgstr "Başlık yok"
|
||||
|
||||
#: playlistimporter.cpp:71
|
||||
#: playlistimporter.cpp:64
|
||||
#, kde-format
|
||||
msgid "No album"
|
||||
msgstr "Albüm yok"
|
||||
|
||||
#~ msgid "Copy Link"
|
||||
#~ msgstr "Bağlantıyı Kopyala"
|
||||
|
||||
#~ msgid "Link copied to clipboard"
|
||||
#~ msgstr "Bağlantı panoya kopyalandı"
|
||||
|
||||
#~ msgid "Remove Favorite"
|
||||
#~ msgstr "Favoriyi Kaldır"
|
||||
|
||||
|
||||
+45
-38
@@ -7,8 +7,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: audiotube\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2026-10-01 17:39+0000\n"
|
||||
"PO-Revision-Date: 2026-09-23 06:56+0900\n"
|
||||
"POT-Creation-Date: 2026-02-20 00:44+0000\n"
|
||||
"PO-Revision-Date: 2026-05-28 17:12-0400\n"
|
||||
"Last-Translator: Abduqadir Abliz <[email protected]>\n"
|
||||
"Language-Team: Uyghur <[email protected]>\n"
|
||||
"Language: ug\n"
|
||||
@@ -276,10 +276,10 @@ msgstr ""
|
||||
msgid "Import Playlist"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/Main.qml:160 main.cpp:52
|
||||
#: contents/ui/Main.qml:160 main.cpp:88
|
||||
#, kde-format
|
||||
msgid "AudioTube"
|
||||
msgstr ""
|
||||
msgstr "AudioTube"
|
||||
|
||||
#: contents/ui/Main.qml:311
|
||||
#, kde-format
|
||||
@@ -297,84 +297,84 @@ msgstr ""
|
||||
msgid "No media playing"
|
||||
msgstr "ھېچقانداق ۋاسىتە ياڭرىمايۋاتىدۇ"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:553 contents/ui/SongMenu.qml:107
|
||||
#: contents/ui/MaximizedPlayerPage.qml:538 contents/ui/SongMenu.qml:107
|
||||
#, kde-format
|
||||
msgid "Remove from Favorites"
|
||||
msgstr "يىغقۇچتىن چىقىرىۋەت"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:553 contents/ui/SongMenu.qml:107
|
||||
#: contents/ui/MaximizedPlayerPage.qml:538 contents/ui/SongMenu.qml:107
|
||||
#, kde-format
|
||||
msgid "Add to Favorites"
|
||||
msgstr "يىغقۇچقا قوش"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:578
|
||||
#: contents/ui/MaximizedPlayerPage.qml:563
|
||||
#, kde-format
|
||||
msgid "Open Volume Drawer"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:685
|
||||
#: contents/ui/MaximizedPlayerPage.qml:670
|
||||
#, kde-format
|
||||
msgid "Unmute Audio"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:685
|
||||
#: contents/ui/MaximizedPlayerPage.qml:670
|
||||
#, kde-format
|
||||
msgid "Mute Audio"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:724
|
||||
#: contents/ui/MaximizedPlayerPage.qml:709
|
||||
#, kde-format
|
||||
msgctxt "%1 is the audio volume in percent"
|
||||
msgid "%1%"
|
||||
msgstr ""
|
||||
msgstr "%1%"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:754
|
||||
#: contents/ui/MaximizedPlayerPage.qml:739
|
||||
#, kde-format
|
||||
msgid "Hide Lyrics"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:754
|
||||
#: contents/ui/MaximizedPlayerPage.qml:739
|
||||
#, kde-format
|
||||
msgid "Show Lyrics"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:774 contents/ui/SongMenu.qml:139
|
||||
#: contents/ui/MaximizedPlayerPage.qml:759 contents/ui/SongMenu.qml:139
|
||||
#, kde-format
|
||||
msgid "Share Song"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:815
|
||||
#: contents/ui/MaximizedPlayerPage.qml:800
|
||||
#, kde-format
|
||||
msgid "Add to a local playlist"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:852
|
||||
#: contents/ui/MaximizedPlayerPage.qml:837
|
||||
#, kde-format
|
||||
msgid "Hide Queue"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:852
|
||||
#: contents/ui/MaximizedPlayerPage.qml:837
|
||||
#, kde-format
|
||||
msgid "Show Queue"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1084
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1329
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1069
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1314
|
||||
#, kde-format
|
||||
msgid "Remove Song"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1119
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1104
|
||||
#, kde-format
|
||||
msgid "Clear Queue"
|
||||
msgstr "قاتارىنى تازىلاش"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1144
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1129
|
||||
#, kde-format
|
||||
msgid "Shuffle Queue"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1177
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1162
|
||||
#, kde-format
|
||||
msgid "Upcoming Songs"
|
||||
msgstr ""
|
||||
@@ -459,6 +459,16 @@ msgstr ""
|
||||
msgid "Share to"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/ShareMenu.qml:49 contents/ui/ShareMenu.qml:103
|
||||
#, kde-format
|
||||
msgid "Copy Link"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/ShareMenu.qml:54 contents/ui/ShareMenu.qml:108
|
||||
#, kde-format
|
||||
msgid "Link copied to clipboard"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/Sidebar.qml:108
|
||||
#, kde-format
|
||||
msgid "Home"
|
||||
@@ -477,7 +487,7 @@ msgstr "ھەققىدە"
|
||||
#: contents/ui/Sidebar.qml:247
|
||||
#, kde-format
|
||||
msgid "Collapse Sidebar"
|
||||
msgstr "يان بالداقنى يىغ"
|
||||
msgstr ""
|
||||
|
||||
#: contents/ui/SongMenu.qml:88
|
||||
#, kde-format
|
||||
@@ -499,50 +509,50 @@ msgstr ""
|
||||
msgid "Add to playlist"
|
||||
msgstr ""
|
||||
|
||||
#: main.cpp:54
|
||||
#: main.cpp:90
|
||||
#, kde-format
|
||||
msgctxt "YouTube Music is a music streaming service by Google"
|
||||
msgid "Stream music from YouTube Music"
|
||||
msgstr ""
|
||||
|
||||
#: main.cpp:56
|
||||
#: main.cpp:92
|
||||
#, kde-format
|
||||
msgid "© 2021–2024 Jonah Brüchert, 2021–2024 KDE Community"
|
||||
msgstr ""
|
||||
|
||||
#: main.cpp:57
|
||||
#: main.cpp:93
|
||||
#, kde-format
|
||||
msgid "Jonah Brüchert"
|
||||
msgstr ""
|
||||
msgstr "Jonah Brüchert"
|
||||
|
||||
#: main.cpp:57
|
||||
#: main.cpp:93
|
||||
#, kde-format
|
||||
msgid "Maintainer"
|
||||
msgstr "ئاسرىغۇچى"
|
||||
|
||||
#: main.cpp:58
|
||||
#: main.cpp:94
|
||||
#, kde-format
|
||||
msgid "Mathis Brüchert"
|
||||
msgstr ""
|
||||
|
||||
#: main.cpp:58
|
||||
#: main.cpp:94
|
||||
#, kde-format
|
||||
msgid "Designer"
|
||||
msgstr ""
|
||||
|
||||
#: main.cpp:59
|
||||
#: main.cpp:95
|
||||
#, kde-format
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
msgid "Your names"
|
||||
msgstr "ئابدۇقادىر ئابلىز، غەيرەت كەنجى"
|
||||
|
||||
#: main.cpp:59
|
||||
#: main.cpp:95
|
||||
#, kde-format
|
||||
msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr "[email protected], [email protected]"
|
||||
|
||||
#: main.cpp:66
|
||||
#: main.cpp:102
|
||||
#, kde-format
|
||||
msgctxt "YouTube Music is a music streaming service by Google"
|
||||
msgid "Unofficial API for YouTube Music"
|
||||
@@ -553,15 +563,12 @@ msgstr ""
|
||||
msgid "No description"
|
||||
msgstr "چۈشەندۈرۈش يوق"
|
||||
|
||||
#: playlistimporter.cpp:68
|
||||
#: playlistimporter.cpp:62
|
||||
#, kde-format
|
||||
msgid "No title"
|
||||
msgstr "ماۋزۇ يوق"
|
||||
|
||||
#: playlistimporter.cpp:71
|
||||
#: playlistimporter.cpp:64
|
||||
#, kde-format
|
||||
msgid "No album"
|
||||
msgstr ""
|
||||
|
||||
#~ msgid "Copy Link"
|
||||
#~ msgstr "ئۇلانما كۆچۈر"
|
||||
+40
-36
@@ -6,7 +6,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2026-10-01 17:39+0000\n"
|
||||
"POT-Creation-Date: 2026-02-20 00:44+0000\n"
|
||||
"PO-Revision-Date: 2026-02-20 08:44+0200\n"
|
||||
"Last-Translator: Yuri Chornoivan <[email protected]>\n"
|
||||
"Language-Team: Ukrainian <[email protected]>\n"
|
||||
@@ -280,7 +280,7 @@ msgstr "Цей список відтворення все ще порожній"
|
||||
msgid "Import Playlist"
|
||||
msgstr "Імпортувати список відтворення"
|
||||
|
||||
#: contents/ui/Main.qml:160 main.cpp:52
|
||||
#: contents/ui/Main.qml:160 main.cpp:88
|
||||
#, kde-format
|
||||
msgid "AudioTube"
|
||||
msgstr "AudioTube"
|
||||
@@ -301,84 +301,84 @@ msgstr "Закрити максимізований програвач"
|
||||
msgid "No media playing"
|
||||
msgstr "Відтворення не відбувається"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:553 contents/ui/SongMenu.qml:107
|
||||
#: contents/ui/MaximizedPlayerPage.qml:538 contents/ui/SongMenu.qml:107
|
||||
#, kde-format
|
||||
msgid "Remove from Favorites"
|
||||
msgstr "Вилучити з улюблених"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:553 contents/ui/SongMenu.qml:107
|
||||
#: contents/ui/MaximizedPlayerPage.qml:538 contents/ui/SongMenu.qml:107
|
||||
#, kde-format
|
||||
msgid "Add to Favorites"
|
||||
msgstr "Додати до улюбленого"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:578
|
||||
#: contents/ui/MaximizedPlayerPage.qml:563
|
||||
#, kde-format
|
||||
msgid "Open Volume Drawer"
|
||||
msgstr "Відкрити висувну панель гучності"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:685
|
||||
#: contents/ui/MaximizedPlayerPage.qml:670
|
||||
#, kde-format
|
||||
msgid "Unmute Audio"
|
||||
msgstr "Увімкнути звук"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:685
|
||||
#: contents/ui/MaximizedPlayerPage.qml:670
|
||||
#, kde-format
|
||||
msgid "Mute Audio"
|
||||
msgstr "Вимкнути звук"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:724
|
||||
#: contents/ui/MaximizedPlayerPage.qml:709
|
||||
#, kde-format
|
||||
msgctxt "%1 is the audio volume in percent"
|
||||
msgid "%1%"
|
||||
msgstr "%1%"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:754
|
||||
#: contents/ui/MaximizedPlayerPage.qml:739
|
||||
#, kde-format
|
||||
msgid "Hide Lyrics"
|
||||
msgstr "Приховати текст"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:754
|
||||
#: contents/ui/MaximizedPlayerPage.qml:739
|
||||
#, kde-format
|
||||
msgid "Show Lyrics"
|
||||
msgstr "Показати текст"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:774 contents/ui/SongMenu.qml:139
|
||||
#: contents/ui/MaximizedPlayerPage.qml:759 contents/ui/SongMenu.qml:139
|
||||
#, kde-format
|
||||
msgid "Share Song"
|
||||
msgstr "Оприлюднити композицію"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:815
|
||||
#: contents/ui/MaximizedPlayerPage.qml:800
|
||||
#, kde-format
|
||||
msgid "Add to a local playlist"
|
||||
msgstr "Додати до локального списку відтворення"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:852
|
||||
#: contents/ui/MaximizedPlayerPage.qml:837
|
||||
#, kde-format
|
||||
msgid "Hide Queue"
|
||||
msgstr "Приховати чергу"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:852
|
||||
#: contents/ui/MaximizedPlayerPage.qml:837
|
||||
#, kde-format
|
||||
msgid "Show Queue"
|
||||
msgstr "Показати чергу"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1084
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1329
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1069
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1314
|
||||
#, kde-format
|
||||
msgid "Remove Song"
|
||||
msgstr "Вилучити композицію"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1119
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1104
|
||||
#, kde-format
|
||||
msgid "Clear Queue"
|
||||
msgstr "Спорожнити чергу"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1144
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1129
|
||||
#, kde-format
|
||||
msgid "Shuffle Queue"
|
||||
msgstr "Перемішати чергу"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1177
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1162
|
||||
#, kde-format
|
||||
msgid "Upcoming Songs"
|
||||
msgstr "Майбутні композиції"
|
||||
@@ -468,6 +468,16 @@ msgstr "Немає відповідних попередніх пошуків"
|
||||
msgid "Share to"
|
||||
msgstr "Оприлюднити"
|
||||
|
||||
#: contents/ui/ShareMenu.qml:49 contents/ui/ShareMenu.qml:103
|
||||
#, kde-format
|
||||
msgid "Copy Link"
|
||||
msgstr "Копіювати посилання"
|
||||
|
||||
#: contents/ui/ShareMenu.qml:54 contents/ui/ShareMenu.qml:108
|
||||
#, kde-format
|
||||
msgid "Link copied to clipboard"
|
||||
msgstr "Посилання скопійовано до буфера обміну"
|
||||
|
||||
#: contents/ui/Sidebar.qml:108
|
||||
#, kde-format
|
||||
msgid "Home"
|
||||
@@ -508,50 +518,50 @@ msgstr "Вилучити із журналу"
|
||||
msgid "Add to playlist"
|
||||
msgstr "Додати до списку відтворення"
|
||||
|
||||
#: main.cpp:54
|
||||
#: main.cpp:90
|
||||
#, kde-format
|
||||
msgctxt "YouTube Music is a music streaming service by Google"
|
||||
msgid "Stream music from YouTube Music"
|
||||
msgstr "Трансляція музики з YouTube Music"
|
||||
|
||||
#: main.cpp:56
|
||||
#: main.cpp:92
|
||||
#, kde-format
|
||||
msgid "© 2021–2024 Jonah Brüchert, 2021–2024 KDE Community"
|
||||
msgstr "© Jonah Brüchert, 2021–2024; KDE Community,2021–2024"
|
||||
|
||||
#: main.cpp:57
|
||||
#: main.cpp:93
|
||||
#, kde-format
|
||||
msgid "Jonah Brüchert"
|
||||
msgstr "Jonah Brüchert"
|
||||
|
||||
#: main.cpp:57
|
||||
#: main.cpp:93
|
||||
#, kde-format
|
||||
msgid "Maintainer"
|
||||
msgstr "Супровідник"
|
||||
|
||||
#: main.cpp:58
|
||||
#: main.cpp:94
|
||||
#, kde-format
|
||||
msgid "Mathis Brüchert"
|
||||
msgstr "Mathis Brüchert"
|
||||
|
||||
#: main.cpp:58
|
||||
#: main.cpp:94
|
||||
#, kde-format
|
||||
msgid "Designer"
|
||||
msgstr "Дизайнер"
|
||||
|
||||
#: main.cpp:59
|
||||
#: main.cpp:95
|
||||
#, kde-format
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
msgid "Your names"
|
||||
msgstr "Юрій Чорноіван"
|
||||
|
||||
#: main.cpp:59
|
||||
#: main.cpp:95
|
||||
#, kde-format
|
||||
msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr "[email protected]"
|
||||
|
||||
#: main.cpp:66
|
||||
#: main.cpp:102
|
||||
#, kde-format
|
||||
msgctxt "YouTube Music is a music streaming service by Google"
|
||||
msgid "Unofficial API for YouTube Music"
|
||||
@@ -562,22 +572,16 @@ msgstr "Неофіційний програмний інтерфейс до YouT
|
||||
msgid "No description"
|
||||
msgstr "Без опису"
|
||||
|
||||
#: playlistimporter.cpp:68
|
||||
#: playlistimporter.cpp:62
|
||||
#, kde-format
|
||||
msgid "No title"
|
||||
msgstr "Без заголовка"
|
||||
|
||||
#: playlistimporter.cpp:71
|
||||
#: playlistimporter.cpp:64
|
||||
#, kde-format
|
||||
msgid "No album"
|
||||
msgstr "Без альбому"
|
||||
|
||||
#~ msgid "Copy Link"
|
||||
#~ msgstr "Копіювати посилання"
|
||||
|
||||
#~ msgid "Link copied to clipboard"
|
||||
#~ msgstr "Посилання скопійовано до буфера обміну"
|
||||
|
||||
#~ msgid "Remove Favorite"
|
||||
#~ msgstr "Вилучити з улюблених"
|
||||
|
||||
|
||||
+42
-38
@@ -2,7 +2,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: kdeorg\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2026-10-01 17:39+0000\n"
|
||||
"POT-Creation-Date: 2026-02-20 00:44+0000\n"
|
||||
"PO-Revision-Date: 2024-04-22 15:58\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Chinese Simplified\n"
|
||||
@@ -14,8 +14,8 @@ msgstr ""
|
||||
"X-Crowdin-Project: kdeorg\n"
|
||||
"X-Crowdin-Project-ID: 269464\n"
|
||||
"X-Crowdin-Language: zh-CN\n"
|
||||
"X-Crowdin-File: /kf6-trunk/messages/audiotube/audiotube.pot\n"
|
||||
"X-Crowdin-File-ID: 48698\n"
|
||||
"X-Crowdin-File: /kf6-stable/messages/audiotube/audiotube.pot\n"
|
||||
"X-Crowdin-File-ID: 52528\n"
|
||||
|
||||
#: asyncytmusic.cpp:65
|
||||
#, kde-format
|
||||
@@ -276,7 +276,7 @@ msgstr "此播放列表未包含歌曲"
|
||||
msgid "Import Playlist"
|
||||
msgstr "导入播放列表"
|
||||
|
||||
#: contents/ui/Main.qml:160 main.cpp:52
|
||||
#: contents/ui/Main.qml:160 main.cpp:88
|
||||
#, kde-format
|
||||
msgid "AudioTube"
|
||||
msgstr "AudioTube"
|
||||
@@ -297,84 +297,84 @@ msgstr "关闭最大化播放器"
|
||||
msgid "No media playing"
|
||||
msgstr "没有正在播放的媒体"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:553 contents/ui/SongMenu.qml:107
|
||||
#: contents/ui/MaximizedPlayerPage.qml:538 contents/ui/SongMenu.qml:107
|
||||
#, kde-format
|
||||
msgid "Remove from Favorites"
|
||||
msgstr "从收藏夹中移除"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:553 contents/ui/SongMenu.qml:107
|
||||
#: contents/ui/MaximizedPlayerPage.qml:538 contents/ui/SongMenu.qml:107
|
||||
#, kde-format
|
||||
msgid "Add to Favorites"
|
||||
msgstr "添加到收藏夹"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:578
|
||||
#: contents/ui/MaximizedPlayerPage.qml:563
|
||||
#, kde-format
|
||||
msgid "Open Volume Drawer"
|
||||
msgstr "打开音量控制器"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:685
|
||||
#: contents/ui/MaximizedPlayerPage.qml:670
|
||||
#, kde-format
|
||||
msgid "Unmute Audio"
|
||||
msgstr "取消静音"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:685
|
||||
#: contents/ui/MaximizedPlayerPage.qml:670
|
||||
#, kde-format
|
||||
msgid "Mute Audio"
|
||||
msgstr "静音"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:724
|
||||
#: contents/ui/MaximizedPlayerPage.qml:709
|
||||
#, kde-format
|
||||
msgctxt "%1 is the audio volume in percent"
|
||||
msgid "%1%"
|
||||
msgstr "%1%"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:754
|
||||
#: contents/ui/MaximizedPlayerPage.qml:739
|
||||
#, kde-format
|
||||
msgid "Hide Lyrics"
|
||||
msgstr "隐藏歌词"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:754
|
||||
#: contents/ui/MaximizedPlayerPage.qml:739
|
||||
#, kde-format
|
||||
msgid "Show Lyrics"
|
||||
msgstr "显示歌词"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:774 contents/ui/SongMenu.qml:139
|
||||
#: contents/ui/MaximizedPlayerPage.qml:759 contents/ui/SongMenu.qml:139
|
||||
#, kde-format
|
||||
msgid "Share Song"
|
||||
msgstr "分享歌曲"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:815
|
||||
#: contents/ui/MaximizedPlayerPage.qml:800
|
||||
#, kde-format
|
||||
msgid "Add to a local playlist"
|
||||
msgstr "添加到本地播放列表"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:852
|
||||
#: contents/ui/MaximizedPlayerPage.qml:837
|
||||
#, kde-format
|
||||
msgid "Hide Queue"
|
||||
msgstr "隐藏队列"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:852
|
||||
#: contents/ui/MaximizedPlayerPage.qml:837
|
||||
#, kde-format
|
||||
msgid "Show Queue"
|
||||
msgstr "显示队列"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1084
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1329
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1069
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1314
|
||||
#, kde-format
|
||||
msgid "Remove Song"
|
||||
msgstr "移除歌曲"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1119
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1104
|
||||
#, kde-format
|
||||
msgid "Clear Queue"
|
||||
msgstr "清空队列"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1144
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1129
|
||||
#, kde-format
|
||||
msgid "Shuffle Queue"
|
||||
msgstr "随机队列"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1177
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1162
|
||||
#, kde-format
|
||||
msgid "Upcoming Songs"
|
||||
msgstr "即将播放的歌曲"
|
||||
@@ -459,6 +459,16 @@ msgstr "没有匹配的历史搜索"
|
||||
msgid "Share to"
|
||||
msgstr "分享到"
|
||||
|
||||
#: contents/ui/ShareMenu.qml:49 contents/ui/ShareMenu.qml:103
|
||||
#, kde-format
|
||||
msgid "Copy Link"
|
||||
msgstr "复制链接"
|
||||
|
||||
#: contents/ui/ShareMenu.qml:54 contents/ui/ShareMenu.qml:108
|
||||
#, kde-format
|
||||
msgid "Link copied to clipboard"
|
||||
msgstr "链接已复制到剪贴板"
|
||||
|
||||
#: contents/ui/Sidebar.qml:108
|
||||
#, kde-format
|
||||
msgid "Home"
|
||||
@@ -499,50 +509,50 @@ msgstr "从历史记录中删除"
|
||||
msgid "Add to playlist"
|
||||
msgstr "添加到播放列表"
|
||||
|
||||
#: main.cpp:54
|
||||
#: main.cpp:90
|
||||
#, kde-format
|
||||
msgctxt "YouTube Music is a music streaming service by Google"
|
||||
msgid "Stream music from YouTube Music"
|
||||
msgstr "从 YouTube Music 串流播放音乐"
|
||||
|
||||
#: main.cpp:56
|
||||
#: main.cpp:92
|
||||
#, kde-format
|
||||
msgid "© 2021–2024 Jonah Brüchert, 2021–2024 KDE Community"
|
||||
msgstr "© 2021–2024 Jonah Brüchert, 2021–2024 KDE Community"
|
||||
|
||||
#: main.cpp:57
|
||||
#: main.cpp:93
|
||||
#, kde-format
|
||||
msgid "Jonah Brüchert"
|
||||
msgstr "Jonah Brüchert"
|
||||
|
||||
#: main.cpp:57
|
||||
#: main.cpp:93
|
||||
#, kde-format
|
||||
msgid "Maintainer"
|
||||
msgstr "维护人员"
|
||||
|
||||
#: main.cpp:58
|
||||
#: main.cpp:94
|
||||
#, kde-format
|
||||
msgid "Mathis Brüchert"
|
||||
msgstr "Mathis Brüchert"
|
||||
|
||||
#: main.cpp:58
|
||||
#: main.cpp:94
|
||||
#, kde-format
|
||||
msgid "Designer"
|
||||
msgstr "设计师"
|
||||
|
||||
#: main.cpp:59
|
||||
#: main.cpp:95
|
||||
#, kde-format
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
msgid "Your names"
|
||||
msgstr "Qi Binye, Tyson Tan"
|
||||
|
||||
#: main.cpp:59
|
||||
#: main.cpp:95
|
||||
#, kde-format
|
||||
msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr "[email protected], [email protected]"
|
||||
|
||||
#: main.cpp:66
|
||||
#: main.cpp:102
|
||||
#, kde-format
|
||||
msgctxt "YouTube Music is a music streaming service by Google"
|
||||
msgid "Unofficial API for YouTube Music"
|
||||
@@ -553,18 +563,12 @@ msgstr "YouTube Music 的非官方 API"
|
||||
msgid "No description"
|
||||
msgstr "无描述"
|
||||
|
||||
#: playlistimporter.cpp:68
|
||||
#: playlistimporter.cpp:62
|
||||
#, kde-format
|
||||
msgid "No title"
|
||||
msgstr "无标题"
|
||||
|
||||
#: playlistimporter.cpp:71
|
||||
#: playlistimporter.cpp:64
|
||||
#, kde-format
|
||||
msgid "No album"
|
||||
msgstr "无专辑"
|
||||
|
||||
#~ msgid "Copy Link"
|
||||
#~ msgstr "复制链接"
|
||||
|
||||
#~ msgid "Link copied to clipboard"
|
||||
#~ msgstr "链接已复制到剪贴板"
|
||||
+40
-36
@@ -9,7 +9,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: audiotube\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2026-10-01 17:39+0000\n"
|
||||
"POT-Creation-Date: 2026-02-20 00:44+0000\n"
|
||||
"PO-Revision-Date: 2026-03-02 04:56+0900\n"
|
||||
"Last-Translator: Kisaragi Hiu <[email protected]>\n"
|
||||
"Language-Team: Traditional Chinese <[email protected]>\n"
|
||||
@@ -279,7 +279,7 @@ msgstr "尚未加入歌曲到此播放清單"
|
||||
msgid "Import Playlist"
|
||||
msgstr "匯入播放清單"
|
||||
|
||||
#: contents/ui/Main.qml:160 main.cpp:52
|
||||
#: contents/ui/Main.qml:160 main.cpp:88
|
||||
#, kde-format
|
||||
msgid "AudioTube"
|
||||
msgstr "AudioTube"
|
||||
@@ -300,84 +300,84 @@ msgstr "關閉最大化播放器"
|
||||
msgid "No media playing"
|
||||
msgstr "沒有播放任何媒體"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:553 contents/ui/SongMenu.qml:107
|
||||
#: contents/ui/MaximizedPlayerPage.qml:538 contents/ui/SongMenu.qml:107
|
||||
#, kde-format
|
||||
msgid "Remove from Favorites"
|
||||
msgstr "從最愛中移除"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:553 contents/ui/SongMenu.qml:107
|
||||
#: contents/ui/MaximizedPlayerPage.qml:538 contents/ui/SongMenu.qml:107
|
||||
#, kde-format
|
||||
msgid "Add to Favorites"
|
||||
msgstr "加入最愛"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:578
|
||||
#: contents/ui/MaximizedPlayerPage.qml:563
|
||||
#, kde-format
|
||||
msgid "Open Volume Drawer"
|
||||
msgstr "開啟音量側邊欄"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:685
|
||||
#: contents/ui/MaximizedPlayerPage.qml:670
|
||||
#, kde-format
|
||||
msgid "Unmute Audio"
|
||||
msgstr "取消靜音"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:685
|
||||
#: contents/ui/MaximizedPlayerPage.qml:670
|
||||
#, kde-format
|
||||
msgid "Mute Audio"
|
||||
msgstr "靜音"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:724
|
||||
#: contents/ui/MaximizedPlayerPage.qml:709
|
||||
#, kde-format
|
||||
msgctxt "%1 is the audio volume in percent"
|
||||
msgid "%1%"
|
||||
msgstr "%1%"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:754
|
||||
#: contents/ui/MaximizedPlayerPage.qml:739
|
||||
#, kde-format
|
||||
msgid "Hide Lyrics"
|
||||
msgstr "隱藏歌詞"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:754
|
||||
#: contents/ui/MaximizedPlayerPage.qml:739
|
||||
#, kde-format
|
||||
msgid "Show Lyrics"
|
||||
msgstr "顯示歌詞"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:774 contents/ui/SongMenu.qml:139
|
||||
#: contents/ui/MaximizedPlayerPage.qml:759 contents/ui/SongMenu.qml:139
|
||||
#, kde-format
|
||||
msgid "Share Song"
|
||||
msgstr "分享歌曲"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:815
|
||||
#: contents/ui/MaximizedPlayerPage.qml:800
|
||||
#, kde-format
|
||||
msgid "Add to a local playlist"
|
||||
msgstr "加入至本地播放清單"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:852
|
||||
#: contents/ui/MaximizedPlayerPage.qml:837
|
||||
#, kde-format
|
||||
msgid "Hide Queue"
|
||||
msgstr "隱藏待播清單"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:852
|
||||
#: contents/ui/MaximizedPlayerPage.qml:837
|
||||
#, kde-format
|
||||
msgid "Show Queue"
|
||||
msgstr "顯示待播清單"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1084
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1329
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1069
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1314
|
||||
#, kde-format
|
||||
msgid "Remove Song"
|
||||
msgstr "移除歌曲"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1119
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1104
|
||||
#, kde-format
|
||||
msgid "Clear Queue"
|
||||
msgstr "清除待播清單"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1144
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1129
|
||||
#, kde-format
|
||||
msgid "Shuffle Queue"
|
||||
msgstr "隨機排序待播清單"
|
||||
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1177
|
||||
#: contents/ui/MaximizedPlayerPage.qml:1162
|
||||
#, kde-format
|
||||
msgid "Upcoming Songs"
|
||||
msgstr "接下來的歌曲"
|
||||
@@ -462,6 +462,16 @@ msgstr "沒有符合的先前的搜尋"
|
||||
msgid "Share to"
|
||||
msgstr "分享至"
|
||||
|
||||
#: contents/ui/ShareMenu.qml:49 contents/ui/ShareMenu.qml:103
|
||||
#, kde-format
|
||||
msgid "Copy Link"
|
||||
msgstr "複製連結"
|
||||
|
||||
#: contents/ui/ShareMenu.qml:54 contents/ui/ShareMenu.qml:108
|
||||
#, kde-format
|
||||
msgid "Link copied to clipboard"
|
||||
msgstr "連結已複製到剪貼簿"
|
||||
|
||||
#: contents/ui/Sidebar.qml:108
|
||||
#, kde-format
|
||||
msgid "Home"
|
||||
@@ -502,50 +512,50 @@ msgstr "從履歷中移除"
|
||||
msgid "Add to playlist"
|
||||
msgstr "加入至播放清單"
|
||||
|
||||
#: main.cpp:54
|
||||
#: main.cpp:90
|
||||
#, kde-format
|
||||
msgctxt "YouTube Music is a music streaming service by Google"
|
||||
msgid "Stream music from YouTube Music"
|
||||
msgstr "從 YouTube Music 串流播放音樂"
|
||||
|
||||
#: main.cpp:56
|
||||
#: main.cpp:92
|
||||
#, kde-format
|
||||
msgid "© 2021–2024 Jonah Brüchert, 2021–2024 KDE Community"
|
||||
msgstr "© 2021–2024 Jonah Brüchert, 2021–2024 KDE 社群"
|
||||
|
||||
#: main.cpp:57
|
||||
#: main.cpp:93
|
||||
#, kde-format
|
||||
msgid "Jonah Brüchert"
|
||||
msgstr "Jonah Brüchert"
|
||||
|
||||
#: main.cpp:57
|
||||
#: main.cpp:93
|
||||
#, kde-format
|
||||
msgid "Maintainer"
|
||||
msgstr "維護者"
|
||||
|
||||
#: main.cpp:58
|
||||
#: main.cpp:94
|
||||
#, kde-format
|
||||
msgid "Mathis Brüchert"
|
||||
msgstr "Mathis Brüchert"
|
||||
|
||||
#: main.cpp:58
|
||||
#: main.cpp:94
|
||||
#, kde-format
|
||||
msgid "Designer"
|
||||
msgstr "設計師"
|
||||
|
||||
#: main.cpp:59
|
||||
#: main.cpp:95
|
||||
#, kde-format
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
msgid "Your names"
|
||||
msgstr "Kisaragi Hiu"
|
||||
|
||||
#: main.cpp:59
|
||||
#: main.cpp:95
|
||||
#, kde-format
|
||||
msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr "[email protected]"
|
||||
|
||||
#: main.cpp:66
|
||||
#: main.cpp:102
|
||||
#, kde-format
|
||||
msgctxt "YouTube Music is a music streaming service by Google"
|
||||
msgid "Unofficial API for YouTube Music"
|
||||
@@ -556,22 +566,16 @@ msgstr "YouTube Music 非官方 API"
|
||||
msgid "No description"
|
||||
msgstr "無描述"
|
||||
|
||||
#: playlistimporter.cpp:68
|
||||
#: playlistimporter.cpp:62
|
||||
#, kde-format
|
||||
msgid "No title"
|
||||
msgstr "無標題"
|
||||
|
||||
#: playlistimporter.cpp:71
|
||||
#: playlistimporter.cpp:64
|
||||
#, kde-format
|
||||
msgid "No album"
|
||||
msgstr "無專輯"
|
||||
|
||||
#~ msgid "Copy Link"
|
||||
#~ msgstr "複製連結"
|
||||
|
||||
#~ msgid "Link copied to clipboard"
|
||||
#~ msgstr "連結已複製到剪貼簿"
|
||||
|
||||
#~ msgid "Remove Favorite"
|
||||
#~ msgstr "移除最愛"
|
||||
|
||||
|
||||
+1
-1
@@ -3,5 +3,5 @@
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
|
||||
|
||||
ytmusicapi==1.12.3
|
||||
ytmusicapi==v1.12.1
|
||||
yt-dlp
|
||||
@@ -39,10 +39,6 @@ add_executable(audiotube
|
||||
clipboard.cpp
|
||||
lyricsmodel.cpp
|
||||
foreigntypes.h
|
||||
trayicon.cpp
|
||||
cast/castconnection.cpp
|
||||
cast/castdiscovery.cpp
|
||||
cast/castmanager.cpp
|
||||
)
|
||||
|
||||
kconfig_target_kcfg_file(audiotube
|
||||
@@ -92,18 +88,14 @@ ecm_add_qml_module(audiotube URI org.kde.audiotube
|
||||
contents/ui/MoodPage.qml
|
||||
contents/ui/components/ActionButton.qml
|
||||
contents/ui/components/DoubleActionButton.qml
|
||||
contents/ui/CastButton.qml
|
||||
RESOURCES
|
||||
migrations/2022-05-20-194850_init/down.sql
|
||||
migrations/2022-05-20-194850_init/up.sql
|
||||
migrations/2022-05-25-212054_playlists/down.sql
|
||||
migrations/2022-05-25-212054_playlists/up.sql
|
||||
migrations/2026-09-22-211215-0000_ids//up.sql
|
||||
resources/favourites_placeholder.svg
|
||||
resources/played_placeholder.svg
|
||||
resources/playlist_placeholder.svg
|
||||
resources/cast-symbolic.svg
|
||||
resources/org.kde.audiotube-symbolic.svg
|
||||
)
|
||||
|
||||
target_link_libraries(audiotube PRIVATE
|
||||
@@ -116,26 +108,18 @@ target_link_libraries(audiotube PRIVATE
|
||||
Qt::Widgets
|
||||
Qt::Concurrent
|
||||
Qt::Multimedia
|
||||
Qt::Network
|
||||
Qt::DBus
|
||||
KF6::I18n
|
||||
KF6::I18nQml
|
||||
KF6::ConfigGui
|
||||
KF6::CoreAddons
|
||||
KF6::Crash
|
||||
KF6::WindowSystem
|
||||
KF6::IconThemes
|
||||
KF6::StatusNotifierItem
|
||||
FutureSQL6::FutureSQL
|
||||
QCoro6::Core
|
||||
qt-mpris
|
||||
ytm
|
||||
KirigamiApp
|
||||
)
|
||||
|
||||
# The QML type registration includes headers by file name
|
||||
target_include_directories(audiotube PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/cast)
|
||||
|
||||
target_compile_definitions(audiotube PRIVATE
|
||||
-DAUDIOTUBE_VERSION_STRING="${RELEASE_SERVICE_VERSION}"
|
||||
-DQT_NO_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING)
|
||||
|
||||
@@ -1,276 +0,0 @@
|
||||
// SPDX-FileCopyrightText: 2026 AudioTube contributors
|
||||
//
|
||||
// SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
|
||||
|
||||
#include "castconnection.h"
|
||||
|
||||
#include <QJsonDocument>
|
||||
#include <QtEndian>
|
||||
|
||||
using namespace Qt::StringLiterals;
|
||||
|
||||
namespace
|
||||
{
|
||||
constexpr int HEARTBEAT_INTERVAL_MS = 5000;
|
||||
constexpr int WATCHDOG_TIMEOUT_MS = 20000;
|
||||
constexpr quint32 MAX_FRAME_SIZE = 1024 * 1024;
|
||||
|
||||
const QString NS_CONNECTION = u"urn:x-cast:com.google.cast.tp.connection"_s;
|
||||
const QString NS_HEARTBEAT = u"urn:x-cast:com.google.cast.tp.heartbeat"_s;
|
||||
|
||||
// Hand rolled encoding of the tiny subset of cast_channel.proto (CastMessage) that we need.
|
||||
void appendVarint(QByteArray &out, quint64 value)
|
||||
{
|
||||
while (value >= 0x80) {
|
||||
out.append(char((value & 0x7f) | 0x80));
|
||||
value >>= 7;
|
||||
}
|
||||
out.append(char(value));
|
||||
}
|
||||
|
||||
void appendBytes(QByteArray &out, int field, const QByteArray &bytes)
|
||||
{
|
||||
appendVarint(out, (field << 3) | 2);
|
||||
appendVarint(out, bytes.size());
|
||||
out.append(bytes);
|
||||
}
|
||||
|
||||
bool readVarint(const QByteArray &data, int &pos, quint64 &value)
|
||||
{
|
||||
value = 0;
|
||||
for (int shift = 0; shift < 64 && pos < data.size(); shift += 7) {
|
||||
const auto byte = quint8(data.at(pos++));
|
||||
value |= quint64(byte & 0x7f) << shift;
|
||||
if (!(byte & 0x80)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
struct DecodedMessage {
|
||||
QString source;
|
||||
QString destination;
|
||||
QString ns;
|
||||
QByteArray payload;
|
||||
bool isString = false;
|
||||
};
|
||||
|
||||
std::optional<DecodedMessage> decode(const QByteArray &data)
|
||||
{
|
||||
DecodedMessage message;
|
||||
int pos = 0;
|
||||
while (pos < data.size()) {
|
||||
quint64 tag;
|
||||
if (!readVarint(data, pos, tag)) {
|
||||
return std::nullopt;
|
||||
}
|
||||
const int field = int(tag >> 3);
|
||||
const int wire = int(tag & 7);
|
||||
|
||||
switch (wire) {
|
||||
case 0: {
|
||||
quint64 value;
|
||||
if (!readVarint(data, pos, value)) {
|
||||
return std::nullopt;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 1:
|
||||
pos += 8;
|
||||
break;
|
||||
case 5:
|
||||
pos += 4;
|
||||
break;
|
||||
case 2: {
|
||||
quint64 length;
|
||||
if (!readVarint(data, pos, length) || length > quint64(data.size() - pos)) {
|
||||
return std::nullopt;
|
||||
}
|
||||
const auto bytes = data.mid(pos, int(length));
|
||||
pos += int(length);
|
||||
switch (field) {
|
||||
case 2:
|
||||
message.source = QString::fromUtf8(bytes);
|
||||
break;
|
||||
case 3:
|
||||
message.destination = QString::fromUtf8(bytes);
|
||||
break;
|
||||
case 4:
|
||||
message.ns = QString::fromUtf8(bytes);
|
||||
break;
|
||||
case 6:
|
||||
message.payload = bytes;
|
||||
message.isString = true;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
default:
|
||||
return std::nullopt;
|
||||
}
|
||||
}
|
||||
return message;
|
||||
}
|
||||
}
|
||||
|
||||
CastConnection::CastConnection(QObject *parent)
|
||||
: QObject(parent)
|
||||
{
|
||||
// Cast devices present a self-signed certificate; like every other sender implementation we don't verify it.
|
||||
m_socket.setPeerVerifyMode(QSslSocket::VerifyNone);
|
||||
|
||||
m_heartbeat.setInterval(HEARTBEAT_INTERVAL_MS);
|
||||
m_watchdog.setInterval(WATCHDOG_TIMEOUT_MS);
|
||||
m_watchdog.setSingleShot(true);
|
||||
|
||||
connect(&m_socket, &QSslSocket::encrypted, this, [this] {
|
||||
m_open = true;
|
||||
m_watchdog.start();
|
||||
m_heartbeat.start();
|
||||
send(NS_CONNECTION, QString::fromLatin1(PLATFORM_RECEIVER), QJsonObject{{u"type"_s, u"CONNECT"_s}});
|
||||
Q_EMIT opened();
|
||||
});
|
||||
connect(&m_socket, &QSslSocket::sslErrors, this, [this](const QList<QSslError> &) {
|
||||
m_socket.ignoreSslErrors();
|
||||
});
|
||||
connect(&m_socket, &QSslSocket::readyRead, this, &CastConnection::readData);
|
||||
connect(&m_socket, &QSslSocket::errorOccurred, this, [this] {
|
||||
shutdown(m_socket.errorString());
|
||||
});
|
||||
connect(&m_socket, &QSslSocket::disconnected, this, [this] {
|
||||
shutdown(tr("Connection lost"));
|
||||
});
|
||||
connect(&m_heartbeat, &QTimer::timeout, this, [this] {
|
||||
send(NS_HEARTBEAT, QString::fromLatin1(PLATFORM_RECEIVER), QJsonObject{{u"type"_s, u"PING"_s}});
|
||||
});
|
||||
connect(&m_watchdog, &QTimer::timeout, this, [this] {
|
||||
shutdown(tr("The device stopped responding"));
|
||||
});
|
||||
}
|
||||
|
||||
void CastConnection::open(const QHostAddress &address, quint16 port)
|
||||
{
|
||||
if (!QSslSocket::supportsSsl()) {
|
||||
// Deliver asynchronously so that callers can connect to the signal after calling open().
|
||||
QTimer::singleShot(0, this, [this] {
|
||||
Q_EMIT closed(tr("TLS support is not available"));
|
||||
});
|
||||
return;
|
||||
}
|
||||
m_buffer.clear();
|
||||
m_socket.connectToHostEncrypted(address.toString(), port);
|
||||
m_watchdog.start(); // also covers a hanging connection attempt
|
||||
}
|
||||
|
||||
void CastConnection::close()
|
||||
{
|
||||
if (m_socket.state() == QAbstractSocket::UnconnectedState && !m_open) {
|
||||
return;
|
||||
}
|
||||
shutdown(QString());
|
||||
}
|
||||
|
||||
bool CastConnection::isOpen() const
|
||||
{
|
||||
return m_open;
|
||||
}
|
||||
|
||||
void CastConnection::send(const QString &ns, const QString &destination, const QJsonObject &payload)
|
||||
{
|
||||
sendRaw(ns, QString::fromLatin1(PLATFORM_SENDER), destination, QJsonDocument(payload).toJson(QJsonDocument::Compact));
|
||||
}
|
||||
|
||||
void CastConnection::sendRaw(const QString &ns, const QString &source, const QString &destination, const QByteArray &json)
|
||||
{
|
||||
if (m_socket.state() != QAbstractSocket::ConnectedState) {
|
||||
return;
|
||||
}
|
||||
|
||||
QByteArray message;
|
||||
appendVarint(message, (1 << 3) | 0); // protocol_version = CASTV2_1_0
|
||||
appendVarint(message, 0);
|
||||
appendBytes(message, 2, source.toUtf8());
|
||||
appendBytes(message, 3, destination.toUtf8());
|
||||
appendBytes(message, 4, ns.toUtf8());
|
||||
appendVarint(message, (5 << 3) | 0); // payload_type = STRING
|
||||
appendVarint(message, 0);
|
||||
appendBytes(message, 6, json);
|
||||
|
||||
QByteArray frame(4, '\0');
|
||||
qToBigEndian<quint32>(quint32(message.size()), frame.data());
|
||||
frame.append(message);
|
||||
m_socket.write(frame);
|
||||
}
|
||||
|
||||
void CastConnection::readData()
|
||||
{
|
||||
m_buffer.append(m_socket.readAll());
|
||||
|
||||
while (m_buffer.size() >= 4) {
|
||||
const auto length = qFromBigEndian<quint32>(m_buffer.constData());
|
||||
if (length > MAX_FRAME_SIZE) {
|
||||
shutdown(tr("Received an invalid message from the device"));
|
||||
return;
|
||||
}
|
||||
if (quint32(m_buffer.size()) < 4 + length) {
|
||||
return;
|
||||
}
|
||||
const auto frame = m_buffer.mid(4, int(length));
|
||||
m_buffer.remove(0, int(4 + length));
|
||||
handleFrame(frame);
|
||||
if (!m_open) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void CastConnection::handleFrame(const QByteArray &frame)
|
||||
{
|
||||
m_watchdog.start();
|
||||
|
||||
const auto message = decode(frame);
|
||||
if (!message || !message->isString) {
|
||||
return;
|
||||
}
|
||||
|
||||
QJsonParseError error;
|
||||
const auto doc = QJsonDocument::fromJson(message->payload, &error);
|
||||
if (error.error != QJsonParseError::NoError || !doc.isObject()) {
|
||||
return;
|
||||
}
|
||||
const auto payload = doc.object();
|
||||
|
||||
if (message->ns == NS_HEARTBEAT) {
|
||||
if (payload.value(u"type"_s).toString() == "PING"_L1) {
|
||||
send(NS_HEARTBEAT, message->source, QJsonObject{{u"type"_s, u"PONG"_s}});
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
Q_EMIT messageReceived(message->ns, message->source, payload);
|
||||
}
|
||||
|
||||
void CastConnection::shutdown(const QString &reason)
|
||||
{
|
||||
const bool wasActive = m_open || m_socket.state() != QAbstractSocket::UnconnectedState;
|
||||
m_heartbeat.stop();
|
||||
m_watchdog.stop();
|
||||
m_open = false;
|
||||
|
||||
// Avoid re-entering through the socket's own signals.
|
||||
m_socket.blockSignals(true);
|
||||
if (m_socket.state() == QAbstractSocket::ConnectedState) {
|
||||
send(NS_CONNECTION, QString::fromLatin1(PLATFORM_RECEIVER), QJsonObject{{u"type"_s, u"CLOSE"_s}});
|
||||
m_socket.flush();
|
||||
}
|
||||
m_socket.abort();
|
||||
m_socket.blockSignals(false);
|
||||
m_buffer.clear();
|
||||
|
||||
if (wasActive) {
|
||||
Q_EMIT closed(reason);
|
||||
}
|
||||
}
|
||||
@@ -1,50 +0,0 @@
|
||||
// SPDX-FileCopyrightText: 2026 AudioTube contributors
|
||||
//
|
||||
// SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <QHostAddress>
|
||||
#include <QJsonObject>
|
||||
#include <QObject>
|
||||
#include <QSslSocket>
|
||||
#include <QTimer>
|
||||
|
||||
/**
|
||||
* A CASTV2 channel to one Google Cast device: TLS socket, length-prefixed protobuf framing,
|
||||
* virtual connection handshake and heartbeat.
|
||||
*/
|
||||
class CastConnection : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
static constexpr auto PLATFORM_SENDER = "sender-0";
|
||||
static constexpr auto PLATFORM_RECEIVER = "receiver-0";
|
||||
|
||||
explicit CastConnection(QObject *parent = nullptr);
|
||||
|
||||
void open(const QHostAddress &address, quint16 port);
|
||||
void close();
|
||||
bool isOpen() const;
|
||||
|
||||
void send(const QString &ns, const QString &destination, const QJsonObject &payload);
|
||||
|
||||
/// Emitted once the TLS handshake and the platform virtual connection are established.
|
||||
Q_SIGNAL void opened();
|
||||
/// Emitted when the connection is lost, with a human readable reason (empty when closed by us).
|
||||
Q_SIGNAL void closed(const QString &reason);
|
||||
Q_SIGNAL void messageReceived(const QString &ns, const QString &source, const QJsonObject &payload);
|
||||
|
||||
private:
|
||||
void sendRaw(const QString &ns, const QString &source, const QString &destination, const QByteArray &json);
|
||||
void readData();
|
||||
void handleFrame(const QByteArray &frame);
|
||||
void shutdown(const QString &reason);
|
||||
|
||||
QSslSocket m_socket;
|
||||
QByteArray m_buffer;
|
||||
QTimer m_heartbeat;
|
||||
QTimer m_watchdog;
|
||||
bool m_open = false;
|
||||
};
|
||||
@@ -1,331 +0,0 @@
|
||||
// SPDX-FileCopyrightText: 2026 AudioTube contributors
|
||||
//
|
||||
// SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
|
||||
|
||||
#include "castdiscovery.h"
|
||||
|
||||
#include <QNetworkDatagram>
|
||||
#include <QNetworkInterface>
|
||||
#include <QtEndian>
|
||||
|
||||
using namespace Qt::StringLiterals;
|
||||
|
||||
namespace
|
||||
{
|
||||
constexpr quint16 TYPE_A = 1;
|
||||
constexpr quint16 TYPE_PTR = 12;
|
||||
constexpr quint16 TYPE_TXT = 16;
|
||||
constexpr quint16 TYPE_SRV = 33;
|
||||
|
||||
constexpr int QUERY_INTERVAL_MS = 4000;
|
||||
constexpr int DEVICE_TTL_SECS = 20;
|
||||
|
||||
const QString SERVICE_NAME = u"_googlecast._tcp.local"_s;
|
||||
|
||||
void appendU16(QByteArray &out, quint16 value)
|
||||
{
|
||||
out.append(char(value >> 8));
|
||||
out.append(char(value & 0xff));
|
||||
}
|
||||
|
||||
struct Reader {
|
||||
const QByteArray &data;
|
||||
|
||||
bool u8(int pos, quint8 &out) const
|
||||
{
|
||||
if (pos < 0 || pos >= data.size()) {
|
||||
return false;
|
||||
}
|
||||
out = quint8(data.at(pos));
|
||||
return true;
|
||||
}
|
||||
|
||||
bool u16(int pos, quint16 &out) const
|
||||
{
|
||||
if (pos < 0 || pos + 2 > data.size()) {
|
||||
return false;
|
||||
}
|
||||
out = qFromBigEndian<quint16>(data.constData() + pos);
|
||||
return true;
|
||||
}
|
||||
|
||||
// Reads a (possibly compressed) DNS name starting at `pos`, advances `pos` past the name.
|
||||
bool name(int &pos, QString &out) const
|
||||
{
|
||||
QStringList labels;
|
||||
int cursor = pos;
|
||||
int end = -1;
|
||||
int jumps = 0;
|
||||
|
||||
while (true) {
|
||||
quint8 len;
|
||||
if (!u8(cursor, len)) {
|
||||
return false;
|
||||
}
|
||||
if (len == 0) {
|
||||
cursor++;
|
||||
break;
|
||||
}
|
||||
if ((len & 0xc0) == 0xc0) {
|
||||
quint8 low;
|
||||
if (!u8(cursor + 1, low) || ++jumps > 16) {
|
||||
return false;
|
||||
}
|
||||
if (end < 0) {
|
||||
end = cursor + 2;
|
||||
}
|
||||
cursor = ((len & 0x3f) << 8) | low;
|
||||
continue;
|
||||
}
|
||||
if ((len & 0xc0) != 0 || cursor + 1 + len > data.size()) {
|
||||
return false;
|
||||
}
|
||||
labels.append(QString::fromUtf8(data.mid(cursor + 1, len)));
|
||||
cursor += 1 + len;
|
||||
}
|
||||
|
||||
pos = end >= 0 ? end : cursor;
|
||||
out = labels.join(u'.');
|
||||
return true;
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
CastDiscovery::CastDiscovery(QObject *parent)
|
||||
: QObject(parent)
|
||||
{
|
||||
m_timer.setInterval(QUERY_INTERVAL_MS);
|
||||
connect(&m_timer, &QTimer::timeout, this, [this] {
|
||||
prune();
|
||||
sendQuery();
|
||||
});
|
||||
connect(&m_socket, &QUdpSocket::readyRead, this, &CastDiscovery::readPending);
|
||||
}
|
||||
|
||||
void CastDiscovery::start()
|
||||
{
|
||||
if (m_active) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (m_socket.state() != QAbstractSocket::BoundState
|
||||
&& !m_socket.bind(QHostAddress::AnyIPv4, 0, QAbstractSocket::DontShareAddress)) {
|
||||
qWarning() << "Cast discovery: cannot bind UDP socket:" << m_socket.errorString();
|
||||
return;
|
||||
}
|
||||
m_socket.setSocketOption(QAbstractSocket::MulticastLoopbackOption, 0);
|
||||
|
||||
m_active = true;
|
||||
Q_EMIT activeChanged();
|
||||
sendQuery();
|
||||
m_timer.start();
|
||||
}
|
||||
|
||||
void CastDiscovery::stop()
|
||||
{
|
||||
if (!m_active) {
|
||||
return;
|
||||
}
|
||||
m_timer.stop();
|
||||
m_active = false;
|
||||
Q_EMIT activeChanged();
|
||||
}
|
||||
|
||||
bool CastDiscovery::isActive() const
|
||||
{
|
||||
return m_active;
|
||||
}
|
||||
|
||||
QList<CastDevice> CastDiscovery::devices() const
|
||||
{
|
||||
auto list = m_devices.values();
|
||||
std::sort(list.begin(), list.end(), [](const CastDevice &a, const CastDevice &b) {
|
||||
return a.name.localeAwareCompare(b.name) < 0;
|
||||
});
|
||||
return list;
|
||||
}
|
||||
|
||||
std::optional<CastDevice> CastDiscovery::device(const QString &id) const
|
||||
{
|
||||
const auto it = m_devices.constFind(id);
|
||||
if (it == m_devices.cend()) {
|
||||
return std::nullopt;
|
||||
}
|
||||
return *it;
|
||||
}
|
||||
|
||||
void CastDiscovery::sendQuery()
|
||||
{
|
||||
QByteArray packet;
|
||||
appendU16(packet, 0); // id
|
||||
appendU16(packet, 0); // flags
|
||||
appendU16(packet, 1); // questions
|
||||
appendU16(packet, 0);
|
||||
appendU16(packet, 0);
|
||||
appendU16(packet, 0);
|
||||
for (const auto &label : SERVICE_NAME.split(u'.')) {
|
||||
const auto utf8 = label.toUtf8();
|
||||
packet.append(char(utf8.size()));
|
||||
packet.append(utf8);
|
||||
}
|
||||
packet.append('\0');
|
||||
appendU16(packet, TYPE_PTR);
|
||||
appendU16(packet, 0x8001); // IN, unicast response requested
|
||||
|
||||
const QHostAddress group(u"224.0.0.251"_s);
|
||||
for (const auto &iface : QNetworkInterface::allInterfaces()) {
|
||||
const auto flags = iface.flags();
|
||||
if (!(flags & QNetworkInterface::IsUp) || !(flags & QNetworkInterface::IsRunning) || !(flags & QNetworkInterface::CanMulticast)
|
||||
|| (flags & QNetworkInterface::IsLoopBack)) {
|
||||
continue;
|
||||
}
|
||||
m_socket.setMulticastInterface(iface);
|
||||
m_socket.writeDatagram(packet, group, 5353);
|
||||
}
|
||||
}
|
||||
|
||||
void CastDiscovery::readPending()
|
||||
{
|
||||
while (m_socket.hasPendingDatagrams()) {
|
||||
const auto datagram = m_socket.receiveDatagram();
|
||||
parsePacket(datagram.data(), datagram.senderAddress());
|
||||
}
|
||||
}
|
||||
|
||||
void CastDiscovery::parsePacket(const QByteArray &packet, const QHostAddress &sender)
|
||||
{
|
||||
const Reader r{packet};
|
||||
quint16 flags, qd, an, ns, ar;
|
||||
if (!r.u16(2, flags) || !r.u16(4, qd) || !r.u16(6, an) || !r.u16(8, ns) || !r.u16(10, ar)) {
|
||||
return;
|
||||
}
|
||||
if (!(flags & 0x8000)) { // not a response
|
||||
return;
|
||||
}
|
||||
|
||||
int pos = 12;
|
||||
for (int i = 0; i < qd; i++) {
|
||||
QString name;
|
||||
if (!r.name(pos, name)) {
|
||||
return;
|
||||
}
|
||||
pos += 4;
|
||||
}
|
||||
|
||||
QStringList instanceNames;
|
||||
QHash<QString, Instance> instances;
|
||||
QHash<QString, QHostAddress> addresses;
|
||||
|
||||
const int records = an + ns + ar;
|
||||
for (int i = 0; i < records; i++) {
|
||||
QString name;
|
||||
quint16 type, rdLength;
|
||||
if (!r.name(pos, name) || !r.u16(pos, type) || !r.u16(pos + 8, rdLength)) {
|
||||
return;
|
||||
}
|
||||
const int rdata = pos + 10;
|
||||
if (rdata + rdLength > packet.size()) {
|
||||
return;
|
||||
}
|
||||
pos = rdata + rdLength;
|
||||
|
||||
switch (type) {
|
||||
case TYPE_PTR: {
|
||||
int p = rdata;
|
||||
QString target;
|
||||
if (name.compare(SERVICE_NAME, Qt::CaseInsensitive) == 0 && r.name(p, target)) {
|
||||
instanceNames.append(target);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case TYPE_SRV: {
|
||||
int p = rdata + 6;
|
||||
QString host;
|
||||
quint16 port;
|
||||
if (r.u16(rdata + 4, port) && r.name(p, host)) {
|
||||
auto &instance = instances[name];
|
||||
instance.host = host;
|
||||
instance.port = port;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case TYPE_TXT: {
|
||||
auto &instance = instances[name];
|
||||
int p = rdata;
|
||||
while (p < rdata + rdLength) {
|
||||
const int len = quint8(packet.at(p));
|
||||
if (p + 1 + len > rdata + rdLength) {
|
||||
break;
|
||||
}
|
||||
const auto entry = QString::fromUtf8(packet.mid(p + 1, len));
|
||||
const int eq = entry.indexOf(u'=');
|
||||
if (eq > 0) {
|
||||
instance.txt.insert(entry.left(eq).toLower(), entry.mid(eq + 1));
|
||||
}
|
||||
p += 1 + len;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case TYPE_A:
|
||||
if (rdLength == 4) {
|
||||
addresses.insert(name.toLower(), QHostAddress(qFromBigEndian<quint32>(packet.constData() + rdata)));
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
bool changed = false;
|
||||
for (const auto &instanceName : std::as_const(instanceNames)) {
|
||||
const auto it = instances.constFind(instanceName);
|
||||
if (it == instances.cend() || it->port == 0) {
|
||||
continue;
|
||||
}
|
||||
|
||||
CastDevice device;
|
||||
device.address = addresses.value(it->host.toLower());
|
||||
if (device.address.isNull()) {
|
||||
bool ok = false;
|
||||
const auto v4 = sender.toIPv4Address(&ok);
|
||||
if (!ok) {
|
||||
continue;
|
||||
}
|
||||
device.address = QHostAddress(v4);
|
||||
}
|
||||
|
||||
device.port = it->port;
|
||||
device.id = it->txt.value(u"id"_s, instanceName.section(u'.', 0, 0));
|
||||
device.name = it->txt.value(u"fn"_s, instanceName.section(u'.', 0, 0));
|
||||
device.model = it->txt.value(u"md"_s);
|
||||
device.lastSeen = QDateTime::currentDateTimeUtc();
|
||||
|
||||
const auto existing = m_devices.constFind(device.id);
|
||||
if (existing == m_devices.cend() || existing->name != device.name || existing->address != device.address || existing->port != device.port
|
||||
|| existing->model != device.model) {
|
||||
changed = true;
|
||||
}
|
||||
m_devices.insert(device.id, device);
|
||||
}
|
||||
|
||||
if (changed) {
|
||||
Q_EMIT devicesChanged();
|
||||
}
|
||||
}
|
||||
|
||||
void CastDiscovery::prune()
|
||||
{
|
||||
const auto cutoff = QDateTime::currentDateTimeUtc().addSecs(-DEVICE_TTL_SECS);
|
||||
bool changed = false;
|
||||
for (auto it = m_devices.begin(); it != m_devices.end();) {
|
||||
if (it->lastSeen < cutoff) {
|
||||
it = m_devices.erase(it);
|
||||
changed = true;
|
||||
} else {
|
||||
++it;
|
||||
}
|
||||
}
|
||||
if (changed) {
|
||||
Q_EMIT devicesChanged();
|
||||
}
|
||||
}
|
||||
@@ -1,63 +0,0 @@
|
||||
// SPDX-FileCopyrightText: 2026 AudioTube contributors
|
||||
//
|
||||
// SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <QDateTime>
|
||||
#include <QHash>
|
||||
#include <QHostAddress>
|
||||
#include <QList>
|
||||
#include <QObject>
|
||||
#include <QTimer>
|
||||
#include <QUdpSocket>
|
||||
|
||||
struct CastDevice {
|
||||
QString id;
|
||||
QString name;
|
||||
QString model;
|
||||
QHostAddress address;
|
||||
quint16 port = 8009;
|
||||
QDateTime lastSeen;
|
||||
};
|
||||
|
||||
/**
|
||||
* Minimal mDNS browser for _googlecast._tcp.local.
|
||||
*
|
||||
* Queries are sent from an ephemeral port with the "unicast response" bit set, so no daemon
|
||||
* (avahi) is needed and we don't have to share port 5353 with other mDNS stacks.
|
||||
*/
|
||||
class CastDiscovery : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit CastDiscovery(QObject *parent = nullptr);
|
||||
|
||||
void start();
|
||||
void stop();
|
||||
bool isActive() const;
|
||||
|
||||
QList<CastDevice> devices() const;
|
||||
std::optional<CastDevice> device(const QString &id) const;
|
||||
|
||||
Q_SIGNAL void devicesChanged();
|
||||
Q_SIGNAL void activeChanged();
|
||||
|
||||
private:
|
||||
struct Instance {
|
||||
QString host;
|
||||
quint16 port = 0;
|
||||
QHash<QString, QString> txt;
|
||||
};
|
||||
|
||||
void sendQuery();
|
||||
void readPending();
|
||||
void parsePacket(const QByteArray &packet, const QHostAddress &sender);
|
||||
void prune();
|
||||
|
||||
QUdpSocket m_socket;
|
||||
QTimer m_timer;
|
||||
bool m_active = false;
|
||||
QHash<QString, CastDevice> m_devices;
|
||||
};
|
||||
@@ -1,512 +0,0 @@
|
||||
// SPDX-FileCopyrightText: 2026 AudioTube contributors
|
||||
//
|
||||
// SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
|
||||
|
||||
#include "castmanager.h"
|
||||
|
||||
#include <QJsonArray>
|
||||
#include <QUrlQuery>
|
||||
|
||||
#include <KLocalizedString>
|
||||
|
||||
using namespace Qt::StringLiterals;
|
||||
|
||||
namespace
|
||||
{
|
||||
// Google's "Default Media Receiver"
|
||||
const QString DEFAULT_MEDIA_RECEIVER = u"CC1AD845"_s;
|
||||
|
||||
const QString NS_CONNECTION = u"urn:x-cast:com.google.cast.tp.connection"_s;
|
||||
const QString NS_RECEIVER = u"urn:x-cast:com.google.cast.receiver"_s;
|
||||
const QString NS_MEDIA = u"urn:x-cast:com.google.cast.media"_s;
|
||||
|
||||
constexpr int POSITION_INTERVAL_MS = 500;
|
||||
constexpr int STATUS_INTERVAL_MS = 5000;
|
||||
constexpr int SUPPORTS_SEEK = 2;
|
||||
|
||||
QString guessContentType(const QUrl &url)
|
||||
{
|
||||
// Streaming URLs from YouTube carry their mime type, e.g. ?mime=audio%2Fwebm
|
||||
const auto mime = QUrlQuery(url).queryItemValue(u"mime"_s, QUrl::FullyDecoded);
|
||||
if (!mime.isEmpty()) {
|
||||
return mime;
|
||||
}
|
||||
return u"audio/mp4"_s;
|
||||
}
|
||||
}
|
||||
|
||||
CastManager::CastManager(QObject *parent)
|
||||
: QObject(parent)
|
||||
{
|
||||
connect(&m_discovery, &CastDiscovery::devicesChanged, this, &CastManager::devicesChanged);
|
||||
connect(&m_discovery, &CastDiscovery::activeChanged, this, &CastManager::scanningChanged);
|
||||
|
||||
connect(&m_connection, &CastConnection::messageReceived, this, &CastManager::handleMessage);
|
||||
connect(&m_connection, &CastConnection::opened, this, [this] {
|
||||
sendReceiverCommand(u"GET_STATUS"_s);
|
||||
});
|
||||
connect(&m_connection, &CastConnection::closed, this, [this](const QString &reason) {
|
||||
if (m_state != State::Disconnected) {
|
||||
endSession(reason.isEmpty() ? i18n("The connection to the device was lost") : reason);
|
||||
}
|
||||
});
|
||||
|
||||
m_positionTimer.setInterval(POSITION_INTERVAL_MS);
|
||||
connect(&m_positionTimer, &QTimer::timeout, this, &CastManager::updatePosition);
|
||||
|
||||
m_statusTimer.setInterval(STATUS_INTERVAL_MS);
|
||||
connect(&m_statusTimer, &QTimer::timeout, this, &CastManager::requestMediaStatus);
|
||||
}
|
||||
|
||||
CastManager::~CastManager()
|
||||
{
|
||||
if (m_state != State::Disconnected) {
|
||||
sendReceiverCommand(u"STOP"_s, {{u"sessionId"_s, m_sessionId}});
|
||||
m_connection.close();
|
||||
}
|
||||
}
|
||||
|
||||
QVariantList CastManager::devices() const
|
||||
{
|
||||
QVariantList list;
|
||||
const auto devices = m_discovery.devices();
|
||||
for (const auto &device : devices) {
|
||||
list.append(QVariantMap{
|
||||
{u"id"_s, device.id},
|
||||
{u"name"_s, device.name},
|
||||
{u"model"_s, device.model},
|
||||
});
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
||||
bool CastManager::scanning() const
|
||||
{
|
||||
return m_discovery.isActive();
|
||||
}
|
||||
|
||||
bool CastManager::casting() const
|
||||
{
|
||||
return m_state != State::Disconnected;
|
||||
}
|
||||
|
||||
bool CastManager::connected() const
|
||||
{
|
||||
return m_state == State::Ready;
|
||||
}
|
||||
|
||||
QString CastManager::deviceId() const
|
||||
{
|
||||
return casting() ? m_device.id : QString();
|
||||
}
|
||||
|
||||
QString CastManager::deviceName() const
|
||||
{
|
||||
return casting() ? m_device.name : QString();
|
||||
}
|
||||
|
||||
QString CastManager::errorString() const
|
||||
{
|
||||
return m_error;
|
||||
}
|
||||
|
||||
CastManager::PlaybackState CastManager::playbackState() const
|
||||
{
|
||||
return m_playbackState;
|
||||
}
|
||||
|
||||
bool CastManager::hasMedia() const
|
||||
{
|
||||
return m_hasMedia || m_pending.valid;
|
||||
}
|
||||
|
||||
bool CastManager::buffering() const
|
||||
{
|
||||
return m_buffering || (m_pending.valid && !m_hasMedia);
|
||||
}
|
||||
|
||||
bool CastManager::seekable() const
|
||||
{
|
||||
return m_seekable;
|
||||
}
|
||||
|
||||
int CastManager::position() const
|
||||
{
|
||||
return m_position;
|
||||
}
|
||||
|
||||
int CastManager::duration() const
|
||||
{
|
||||
return m_duration;
|
||||
}
|
||||
|
||||
void CastManager::startDiscovery()
|
||||
{
|
||||
m_discovery.start();
|
||||
}
|
||||
|
||||
void CastManager::stopDiscovery()
|
||||
{
|
||||
m_discovery.stop();
|
||||
}
|
||||
|
||||
void CastManager::connectToDevice(const QString &deviceId)
|
||||
{
|
||||
if (casting() && m_device.id == deviceId) {
|
||||
return;
|
||||
}
|
||||
|
||||
const auto device = m_discovery.device(deviceId);
|
||||
if (!device) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (casting()) {
|
||||
endSession({}, false);
|
||||
}
|
||||
|
||||
m_device = *device;
|
||||
m_error.clear();
|
||||
m_state = State::Connecting;
|
||||
m_launchSent = false;
|
||||
m_loadSent = false;
|
||||
m_hasMedia = false;
|
||||
m_mediaSessionId = 0;
|
||||
m_transportId.clear();
|
||||
m_sessionId.clear();
|
||||
Q_EMIT castingChanged();
|
||||
|
||||
m_connection.open(m_device.address, m_device.port);
|
||||
}
|
||||
|
||||
void CastManager::disconnectFromDevice()
|
||||
{
|
||||
if (casting()) {
|
||||
endSession({});
|
||||
}
|
||||
}
|
||||
|
||||
void CastManager::endSession(const QString &error, bool notify)
|
||||
{
|
||||
const bool wasPlaying = m_playbackState == Playing;
|
||||
const int position = m_position;
|
||||
|
||||
if (m_state == State::Ready || m_state == State::Launching) {
|
||||
sendReceiverCommand(u"STOP"_s, {{u"sessionId"_s, m_sessionId}});
|
||||
}
|
||||
m_state = State::Disconnected;
|
||||
m_connection.close();
|
||||
m_positionTimer.stop();
|
||||
m_statusTimer.stop();
|
||||
|
||||
m_pending = {};
|
||||
m_hasMedia = false;
|
||||
m_loadSent = false;
|
||||
m_mediaSessionId = 0;
|
||||
m_transportId.clear();
|
||||
m_sessionId.clear();
|
||||
m_launchSent = false;
|
||||
m_buffering = false;
|
||||
m_playbackState = Stopped;
|
||||
|
||||
if (!error.isEmpty()) {
|
||||
m_error = error;
|
||||
Q_EMIT errorOccurred(error);
|
||||
}
|
||||
if (notify) {
|
||||
// Before castingChanged, so that the local player knows where to resume when it takes over again.
|
||||
Q_EMIT sessionEnded(position, wasPlaying);
|
||||
}
|
||||
Q_EMIT castingChanged();
|
||||
Q_EMIT connectedChanged();
|
||||
Q_EMIT playbackStateChanged();
|
||||
}
|
||||
|
||||
void CastManager::loadMedia(const QUrl &url,
|
||||
const QString &title,
|
||||
const QString &artist,
|
||||
const QString &album,
|
||||
const QString &thumbnail,
|
||||
int startPosition,
|
||||
bool autoplay)
|
||||
{
|
||||
if (!casting() || url.isEmpty()) {
|
||||
return;
|
||||
}
|
||||
|
||||
m_pending = PendingLoad{url, title, artist, album, thumbnail, startPosition, autoplay, true};
|
||||
m_loadSent = false;
|
||||
m_finishedReported = false;
|
||||
m_duration = 0;
|
||||
setPosition(startPosition);
|
||||
m_basePosition = startPosition;
|
||||
Q_EMIT durationChanged();
|
||||
Q_EMIT playbackStateChanged();
|
||||
|
||||
if (m_state == State::Ready) {
|
||||
sendLoad();
|
||||
}
|
||||
}
|
||||
|
||||
void CastManager::sendLoad()
|
||||
{
|
||||
if (!m_pending.valid || m_state != State::Ready) {
|
||||
return;
|
||||
}
|
||||
|
||||
QJsonObject metadata{
|
||||
{u"metadataType"_s, 3}, // MusicTrackMediaMetadata
|
||||
{u"title"_s, m_pending.title},
|
||||
{u"artist"_s, m_pending.artist},
|
||||
{u"albumName"_s, m_pending.album},
|
||||
};
|
||||
if (!m_pending.thumbnail.isEmpty()) {
|
||||
metadata.insert(u"images"_s, QJsonArray{QJsonObject{{u"url"_s, m_pending.thumbnail}}});
|
||||
}
|
||||
|
||||
const QJsonObject media{
|
||||
{u"contentId"_s, m_pending.url.toString(QUrl::FullyEncoded)},
|
||||
{u"streamType"_s, u"BUFFERED"_s},
|
||||
{u"contentType"_s, guessContentType(m_pending.url)},
|
||||
{u"metadata"_s, metadata},
|
||||
};
|
||||
|
||||
m_connection.send(NS_MEDIA,
|
||||
m_transportId,
|
||||
QJsonObject{
|
||||
{u"type"_s, u"LOAD"_s},
|
||||
{u"requestId"_s, currentRequestId()},
|
||||
{u"sessionId"_s, m_sessionId},
|
||||
{u"media"_s, media},
|
||||
{u"autoplay"_s, m_pending.autoplay},
|
||||
{u"currentTime"_s, m_pending.startPosition / 1000.0},
|
||||
});
|
||||
m_loadSent = true;
|
||||
m_mediaSessionId = 0; // learn the new media session from the status that follows
|
||||
}
|
||||
|
||||
void CastManager::play()
|
||||
{
|
||||
sendMediaCommand(u"PLAY"_s);
|
||||
}
|
||||
|
||||
void CastManager::pause()
|
||||
{
|
||||
sendMediaCommand(u"PAUSE"_s);
|
||||
}
|
||||
|
||||
void CastManager::stop()
|
||||
{
|
||||
sendMediaCommand(u"STOP"_s);
|
||||
}
|
||||
|
||||
void CastManager::seek(int position)
|
||||
{
|
||||
position = qMax(0, position);
|
||||
sendMediaCommand(u"SEEK"_s, {{u"currentTime"_s, position / 1000.0}});
|
||||
m_basePosition = position;
|
||||
m_positionClock.restart();
|
||||
setPosition(position);
|
||||
}
|
||||
|
||||
void CastManager::setVolume(qreal volume)
|
||||
{
|
||||
sendReceiverCommand(u"SET_VOLUME"_s, {{u"volume"_s, QJsonObject{{u"level"_s, qBound(0.0, volume, 1.0)}}}});
|
||||
}
|
||||
|
||||
void CastManager::setMuted(bool muted)
|
||||
{
|
||||
sendReceiverCommand(u"SET_VOLUME"_s, {{u"volume"_s, QJsonObject{{u"muted"_s, muted}}}});
|
||||
}
|
||||
|
||||
int CastManager::currentRequestId()
|
||||
{
|
||||
return ++m_requestId;
|
||||
}
|
||||
|
||||
void CastManager::sendMediaCommand(const QString &type, const QJsonObject &extra)
|
||||
{
|
||||
if (m_state != State::Ready || m_mediaSessionId == 0) {
|
||||
return;
|
||||
}
|
||||
QJsonObject payload = extra;
|
||||
payload.insert(u"type"_s, type);
|
||||
payload.insert(u"requestId"_s, currentRequestId());
|
||||
payload.insert(u"mediaSessionId"_s, m_mediaSessionId);
|
||||
m_connection.send(NS_MEDIA, m_transportId, payload);
|
||||
}
|
||||
|
||||
void CastManager::sendReceiverCommand(const QString &type, const QJsonObject &extra)
|
||||
{
|
||||
QJsonObject payload = extra;
|
||||
payload.insert(u"type"_s, type);
|
||||
payload.insert(u"requestId"_s, currentRequestId());
|
||||
m_connection.send(NS_RECEIVER, QString::fromLatin1(CastConnection::PLATFORM_RECEIVER), payload);
|
||||
}
|
||||
|
||||
void CastManager::requestMediaStatus()
|
||||
{
|
||||
if (m_state != State::Ready || m_transportId.isEmpty()) {
|
||||
return;
|
||||
}
|
||||
m_connection.send(NS_MEDIA, m_transportId, QJsonObject{{u"type"_s, u"GET_STATUS"_s}, {u"requestId"_s, currentRequestId()}});
|
||||
}
|
||||
|
||||
void CastManager::handleMessage(const QString &ns, const QString &source, const QJsonObject &payload)
|
||||
{
|
||||
const auto type = payload.value(u"type"_s).toString();
|
||||
|
||||
if (ns == NS_CONNECTION) {
|
||||
if (type == "CLOSE"_L1 && (source == m_transportId || source == QString::fromLatin1(CastConnection::PLATFORM_RECEIVER))) {
|
||||
endSession(i18n("The device closed the connection"));
|
||||
}
|
||||
} else if (ns == NS_RECEIVER) {
|
||||
if (type == "RECEIVER_STATUS"_L1) {
|
||||
handleReceiverStatus(payload);
|
||||
}
|
||||
} else if (ns == NS_MEDIA) {
|
||||
if (type == "MEDIA_STATUS"_L1) {
|
||||
handleMediaStatus(payload);
|
||||
} else if (type == "LOAD_FAILED"_L1 || type == "LOAD_CANCELLED"_L1 || type == "INVALID_REQUEST"_L1) {
|
||||
if (type != "LOAD_CANCELLED"_L1) {
|
||||
m_error = i18n("The device could not play this track");
|
||||
Q_EMIT errorOccurred(m_error);
|
||||
}
|
||||
m_pending.valid = false;
|
||||
setPlaybackState(Stopped);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void CastManager::handleReceiverStatus(const QJsonObject &payload)
|
||||
{
|
||||
const auto status = payload.value(u"status"_s).toObject();
|
||||
|
||||
QJsonObject app;
|
||||
const auto apps = status.value(u"applications"_s).toArray();
|
||||
for (const auto &entry : apps) {
|
||||
if (entry.toObject().value(u"appId"_s).toString() == DEFAULT_MEDIA_RECEIVER) {
|
||||
app = entry.toObject();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (app.isEmpty()) {
|
||||
if (m_state == State::Connecting) {
|
||||
if (!m_launchSent) {
|
||||
m_launchSent = true;
|
||||
m_state = State::Launching;
|
||||
sendReceiverCommand(u"LAUNCH"_s, {{u"appId"_s, DEFAULT_MEDIA_RECEIVER}});
|
||||
}
|
||||
} else if (m_state == State::Ready) {
|
||||
// Somebody else took over the device
|
||||
endSession(i18n("Another app started playing on the device"));
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
const auto transportId = app.value(u"transportId"_s).toString();
|
||||
if (m_state == State::Ready || transportId.isEmpty()) {
|
||||
return;
|
||||
}
|
||||
|
||||
m_transportId = transportId;
|
||||
m_sessionId = app.value(u"sessionId"_s).toString();
|
||||
m_connection.send(NS_CONNECTION, m_transportId, QJsonObject{{u"type"_s, u"CONNECT"_s}});
|
||||
m_state = State::Ready;
|
||||
m_statusTimer.start();
|
||||
Q_EMIT connectedChanged();
|
||||
|
||||
sendLoad();
|
||||
}
|
||||
|
||||
void CastManager::handleMediaStatus(const QJsonObject &payload)
|
||||
{
|
||||
const auto statuses = payload.value(u"status"_s).toArray();
|
||||
if (statuses.isEmpty()) {
|
||||
return;
|
||||
}
|
||||
const auto status = statuses.first().toObject();
|
||||
|
||||
m_mediaSessionId = qint64(status.value(u"mediaSessionId"_s).toDouble());
|
||||
m_pending.valid = false;
|
||||
m_hasMedia = true;
|
||||
|
||||
const auto media = status.value(u"media"_s).toObject();
|
||||
if (media.contains(u"duration"_s)) {
|
||||
const int duration = qRound(media.value(u"duration"_s).toDouble() * 1000);
|
||||
if (duration != m_duration) {
|
||||
m_duration = duration;
|
||||
Q_EMIT durationChanged();
|
||||
}
|
||||
}
|
||||
|
||||
if (status.contains(u"supportedMediaCommands"_s)) {
|
||||
m_seekable = status.value(u"supportedMediaCommands"_s).toInt() & SUPPORTS_SEEK;
|
||||
}
|
||||
|
||||
m_basePosition = qRound(status.value(u"currentTime"_s).toDouble() * 1000);
|
||||
m_positionClock.restart();
|
||||
setPosition(m_basePosition);
|
||||
|
||||
const auto playerState = status.value(u"playerState"_s).toString();
|
||||
if (playerState == "PLAYING"_L1) {
|
||||
m_finishedReported = false;
|
||||
setPlaybackState(Playing);
|
||||
} else if (playerState == "BUFFERING"_L1) {
|
||||
m_finishedReported = false;
|
||||
setPlaybackState(Playing, true);
|
||||
} else if (playerState == "PAUSED"_L1) {
|
||||
m_finishedReported = false;
|
||||
setPlaybackState(Paused);
|
||||
} else if (playerState == "IDLE"_L1) {
|
||||
const auto reason = status.value(u"idleReason"_s).toString();
|
||||
setPlaybackState(Stopped);
|
||||
if (reason == "FINISHED"_L1 && !m_finishedReported) {
|
||||
m_finishedReported = true;
|
||||
Q_EMIT mediaFinished();
|
||||
} else if (reason == "ERROR"_L1) {
|
||||
m_error = i18n("The device could not play this track");
|
||||
Q_EMIT errorOccurred(m_error);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void CastManager::setPlaybackState(PlaybackState state, bool buffering)
|
||||
{
|
||||
if (m_playbackState == state && m_buffering == buffering) {
|
||||
return;
|
||||
}
|
||||
m_playbackState = state;
|
||||
m_buffering = buffering;
|
||||
|
||||
// Chromecasts only report on state changes, so position is extrapolated while playing
|
||||
if (state == Playing && !buffering) {
|
||||
m_positionClock.restart();
|
||||
m_positionTimer.start();
|
||||
} else {
|
||||
m_positionTimer.stop();
|
||||
}
|
||||
Q_EMIT playbackStateChanged();
|
||||
}
|
||||
|
||||
void CastManager::updatePosition()
|
||||
{
|
||||
if (m_playbackState != Playing || m_buffering) {
|
||||
return;
|
||||
}
|
||||
int position = m_basePosition + int(m_positionClock.elapsed());
|
||||
if (m_duration > 0) {
|
||||
position = qMin(position, m_duration);
|
||||
}
|
||||
setPosition(position);
|
||||
}
|
||||
|
||||
void CastManager::setPosition(int position)
|
||||
{
|
||||
if (m_position == position) {
|
||||
return;
|
||||
}
|
||||
m_position = position;
|
||||
Q_EMIT positionChanged();
|
||||
}
|
||||
@@ -1,165 +0,0 @@
|
||||
// SPDX-FileCopyrightText: 2026 AudioTube contributors
|
||||
//
|
||||
// SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <QElapsedTimer>
|
||||
#include <QJsonObject>
|
||||
#include <QObject>
|
||||
#include <QTimer>
|
||||
#include <QUrl>
|
||||
#include <QVariantList>
|
||||
#include <qqmlintegration.h>
|
||||
|
||||
#include "castconnection.h"
|
||||
#include "castdiscovery.h"
|
||||
|
||||
/**
|
||||
* Sender side of Google Cast: discovers devices, launches the Default Media Receiver on the selected
|
||||
* device and remote controls it. Positions are in milliseconds, volume in the range 0..1.
|
||||
*/
|
||||
class CastManager : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
QML_ELEMENT
|
||||
QML_SINGLETON
|
||||
|
||||
Q_PROPERTY(QVariantList devices READ devices NOTIFY devicesChanged)
|
||||
Q_PROPERTY(bool scanning READ scanning NOTIFY scanningChanged)
|
||||
|
||||
/// True while a session is being set up or is established.
|
||||
Q_PROPERTY(bool casting READ casting NOTIFY castingChanged)
|
||||
/// True once the receiver app is running and ready to take media.
|
||||
Q_PROPERTY(bool connected READ connected NOTIFY connectedChanged)
|
||||
Q_PROPERTY(QString deviceId READ deviceId NOTIFY castingChanged)
|
||||
Q_PROPERTY(QString deviceName READ deviceName NOTIFY castingChanged)
|
||||
Q_PROPERTY(QString errorString READ errorString NOTIFY errorOccurred)
|
||||
|
||||
Q_PROPERTY(PlaybackState playbackState READ playbackState NOTIFY playbackStateChanged)
|
||||
Q_PROPERTY(bool hasMedia READ hasMedia NOTIFY playbackStateChanged)
|
||||
Q_PROPERTY(bool buffering READ buffering NOTIFY playbackStateChanged)
|
||||
Q_PROPERTY(bool seekable READ seekable NOTIFY playbackStateChanged)
|
||||
Q_PROPERTY(int position READ position NOTIFY positionChanged)
|
||||
Q_PROPERTY(int duration READ duration NOTIFY durationChanged)
|
||||
|
||||
public:
|
||||
/// Values match QMediaPlayer::PlaybackState, so QML can treat both interchangeably.
|
||||
enum PlaybackState {
|
||||
Stopped = 0,
|
||||
Playing = 1,
|
||||
Paused = 2,
|
||||
};
|
||||
Q_ENUM(PlaybackState)
|
||||
|
||||
explicit CastManager(QObject *parent = nullptr);
|
||||
~CastManager() override;
|
||||
|
||||
QVariantList devices() const;
|
||||
bool scanning() const;
|
||||
bool casting() const;
|
||||
bool connected() const;
|
||||
QString deviceId() const;
|
||||
QString deviceName() const;
|
||||
QString errorString() const;
|
||||
PlaybackState playbackState() const;
|
||||
bool hasMedia() const;
|
||||
bool buffering() const;
|
||||
bool seekable() const;
|
||||
int position() const;
|
||||
int duration() const;
|
||||
|
||||
Q_INVOKABLE void startDiscovery();
|
||||
Q_INVOKABLE void stopDiscovery();
|
||||
|
||||
Q_INVOKABLE void connectToDevice(const QString &deviceId);
|
||||
/// Ends the cast session (closing the receiver app) and hands playback back to the local player.
|
||||
Q_INVOKABLE void disconnectFromDevice();
|
||||
|
||||
Q_INVOKABLE void loadMedia(const QUrl &url,
|
||||
const QString &title,
|
||||
const QString &artist,
|
||||
const QString &album,
|
||||
const QString &thumbnail,
|
||||
int startPosition,
|
||||
bool autoplay);
|
||||
Q_INVOKABLE void play();
|
||||
Q_INVOKABLE void pause();
|
||||
Q_INVOKABLE void stop();
|
||||
Q_INVOKABLE void seek(int position);
|
||||
Q_INVOKABLE void setVolume(qreal volume);
|
||||
Q_INVOKABLE void setMuted(bool muted);
|
||||
|
||||
Q_SIGNAL void devicesChanged();
|
||||
Q_SIGNAL void scanningChanged();
|
||||
Q_SIGNAL void castingChanged();
|
||||
Q_SIGNAL void connectedChanged();
|
||||
Q_SIGNAL void playbackStateChanged();
|
||||
Q_SIGNAL void positionChanged();
|
||||
Q_SIGNAL void durationChanged();
|
||||
Q_SIGNAL void errorOccurred(const QString &message);
|
||||
/// The current media finished playing on the device.
|
||||
Q_SIGNAL void mediaFinished();
|
||||
/// The session is over; carries where local playback should pick up.
|
||||
Q_SIGNAL void sessionEnded(int position, bool wasPlaying);
|
||||
|
||||
private:
|
||||
enum class State {
|
||||
Disconnected,
|
||||
Connecting,
|
||||
Launching,
|
||||
Ready,
|
||||
};
|
||||
|
||||
struct PendingLoad {
|
||||
QUrl url;
|
||||
QString title;
|
||||
QString artist;
|
||||
QString album;
|
||||
QString thumbnail;
|
||||
int startPosition = 0;
|
||||
bool autoplay = true;
|
||||
bool valid = false;
|
||||
};
|
||||
|
||||
void handleMessage(const QString &ns, const QString &source, const QJsonObject &payload);
|
||||
void handleReceiverStatus(const QJsonObject &payload);
|
||||
void handleMediaStatus(const QJsonObject &payload);
|
||||
void sendLoad();
|
||||
void sendMediaCommand(const QString &type, const QJsonObject &extra = {});
|
||||
void sendReceiverCommand(const QString &type, const QJsonObject &extra = {});
|
||||
void requestMediaStatus();
|
||||
void updatePosition();
|
||||
void setPlaybackState(PlaybackState state, bool buffering = false);
|
||||
void setPosition(int position);
|
||||
void endSession(const QString &error, bool notify = true);
|
||||
int currentRequestId();
|
||||
|
||||
CastDiscovery m_discovery;
|
||||
CastConnection m_connection;
|
||||
QTimer m_positionTimer;
|
||||
QTimer m_statusTimer;
|
||||
|
||||
State m_state = State::Disconnected;
|
||||
CastDevice m_device;
|
||||
QString m_error;
|
||||
|
||||
QString m_transportId;
|
||||
QString m_sessionId;
|
||||
qint64 m_mediaSessionId = 0;
|
||||
bool m_launchSent = false;
|
||||
int m_requestId = 0;
|
||||
|
||||
PendingLoad m_pending;
|
||||
bool m_loadSent = false;
|
||||
|
||||
PlaybackState m_playbackState = Stopped;
|
||||
bool m_buffering = false;
|
||||
bool m_hasMedia = false;
|
||||
bool m_seekable = true;
|
||||
bool m_finishedReported = false;
|
||||
int m_basePosition = 0;
|
||||
int m_position = 0;
|
||||
int m_duration = 0;
|
||||
QElapsedTimer m_positionClock;
|
||||
};
|
||||
@@ -1,130 +0,0 @@
|
||||
// SPDX-FileCopyrightText: 2026 AudioTube contributors
|
||||
//
|
||||
// SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
|
||||
|
||||
import QtQuick
|
||||
import QtQuick.Controls as Controls
|
||||
import QtQuick.Layouts
|
||||
|
||||
import org.kde.kirigami as Kirigami
|
||||
import org.kde.audiotube
|
||||
|
||||
/**
|
||||
* Player control for Google Cast: opens a list of the devices found on the network and
|
||||
* starts or stops casting to them.
|
||||
*/
|
||||
Controls.ToolButton {
|
||||
id: root
|
||||
|
||||
// The playback object of the player footer, which knows how to hand playback over to a Cast device
|
||||
required property QtObject player
|
||||
|
||||
implicitWidth: 40
|
||||
implicitHeight: 40
|
||||
|
||||
icon.source: "qrc:/qt/qml/org/kde/audiotube/resources/cast-symbolic.svg"
|
||||
icon.color: CastManager.casting ? Kirigami.Theme.highlightColor : "white"
|
||||
icon.width: Kirigami.Units.gridUnit
|
||||
icon.height: Kirigami.Units.gridUnit
|
||||
display: Controls.AbstractButton.IconOnly
|
||||
|
||||
text: CastManager.casting ? i18nc("%1 is the name of a device", "Casting to %1", CastManager.deviceName) : i18n("Cast to Device")
|
||||
checked: popup.visible
|
||||
|
||||
Controls.ToolTip.text: text
|
||||
Controls.ToolTip.delay: Kirigami.Units.toolTipDelay
|
||||
Controls.ToolTip.visible: Kirigami.Settings.isMobile ? pressed : hovered
|
||||
|
||||
Kirigami.Theme.colorSet: Kirigami.Theme.Complementary
|
||||
Kirigami.Theme.inherit: false
|
||||
|
||||
onClicked: popup.visible ? popup.close() : popup.open()
|
||||
|
||||
Controls.Popup {
|
||||
id: popup
|
||||
|
||||
// Open above the button, since the player controls sit at the bottom of the window
|
||||
x: Math.min(0, root.width - width)
|
||||
y: -height - Kirigami.Units.smallSpacing
|
||||
width: Kirigami.Units.gridUnit * 16
|
||||
padding: Kirigami.Units.smallSpacing
|
||||
modal: false
|
||||
closePolicy: Controls.Popup.CloseOnEscape | Controls.Popup.CloseOnPressOutsideParent
|
||||
|
||||
onOpened: CastManager.startDiscovery()
|
||||
onClosed: CastManager.stopDiscovery()
|
||||
|
||||
contentItem: ColumnLayout {
|
||||
spacing: Kirigami.Units.smallSpacing
|
||||
|
||||
RowLayout {
|
||||
Layout.fillWidth: true
|
||||
Layout.margins: Kirigami.Units.smallSpacing
|
||||
|
||||
Kirigami.Heading {
|
||||
level: 4
|
||||
text: i18n("Cast to")
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
|
||||
Controls.BusyIndicator {
|
||||
running: CastManager.scanning && !CastManager.casting
|
||||
visible: running
|
||||
implicitWidth: Kirigami.Units.iconSizes.smallMedium
|
||||
implicitHeight: Kirigami.Units.iconSizes.smallMedium
|
||||
}
|
||||
}
|
||||
|
||||
Controls.ItemDelegate {
|
||||
Layout.fillWidth: true
|
||||
text: i18n("This Computer")
|
||||
icon.name: "computer"
|
||||
highlighted: !CastManager.casting
|
||||
onClicked: {
|
||||
root.player.stopCasting()
|
||||
popup.close()
|
||||
}
|
||||
}
|
||||
|
||||
Repeater {
|
||||
model: CastManager.devices
|
||||
|
||||
delegate: Controls.ItemDelegate {
|
||||
required property var modelData
|
||||
|
||||
Layout.fillWidth: true
|
||||
text: modelData.name
|
||||
icon.source: "qrc:/qt/qml/org/kde/audiotube/resources/cast-symbolic.svg"
|
||||
highlighted: CastManager.casting && CastManager.deviceId === modelData.id
|
||||
|
||||
Controls.ToolTip.text: modelData.model
|
||||
Controls.ToolTip.visible: hovered && modelData.model !== ""
|
||||
Controls.ToolTip.delay: Kirigami.Units.toolTipDelay
|
||||
|
||||
onClicked: {
|
||||
root.player.castTo(modelData.id)
|
||||
popup.close()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Controls.Label {
|
||||
Layout.fillWidth: true
|
||||
Layout.margins: Kirigami.Units.smallSpacing
|
||||
visible: CastManager.devices.length === 0
|
||||
wrapMode: Text.Wrap
|
||||
opacity: 0.7
|
||||
text: CastManager.scanning ? i18n("Looking for devices on your network…") : i18n("No devices found")
|
||||
}
|
||||
|
||||
Controls.Label {
|
||||
Layout.fillWidth: true
|
||||
Layout.margins: Kirigami.Units.smallSpacing
|
||||
visible: CastManager.errorString !== "" && !CastManager.casting
|
||||
wrapMode: Text.Wrap
|
||||
color: Kirigami.Theme.negativeTextColor
|
||||
text: CastManager.errorString
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -303,23 +303,6 @@ Kirigami.ApplicationWindow {
|
||||
z: (contentY === 0) ? -1 : 999
|
||||
}
|
||||
|
||||
TrayIcon {
|
||||
id: trayIcon
|
||||
|
||||
window: root
|
||||
playing: playerFooter.audioPlayer.playbackState === MediaPlayer.PlayingState
|
||||
trackTitle: playerFooter.videoInfoExtractor.title
|
||||
trackArtist: playerFooter.videoInfoExtractor.artist ? playerFooter.videoInfoExtractor.artist : playerFooter.videoInfoExtractor.channel
|
||||
canGoNext: UserPlaylistModel.canSkip
|
||||
canGoPrevious: UserPlaylistModel.canSkipBack
|
||||
|
||||
onPlayPauseRequested: playerFooter.audioPlayer.playbackState === MediaPlayer.PlayingState
|
||||
? playerFooter.audioPlayer.pause()
|
||||
: playerFooter.audioPlayer.play()
|
||||
onNextRequested: UserPlaylistModel.next()
|
||||
onPreviousRequested: UserPlaylistModel.previous()
|
||||
}
|
||||
|
||||
MprisPlayer {
|
||||
id: mprisPlayer
|
||||
serviceName: "AudioTube"
|
||||
|
||||
@@ -17,7 +17,7 @@ Item {
|
||||
id: root
|
||||
|
||||
required property VideoInfoExtractor info
|
||||
required property QtObject audio
|
||||
required property MediaPlayer audio
|
||||
required property LyricsModel syncedLyrics
|
||||
required property string thumbnail
|
||||
readonly property bool isWidescreen: width >= Kirigami.Units.gridUnit * 50
|
||||
@@ -234,7 +234,7 @@ Item {
|
||||
MouseArea {
|
||||
anchors.fill: parent
|
||||
onClicked: {
|
||||
root.audio.seek(lineLabel.start * 1000);
|
||||
root.audio.position = lineLabel.start * 1000;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -335,19 +335,6 @@ Item {
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
elide: Text.ElideRight
|
||||
maximumLineCount: 1
|
||||
|
||||
MouseArea {
|
||||
anchors.fill: parent
|
||||
onClicked: {
|
||||
let index = UserPlaylistModel.index(UserPlaylistModel.currentIndex, 0)
|
||||
let artistId = UserPlaylistModel.data(index, UserPlaylistModel.ArtistId)
|
||||
pageStack.push("qrc:/qt/qml/org/kde/audiotube/contents/ui/ArtistPage.qml", {
|
||||
"channelId": artistId
|
||||
})
|
||||
root.requestClose()
|
||||
}
|
||||
}
|
||||
|
||||
// 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
|
||||
@@ -495,7 +482,7 @@ Item {
|
||||
enabled: root.audio.seekable
|
||||
onMoved: {
|
||||
console.log("Value:", value);
|
||||
audio.seek(Math.floor(value));
|
||||
audio.position = Math.floor(value);
|
||||
}
|
||||
|
||||
Behavior on value {
|
||||
@@ -543,10 +530,8 @@ Item {
|
||||
let videoId = UserPlaylistModel.data(index, UserPlaylistModel.VideoId)
|
||||
let title = UserPlaylistModel.data(index, UserPlaylistModel.Title)
|
||||
let artist = UserPlaylistModel.data(index, UserPlaylistModel.Artists)
|
||||
let artistId = UserPlaylistModel.data(index, UserPlaylistModel.ArtistId)
|
||||
let album = UserPlaylistModel.data(index, UserPlaylistModel.Album)
|
||||
let albumId = UserPlaylistModel.data(index, UserPlaylistModel.AlbumId)
|
||||
Library.addFavourite(videoId, title, artist, artistId, album, albumId)
|
||||
Library.addFavourite(videoId, title, artist, album)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -612,7 +597,7 @@ Item {
|
||||
ToolTip.visible: Kirigami.Settings.isMobile ? pressed : hovered
|
||||
|
||||
onClicked: {
|
||||
if (root.audio.audioOutput.muted) {
|
||||
if (root.audio.muted) {
|
||||
muteButton.unmuteAudio()
|
||||
} else {
|
||||
muteButton.muteAudio()
|
||||
@@ -786,13 +771,6 @@ Item {
|
||||
Kirigami.Theme.inherit: false
|
||||
}
|
||||
|
||||
CastButton {
|
||||
Layout.preferredHeight: Kirigami.Units.gridUnit * 2.5
|
||||
Layout.maximumWidth: height
|
||||
Layout.preferredWidth: height
|
||||
player: root.audio
|
||||
}
|
||||
|
||||
PlaylistDialog {
|
||||
id: playlistsDialog
|
||||
}
|
||||
|
||||
@@ -19,7 +19,7 @@ Item {
|
||||
required property int minimizedPlayerContentHeight
|
||||
|
||||
required property VideoInfoExtractor info
|
||||
required property QtObject audio
|
||||
required property MediaPlayer audio
|
||||
required property string thumbnail
|
||||
|
||||
readonly property bool isWidescreen: width >= Kirigami.Units.gridUnit * 50
|
||||
@@ -255,6 +255,7 @@ Item {
|
||||
implicitHeight: 40
|
||||
implicitWidth: 40
|
||||
Layout.fillHeight: !isWidescreen
|
||||
Layout.rightMargin: isWidescreen ? 0 : 10
|
||||
Layout.alignment: !Qt.AlignVCenter
|
||||
|
||||
Kirigami.Theme.colorSet: Kirigami.Theme.Complementary
|
||||
@@ -300,11 +301,5 @@ Item {
|
||||
text: PlayerUtils.formatTimestamp(audio.duration)
|
||||
Layout.leftMargin: 20
|
||||
}
|
||||
|
||||
CastButton {
|
||||
Layout.alignment: Qt.AlignVCenter
|
||||
Layout.rightMargin: isWidescreen ? 0 : 10
|
||||
player: root.audio
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -107,9 +107,7 @@ Flickable {
|
||||
let videoId = UserPlaylistModel.data(index, UserPlaylistModel.VideoId)
|
||||
let title = UserPlaylistModel.data(index, UserPlaylistModel.Title)
|
||||
let artist = UserPlaylistModel.data(index, UserPlaylistModel.Artists)
|
||||
let artistId = UserPlaylistModel.data(index, UserPlaylistModel.ArtistId)
|
||||
let album = UserPlaylistModel.data(index, UserPlaylistModel.Album)
|
||||
let albumId = UserPlaylistModel.data(index, UserPlaylistModel.AlbumId)
|
||||
let duration = UserPlaylistModel.data(index, UserPlaylistModel.Duration)
|
||||
|
||||
syncedLyrics.song = title
|
||||
@@ -118,7 +116,7 @@ Flickable {
|
||||
syncedLyrics.duration = duration
|
||||
syncedLyrics.fetchLyrics()
|
||||
|
||||
Library.addPlaybackHistoryItem(videoId, title, artist, artistId, album, albumId)
|
||||
Library.addPlaybackHistoryItem(videoId, title, artist, album)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -127,111 +125,8 @@ Flickable {
|
||||
videoId: UserPlaylistModel.currentVideoId
|
||||
}
|
||||
|
||||
// What the controls talk to: the local MediaPlayer, or the Cast device while casting.
|
||||
property QtObject audioPlayer: playbackProxy
|
||||
property QtObject audioOutput: playbackProxy.audioOutput
|
||||
|
||||
QtObject {
|
||||
id: playbackProxy
|
||||
|
||||
readonly property MediaPlayer local: audioLoader.item
|
||||
readonly property bool casting: CastManager.casting
|
||||
|
||||
readonly property int position: casting ? CastManager.position : (local ? local.position : 0)
|
||||
readonly property int duration: casting ? CastManager.duration : (local ? local.duration : 0)
|
||||
readonly property bool seekable: casting ? CastManager.seekable : (local ? local.seekable : false)
|
||||
readonly property int playbackState: casting ? CastManager.playbackState : (local ? local.playbackState : MediaPlayer.StoppedState)
|
||||
readonly property int status: casting ? (CastManager.hasMedia ? MediaPlayer.LoadedMedia : MediaPlayer.NoMedia)
|
||||
: (local ? local.mediaStatus : MediaPlayer.NoMedia)
|
||||
|
||||
// Source of truth for volume and mute, applied to whichever output is active
|
||||
readonly property QtObject audioOutput: QtObject {
|
||||
property real volume: 1.0
|
||||
property bool muted: false
|
||||
|
||||
onVolumeChanged: if (playbackProxy.casting) CastManager.setVolume(volume)
|
||||
onMutedChanged: if (playbackProxy.casting) CastManager.setMuted(muted)
|
||||
}
|
||||
|
||||
function play() {
|
||||
if (casting) {
|
||||
CastManager.play()
|
||||
} else if (local) {
|
||||
local.play()
|
||||
}
|
||||
}
|
||||
|
||||
function pause() {
|
||||
if (casting) {
|
||||
CastManager.pause()
|
||||
} else if (local) {
|
||||
local.pause()
|
||||
}
|
||||
}
|
||||
|
||||
function stop() {
|
||||
if (casting) {
|
||||
CastManager.stop()
|
||||
} else if (local) {
|
||||
local.stop()
|
||||
}
|
||||
}
|
||||
|
||||
// milliseconds
|
||||
function seek(position: int) {
|
||||
if (casting) {
|
||||
CastManager.seek(position)
|
||||
} else if (local) {
|
||||
local.position = position
|
||||
}
|
||||
}
|
||||
|
||||
function loadOnCastDevice(startPosition: int, autoplay: bool) {
|
||||
const url = info.audioUrl
|
||||
if (url.toString() === "") {
|
||||
return
|
||||
}
|
||||
CastManager.loadMedia(url, info.title, info.artist ? info.artist : info.channel, info.album, info.thumbnail, startPosition, autoplay)
|
||||
}
|
||||
|
||||
function castTo(deviceId: string) {
|
||||
const startPosition = position
|
||||
const autoplay = playbackState === MediaPlayer.PlayingState
|
||||
CastManager.connectToDevice(deviceId)
|
||||
loadOnCastDevice(startPosition, autoplay)
|
||||
}
|
||||
|
||||
function stopCasting() {
|
||||
CastManager.disconnectFromDevice()
|
||||
}
|
||||
}
|
||||
|
||||
Connections {
|
||||
target: info
|
||||
|
||||
// A new track was extracted: keep the Cast device in step
|
||||
function onSongChanged() {
|
||||
if (CastManager.casting) {
|
||||
playbackProxy.loadOnCastDevice(0, true)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Connections {
|
||||
target: CastManager
|
||||
|
||||
function onMediaFinished() {
|
||||
UserPlaylistModel.next()
|
||||
}
|
||||
|
||||
function onSessionEnded(position: int, wasPlaying: bool) {
|
||||
// The local player takes over again at the position the device reached
|
||||
if (audioLoader.item && info.videoId !== "") {
|
||||
audioLoader.item.resumePosition = position
|
||||
audioLoader.item.resumePlaying = wasPlaying
|
||||
}
|
||||
}
|
||||
}
|
||||
property MediaPlayer audioPlayer: audioLoader.item
|
||||
property AudioOutput audioOutput: audioLoader.item.audioOutput
|
||||
|
||||
Loader {
|
||||
id: audioLoader
|
||||
@@ -241,17 +136,8 @@ Flickable {
|
||||
id: audio
|
||||
|
||||
property int prevPlaybackState: MediaPlayer.StoppedState
|
||||
// Set when playback is handed back from a Cast device; -1 when there is nothing to restore
|
||||
property int resumePosition: -1
|
||||
property bool resumePlaying: true
|
||||
|
||||
// Silent while casting, the device plays instead
|
||||
source: CastManager.casting ? "" : info.audioUrl
|
||||
onSourceChanged: {
|
||||
if (source.toString() !== "") {
|
||||
play()
|
||||
}
|
||||
}
|
||||
source: info.audioUrl
|
||||
onSourceChanged: play()
|
||||
|
||||
onPlaybackStateChanged : {
|
||||
if (mediaStatus == MediaPlayer.BufferingMedia && playbackState == MediaPlayer.StoppedState && prevPlaybackState == MediaPlayer.PlayingState) {
|
||||
@@ -267,19 +153,11 @@ Flickable {
|
||||
if (mediaStatus === MediaPlayer.EndOfMedia) {
|
||||
console.log("Song ended");
|
||||
UserPlaylistModel.next();
|
||||
} else if ((mediaStatus === MediaPlayer.LoadedMedia || mediaStatus === MediaPlayer.BufferedMedia) && resumePosition >= 0) {
|
||||
position = resumePosition
|
||||
if (!resumePlaying) {
|
||||
pause()
|
||||
}
|
||||
resumePosition = -1
|
||||
}
|
||||
}
|
||||
|
||||
audioOutput: AudioOutput {
|
||||
id: audioOutput
|
||||
volume: playbackProxy.audioOutput.volume
|
||||
muted: playbackProxy.audioOutput.muted
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -44,7 +44,7 @@ Item {
|
||||
}
|
||||
}
|
||||
|
||||
Keys.onPressed: (event) => {
|
||||
Keys.onPressed: {
|
||||
if(completionList.count > 0) {
|
||||
if (event.key === Qt.Key_Down) {
|
||||
if(completionList.selectedDelegate === -1 || completionList.selectedDelegate === completionList.count - 1) {
|
||||
|
||||
@@ -41,38 +41,52 @@ Item{
|
||||
title: i18n("Share to")
|
||||
preferredWidth: Kirigami.Units.gridUnit * 16
|
||||
standardButtons: Kirigami.Dialog.NoButton
|
||||
Purpose.AlternativesView {
|
||||
Layout.fillHeight: true
|
||||
Layout.fillWidth: true
|
||||
id: view
|
||||
pluginType: "ShareUrl"
|
||||
clip: true
|
||||
|
||||
delegate: Controls.ItemDelegate {
|
||||
id: shareDelegate
|
||||
|
||||
required property string iconName
|
||||
required property int index
|
||||
required property string actionDisplay
|
||||
|
||||
onClicked: view.createJob(shareDelegate.index)
|
||||
width: parent.width
|
||||
|
||||
contentItem: KirigamiDelegates.IconTitleSubtitle {
|
||||
title: shareDelegate.actionDisplay
|
||||
Keys.onReturnPressed: view.createJob (shareDelegate.index)
|
||||
Keys.onEnterPressed: view.createJob (shareDelegate.index)
|
||||
icon.name: shareDelegate.iconName
|
||||
|
||||
Kirigami.Icon {
|
||||
implicitWidth: Kirigami.Units.iconSizes.small
|
||||
implicitHeight: Kirigami.Units.iconSizes.small
|
||||
source: "arrow-right"
|
||||
}
|
||||
ColumnLayout {
|
||||
spacing:0
|
||||
KirigamiDelegates.SubtitleDelegate {
|
||||
Layout.fillWidth: true
|
||||
icon.name: "edit-copy"
|
||||
text: 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
|
||||
|
||||
onFinished: inputSheet.close()
|
||||
delegate: Controls.ItemDelegate {
|
||||
id: shareDelegate
|
||||
|
||||
required property string iconName
|
||||
required property int index
|
||||
required property string actionDisplay
|
||||
|
||||
onClicked: view.createJob(shareDelegate.index)
|
||||
width: parent.width
|
||||
|
||||
contentItem: KirigamiDelegates.IconTitleSubtitle {
|
||||
title: shareDelegate.actionDisplay
|
||||
Keys.onReturnPressed: view.createJob (shareDelegate.index)
|
||||
Keys.onEnterPressed: view.createJob (shareDelegate.index)
|
||||
icon.name: shareDelegate.iconName
|
||||
|
||||
Kirigami.Icon {
|
||||
implicitWidth: Kirigami.Units.iconSizes.small
|
||||
implicitHeight: Kirigami.Units.iconSizes.small
|
||||
source: "arrow-right"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
onFinished: inputSheet.close()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -81,40 +95,55 @@ Item{
|
||||
|
||||
parent: applicationWindow().overlay
|
||||
|
||||
drawerContentItem: Purpose.AlternativesView {
|
||||
id: drawerView
|
||||
pluginType: "ShareUrl"
|
||||
clip: true
|
||||
Layout.fillHeight: true
|
||||
Layout.fillWidth: true
|
||||
delegate: Controls.ItemDelegate {
|
||||
id: shareDrawerDelegate
|
||||
|
||||
required property string iconName
|
||||
required property int index
|
||||
required property string actionDisplay
|
||||
|
||||
onClicked: view.createJob(shareDelegate.index)
|
||||
width: parent.width
|
||||
|
||||
contentItem: KirigamiDelegates.IconTitleSubtitle {
|
||||
title: shareDrawerDelegate.actionDisplay
|
||||
Keys.onReturnPressed: view.createJob (shareDrawerDelegate.index)
|
||||
Keys.onEnterPressed: view.createJob (shareDrawerDelegate.index)
|
||||
icon.name: shareDrawerDelegate.iconName
|
||||
|
||||
Kirigami.Icon {
|
||||
implicitWidth: Kirigami.Units.iconSizes.small
|
||||
implicitHeight: Kirigami.Units.iconSizes.small
|
||||
source: "arrow-right"
|
||||
}
|
||||
drawerContentItem: ColumnLayout {
|
||||
spacing:0
|
||||
KirigamiDelegates.SubtitleDelegate {
|
||||
Layout.fillWidth: true
|
||||
icon.name: "edit-copy"
|
||||
text: i18n("Copy Link")
|
||||
visible: drawerView.depth === 1
|
||||
onClicked: {
|
||||
Clipboard.text = root.url
|
||||
inputDrawer.close()
|
||||
applicationWindow().showPassiveNotification(i18n("Link copied to clipboard"))
|
||||
}
|
||||
}
|
||||
onFinished: inputDrawer.close()
|
||||
}
|
||||
Purpose.AlternativesView {
|
||||
id: drawerView
|
||||
pluginType: "ShareUrl"
|
||||
clip: true
|
||||
Layout.fillHeight: true
|
||||
Layout.fillWidth: true
|
||||
delegate: Controls.ItemDelegate {
|
||||
id: shareDrawerDelegate
|
||||
|
||||
required property string iconName
|
||||
required property int index
|
||||
required property string actionDisplay
|
||||
|
||||
onClicked: view.createJob(shareDelegate.index)
|
||||
width: parent.width
|
||||
|
||||
contentItem: KirigamiDelegates.IconTitleSubtitle {
|
||||
title: shareDrawerDelegate.actionDisplay
|
||||
Keys.onReturnPressed: view.createJob (shareDrawerDelegate.index)
|
||||
Keys.onEnterPressed: view.createJob (shareDrawerDelegate.index)
|
||||
icon.name: shareDrawerDelegate.iconName
|
||||
|
||||
Kirigami.Icon {
|
||||
implicitWidth: Kirigami.Units.iconSizes.small
|
||||
implicitHeight: Kirigami.Units.iconSizes.small
|
||||
source: "arrow-right"
|
||||
}
|
||||
}
|
||||
}
|
||||
onFinished: inputDrawer.close()
|
||||
}
|
||||
|
||||
Item{
|
||||
Layout.fillHeight: true
|
||||
}
|
||||
|
||||
Item{
|
||||
Layout.fillHeight: true
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -110,7 +110,7 @@ Components.ConvergentContextMenu {
|
||||
if (favouriteWatcher.isFavourite) {
|
||||
Library.removeFavourite(root.videoId)
|
||||
} else {
|
||||
Library.addFavourite(root.videoId, root.songTitle, root.artistsDisplayString, null, null, null)
|
||||
Library.addFavourite(root.videoId, root.songTitle, root.artistsDisplayString, "")
|
||||
}
|
||||
root.close()
|
||||
}
|
||||
|
||||
+6
-23
@@ -47,14 +47,9 @@ FavouritesModel *Library::favourites()
|
||||
return m_favourites;
|
||||
}
|
||||
|
||||
void Library::addFavourite(const QString &videoId,
|
||||
const QString &title,
|
||||
const QString &artistName,
|
||||
const QString &artistId,
|
||||
const QString &album,
|
||||
const QString &albumId)
|
||||
void Library::addFavourite(const QString &videoId, const QString &title, const QString &artist, const QString &album)
|
||||
{
|
||||
QCoro::connect(addSong(videoId, title, artistName, artistId, album, albumId), this, [=, this] {
|
||||
QCoro::connect(addSong(videoId, title, artist, album), this, [=, this] {
|
||||
QCoro::connect(m_database->execute(u"insert or ignore into favourites (video_id) values (?)"_s, videoId),
|
||||
this, &Library::refreshFavourites);
|
||||
});
|
||||
@@ -129,14 +124,9 @@ void Library::refreshFavourites()
|
||||
Q_EMIT favouritesChanged();
|
||||
}
|
||||
|
||||
void Library::addPlaybackHistoryItem(const QString &videoId,
|
||||
const QString &title,
|
||||
const QString &artistName,
|
||||
const QString &artistId,
|
||||
const QString &album,
|
||||
const QString &albumId)
|
||||
void Library::addPlaybackHistoryItem(const QString &videoId, const QString &title, const QString &artist, const QString &album)
|
||||
{
|
||||
QCoro::connect(addSong(videoId, title, artistName, artistId, album, albumId), this, [=, this] {
|
||||
QCoro::connect(addSong(videoId, title, artist, album), this, [=, this] {
|
||||
QCoro::connect(m_database->execute(u"insert or ignore into played_songs (video_id, plays) values (?, ?)"_s, videoId, 0), this, [=, this] {
|
||||
QCoro::connect(m_database->execute(u"update played_songs set plays = plays + 1 where video_id = ? "_s, videoId),
|
||||
this, &Library::refreshPlaybackHistory);
|
||||
@@ -170,17 +160,10 @@ QNetworkAccessManager &Library::nam()
|
||||
return m_networkImageCacher;
|
||||
}
|
||||
|
||||
QFuture<void>
|
||||
Library::addSong(const QString &videoId, const QString &title, const QString &artistName, const QString &artistId, const QString &album, const QString &albumId)
|
||||
QFuture<void> Library::addSong(const QString &videoId, const QString &title, const QString &artist, const QString &album)
|
||||
{
|
||||
// replace is used here to update songs from times when we didn't store artist and album
|
||||
return m_database->execute(u"insert or replace into songs (video_id, title, artist, album, artist_id, album_id) values (?, ?, ?, ?, ?, ?)"_s,
|
||||
videoId,
|
||||
title,
|
||||
artistName,
|
||||
album,
|
||||
artistId,
|
||||
albumId);
|
||||
return m_database->execute(u"insert or replace into songs (video_id, title, artist, album) values (?, ?, ?, ?)"_s, videoId, title, artist, album);
|
||||
}
|
||||
|
||||
PlaybackHistoryModel::PlaybackHistoryModel(QFuture<std::vector<PlayedSong>> &&songs, QObject *parent)
|
||||
|
||||
+3
-14
@@ -161,12 +161,7 @@ public:
|
||||
FavouritesModel *favourites();
|
||||
Q_SIGNAL void favouritesChanged();
|
||||
void refreshFavourites();
|
||||
Q_INVOKABLE void addFavourite(const QString &videoId,
|
||||
const QString &title,
|
||||
const QString &artistName,
|
||||
const QString &artistId,
|
||||
const QString &album,
|
||||
const QString &albumId);
|
||||
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);
|
||||
|
||||
@@ -181,12 +176,7 @@ public:
|
||||
PlaybackHistoryModel *playbackHistory();
|
||||
Q_SIGNAL void playbackHistoryChanged();
|
||||
void refreshPlaybackHistory();
|
||||
Q_INVOKABLE void addPlaybackHistoryItem(const QString &videoId,
|
||||
const QString &title,
|
||||
const QString &artistName,
|
||||
const QString &artistId,
|
||||
const QString &album,
|
||||
const QString &albumId);
|
||||
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);
|
||||
|
||||
@@ -198,8 +188,7 @@ public:
|
||||
ThreadedDatabase &database() {
|
||||
return *m_database;
|
||||
}
|
||||
QFuture<void>
|
||||
addSong(const QString &videoId, const QString &title, const QString &artistName, const QString &artistId, const QString &album, const QString &albumId);
|
||||
QFuture<void> addSong(const QString &videoId, const QString &title, const QString &artist, const QString &album);
|
||||
|
||||
private:
|
||||
explicit Library(QObject *parent = nullptr);
|
||||
|
||||
@@ -84,15 +84,9 @@ void LocalPlaylistsModel::addPlaylist(const QString &title, const QString &descr
|
||||
QCoro::connect(Library::instance().database().execute(u"insert into playlists (title, description) values (?, ?)"_s, title, description), &Library::instance(), &Library::playlistsChanged);
|
||||
}
|
||||
|
||||
void LocalPlaylistsModel::addPlaylistEntry(qint64 playlistId,
|
||||
const QString &videoId,
|
||||
const QString &title,
|
||||
const QString &artist,
|
||||
const QString &artistId,
|
||||
const QString &album,
|
||||
const QString &albumId)
|
||||
void LocalPlaylistsModel::addPlaylistEntry(qint64 playlistId, const QString &videoId, const QString &title, const QString &artist, const QString &album)
|
||||
{
|
||||
importer->addPlaylistEntry(playlistId, videoId, title, artist, artistId, album, albumId);
|
||||
importer->addPlaylistEntry(playlistId, videoId, title, artist, album);
|
||||
}
|
||||
|
||||
void LocalPlaylistsModel::addPlaylistEntry(qint64 playlistId, const playlist::Track &track)
|
||||
|
||||
@@ -48,13 +48,7 @@ public:
|
||||
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 &artistId,
|
||||
const QString &album,
|
||||
const QString &albumId);
|
||||
Q_INVOKABLE void addPlaylistEntry(qint64 playlistId, const QString &videoId, const QString &title, const QString &artist, const QString &album);
|
||||
Q_INVOKABLE void addPlaylistEntry(qint64 playlistId, const playlist::Track &track);
|
||||
Q_INVOKABLE void importPlaylist(const QString &url);
|
||||
Q_SIGNAL void importFinished();
|
||||
|
||||
+36
-26
@@ -3,10 +3,6 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
|
||||
|
||||
#include <QApplication>
|
||||
#include <QDir>
|
||||
#include <QFile>
|
||||
#include <QLibraryInfo>
|
||||
#include <QStandardPaths>
|
||||
#include <QQmlApplicationEngine>
|
||||
#include <QtQml>
|
||||
#include <QSortFilterProxyModel>
|
||||
@@ -19,9 +15,8 @@
|
||||
#include <KAboutData>
|
||||
#include <KCrash>
|
||||
#include <KIconTheme>
|
||||
#include <KLocalizedQmlContext>
|
||||
#include <KLocalizedContext>
|
||||
#include <KLocalizedString>
|
||||
#include <KirigamiAddons/App/KirigamiAppDefaults>
|
||||
|
||||
#include <ThreadedDatabase>
|
||||
|
||||
@@ -29,34 +24,47 @@
|
||||
|
||||
using namespace Qt::StringLiterals;
|
||||
|
||||
// Sessions outside of Plasma often export a GTK platform theme (or none), which leaves Qt applications
|
||||
// with a default light palette even though the system's Qt theme, configured through qt6ct, is dark.
|
||||
// Use qt6ct when it is configured and installed, unless the session already selected a Qt-specific theme.
|
||||
static void useConfiguredQtPlatformTheme()
|
||||
class StyleFallback
|
||||
{
|
||||
if (QString::fromLocal8Bit(qgetenv("XDG_CURRENT_DESKTOP")).contains(u"KDE"_s, Qt::CaseInsensitive)) {
|
||||
return; // plasma-integration takes care of this
|
||||
public:
|
||||
StyleFallback()
|
||||
{
|
||||
if (QGuiApplication::instance()) {
|
||||
qFatal("StyleFallback must be created before Q(Gui)Application");
|
||||
}
|
||||
|
||||
KIconTheme::initTheme();
|
||||
|
||||
m_initialQuickControlsStyle = QQuickStyle::name();
|
||||
}
|
||||
|
||||
const auto current = qEnvironmentVariable("QT_QPA_PLATFORMTHEME");
|
||||
if (!current.isEmpty() && !current.startsWith(u"gtk"_s)) {
|
||||
return;
|
||||
void setup(QGuiApplication *app)
|
||||
{
|
||||
Q_ASSERT(app); // Force people to run this at the right time
|
||||
|
||||
// Check if the platformtheme or user set up a style for us
|
||||
if (m_initialQuickControlsStyle != QQuickStyle::name()
|
||||
|| !qEnvironmentVariableIsEmpty("QT_QUICK_CONTROLS_STYLE")) {
|
||||
return;
|
||||
}
|
||||
|
||||
qWarning() << "Detected that the platform did not set up a style, using defaults";
|
||||
|
||||
// platformtheme did not handle QtQuick styling, set everything to fallback values
|
||||
QQuickStyle::setStyle(QStringLiteral("org.kde.desktop"));
|
||||
QApplication::setStyle(QStyleFactory::create(QStringLiteral("Breeze")));
|
||||
QIcon::setThemeName(QStringLiteral("breeze"));
|
||||
}
|
||||
|
||||
const bool configured = !QStandardPaths::locate(QStandardPaths::GenericConfigLocation, u"qt6ct/qt6ct.conf"_s).isEmpty();
|
||||
const bool installed = QFile::exists(QLibraryInfo::path(QLibraryInfo::PluginsPath) + u"/platformthemes/libqt6ct.so"_s);
|
||||
if (configured && installed) {
|
||||
qputenv("QT_QPA_PLATFORMTHEME", "qt6ct");
|
||||
qputenv("QT_QPA_PLATFORMTHEME_QT6", "qt6ct");
|
||||
}
|
||||
}
|
||||
private:
|
||||
QString m_initialQuickControlsStyle;
|
||||
};
|
||||
|
||||
Q_DECL_EXPORT int main(int argc, char *argv[])
|
||||
{
|
||||
useConfiguredQtPlatformTheme();
|
||||
|
||||
StyleFallback fallback;
|
||||
QApplication app(argc, argv);
|
||||
KirigamiAppDefaults::apply(&app);
|
||||
fallback.setup(&app);
|
||||
|
||||
// WORKAROUND: Force QtMultimedia gstreamer backend
|
||||
/*
|
||||
@@ -98,9 +106,11 @@ Q_DECL_EXPORT int main(int argc, char *argv[])
|
||||
|
||||
QGuiApplication::setWindowIcon(QIcon::fromTheme(QStringLiteral("org.kde.audiotube")));
|
||||
|
||||
KCrash::initialize();
|
||||
|
||||
QQmlApplicationEngine engine;
|
||||
|
||||
KLocalization::setupLocalizedContext(&engine);
|
||||
engine.rootContext()->setContextObject(new KLocalizedContext(&engine));
|
||||
engine.loadFromModule("org.kde.audiotube", "Main");
|
||||
|
||||
if (engine.rootObjects().isEmpty()) {
|
||||
|
||||
@@ -1,6 +0,0 @@
|
||||
-- SPDX-FileCopyrightText: 2026 Jonah Brüchert <[email protected]>
|
||||
--
|
||||
-- SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
|
||||
|
||||
alter table songs drop column artist_id;
|
||||
alter table songs drop column album_id;
|
||||
@@ -1,6 +0,0 @@
|
||||
-- SPDX-FileCopyrightText: 2026 Jonah Brüchert <[email protected]>
|
||||
--
|
||||
-- SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
|
||||
|
||||
alter table songs add column artist_id Text;
|
||||
alter table songs add column album_id Text;
|
||||
@@ -47,15 +47,9 @@ void PlaylistImporter::importPlaylist(const QString &url)
|
||||
});
|
||||
}
|
||||
|
||||
void PlaylistImporter::addPlaylistEntry(qint64 playlistId,
|
||||
const QString &videoId,
|
||||
const QString &title,
|
||||
const QString &artist,
|
||||
const QString &artistId,
|
||||
const QString &album,
|
||||
const QString &albumId)
|
||||
void PlaylistImporter::addPlaylistEntry(qint64 playlistId, const QString &videoId, const QString &title, const QString &artist, const QString &album)
|
||||
{
|
||||
QCoro::connect(Library::instance().addSong(videoId, title, artist, artistId, album, albumId), this, [=, this] {
|
||||
QCoro::connect(Library::instance().addSong(videoId, title, artist, album), this, [=, this] {
|
||||
QCoro::connect(Library::instance().database().execute(u"insert into playlist_entries (playlist_id, video_id) values (?, ?)"_s, playlistId, videoId), this, [=, this] {
|
||||
Q_EMIT playlistEntriesChanged(playlistId);
|
||||
});
|
||||
@@ -67,10 +61,8 @@ void PlaylistImporter::addPlaylistEntry(qint64 playlistId, const playlist::Track
|
||||
const QString videoId = QString::fromStdString(track.video_id.value());
|
||||
const QString title = (!track.title.empty()) ? QString::fromStdString(track.title) : i18n("No title");
|
||||
const QString artists = PlaylistUtils::artistsToString(track.artists);
|
||||
const QString artistId = track.artists.empty() ? QString() : QString::fromStdString(track.artists.front().id.value_or(std::string()));
|
||||
const QString album = track.album ? QString::fromStdString(track.album->name) : i18n("No album");
|
||||
const QString albumId = track.album ? QString::fromStdString(track.album->id.value_or(std::string())) : QString();
|
||||
this->addPlaylistEntry(playlistId, videoId, title, artists, artistId, album, albumId);
|
||||
const QString album = track.album ? QString::fromStdString(track.album->name) : i18n("No album");
|
||||
this->addPlaylistEntry(playlistId, videoId, title, artists, album);
|
||||
}
|
||||
|
||||
void PlaylistImporter::renamePlaylist(qint64 playlistId, const QString &name, const QString &description)
|
||||
|
||||
@@ -19,13 +19,7 @@ public:
|
||||
|
||||
Q_INVOKABLE void importPlaylist(const QString &url);
|
||||
Q_SIGNAL void importFinished();
|
||||
Q_INVOKABLE void addPlaylistEntry(qint64 playlistId,
|
||||
const QString &videoId,
|
||||
const QString &title,
|
||||
const QString &artist,
|
||||
const QString &artistId,
|
||||
const QString &album,
|
||||
const QString &albumId);
|
||||
Q_INVOKABLE void addPlaylistEntry(qint64 playlistId, const QString &videoId, const QString &title, const QString &artist, const QString &album);
|
||||
Q_INVOKABLE void addPlaylistEntry(qint64 playlistId, const playlist::Track &track);
|
||||
|
||||
Q_INVOKABLE void renamePlaylist(qint64 playlistId, const QString &name, const QString &description);
|
||||
|
||||
@@ -1,8 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24">
|
||||
<g fill="none" stroke="#ffffff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
||||
<path d="M3 8V6a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2h-6"/>
|
||||
<path d="M3 12a9 9 0 0 1 9 9"/>
|
||||
<path d="M3 16a5 5 0 0 1 5 5"/>
|
||||
</g>
|
||||
<circle cx="4" cy="20" r="1.5" fill="#ffffff"/>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 393 B |
@@ -1,6 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 22 22" width="22" height="22">
|
||||
<style id="current-color-scheme" type="text/css">
|
||||
.ColorScheme-Text { color: #232629; }
|
||||
</style>
|
||||
<path class="ColorScheme-Text" fill="currentColor" d="M11 3C6.6 3 3 6.6 3 11v6a2 2 0 0 0 2 2h1.5a1 1 0 0 0 1-1v-5a1 1 0 0 0-1-1H5v-1c0-3.3 2.7-6 6-6s6 2.7 6 6v1h-1.5a1 1 0 0 0-1 1v5a1 1 0 0 0 1 1H17a2 2 0 0 0 2-2v-6c0-4.4-3.6-8-8-8z"/>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 434 B |
@@ -1,333 +0,0 @@
|
||||
// SPDX-FileCopyrightText: 2026 AudioTube contributors
|
||||
//
|
||||
// SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
|
||||
|
||||
#include "trayicon.h"
|
||||
|
||||
#include <QCoreApplication>
|
||||
#include <QDBusConnection>
|
||||
#include <QDBusConnectionInterface>
|
||||
#include <QDBusMessage>
|
||||
#include <QDBusVariant>
|
||||
#include <QEvent>
|
||||
#include <QFile>
|
||||
#include <QGuiApplication>
|
||||
#include <QIcon>
|
||||
#include <QPainter>
|
||||
#include <QPixmap>
|
||||
#include <QStyleHints>
|
||||
#include <QSvgRenderer>
|
||||
|
||||
#include <KLocalizedString>
|
||||
#include <KStatusNotifierItem>
|
||||
#include <KWindowSystem>
|
||||
|
||||
using namespace Qt::StringLiterals;
|
||||
|
||||
namespace
|
||||
{
|
||||
const QString ICON_NAME = u"org.kde.audiotube-symbolic"_s;
|
||||
const QString ICON_RESOURCE = u":/qt/qml/org/kde/audiotube/resources/org.kde.audiotube-symbolic.svg"_s;
|
||||
// Colour used for the foreground in the bundled symbolic icon
|
||||
const QString ICON_PLACEHOLDER_COLOR = u"#232629"_s;
|
||||
// Breeze text colours for light and dark backgrounds
|
||||
const QString ICON_COLOR_ON_LIGHT = u"#232629"_s;
|
||||
const QString ICON_COLOR_ON_DARK = u"#fcfcfc"_s;
|
||||
|
||||
const QString PORTAL_SERVICE = u"org.freedesktop.portal.Desktop"_s;
|
||||
const QString PORTAL_PATH = u"/org/freedesktop/portal/desktop"_s;
|
||||
const QString PORTAL_SETTINGS = u"org.freedesktop.portal.Settings"_s;
|
||||
|
||||
/// Whether the desktop asks for a dark appearance. The shell hosting the tray follows this setting, which is not
|
||||
/// necessarily the palette this application ended up with (e.g. with a GTK platform theme), so ask the settings portal.
|
||||
bool systemPrefersDark()
|
||||
{
|
||||
auto call = QDBusMessage::createMethodCall(PORTAL_SERVICE, PORTAL_PATH, PORTAL_SETTINGS, u"Read"_s);
|
||||
call << u"org.freedesktop.appearance"_s << u"color-scheme"_s;
|
||||
const auto reply = QDBusConnection::sessionBus().call(call, QDBus::Block, 500);
|
||||
if (reply.type() == QDBusMessage::ReplyMessage && !reply.arguments().isEmpty()) {
|
||||
// The portal wraps the value in a variant, and the method's return value in another one
|
||||
auto value = reply.arguments().first().value<QDBusVariant>().variant();
|
||||
if (value.canConvert<QDBusVariant>()) {
|
||||
value = value.value<QDBusVariant>().variant();
|
||||
}
|
||||
switch (value.toUInt()) {
|
||||
case 1:
|
||||
return true;
|
||||
case 2:
|
||||
return false;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
const auto palette = QGuiApplication::palette();
|
||||
return palette.color(QPalette::WindowText).lightness() > palette.color(QPalette::Window).lightness();
|
||||
}
|
||||
|
||||
/// Renders the bundled monochrome icon for a light or dark tray background.
|
||||
QIcon renderMonochromeIcon()
|
||||
{
|
||||
QFile file(ICON_RESOURCE);
|
||||
if (!file.open(QIODevice::ReadOnly)) {
|
||||
return {};
|
||||
}
|
||||
auto svg = QString::fromUtf8(file.readAll());
|
||||
svg.replace(ICON_PLACEHOLDER_COLOR, systemPrefersDark() ? ICON_COLOR_ON_DARK : ICON_COLOR_ON_LIGHT, Qt::CaseInsensitive);
|
||||
|
||||
QSvgRenderer renderer(svg.toUtf8());
|
||||
QIcon icon;
|
||||
for (const int size : {16, 22, 24, 32, 48, 64}) {
|
||||
const qreal dpr = qApp->devicePixelRatio();
|
||||
QPixmap pixmap(QSize(size, size) * dpr);
|
||||
pixmap.setDevicePixelRatio(dpr);
|
||||
pixmap.fill(Qt::transparent);
|
||||
QPainter painter(&pixmap);
|
||||
renderer.render(&painter, QRectF(0, 0, size, size));
|
||||
painter.end();
|
||||
icon.addPixmap(pixmap);
|
||||
}
|
||||
return icon;
|
||||
}
|
||||
}
|
||||
|
||||
TrayIcon::TrayIcon(QObject *parent)
|
||||
: QObject(parent)
|
||||
{
|
||||
// The window is hidden, not closed, when the user dismisses it; quitting happens through the tray menu.
|
||||
QGuiApplication::setQuitOnLastWindowClosed(false);
|
||||
qApp->installEventFilter(this);
|
||||
|
||||
m_menu = new QMenu;
|
||||
m_toggleAction = m_menu->addAction(i18n("Show AudioTube"));
|
||||
connect(m_toggleAction, &QAction::triggered, this, &TrayIcon::toggleWindow);
|
||||
m_menu->addSeparator();
|
||||
|
||||
m_previousAction = m_menu->addAction(QIcon::fromTheme(u"media-skip-backward"_s), i18n("Previous Track"));
|
||||
connect(m_previousAction, &QAction::triggered, this, &TrayIcon::previousRequested);
|
||||
m_playPauseAction = m_menu->addAction(QIcon::fromTheme(u"media-playback-start"_s), i18n("Play"));
|
||||
connect(m_playPauseAction, &QAction::triggered, this, &TrayIcon::playPauseRequested);
|
||||
m_nextAction = m_menu->addAction(QIcon::fromTheme(u"media-skip-forward"_s), i18n("Next Track"));
|
||||
connect(m_nextAction, &QAction::triggered, this, &TrayIcon::nextRequested);
|
||||
m_menu->addSeparator();
|
||||
|
||||
m_quitAction = m_menu->addAction(QIcon::fromTheme(u"application-exit"_s), i18n("Quit"));
|
||||
connect(m_quitAction, &QAction::triggered, this, &TrayIcon::quit);
|
||||
|
||||
m_item = new KStatusNotifierItem(u"org.kde.audiotube"_s, this);
|
||||
m_item->setCategory(KStatusNotifierItem::ApplicationStatus);
|
||||
m_item->setStatus(KStatusNotifierItem::Active);
|
||||
m_item->setTitle(i18n("AudioTube"));
|
||||
m_item->setStandardActionsEnabled(false);
|
||||
m_item->setContextMenu(m_menu); // takes ownership
|
||||
connect(m_item, &KStatusNotifierItem::activateRequested, this, [this] {
|
||||
toggleWindow();
|
||||
});
|
||||
connect(m_item, &KStatusNotifierItem::secondaryActivateRequested, this, &TrayIcon::playPauseRequested);
|
||||
|
||||
// Follow light/dark switches, for hosts that don't recolour symbolic icons themselves
|
||||
connect(QGuiApplication::styleHints(), &QStyleHints::colorSchemeChanged, this, &TrayIcon::updateIcon);
|
||||
QDBusConnection::sessionBus().connect(PORTAL_SERVICE, PORTAL_PATH, PORTAL_SETTINGS, u"SettingChanged"_s, this, SLOT(onPortalSettingChanged(QString, QString, QDBusVariant)));
|
||||
|
||||
updateIcon();
|
||||
updateActions();
|
||||
}
|
||||
|
||||
TrayIcon::~TrayIcon() = default;
|
||||
|
||||
QWindow *TrayIcon::window() const
|
||||
{
|
||||
return m_window;
|
||||
}
|
||||
|
||||
void TrayIcon::setWindow(QWindow *window)
|
||||
{
|
||||
if (m_window == window) {
|
||||
return;
|
||||
}
|
||||
if (m_window) {
|
||||
m_window->removeEventFilter(this);
|
||||
}
|
||||
m_window = window;
|
||||
if (m_window) {
|
||||
m_window->installEventFilter(this);
|
||||
connect(m_window, &QWindow::visibleChanged, this, &TrayIcon::updateActions);
|
||||
}
|
||||
updateActions();
|
||||
Q_EMIT windowChanged();
|
||||
}
|
||||
|
||||
bool TrayIcon::playing() const
|
||||
{
|
||||
return m_playing;
|
||||
}
|
||||
|
||||
void TrayIcon::setPlaying(bool playing)
|
||||
{
|
||||
if (m_playing == playing) {
|
||||
return;
|
||||
}
|
||||
m_playing = playing;
|
||||
updateActions();
|
||||
Q_EMIT playingChanged();
|
||||
}
|
||||
|
||||
QString TrayIcon::trackTitle() const
|
||||
{
|
||||
return m_trackTitle;
|
||||
}
|
||||
|
||||
void TrayIcon::setTrackTitle(const QString &title)
|
||||
{
|
||||
if (m_trackTitle == title) {
|
||||
return;
|
||||
}
|
||||
m_trackTitle = title;
|
||||
updateActions();
|
||||
Q_EMIT trackTitleChanged();
|
||||
}
|
||||
|
||||
QString TrayIcon::trackArtist() const
|
||||
{
|
||||
return m_trackArtist;
|
||||
}
|
||||
|
||||
void TrayIcon::setTrackArtist(const QString &artist)
|
||||
{
|
||||
if (m_trackArtist == artist) {
|
||||
return;
|
||||
}
|
||||
m_trackArtist = artist;
|
||||
updateActions();
|
||||
Q_EMIT trackArtistChanged();
|
||||
}
|
||||
|
||||
bool TrayIcon::canGoNext() const
|
||||
{
|
||||
return m_canGoNext;
|
||||
}
|
||||
|
||||
void TrayIcon::setCanGoNext(bool can)
|
||||
{
|
||||
if (m_canGoNext == can) {
|
||||
return;
|
||||
}
|
||||
m_canGoNext = can;
|
||||
updateActions();
|
||||
Q_EMIT canGoNextChanged();
|
||||
}
|
||||
|
||||
bool TrayIcon::canGoPrevious() const
|
||||
{
|
||||
return m_canGoPrevious;
|
||||
}
|
||||
|
||||
void TrayIcon::setCanGoPrevious(bool can)
|
||||
{
|
||||
if (m_canGoPrevious == can) {
|
||||
return;
|
||||
}
|
||||
m_canGoPrevious = can;
|
||||
updateActions();
|
||||
Q_EMIT canGoPreviousChanged();
|
||||
}
|
||||
|
||||
void TrayIcon::toggleWindow()
|
||||
{
|
||||
if (!m_window) {
|
||||
return;
|
||||
}
|
||||
if (m_window->isVisible() && !(m_window->windowStates() & Qt::WindowMinimized)) {
|
||||
m_window->hide();
|
||||
} else {
|
||||
showWindow();
|
||||
}
|
||||
}
|
||||
|
||||
void TrayIcon::showWindow()
|
||||
{
|
||||
if (!m_window) {
|
||||
return;
|
||||
}
|
||||
m_window->setWindowStates(m_window->windowStates() & ~Qt::WindowMinimized);
|
||||
m_window->show();
|
||||
m_window->raise();
|
||||
KWindowSystem::activateWindow(m_window);
|
||||
m_window->requestActivate();
|
||||
}
|
||||
|
||||
bool TrayIcon::trayAvailable() const
|
||||
{
|
||||
auto *bus = QDBusConnection::sessionBus().interface();
|
||||
return bus && bus->isServiceRegistered(u"org.kde.StatusNotifierWatcher"_s);
|
||||
}
|
||||
|
||||
bool TrayIcon::eventFilter(QObject *watched, QEvent *event)
|
||||
{
|
||||
if (watched == qApp) {
|
||||
// quit() asks every window to close first; that must not be mistaken for the user dismissing the window
|
||||
if (event->type() == QEvent::Quit) {
|
||||
m_quitting = true;
|
||||
} else if (event->type() == QEvent::ApplicationPaletteChange) {
|
||||
updateIcon();
|
||||
}
|
||||
} else if (watched == m_window && event->type() == QEvent::Close && !m_quitting) {
|
||||
if (trayAvailable()) {
|
||||
event->ignore();
|
||||
m_window->hide();
|
||||
} else {
|
||||
// Without a tray there would be no way back to a hidden window
|
||||
QCoreApplication::quit();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
return QObject::eventFilter(watched, event);
|
||||
}
|
||||
|
||||
void TrayIcon::onPortalSettingChanged(const QString &ns, const QString &key, const QDBusVariant &)
|
||||
{
|
||||
if (ns == "org.freedesktop.appearance"_L1 && key == "color-scheme"_L1) {
|
||||
updateIcon();
|
||||
}
|
||||
}
|
||||
|
||||
void TrayIcon::updateIcon()
|
||||
{
|
||||
// Plasma recolours symbolic named icons to match the panel. Other hosts show them as they are, so they get
|
||||
// a pixmap that is rendered for the light or dark appearance of the desktop instead.
|
||||
const bool onPlasma = qEnvironmentVariable("XDG_CURRENT_DESKTOP").contains(u"KDE"_s, Qt::CaseInsensitive);
|
||||
if (onPlasma && QIcon::hasThemeIcon(ICON_NAME)) {
|
||||
m_item->setIconByName(ICON_NAME);
|
||||
return;
|
||||
}
|
||||
|
||||
const auto monochrome = renderMonochromeIcon();
|
||||
if (!monochrome.isNull()) {
|
||||
m_item->setIconByPixmap(monochrome);
|
||||
} else {
|
||||
m_item->setIconByName(u"org.kde.audiotube"_s);
|
||||
}
|
||||
}
|
||||
|
||||
void TrayIcon::updateActions()
|
||||
{
|
||||
const bool visible = m_window && m_window->isVisible() && !(m_window->windowStates() & Qt::WindowMinimized);
|
||||
m_toggleAction->setText(visible ? i18n("Hide to Tray") : i18n("Show AudioTube"));
|
||||
|
||||
m_playPauseAction->setText(m_playing ? i18n("Pause") : i18n("Play"));
|
||||
m_playPauseAction->setIcon(QIcon::fromTheme(m_playing ? u"media-playback-pause"_s : u"media-playback-start"_s));
|
||||
m_previousAction->setEnabled(m_canGoPrevious);
|
||||
m_nextAction->setEnabled(m_canGoNext);
|
||||
|
||||
if (m_trackTitle.isEmpty()) {
|
||||
m_item->setToolTip(ICON_NAME, i18n("AudioTube"), QString());
|
||||
} else {
|
||||
m_item->setToolTip(ICON_NAME, m_trackTitle, m_trackArtist);
|
||||
}
|
||||
}
|
||||
|
||||
void TrayIcon::quit()
|
||||
{
|
||||
m_quitting = true;
|
||||
QCoreApplication::quit();
|
||||
}
|
||||
@@ -1,93 +0,0 @@
|
||||
// SPDX-FileCopyrightText: 2026 AudioTube contributors
|
||||
//
|
||||
// SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <QAction>
|
||||
#include <QMenu>
|
||||
#include <QObject>
|
||||
#include <QPointer>
|
||||
#include <QWindow>
|
||||
#include <qqmlintegration.h>
|
||||
|
||||
class KStatusNotifierItem;
|
||||
class QDBusVariant;
|
||||
|
||||
/**
|
||||
* System tray icon. Closing the associated window hides it to the tray, so that playback keeps running;
|
||||
* clicking the icon toggles the window.
|
||||
*/
|
||||
class TrayIcon : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
QML_ELEMENT
|
||||
|
||||
Q_PROPERTY(QWindow *window READ window WRITE setWindow NOTIFY windowChanged)
|
||||
Q_PROPERTY(bool playing READ playing WRITE setPlaying NOTIFY playingChanged)
|
||||
Q_PROPERTY(QString trackTitle READ trackTitle WRITE setTrackTitle NOTIFY trackTitleChanged)
|
||||
Q_PROPERTY(QString trackArtist READ trackArtist WRITE setTrackArtist NOTIFY trackArtistChanged)
|
||||
Q_PROPERTY(bool canGoNext READ canGoNext WRITE setCanGoNext NOTIFY canGoNextChanged)
|
||||
Q_PROPERTY(bool canGoPrevious READ canGoPrevious WRITE setCanGoPrevious NOTIFY canGoPreviousChanged)
|
||||
|
||||
public:
|
||||
explicit TrayIcon(QObject *parent = nullptr);
|
||||
~TrayIcon() override;
|
||||
|
||||
QWindow *window() const;
|
||||
void setWindow(QWindow *window);
|
||||
Q_SIGNAL void windowChanged();
|
||||
|
||||
bool playing() const;
|
||||
void setPlaying(bool playing);
|
||||
Q_SIGNAL void playingChanged();
|
||||
|
||||
QString trackTitle() const;
|
||||
void setTrackTitle(const QString &title);
|
||||
Q_SIGNAL void trackTitleChanged();
|
||||
|
||||
QString trackArtist() const;
|
||||
void setTrackArtist(const QString &artist);
|
||||
Q_SIGNAL void trackArtistChanged();
|
||||
|
||||
bool canGoNext() const;
|
||||
void setCanGoNext(bool can);
|
||||
Q_SIGNAL void canGoNextChanged();
|
||||
|
||||
bool canGoPrevious() const;
|
||||
void setCanGoPrevious(bool can);
|
||||
Q_SIGNAL void canGoPreviousChanged();
|
||||
|
||||
Q_INVOKABLE void toggleWindow();
|
||||
Q_INVOKABLE void showWindow();
|
||||
|
||||
Q_SIGNAL void playPauseRequested();
|
||||
Q_SIGNAL void nextRequested();
|
||||
Q_SIGNAL void previousRequested();
|
||||
|
||||
protected:
|
||||
bool eventFilter(QObject *watched, QEvent *event) override;
|
||||
|
||||
private:
|
||||
Q_SLOT void onPortalSettingChanged(const QString &ns, const QString &key, const QDBusVariant &value);
|
||||
bool trayAvailable() const;
|
||||
void updateIcon();
|
||||
void updateActions();
|
||||
void quit();
|
||||
|
||||
KStatusNotifierItem *m_item = nullptr;
|
||||
QMenu *m_menu = nullptr; // owned by the status notifier item
|
||||
QAction *m_toggleAction = nullptr;
|
||||
QAction *m_playPauseAction = nullptr;
|
||||
QAction *m_previousAction = nullptr;
|
||||
QAction *m_nextAction = nullptr;
|
||||
QAction *m_quitAction = nullptr;
|
||||
|
||||
QPointer<QWindow> m_window;
|
||||
bool m_playing = false;
|
||||
QString m_trackTitle;
|
||||
QString m_trackArtist;
|
||||
bool m_canGoNext = false;
|
||||
bool m_canGoPrevious = false;
|
||||
bool m_quitting = false;
|
||||
};
|
||||
@@ -87,15 +87,6 @@ QVariant UserPlaylistModel::data(const QModelIndex &index, int role) const
|
||||
return QString::fromStdString(m_playlist.tracks[index.row()].video_id);
|
||||
case Artists:
|
||||
return PlaylistUtils::artistsToString(m_playlist.tracks[index.row()].artists);
|
||||
case ArtistId:
|
||||
if (!m_playlist.tracks[index.row()].artists.empty()) {
|
||||
auto const &id = m_playlist.tracks[index.row()].artists.front().id;
|
||||
if (id) {
|
||||
return QString::fromStdString(*id);
|
||||
}
|
||||
}
|
||||
|
||||
return {};
|
||||
case Album:
|
||||
return QString::fromStdString(m_playlist.tracks[index.row()].album.value_or(meta::Album()).name);
|
||||
case AlbumId:
|
||||
|
||||
@@ -39,7 +39,6 @@ public:
|
||||
Title = Qt::UserRole + 1,
|
||||
VideoId,
|
||||
Artists,
|
||||
ArtistId,
|
||||
Album,
|
||||
AlbumId,
|
||||
IsCurrent,
|
||||
|
||||
@@ -49,15 +49,8 @@ QUrl VideoInfoExtractor::audioUrl() const
|
||||
return (!format.acodec.has_value() || format.acodec != "none") && format.vcodec == "none";
|
||||
});
|
||||
|
||||
const auto isOpus = [](const video_info::Format &format) {
|
||||
return format.acodec == "opus";
|
||||
};
|
||||
|
||||
std::stable_sort(audioFormats.begin(), audioFormats.end(), [&](const video_info::Format &a, const video_info::Format &b) {
|
||||
if (a.quality != b.quality) {
|
||||
return a.quality > b.quality;
|
||||
}
|
||||
return isOpus(a) && !isOpus(b);
|
||||
std::sort(audioFormats.begin(), audioFormats.end(), [](const video_info::Format &a, const video_info::Format &b) {
|
||||
return a.quality > b.quality;
|
||||
});
|
||||
|
||||
if (audioFormats.empty()) {
|
||||
|
||||
+1
-1
@@ -12,7 +12,7 @@
|
||||
#include <vector>
|
||||
#include <memory>
|
||||
|
||||
constexpr auto TESTED_YTMUSICAPI_VERSION = "1.12.3";
|
||||
constexpr auto TESTED_YTMUSICAPI_VERSION = "1.12.1";
|
||||
|
||||
struct YTMusicPrivate;
|
||||
|
||||
|
||||
Reference in new issue
Block a user