├── .flatpak-manifest.json ├── .flatpak-manifest.json.license ├── .git-blame-ignore-revs ├── .gitignore ├── .gitlab-ci.yml ├── .kde-ci.yml ├── CMakeLists.txt ├── CMakePresets.json ├── LICENSES ├── CC0-1.0.txt ├── GPL-2.0-only.txt ├── GPL-2.0-or-later.txt ├── GPL-3.0-only.txt ├── LGPL-3.0-or-later.txt └── LicenseRef-KDE-Accepted-GPL.txt ├── Messages.sh ├── REUSE.toml ├── config.h.in ├── logo.png ├── logo.png.license ├── misc ├── 128-apps-dragonplayer.png ├── 128-apps-dragonplayer.png.license ├── 16-apps-dragonplayer.png ├── 16-apps-dragonplayer.png.license ├── 22-apps-dragonplayer.png ├── 22-apps-dragonplayer.png.license ├── 32-apps-dragonplayer.png ├── 32-apps-dragonplayer.png.license ├── 48-apps-dragonplayer.png ├── 48-apps-dragonplayer.png.license ├── 64-apps-dragonplayer.png ├── 64-apps-dragonplayer.png.license ├── CMakeLists.txt ├── org.kde.dragonplayer.appdata.xml ├── org.kde.dragonplayer.desktop ├── sc-apps-dragonplayer.svgz └── sc-apps-dragonplayer.svgz.license ├── po ├── ar │ └── dragonplayer.po ├── ast │ └── dragonplayer.po ├── be │ └── dragonplayer.po ├── bg │ └── dragonplayer.po ├── bs │ └── dragonplayer.po ├── ca │ └── dragonplayer.po ├── ca@valencia │ └── dragonplayer.po ├── cs │ └── dragonplayer.po ├── da │ └── dragonplayer.po ├── de │ └── dragonplayer.po ├── el │ └── dragonplayer.po ├── en_GB │ └── dragonplayer.po ├── eo │ └── dragonplayer.po ├── es │ └── dragonplayer.po ├── et │ └── dragonplayer.po ├── eu │ └── dragonplayer.po ├── fi │ └── dragonplayer.po ├── fr │ └── dragonplayer.po ├── ga │ └── dragonplayer.po ├── gl │ └── dragonplayer.po ├── he │ └── dragonplayer.po ├── hi │ └── dragonplayer.po ├── hr │ └── dragonplayer.po ├── hu │ └── dragonplayer.po ├── ia │ └── dragonplayer.po ├── id │ └── dragonplayer.po ├── is │ └── dragonplayer.po ├── it │ └── dragonplayer.po ├── ja │ └── dragonplayer.po ├── ka │ └── dragonplayer.po ├── kk │ └── dragonplayer.po ├── km │ └── dragonplayer.po ├── ko │ └── dragonplayer.po ├── ku │ └── dragonplayer.po ├── lt │ └── dragonplayer.po ├── lv │ └── dragonplayer.po ├── mr │ └── dragonplayer.po ├── nb │ └── dragonplayer.po ├── nds │ └── dragonplayer.po ├── nl │ └── dragonplayer.po ├── nn │ └── dragonplayer.po ├── oc │ └── dragonplayer.po ├── pa │ └── dragonplayer.po ├── pl │ └── dragonplayer.po ├── pt │ └── dragonplayer.po ├── pt_BR │ └── dragonplayer.po ├── ro │ └── dragonplayer.po ├── ru │ └── dragonplayer.po ├── sa │ └── dragonplayer.po ├── sk │ └── dragonplayer.po ├── sl │ └── dragonplayer.po ├── sq │ └── dragonplayer.po ├── sr │ └── dragonplayer.po ├── sr@ijekavian │ └── dragonplayer.po ├── sr@ijekavianlatin │ └── dragonplayer.po ├── sr@latin │ └── dragonplayer.po ├── sv │ └── dragonplayer.po ├── th │ └── dragonplayer.po ├── tr │ └── dragonplayer.po ├── ug │ └── dragonplayer.po ├── uk │ └── dragonplayer.po ├── wa │ └── dragonplayer.po ├── zh_CN │ └── dragonplayer.po └── zh_TW │ └── dragonplayer.po ├── snapcraft.yaml └── src ├── CMakeLists.txt ├── dragon.h ├── fileopen.cpp ├── fileopen.h ├── main.cpp ├── mpris2 ├── mediaplayer2.cpp ├── mediaplayer2.h ├── mediaplayer2player.cpp ├── mediaplayer2player.h ├── mpris2.cpp └── mpris2.h ├── qml ├── AboutPage.qml ├── ControlsBar.qml ├── IconToolButton.qml ├── Main.qml ├── OverlayPopup.qml ├── PlayerPage.qml ├── VolumeButton.qml └── WelcomeView.qml ├── sandbox.cpp └── sandbox.h /.flatpak-manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "org.kde.dragonplayer", 3 | "branch": "master", 4 | "runtime": "org.kde.Platform", 5 | "runtime-version": "6.8", 6 | "sdk": "org.kde.Sdk", 7 | "command": "dragon", 8 | "tags": ["nightly"], 9 | "desktop-file-name-suffix": " (Nightly)", 10 | "finish-args": [ 11 | "--share=ipc", 12 | "--socket=wayland", 13 | "--socket=pulseaudio", 14 | "--talk-name=org.mpris.MediaPlayer2.Player", 15 | "--own-name=org.mpris.MediaPlayer2.dragonplayer", 16 | "--device=all" 17 | ], 18 | 19 | "modules": [ 20 | { 21 | "name": "org.kde.dragonplayer", 22 | "buildsystem": "cmake-ninja", 23 | "sources": [ 24 | { "type": "dir", "path": "." } 25 | ] 26 | } 27 | ], 28 | 29 | "add-extensions": { 30 | "org.freedesktop.Platform.ffmpeg-full": { 31 | "version": "24.08", 32 | "directory": "lib/ffmpeg", 33 | "add-ld-path": "." 34 | } 35 | }, 36 | "cleanup-commands": [ 37 | "mkdir -p ${FLATPAK_DEST}/lib/ffmpeg" 38 | ] 39 | } 40 | -------------------------------------------------------------------------------- /.flatpak-manifest.json.license: -------------------------------------------------------------------------------- 1 | SPDX-License-Identifier: CC0-1.0 2 | SPDX-FileCopyrightText: none 3 | -------------------------------------------------------------------------------- /.git-blame-ignore-revs: -------------------------------------------------------------------------------- 1 | # SPDX-License-Identifier: CC0-1.0 2 | # SPDX-FileCopyrightText: none 3 | ecdce06a673c5c3e200bdfbbfe13c68ef3d2dab1 4 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # SPDX-License-Identifier: CC0-1.0 2 | # SPDX-FileCopyrightText: none 3 | # Ignore the following files 4 | *~ 5 | *.[oa] 6 | *.diff 7 | *.kate-swp 8 | *.kdev4 9 | .kdev_include_paths 10 | *.kdevelop.pcs 11 | *.moc 12 | *.moc.cpp 13 | *.orig 14 | *.user 15 | .*.swp 16 | .swp.* 17 | Doxyfile 18 | Makefile 19 | avail 20 | random_seed 21 | /build*/ 22 | CMakeLists.txt.user* 23 | *.unc-backup* 24 | *.gcov 25 | 26 | # LSP & IDE 27 | /.clang-format 28 | /compile_commands.json 29 | .clangd 30 | .cache 31 | .idea 32 | /cmake-build* 33 | /.flatpak-builder 34 | -------------------------------------------------------------------------------- /.gitlab-ci.yml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: None 2 | # SPDX-License-Identifier: CC0-1.0 3 | 4 | include: 5 | - project: sysadmin/ci-utilities 6 | file: 7 | - /gitlab-templates/linux-qt6.yml 8 | - /gitlab-templates/linux-qt6-next.yml 9 | - /gitlab-templates/freebsd-qt6.yml 10 | - /gitlab-templates/flatpak.yml 11 | - /gitlab-templates/clang-format.yml 12 | - /gitlab-templates/xml-lint.yml 13 | - /gitlab-templates/yaml-lint.yml 14 | -------------------------------------------------------------------------------- /.kde-ci.yml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: None 2 | # SPDX-License-Identifier: CC0-1.0 3 | 4 | Dependencies: 5 | - 'on': ['Linux', 'FreeBSD', 'Windows', 'Android'] 6 | 'require': 7 | 'frameworks/extra-cmake-modules': '@latest-kf6' 8 | 'frameworks/kconfig': '@latest-kf6' 9 | 'frameworks/kcoreaddons': '@latest-kf6' 10 | 'frameworks/kcrash': '@latest-kf6' 11 | 'frameworks/kdoctools': '@latest-kf6' 12 | 'frameworks/ki18n': '@latest-kf6' 13 | 'frameworks/kio': '@latest-kf6' 14 | 'frameworks/kirigami': '@latest-kf6' 15 | 16 | Options: 17 | require-passing-tests-on: ['Linux', 'FreeBSD', 'Windows'] 18 | -------------------------------------------------------------------------------- /CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.28) 2 | 3 | # KDE Application Version, managed by release script 4 | set(RELEASE_SERVICE_VERSION_MAJOR "25") 5 | set(RELEASE_SERVICE_VERSION_MINOR "07") 6 | set(RELEASE_SERVICE_VERSION_MICRO "70") 7 | set(RELEASE_SERVICE_VERSION "${RELEASE_SERVICE_VERSION_MAJOR}.${RELEASE_SERVICE_VERSION_MINOR}.${RELEASE_SERVICE_VERSION_MICRO}") 8 | 9 | project(DragonPlayer VERSION ${RELEASE_SERVICE_VERSION}) 10 | 11 | set(PROJECT_VERSION ${RELEASE_SERVICE_VERSION}) 12 | 13 | set(QT_MIN_VERSION "6.8.0") 14 | set(KF_MIN_VERSION "6.12.0") 15 | 16 | find_package(ECM ${KF_MIN_VERSION} REQUIRED NO_MODULE) 17 | set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${ECM_MODULE_PATH}) 18 | 19 | include(KDEInstallDirs) 20 | include(KDECMakeSettings) 21 | include(KDECompilerSettings NO_POLICY_SCOPE) 22 | include(KDEClangFormat) 23 | include(KDEGitCommitHooks) 24 | 25 | include(ECMInstallIcons) 26 | include(ECMSetupVersion) 27 | include(ECMDeprecationSettings) 28 | include(FeatureSummary) 29 | include(ECMQmlModule) 30 | 31 | set(CMAKE_CXX_STANDARD 23) 32 | set(CMAKE_CXX_STANDARD_REQUIRED ON) 33 | 34 | find_package(Qt6 ${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS 35 | Core 36 | Quick 37 | Multimedia 38 | ) 39 | 40 | find_package(KF6 ${KF_MIN_VERSION} REQUIRED 41 | CoreAddons 42 | Crash 43 | I18n 44 | KIO 45 | WindowSystem 46 | # Used by qml (needed for linting) 47 | Kirigami 48 | Config 49 | ) 50 | 51 | find_package(PkgConfig) 52 | pkg_check_modules(libavcodec REQUIRED IMPORTED_TARGET libavcodec) 53 | 54 | configure_file(config.h.in ${CMAKE_CURRENT_BINARY_DIR}/config.h) 55 | 56 | ecm_set_disabled_deprecation_versions( 57 | QT 6.8 58 | KF 6.12 59 | ) 60 | 61 | add_definitions(-DTRANSLATION_DOMAIN="dragonplayer") 62 | 63 | add_subdirectory(src) 64 | add_subdirectory(misc) 65 | 66 | ki18n_install(po) 67 | 68 | 69 | file(GLOB_RECURSE ALL_CLANG_FORMAT_SOURCE_FILES *.cpp *.h) 70 | kde_clang_format(${ALL_CLANG_FORMAT_SOURCE_FILES}) 71 | kde_configure_git_pre_commit_hook(CHECKS CLANG_FORMAT) 72 | 73 | feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES) 74 | -------------------------------------------------------------------------------- /CMakePresets.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": 2, 3 | "configurePresets": [ 4 | { 5 | "name": "dev", 6 | "displayName": "Build as debug", 7 | "generator": "Ninja", 8 | "binaryDir": "${sourceDir}/build", 9 | "cacheVariables": { 10 | "CMAKE_BUILD_TYPE": "Debug", 11 | "CMAKE_EXPORT_COMPILE_COMMANDS": "ON" 12 | } 13 | }, 14 | { 15 | "name": "asan", 16 | "displayName": "Build with Asan support.", 17 | "generator": "Ninja", 18 | "binaryDir": "${sourceDir}/build-asan", 19 | "cacheVariables": { 20 | "CMAKE_BUILD_TYPE": "Debug", 21 | "ECM_ENABLE_SANITIZERS" : "'address;undefined'", 22 | "CMAKE_EXPORT_COMPILE_COMMANDS": "ON" 23 | } 24 | }, 25 | { 26 | "name": "dev-clang", 27 | "displayName": "dev-clang", 28 | "generator": "Ninja", 29 | "binaryDir": "${sourceDir}/build-clang", 30 | "cacheVariables": { 31 | "CMAKE_BUILD_TYPE": "Debug", 32 | "CMAKE_EXPORT_COMPILE_COMMANDS": "ON" 33 | }, 34 | "environment": { 35 | "CXX": "clang++", 36 | "CCACHE_DISABLE": "ON" 37 | } 38 | }, 39 | { 40 | "name": "unity", 41 | "displayName": "Build with CMake unity support.", 42 | "generator": "Ninja", 43 | "binaryDir": "${sourceDir}/build-unity", 44 | "cacheVariables": { 45 | "CMAKE_BUILD_TYPE": "Debug", 46 | "CMAKE_UNITY_BUILD": "ON", 47 | "CMAKE_EXPORT_COMPILE_COMMANDS": "ON" 48 | } 49 | }, 50 | { 51 | "name": "release", 52 | "displayName": "Build as release mode.", 53 | "generator": "Ninja", 54 | "binaryDir": "${sourceDir}/build-release", 55 | "cacheVariables": { 56 | "CMAKE_BUILD_TYPE": "Release" 57 | } 58 | }, 59 | { 60 | "name": "profile", 61 | "displayName": "profile", 62 | "generator": "Ninja", 63 | "binaryDir": "${sourceDir}/build-profile", 64 | "cacheVariables": { 65 | "CMAKE_BUILD_TYPE": "RelWithDebInfo", 66 | "CMAKE_EXPORT_COMPILE_COMMANDS": "ON" 67 | } 68 | }, 69 | { 70 | "name": "clazy", 71 | "displayName": "clazy", 72 | "generator": "Ninja", 73 | "binaryDir": "${sourceDir}/build-clazy", 74 | "cacheVariables": { 75 | "CMAKE_BUILD_TYPE": "Debug" 76 | }, 77 | "environment": { 78 | "CXX": "clazy", 79 | "CCACHE_DISABLE": "ON" 80 | } 81 | } 82 | 83 | ], 84 | "buildPresets": [ 85 | { 86 | "name": "dev", 87 | "configurePreset": "dev" 88 | }, 89 | { 90 | "name": "release", 91 | "configurePreset": "release" 92 | }, 93 | { 94 | "name": "dev-clang", 95 | "configurePreset": "dev-clang" 96 | }, 97 | { 98 | "name": "asan", 99 | "configurePreset": "asan" 100 | }, 101 | { 102 | "name": "unity", 103 | "configurePreset": "unity" 104 | }, 105 | { 106 | "name": "clazy", 107 | "configurePreset": "clazy", 108 | "environment": { 109 | "CLAZY_CHECKS" : "level0,level1,detaching-member,ifndef-define-typo,isempty-vs-count,qrequiredresult-candidates,reserve-candidates,signal-with-return-value,unneeded-cast,function-args-by-ref,function-args-by-value,returning-void-expression,no-ctor-missing-parent-argument,isempty-vs-count,qhash-with-char-pointer-key,raw-environment-function,qproperty-type-mismatch,old-style-connect,qstring-allocations,container-inside-loop,heap-allocated-small-trivial-type,inefficient-qlist,qstring-varargs,level2,detaching-member,heap-allocated-small-trivial-type,isempty-vs-count,qstring-varargs,qvariant-template-instantiation,raw-environment-function,reserve-candidates,signal-with-return-value,thread-with-slots,no-ctor-missing-parent-argument,no-missing-typeinfo", 110 | "CCACHE_DISABLE" : "ON" 111 | } 112 | } 113 | ], 114 | "testPresets": [ 115 | { 116 | "name": "dev", 117 | "configurePreset": "dev", 118 | "output": {"outputOnFailure": true}, 119 | "execution": {"noTestsAction": "error", "stopOnFailure": false} 120 | }, 121 | { 122 | "name": "asan", 123 | "configurePreset": "asan", 124 | "output": {"outputOnFailure": true}, 125 | "execution": {"noTestsAction": "error", "stopOnFailure": true} 126 | } 127 | ] 128 | } 129 | -------------------------------------------------------------------------------- /LICENSES/CC0-1.0.txt: -------------------------------------------------------------------------------- 1 | Creative Commons Legal Code 2 | 3 | CC0 1.0 Universal 4 | 5 | CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE 6 | LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN 7 | ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS 8 | INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES 9 | REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS 10 | PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM 11 | THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED 12 | HEREUNDER. 13 | 14 | Statement of Purpose 15 | 16 | The laws of most jurisdictions throughout the world automatically confer 17 | exclusive Copyright and Related Rights (defined below) upon the creator 18 | and subsequent owner(s) (each and all, an "owner") of an original work of 19 | authorship and/or a database (each, a "Work"). 20 | 21 | Certain owners wish to permanently relinquish those rights to a Work for 22 | the purpose of contributing to a commons of creative, cultural and 23 | scientific works ("Commons") that the public can reliably and without fear 24 | of later claims of infringement build upon, modify, incorporate in other 25 | works, reuse and redistribute as freely as possible in any form whatsoever 26 | and for any purposes, including without limitation commercial purposes. 27 | These owners may contribute to the Commons to promote the ideal of a free 28 | culture and the further production of creative, cultural and scientific 29 | works, or to gain reputation or greater distribution for their Work in 30 | part through the use and efforts of others. 31 | 32 | For these and/or other purposes and motivations, and without any 33 | expectation of additional consideration or compensation, the person 34 | associating CC0 with a Work (the "Affirmer"), to the extent that he or she 35 | is an owner of Copyright and Related Rights in the Work, voluntarily 36 | elects to apply CC0 to the Work and publicly distribute the Work under its 37 | terms, with knowledge of his or her Copyright and Related Rights in the 38 | Work and the meaning and intended legal effect of CC0 on those rights. 39 | 40 | 1. Copyright and Related Rights. A Work made available under CC0 may be 41 | protected by copyright and related or neighboring rights ("Copyright and 42 | Related Rights"). Copyright and Related Rights include, but are not 43 | limited to, the following: 44 | 45 | i. the right to reproduce, adapt, distribute, perform, display, 46 | communicate, and translate a Work; 47 | ii. moral rights retained by the original author(s) and/or performer(s); 48 | iii. publicity and privacy rights pertaining to a person's image or 49 | likeness depicted in a Work; 50 | iv. rights protecting against unfair competition in regards to a Work, 51 | subject to the limitations in paragraph 4(a), below; 52 | v. rights protecting the extraction, dissemination, use and reuse of data 53 | in a Work; 54 | vi. database rights (such as those arising under Directive 96/9/EC of the 55 | European Parliament and of the Council of 11 March 1996 on the legal 56 | protection of databases, and under any national implementation 57 | thereof, including any amended or successor version of such 58 | directive); and 59 | vii. other similar, equivalent or corresponding rights throughout the 60 | world based on applicable law or treaty, and any national 61 | implementations thereof. 62 | 63 | 2. Waiver. To the greatest extent permitted by, but not in contravention 64 | of, applicable law, Affirmer hereby overtly, fully, permanently, 65 | irrevocably and unconditionally waives, abandons, and surrenders all of 66 | Affirmer's Copyright and Related Rights and associated claims and causes 67 | of action, whether now known or unknown (including existing as well as 68 | future claims and causes of action), in the Work (i) in all territories 69 | worldwide, (ii) for the maximum duration provided by applicable law or 70 | treaty (including future time extensions), (iii) in any current or future 71 | medium and for any number of copies, and (iv) for any purpose whatsoever, 72 | including without limitation commercial, advertising or promotional 73 | purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each 74 | member of the public at large and to the detriment of Affirmer's heirs and 75 | successors, fully intending that such Waiver shall not be subject to 76 | revocation, rescission, cancellation, termination, or any other legal or 77 | equitable action to disrupt the quiet enjoyment of the Work by the public 78 | as contemplated by Affirmer's express Statement of Purpose. 79 | 80 | 3. Public License Fallback. Should any part of the Waiver for any reason 81 | be judged legally invalid or ineffective under applicable law, then the 82 | Waiver shall be preserved to the maximum extent permitted taking into 83 | account Affirmer's express Statement of Purpose. In addition, to the 84 | extent the Waiver is so judged Affirmer hereby grants to each affected 85 | person a royalty-free, non transferable, non sublicensable, non exclusive, 86 | irrevocable and unconditional license to exercise Affirmer's Copyright and 87 | Related Rights in the Work (i) in all territories worldwide, (ii) for the 88 | maximum duration provided by applicable law or treaty (including future 89 | time extensions), (iii) in any current or future medium and for any number 90 | of copies, and (iv) for any purpose whatsoever, including without 91 | limitation commercial, advertising or promotional purposes (the 92 | "License"). The License shall be deemed effective as of the date CC0 was 93 | applied by Affirmer to the Work. Should any part of the License for any 94 | reason be judged legally invalid or ineffective under applicable law, such 95 | partial invalidity or ineffectiveness shall not invalidate the remainder 96 | of the License, and in such case Affirmer hereby affirms that he or she 97 | will not (i) exercise any of his or her remaining Copyright and Related 98 | Rights in the Work or (ii) assert any associated claims and causes of 99 | action with respect to the Work, in either case contrary to Affirmer's 100 | express Statement of Purpose. 101 | 102 | 4. Limitations and Disclaimers. 103 | 104 | a. No trademark or patent rights held by Affirmer are waived, abandoned, 105 | surrendered, licensed or otherwise affected by this document. 106 | b. Affirmer offers the Work as-is and makes no representations or 107 | warranties of any kind concerning the Work, express, implied, 108 | statutory or otherwise, including without limitation warranties of 109 | title, merchantability, fitness for a particular purpose, non 110 | infringement, or the absence of latent or other defects, accuracy, or 111 | the present or absence of errors, whether or not discoverable, all to 112 | the greatest extent permissible under applicable law. 113 | c. Affirmer disclaims responsibility for clearing rights of other persons 114 | that may apply to the Work or any use thereof, including without 115 | limitation any person's Copyright and Related Rights in the Work. 116 | Further, Affirmer disclaims responsibility for obtaining any necessary 117 | consents, permissions or other rights required for any use of the 118 | Work. 119 | d. Affirmer understands and acknowledges that Creative Commons is not a 120 | party to this document and has no duty or obligation with respect to 121 | this CC0 or use of the Work. 122 | -------------------------------------------------------------------------------- /LICENSES/LicenseRef-KDE-Accepted-GPL.txt: -------------------------------------------------------------------------------- 1 | This library is free software; you can redistribute it and/or 2 | modify it under the terms of the GNU General Public License as 3 | published by the Free Software Foundation; either version 3 of 4 | the license or (at your option) at any later version that is 5 | accepted by the membership of KDE e.V. (or its successor 6 | approved by the membership of KDE e.V.), which shall act as a 7 | proxy as defined in Section 14 of version 3 of the license. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | -------------------------------------------------------------------------------- /Messages.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # SPDX-License-Identifier: BSD-2-Clause 3 | # SPDX-FileCopyrightText: 2020-2022 Harald Sitter 4 | 5 | # Our l10n scripting isn't working with spaces anywhere and we actively rely on word splitting in our Messages.sh. 6 | # shellcheck disable=SC2046 7 | 8 | podir=${podir:?} # ensure it is defined 9 | 10 | $XGETTEXT $(find . -name \*.cpp -o -name \*.h) -o "$podir"/dragonplayer.pot 11 | # Extract JavaScripty files as what they are, otherwise for example template literals won't work correctly (by default we extract as C++). 12 | # https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals 13 | $XGETTEXT --join-existing --language=JavaScript $(find . -name \*.qml -o -name \*.js) -o "$podir"/dragonplayer.pot 14 | -------------------------------------------------------------------------------- /REUSE.toml: -------------------------------------------------------------------------------- 1 | version = 1 2 | SPDX-PackageName = "dragon" 3 | SPDX-PackageDownloadLocation = "https://invent.kde.org/multimedia/dragon" 4 | 5 | [[annotations]] 6 | path = "misc/dragonplayer_part.json.in" 7 | precedence = "aggregate" 8 | SPDX-FileCopyrightText = "none" 9 | SPDX-License-Identifier = "CC0-1.0" 10 | -------------------------------------------------------------------------------- /config.h.in: -------------------------------------------------------------------------------- 1 | #cmakedefine PROJECT_VERSION "@PROJECT_VERSION@" 2 | -------------------------------------------------------------------------------- /logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/dragon/e87a44db4794aabde25edd4b040d212a559901ea/logo.png -------------------------------------------------------------------------------- /logo.png.license: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2014 Uri Herrera and others 2 | # SPDX-FileCopyrightText: Breeze Icons 3 | # SPDX-License-Identifier: LGPL-3.0-or-later 4 | -------------------------------------------------------------------------------- /misc/128-apps-dragonplayer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/dragon/e87a44db4794aabde25edd4b040d212a559901ea/misc/128-apps-dragonplayer.png -------------------------------------------------------------------------------- /misc/128-apps-dragonplayer.png.license: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2014 Uri Herrera and others 2 | # SPDX-FileCopyrightText: Breeze Icons 3 | # SPDX-License-Identifier: LGPL-3.0-or-later 4 | -------------------------------------------------------------------------------- /misc/16-apps-dragonplayer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/dragon/e87a44db4794aabde25edd4b040d212a559901ea/misc/16-apps-dragonplayer.png -------------------------------------------------------------------------------- /misc/16-apps-dragonplayer.png.license: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2014 Uri Herrera and others 2 | # SPDX-FileCopyrightText: Breeze Icons 3 | # SPDX-License-Identifier: LGPL-3.0-or-later 4 | -------------------------------------------------------------------------------- /misc/22-apps-dragonplayer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/dragon/e87a44db4794aabde25edd4b040d212a559901ea/misc/22-apps-dragonplayer.png -------------------------------------------------------------------------------- /misc/22-apps-dragonplayer.png.license: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2014 Uri Herrera and others 2 | # SPDX-FileCopyrightText: Breeze Icons 3 | # SPDX-License-Identifier: LGPL-3.0-or-later 4 | -------------------------------------------------------------------------------- /misc/32-apps-dragonplayer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/dragon/e87a44db4794aabde25edd4b040d212a559901ea/misc/32-apps-dragonplayer.png -------------------------------------------------------------------------------- /misc/32-apps-dragonplayer.png.license: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2014 Uri Herrera and others 2 | # SPDX-FileCopyrightText: Breeze Icons 3 | # SPDX-License-Identifier: LGPL-3.0-or-later 4 | -------------------------------------------------------------------------------- /misc/48-apps-dragonplayer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/dragon/e87a44db4794aabde25edd4b040d212a559901ea/misc/48-apps-dragonplayer.png -------------------------------------------------------------------------------- /misc/48-apps-dragonplayer.png.license: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2014 Uri Herrera and others 2 | # SPDX-FileCopyrightText: Breeze Icons 3 | # SPDX-License-Identifier: LGPL-3.0-or-later 4 | -------------------------------------------------------------------------------- /misc/64-apps-dragonplayer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/dragon/e87a44db4794aabde25edd4b040d212a559901ea/misc/64-apps-dragonplayer.png -------------------------------------------------------------------------------- /misc/64-apps-dragonplayer.png.license: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2014 Uri Herrera and others 2 | # SPDX-FileCopyrightText: Breeze Icons 3 | # SPDX-License-Identifier: LGPL-3.0-or-later 4 | -------------------------------------------------------------------------------- /misc/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | install(PROGRAMS org.kde.dragonplayer.desktop DESTINATION ${KDE_INSTALL_APPDIR}) 2 | install(FILES org.kde.dragonplayer.appdata.xml DESTINATION ${KDE_INSTALL_METAINFODIR} ) 3 | 4 | ecm_install_icons( 5 | ICONS 6 | sc-apps-dragonplayer.svgz 7 | 128-apps-dragonplayer.png 8 | 64-apps-dragonplayer.png 9 | 48-apps-dragonplayer.png 10 | 32-apps-dragonplayer.png 11 | 22-apps-dragonplayer.png 12 | 16-apps-dragonplayer.png 13 | DESTINATION ${KDE_INSTALL_ICONDIR} 14 | THEME hicolor 15 | ) 16 | -------------------------------------------------------------------------------- /misc/org.kde.dragonplayer.desktop: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Type=Application 3 | Comment=Play video files and streams 4 | Comment[ar]=شغّل ملفات الفيديو والبث المباشر 5 | Comment[ca]=Reprodueix fitxers i fluxos de vídeo 6 | Comment[ca@valencia]=Reproduïx fitxers i fluxos de vídeo 7 | Comment[es]=Reproduzca archivos y transmisiones de vídeo 8 | Comment[eu]=Bideo fitxategiak eta korronteak jo 9 | Comment[fi]=Toista videotiedostoja ja suoratoistovirtoja 10 | Comment[fr]=Lire des fichiers et des flux vidéo 11 | Comment[gl]=Reproduza ficheiros e emisións de vídeo. 12 | Comment[he]=נגינת קובצי וידאו ושידורי אינטרנט 13 | Comment[ia]=Reproduce Files e fluxos (streams) video 14 | Comment[it]=Riproduci file e trasmissioni video 15 | Comment[ka]=დაუკარით ვიდეოფაილები და ნაკადები 16 | Comment[ko]=동영상 파일과 스트림 재생 17 | Comment[lv]=Atskaņojiet video datnes un straumes 18 | Comment[nl]=Videobestanden en streams afspelen 19 | Comment[sl]=Predvajajte video datoteke in tokove 20 | Comment[sv]=Spela videofiler och strömmar 21 | Comment[tr]=Video dosyalarını ve akışlarını oynatın 22 | Comment[uk]=Відтворення відеофайлів та потоків відтворення 23 | Comment[x-test]=xxPlay video files and streamsxx 24 | Comment[zh_CN]=播放视频文件和流媒体 25 | Comment[zh_TW]=播放影片檔案與串流 26 | Name=Dragon Player 27 | Name[ar]=مشغّل التّنّين 28 | Name[bg]=Програма за видео Dragon 29 | Name[bs]=Dragon Player 30 | Name[ca]=Dragon Player 31 | Name[ca@valencia]=Dragon Player 32 | Name[cs]=Přehrávač Dragon 33 | Name[da]=Dragon Player 34 | Name[de]=Dragon Player 35 | Name[el]=Dragon Player 36 | Name[en_GB]=Dragon Player 37 | Name[eo]=Dragon Player 38 | Name[es]=Dragon Player 39 | Name[et]=Dragoni mängija 40 | Name[eu]=Dragon Player 41 | Name[fi]=Dragon Player 42 | Name[fr]=Dragon Player 43 | Name[ga]=Dragon Player 44 | Name[gl]=Dragon Player 45 | Name[he]=נגן Dragon 46 | Name[hi]=ड्रैगन प्लेयर 47 | Name[hu]=Dragon Player 48 | Name[ia]=Dragon Player 49 | Name[id]=Dragon Player 50 | Name[is]=Dragon spilari 51 | Name[it]=Dragon Player 52 | Name[ja]=Dragon Player 53 | Name[ka]=დამკვრელი Dragon 54 | Name[kk]=Dragon ойнатқышы 55 | Name[km]=កម្មវិធី​ចាក់ Dragon 56 | Name[ko]=Dragon 플레이어 57 | Name[lt]=Dragon leistuvas 58 | Name[lv]=Dragon Player 59 | Name[mr]=ड्रेगोन प्लेयर 60 | Name[nb]=Dragon Player 61 | Name[nds]=Drakenspeler 62 | Name[nl]=Dragon Player 63 | Name[nn]=Dragon Player 64 | Name[pa]=ਡਰੈਗਨ ਪਲੇਅਰ 65 | Name[pl]=Dragon Player 66 | Name[pt]=Dragon Player 67 | Name[pt_BR]=Dragon Player 68 | Name[ro]=Dragon Player 69 | Name[ru]=Dragon Player 70 | Name[sa]=ड्रैगन प्लेयर 71 | Name[sk]=Prehrávač Dragon 72 | Name[sl]=Dragon Player 73 | Name[sr]=Змајев плејер 74 | Name[sr@ijekavian]=Змајев плејер 75 | Name[sr@ijekavianlatin]=Zmajev plejer 76 | Name[sr@latin]=Zmajev plejer 77 | Name[sv]=Dragon spelare 78 | Name[tr]=Dragon 79 | Name[ug]=Dragon قويغۇ 80 | Name[uk]=Програвач Dragon 81 | Name[x-test]=xxDragon Playerxx 82 | Name[zh_CN]=Dragon Player 83 | Name[zh_TW]=神龍播放器 84 | GenericName=Video Player 85 | GenericName[ar]=مشغّل فيديوهات 86 | GenericName[ast]=Reproductor de vídeos 87 | GenericName[bg]=Възпроизвеждане на видео 88 | GenericName[bs]=Video izvođač 89 | GenericName[ca]=Reproductor de vídeo 90 | GenericName[ca@valencia]=Reproductor de vídeo 91 | GenericName[cs]=Přehrávač videa 92 | GenericName[da]=Videoafspiller 93 | GenericName[de]=Video-Wiedergabe 94 | GenericName[el]=Πρόγραμμα αναπαραγωγής βίντεο 95 | GenericName[en_GB]=Video Player 96 | GenericName[eo]=Videoludilo 97 | GenericName[es]=Reproductor de vídeo 98 | GenericName[et]=Videomängija 99 | GenericName[eu]=Bideo jotzailea 100 | GenericName[fi]=Videosoitin 101 | GenericName[fr]=Lecteur vidéo 102 | GenericName[ga]=Seinnteoir Físe 103 | GenericName[gl]=Reprodutor de vídeo 104 | GenericName[he]=נגן וידאו 105 | GenericName[hi]=वीडियो प्लेयर 106 | GenericName[hu]=Videolejátszó 107 | GenericName[ia]=Reproductor de Video 108 | GenericName[id]=Pemutar Video 109 | GenericName[is]=Myndspilari 110 | GenericName[it]=Riproduttore video 111 | GenericName[ja]=動画プレーヤー 112 | GenericName[ka]=ვიდეო დამკვრელი 113 | GenericName[kk]=Бейне ойнатқышы 114 | GenericName[km]=កម្មវិធី​ចាក់​វីដេអូ 115 | GenericName[ko]=동영상 재생기 116 | GenericName[lt]=Video grotuvas 117 | GenericName[lv]=Video atskaņotājs 118 | GenericName[mr]=व्हिडीओ प्लेयर 119 | GenericName[nb]=Videospiller 120 | GenericName[nds]=Videoafspeler 121 | GenericName[nl]=Videospeler 122 | GenericName[nn]=Filmspelar 123 | GenericName[pa]=ਵਿਡੀਓ ਪਲੇਅਰ 124 | GenericName[pl]=Odtwarzacz filmów 125 | GenericName[pt]=Leitor de Vídeo 126 | GenericName[pt_BR]=Reprodutor de vídeo 127 | GenericName[ro]=Program de redare video 128 | GenericName[ru]=Видеопроигрыватель 129 | GenericName[sa]=विडियो प्लेयर 130 | GenericName[sk]=Prehrávač videa 131 | GenericName[sl]=Predvajalnik videov 132 | GenericName[sr]=Видео плејер 133 | GenericName[sr@ijekavian]=Видео плејер 134 | GenericName[sr@ijekavianlatin]=Video plejer 135 | GenericName[sr@latin]=Video plejer 136 | GenericName[sv]=Videospelare 137 | GenericName[tr]=Video Oynatıcısı 138 | GenericName[ug]=سىن قويۇش پروگراممىسى(سىن قويغۇ) 139 | GenericName[uk]=Відеопрогравач 140 | GenericName[x-test]=xxVideo Playerxx 141 | GenericName[zh_CN]=视频播放器 142 | GenericName[zh_TW]=影片播放器 143 | Icon=dragonplayer 144 | X-DocPath=dragonplayer/index.html 145 | TryExec=dragon 146 | Exec=dragon %u 147 | MimeType=video/ogg;video/x-theora+ogg;video/x-ogm+ogg;video/x-ms-wmv;video/x-msvideo;video/x-ms-asf;video/x-matroska;video/mpeg;video/avi;video/quicktime;video/vnd.rn-realvideo;video/x-flic;video/mp4;video/x-flv;video/webm; 148 | Categories=Qt;KDE;AudioVideo;Video;Player; 149 | StartupWMClass=dragonplayer 150 | # route the rest through kio-fuse 151 | X-KDE-Protocols=http;https; 152 | -------------------------------------------------------------------------------- /misc/sc-apps-dragonplayer.svgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/dragon/e87a44db4794aabde25edd4b040d212a559901ea/misc/sc-apps-dragonplayer.svgz -------------------------------------------------------------------------------- /misc/sc-apps-dragonplayer.svgz.license: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2014 Uri Herrera and others 2 | # SPDX-FileCopyrightText: Breeze Icons 3 | # SPDX-License-Identifier: LGPL-3.0-or-later 4 | -------------------------------------------------------------------------------- /po/ast/dragonplayer.po: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2023 This file is copyright: 2 | # This file is distributed under the same license as the dragon package. 3 | # 4 | # SPDX-FileCopyrightText: 2023 Enol P. 5 | msgid "" 6 | msgstr "" 7 | "Project-Id-Version: dragon\n" 8 | "Report-Msgid-Bugs-To: https://bugs.kde.org\n" 9 | "POT-Creation-Date: 2025-04-30 00:41+0000\n" 10 | "PO-Revision-Date: 2023-11-06 01:08+0100\n" 11 | "Last-Translator: Enol P. \n" 12 | "Language-Team: \n" 13 | "Language: ast\n" 14 | "MIME-Version: 1.0\n" 15 | "Content-Type: text/plain; charset=UTF-8\n" 16 | "Content-Transfer-Encoding: 8bit\n" 17 | "Plural-Forms: nplurals=2; plural=n != 1;\n" 18 | "X-Generator: Lokalize 23.08.2\n" 19 | 20 | #, kde-format 21 | msgctxt "NAME OF TRANSLATORS" 22 | msgid "Your names" 23 | msgstr "Softastur" 24 | 25 | #, kde-format 26 | msgctxt "EMAIL OF TRANSLATORS" 27 | msgid "Your emails" 28 | msgstr "alministradores@softastur.org" 29 | 30 | #: src/main.cpp:24 31 | #, kde-format 32 | msgid "Dragon Player" 33 | msgstr "" 34 | 35 | #: src/main.cpp:26 36 | #, kde-format 37 | msgid "A video player that has a usability focus" 38 | msgstr "" 39 | 40 | #: src/main.cpp:28 41 | #, kde-format 42 | msgid "" 43 | "Copyright 2006, Max Howell\n" 44 | "Copyright 2007, Ian Monroe\n" 45 | "Copyright 2022 Harald Sitter" 46 | msgstr "" 47 | 48 | #: src/qml/ControlsBar.qml:129 49 | msgctxt "@action:button" 50 | msgid "Application Menu" 51 | msgstr "" 52 | 53 | #: src/qml/ControlsBar.qml:160 54 | msgctxt "@action:button stop playback" 55 | msgid "Stop" 56 | msgstr "" 57 | 58 | #: src/qml/ControlsBar.qml:168 59 | msgctxt "@action:button" 60 | msgid "Unmute" 61 | msgstr "" 62 | 63 | #: src/qml/ControlsBar.qml:168 64 | msgctxt "@action:button" 65 | msgid "Mute" 66 | msgstr "" 67 | 68 | #: src/qml/ControlsBar.qml:178 69 | msgctxt "@action:button video subtitle" 70 | msgid "Subtitles" 71 | msgstr "" 72 | 73 | #: src/qml/ControlsBar.qml:185 74 | msgctxt "@action:button selector for no subtitle" 75 | msgid "None" 76 | msgstr "" 77 | 78 | #: src/qml/ControlsBar.qml:195 79 | msgctxt "" 80 | "@action:button subtitle selector %1 is usually a language (e.g. chinese) and " 81 | "%2 is usually a subtitle (e.g. Traditional)" 82 | msgid "%1 [%2]" 83 | msgstr "" 84 | 85 | #: src/qml/ControlsBar.qml:212 86 | msgctxt "@action:button track selector" 87 | msgid "Audio Track" 88 | msgstr "" 89 | 90 | #: src/qml/ControlsBar.qml:227 91 | msgctxt "@action:button track selector" 92 | msgid "Video Track" 93 | msgstr "" 94 | 95 | #: src/qml/ControlsBar.qml:245 96 | msgctxt "@action opens about app page" 97 | msgid "About" 98 | msgstr "" 99 | 100 | #: src/qml/Main.qml:53 101 | msgctxt "@action:button open file dialog" 102 | msgid "Open…" 103 | msgstr "" 104 | 105 | #: src/qml/PlayerPage.qml:38 106 | msgctxt "@action:button" 107 | msgid "Play" 108 | msgstr "" 109 | 110 | #: src/qml/PlayerPage.qml:38 111 | msgctxt "@action:button" 112 | msgid "Pause" 113 | msgstr "" 114 | 115 | #: src/qml/PlayerPage.qml:46 116 | msgctxt "@action:button" 117 | msgid "Exit Fullscreen" 118 | msgstr "" 119 | 120 | #: src/qml/PlayerPage.qml:46 121 | msgctxt "@action:button" 122 | msgid "Enter Fullscreen" 123 | msgstr "" 124 | 125 | #: src/qml/PlayerPage.qml:79 126 | msgctxt "@info" 127 | msgid "" 128 | "Not all video codecs are installed. Video playback support may be less " 129 | "reliable than expected.\n" 130 | "Please install ffmpeg-full by running:\n" 131 | "flatpak install org.freedesktop.Platform.ffmpeg-full//24.08" 133 | msgstr "" 134 | 135 | #: src/qml/PlayerPage.qml:86 136 | msgctxt "@info" 137 | msgid "" 138 | "Not all video codecs are installed. Video playback support may be less " 139 | "reliable than expected.\n" 140 | "Please consult your distribution on how to install all possible codecs." 141 | msgstr "" 142 | 143 | #: src/qml/PlayerPage.qml:94 144 | msgctxt "@action:button %1 is the name of a distribution" 145 | msgid "%1 Support" 146 | msgstr "" 147 | 148 | #: src/qml/PlayerPage.qml:330 149 | msgctxt "" 150 | "@info overlay on top of video. %1 is the amount of time played %2 is the " 151 | "total duration of the video" 152 | msgid "%1 / %2" 153 | msgstr "" 154 | 155 | #: src/qml/VolumeButton.qml:31 156 | msgctxt "@action:button open volume slider popup" 157 | msgid "Show volume controls" 158 | msgstr "" 159 | 160 | #: src/qml/WelcomeView.qml:16 161 | msgctxt "@title" 162 | msgid "Welcome to Dragon Player" 163 | msgstr "" 164 | 165 | #: src/qml/WelcomeView.qml:17 166 | msgctxt "@info" 167 | msgid "Dragon Player is a simple video player. Open a video to get started:" 168 | msgstr "" 169 | 170 | #: src/qml/WelcomeView.qml:20 171 | msgctxt "@action:button" 172 | msgid "Open Video File or Network Stream" 173 | msgstr "" 174 | -------------------------------------------------------------------------------- /po/be/dragonplayer.po: -------------------------------------------------------------------------------- 1 | # translation of videoplayer.po to Belarusian 2 | # Copyright (C) YEAR This_file_is_part_of_KDE 3 | # This file is distributed under the same license as the PACKAGE package. 4 | # 5 | # Darafei Praliaskouski , 2007. 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: videoplayer\n" 9 | "Report-Msgid-Bugs-To: https://bugs.kde.org\n" 10 | "POT-Creation-Date: 2025-04-30 00:41+0000\n" 11 | "PO-Revision-Date: 2007-12-09 18:19+0200\n" 12 | "Last-Translator: Darafei Praliaskouski \n" 13 | "Language-Team: Belarusian \n" 14 | "Language: be\n" 15 | "MIME-Version: 1.0\n" 16 | "Content-Type: text/plain; charset=UTF-8\n" 17 | "Content-Transfer-Encoding: 8bit\n" 18 | "X-Generator: KBabel 1.11.4\n" 19 | "Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" 20 | "%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || n%10>=5 && n%10<=9 || n" 21 | "%100>=11 && n%100<=14 ? 2 : 3);\n" 22 | 23 | #, kde-format 24 | msgctxt "NAME OF TRANSLATORS" 25 | msgid "Your names" 26 | msgstr "Дарафей Праляскоўскі" 27 | 28 | #, kde-format 29 | msgctxt "EMAIL OF TRANSLATORS" 30 | msgid "Your emails" 31 | msgstr "komzpa@licei2.com" 32 | 33 | #: src/main.cpp:24 34 | #, kde-format 35 | msgid "Dragon Player" 36 | msgstr "" 37 | 38 | #: src/main.cpp:26 39 | #, kde-format 40 | msgid "A video player that has a usability focus" 41 | msgstr "" 42 | 43 | #: src/main.cpp:28 44 | #, kde-format 45 | msgid "" 46 | "Copyright 2006, Max Howell\n" 47 | "Copyright 2007, Ian Monroe\n" 48 | "Copyright 2022 Harald Sitter" 49 | msgstr "" 50 | 51 | #: src/qml/ControlsBar.qml:129 52 | msgctxt "@action:button" 53 | msgid "Application Menu" 54 | msgstr "" 55 | 56 | #: src/qml/ControlsBar.qml:160 57 | #, fuzzy 58 | #| msgid "Stop" 59 | msgctxt "@action:button stop playback" 60 | msgid "Stop" 61 | msgstr "Спыніць" 62 | 63 | #: src/qml/ControlsBar.qml:168 64 | msgctxt "@action:button" 65 | msgid "Unmute" 66 | msgstr "" 67 | 68 | #: src/qml/ControlsBar.qml:168 69 | msgctxt "@action:button" 70 | msgid "Mute" 71 | msgstr "" 72 | 73 | #: src/qml/ControlsBar.qml:178 74 | msgctxt "@action:button video subtitle" 75 | msgid "Subtitles" 76 | msgstr "" 77 | 78 | #: src/qml/ControlsBar.qml:185 79 | msgctxt "@action:button selector for no subtitle" 80 | msgid "None" 81 | msgstr "" 82 | 83 | #: src/qml/ControlsBar.qml:195 84 | msgctxt "" 85 | "@action:button subtitle selector %1 is usually a language (e.g. chinese) and " 86 | "%2 is usually a subtitle (e.g. Traditional)" 87 | msgid "%1 [%2]" 88 | msgstr "" 89 | 90 | #: src/qml/ControlsBar.qml:212 91 | msgctxt "@action:button track selector" 92 | msgid "Audio Track" 93 | msgstr "" 94 | 95 | #: src/qml/ControlsBar.qml:227 96 | msgctxt "@action:button track selector" 97 | msgid "Video Track" 98 | msgstr "" 99 | 100 | #: src/qml/ControlsBar.qml:245 101 | msgctxt "@action opens about app page" 102 | msgid "About" 103 | msgstr "" 104 | 105 | #: src/qml/Main.qml:53 106 | msgctxt "@action:button open file dialog" 107 | msgid "Open…" 108 | msgstr "" 109 | 110 | #: src/qml/PlayerPage.qml:38 111 | #, fuzzy 112 | #| msgid "Play" 113 | msgctxt "@action:button" 114 | msgid "Play" 115 | msgstr "Граць" 116 | 117 | #: src/qml/PlayerPage.qml:38 118 | #, fuzzy 119 | #| msgid "Paused" 120 | msgctxt "@action:button" 121 | msgid "Pause" 122 | msgstr "Прыпынена" 123 | 124 | #: src/qml/PlayerPage.qml:46 125 | #, fuzzy 126 | #| msgid "Exit F&ull Screen Mode" 127 | msgctxt "@action:button" 128 | msgid "Exit Fullscreen" 129 | msgstr "Выйсці з &поўнаэкраннага рэжыму" 130 | 131 | #: src/qml/PlayerPage.qml:46 132 | #, fuzzy 133 | #| msgid "Exit F&ull Screen Mode" 134 | msgctxt "@action:button" 135 | msgid "Enter Fullscreen" 136 | msgstr "Выйсці з &поўнаэкраннага рэжыму" 137 | 138 | #: src/qml/PlayerPage.qml:79 139 | msgctxt "@info" 140 | msgid "" 141 | "Not all video codecs are installed. Video playback support may be less " 142 | "reliable than expected.\n" 143 | "Please install ffmpeg-full by running:\n" 144 | "flatpak install org.freedesktop.Platform.ffmpeg-full//24.08" 146 | msgstr "" 147 | 148 | #: src/qml/PlayerPage.qml:86 149 | msgctxt "@info" 150 | msgid "" 151 | "Not all video codecs are installed. Video playback support may be less " 152 | "reliable than expected.\n" 153 | "Please consult your distribution on how to install all possible codecs." 154 | msgstr "" 155 | 156 | #: src/qml/PlayerPage.qml:94 157 | msgctxt "@action:button %1 is the name of a distribution" 158 | msgid "%1 Support" 159 | msgstr "" 160 | 161 | #: src/qml/PlayerPage.qml:330 162 | msgctxt "" 163 | "@info overlay on top of video. %1 is the amount of time played %2 is the " 164 | "total duration of the video" 165 | msgid "%1 / %2" 166 | msgstr "" 167 | 168 | #: src/qml/VolumeButton.qml:31 169 | msgctxt "@action:button open volume slider popup" 170 | msgid "Show volume controls" 171 | msgstr "" 172 | 173 | #: src/qml/WelcomeView.qml:16 174 | msgctxt "@title" 175 | msgid "Welcome to Dragon Player" 176 | msgstr "" 177 | 178 | #: src/qml/WelcomeView.qml:17 179 | msgctxt "@info" 180 | msgid "Dragon Player is a simple video player. Open a video to get started:" 181 | msgstr "" 182 | 183 | #: src/qml/WelcomeView.qml:20 184 | msgctxt "@action:button" 185 | msgid "Open Video File or Network Stream" 186 | msgstr "" 187 | 188 | #, fuzzy 189 | #~| msgid "Volume" 190 | #~ msgctxt "@action:button open volume slider popup" 191 | #~ msgid "Volume" 192 | #~ msgstr "Гучнасць" 193 | 194 | #, fuzzy 195 | #~| msgid "&Play" 196 | #~ msgctxt "@title:menu" 197 | #~ msgid "&Play" 198 | #~ msgstr "&Граць" 199 | 200 | #, fuzzy 201 | #~| msgid "Play File..." 202 | #~ msgctxt "@title:menu" 203 | #~ msgid "Play Media" 204 | #~ msgstr "Граць файл..." 205 | 206 | #, fuzzy 207 | #~| msgid "Video Settings" 208 | #~ msgctxt "@title:menu" 209 | #~ msgid "&Settings" 210 | #~ msgstr "Параметры відэа" 211 | 212 | #, fuzzy 213 | #~| msgid "Play" 214 | #~ msgctxt "@title:window" 215 | #~ msgid "Select a Disc" 216 | #~ msgstr "Граць" 217 | 218 | #~ msgid "Handbook" 219 | #~ msgstr "Падручнік" 220 | 221 | #, fuzzy 222 | #~| msgid "&4:3" 223 | #~ msgctxt "@option:radio aspect ratio" 224 | #~ msgid "&4:3" 225 | #~ msgstr "&4:3" 226 | 227 | #, fuzzy 228 | #~| msgid "Play File..." 229 | #~ msgctxt "@action" 230 | #~ msgid "Play File…" 231 | #~ msgstr "Граць файл..." 232 | 233 | #, fuzzy 234 | #~| msgid "Play File..." 235 | #~ msgctxt "@action" 236 | #~ msgid "Play Stream…" 237 | #~ msgstr "Граць файл..." 238 | 239 | #, fuzzy 240 | #~| msgid "Play" 241 | #~ msgctxt "@action" 242 | #~ msgid "Play Disc" 243 | #~ msgstr "Граць" 244 | 245 | #, fuzzy 246 | #~| msgid "Video Settings" 247 | #~ msgctxt "@option:check" 248 | #~ msgid "Video Settings" 249 | #~ msgstr "Параметры відэа" 250 | 251 | #, fuzzy 252 | #~| msgid "Play File..." 253 | #~ msgctxt "@label:textbox" 254 | #~ msgid "Stream:" 255 | #~ msgstr "Граць файл..." 256 | 257 | #~ msgid "Paused" 258 | #~ msgstr "Прыпынена" 259 | 260 | #, fuzzy 261 | #~| msgid "Play File..." 262 | #~ msgctxt "@action" 263 | #~ msgid "Play &Media..." 264 | #~ msgstr "Граць файл..." 265 | 266 | #, fuzzy 267 | #~| msgid "Play File..." 268 | #~ msgctxt "@action:button" 269 | #~ msgid "Play File..." 270 | #~ msgstr "Граць файл..." 271 | 272 | #~ msgid "&Pause" 273 | #~ msgstr "&Паўза" 274 | 275 | #, fuzzy 276 | #~| msgid "Play" 277 | #~ msgid "Play Disk" 278 | #~ msgstr "Граць" 279 | 280 | #~ msgid "All Files" 281 | #~ msgstr "Усе файлы" 282 | 283 | #, fuzzy 284 | #~| msgid "F&ull Screen Mode" 285 | #~ msgid "F&ull Screen" 286 | #~ msgstr "&Поўнаэкранны рэжым" 287 | 288 | #~ msgid "Record" 289 | #~ msgstr "Гуказапіс" 290 | 291 | #~ msgid "&Off" 292 | #~ msgstr "&Выключана" 293 | 294 | #~ msgid "Volume: %1" 295 | #~ msgstr "Гучнасць: %1" 296 | -------------------------------------------------------------------------------- /po/ca/dragonplayer.po: -------------------------------------------------------------------------------- 1 | # Translation of dragonplayer.po to Catalan 2 | # Copyright (C) 2008-2025 This_file_is_part_of_KDE 3 | # This file is distributed under the license LGPL version 2 or later. 4 | # 5 | # SPDX-FileCopyrightText: 2008, 2009, 2010, 2012, 2013, 2015, 2019, 2020, 2021, 2022, 2023, 2025 Josep M. Ferrer 6 | # Joan Maspons , 2009. 7 | # Manuel Tortosa Moreno , 2010, 2011. 8 | # Antoni Bella Pérez , 2018, 2020. 9 | msgid "" 10 | msgstr "" 11 | "Project-Id-Version: dragon\n" 12 | "Report-Msgid-Bugs-To: https://bugs.kde.org\n" 13 | "POT-Creation-Date: 2025-04-30 00:41+0000\n" 14 | "PO-Revision-Date: 2025-04-14 11:33+0200\n" 15 | "Last-Translator: Josep M. Ferrer \n" 16 | "Language-Team: Catalan \n" 17 | "Language: ca\n" 18 | "MIME-Version: 1.0\n" 19 | "Content-Type: text/plain; charset=UTF-8\n" 20 | "Content-Transfer-Encoding: 8bit\n" 21 | "X-Generator: Lokalize 24.12.3\n" 22 | "Plural-Forms: nplurals=2; plural=n != 1;\n" 23 | "X-Accelerator-Marker: &\n" 24 | 25 | #, kde-format 26 | msgctxt "NAME OF TRANSLATORS" 27 | msgid "Your names" 28 | msgstr "Josep M. Ferrer,Joan Maspons Ventura" 29 | 30 | #, kde-format 31 | msgctxt "EMAIL OF TRANSLATORS" 32 | msgid "Your emails" 33 | msgstr "txemaq@gmail.com,joanmaspons@gmail.com" 34 | 35 | #: src/main.cpp:24 36 | #, kde-format 37 | msgid "Dragon Player" 38 | msgstr "Dragon Player" 39 | 40 | #: src/main.cpp:26 41 | #, kde-format 42 | msgid "A video player that has a usability focus" 43 | msgstr "Un reproductor de vídeo que s'ha centrat en la usabilitat" 44 | 45 | #: src/main.cpp:28 46 | #, kde-format 47 | msgid "" 48 | "Copyright 2006, Max Howell\n" 49 | "Copyright 2007, Ian Monroe\n" 50 | "Copyright 2022 Harald Sitter" 51 | msgstr "" 52 | "Copyright 2006, Max Howell\n" 53 | "Copyright 2007, Ian Monroe\n" 54 | "Copyright 2022 Harald Sitter" 55 | 56 | #: src/qml/ControlsBar.qml:129 57 | msgctxt "@action:button" 58 | msgid "Application Menu" 59 | msgstr "Menú d'aplicacions" 60 | 61 | #: src/qml/ControlsBar.qml:160 62 | msgctxt "@action:button stop playback" 63 | msgid "Stop" 64 | msgstr "Atura" 65 | 66 | #: src/qml/ControlsBar.qml:168 67 | msgctxt "@action:button" 68 | msgid "Unmute" 69 | msgstr "Treu el silenciament" 70 | 71 | #: src/qml/ControlsBar.qml:168 72 | msgctxt "@action:button" 73 | msgid "Mute" 74 | msgstr "Silencia" 75 | 76 | #: src/qml/ControlsBar.qml:178 77 | msgctxt "@action:button video subtitle" 78 | msgid "Subtitles" 79 | msgstr "Subtítols" 80 | 81 | #: src/qml/ControlsBar.qml:185 82 | msgctxt "@action:button selector for no subtitle" 83 | msgid "None" 84 | msgstr "Sense" 85 | 86 | #: src/qml/ControlsBar.qml:195 87 | msgctxt "" 88 | "@action:button subtitle selector %1 is usually a language (e.g. chinese) and " 89 | "%2 is usually a subtitle (e.g. Traditional)" 90 | msgid "%1 [%2]" 91 | msgstr "%1 [%2]" 92 | 93 | #: src/qml/ControlsBar.qml:212 94 | msgctxt "@action:button track selector" 95 | msgid "Audio Track" 96 | msgstr "Pista d'àudio" 97 | 98 | #: src/qml/ControlsBar.qml:227 99 | msgctxt "@action:button track selector" 100 | msgid "Video Track" 101 | msgstr "Pista de vídeo" 102 | 103 | #: src/qml/ControlsBar.qml:245 104 | msgctxt "@action opens about app page" 105 | msgid "About" 106 | msgstr "Quant al" 107 | 108 | #: src/qml/Main.qml:53 109 | msgctxt "@action:button open file dialog" 110 | msgid "Open…" 111 | msgstr "Obre…" 112 | 113 | #: src/qml/PlayerPage.qml:38 114 | msgctxt "@action:button" 115 | msgid "Play" 116 | msgstr "Reprodueix" 117 | 118 | #: src/qml/PlayerPage.qml:38 119 | msgctxt "@action:button" 120 | msgid "Pause" 121 | msgstr "Pausa" 122 | 123 | #: src/qml/PlayerPage.qml:46 124 | msgctxt "@action:button" 125 | msgid "Exit Fullscreen" 126 | msgstr "Surt de la pantalla completa" 127 | 128 | #: src/qml/PlayerPage.qml:46 129 | msgctxt "@action:button" 130 | msgid "Enter Fullscreen" 131 | msgstr "Entra a la pantalla completa" 132 | 133 | #: src/qml/PlayerPage.qml:79 134 | msgctxt "@info" 135 | msgid "" 136 | "Not all video codecs are installed. Video playback support may be less " 137 | "reliable than expected.\n" 138 | "Please install ffmpeg-full by running:\n" 139 | "flatpak install org.freedesktop.Platform.ffmpeg-full//24.08" 141 | msgstr "" 142 | "No estan instal·lats tots els còdecs de vídeo. El suport de reproducció de " 143 | "vídeo pot ser menys fiable del que s'espera.\n" 144 | "Instal·leu «ffmpeg-full» executant:\n" 145 | "flatpak install org.freedesktop.Platform.ffmpeg-full//24.08" 147 | 148 | #: src/qml/PlayerPage.qml:86 149 | msgctxt "@info" 150 | msgid "" 151 | "Not all video codecs are installed. Video playback support may be less " 152 | "reliable than expected.\n" 153 | "Please consult your distribution on how to install all possible codecs." 154 | msgstr "" 155 | "No estan instal·lats tots els còdecs de vídeo. El suport de reproducció de " 156 | "vídeo pot ser menys fiable del que s'espera.\n" 157 | "Consulteu la vostra distribució sobre com instal·lar tots els còdecs " 158 | "possibles." 159 | 160 | #: src/qml/PlayerPage.qml:94 161 | msgctxt "@action:button %1 is the name of a distribution" 162 | msgid "%1 Support" 163 | msgstr "Assistència %1" 164 | 165 | #: src/qml/PlayerPage.qml:330 166 | msgctxt "" 167 | "@info overlay on top of video. %1 is the amount of time played %2 is the " 168 | "total duration of the video" 169 | msgid "%1 / %2" 170 | msgstr "%1 / %2" 171 | 172 | #: src/qml/VolumeButton.qml:31 173 | msgctxt "@action:button open volume slider popup" 174 | msgid "Show volume controls" 175 | msgstr "Mostra els controls de volum" 176 | 177 | #: src/qml/WelcomeView.qml:16 178 | msgctxt "@title" 179 | msgid "Welcome to Dragon Player" 180 | msgstr "Us donem la benvinguda al reproductor Dragon" 181 | 182 | #: src/qml/WelcomeView.qml:17 183 | msgctxt "@info" 184 | msgid "Dragon Player is a simple video player. Open a video to get started:" 185 | msgstr "" 186 | "El reproductor Dragon és un reproductor senzill de vídeo. Obriu un vídeo per " 187 | "a començar:" 188 | 189 | #: src/qml/WelcomeView.qml:20 190 | msgctxt "@action:button" 191 | msgid "Open Video File or Network Stream" 192 | msgstr "Obre un fitxer de vídeo o un flux de xarxa" 193 | 194 | #~ msgctxt "@action:button open volume slider popup" 195 | #~ msgid "Volume" 196 | #~ msgstr "Volum" 197 | -------------------------------------------------------------------------------- /po/ca@valencia/dragonplayer.po: -------------------------------------------------------------------------------- 1 | # Translation of dragonplayer.po to Catalan (Valencian) 2 | # Copyright (C) 2008-2025 This_file_is_part_of_KDE 3 | # This file is distributed under the license LGPL version 2 or later. 4 | # 5 | # SPDX-FileCopyrightText: 2008, 2009, 2010, 2012, 2013, 2015, 2019, 2020, 2021, 2022, 2023, 2025 Josep M. Ferrer 6 | # Joan Maspons , 2009. 7 | # Manuel Tortosa Moreno , 2010, 2011. 8 | # Antoni Bella Pérez , 2018, 2020. 9 | msgid "" 10 | msgstr "" 11 | "Project-Id-Version: dragon\n" 12 | "Report-Msgid-Bugs-To: https://bugs.kde.org\n" 13 | "POT-Creation-Date: 2025-04-30 00:41+0000\n" 14 | "PO-Revision-Date: 2025-04-14 11:33+0200\n" 15 | "Last-Translator: Josep M. Ferrer \n" 16 | "Language-Team: Catalan \n" 17 | "Language: ca@valencia\n" 18 | "MIME-Version: 1.0\n" 19 | "Content-Type: text/plain; charset=UTF-8\n" 20 | "Content-Transfer-Encoding: 8bit\n" 21 | "X-Generator: Lokalize 24.12.3\n" 22 | "Plural-Forms: nplurals=2; plural=n != 1;\n" 23 | "X-Accelerator-Marker: &\n" 24 | 25 | #, kde-format 26 | msgctxt "NAME OF TRANSLATORS" 27 | msgid "Your names" 28 | msgstr "Josep M. Ferrer,Joan Maspons Ventura" 29 | 30 | #, kde-format 31 | msgctxt "EMAIL OF TRANSLATORS" 32 | msgid "Your emails" 33 | msgstr "txemaq@gmail.com,joanmaspons@gmail.com" 34 | 35 | #: src/main.cpp:24 36 | #, kde-format 37 | msgid "Dragon Player" 38 | msgstr "Dragon Player" 39 | 40 | #: src/main.cpp:26 41 | #, kde-format 42 | msgid "A video player that has a usability focus" 43 | msgstr "Un reproductor de vídeo que s'ha centrat en la usabilitat" 44 | 45 | #: src/main.cpp:28 46 | #, kde-format 47 | msgid "" 48 | "Copyright 2006, Max Howell\n" 49 | "Copyright 2007, Ian Monroe\n" 50 | "Copyright 2022 Harald Sitter" 51 | msgstr "" 52 | "Copyright 2006, Max Howell\n" 53 | "Copyright 2007, Ian Monroe\n" 54 | "Copyright 2022 Harald Sitter" 55 | 56 | #: src/qml/ControlsBar.qml:129 57 | msgctxt "@action:button" 58 | msgid "Application Menu" 59 | msgstr "Menú d'aplicacions" 60 | 61 | #: src/qml/ControlsBar.qml:160 62 | msgctxt "@action:button stop playback" 63 | msgid "Stop" 64 | msgstr "Para" 65 | 66 | #: src/qml/ControlsBar.qml:168 67 | msgctxt "@action:button" 68 | msgid "Unmute" 69 | msgstr "Trau el silenciament" 70 | 71 | #: src/qml/ControlsBar.qml:168 72 | msgctxt "@action:button" 73 | msgid "Mute" 74 | msgstr "Silencia" 75 | 76 | #: src/qml/ControlsBar.qml:178 77 | msgctxt "@action:button video subtitle" 78 | msgid "Subtitles" 79 | msgstr "Subtítols" 80 | 81 | #: src/qml/ControlsBar.qml:185 82 | msgctxt "@action:button selector for no subtitle" 83 | msgid "None" 84 | msgstr "Sense" 85 | 86 | #: src/qml/ControlsBar.qml:195 87 | msgctxt "" 88 | "@action:button subtitle selector %1 is usually a language (e.g. chinese) and " 89 | "%2 is usually a subtitle (e.g. Traditional)" 90 | msgid "%1 [%2]" 91 | msgstr "%1 [%2]" 92 | 93 | #: src/qml/ControlsBar.qml:212 94 | msgctxt "@action:button track selector" 95 | msgid "Audio Track" 96 | msgstr "Pista d'àudio" 97 | 98 | #: src/qml/ControlsBar.qml:227 99 | msgctxt "@action:button track selector" 100 | msgid "Video Track" 101 | msgstr "Pista de vídeo" 102 | 103 | #: src/qml/ControlsBar.qml:245 104 | msgctxt "@action opens about app page" 105 | msgid "About" 106 | msgstr "Quant a" 107 | 108 | #: src/qml/Main.qml:53 109 | msgctxt "@action:button open file dialog" 110 | msgid "Open…" 111 | msgstr "Obri…" 112 | 113 | #: src/qml/PlayerPage.qml:38 114 | msgctxt "@action:button" 115 | msgid "Play" 116 | msgstr "Reproduïx" 117 | 118 | #: src/qml/PlayerPage.qml:38 119 | msgctxt "@action:button" 120 | msgid "Pause" 121 | msgstr "Pausa" 122 | 123 | #: src/qml/PlayerPage.qml:46 124 | msgctxt "@action:button" 125 | msgid "Exit Fullscreen" 126 | msgstr "Ix de la pantalla completa" 127 | 128 | #: src/qml/PlayerPage.qml:46 129 | msgctxt "@action:button" 130 | msgid "Enter Fullscreen" 131 | msgstr "Entra a la pantalla completa" 132 | 133 | #: src/qml/PlayerPage.qml:79 134 | msgctxt "@info" 135 | msgid "" 136 | "Not all video codecs are installed. Video playback support may be less " 137 | "reliable than expected.\n" 138 | "Please install ffmpeg-full by running:\n" 139 | "flatpak install org.freedesktop.Platform.ffmpeg-full//24.08" 141 | msgstr "" 142 | "No estan instal·lats tots els còdecs de vídeo. El suport de reproducció de " 143 | "vídeo pot ser menys fiable del que s'espera.\n" 144 | "Instal·leu «ffmpeg-full» executant:\n" 145 | "flatpak install org.freedesktop.Platform.ffmpeg-full//24.08" 147 | 148 | #: src/qml/PlayerPage.qml:86 149 | msgctxt "@info" 150 | msgid "" 151 | "Not all video codecs are installed. Video playback support may be less " 152 | "reliable than expected.\n" 153 | "Please consult your distribution on how to install all possible codecs." 154 | msgstr "" 155 | "No estan instal·lats tots els còdecs de vídeo. El suport de reproducció de " 156 | "vídeo pot ser menys fiable del que s'espera.\n" 157 | "Consulteu la vostra distribució sobre com instal·lar tots els còdecs " 158 | "possibles." 159 | 160 | #: src/qml/PlayerPage.qml:94 161 | msgctxt "@action:button %1 is the name of a distribution" 162 | msgid "%1 Support" 163 | msgstr "Assistència %1" 164 | 165 | #: src/qml/PlayerPage.qml:330 166 | msgctxt "" 167 | "@info overlay on top of video. %1 is the amount of time played %2 is the " 168 | "total duration of the video" 169 | msgid "%1 / %2" 170 | msgstr "%1 / %2" 171 | 172 | #: src/qml/VolumeButton.qml:31 173 | msgctxt "@action:button open volume slider popup" 174 | msgid "Show volume controls" 175 | msgstr "Mostra els controls de volum" 176 | 177 | #: src/qml/WelcomeView.qml:16 178 | msgctxt "@title" 179 | msgid "Welcome to Dragon Player" 180 | msgstr "Us donem la benvinguda al reproductor Dragon" 181 | 182 | #: src/qml/WelcomeView.qml:17 183 | msgctxt "@info" 184 | msgid "Dragon Player is a simple video player. Open a video to get started:" 185 | msgstr "" 186 | "El reproductor Dragon és un reproductor senzill de vídeo. Obriu un vídeo per " 187 | "a començar:" 188 | 189 | #: src/qml/WelcomeView.qml:20 190 | msgctxt "@action:button" 191 | msgid "Open Video File or Network Stream" 192 | msgstr "Obri un fitxer de vídeo o un flux de xarxa" 193 | -------------------------------------------------------------------------------- /po/cs/dragonplayer.po: -------------------------------------------------------------------------------- 1 | # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER 2 | # This file is distributed under the same license as the PACKAGE package. 3 | # SPDX-FileCopyrightText: 2010, 2011, 2012, 2013, 2015, 2017, 2018, 2019, 2020, 2023 Vít Pelčák 4 | # Tomáš Chvátal , 2012. 5 | # 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: dragonplayer\n" 9 | "Report-Msgid-Bugs-To: https://bugs.kde.org\n" 10 | "POT-Creation-Date: 2025-04-30 00:41+0000\n" 11 | "PO-Revision-Date: 2023-10-12 16:41+0200\n" 12 | "Last-Translator: Vit Pelcak \n" 13 | "Language-Team: Czech \n" 14 | "Language: cs\n" 15 | "MIME-Version: 1.0\n" 16 | "Content-Type: text/plain; charset=UTF-8\n" 17 | "Content-Transfer-Encoding: 8bit\n" 18 | "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" 19 | "X-Generator: Lokalize 23.08.1\n" 20 | 21 | #, kde-format 22 | msgctxt "NAME OF TRANSLATORS" 23 | msgid "Your names" 24 | msgstr "Vít Pelčák,David Kolibáč" 25 | 26 | #, kde-format 27 | msgctxt "EMAIL OF TRANSLATORS" 28 | msgid "Your emails" 29 | msgstr "vit@pelcak.org,david@kolibac.cz" 30 | 31 | #: src/main.cpp:24 32 | #, kde-format 33 | msgid "Dragon Player" 34 | msgstr "Přehrávač Dragon" 35 | 36 | #: src/main.cpp:26 37 | #, kde-format 38 | msgid "A video player that has a usability focus" 39 | msgstr "Přehrávač videa se zaměřením na jednoduchost použití" 40 | 41 | #: src/main.cpp:28 42 | #, kde-format 43 | msgid "" 44 | "Copyright 2006, Max Howell\n" 45 | "Copyright 2007, Ian Monroe\n" 46 | "Copyright 2022 Harald Sitter" 47 | msgstr "" 48 | 49 | #: src/qml/ControlsBar.qml:129 50 | msgctxt "@action:button" 51 | msgid "Application Menu" 52 | msgstr "Nabídka aplikací" 53 | 54 | #: src/qml/ControlsBar.qml:160 55 | msgctxt "@action:button stop playback" 56 | msgid "Stop" 57 | msgstr "" 58 | 59 | #: src/qml/ControlsBar.qml:168 60 | msgctxt "@action:button" 61 | msgid "Unmute" 62 | msgstr "Povolit zvuk" 63 | 64 | #: src/qml/ControlsBar.qml:168 65 | msgctxt "@action:button" 66 | msgid "Mute" 67 | msgstr "Ztlumit" 68 | 69 | #: src/qml/ControlsBar.qml:178 70 | msgctxt "@action:button video subtitle" 71 | msgid "Subtitles" 72 | msgstr "" 73 | 74 | #: src/qml/ControlsBar.qml:185 75 | msgctxt "@action:button selector for no subtitle" 76 | msgid "None" 77 | msgstr "" 78 | 79 | #: src/qml/ControlsBar.qml:195 80 | msgctxt "" 81 | "@action:button subtitle selector %1 is usually a language (e.g. chinese) and " 82 | "%2 is usually a subtitle (e.g. Traditional)" 83 | msgid "%1 [%2]" 84 | msgstr "" 85 | 86 | #: src/qml/ControlsBar.qml:212 87 | msgctxt "@action:button track selector" 88 | msgid "Audio Track" 89 | msgstr "" 90 | 91 | #: src/qml/ControlsBar.qml:227 92 | msgctxt "@action:button track selector" 93 | msgid "Video Track" 94 | msgstr "" 95 | 96 | #: src/qml/ControlsBar.qml:245 97 | msgctxt "@action opens about app page" 98 | msgid "About" 99 | msgstr "O aplikaci" 100 | 101 | #: src/qml/Main.qml:53 102 | msgctxt "@action:button open file dialog" 103 | msgid "Open…" 104 | msgstr "" 105 | 106 | #: src/qml/PlayerPage.qml:38 107 | msgctxt "@action:button" 108 | msgid "Play" 109 | msgstr "Přehrát" 110 | 111 | #: src/qml/PlayerPage.qml:38 112 | msgctxt "@action:button" 113 | msgid "Pause" 114 | msgstr "" 115 | 116 | #: src/qml/PlayerPage.qml:46 117 | msgctxt "@action:button" 118 | msgid "Exit Fullscreen" 119 | msgstr "" 120 | 121 | #: src/qml/PlayerPage.qml:46 122 | msgctxt "@action:button" 123 | msgid "Enter Fullscreen" 124 | msgstr "" 125 | 126 | #: src/qml/PlayerPage.qml:79 127 | msgctxt "@info" 128 | msgid "" 129 | "Not all video codecs are installed. Video playback support may be less " 130 | "reliable than expected.\n" 131 | "Please install ffmpeg-full by running:\n" 132 | "flatpak install org.freedesktop.Platform.ffmpeg-full//24.08" 134 | msgstr "" 135 | 136 | #: src/qml/PlayerPage.qml:86 137 | msgctxt "@info" 138 | msgid "" 139 | "Not all video codecs are installed. Video playback support may be less " 140 | "reliable than expected.\n" 141 | "Please consult your distribution on how to install all possible codecs." 142 | msgstr "" 143 | 144 | #: src/qml/PlayerPage.qml:94 145 | msgctxt "@action:button %1 is the name of a distribution" 146 | msgid "%1 Support" 147 | msgstr "" 148 | 149 | #: src/qml/PlayerPage.qml:330 150 | msgctxt "" 151 | "@info overlay on top of video. %1 is the amount of time played %2 is the " 152 | "total duration of the video" 153 | msgid "%1 / %2" 154 | msgstr "" 155 | 156 | #: src/qml/VolumeButton.qml:31 157 | msgctxt "@action:button open volume slider popup" 158 | msgid "Show volume controls" 159 | msgstr "" 160 | 161 | #: src/qml/WelcomeView.qml:16 162 | msgctxt "@title" 163 | msgid "Welcome to Dragon Player" 164 | msgstr "" 165 | 166 | #: src/qml/WelcomeView.qml:17 167 | msgctxt "@info" 168 | msgid "Dragon Player is a simple video player. Open a video to get started:" 169 | msgstr "" 170 | 171 | #: src/qml/WelcomeView.qml:20 172 | msgctxt "@action:button" 173 | msgid "Open Video File or Network Stream" 174 | msgstr "" 175 | -------------------------------------------------------------------------------- /po/eo/dragonplayer.po: -------------------------------------------------------------------------------- 1 | # Translation of dragonplayer into esperanto. 2 | # Copyright (C) 2009 Free Software Foundation, Inc. 3 | # Axel Rousseau , 2009. 4 | # Oliver Kellogg , 2023. 5 | # 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: dragonplayer\n" 9 | "Report-Msgid-Bugs-To: https://bugs.kde.org\n" 10 | "POT-Creation-Date: 2025-04-30 00:41+0000\n" 11 | "PO-Revision-Date: 2023-11-03 23:51+0100\n" 12 | "Last-Translator: Oliver Kellogg \n" 13 | "Language-Team: esperanto \n" 14 | "Language: eo\n" 15 | "MIME-Version: 1.0\n" 16 | "Content-Type: text/plain; charset=UTF-8\n" 17 | "Content-Transfer-Encoding: 8bit\n" 18 | "X-Generator: translate-po (https://github.com/zcribe/translate-po)\n" 19 | "Plural-Forms: nplurals=2; plural=n != 1;\n" 20 | 21 | #, kde-format 22 | msgctxt "NAME OF TRANSLATORS" 23 | msgid "Your names" 24 | msgstr "Axel Rousseau,Oliver Kellogg" 25 | 26 | #, kde-format 27 | msgctxt "EMAIL OF TRANSLATORS" 28 | msgid "Your emails" 29 | msgstr "axel@esperanto-jeunes.org,olivermkellogg@gmail.com" 30 | 31 | #: src/main.cpp:24 32 | #, kde-format 33 | msgid "Dragon Player" 34 | msgstr "Dragon Player" 35 | 36 | #: src/main.cpp:26 37 | #, kde-format 38 | msgid "A video player that has a usability focus" 39 | msgstr "Videoludilo, kiu fokusas pri uzebleco" 40 | 41 | #: src/main.cpp:28 42 | #, fuzzy, kde-format 43 | #| msgid "" 44 | #| "Copyright 2006, Max Howell\n" 45 | #| "Copyright 2007, Ian Monroe" 46 | msgid "" 47 | "Copyright 2006, Max Howell\n" 48 | "Copyright 2007, Ian Monroe\n" 49 | "Copyright 2022 Harald Sitter" 50 | msgstr "" 51 | "Copyright 2006, Max Howell\n" 52 | "Copyright 2007, Ian Monroe" 53 | 54 | #: src/qml/ControlsBar.qml:129 55 | msgctxt "@action:button" 56 | msgid "Application Menu" 57 | msgstr "" 58 | 59 | #: src/qml/ControlsBar.qml:160 60 | #, fuzzy 61 | #| msgctxt "@action" 62 | #| msgid "Stop" 63 | msgctxt "@action:button stop playback" 64 | msgid "Stop" 65 | msgstr "Halti" 66 | 67 | #: src/qml/ControlsBar.qml:168 68 | msgctxt "@action:button" 69 | msgid "Unmute" 70 | msgstr "" 71 | 72 | #: src/qml/ControlsBar.qml:168 73 | #, fuzzy 74 | #| msgctxt "@action Mute the sound output" 75 | #| msgid "Mute" 76 | msgctxt "@action:button" 77 | msgid "Mute" 78 | msgstr "Silentigi" 79 | 80 | #: src/qml/ControlsBar.qml:178 81 | #, fuzzy 82 | #| msgctxt "@title:menu" 83 | #| msgid "&Subtitles" 84 | msgctxt "@action:button video subtitle" 85 | msgid "Subtitles" 86 | msgstr "&Subtekstoj" 87 | 88 | #: src/qml/ControlsBar.qml:185 89 | msgctxt "@action:button selector for no subtitle" 90 | msgid "None" 91 | msgstr "" 92 | 93 | #: src/qml/ControlsBar.qml:195 94 | msgctxt "" 95 | "@action:button subtitle selector %1 is usually a language (e.g. chinese) and " 96 | "%2 is usually a subtitle (e.g. Traditional)" 97 | msgid "%1 [%2]" 98 | msgstr "" 99 | 100 | #: src/qml/ControlsBar.qml:212 101 | #, fuzzy 102 | #| msgid "Audio CD" 103 | msgctxt "@action:button track selector" 104 | msgid "Audio Track" 105 | msgstr "Sona KD" 106 | 107 | #: src/qml/ControlsBar.qml:227 108 | #, fuzzy 109 | #| msgid "Video CD" 110 | msgctxt "@action:button track selector" 111 | msgid "Video Track" 112 | msgstr "Video-KD" 113 | 114 | #: src/qml/ControlsBar.qml:245 115 | msgctxt "@action opens about app page" 116 | msgid "About" 117 | msgstr "" 118 | 119 | #: src/qml/Main.qml:53 120 | msgctxt "@action:button open file dialog" 121 | msgid "Open…" 122 | msgstr "" 123 | 124 | #: src/qml/PlayerPage.qml:38 125 | #, fuzzy 126 | #| msgctxt "@action" 127 | #| msgid "Play" 128 | msgctxt "@action:button" 129 | msgid "Play" 130 | msgstr "Ludi" 131 | 132 | #: src/qml/PlayerPage.qml:38 133 | #, fuzzy 134 | #| msgctxt "@action" 135 | #| msgid "Pause" 136 | msgctxt "@action:button" 137 | msgid "Pause" 138 | msgstr "Paŭzi" 139 | 140 | #: src/qml/PlayerPage.qml:46 141 | msgctxt "@action:button" 142 | msgid "Exit Fullscreen" 143 | msgstr "" 144 | 145 | #: src/qml/PlayerPage.qml:46 146 | msgctxt "@action:button" 147 | msgid "Enter Fullscreen" 148 | msgstr "" 149 | 150 | #: src/qml/PlayerPage.qml:79 151 | msgctxt "@info" 152 | msgid "" 153 | "Not all video codecs are installed. Video playback support may be less " 154 | "reliable than expected.\n" 155 | "Please install ffmpeg-full by running:\n" 156 | "flatpak install org.freedesktop.Platform.ffmpeg-full//24.08" 158 | msgstr "" 159 | 160 | #: src/qml/PlayerPage.qml:86 161 | msgctxt "@info" 162 | msgid "" 163 | "Not all video codecs are installed. Video playback support may be less " 164 | "reliable than expected.\n" 165 | "Please consult your distribution on how to install all possible codecs." 166 | msgstr "" 167 | 168 | #: src/qml/PlayerPage.qml:94 169 | msgctxt "@action:button %1 is the name of a distribution" 170 | msgid "%1 Support" 171 | msgstr "" 172 | 173 | #: src/qml/PlayerPage.qml:330 174 | msgctxt "" 175 | "@info overlay on top of video. %1 is the amount of time played %2 is the " 176 | "total duration of the video" 177 | msgid "%1 / %2" 178 | msgstr "" 179 | 180 | #: src/qml/VolumeButton.qml:31 181 | msgctxt "@action:button open volume slider popup" 182 | msgid "Show volume controls" 183 | msgstr "" 184 | 185 | #: src/qml/WelcomeView.qml:16 186 | #, fuzzy 187 | #| msgid "Welcome to Dragon Player" 188 | msgctxt "@title" 189 | msgid "Welcome to Dragon Player" 190 | msgstr "Bonvenon al Dragon Player" 191 | 192 | #: src/qml/WelcomeView.qml:17 193 | msgctxt "@info" 194 | msgid "Dragon Player is a simple video player. Open a video to get started:" 195 | msgstr "" 196 | 197 | #: src/qml/WelcomeView.qml:20 198 | msgctxt "@action:button" 199 | msgid "Open Video File or Network Stream" 200 | msgstr "" 201 | 202 | #, fuzzy 203 | #~| msgctxt "@option:check Volume of sound output" 204 | #~| msgid "Volume" 205 | #~ msgctxt "@action:button open volume slider popup" 206 | #~ msgid "Volume" 207 | #~ msgstr "Laŭteco" 208 | 209 | #~ msgctxt "@title:menu" 210 | #~ msgid "&Play" 211 | #~ msgstr "&Ludi" 212 | 213 | #~ msgctxt "@title:menu" 214 | #~ msgid "Play Media" 215 | #~ msgstr "Ludi Aŭdvidaĵon" 216 | 217 | #~ msgctxt "@title:menu" 218 | #~ msgid "&Settings" 219 | #~ msgstr "A&gordo" 220 | 221 | #~ msgid "Main Toolbar" 222 | #~ msgstr "Ĉefa ilobreto" 223 | 224 | #~ msgctxt "@action:button" 225 | #~ msgid "Preferred Scale" 226 | #~ msgstr "Preferata Skalo" 227 | 228 | #~ msgctxt "@action:button" 229 | #~ msgid "Scale 100%" 230 | #~ msgstr "Skalo 100%" 231 | 232 | #~ msgid "Adjust video scale?" 233 | #~ msgstr "Ĉu ĝustigi videoskalon?" 234 | 235 | #~ msgctxt "" 236 | #~ "%1 is the disc type, %2 is the name of the disc that the user can choose. " 237 | #~ "Ex. 'DVD: OfficeSpace'" 238 | #~ msgid "%1: %2" 239 | #~ msgstr "%1: %2" 240 | 241 | #~ msgctxt "Digital Versatile Disc, but keep it short" 242 | #~ msgid "DVD" 243 | #~ msgstr "DVD" 244 | 245 | #~ msgid "Data CD" 246 | #~ msgstr "KD de datumoj" 247 | 248 | #~ msgctxt "@title:window" 249 | #~ msgid "Select a Disc" 250 | #~ msgstr "Elekti Diskon" 251 | 252 | #~ msgid "Select a disc to play." 253 | #~ msgstr "Elektu diskon por ludi." 254 | 255 | #~ msgid "Improvements and polish" 256 | #~ msgstr "Pliboniĝoj kaj polurado" 257 | 258 | #~ msgid "Creator of Phonon" 259 | #~ msgstr "Kreinto de Phonon" 260 | 261 | #~ msgid "Dragon Player icon" 262 | #~ msgstr "Piktogramo de Dragon Player" 263 | 264 | #~ msgid "Handbook" 265 | #~ msgstr "Manlibro" 266 | 267 | #~ msgid "Great reference code" 268 | #~ msgstr "Bonega referenckodo" 269 | 270 | #~ msgid "Yatta happened to be the only video on my laptop to test with. :)" 271 | #~ msgstr "" 272 | #~ "Yatta hazarde estis la nura video sur mia tekkomputilo kun kiu testi. :)" 273 | 274 | #~ msgid "MPRIS v2 support" 275 | #~ msgstr "MPRIS v2 subteno" 276 | 277 | #~ msgid "Port to KF5/Plasma 5" 278 | #~ msgstr "Portado al KF5/Plasma 5" 279 | 280 | #~ msgid "Play DVD Video" 281 | #~ msgstr "Ludi DVD-Videon" 282 | 283 | #~ msgid "Play 'URL'" 284 | #~ msgstr "Ludi 'URL'" 285 | 286 | #~ msgctxt "@title:menu" 287 | #~ msgid "Aspect &Ratio" 288 | #~ msgstr "Bildfo&rmato" 289 | 290 | #~ msgctxt "@title:menu" 291 | #~ msgid "&Audio Channels" 292 | #~ msgstr "&Aŭdiokanaloj" 293 | 294 | #~ msgctxt "@option:radio aspect ratio" 295 | #~ msgid "Determine &Automatically" 296 | #~ msgstr "Determini &Aŭtomate" 297 | 298 | #~ msgctxt "@option:radio aspect ratio" 299 | #~ msgid "&4:3" 300 | #~ msgstr "&4:3" 301 | 302 | #~ msgctxt "@option:radio aspect ratio" 303 | #~ msgid "Ana&morphic (16:9)" 304 | #~ msgstr "Ana&morfa (16:9)" 305 | 306 | #~ msgctxt "@option:radio aspect ratio" 307 | #~ msgid "&Window Size" 308 | #~ msgstr "&Fenestra Grandeco" 309 | 310 | #~ msgid "" 311 | #~ "Phonon could not be successfully initialized. Dragon Player will now " 312 | #~ "exit." 313 | #~ msgstr "" 314 | #~ "Phonon ne povis esti sukcese pravalorizita. Dragon Player nun eliros." 315 | #~ "" 316 | 317 | #~ msgctxt "@action" 318 | #~ msgid "Play File…" 319 | #~ msgstr "Ludi dosieron…" 320 | 321 | #~ msgctxt "@info:tooltip" 322 | #~ msgid "Open a media file for playback" 323 | #~ msgstr "Malfermi aŭdvidaĵan dosieron por reludi" 324 | 325 | #~ msgctxt "@action" 326 | #~ msgid "Play Stream…" 327 | #~ msgstr "Ludi Stream…" 328 | 329 | #~ msgctxt "@action" 330 | #~ msgid "Play Disc" 331 | #~ msgstr "Ludi Diskon" 332 | 333 | #~ msgctxt "@action" 334 | #~ msgid "Increase Volume" 335 | #~ msgstr "Pliigi la laŭtecon" 336 | 337 | #~ msgctxt "@action" 338 | #~ msgid "Decrease Volume" 339 | #~ msgstr "Malpliigi la laŭtecon" 340 | 341 | #~ msgctxt "@action" 342 | #~ msgid "Reset Video Scale" 343 | #~ msgstr "Restarigi Video-Skalon" 344 | 345 | #~ msgctxt "@action" 346 | #~ msgid "Menu Toggle" 347 | #~ msgstr "Menu-Baskulo" 348 | 349 | #~ msgid "Position Slider" 350 | #~ msgstr "Pozicia Glitilo" 351 | 352 | #~ msgctxt "@option:check" 353 | #~ msgid "Video Settings" 354 | #~ msgstr "Video-Agordoj" 355 | 356 | #~ msgctxt "" 357 | #~ "@option:check Whether only one instance of dragon can be started and will " 358 | #~ "be reused when the user tries to play another file." 359 | #~ msgid "One Instance Only" 360 | #~ msgstr "Nur Unu Instanco" 361 | 362 | #~ msgctxt "@action previous chapter" 363 | #~ msgid "Previous" 364 | #~ msgstr "Antaŭa" 365 | 366 | #~ msgctxt "@action next chapter" 367 | #~ msgid "Next" 368 | #~ msgstr "Sekva" 369 | 370 | #~ msgctxt "@action" 371 | #~ msgid "Return 10% Back" 372 | #~ msgstr "Reveni 10% Reen" 373 | 374 | #~ msgctxt "@action" 375 | #~ msgid "Go 10% Forward" 376 | #~ msgstr "Iri 10% Antaŭen" 377 | 378 | #~ msgctxt "@action" 379 | #~ msgid "Return 10 Seconds Back" 380 | #~ msgstr "Reveni 10 Sekundojn Reen" 381 | 382 | #~ msgctxt "@action" 383 | #~ msgid "Go 10 Seconds Forward" 384 | #~ msgstr "Iri 10 Sekundojn Antaŭen" 385 | 386 | #~ msgctxt "@option:check Mute the sound output" 387 | #~ msgid "Mute" 388 | #~ msgstr "Silentigi" 389 | 390 | #~ msgid "Dragon Player was asked to open an empty URL; it cannot." 391 | #~ msgstr "Dragon Player estis petita malfermi malplenan URL; ĝi ne povas." 392 | 393 | #~ msgctxt "@title:window" 394 | #~ msgid "Select File to Play" 395 | #~ msgstr "Elekti Dosieron por Ludi" 396 | 397 | #~ msgctxt "@title:window" 398 | #~ msgid "Stream to Play" 399 | #~ msgstr "Fluo por Ludi" 400 | 401 | #~ msgctxt "@label:textbox" 402 | #~ msgid "Stream:" 403 | #~ msgstr "Fluo:" 404 | 405 | #~ msgid "Sorry, no media was found in the drop" 406 | #~ msgstr "Pardonu, neniu aŭdvidaĵo estis trovita en la guto" 407 | 408 | #~ msgctxt "Notification inhibition reason" 409 | #~ msgid "Playing a video" 410 | #~ msgstr "Ludado de filmeto" 411 | 412 | #~ msgid "No media loaded" 413 | #~ msgstr "Neniu aŭdvidaĵo ŝargita" 414 | 415 | #~ msgid "Paused" 416 | #~ msgstr "Paŭzita" 417 | 418 | #~ msgid "The file is not a playlist" 419 | #~ msgstr "La dosiero ne estas ludlisto" 420 | 421 | #~ msgid "Dragon Player could not download the remote playlist: %1" 422 | #~ msgstr "Dragon Player ne povis elŝuti la foran ludliston: %1" 423 | 424 | #~ msgid "" 425 | #~ "The playlist, '%1', could not be interpreted. Perhaps it is " 426 | #~ "empty?" 427 | #~ msgstr "" 428 | #~ "La ludlisto, '%1', ne povis esti interpretita. Eble ĝi estas " 429 | #~ "malplena?" 430 | 431 | #~ msgid "Dragon Player could not open the file: %1" 432 | #~ msgstr "Dragon Player ne povis malfermi la dosieron: %1" 433 | 434 | #~ msgid "Track %1/%2" 435 | #~ msgstr "Vojo %1/%2" 436 | 437 | #~ msgctxt "@label:slider" 438 | #~ msgid "Brightness:" 439 | #~ msgstr "Brileco:" 440 | 441 | #~ msgctxt "@label:slider" 442 | #~ msgid "Contrast:" 443 | #~ msgstr "Kontrasto:" 444 | 445 | #~ msgctxt "@label:slider" 446 | #~ msgid "Hue:" 447 | #~ msgstr "Nuanco:" 448 | 449 | #~ msgctxt "@label:slider" 450 | #~ msgid "Saturation:" 451 | #~ msgstr "Saturo:" 452 | 453 | #~ msgctxt "@action:button" 454 | #~ msgid "Restore Defaults" 455 | #~ msgstr "Restarigi defaŭltojn" 456 | 457 | #~ msgctxt "@action:button" 458 | #~ msgid "Close" 459 | #~ msgstr "Fermi" 460 | 461 | #~ msgctxt "@option:radio" 462 | #~ msgid "&DVD Subtitle Selection" 463 | #~ msgstr "&DVD-Selekto de Subtitoloj" 464 | 465 | #~ msgctxt "@option:radio audio language" 466 | #~ msgid "&Auto" 467 | #~ msgstr "&Aŭtomata" 468 | -------------------------------------------------------------------------------- /po/es/dragonplayer.po: -------------------------------------------------------------------------------- 1 | # Spanish translations for dragonplayer.po package. 2 | # Copyright (C) 2007-2025 This_file_is_part_of_KDE 3 | # This file is distributed under the same license as the dragon package. 4 | # 5 | # SPDX-FileCopyrightText: 2007 Santiago Fernández Sancho 6 | # SPDX-FileCopyrightText: 2007 Alberto Garcia 7 | # SPDX-FileCopyrightText: 2008 Jaime Robles 8 | # SPDX-FileCopyrightText: 2008, 2009, 2011 Enrique Matias Sanchez (aka Quique) 9 | # SPDX-FileCopyrightText: 2012 Rocio Gallego 10 | # SPDX-FileCopyrightText: 2013 Ayoze Hernández Díaz 11 | # SPDX-FileCopyrightText: 2013, 2015 Eloy Cuadra 12 | # SPDX-FileCopyrightText: 2018, 2019, 2020, 2022, 2023, 2025 Víctor Rodrigo Córdoba 13 | msgid "" 14 | msgstr "" 15 | "Project-Id-Version: dragonplayer\n" 16 | "Report-Msgid-Bugs-To: https://bugs.kde.org\n" 17 | "POT-Creation-Date: 2025-04-30 00:41+0000\n" 18 | "PO-Revision-Date: 2025-04-27 04:52+0100\n" 19 | "Last-Translator: Víctor Rodrigo Córdoba \n" 20 | "Language-Team: Spanish \n" 21 | "Language: es\n" 22 | "MIME-Version: 1.0\n" 23 | "Content-Type: text/plain; charset=UTF-8\n" 24 | "Content-Transfer-Encoding: 8bit\n" 25 | "X-Generator: Lokalize 25.04.0\n" 26 | "Plural-Forms: nplurals=2; plural=n != 1;\n" 27 | 28 | #, kde-format 29 | msgctxt "NAME OF TRANSLATORS" 30 | msgid "Your names" 31 | msgstr "" 32 | "Víctor Rodrigo,Santiago Fernández Sancho,Enrique Matías Sánchez,Ayoze " 33 | "Hernández Díaz" 34 | 35 | #, kde-format 36 | msgctxt "EMAIL OF TRANSLATORS" 37 | msgid "Your emails" 38 | msgstr "" 39 | "vrcordoba@gmail.com,santi@kde-es.org,cronopios@gmail.com,ayoze12@gmail.com" 40 | 41 | #: src/main.cpp:24 42 | #, kde-format 43 | msgid "Dragon Player" 44 | msgstr "Dragon Player" 45 | 46 | #: src/main.cpp:26 47 | #, kde-format 48 | msgid "A video player that has a usability focus" 49 | msgstr "Un reproductor de vídeo enfocado a la usabilidad" 50 | 51 | #: src/main.cpp:28 52 | #, kde-format 53 | msgid "" 54 | "Copyright 2006, Max Howell\n" 55 | "Copyright 2007, Ian Monroe\n" 56 | "Copyright 2022 Harald Sitter" 57 | msgstr "" 58 | "Copyright 2006, Max Howell\n" 59 | "Copyright 2007, Ian Monroe\n" 60 | "Copyright 2022 Harald Sitter" 61 | 62 | #: src/qml/ControlsBar.qml:129 63 | msgctxt "@action:button" 64 | msgid "Application Menu" 65 | msgstr "Menú de la aplicación" 66 | 67 | #: src/qml/ControlsBar.qml:160 68 | msgctxt "@action:button stop playback" 69 | msgid "Stop" 70 | msgstr "Detener" 71 | 72 | #: src/qml/ControlsBar.qml:168 73 | msgctxt "@action:button" 74 | msgid "Unmute" 75 | msgstr "Recuperar sonido" 76 | 77 | #: src/qml/ControlsBar.qml:168 78 | msgctxt "@action:button" 79 | msgid "Mute" 80 | msgstr "Silenciar" 81 | 82 | #: src/qml/ControlsBar.qml:178 83 | msgctxt "@action:button video subtitle" 84 | msgid "Subtitles" 85 | msgstr "Subtítulos" 86 | 87 | #: src/qml/ControlsBar.qml:185 88 | msgctxt "@action:button selector for no subtitle" 89 | msgid "None" 90 | msgstr "Ninguno" 91 | 92 | #: src/qml/ControlsBar.qml:195 93 | msgctxt "" 94 | "@action:button subtitle selector %1 is usually a language (e.g. chinese) and " 95 | "%2 is usually a subtitle (e.g. Traditional)" 96 | msgid "%1 [%2]" 97 | msgstr "%1 [%2]" 98 | 99 | #: src/qml/ControlsBar.qml:212 100 | msgctxt "@action:button track selector" 101 | msgid "Audio Track" 102 | msgstr "Pista de audio" 103 | 104 | #: src/qml/ControlsBar.qml:227 105 | msgctxt "@action:button track selector" 106 | msgid "Video Track" 107 | msgstr "Pista de vídeo" 108 | 109 | #: src/qml/ControlsBar.qml:245 110 | msgctxt "@action opens about app page" 111 | msgid "About" 112 | msgstr "Sobre" 113 | 114 | #: src/qml/Main.qml:53 115 | msgctxt "@action:button open file dialog" 116 | msgid "Open…" 117 | msgstr "Abrir…" 118 | 119 | #: src/qml/PlayerPage.qml:38 120 | msgctxt "@action:button" 121 | msgid "Play" 122 | msgstr "Reproducir" 123 | 124 | #: src/qml/PlayerPage.qml:38 125 | msgctxt "@action:button" 126 | msgid "Pause" 127 | msgstr "Pausar" 128 | 129 | #: src/qml/PlayerPage.qml:46 130 | msgctxt "@action:button" 131 | msgid "Exit Fullscreen" 132 | msgstr "Salir de pantalla completa" 133 | 134 | #: src/qml/PlayerPage.qml:46 135 | msgctxt "@action:button" 136 | msgid "Enter Fullscreen" 137 | msgstr "Entra en pantalla completa" 138 | 139 | #: src/qml/PlayerPage.qml:79 140 | msgctxt "@info" 141 | msgid "" 142 | "Not all video codecs are installed. Video playback support may be less " 143 | "reliable than expected.\n" 144 | "Please install ffmpeg-full by running:\n" 145 | "flatpak install org.freedesktop.Platform.ffmpeg-full//24.08" 147 | msgstr "" 148 | "No todos los codecs de vídeo están instalados. La reproducción de vídeo " 149 | "puede ser más inestable de lo esperado.\n" 150 | "Instale ffmpeg-full, ejecutando:\n" 151 | "flatpak install org.freedesktop.Platform.ffmpeg-full//24.08" 153 | 154 | #: src/qml/PlayerPage.qml:86 155 | msgctxt "@info" 156 | msgid "" 157 | "Not all video codecs are installed. Video playback support may be less " 158 | "reliable than expected.\n" 159 | "Please consult your distribution on how to install all possible codecs." 160 | msgstr "" 161 | "No todos los codecs de vídeo están instalados. La reproducción de vídeo " 162 | "puede ser más inestable de lo esperado.\n" 163 | "Consulte su distribución para saber como instalar todos los posibles codecs." 164 | 165 | #: src/qml/PlayerPage.qml:94 166 | msgctxt "@action:button %1 is the name of a distribution" 167 | msgid "%1 Support" 168 | msgstr "%1 soportada" 169 | 170 | #: src/qml/PlayerPage.qml:330 171 | msgctxt "" 172 | "@info overlay on top of video. %1 is the amount of time played %2 is the " 173 | "total duration of the video" 174 | msgid "%1 / %2" 175 | msgstr "%1 / %2" 176 | 177 | #: src/qml/VolumeButton.qml:31 178 | msgctxt "@action:button open volume slider popup" 179 | msgid "Show volume controls" 180 | msgstr "Mostrar controles de volumen" 181 | 182 | #: src/qml/WelcomeView.qml:16 183 | msgctxt "@title" 184 | msgid "Welcome to Dragon Player" 185 | msgstr "Bienvenido a Dragon Player" 186 | 187 | #: src/qml/WelcomeView.qml:17 188 | msgctxt "@info" 189 | msgid "Dragon Player is a simple video player. Open a video to get started:" 190 | msgstr "" 191 | "Dragon Player es un reproductor de vídeo simple. Abra un vídeo para empezar:" 192 | 193 | #: src/qml/WelcomeView.qml:20 194 | msgctxt "@action:button" 195 | msgid "Open Video File or Network Stream" 196 | msgstr "Abrir archivo o transmisión de vídeo" 197 | -------------------------------------------------------------------------------- /po/hi/dragonplayer.po: -------------------------------------------------------------------------------- 1 | # Hindi translations for dragon package. 2 | # Copyright (C) 2024 This file is copyright: 3 | # This file is distributed under the same license as the dragon package. 4 | # Kali , 2024. 5 | # 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: dragon\n" 9 | "Report-Msgid-Bugs-To: https://bugs.kde.org\n" 10 | "POT-Creation-Date: 2025-04-30 00:41+0000\n" 11 | "PO-Revision-Date: 2024-12-15 17:36+0530\n" 12 | "Last-Translator: Kali \n" 13 | "Language-Team: Hindi \n" 14 | "Language: hi\n" 15 | "MIME-Version: 1.0\n" 16 | "Content-Type: text/plain; charset=UTF-8\n" 17 | "Content-Transfer-Encoding: 8bit\n" 18 | "Plural-Forms: nplurals=2; plural=(n!=1);\n" 19 | 20 | #, kde-format 21 | msgctxt "NAME OF TRANSLATORS" 22 | msgid "Your names" 23 | msgstr "तुम्हारे नाम" 24 | 25 | #, kde-format 26 | msgctxt "EMAIL OF TRANSLATORS" 27 | msgid "Your emails" 28 | msgstr "आपके ईमेल" 29 | 30 | #: src/main.cpp:24 31 | #, kde-format 32 | msgid "Dragon Player" 33 | msgstr "ड्रैगन प्लेयर" 34 | 35 | #: src/main.cpp:26 36 | #, kde-format 37 | msgid "A video player that has a usability focus" 38 | msgstr "एक वीडियो प्लेयर जिसका ध्यान उपयोगिता पर केंद्रित है" 39 | 40 | #: src/main.cpp:28 41 | #, fuzzy, kde-format 42 | #| msgid "" 43 | #| "Copyright 2006, Max Howell\n" 44 | #| "Copyright 2007, Ian Monroe" 45 | msgid "" 46 | "Copyright 2006, Max Howell\n" 47 | "Copyright 2007, Ian Monroe\n" 48 | "Copyright 2022 Harald Sitter" 49 | msgstr "" 50 | "कॉपीराइट 2006, मैक्स हॉवेल\n" 51 | "कॉपीराइट 2007, इयान मोनरो" 52 | 53 | #: src/qml/ControlsBar.qml:129 54 | msgctxt "@action:button" 55 | msgid "Application Menu" 56 | msgstr "" 57 | 58 | #: src/qml/ControlsBar.qml:160 59 | #, fuzzy 60 | #| msgctxt "@action" 61 | #| msgid "Stop" 62 | msgctxt "@action:button stop playback" 63 | msgid "Stop" 64 | msgstr "रुकना" 65 | 66 | #: src/qml/ControlsBar.qml:168 67 | msgctxt "@action:button" 68 | msgid "Unmute" 69 | msgstr "" 70 | 71 | #: src/qml/ControlsBar.qml:168 72 | #, fuzzy 73 | #| msgctxt "@action Mute the sound output" 74 | #| msgid "Mute" 75 | msgctxt "@action:button" 76 | msgid "Mute" 77 | msgstr "आवाज़ बंद करना" 78 | 79 | #: src/qml/ControlsBar.qml:178 80 | #, fuzzy 81 | #| msgctxt "@title:menu" 82 | #| msgid "&Subtitles" 83 | msgctxt "@action:button video subtitle" 84 | msgid "Subtitles" 85 | msgstr "&उपशीर्षक" 86 | 87 | #: src/qml/ControlsBar.qml:185 88 | msgctxt "@action:button selector for no subtitle" 89 | msgid "None" 90 | msgstr "" 91 | 92 | #: src/qml/ControlsBar.qml:195 93 | msgctxt "" 94 | "@action:button subtitle selector %1 is usually a language (e.g. chinese) and " 95 | "%2 is usually a subtitle (e.g. Traditional)" 96 | msgid "%1 [%2]" 97 | msgstr "" 98 | 99 | #: src/qml/ControlsBar.qml:212 100 | #, fuzzy 101 | #| msgid "Audio CD" 102 | msgctxt "@action:button track selector" 103 | msgid "Audio Track" 104 | msgstr "सुनने वाली सी डी" 105 | 106 | #: src/qml/ControlsBar.qml:227 107 | #, fuzzy 108 | #| msgid "Video CD" 109 | msgctxt "@action:button track selector" 110 | msgid "Video Track" 111 | msgstr "वीडियो सीडी" 112 | 113 | #: src/qml/ControlsBar.qml:245 114 | msgctxt "@action opens about app page" 115 | msgid "About" 116 | msgstr "" 117 | 118 | #: src/qml/Main.qml:53 119 | msgctxt "@action:button open file dialog" 120 | msgid "Open…" 121 | msgstr "" 122 | 123 | #: src/qml/PlayerPage.qml:38 124 | #, fuzzy 125 | #| msgctxt "@action" 126 | #| msgid "Play" 127 | msgctxt "@action:button" 128 | msgid "Play" 129 | msgstr "खेल" 130 | 131 | #: src/qml/PlayerPage.qml:38 132 | #, fuzzy 133 | #| msgctxt "@action" 134 | #| msgid "Pause" 135 | msgctxt "@action:button" 136 | msgid "Pause" 137 | msgstr "विराम" 138 | 139 | #: src/qml/PlayerPage.qml:46 140 | msgctxt "@action:button" 141 | msgid "Exit Fullscreen" 142 | msgstr "" 143 | 144 | #: src/qml/PlayerPage.qml:46 145 | msgctxt "@action:button" 146 | msgid "Enter Fullscreen" 147 | msgstr "" 148 | 149 | #: src/qml/PlayerPage.qml:79 150 | msgctxt "@info" 151 | msgid "" 152 | "Not all video codecs are installed. Video playback support may be less " 153 | "reliable than expected.\n" 154 | "Please install ffmpeg-full by running:\n" 155 | "flatpak install org.freedesktop.Platform.ffmpeg-full//24.08" 157 | msgstr "" 158 | 159 | #: src/qml/PlayerPage.qml:86 160 | msgctxt "@info" 161 | msgid "" 162 | "Not all video codecs are installed. Video playback support may be less " 163 | "reliable than expected.\n" 164 | "Please consult your distribution on how to install all possible codecs." 165 | msgstr "" 166 | 167 | #: src/qml/PlayerPage.qml:94 168 | msgctxt "@action:button %1 is the name of a distribution" 169 | msgid "%1 Support" 170 | msgstr "" 171 | 172 | #: src/qml/PlayerPage.qml:330 173 | msgctxt "" 174 | "@info overlay on top of video. %1 is the amount of time played %2 is the " 175 | "total duration of the video" 176 | msgid "%1 / %2" 177 | msgstr "" 178 | 179 | #: src/qml/VolumeButton.qml:31 180 | msgctxt "@action:button open volume slider popup" 181 | msgid "Show volume controls" 182 | msgstr "" 183 | 184 | #: src/qml/WelcomeView.qml:16 185 | #, fuzzy 186 | #| msgid "Welcome to Dragon Player" 187 | msgctxt "@title" 188 | msgid "Welcome to Dragon Player" 189 | msgstr "ड्रैगन प्लेयर में आपका स्वागत है" 190 | 191 | #: src/qml/WelcomeView.qml:17 192 | msgctxt "@info" 193 | msgid "Dragon Player is a simple video player. Open a video to get started:" 194 | msgstr "" 195 | 196 | #: src/qml/WelcomeView.qml:20 197 | msgctxt "@action:button" 198 | msgid "Open Video File or Network Stream" 199 | msgstr "" 200 | 201 | #, fuzzy 202 | #~| msgctxt "@option:check Volume of sound output" 203 | #~| msgid "Volume" 204 | #~ msgctxt "@action:button open volume slider popup" 205 | #~ msgid "Volume" 206 | #~ msgstr "आयतन" 207 | 208 | #~ msgctxt "@title:menu" 209 | #~ msgid "&Play" 210 | #~ msgstr "&खेल" 211 | 212 | #~ msgctxt "@title:menu" 213 | #~ msgid "Play Media" 214 | #~ msgstr "मीडिया चलाएं" 215 | 216 | #~ msgctxt "@title:menu" 217 | #~ msgid "&Settings" 218 | #~ msgstr "&सेटिंग्स" 219 | 220 | #~ msgid "Main Toolbar" 221 | #~ msgstr "मुख्य टूलबार" 222 | 223 | #~ msgctxt "@action:button" 224 | #~ msgid "Preferred Scale" 225 | #~ msgstr "पसंदीदा स्केल" 226 | 227 | #~ msgctxt "@action:button" 228 | #~ msgid "Scale 100%" 229 | #~ msgstr "स्केल 100%" 230 | 231 | #~ msgid "Adjust video scale?" 232 | #~ msgstr "वीडियो स्केल समायोजित करें?" 233 | 234 | #~ msgctxt "" 235 | #~ "%1 is the disc type, %2 is the name of the disc that the user can choose. " 236 | #~ "Ex. 'DVD: OfficeSpace'" 237 | #~ msgid "%1: %2" 238 | #~ msgstr "%1: %2" 239 | 240 | #~ msgctxt "Digital Versatile Disc, but keep it short" 241 | #~ msgid "DVD" 242 | #~ msgstr "डीवीडी" 243 | 244 | #~ msgid "Data CD" 245 | #~ msgstr "डेटा सीडी" 246 | 247 | #~ msgctxt "@title:window" 248 | #~ msgid "Select a Disc" 249 | #~ msgstr "डिस्क चुनें" 250 | 251 | #~ msgid "Select a disc to play." 252 | #~ msgstr "चलाने के लिए एक डिस्क का चयन करें." 253 | 254 | #~ msgid "Improvements and polish" 255 | #~ msgstr "सुधार और पॉलिश" 256 | 257 | #~ msgid "Creator of Phonon" 258 | #~ msgstr "फोनोन के निर्माता" 259 | 260 | #~ msgid "Dragon Player icon" 261 | #~ msgstr "ड्रैगन प्लेयर आइकन" 262 | 263 | #~ msgid "Handbook" 264 | #~ msgstr "पुस्तिका" 265 | 266 | #~ msgid "Great reference code" 267 | #~ msgstr "बहुत बढ़िया संदर्भ कोड" 268 | 269 | #~ msgid "Yatta happened to be the only video on my laptop to test with. :)" 270 | #~ msgstr "याट्टा मेरे लैपटॉप पर परीक्षण के लिए एकमात्र वीडियो था। :)" 271 | 272 | #~ msgid "MPRIS v2 support" 273 | #~ msgstr "MPRIS v2 समर्थन" 274 | 275 | #~ msgid "Port to KF5/Plasma 5" 276 | #~ msgstr "KF5/प्लाज्मा 5 पर पोर्ट करें" 277 | 278 | #~ msgid "Play DVD Video" 279 | #~ msgstr "डीवीडी वीडियो चलाएं" 280 | 281 | #~ msgid "Play 'URL'" 282 | #~ msgstr "'URL' चलायें" 283 | 284 | #~ msgctxt "@title:menu" 285 | #~ msgid "Aspect &Ratio" 286 | #~ msgstr "आस्पेक्ट अनुपात" 287 | 288 | #~ msgctxt "@title:menu" 289 | #~ msgid "&Audio Channels" 290 | #~ msgstr "&ऑडियो चैनल" 291 | 292 | #~ msgctxt "@option:radio aspect ratio" 293 | #~ msgid "Determine &Automatically" 294 | #~ msgstr "निर्धारित करें &स्वचालित रूप से" 295 | 296 | #~ msgctxt "@option:radio aspect ratio" 297 | #~ msgid "&4:3" 298 | #~ msgstr "&4:3" 299 | 300 | #~ msgctxt "@option:radio aspect ratio" 301 | #~ msgid "Ana&morphic (16:9)" 302 | #~ msgstr "एनामॉर्फिक (16:9)" 303 | 304 | #~ msgctxt "@option:radio aspect ratio" 305 | #~ msgid "&Window Size" 306 | #~ msgstr "&खिड़की का आकार" 307 | 308 | #~ msgid "" 309 | #~ "Phonon could not be successfully initialized. Dragon Player will now " 310 | #~ "exit." 311 | #~ msgstr "" 312 | #~ "फोनॉन को सफलतापूर्वक आरंभ नहीं किया जा सका। ड्रैगन प्लेयर अब बाहर निकल जाएगा।" 313 | #~ "" 314 | 315 | #~ msgctxt "@action" 316 | #~ msgid "Play File…" 317 | #~ msgstr "फ़ाइल चलाएँ…" 318 | 319 | #~ msgctxt "@info:tooltip" 320 | #~ msgid "Open a media file for playback" 321 | #~ msgstr "प्लेबैक के लिए मीडिया फ़ाइल खोलें" 322 | 323 | #~ msgctxt "@action" 324 | #~ msgid "Play Stream…" 325 | #~ msgstr "स्ट्रीम चलायें…" 326 | 327 | #~ msgctxt "@action" 328 | #~ msgid "Play Disc" 329 | #~ msgstr "डिस्क चलाएं" 330 | 331 | #~ msgctxt "@action" 332 | #~ msgid "Increase Volume" 333 | #~ msgstr "वॉल्यूम बढ़ाएँ" 334 | 335 | #~ msgctxt "@action" 336 | #~ msgid "Decrease Volume" 337 | #~ msgstr "वॉल्यूम घटाएँ" 338 | 339 | #~ msgctxt "@action" 340 | #~ msgid "Reset Video Scale" 341 | #~ msgstr "वीडियो स्केल रीसेट करें" 342 | 343 | #~ msgctxt "@action" 344 | #~ msgid "Menu Toggle" 345 | #~ msgstr "मेनू टॉगल" 346 | 347 | #~ msgid "Position Slider" 348 | #~ msgstr "स्थिति स्लाइडर" 349 | 350 | #~ msgctxt "@option:check" 351 | #~ msgid "Video Settings" 352 | #~ msgstr "वीडियो सेटिंग्स" 353 | 354 | #~ msgctxt "" 355 | #~ "@option:check Whether only one instance of dragon can be started and will " 356 | #~ "be reused when the user tries to play another file." 357 | #~ msgid "One Instance Only" 358 | #~ msgstr "केवल एक उदाहरण" 359 | 360 | #~ msgctxt "@action previous chapter" 361 | #~ msgid "Previous" 362 | #~ msgstr "पहले का" 363 | 364 | #~ msgctxt "@action next chapter" 365 | #~ msgid "Next" 366 | #~ msgstr "अगला" 367 | 368 | #~ msgctxt "@action" 369 | #~ msgid "Return 10% Back" 370 | #~ msgstr "10% वापस लौटाएं" 371 | 372 | #~ msgctxt "@action" 373 | #~ msgid "Go 10% Forward" 374 | #~ msgstr "10% आगे बढ़ें" 375 | 376 | #~ msgctxt "@action" 377 | #~ msgid "Return 10 Seconds Back" 378 | #~ msgstr "10 सेकंड पीछे लौटें" 379 | 380 | #~ msgctxt "@action" 381 | #~ msgid "Go 10 Seconds Forward" 382 | #~ msgstr "10 सेकंड आगे जाएं" 383 | 384 | #~ msgctxt "@option:check Mute the sound output" 385 | #~ msgid "Mute" 386 | #~ msgstr "आवाज़ बंद करना" 387 | 388 | #~ msgid "Dragon Player was asked to open an empty URL; it cannot." 389 | #~ msgstr "ड्रैगन प्लेयर को एक खाली यूआरएल खोलने के लिए कहा गया; वह ऐसा नहीं कर सका।" 390 | 391 | #~ msgctxt "@title:window" 392 | #~ msgid "Select File to Play" 393 | #~ msgstr "चलाने के लिए फ़ाइल चुनें" 394 | 395 | #~ msgctxt "@title:window" 396 | #~ msgid "Stream to Play" 397 | #~ msgstr "स्ट्रीम करके चलायें" 398 | 399 | #~ msgctxt "@label:textbox" 400 | #~ msgid "Stream:" 401 | #~ msgstr "धारा:" 402 | 403 | #~ msgid "Sorry, no media was found in the drop" 404 | #~ msgstr "क्षमा करें, ड्रॉप में कोई मीडिया नहीं मिला" 405 | 406 | #~ msgctxt "Notification inhibition reason" 407 | #~ msgid "Playing a video" 408 | #~ msgstr "वीडियो चलाना" 409 | 410 | #~ msgid "No media loaded" 411 | #~ msgstr "कोई मीडिया लोड नहीं किया गया" 412 | 413 | #~ msgid "Paused" 414 | #~ msgstr "रोका गया" 415 | 416 | #~ msgid "The file is not a playlist" 417 | #~ msgstr "यह फ़ाइल कोई प्लेलिस्ट नहीं है" 418 | 419 | #~ msgid "Dragon Player could not download the remote playlist: %1" 420 | #~ msgstr "ड्रैगन प्लेयर रिमोट प्लेलिस्ट डाउनलोड नहीं कर सका: %1" 421 | 422 | #~ msgid "" 423 | #~ "The playlist, '%1', could not be interpreted. Perhaps it is " 424 | #~ "empty?" 425 | #~ msgstr "" 426 | #~ "प्लेलिस्ट, '%1' , की व्याख्या नहीं की जा सकी। शायद यह खाली है?" 427 | #~ "" 428 | 429 | #~ msgid "Dragon Player could not open the file: %1" 430 | #~ msgstr "ड्रैगन प्लेयर फ़ाइल नहीं खोल सका: %1" 431 | 432 | #~ msgid "Track %1/%2" 433 | #~ msgstr "ट्रैक %1/%2" 434 | 435 | #~ msgctxt "@label:slider" 436 | #~ msgid "Brightness:" 437 | #~ msgstr "चमक:" 438 | 439 | #~ msgctxt "@label:slider" 440 | #~ msgid "Contrast:" 441 | #~ msgstr "अंतर:" 442 | 443 | #~ msgctxt "@label:slider" 444 | #~ msgid "Hue:" 445 | #~ msgstr "रंग:" 446 | 447 | #~ msgctxt "@label:slider" 448 | #~ msgid "Saturation:" 449 | #~ msgstr "संतृप्ति:" 450 | 451 | #~ msgctxt "@action:button" 452 | #~ msgid "Restore Defaults" 453 | #~ msgstr "डिफॉल्ट्स का पुनःस्थापन" 454 | 455 | #~ msgctxt "@action:button" 456 | #~ msgid "Close" 457 | #~ msgstr "बंद करना" 458 | 459 | #~ msgctxt "@option:radio" 460 | #~ msgid "&DVD Subtitle Selection" 461 | #~ msgstr "&डीवीडी उपशीर्षक चयन" 462 | 463 | #~ msgctxt "@option:radio audio language" 464 | #~ msgid "&Auto" 465 | #~ msgstr "&ऑटो" 466 | -------------------------------------------------------------------------------- /po/ja/dragonplayer.po: -------------------------------------------------------------------------------- 1 | # Translation of dragonplayer into Japanese. 2 | # This file is distributed under the same license as the kdemultimedia package. 3 | # Yukiko Bando , 2007, 2008, 2009. 4 | # Fumiaki Okushi , 2011. 5 | msgid "" 6 | msgstr "" 7 | "Project-Id-Version: dragonplayer\n" 8 | "Report-Msgid-Bugs-To: https://bugs.kde.org\n" 9 | "POT-Creation-Date: 2025-04-30 00:41+0000\n" 10 | "PO-Revision-Date: 2011-04-10 13:06-0700\n" 11 | "Last-Translator: Fumiaki Okushi \n" 12 | "Language-Team: Japanese \n" 13 | "Language: ja\n" 14 | "MIME-Version: 1.0\n" 15 | "Content-Type: text/plain; charset=UTF-8\n" 16 | "Content-Transfer-Encoding: 8bit\n" 17 | "Plural-Forms: nplurals=1; plural=0;\n" 18 | "X-Accelerator-Marker: &\n" 19 | "X-Text-Markup: kde4\n" 20 | 21 | #, kde-format 22 | msgctxt "NAME OF TRANSLATORS" 23 | msgid "Your names" 24 | msgstr "Yukiko Bando" 25 | 26 | #, kde-format 27 | msgctxt "EMAIL OF TRANSLATORS" 28 | msgid "Your emails" 29 | msgstr "ybando@k6.dion.ne.jp" 30 | 31 | #: src/main.cpp:24 32 | #, kde-format 33 | msgid "Dragon Player" 34 | msgstr "Dragon Player" 35 | 36 | #: src/main.cpp:26 37 | #, kde-format 38 | msgid "A video player that has a usability focus" 39 | msgstr "使いやすさを重視した動画プレーヤー" 40 | 41 | #: src/main.cpp:28 42 | #, fuzzy, kde-format 43 | #| msgid "" 44 | #| "Copyright 2006, Max Howell\n" 45 | #| "Copyright 2007, Ian Monroe" 46 | msgid "" 47 | "Copyright 2006, Max Howell\n" 48 | "Copyright 2007, Ian Monroe\n" 49 | "Copyright 2022 Harald Sitter" 50 | msgstr "" 51 | "Copyright 2006, Max Howell\n" 52 | "Copyright 2007, Ian Monroe" 53 | 54 | #: src/qml/ControlsBar.qml:129 55 | msgctxt "@action:button" 56 | msgid "Application Menu" 57 | msgstr "" 58 | 59 | # ACCELERATOR added by translator 60 | #: src/qml/ControlsBar.qml:160 61 | #, fuzzy 62 | #| msgid "Stop" 63 | msgctxt "@action:button stop playback" 64 | msgid "Stop" 65 | msgstr "停止(&S)" 66 | 67 | #: src/qml/ControlsBar.qml:168 68 | msgctxt "@action:button" 69 | msgid "Unmute" 70 | msgstr "" 71 | 72 | #: src/qml/ControlsBar.qml:168 73 | #, fuzzy 74 | #| msgctxt "Mute the sound output" 75 | #| msgid "Mute" 76 | msgctxt "@action:button" 77 | msgid "Mute" 78 | msgstr "ミュート" 79 | 80 | #: src/qml/ControlsBar.qml:178 81 | #, fuzzy 82 | #| msgid "&Subtitles" 83 | msgctxt "@action:button video subtitle" 84 | msgid "Subtitles" 85 | msgstr "字幕(&S)" 86 | 87 | #: src/qml/ControlsBar.qml:185 88 | msgctxt "@action:button selector for no subtitle" 89 | msgid "None" 90 | msgstr "" 91 | 92 | #: src/qml/ControlsBar.qml:195 93 | msgctxt "" 94 | "@action:button subtitle selector %1 is usually a language (e.g. chinese) and " 95 | "%2 is usually a subtitle (e.g. Traditional)" 96 | msgid "%1 [%2]" 97 | msgstr "" 98 | 99 | #: src/qml/ControlsBar.qml:212 100 | #, fuzzy 101 | #| msgid "Audio CD" 102 | msgctxt "@action:button track selector" 103 | msgid "Audio Track" 104 | msgstr "オーディオ CD" 105 | 106 | #: src/qml/ControlsBar.qml:227 107 | #, fuzzy 108 | #| msgid "Video CD" 109 | msgctxt "@action:button track selector" 110 | msgid "Video Track" 111 | msgstr "ビデオ CD" 112 | 113 | #: src/qml/ControlsBar.qml:245 114 | msgctxt "@action opens about app page" 115 | msgid "About" 116 | msgstr "" 117 | 118 | #: src/qml/Main.qml:53 119 | msgctxt "@action:button open file dialog" 120 | msgid "Open…" 121 | msgstr "" 122 | 123 | #: src/qml/PlayerPage.qml:38 124 | #, fuzzy 125 | #| msgid "Play" 126 | msgctxt "@action:button" 127 | msgid "Play" 128 | msgstr "再生" 129 | 130 | #: src/qml/PlayerPage.qml:38 131 | #, fuzzy 132 | #| msgid "Pause" 133 | msgctxt "@action:button" 134 | msgid "Pause" 135 | msgstr "一時停止" 136 | 137 | #: src/qml/PlayerPage.qml:46 138 | msgctxt "@action:button" 139 | msgid "Exit Fullscreen" 140 | msgstr "" 141 | 142 | #: src/qml/PlayerPage.qml:46 143 | msgctxt "@action:button" 144 | msgid "Enter Fullscreen" 145 | msgstr "" 146 | 147 | #: src/qml/PlayerPage.qml:79 148 | msgctxt "@info" 149 | msgid "" 150 | "Not all video codecs are installed. Video playback support may be less " 151 | "reliable than expected.\n" 152 | "Please install ffmpeg-full by running:\n" 153 | "flatpak install org.freedesktop.Platform.ffmpeg-full//24.08" 155 | msgstr "" 156 | 157 | #: src/qml/PlayerPage.qml:86 158 | msgctxt "@info" 159 | msgid "" 160 | "Not all video codecs are installed. Video playback support may be less " 161 | "reliable than expected.\n" 162 | "Please consult your distribution on how to install all possible codecs." 163 | msgstr "" 164 | 165 | #: src/qml/PlayerPage.qml:94 166 | msgctxt "@action:button %1 is the name of a distribution" 167 | msgid "%1 Support" 168 | msgstr "" 169 | 170 | #: src/qml/PlayerPage.qml:330 171 | msgctxt "" 172 | "@info overlay on top of video. %1 is the amount of time played %2 is the " 173 | "total duration of the video" 174 | msgid "%1 / %2" 175 | msgstr "" 176 | 177 | #: src/qml/VolumeButton.qml:31 178 | msgctxt "@action:button open volume slider popup" 179 | msgid "Show volume controls" 180 | msgstr "" 181 | 182 | #: src/qml/WelcomeView.qml:16 183 | #, fuzzy 184 | #| msgid "Dragon Player" 185 | msgctxt "@title" 186 | msgid "Welcome to Dragon Player" 187 | msgstr "Dragon Player" 188 | 189 | #: src/qml/WelcomeView.qml:17 190 | msgctxt "@info" 191 | msgid "Dragon Player is a simple video player. Open a video to get started:" 192 | msgstr "" 193 | 194 | #: src/qml/WelcomeView.qml:20 195 | msgctxt "@action:button" 196 | msgid "Open Video File or Network Stream" 197 | msgstr "" 198 | 199 | #, fuzzy 200 | #~| msgctxt "Volume of sound output" 201 | #~| msgid "Volume" 202 | #~ msgctxt "@action:button open volume slider popup" 203 | #~ msgid "Volume" 204 | #~ msgstr "音量" 205 | 206 | #, fuzzy 207 | #~| msgid "&Play" 208 | #~ msgctxt "@title:menu" 209 | #~ msgid "&Play" 210 | #~ msgstr "再生(&P)" 211 | 212 | #, fuzzy 213 | #~| msgid "Play Media" 214 | #~ msgctxt "@title:menu" 215 | #~ msgid "Play Media" 216 | #~ msgstr "メディアを再生" 217 | 218 | #, fuzzy 219 | #~| msgid "&Settings" 220 | #~ msgctxt "@title:menu" 221 | #~ msgid "&Settings" 222 | #~ msgstr "設定(&S)" 223 | 224 | #~ msgid "Main Toolbar" 225 | #~ msgstr "メインツールバー" 226 | 227 | #, fuzzy 228 | #~| msgid "Preferred Scale" 229 | #~ msgctxt "@action:button" 230 | #~ msgid "Preferred Scale" 231 | #~ msgstr "優先する拡大率" 232 | 233 | #, fuzzy 234 | #~| msgid "Scale 100%" 235 | #~ msgctxt "@action:button" 236 | #~ msgid "Scale 100%" 237 | #~ msgstr "拡大率 100%" 238 | 239 | #~ msgid "Adjust video scale?" 240 | #~ msgstr "動画の拡大率を調整しますか?" 241 | 242 | #~ msgctxt "" 243 | #~ "%1 is the disc type, %2 is the name of the disc that the user can choose. " 244 | #~ "Ex. 'DVD: OfficeSpace'" 245 | #~ msgid "%1: %2" 246 | #~ msgstr "%1: %2" 247 | 248 | #~ msgctxt "Digital Versatile Disc, but keep it short" 249 | #~ msgid "DVD" 250 | #~ msgstr "DVD" 251 | 252 | #~ msgid "Data CD" 253 | #~ msgstr "データ CD" 254 | 255 | #, fuzzy 256 | #~| msgid "Select a Disc" 257 | #~ msgctxt "@title:window" 258 | #~ msgid "Select a Disc" 259 | #~ msgstr "ディスクを選択" 260 | 261 | #~ msgid "Select a disc to play." 262 | #~ msgstr "再生するディスクを選択します。" 263 | 264 | #~ msgid "Improvements and polish" 265 | #~ msgstr "改良と仕上げ" 266 | 267 | #~ msgid "Creator of Phonon" 268 | #~ msgstr "Phonon の作者" 269 | 270 | #~ msgid "Dragon Player icon" 271 | #~ msgstr "Dragon Player のアイコン" 272 | 273 | #~ msgid "Handbook" 274 | #~ msgstr "ハンドブック" 275 | 276 | #~ msgid "Great reference code" 277 | #~ msgstr "素晴しい参考コード" 278 | 279 | #~ msgid "Play DVD Video" 280 | #~ msgstr "DVD ビデオを再生" 281 | 282 | #~ msgid "Play 'URL'" 283 | #~ msgstr "URL を再生" 284 | 285 | #, fuzzy 286 | #~| msgid "Aspect &Ratio" 287 | #~ msgctxt "@title:menu" 288 | #~ msgid "Aspect &Ratio" 289 | #~ msgstr "アスペクト比(&R)" 290 | 291 | #, fuzzy 292 | #~| msgid "&Audio Channels" 293 | #~ msgctxt "@title:menu" 294 | #~ msgid "&Audio Channels" 295 | #~ msgstr "音声チャンネル(&A)" 296 | 297 | #, fuzzy 298 | #~| msgid "Determine &Automatically" 299 | #~ msgctxt "@option:radio aspect ratio" 300 | #~ msgid "Determine &Automatically" 301 | #~ msgstr "自動(&A)|/|$[~setProps ~full 'アスペクト比 - 自動']" 302 | 303 | #, fuzzy 304 | #~| msgid "&4:3" 305 | #~ msgctxt "@option:radio aspect ratio" 306 | #~ msgid "&4:3" 307 | #~ msgstr "4:3|/|$[~setProps ~full 'アスペクト比 - 4:3']" 308 | 309 | #, fuzzy 310 | #~| msgid "Ana&morphic (16:9)" 311 | #~ msgctxt "@option:radio aspect ratio" 312 | #~ msgid "Ana&morphic (16:9)" 313 | #~ msgstr "" 314 | #~ "16:9 (アナモルフィック)|/|$[~setProps ~full 'アスペクト比 - 16:9 (アナモル" 315 | #~ "フィック)']" 316 | 317 | #, fuzzy 318 | #~| msgid "&Window Size" 319 | #~ msgctxt "@option:radio aspect ratio" 320 | #~ msgid "&Window Size" 321 | #~ msgstr "ウィンドウのサイズ(&W)" 322 | 323 | #, fuzzy 324 | #~| msgid "Play File" 325 | #~ msgctxt "@action" 326 | #~ msgid "Play File…" 327 | #~ msgstr "ファイルを再生" 328 | 329 | #, fuzzy 330 | #~| msgid "Play Media" 331 | #~ msgctxt "@action" 332 | #~ msgid "Play Stream…" 333 | #~ msgstr "メディアを再生" 334 | 335 | #, fuzzy 336 | #~| msgid "Play Disc" 337 | #~ msgctxt "@action" 338 | #~ msgid "Play Disc" 339 | #~ msgstr "ディスクを再生" 340 | 341 | #, fuzzy 342 | #~| msgid "Reset Video Scale" 343 | #~ msgctxt "@action" 344 | #~ msgid "Reset Video Scale" 345 | #~ msgstr "動画の拡大率をリセット" 346 | 347 | # ACCELERATOR added by translator 348 | #, fuzzy 349 | #~| msgid "Menu Toggle" 350 | #~ msgctxt "@action" 351 | #~ msgid "Menu Toggle" 352 | #~ msgstr "メニューの切り替え(&M)" 353 | 354 | #~ msgid "Position Slider" 355 | #~ msgstr "再生位置スライダー" 356 | 357 | # ACCELERATOR added by translator 358 | #, fuzzy 359 | #~| msgid "Video Settings" 360 | #~ msgctxt "@option:check" 361 | #~ msgid "Video Settings" 362 | #~ msgstr "画像の調整(&V)" 363 | 364 | #, fuzzy 365 | #~| msgid "Previous Chapter" 366 | #~ msgctxt "@action previous chapter" 367 | #~ msgid "Previous" 368 | #~ msgstr "前のチャプター" 369 | 370 | #, fuzzy 371 | #~| msgid "Return 10% Back" 372 | #~ msgctxt "@action" 373 | #~ msgid "Return 10% Back" 374 | #~ msgstr "10% 戻る" 375 | 376 | #, fuzzy 377 | #~| msgid "Go 10% Forward" 378 | #~ msgctxt "@action" 379 | #~ msgid "Go 10% Forward" 380 | #~ msgstr "10% 進む" 381 | 382 | #, fuzzy 383 | #~| msgid "Return 10 Seconds Back" 384 | #~ msgctxt "@action" 385 | #~ msgid "Return 10 Seconds Back" 386 | #~ msgstr "10 秒戻る" 387 | 388 | #, fuzzy 389 | #~| msgid "Go 10 Seconds Forward" 390 | #~ msgctxt "@action" 391 | #~ msgid "Go 10 Seconds Forward" 392 | #~ msgstr "10 秒進む" 393 | 394 | #, fuzzy 395 | #~| msgctxt "Mute the sound output" 396 | #~| msgid "Mute" 397 | #~ msgctxt "@option:check Mute the sound output" 398 | #~ msgid "Mute" 399 | #~ msgstr "ミュート" 400 | 401 | #~ msgid "Dragon Player was asked to open an empty URL; it cannot." 402 | #~ msgstr "空の URL を開くことはできません。" 403 | 404 | #, fuzzy 405 | #~| msgid "Select File to Play" 406 | #~ msgctxt "@title:window" 407 | #~ msgid "Select File to Play" 408 | #~ msgstr "再生するファイルを選択" 409 | 410 | #, fuzzy 411 | #~| msgid "Select File to Play" 412 | #~ msgctxt "@title:window" 413 | #~ msgid "Stream to Play" 414 | #~ msgstr "再生するファイルを選択" 415 | 416 | #, fuzzy 417 | #~| msgid "Play Media" 418 | #~ msgctxt "@label:textbox" 419 | #~ msgid "Stream:" 420 | #~ msgstr "メディアを再生" 421 | 422 | #~ msgid "Sorry, no media was found in the drop" 423 | #~ msgstr "ドロップにメディアが見つかりませんでした" 424 | 425 | #, fuzzy 426 | #~| msgid "Play DVD Video" 427 | #~ msgctxt "Notification inhibition reason" 428 | #~ msgid "Playing a video" 429 | #~ msgstr "DVD ビデオを再生" 430 | 431 | #~ msgid "No media loaded" 432 | #~ msgstr "メディアがロードされていません" 433 | 434 | #~ msgid "Paused" 435 | #~ msgstr "一時停止中" 436 | 437 | #~ msgid "The file is not a playlist" 438 | #~ msgstr "このファイルはプレイリストではありません" 439 | 440 | #~ msgid "Dragon Player could not download the remote playlist: %1" 441 | #~ msgstr "リモートのプレイリストをダウンロードできませんでした: %1" 442 | 443 | #~ msgid "" 444 | #~ "The playlist, '%1', could not be interpreted. Perhaps it is " 445 | #~ "empty?" 446 | #~ msgstr "" 447 | #~ "プレイリスト “%1” を解読できませんでした。空ではありませんか?" 448 | 449 | #~ msgid "Dragon Player could not open the file: %1" 450 | #~ msgstr "ファイルを開けませんでした: %1" 451 | 452 | #, fuzzy 453 | #~| msgid "Brightness:" 454 | #~ msgctxt "@label:slider" 455 | #~ msgid "Brightness:" 456 | #~ msgstr "明るさ:" 457 | 458 | #, fuzzy 459 | #~| msgid "Contrast:" 460 | #~ msgctxt "@label:slider" 461 | #~ msgid "Contrast:" 462 | #~ msgstr "コントラスト:" 463 | 464 | #, fuzzy 465 | #~| msgid "Hue:" 466 | #~ msgctxt "@label:slider" 467 | #~ msgid "Hue:" 468 | #~ msgstr "色相:" 469 | 470 | #, fuzzy 471 | #~| msgid "Saturation:" 472 | #~ msgctxt "@label:slider" 473 | #~ msgid "Saturation:" 474 | #~ msgstr "彩度:" 475 | 476 | #, fuzzy 477 | #~| msgid "Restore Defaults" 478 | #~ msgctxt "@action:button" 479 | #~ msgid "Restore Defaults" 480 | #~ msgstr "標準設定に戻す" 481 | 482 | #, fuzzy 483 | #~| msgid "Close" 484 | #~ msgctxt "@action:button" 485 | #~ msgid "Close" 486 | #~ msgstr "閉じる" 487 | 488 | #, fuzzy 489 | #~| msgid "&DVD Subtitle Selection" 490 | #~ msgctxt "@option:radio" 491 | #~ msgid "&DVD Subtitle Selection" 492 | #~ msgstr "DVD 字幕の選択(&D)" 493 | 494 | #, fuzzy 495 | #~| msgid "&Auto" 496 | #~ msgctxt "@option:radio audio language" 497 | #~ msgid "&Auto" 498 | #~ msgstr "自動(&A)" 499 | -------------------------------------------------------------------------------- /po/nb/dragonplayer.po: -------------------------------------------------------------------------------- 1 | # Translation of dragonplayer to Norwegian Bokmål 2 | # 3 | # Bjørn Steensrud , 2009, 2010, 2011, 2012, 2013, 2015. 4 | msgid "" 5 | msgstr "" 6 | "Project-Id-Version: videoplayer\n" 7 | "Report-Msgid-Bugs-To: https://bugs.kde.org\n" 8 | "POT-Creation-Date: 2025-04-30 00:41+0000\n" 9 | "PO-Revision-Date: 2015-04-26 22:26+0200\n" 10 | "Last-Translator: Bjørn Steensrud \n" 11 | "Language-Team: Norwegian Bokmål \n" 12 | "Language: nb\n" 13 | "MIME-Version: 1.0\n" 14 | "Content-Type: text/plain; charset=UTF-8\n" 15 | "Content-Transfer-Encoding: 8bit\n" 16 | "X-Generator: Lokalize 1.5\n" 17 | "Plural-Forms: nplurals=2; plural=n != 1;\n" 18 | "X-Environment: kde\n" 19 | "X-Accelerator-Marker: &\n" 20 | "X-Text-Markup: kde4\n" 21 | 22 | #, kde-format 23 | msgctxt "NAME OF TRANSLATORS" 24 | msgid "Your names" 25 | msgstr "Bjørn Steensrud" 26 | 27 | #, kde-format 28 | msgctxt "EMAIL OF TRANSLATORS" 29 | msgid "Your emails" 30 | msgstr "bjornst@skogkatt.homelinux.org" 31 | 32 | #: src/main.cpp:24 33 | #, kde-format 34 | msgid "Dragon Player" 35 | msgstr "Dragon Player" 36 | 37 | #: src/main.cpp:26 38 | #, kde-format 39 | msgid "A video player that has a usability focus" 40 | msgstr "En filmspiller som prøver å være brukervennlig" 41 | 42 | #: src/main.cpp:28 43 | #, fuzzy, kde-format 44 | #| msgid "" 45 | #| "Copyright 2006, Max Howell\n" 46 | #| "Copyright 2007, Ian Monroe" 47 | msgid "" 48 | "Copyright 2006, Max Howell\n" 49 | "Copyright 2007, Ian Monroe\n" 50 | "Copyright 2022 Harald Sitter" 51 | msgstr "" 52 | "Copyright 2006, Max Howell\n" 53 | "Copyright 2007, Ian Monroe" 54 | 55 | #: src/qml/ControlsBar.qml:129 56 | msgctxt "@action:button" 57 | msgid "Application Menu" 58 | msgstr "" 59 | 60 | #: src/qml/ControlsBar.qml:160 61 | msgctxt "@action:button stop playback" 62 | msgid "Stop" 63 | msgstr "" 64 | 65 | #: src/qml/ControlsBar.qml:168 66 | msgctxt "@action:button" 67 | msgid "Unmute" 68 | msgstr "" 69 | 70 | #: src/qml/ControlsBar.qml:168 71 | msgctxt "@action:button" 72 | msgid "Mute" 73 | msgstr "" 74 | 75 | #: src/qml/ControlsBar.qml:178 76 | msgctxt "@action:button video subtitle" 77 | msgid "Subtitles" 78 | msgstr "" 79 | 80 | #: src/qml/ControlsBar.qml:185 81 | msgctxt "@action:button selector for no subtitle" 82 | msgid "None" 83 | msgstr "" 84 | 85 | #: src/qml/ControlsBar.qml:195 86 | msgctxt "" 87 | "@action:button subtitle selector %1 is usually a language (e.g. chinese) and " 88 | "%2 is usually a subtitle (e.g. Traditional)" 89 | msgid "%1 [%2]" 90 | msgstr "" 91 | 92 | #: src/qml/ControlsBar.qml:212 93 | #, fuzzy 94 | #| msgid "Audio CD" 95 | msgctxt "@action:button track selector" 96 | msgid "Audio Track" 97 | msgstr "Musikk-CD" 98 | 99 | #: src/qml/ControlsBar.qml:227 100 | #, fuzzy 101 | #| msgid "Video CD" 102 | msgctxt "@action:button track selector" 103 | msgid "Video Track" 104 | msgstr "Video-CD" 105 | 106 | #: src/qml/ControlsBar.qml:245 107 | msgctxt "@action opens about app page" 108 | msgid "About" 109 | msgstr "" 110 | 111 | #: src/qml/Main.qml:53 112 | msgctxt "@action:button open file dialog" 113 | msgid "Open…" 114 | msgstr "" 115 | 116 | #: src/qml/PlayerPage.qml:38 117 | msgctxt "@action:button" 118 | msgid "Play" 119 | msgstr "" 120 | 121 | #: src/qml/PlayerPage.qml:38 122 | #, fuzzy 123 | #| msgid "Paused" 124 | msgctxt "@action:button" 125 | msgid "Pause" 126 | msgstr "Pause" 127 | 128 | #: src/qml/PlayerPage.qml:46 129 | msgctxt "@action:button" 130 | msgid "Exit Fullscreen" 131 | msgstr "" 132 | 133 | #: src/qml/PlayerPage.qml:46 134 | msgctxt "@action:button" 135 | msgid "Enter Fullscreen" 136 | msgstr "" 137 | 138 | #: src/qml/PlayerPage.qml:79 139 | msgctxt "@info" 140 | msgid "" 141 | "Not all video codecs are installed. Video playback support may be less " 142 | "reliable than expected.\n" 143 | "Please install ffmpeg-full by running:\n" 144 | "flatpak install org.freedesktop.Platform.ffmpeg-full//24.08" 146 | msgstr "" 147 | 148 | #: src/qml/PlayerPage.qml:86 149 | msgctxt "@info" 150 | msgid "" 151 | "Not all video codecs are installed. Video playback support may be less " 152 | "reliable than expected.\n" 153 | "Please consult your distribution on how to install all possible codecs." 154 | msgstr "" 155 | 156 | #: src/qml/PlayerPage.qml:94 157 | msgctxt "@action:button %1 is the name of a distribution" 158 | msgid "%1 Support" 159 | msgstr "" 160 | 161 | #: src/qml/PlayerPage.qml:330 162 | msgctxt "" 163 | "@info overlay on top of video. %1 is the amount of time played %2 is the " 164 | "total duration of the video" 165 | msgid "%1 / %2" 166 | msgstr "" 167 | 168 | #: src/qml/VolumeButton.qml:31 169 | msgctxt "@action:button open volume slider popup" 170 | msgid "Show volume controls" 171 | msgstr "" 172 | 173 | #: src/qml/WelcomeView.qml:16 174 | #, fuzzy 175 | #| msgid "Dragon Player" 176 | msgctxt "@title" 177 | msgid "Welcome to Dragon Player" 178 | msgstr "Dragon Player" 179 | 180 | #: src/qml/WelcomeView.qml:17 181 | msgctxt "@info" 182 | msgid "Dragon Player is a simple video player. Open a video to get started:" 183 | msgstr "" 184 | 185 | #: src/qml/WelcomeView.qml:20 186 | msgctxt "@action:button" 187 | msgid "Open Video File or Network Stream" 188 | msgstr "" 189 | -------------------------------------------------------------------------------- /po/nn/dragonplayer.po: -------------------------------------------------------------------------------- 1 | # Translation of dragonplayer to Norwegian Nynorsk 2 | # 3 | # Karl Ove Hufthammer , 2007, 2008, 2009, 2010, 2016, 2018, 2019, 2020, 2023. 4 | # Eirik U. Birkeland , 2008. 5 | msgid "" 6 | msgstr "" 7 | "Project-Id-Version: dragonplayer\n" 8 | "Report-Msgid-Bugs-To: https://bugs.kde.org\n" 9 | "POT-Creation-Date: 2025-04-30 00:41+0000\n" 10 | "PO-Revision-Date: 2023-08-21 19:54+0200\n" 11 | "Last-Translator: Karl Ove Hufthammer \n" 12 | "Language-Team: Norwegian Nynorsk \n" 13 | "Language: nn\n" 14 | "MIME-Version: 1.0\n" 15 | "Content-Type: text/plain; charset=UTF-8\n" 16 | "Content-Transfer-Encoding: 8bit\n" 17 | "X-Generator: Lokalize 23.04.3\n" 18 | "Plural-Forms: nplurals=2; plural=n != 1;\n" 19 | "X-Environment: kde\n" 20 | "X-Accelerator-Marker: &\n" 21 | "X-Text-Markup: kde4\n" 22 | 23 | #, kde-format 24 | msgctxt "NAME OF TRANSLATORS" 25 | msgid "Your names" 26 | msgstr "Karl Ove Hufthammer" 27 | 28 | #, kde-format 29 | msgctxt "EMAIL OF TRANSLATORS" 30 | msgid "Your emails" 31 | msgstr "karl@huftis.org" 32 | 33 | #: src/main.cpp:24 34 | #, kde-format 35 | msgid "Dragon Player" 36 | msgstr "Dragon Player" 37 | 38 | #: src/main.cpp:26 39 | #, kde-format 40 | msgid "A video player that has a usability focus" 41 | msgstr "Ein filmspelar som prøver å vera brukarvenleg" 42 | 43 | #: src/main.cpp:28 44 | #, fuzzy, kde-format 45 | #| msgid "" 46 | #| "Copyright 2006, Max Howell\n" 47 | #| "Copyright 2007, Ian Monroe" 48 | msgid "" 49 | "Copyright 2006, Max Howell\n" 50 | "Copyright 2007, Ian Monroe\n" 51 | "Copyright 2022 Harald Sitter" 52 | msgstr "" 53 | "© 2006 Max Howell\n" 54 | "© 2007 Ian Monroe" 55 | 56 | #: src/qml/ControlsBar.qml:129 57 | msgctxt "@action:button" 58 | msgid "Application Menu" 59 | msgstr "" 60 | 61 | #: src/qml/ControlsBar.qml:160 62 | #, fuzzy 63 | #| msgctxt "@action" 64 | #| msgid "Stop" 65 | msgctxt "@action:button stop playback" 66 | msgid "Stop" 67 | msgstr "Stopp" 68 | 69 | #: src/qml/ControlsBar.qml:168 70 | msgctxt "@action:button" 71 | msgid "Unmute" 72 | msgstr "" 73 | 74 | #: src/qml/ControlsBar.qml:168 75 | #, fuzzy 76 | #| msgctxt "@action Mute the sound output" 77 | #| msgid "Mute" 78 | msgctxt "@action:button" 79 | msgid "Mute" 80 | msgstr "Demp" 81 | 82 | #: src/qml/ControlsBar.qml:178 83 | #, fuzzy 84 | #| msgctxt "@title:menu" 85 | #| msgid "&Subtitles" 86 | msgctxt "@action:button video subtitle" 87 | msgid "Subtitles" 88 | msgstr "&Teksting" 89 | 90 | #: src/qml/ControlsBar.qml:185 91 | msgctxt "@action:button selector for no subtitle" 92 | msgid "None" 93 | msgstr "" 94 | 95 | #: src/qml/ControlsBar.qml:195 96 | msgctxt "" 97 | "@action:button subtitle selector %1 is usually a language (e.g. chinese) and " 98 | "%2 is usually a subtitle (e.g. Traditional)" 99 | msgid "%1 [%2]" 100 | msgstr "" 101 | 102 | #: src/qml/ControlsBar.qml:212 103 | #, fuzzy 104 | #| msgid "Audio CD" 105 | msgctxt "@action:button track selector" 106 | msgid "Audio Track" 107 | msgstr "Lyd-CD" 108 | 109 | #: src/qml/ControlsBar.qml:227 110 | #, fuzzy 111 | #| msgid "Video CD" 112 | msgctxt "@action:button track selector" 113 | msgid "Video Track" 114 | msgstr "Video-CD" 115 | 116 | #: src/qml/ControlsBar.qml:245 117 | msgctxt "@action opens about app page" 118 | msgid "About" 119 | msgstr "" 120 | 121 | #: src/qml/Main.qml:53 122 | msgctxt "@action:button open file dialog" 123 | msgid "Open…" 124 | msgstr "" 125 | 126 | #: src/qml/PlayerPage.qml:38 127 | #, fuzzy 128 | #| msgctxt "@action" 129 | #| msgid "Play" 130 | msgctxt "@action:button" 131 | msgid "Play" 132 | msgstr "Spel" 133 | 134 | #: src/qml/PlayerPage.qml:38 135 | #, fuzzy 136 | #| msgctxt "@action" 137 | #| msgid "Pause" 138 | msgctxt "@action:button" 139 | msgid "Pause" 140 | msgstr "Pause" 141 | 142 | #: src/qml/PlayerPage.qml:46 143 | msgctxt "@action:button" 144 | msgid "Exit Fullscreen" 145 | msgstr "" 146 | 147 | #: src/qml/PlayerPage.qml:46 148 | msgctxt "@action:button" 149 | msgid "Enter Fullscreen" 150 | msgstr "" 151 | 152 | #: src/qml/PlayerPage.qml:79 153 | msgctxt "@info" 154 | msgid "" 155 | "Not all video codecs are installed. Video playback support may be less " 156 | "reliable than expected.\n" 157 | "Please install ffmpeg-full by running:\n" 158 | "flatpak install org.freedesktop.Platform.ffmpeg-full//24.08" 160 | msgstr "" 161 | 162 | #: src/qml/PlayerPage.qml:86 163 | msgctxt "@info" 164 | msgid "" 165 | "Not all video codecs are installed. Video playback support may be less " 166 | "reliable than expected.\n" 167 | "Please consult your distribution on how to install all possible codecs." 168 | msgstr "" 169 | 170 | #: src/qml/PlayerPage.qml:94 171 | msgctxt "@action:button %1 is the name of a distribution" 172 | msgid "%1 Support" 173 | msgstr "" 174 | 175 | #: src/qml/PlayerPage.qml:330 176 | msgctxt "" 177 | "@info overlay on top of video. %1 is the amount of time played %2 is the " 178 | "total duration of the video" 179 | msgid "%1 / %2" 180 | msgstr "" 181 | 182 | #: src/qml/VolumeButton.qml:31 183 | msgctxt "@action:button open volume slider popup" 184 | msgid "Show volume controls" 185 | msgstr "" 186 | 187 | #: src/qml/WelcomeView.qml:16 188 | #, fuzzy 189 | #| msgid "Welcome to Dragon Player" 190 | msgctxt "@title" 191 | msgid "Welcome to Dragon Player" 192 | msgstr "Velkommen til Dragon Player" 193 | 194 | #: src/qml/WelcomeView.qml:17 195 | msgctxt "@info" 196 | msgid "Dragon Player is a simple video player. Open a video to get started:" 197 | msgstr "" 198 | 199 | #: src/qml/WelcomeView.qml:20 200 | msgctxt "@action:button" 201 | msgid "Open Video File or Network Stream" 202 | msgstr "" 203 | -------------------------------------------------------------------------------- /po/oc/dragonplayer.po: -------------------------------------------------------------------------------- 1 | # translation of dragonplayer.po to Occitan (lengadocian) 2 | # Copyright (C) 2008 This_file_is_part_of_KDE 3 | # This file is distributed under the same license as the PACKAGE package. 4 | # 5 | # Yannig Marchegay (Kokoyaya) , 2007, 2008. 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: dragonplayer\n" 9 | "Report-Msgid-Bugs-To: https://bugs.kde.org\n" 10 | "POT-Creation-Date: 2025-04-30 00:41+0000\n" 11 | "PO-Revision-Date: 2008-08-05 22:27+0200\n" 12 | "Last-Translator: Yannig Marchegay (Kokoyaya) \n" 13 | "Language-Team: Occitan (lengadocian) \n" 14 | "Language: oc\n" 15 | "MIME-Version: 1.0\n" 16 | "Content-Type: text/plain; charset=UTF-8\n" 17 | "Content-Transfer-Encoding: 8bit\n" 18 | "Plural-Forms: nplurals=2; plural=(n > 1);\n" 19 | "X-Generator: KBabel 1.11.4\n" 20 | 21 | #, kde-format 22 | msgctxt "NAME OF TRANSLATORS" 23 | msgid "Your names" 24 | msgstr "Yannig Marchegay (Kokoyaya)" 25 | 26 | #, kde-format 27 | msgctxt "EMAIL OF TRANSLATORS" 28 | msgid "Your emails" 29 | msgstr "yannig@marchegay.org" 30 | 31 | #: src/main.cpp:24 32 | #, kde-format 33 | msgid "Dragon Player" 34 | msgstr "" 35 | 36 | #: src/main.cpp:26 37 | #, kde-format 38 | msgid "A video player that has a usability focus" 39 | msgstr "" 40 | 41 | #: src/main.cpp:28 42 | #, kde-format 43 | msgid "" 44 | "Copyright 2006, Max Howell\n" 45 | "Copyright 2007, Ian Monroe\n" 46 | "Copyright 2022 Harald Sitter" 47 | msgstr "" 48 | 49 | #: src/qml/ControlsBar.qml:129 50 | msgctxt "@action:button" 51 | msgid "Application Menu" 52 | msgstr "" 53 | 54 | #: src/qml/ControlsBar.qml:160 55 | #, fuzzy 56 | #| msgid "Stop" 57 | msgctxt "@action:button stop playback" 58 | msgid "Stop" 59 | msgstr "Arrestar" 60 | 61 | #: src/qml/ControlsBar.qml:168 62 | msgctxt "@action:button" 63 | msgid "Unmute" 64 | msgstr "" 65 | 66 | #: src/qml/ControlsBar.qml:168 67 | #, fuzzy 68 | #| msgid "Mute" 69 | msgctxt "@action:button" 70 | msgid "Mute" 71 | msgstr "Mut" 72 | 73 | #: src/qml/ControlsBar.qml:178 74 | msgctxt "@action:button video subtitle" 75 | msgid "Subtitles" 76 | msgstr "" 77 | 78 | #: src/qml/ControlsBar.qml:185 79 | msgctxt "@action:button selector for no subtitle" 80 | msgid "None" 81 | msgstr "" 82 | 83 | #: src/qml/ControlsBar.qml:195 84 | msgctxt "" 85 | "@action:button subtitle selector %1 is usually a language (e.g. chinese) and " 86 | "%2 is usually a subtitle (e.g. Traditional)" 87 | msgid "%1 [%2]" 88 | msgstr "" 89 | 90 | #: src/qml/ControlsBar.qml:212 91 | #, fuzzy 92 | #| msgid "Audio CD" 93 | msgctxt "@action:button track selector" 94 | msgid "Audio Track" 95 | msgstr "CD audiò" 96 | 97 | #: src/qml/ControlsBar.qml:227 98 | #, fuzzy 99 | #| msgid "Video CD" 100 | msgctxt "@action:button track selector" 101 | msgid "Video Track" 102 | msgstr "CD vidèo" 103 | 104 | #: src/qml/ControlsBar.qml:245 105 | msgctxt "@action opens about app page" 106 | msgid "About" 107 | msgstr "" 108 | 109 | #: src/qml/Main.qml:53 110 | msgctxt "@action:button open file dialog" 111 | msgid "Open…" 112 | msgstr "" 113 | 114 | #: src/qml/PlayerPage.qml:38 115 | #, fuzzy 116 | #| msgid "Play" 117 | msgctxt "@action:button" 118 | msgid "Play" 119 | msgstr "Legir" 120 | 121 | #: src/qml/PlayerPage.qml:38 122 | #, fuzzy 123 | #| msgid "Paused" 124 | msgctxt "@action:button" 125 | msgid "Pause" 126 | msgstr "En pausa" 127 | 128 | #: src/qml/PlayerPage.qml:46 129 | msgctxt "@action:button" 130 | msgid "Exit Fullscreen" 131 | msgstr "" 132 | 133 | #: src/qml/PlayerPage.qml:46 134 | msgctxt "@action:button" 135 | msgid "Enter Fullscreen" 136 | msgstr "" 137 | 138 | #: src/qml/PlayerPage.qml:79 139 | msgctxt "@info" 140 | msgid "" 141 | "Not all video codecs are installed. Video playback support may be less " 142 | "reliable than expected.\n" 143 | "Please install ffmpeg-full by running:\n" 144 | "flatpak install org.freedesktop.Platform.ffmpeg-full//24.08" 146 | msgstr "" 147 | 148 | #: src/qml/PlayerPage.qml:86 149 | msgctxt "@info" 150 | msgid "" 151 | "Not all video codecs are installed. Video playback support may be less " 152 | "reliable than expected.\n" 153 | "Please consult your distribution on how to install all possible codecs." 154 | msgstr "" 155 | 156 | #: src/qml/PlayerPage.qml:94 157 | msgctxt "@action:button %1 is the name of a distribution" 158 | msgid "%1 Support" 159 | msgstr "" 160 | 161 | #: src/qml/PlayerPage.qml:330 162 | msgctxt "" 163 | "@info overlay on top of video. %1 is the amount of time played %2 is the " 164 | "total duration of the video" 165 | msgid "%1 / %2" 166 | msgstr "" 167 | 168 | #: src/qml/VolumeButton.qml:31 169 | msgctxt "@action:button open volume slider popup" 170 | msgid "Show volume controls" 171 | msgstr "" 172 | 173 | #: src/qml/WelcomeView.qml:16 174 | msgctxt "@title" 175 | msgid "Welcome to Dragon Player" 176 | msgstr "" 177 | 178 | #: src/qml/WelcomeView.qml:17 179 | msgctxt "@info" 180 | msgid "Dragon Player is a simple video player. Open a video to get started:" 181 | msgstr "" 182 | 183 | #: src/qml/WelcomeView.qml:20 184 | msgctxt "@action:button" 185 | msgid "Open Video File or Network Stream" 186 | msgstr "" 187 | 188 | #, fuzzy 189 | #~| msgid "Volume" 190 | #~ msgctxt "@action:button open volume slider popup" 191 | #~ msgid "Volume" 192 | #~ msgstr "Volum" 193 | 194 | #, fuzzy 195 | #~| msgid "&Play" 196 | #~ msgctxt "@title:menu" 197 | #~ msgid "&Play" 198 | #~ msgstr "&Legir" 199 | 200 | #, fuzzy 201 | #~| msgid "Play" 202 | #~ msgctxt "@title:menu" 203 | #~ msgid "Play Media" 204 | #~ msgstr "Legir" 205 | 206 | #, fuzzy 207 | #~| msgid "&Settings" 208 | #~ msgctxt "@title:menu" 209 | #~ msgid "&Settings" 210 | #~ msgstr "&Paramètres" 211 | 212 | #~ msgid "Main Toolbar" 213 | #~ msgstr "Barra d'espleches principala" 214 | 215 | #~ msgctxt "" 216 | #~ "%1 is the disc type, %2 is the name of the disc that the user can choose. " 217 | #~ "Ex. 'DVD: OfficeSpace'" 218 | #~ msgid "%1: %2" 219 | #~ msgstr "%1: %2" 220 | 221 | #~ msgctxt "Digital Versatile Disc, but keep it short" 222 | #~ msgid "DVD" 223 | #~ msgstr "DVD" 224 | 225 | #~ msgid "Data CD" 226 | #~ msgstr "CD de donadas" 227 | 228 | #, fuzzy 229 | #~| msgid "Audio CD" 230 | #~ msgctxt "@title:menu" 231 | #~ msgid "&Audio Channels" 232 | #~ msgstr "CD audiò" 233 | 234 | #, fuzzy 235 | #~| msgid "Play" 236 | #~ msgctxt "@action" 237 | #~ msgid "Play File…" 238 | #~ msgstr "Legir" 239 | 240 | #, fuzzy 241 | #~| msgid "Play" 242 | #~ msgctxt "@action" 243 | #~ msgid "Play Stream…" 244 | #~ msgstr "Legir" 245 | 246 | #, fuzzy 247 | #~| msgid "Play" 248 | #~ msgctxt "@action" 249 | #~ msgid "Play Disc" 250 | #~ msgstr "Legir" 251 | 252 | #, fuzzy 253 | #~| msgid "&Settings" 254 | #~ msgctxt "@option:check" 255 | #~ msgid "Video Settings" 256 | #~ msgstr "&Paramètres" 257 | 258 | #, fuzzy 259 | #~| msgid "Mute" 260 | #~ msgctxt "@option:check Mute the sound output" 261 | #~ msgid "Mute" 262 | #~ msgstr "Mut" 263 | 264 | #, fuzzy 265 | #~| msgid "Play" 266 | #~ msgctxt "@label:textbox" 267 | #~ msgid "Stream:" 268 | #~ msgstr "Legir" 269 | 270 | #~ msgid "Paused" 271 | #~ msgstr "En pausa" 272 | 273 | #, fuzzy 274 | #~| msgid "Brightness" 275 | #~ msgctxt "@label:slider" 276 | #~ msgid "Brightness:" 277 | #~ msgstr "Luminositat" 278 | 279 | #, fuzzy 280 | #~| msgid "Contrast" 281 | #~ msgctxt "@label:slider" 282 | #~ msgid "Contrast:" 283 | #~ msgstr "Contrast" 284 | 285 | #, fuzzy 286 | #~| msgid "Saturation" 287 | #~ msgctxt "@label:slider" 288 | #~ msgid "Saturation:" 289 | #~ msgstr "Saturacion" 290 | 291 | #, fuzzy 292 | #~| msgid "Close" 293 | #~ msgctxt "@action:button" 294 | #~ msgid "Close" 295 | #~ msgstr "Tampar" 296 | 297 | #, fuzzy 298 | #~| msgid "Play" 299 | #~ msgctxt "@action:button" 300 | #~ msgid "Play File..." 301 | #~ msgstr "Legir" 302 | 303 | #, fuzzy 304 | #~| msgid "Mute" 305 | #~ msgctxt "Mute the sound output" 306 | #~ msgid "Mute " 307 | #~ msgstr "Mut" 308 | -------------------------------------------------------------------------------- /po/pt/dragonplayer.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "Project-Id-Version: videoplayer\n" 4 | "Report-Msgid-Bugs-To: https://bugs.kde.org\n" 5 | "POT-Creation-Date: 2025-04-30 00:41+0000\n" 6 | "PO-Revision-Date: 2022-11-28 18:21+0000\n" 7 | "Last-Translator: José Nuno Coelho Pires \n" 8 | "Language-Team: Portuguese \n" 9 | "Language: pt\n" 10 | "MIME-Version: 1.0\n" 11 | "Content-Type: text/plain; charset=UTF-8\n" 12 | "Content-Transfer-Encoding: 8bit\n" 13 | "Plural-Forms: nplurals=2; plural=n != 1;\n" 14 | "X-POFile-SpellExtra: Mike Ian VCD Diehl Codeine DVB Vignoni Greenleaf\n" 15 | "X-POFile-SpellExtra: Kaffeine Howell dragonplayer Edmundson Phonon Kretz\n" 16 | "X-POFile-IgnoreConsistency: Record\n" 17 | "X-POFile-SpellExtra: Video Matthias Player Dragon Trounev Eugene slave\n" 18 | "X-POFile-SpellExtra: check Xine Hein Eike MPRIS KF\n" 19 | 20 | #, kde-format 21 | msgctxt "NAME OF TRANSLATORS" 22 | msgid "Your names" 23 | msgstr "José Nuno Pires" 24 | 25 | #, kde-format 26 | msgctxt "EMAIL OF TRANSLATORS" 27 | msgid "Your emails" 28 | msgstr "zepires@gmail.com" 29 | 30 | #: src/main.cpp:24 31 | #, kde-format 32 | msgid "Dragon Player" 33 | msgstr "Dragon Player" 34 | 35 | #: src/main.cpp:26 36 | #, kde-format 37 | msgid "A video player that has a usability focus" 38 | msgstr "Um leitor de vídeo com foco na usabilidade" 39 | 40 | #: src/main.cpp:28 41 | #, fuzzy, kde-format 42 | #| msgid "" 43 | #| "Copyright 2006, Max Howell\n" 44 | #| "Copyright 2007, Ian Monroe" 45 | msgid "" 46 | "Copyright 2006, Max Howell\n" 47 | "Copyright 2007, Ian Monroe\n" 48 | "Copyright 2022 Harald Sitter" 49 | msgstr "" 50 | "Copyright 2006, Max Howell\n" 51 | "Copyright 2007, Ian Monroe" 52 | 53 | #: src/qml/ControlsBar.qml:129 54 | msgctxt "@action:button" 55 | msgid "Application Menu" 56 | msgstr "" 57 | 58 | #: src/qml/ControlsBar.qml:160 59 | #, fuzzy 60 | #| msgctxt "@action" 61 | #| msgid "Stop" 62 | msgctxt "@action:button stop playback" 63 | msgid "Stop" 64 | msgstr "Parar" 65 | 66 | #: src/qml/ControlsBar.qml:168 67 | msgctxt "@action:button" 68 | msgid "Unmute" 69 | msgstr "" 70 | 71 | #: src/qml/ControlsBar.qml:168 72 | #, fuzzy 73 | #| msgctxt "@action Mute the sound output" 74 | #| msgid "Mute" 75 | msgctxt "@action:button" 76 | msgid "Mute" 77 | msgstr "Silenciar" 78 | 79 | #: src/qml/ControlsBar.qml:178 80 | #, fuzzy 81 | #| msgctxt "@title:menu" 82 | #| msgid "&Subtitles" 83 | msgctxt "@action:button video subtitle" 84 | msgid "Subtitles" 85 | msgstr "Legenda&s" 86 | 87 | #: src/qml/ControlsBar.qml:185 88 | msgctxt "@action:button selector for no subtitle" 89 | msgid "None" 90 | msgstr "" 91 | 92 | #: src/qml/ControlsBar.qml:195 93 | msgctxt "" 94 | "@action:button subtitle selector %1 is usually a language (e.g. chinese) and " 95 | "%2 is usually a subtitle (e.g. Traditional)" 96 | msgid "%1 [%2]" 97 | msgstr "" 98 | 99 | #: src/qml/ControlsBar.qml:212 100 | #, fuzzy 101 | #| msgid "Audio CD" 102 | msgctxt "@action:button track selector" 103 | msgid "Audio Track" 104 | msgstr "CD de Áudio" 105 | 106 | #: src/qml/ControlsBar.qml:227 107 | #, fuzzy 108 | #| msgid "Video CD" 109 | msgctxt "@action:button track selector" 110 | msgid "Video Track" 111 | msgstr "Video CD" 112 | 113 | #: src/qml/ControlsBar.qml:245 114 | msgctxt "@action opens about app page" 115 | msgid "About" 116 | msgstr "" 117 | 118 | #: src/qml/Main.qml:53 119 | msgctxt "@action:button open file dialog" 120 | msgid "Open…" 121 | msgstr "" 122 | 123 | #: src/qml/PlayerPage.qml:38 124 | #, fuzzy 125 | #| msgctxt "@action" 126 | #| msgid "Play" 127 | msgctxt "@action:button" 128 | msgid "Play" 129 | msgstr "Reproduzir" 130 | 131 | #: src/qml/PlayerPage.qml:38 132 | #, fuzzy 133 | #| msgctxt "@action" 134 | #| msgid "Pause" 135 | msgctxt "@action:button" 136 | msgid "Pause" 137 | msgstr "Pausa" 138 | 139 | #: src/qml/PlayerPage.qml:46 140 | msgctxt "@action:button" 141 | msgid "Exit Fullscreen" 142 | msgstr "" 143 | 144 | #: src/qml/PlayerPage.qml:46 145 | msgctxt "@action:button" 146 | msgid "Enter Fullscreen" 147 | msgstr "" 148 | 149 | #: src/qml/PlayerPage.qml:79 150 | msgctxt "@info" 151 | msgid "" 152 | "Not all video codecs are installed. Video playback support may be less " 153 | "reliable than expected.\n" 154 | "Please install ffmpeg-full by running:\n" 155 | "flatpak install org.freedesktop.Platform.ffmpeg-full//24.08" 157 | msgstr "" 158 | 159 | #: src/qml/PlayerPage.qml:86 160 | msgctxt "@info" 161 | msgid "" 162 | "Not all video codecs are installed. Video playback support may be less " 163 | "reliable than expected.\n" 164 | "Please consult your distribution on how to install all possible codecs." 165 | msgstr "" 166 | 167 | #: src/qml/PlayerPage.qml:94 168 | msgctxt "@action:button %1 is the name of a distribution" 169 | msgid "%1 Support" 170 | msgstr "" 171 | 172 | #: src/qml/PlayerPage.qml:330 173 | msgctxt "" 174 | "@info overlay on top of video. %1 is the amount of time played %2 is the " 175 | "total duration of the video" 176 | msgid "%1 / %2" 177 | msgstr "" 178 | 179 | #: src/qml/VolumeButton.qml:31 180 | msgctxt "@action:button open volume slider popup" 181 | msgid "Show volume controls" 182 | msgstr "" 183 | 184 | #: src/qml/WelcomeView.qml:16 185 | #, fuzzy 186 | #| msgid "Welcome to Dragon Player" 187 | msgctxt "@title" 188 | msgid "Welcome to Dragon Player" 189 | msgstr "Bem-vindo ao Dragon Player" 190 | 191 | #: src/qml/WelcomeView.qml:17 192 | msgctxt "@info" 193 | msgid "Dragon Player is a simple video player. Open a video to get started:" 194 | msgstr "" 195 | 196 | #: src/qml/WelcomeView.qml:20 197 | msgctxt "@action:button" 198 | msgid "Open Video File or Network Stream" 199 | msgstr "" 200 | 201 | #, fuzzy 202 | #~| msgctxt "@option:check Volume of sound output" 203 | #~| msgid "Volume" 204 | #~ msgctxt "@action:button open volume slider popup" 205 | #~ msgid "Volume" 206 | #~ msgstr "Volume" 207 | 208 | #~ msgctxt "@title:menu" 209 | #~ msgid "&Play" 210 | #~ msgstr "Re&produzir" 211 | 212 | #~ msgctxt "@title:menu" 213 | #~ msgid "Play Media" 214 | #~ msgstr "Reproduzir o Conteúdo" 215 | 216 | #~ msgctxt "@title:menu" 217 | #~ msgid "&Settings" 218 | #~ msgstr "&Configuração" 219 | 220 | #~ msgid "Main Toolbar" 221 | #~ msgstr "Barra Principal" 222 | 223 | #~ msgctxt "@action:button" 224 | #~ msgid "Preferred Scale" 225 | #~ msgstr "Escala Preferida" 226 | 227 | #~ msgctxt "@action:button" 228 | #~ msgid "Scale 100%" 229 | #~ msgstr "Escala a 100%" 230 | 231 | #~ msgid "Adjust video scale?" 232 | #~ msgstr "Ajustar a escala do vídeo?" 233 | 234 | #~ msgctxt "" 235 | #~ "%1 is the disc type, %2 is the name of the disc that the user can choose. " 236 | #~ "Ex. 'DVD: OfficeSpace'" 237 | #~ msgid "%1: %2" 238 | #~ msgstr "%1: %2" 239 | 240 | #~ msgctxt "Digital Versatile Disc, but keep it short" 241 | #~ msgid "DVD" 242 | #~ msgstr "DVD" 243 | 244 | #~ msgid "Data CD" 245 | #~ msgstr "CD de Dados" 246 | 247 | #~ msgctxt "@title:window" 248 | #~ msgid "Select a Disc" 249 | #~ msgstr "Seleccionar um Disco" 250 | 251 | #~ msgid "Select a disc to play." 252 | #~ msgstr "Seleccione um disco a reproduzir." 253 | 254 | #~ msgid "Improvements and polish" 255 | #~ msgstr "Melhoramentos e organizações" 256 | 257 | #~ msgid "Creator of Phonon" 258 | #~ msgstr "Criador do Phonon" 259 | 260 | #~ msgid "Dragon Player icon" 261 | #~ msgstr "Ícone do Dragon Player" 262 | 263 | #~ msgid "Handbook" 264 | #~ msgstr "Manual" 265 | 266 | #~ msgid "Great reference code" 267 | #~ msgstr "Óptimo código de referência" 268 | 269 | #~ msgid "Yatta happened to be the only video on my laptop to test with. :)" 270 | #~ msgstr "O único vídeo no meu portátil para usar em testes. :)" 271 | 272 | #~ msgid "MPRIS v2 support" 273 | #~ msgstr "Suporte para MPRIS v2" 274 | 275 | #~ msgid "Port to KF5/Plasma 5" 276 | #~ msgstr "Remodelação para o KF5/Plasma 5" 277 | 278 | #~ msgid "Play DVD Video" 279 | #~ msgstr "Reproduzir o DVD de Vídeo" 280 | 281 | #~ msgid "Play 'URL'" 282 | #~ msgstr "Reproduzir o 'URL'" 283 | 284 | #~ msgctxt "@title:menu" 285 | #~ msgid "Aspect &Ratio" 286 | #~ msgstr "P&roporções" 287 | 288 | #~ msgctxt "@title:menu" 289 | #~ msgid "&Audio Channels" 290 | #~ msgstr "C&anais de Áudio" 291 | 292 | #~ msgctxt "@option:radio aspect ratio" 293 | #~ msgid "Determine &Automatically" 294 | #~ msgstr "Determinar &Automaticamente" 295 | 296 | #~ msgctxt "@option:radio aspect ratio" 297 | #~ msgid "&4:3" 298 | #~ msgstr "&4:3" 299 | 300 | #~ msgctxt "@option:radio aspect ratio" 301 | #~ msgid "Ana&morphic (16:9)" 302 | #~ msgstr "Ana&mórfico (16:9)" 303 | 304 | #~ msgctxt "@option:radio aspect ratio" 305 | #~ msgid "&Window Size" 306 | #~ msgstr "Tamanho da &Janela" 307 | 308 | #~ msgid "" 309 | #~ "Phonon could not be successfully initialized. Dragon Player will now " 310 | #~ "exit." 311 | #~ msgstr "" 312 | #~ "Não foi possível inicializar o Phonon com sucesso. O Dragon Player " 313 | #~ "irá sair agora." 314 | 315 | #~ msgctxt "@action" 316 | #~ msgid "Play File…" 317 | #~ msgstr "Reproduzir um Ficheiro…" 318 | 319 | #~ msgctxt "@info:tooltip" 320 | #~ msgid "Open a media file for playback" 321 | #~ msgstr "Abrir um ficheiro multimédia para reprodução" 322 | 323 | #~ msgctxt "@action" 324 | #~ msgid "Play Stream…" 325 | #~ msgstr "Reproduzir uma Transmissão…" 326 | 327 | #~ msgctxt "@action" 328 | #~ msgid "Play Disc" 329 | #~ msgstr "Reproduzir um Disco" 330 | 331 | #~ msgctxt "@action" 332 | #~ msgid "Increase Volume" 333 | #~ msgstr "Aumentar o Volume" 334 | 335 | #~ msgctxt "@action" 336 | #~ msgid "Decrease Volume" 337 | #~ msgstr "Diminuir o Volume" 338 | 339 | #~ msgctxt "@action" 340 | #~ msgid "Reset Video Scale" 341 | #~ msgstr "Repor a Escala do Vídeo" 342 | 343 | #~ msgctxt "@action" 344 | #~ msgid "Menu Toggle" 345 | #~ msgstr "Comutar o Menu" 346 | 347 | #~ msgid "Position Slider" 348 | #~ msgstr "Barra de Posição" 349 | 350 | #~ msgctxt "@option:check" 351 | #~ msgid "Video Settings" 352 | #~ msgstr "Configuração do Vídeo" 353 | 354 | #~ msgctxt "" 355 | #~ "@option:check Whether only one instance of dragon can be started and will " 356 | #~ "be reused when the user tries to play another file." 357 | #~ msgid "One Instance Only" 358 | #~ msgstr "Apenas uma Instância" 359 | 360 | #~ msgctxt "@action previous chapter" 361 | #~ msgid "Previous" 362 | #~ msgstr "Anterior" 363 | 364 | #~ msgctxt "@action next chapter" 365 | #~ msgid "Next" 366 | #~ msgstr "Seguinte" 367 | 368 | #~ msgctxt "@action" 369 | #~ msgid "Return 10% Back" 370 | #~ msgstr "Recuar 10%" 371 | 372 | #~ msgctxt "@action" 373 | #~ msgid "Go 10% Forward" 374 | #~ msgstr "Avançar 10%" 375 | 376 | #~ msgctxt "@action" 377 | #~ msgid "Return 10 Seconds Back" 378 | #~ msgstr "Recuar 10 Segundos" 379 | 380 | #~ msgctxt "@action" 381 | #~ msgid "Go 10 Seconds Forward" 382 | #~ msgstr "Avançar 10 Segundos" 383 | 384 | #~ msgctxt "@option:check Mute the sound output" 385 | #~ msgid "Mute" 386 | #~ msgstr "Silenciar" 387 | 388 | #~ msgid "Dragon Player was asked to open an empty URL; it cannot." 389 | #~ msgstr "O Dragon Player recebeu um URL em branco; não pode fazer nada." 390 | 391 | #~ msgctxt "@title:window" 392 | #~ msgid "Select File to Play" 393 | #~ msgstr "Seleccione um Ficheiro a Reproduzir" 394 | 395 | #~ msgctxt "@title:window" 396 | #~ msgid "Stream to Play" 397 | #~ msgstr "Transmissão a Reproduzir" 398 | 399 | #~ msgctxt "@label:textbox" 400 | #~ msgid "Stream:" 401 | #~ msgstr "Transmissão:" 402 | 403 | #~ msgid "Sorry, no media was found in the drop" 404 | #~ msgstr "Infelizmente não existem itens multimédia largados" 405 | 406 | #, fuzzy 407 | #~| msgctxt "Notification inhibition reason" 408 | #~| msgid "playing a video" 409 | #~ msgctxt "Notification inhibition reason" 410 | #~ msgid "Playing a video" 411 | #~ msgstr "a reproduzir um vídeo" 412 | 413 | #~ msgid "No media loaded" 414 | #~ msgstr "Sem itens carregados" 415 | 416 | #~ msgid "Paused" 417 | #~ msgstr "Em pausa" 418 | 419 | #~ msgid "The file is not a playlist" 420 | #~ msgstr "O ficheiro não é uma lista de reprodução" 421 | 422 | #~ msgid "Dragon Player could not download the remote playlist: %1" 423 | #~ msgstr "" 424 | #~ "O Dragon Player não conseguiu obter a lista de reprodução remota: %1" 425 | 426 | #~ msgid "" 427 | #~ "The playlist, '%1', could not be interpreted. Perhaps it is " 428 | #~ "empty?" 429 | #~ msgstr "" 430 | #~ "A lista de reprodução '%1' não pôde ser interpretada. Talvez " 431 | #~ "esteja em branco?" 432 | 433 | #~ msgid "Dragon Player could not open the file: %1" 434 | #~ msgstr "O Dragon Player não conseguiu aceder ao ficheiro: %1" 435 | 436 | #~ msgid "Track %1/%2" 437 | #~ msgstr "Faixa %1/%2" 438 | 439 | #~ msgctxt "@label:slider" 440 | #~ msgid "Brightness:" 441 | #~ msgstr "Brilho:" 442 | 443 | #~ msgctxt "@label:slider" 444 | #~ msgid "Contrast:" 445 | #~ msgstr "Contraste:" 446 | 447 | #~ msgctxt "@label:slider" 448 | #~ msgid "Hue:" 449 | #~ msgstr "Tom:" 450 | 451 | #~ msgctxt "@label:slider" 452 | #~ msgid "Saturation:" 453 | #~ msgstr "Saturação:" 454 | 455 | #~ msgctxt "@action:button" 456 | #~ msgid "Restore Defaults" 457 | #~ msgstr "Repor as Predefinições" 458 | 459 | #~ msgctxt "@action:button" 460 | #~ msgid "Close" 461 | #~ msgstr "Fechar" 462 | 463 | #~ msgctxt "@option:radio" 464 | #~ msgid "&DVD Subtitle Selection" 465 | #~ msgstr "Selecção de Legendas do &DVD" 466 | 467 | #~ msgctxt "@option:radio audio language" 468 | #~ msgid "&Auto" 469 | #~ msgstr "&Auto" 470 | -------------------------------------------------------------------------------- /po/sa/dragonplayer.po: -------------------------------------------------------------------------------- 1 | # Sanskrit translations for dragon package. 2 | # Copyright (C) 2024 This file is copyright: 3 | # This file is distributed under the same license as the dragon package. 4 | # Kali , 2024. 5 | # 6 | # SPDX-FileCopyrightText: 2024 kali 7 | msgid "" 8 | msgstr "" 9 | "Project-Id-Version: dragon\n" 10 | "Report-Msgid-Bugs-To: https://bugs.kde.org\n" 11 | "POT-Creation-Date: 2025-04-30 00:41+0000\n" 12 | "PO-Revision-Date: 2024-12-24 20:39+0530\n" 13 | "Last-Translator: kali \n" 14 | "Language-Team: Sanskrit \n" 15 | "Language: sa\n" 16 | "MIME-Version: 1.0\n" 17 | "Content-Type: text/plain; charset=UTF-8\n" 18 | "Content-Transfer-Encoding: 8bit\n" 19 | "Plural-Forms: nplurals=2; plural=(n>2);\n" 20 | "X-Generator: Lokalize 24.08.2\n" 21 | 22 | #, kde-format 23 | msgctxt "NAME OF TRANSLATORS" 24 | msgid "Your names" 25 | msgstr "श्रीकान्त् कलवार्" 26 | 27 | #, kde-format 28 | msgctxt "EMAIL OF TRANSLATORS" 29 | msgid "Your emails" 30 | msgstr "skkalwar999@gmail.com" 31 | 32 | #: src/main.cpp:24 33 | #, kde-format 34 | msgid "Dragon Player" 35 | msgstr "ड्रैगन प्लेयर" 36 | 37 | #: src/main.cpp:26 38 | #, kde-format 39 | msgid "A video player that has a usability focus" 40 | msgstr "एकः विडियो प्लेयर यस्य उपयोगिताकेन्द्रीकरणं भवति" 41 | 42 | #: src/main.cpp:28 43 | #, fuzzy, kde-format 44 | #| msgid "" 45 | #| "Copyright 2006, Max Howell\n" 46 | #| "Copyright 2007, Ian Monroe" 47 | msgid "" 48 | "Copyright 2006, Max Howell\n" 49 | "Copyright 2007, Ian Monroe\n" 50 | "Copyright 2022 Harald Sitter" 51 | msgstr "" 52 | "प्रतिलिपि अधिकार 2006, मैक्स हावेल\n" 53 | "प्रतिलिपिधर्मः २००७, इयान् मोन्रो" 54 | 55 | #: src/qml/ControlsBar.qml:129 56 | msgctxt "@action:button" 57 | msgid "Application Menu" 58 | msgstr "" 59 | 60 | #: src/qml/ControlsBar.qml:160 61 | #, fuzzy 62 | #| msgctxt "@action" 63 | #| msgid "Stop" 64 | msgctxt "@action:button stop playback" 65 | msgid "Stop" 66 | msgstr "विरमतु" 67 | 68 | #: src/qml/ControlsBar.qml:168 69 | msgctxt "@action:button" 70 | msgid "Unmute" 71 | msgstr "" 72 | 73 | #: src/qml/ControlsBar.qml:168 74 | #, fuzzy 75 | #| msgctxt "@action Mute the sound output" 76 | #| msgid "Mute" 77 | msgctxt "@action:button" 78 | msgid "Mute" 79 | msgstr "मूक" 80 | 81 | #: src/qml/ControlsBar.qml:178 82 | #, fuzzy 83 | #| msgctxt "@title:menu" 84 | #| msgid "&Subtitles" 85 | msgctxt "@action:button video subtitle" 86 | msgid "Subtitles" 87 | msgstr "&उपशीर्षक" 88 | 89 | #: src/qml/ControlsBar.qml:185 90 | msgctxt "@action:button selector for no subtitle" 91 | msgid "None" 92 | msgstr "" 93 | 94 | #: src/qml/ControlsBar.qml:195 95 | msgctxt "" 96 | "@action:button subtitle selector %1 is usually a language (e.g. chinese) and " 97 | "%2 is usually a subtitle (e.g. Traditional)" 98 | msgid "%1 [%2]" 99 | msgstr "" 100 | 101 | #: src/qml/ControlsBar.qml:212 102 | #, fuzzy 103 | #| msgid "Audio CD" 104 | msgctxt "@action:button track selector" 105 | msgid "Audio Track" 106 | msgstr "श्रव्य सीडी" 107 | 108 | #: src/qml/ControlsBar.qml:227 109 | #, fuzzy 110 | #| msgid "Video CD" 111 | msgctxt "@action:button track selector" 112 | msgid "Video Track" 113 | msgstr "विडियो सीडी" 114 | 115 | #: src/qml/ControlsBar.qml:245 116 | msgctxt "@action opens about app page" 117 | msgid "About" 118 | msgstr "" 119 | 120 | #: src/qml/Main.qml:53 121 | msgctxt "@action:button open file dialog" 122 | msgid "Open…" 123 | msgstr "" 124 | 125 | #: src/qml/PlayerPage.qml:38 126 | #, fuzzy 127 | #| msgctxt "@action" 128 | #| msgid "Play" 129 | msgctxt "@action:button" 130 | msgid "Play" 131 | msgstr "क्रीडतु" 132 | 133 | #: src/qml/PlayerPage.qml:38 134 | #, fuzzy 135 | #| msgctxt "@action" 136 | #| msgid "Pause" 137 | msgctxt "@action:button" 138 | msgid "Pause" 139 | msgstr "विराम" 140 | 141 | #: src/qml/PlayerPage.qml:46 142 | msgctxt "@action:button" 143 | msgid "Exit Fullscreen" 144 | msgstr "" 145 | 146 | #: src/qml/PlayerPage.qml:46 147 | msgctxt "@action:button" 148 | msgid "Enter Fullscreen" 149 | msgstr "" 150 | 151 | #: src/qml/PlayerPage.qml:79 152 | msgctxt "@info" 153 | msgid "" 154 | "Not all video codecs are installed. Video playback support may be less " 155 | "reliable than expected.\n" 156 | "Please install ffmpeg-full by running:\n" 157 | "flatpak install org.freedesktop.Platform.ffmpeg-full//24.08" 159 | msgstr "" 160 | 161 | #: src/qml/PlayerPage.qml:86 162 | msgctxt "@info" 163 | msgid "" 164 | "Not all video codecs are installed. Video playback support may be less " 165 | "reliable than expected.\n" 166 | "Please consult your distribution on how to install all possible codecs." 167 | msgstr "" 168 | 169 | #: src/qml/PlayerPage.qml:94 170 | msgctxt "@action:button %1 is the name of a distribution" 171 | msgid "%1 Support" 172 | msgstr "" 173 | 174 | #: src/qml/PlayerPage.qml:330 175 | msgctxt "" 176 | "@info overlay on top of video. %1 is the amount of time played %2 is the " 177 | "total duration of the video" 178 | msgid "%1 / %2" 179 | msgstr "" 180 | 181 | #: src/qml/VolumeButton.qml:31 182 | msgctxt "@action:button open volume slider popup" 183 | msgid "Show volume controls" 184 | msgstr "" 185 | 186 | #: src/qml/WelcomeView.qml:16 187 | #, fuzzy 188 | #| msgid "Welcome to Dragon Player" 189 | msgctxt "@title" 190 | msgid "Welcome to Dragon Player" 191 | msgstr "Dragon Player इत्यत्र स्वागतम्" 192 | 193 | #: src/qml/WelcomeView.qml:17 194 | msgctxt "@info" 195 | msgid "Dragon Player is a simple video player. Open a video to get started:" 196 | msgstr "" 197 | 198 | #: src/qml/WelcomeView.qml:20 199 | msgctxt "@action:button" 200 | msgid "Open Video File or Network Stream" 201 | msgstr "" 202 | 203 | #, fuzzy 204 | #~| msgctxt "@option:check Volume of sound output" 205 | #~| msgid "Volume" 206 | #~ msgctxt "@action:button open volume slider popup" 207 | #~ msgid "Volume" 208 | #~ msgstr "मात्रा" 209 | 210 | #~ msgctxt "@title:menu" 211 | #~ msgid "&Play" 212 | #~ msgstr "&क्रीडतु" 213 | 214 | #~ msgctxt "@title:menu" 215 | #~ msgid "Play Media" 216 | #~ msgstr "प्ले मीडिया" 217 | 218 | #~ msgctxt "@title:menu" 219 | #~ msgid "&Settings" 220 | #~ msgstr "&सेटिंग्स" 221 | 222 | #~ msgid "Main Toolbar" 223 | #~ msgstr "मुख्य साधनपट्टी" 224 | 225 | #~ msgctxt "@action:button" 226 | #~ msgid "Preferred Scale" 227 | #~ msgstr "प्राथमिकता स्केल" 228 | 229 | #~ msgctxt "@action:button" 230 | #~ msgid "Scale 100%" 231 | #~ msgstr "स्केल १००%" 232 | 233 | #~ msgid "Adjust video scale?" 234 | #~ msgstr "विडियो स्केल समायोजयन्तु?" 235 | 236 | #~ msgctxt "" 237 | #~ "%1 is the disc type, %2 is the name of the disc that the user can choose. " 238 | #~ "Ex. 'DVD: OfficeSpace'" 239 | #~ msgid "%1: %2" 240 | #~ msgstr "%1: %2" 241 | 242 | #~ msgctxt "Digital Versatile Disc, but keep it short" 243 | #~ msgid "DVD" 244 | #~ msgstr "DVD" 245 | 246 | #~ msgid "Data CD" 247 | #~ msgstr "डाटा सीडी" 248 | 249 | #~ msgctxt "@title:window" 250 | #~ msgid "Select a Disc" 251 | #~ msgstr "एकं डिस्कं चिनोतु" 252 | 253 | #~ msgid "Select a disc to play." 254 | #~ msgstr "वादयितुं डिस्कं चिनोतु।" 255 | 256 | #~ msgid "Improvements and polish" 257 | #~ msgstr "सुधारः च पालिशः च" 258 | 259 | #~ msgid "Creator of Phonon" 260 | #~ msgstr "फोनोन के निर्माता" 261 | 262 | #~ msgid "Dragon Player icon" 263 | #~ msgstr "ड्रैगन प्लेयर चिह्न" 264 | 265 | #~ msgid "Handbook" 266 | #~ msgstr "हस्तपुस्तिका" 267 | 268 | #~ msgid "Great reference code" 269 | #~ msgstr "महान् सन्दर्भसङ्केतः" 270 | 271 | #~ msgid "Yatta happened to be the only video on my laptop to test with. :)" 272 | #~ msgstr "संयोगेन मम लैपटॉपे यट्टा एकमात्रः विडियो आसीत् यस्य परीक्षणं कर्तुं शक्नोमि। :)" 273 | 274 | #~ msgid "MPRIS v2 support" 275 | #~ msgstr "MPRIS v2 समर्थनम्" 276 | 277 | #~ msgid "Port to KF5/Plasma 5" 278 | #~ msgstr "KF5/प्लाज्मा 5 यावत् पोर्ट्" 279 | 280 | #~ msgid "Play DVD Video" 281 | #~ msgstr "DVD Video प्ले कुर्वन्तु" 282 | 283 | #~ msgid "Play 'URL'" 284 | #~ msgstr "'URL' इति क्रीडन्तु।" 285 | 286 | #~ msgctxt "@title:menu" 287 | #~ msgid "Aspect &Ratio" 288 | #~ msgstr "पक्ष &अनुपात" 289 | 290 | #~ msgctxt "@title:menu" 291 | #~ msgid "&Audio Channels" 292 | #~ msgstr "&श्रव्यचैनल" 293 | 294 | #~ msgctxt "@option:radio aspect ratio" 295 | #~ msgid "Determine &Automatically" 296 | #~ msgstr "&स्वचालितरूपेण निर्धारयतु" 297 | 298 | #~ msgctxt "@option:radio aspect ratio" 299 | #~ msgid "&4:3" 300 | #~ msgstr "&4:3" 301 | 302 | #~ msgctxt "@option:radio aspect ratio" 303 | #~ msgid "Ana&morphic (16:9)" 304 | #~ msgstr "अन&मोर्फिक (१६:९)" 305 | 306 | #~ msgctxt "@option:radio aspect ratio" 307 | #~ msgid "&Window Size" 308 | #~ msgstr "&विण्डो आकार" 309 | 310 | #~ msgid "" 311 | #~ "Phonon could not be successfully initialized. Dragon Player will now " 312 | #~ "exit." 313 | #~ msgstr "" 314 | #~ "फोनोन् सफलतया आरम्भं कर्तुं न शक्तवान् । ड्रैगन प्लेयर इदानीं निर्गमिष्यति।" 315 | 316 | #~ msgctxt "@action" 317 | #~ msgid "Play File…" 318 | #~ msgstr "प्ले सञ्चिका…" 319 | 320 | #~ msgctxt "@info:tooltip" 321 | #~ msgid "Open a media file for playback" 322 | #~ msgstr "प्लेबैक् कृते मीडिया सञ्चिकां उद्घाटयन्तु" 323 | 324 | #~ msgctxt "@action" 325 | #~ msgid "Play Stream…" 326 | #~ msgstr "प्ले स्ट्रीम…" 327 | 328 | #~ msgctxt "@action" 329 | #~ msgid "Play Disc" 330 | #~ msgstr "डिस्कं वादयन्तु" 331 | 332 | #~ msgctxt "@action" 333 | #~ msgid "Increase Volume" 334 | #~ msgstr "Volume वर्धयतु" 335 | 336 | #~ msgctxt "@action" 337 | #~ msgid "Decrease Volume" 338 | #~ msgstr "मात्रां न्यूनीकरोतु" 339 | 340 | #~ msgctxt "@action" 341 | #~ msgid "Reset Video Scale" 342 | #~ msgstr "विडियो स्केल पुनः सेट् कुर्वन्तु" 343 | 344 | #~ msgctxt "@action" 345 | #~ msgid "Menu Toggle" 346 | #~ msgstr "मेनू टॉगल" 347 | 348 | #~ msgid "Position Slider" 349 | #~ msgstr "स्थिति स्लाइडर" 350 | 351 | #~ msgctxt "@option:check" 352 | #~ msgid "Video Settings" 353 | #~ msgstr "विडियो सेटिंग्स्" 354 | 355 | #~ msgctxt "" 356 | #~ "@option:check Whether only one instance of dragon can be started and will " 357 | #~ "be reused when the user tries to play another file." 358 | #~ msgid "One Instance Only" 359 | #~ msgstr "एकः दृष्टान्तः एव" 360 | 361 | #~ msgctxt "@action previous chapter" 362 | #~ msgid "Previous" 363 | #~ msgstr "पूर्वतनम्‌" 364 | 365 | #~ msgctxt "@action next chapter" 366 | #~ msgid "Next" 367 | #~ msgstr "अग्रिम" 368 | 369 | #~ msgctxt "@action" 370 | #~ msgid "Return 10% Back" 371 | #~ msgstr "10% Back प्रत्यागच्छतु" 372 | 373 | #~ msgctxt "@action" 374 | #~ msgid "Go 10% Forward" 375 | #~ msgstr "१०% अग्रे गच्छतु" 376 | 377 | #~ msgctxt "@action" 378 | #~ msgid "Return 10 Seconds Back" 379 | #~ msgstr "10 सेकण्ड् पश्चात् प्रत्यागच्छतु" 380 | 381 | #~ msgctxt "@action" 382 | #~ msgid "Go 10 Seconds Forward" 383 | #~ msgstr "१० सेकेण्ड् अग्रे गच्छतु" 384 | 385 | #~ msgctxt "@option:check Mute the sound output" 386 | #~ msgid "Mute" 387 | #~ msgstr "मूक" 388 | 389 | #~ msgid "Dragon Player was asked to open an empty URL; it cannot." 390 | #~ msgstr "Dragon Player इत्यस्मै रिक्तं URL उद्घाटयितुं कथितम् आसीत्; न शक्नोति ।" 391 | 392 | #~ msgctxt "@title:window" 393 | #~ msgid "Select File to Play" 394 | #~ msgstr "File to Play इति चिनोतु" 395 | 396 | #~ msgctxt "@title:window" 397 | #~ msgid "Stream to Play" 398 | #~ msgstr "स्ट्रीम टू प्ले" 399 | 400 | #~ msgctxt "@label:textbox" 401 | #~ msgid "Stream:" 402 | #~ msgstr "धारा:" 403 | 404 | #~ msgid "Sorry, no media was found in the drop" 405 | #~ msgstr "क्षम्यतां, बून्दे कोऽपि माध्यमः न प्राप्तः" 406 | 407 | #~ msgctxt "Notification inhibition reason" 408 | #~ msgid "Playing a video" 409 | #~ msgstr "एकं विडियो वादयन्" 410 | 411 | #~ msgid "No media loaded" 412 | #~ msgstr "न मीडिया लोड् अभवत्" 413 | 414 | #~ msgid "Paused" 415 | #~ msgstr "विरामः कृतः" 416 | 417 | #~ msgid "The file is not a playlist" 418 | #~ msgstr "सञ्चिका प्लेलिस्ट् नास्ति" 419 | 420 | #~ msgid "Dragon Player could not download the remote playlist: %1" 421 | #~ msgstr "Dragon Player दूरस्थं प्लेलिस्ट् डाउनलोड् कर्तुं न शक्तवान्: %1" 422 | 423 | #~ msgid "" 424 | #~ "The playlist, '%1', could not be interpreted. Perhaps it is " 425 | #~ "empty?" 426 | #~ msgstr "" 427 | #~ "'%1' इति प्लेलिस्ट् व्याख्यातुं न शक्यते स्म । कदाचित् शून्यम् अस्ति ?" 428 | #~ "" 429 | 430 | #~ msgid "Dragon Player could not open the file: %1" 431 | #~ msgstr "Dragon Player सञ्चिकां उद्घाटयितुं न शक्तवान्: %1" 432 | 433 | #~ msgid "Track %1/%2" 434 | #~ msgstr "%1/%2 इति पटलम्" 435 | 436 | #~ msgctxt "@label:slider" 437 | #~ msgid "Brightness:" 438 | #~ msgstr "कान्तिः :" 439 | 440 | #~ msgctxt "@label:slider" 441 | #~ msgid "Contrast:" 442 | #~ msgstr "विप्रकर्ष:" 443 | 444 | #~ msgctxt "@label:slider" 445 | #~ msgid "Hue:" 446 | #~ msgstr "ह्युः :" 447 | 448 | #~ msgctxt "@label:slider" 449 | #~ msgid "Saturation:" 450 | #~ msgstr "संतृप्ति :" 451 | 452 | #~ msgctxt "@action:button" 453 | #~ msgid "Restore Defaults" 454 | #~ msgstr "पूर्वनिर्धारितं पुनः स्थापयतु" 455 | 456 | #~ msgctxt "@action:button" 457 | #~ msgid "Close" 458 | #~ msgstr "पिधानं करोतु" 459 | 460 | #~ msgctxt "@option:radio" 461 | #~ msgid "&DVD Subtitle Selection" 462 | #~ msgstr "&DVD उपशीर्षक चयन" 463 | 464 | #~ msgctxt "@option:radio audio language" 465 | #~ msgid "&Auto" 466 | #~ msgstr "&स्वयम्" 467 | -------------------------------------------------------------------------------- /po/tr/dragonplayer.po: -------------------------------------------------------------------------------- 1 | # Copyright (C) YEAR This_file_is_part_of_KDE 2 | # This file is distributed under the same license as the PACKAGE package. 3 | # 4 | # Translators: 5 | # obsoleteman , 2008-2009,2011-2012. 6 | # Volkan Gezer , 2013-2014. 7 | # SPDX-FileCopyrightText: 2022, 2023, 2024 Emir SARI 8 | msgid "" 9 | msgstr "" 10 | "Project-Id-Version: kdemultimedia-kde4\n" 11 | "Report-Msgid-Bugs-To: https://bugs.kde.org\n" 12 | "POT-Creation-Date: 2025-04-30 00:41+0000\n" 13 | "PO-Revision-Date: 2024-06-06 11:30+0300\n" 14 | "Last-Translator: Emir SARI \n" 15 | "Language-Team: Turkish \n" 16 | "Language: tr\n" 17 | "MIME-Version: 1.0\n" 18 | "Content-Type: text/plain; charset=UTF-8\n" 19 | "Content-Transfer-Encoding: 8bit\n" 20 | "Plural-Forms: nplurals=2; plural=(n > 1);\n" 21 | "X-Generator: Lokalize 24.07.70\n" 22 | 23 | #, kde-format 24 | msgctxt "NAME OF TRANSLATORS" 25 | msgid "Your names" 26 | msgstr "Serdar Soytetir, Emir SARI" 27 | 28 | #, kde-format 29 | msgctxt "EMAIL OF TRANSLATORS" 30 | msgid "Your emails" 31 | msgstr "tulliana@gmail.com, emir_sari@icloud.com" 32 | 33 | #: src/main.cpp:24 34 | #, kde-format 35 | msgid "Dragon Player" 36 | msgstr "Dragon" 37 | 38 | #: src/main.cpp:26 39 | #, kde-format 40 | msgid "A video player that has a usability focus" 41 | msgstr "Kullanılabilirliğe odaklanmış bir video oynatıcısı" 42 | 43 | #: src/main.cpp:28 44 | #, kde-format 45 | msgid "" 46 | "Copyright 2006, Max Howell\n" 47 | "Copyright 2007, Ian Monroe\n" 48 | "Copyright 2022 Harald Sitter" 49 | msgstr "" 50 | "Telif hakkı 2006, Max Howell\n" 51 | "Telif hakkı 2007, Ian Monroe\n" 52 | "Telif hakkı 2022, Harald Sitter" 53 | 54 | #: src/qml/ControlsBar.qml:129 55 | msgctxt "@action:button" 56 | msgid "Application Menu" 57 | msgstr "Uygulama Menüsü" 58 | 59 | #: src/qml/ControlsBar.qml:160 60 | msgctxt "@action:button stop playback" 61 | msgid "Stop" 62 | msgstr "Durdur" 63 | 64 | #: src/qml/ControlsBar.qml:168 65 | msgctxt "@action:button" 66 | msgid "Unmute" 67 | msgstr "Sesi Aç" 68 | 69 | #: src/qml/ControlsBar.qml:168 70 | msgctxt "@action:button" 71 | msgid "Mute" 72 | msgstr "Sessize Al" 73 | 74 | #: src/qml/ControlsBar.qml:178 75 | msgctxt "@action:button video subtitle" 76 | msgid "Subtitles" 77 | msgstr "Altyazılar" 78 | 79 | #: src/qml/ControlsBar.qml:185 80 | msgctxt "@action:button selector for no subtitle" 81 | msgid "None" 82 | msgstr "Yok" 83 | 84 | #: src/qml/ControlsBar.qml:195 85 | msgctxt "" 86 | "@action:button subtitle selector %1 is usually a language (e.g. chinese) and " 87 | "%2 is usually a subtitle (e.g. Traditional)" 88 | msgid "%1 [%2]" 89 | msgstr "%1 [%2]" 90 | 91 | #: src/qml/ControlsBar.qml:212 92 | msgctxt "@action:button track selector" 93 | msgid "Audio Track" 94 | msgstr "Ses Parçası" 95 | 96 | #: src/qml/ControlsBar.qml:227 97 | msgctxt "@action:button track selector" 98 | msgid "Video Track" 99 | msgstr "Video Parçası" 100 | 101 | #: src/qml/ControlsBar.qml:245 102 | msgctxt "@action opens about app page" 103 | msgid "About" 104 | msgstr "Hakkında" 105 | 106 | #: src/qml/Main.qml:53 107 | msgctxt "@action:button open file dialog" 108 | msgid "Open…" 109 | msgstr "Aç…" 110 | 111 | #: src/qml/PlayerPage.qml:38 112 | msgctxt "@action:button" 113 | msgid "Play" 114 | msgstr "Oynat" 115 | 116 | #: src/qml/PlayerPage.qml:38 117 | msgctxt "@action:button" 118 | msgid "Pause" 119 | msgstr "Duraklat" 120 | 121 | #: src/qml/PlayerPage.qml:46 122 | msgctxt "@action:button" 123 | msgid "Exit Fullscreen" 124 | msgstr "Tam Ekrandan Çık" 125 | 126 | #: src/qml/PlayerPage.qml:46 127 | msgctxt "@action:button" 128 | msgid "Enter Fullscreen" 129 | msgstr "Tam Ekrana Gir" 130 | 131 | #: src/qml/PlayerPage.qml:79 132 | msgctxt "@info" 133 | msgid "" 134 | "Not all video codecs are installed. Video playback support may be less " 135 | "reliable than expected.\n" 136 | "Please install ffmpeg-full by running:\n" 137 | "flatpak install org.freedesktop.Platform.ffmpeg-full//24.08" 139 | msgstr "" 140 | "Tüm video kodlayıcıları kurulu değil. Video oynatımı, beklenenden daha düşük " 141 | "kaliteli olabilir.\n" 142 | "Şu komutu çalıştırarak FFmpeg’i kurun:\n" 143 | "flatpak install org.freedesktop.Platform.ffmpeg-full//24.08" 145 | 146 | #: src/qml/PlayerPage.qml:86 147 | msgctxt "@info" 148 | msgid "" 149 | "Not all video codecs are installed. Video playback support may be less " 150 | "reliable than expected.\n" 151 | "Please consult your distribution on how to install all possible codecs." 152 | msgstr "" 153 | "Tüm video kodlayıcıları kurulu değil. Video oynatımı, beklenenden daha düşük " 154 | "kaliteli olabilir.\n" 155 | "Olası tüm kodlayıcıların kurulumu için dağıtımınıza danışın." 156 | 157 | #: src/qml/PlayerPage.qml:94 158 | msgctxt "@action:button %1 is the name of a distribution" 159 | msgid "%1 Support" 160 | msgstr "%1 Desteği" 161 | 162 | #: src/qml/PlayerPage.qml:330 163 | msgctxt "" 164 | "@info overlay on top of video. %1 is the amount of time played %2 is the " 165 | "total duration of the video" 166 | msgid "%1 / %2" 167 | msgstr "%1 / %2" 168 | 169 | #: src/qml/VolumeButton.qml:31 170 | msgctxt "@action:button open volume slider popup" 171 | msgid "Show volume controls" 172 | msgstr "Ses düzeyi denetimlerini göster" 173 | 174 | #: src/qml/WelcomeView.qml:16 175 | msgctxt "@title" 176 | msgid "Welcome to Dragon Player" 177 | msgstr "Dragon’a hoş geldiniz" 178 | 179 | #: src/qml/WelcomeView.qml:17 180 | msgctxt "@info" 181 | msgid "Dragon Player is a simple video player. Open a video to get started:" 182 | msgstr "Dragon, basit bir video oynatıcısıdır. Başlamak için bir video açın:" 183 | 184 | #: src/qml/WelcomeView.qml:20 185 | msgctxt "@action:button" 186 | msgid "Open Video File or Network Stream" 187 | msgstr "Video Dosyası veya Ağ Akışı Aç" 188 | -------------------------------------------------------------------------------- /po/zh_CN/dragonplayer.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "Project-Id-Version: kdeorg\n" 4 | "Report-Msgid-Bugs-To: https://bugs.kde.org\n" 5 | "POT-Creation-Date: 2025-04-30 00:41+0000\n" 6 | "PO-Revision-Date: 2024-04-22 15:58\n" 7 | "Last-Translator: \n" 8 | "Language-Team: Chinese Simplified\n" 9 | "Language: zh_CN\n" 10 | "MIME-Version: 1.0\n" 11 | "Content-Type: text/plain; charset=UTF-8\n" 12 | "Content-Transfer-Encoding: 8bit\n" 13 | "Plural-Forms: nplurals=1; plural=0;\n" 14 | "X-Crowdin-Project: kdeorg\n" 15 | "X-Crowdin-Project-ID: 269464\n" 16 | "X-Crowdin-Language: zh-CN\n" 17 | "X-Crowdin-File: /kf6-trunk/messages/dragon/dragonplayer.pot\n" 18 | "X-Crowdin-File-ID: 46758\n" 19 | 20 | #, kde-format 21 | msgctxt "NAME OF TRANSLATORS" 22 | msgid "Your names" 23 | msgstr "Ni Hui" 24 | 25 | #, kde-format 26 | msgctxt "EMAIL OF TRANSLATORS" 27 | msgid "Your emails" 28 | msgstr "shuizhuyuanluo@126.com" 29 | 30 | #: src/main.cpp:24 31 | #, kde-format 32 | msgid "Dragon Player" 33 | msgstr "Dragon Player" 34 | 35 | #: src/main.cpp:26 36 | #, kde-format 37 | msgid "A video player that has a usability focus" 38 | msgstr "一款专注于易用性的视频播放器" 39 | 40 | #: src/main.cpp:28 41 | #, kde-format 42 | msgid "" 43 | "Copyright 2006, Max Howell\n" 44 | "Copyright 2007, Ian Monroe\n" 45 | "Copyright 2022 Harald Sitter" 46 | msgstr "" 47 | "Copyright 2006, Max Howell\n" 48 | "Copyright 2007, Ian Monroe\n" 49 | "Copyright 2022 Harald Sitter" 50 | 51 | #: src/qml/ControlsBar.qml:129 52 | msgctxt "@action:button" 53 | msgid "Application Menu" 54 | msgstr "应用程序菜单" 55 | 56 | #: src/qml/ControlsBar.qml:160 57 | msgctxt "@action:button stop playback" 58 | msgid "Stop" 59 | msgstr "停止" 60 | 61 | #: src/qml/ControlsBar.qml:168 62 | msgctxt "@action:button" 63 | msgid "Unmute" 64 | msgstr "取消静音" 65 | 66 | #: src/qml/ControlsBar.qml:168 67 | msgctxt "@action:button" 68 | msgid "Mute" 69 | msgstr "静音" 70 | 71 | #: src/qml/ControlsBar.qml:178 72 | msgctxt "@action:button video subtitle" 73 | msgid "Subtitles" 74 | msgstr "字幕" 75 | 76 | #: src/qml/ControlsBar.qml:185 77 | msgctxt "@action:button selector for no subtitle" 78 | msgid "None" 79 | msgstr "无" 80 | 81 | #: src/qml/ControlsBar.qml:195 82 | msgctxt "" 83 | "@action:button subtitle selector %1 is usually a language (e.g. chinese) and " 84 | "%2 is usually a subtitle (e.g. Traditional)" 85 | msgid "%1 [%2]" 86 | msgstr "%1 [%2]" 87 | 88 | #: src/qml/ControlsBar.qml:212 89 | msgctxt "@action:button track selector" 90 | msgid "Audio Track" 91 | msgstr "音频轨道" 92 | 93 | #: src/qml/ControlsBar.qml:227 94 | msgctxt "@action:button track selector" 95 | msgid "Video Track" 96 | msgstr "视频轨道" 97 | 98 | #: src/qml/ControlsBar.qml:245 99 | msgctxt "@action opens about app page" 100 | msgid "About" 101 | msgstr "关于" 102 | 103 | #: src/qml/Main.qml:53 104 | msgctxt "@action:button open file dialog" 105 | msgid "Open…" 106 | msgstr "打开…" 107 | 108 | #: src/qml/PlayerPage.qml:38 109 | msgctxt "@action:button" 110 | msgid "Play" 111 | msgstr "播放" 112 | 113 | #: src/qml/PlayerPage.qml:38 114 | msgctxt "@action:button" 115 | msgid "Pause" 116 | msgstr "暂停" 117 | 118 | #: src/qml/PlayerPage.qml:46 119 | msgctxt "@action:button" 120 | msgid "Exit Fullscreen" 121 | msgstr "退出全屏" 122 | 123 | #: src/qml/PlayerPage.qml:46 124 | msgctxt "@action:button" 125 | msgid "Enter Fullscreen" 126 | msgstr "进入全屏" 127 | 128 | #: src/qml/PlayerPage.qml:79 129 | msgctxt "@info" 130 | msgid "" 131 | "Not all video codecs are installed. Video playback support may be less " 132 | "reliable than expected.\n" 133 | "Please install ffmpeg-full by running:\n" 134 | "flatpak install org.freedesktop.Platform.ffmpeg-full//24.08" 136 | msgstr "" 137 | "没有安装全部视频编解码器,这可能影响视频播放支持的可靠性。 \n" 138 | "请运行以下命令安装 ffmpeg-full:\n" 139 | "flatpak install org.freedesktop.Platform.ffmpeg-full//24.08" 141 | 142 | #: src/qml/PlayerPage.qml:86 143 | msgctxt "@info" 144 | msgid "" 145 | "Not all video codecs are installed. Video playback support may be less " 146 | "reliable than expected.\n" 147 | "Please consult your distribution on how to install all possible codecs." 148 | msgstr "" 149 | "没有安装全部视频编解码器,这可能影响视频播放支持的可靠性。 \n" 150 | "请向您的发行版咨询如何安装所有可用的编解码器。" 151 | 152 | #: src/qml/PlayerPage.qml:94 153 | msgctxt "@action:button %1 is the name of a distribution" 154 | msgid "%1 Support" 155 | msgstr "%1 支持" 156 | 157 | #: src/qml/PlayerPage.qml:330 158 | msgctxt "" 159 | "@info overlay on top of video. %1 is the amount of time played %2 is the " 160 | "total duration of the video" 161 | msgid "%1 / %2" 162 | msgstr "%1 / %2" 163 | 164 | #: src/qml/VolumeButton.qml:31 165 | msgctxt "@action:button open volume slider popup" 166 | msgid "Show volume controls" 167 | msgstr "显示音量控制" 168 | 169 | #: src/qml/WelcomeView.qml:16 170 | msgctxt "@title" 171 | msgid "Welcome to Dragon Player" 172 | msgstr "欢迎使用 Dragon Player 播放器" 173 | 174 | #: src/qml/WelcomeView.qml:17 175 | msgctxt "@info" 176 | msgid "Dragon Player is a simple video player. Open a video to get started:" 177 | msgstr "Dragon Player 是一款简单易用的播放器。打开任意视频即可使用:" 178 | 179 | #: src/qml/WelcomeView.qml:20 180 | msgctxt "@action:button" 181 | msgid "Open Video File or Network Stream" 182 | msgstr "打开视频文件或网络流媒体" 183 | -------------------------------------------------------------------------------- /po/zh_TW/dragonplayer.po: -------------------------------------------------------------------------------- 1 | # translation of dragonplayer.po to Chinese Traditional 2 | # Copyright (C) YEAR This_file_is_part_of_KDE 3 | # This file is distributed under the same license as the PACKAGE package. 4 | # 5 | # Franklin Weng , 2008, 2010, 2011, 2012, 2013, 2015. 6 | # pan93412 , 2018, 2019, 2020. 7 | # Franklin Weng , 2008. 8 | # Frank Weng (a.k.a. Franklin) , 2008, 2009. 9 | # SPDX-FileCopyrightText: 2023, 2024, 2025 Kisaragi Hiu 10 | msgid "" 11 | msgstr "" 12 | "Project-Id-Version: dragonplayer\n" 13 | "Report-Msgid-Bugs-To: https://bugs.kde.org\n" 14 | "POT-Creation-Date: 2025-04-30 00:41+0000\n" 15 | "PO-Revision-Date: 2025-04-19 15:25+0900\n" 16 | "Last-Translator: Kisaragi Hiu \n" 17 | "Language-Team: Traditional Chinese \n" 18 | "Language: zh_TW\n" 19 | "MIME-Version: 1.0\n" 20 | "Content-Type: text/plain; charset=UTF-8\n" 21 | "Content-Transfer-Encoding: 8bit\n" 22 | "X-Generator: Lokalize 24.12.3\n" 23 | "Plural-Forms: nplurals=1; plural=0;\n" 24 | 25 | #, kde-format 26 | msgctxt "NAME OF TRANSLATORS" 27 | msgid "Your names" 28 | msgstr "Franklin Weng, Kisaragi Hiu" 29 | 30 | #, kde-format 31 | msgctxt "EMAIL OF TRANSLATORS" 32 | msgid "Your emails" 33 | msgstr "franklin@goodhorse.idv.tw, mail@kisaragi-hiu.com" 34 | 35 | #: src/main.cpp:24 36 | #, kde-format 37 | msgid "Dragon Player" 38 | msgstr "神龍播放器" 39 | 40 | #: src/main.cpp:26 41 | #, kde-format 42 | msgid "A video player that has a usability focus" 43 | msgstr "一個好用的影像播放器" 44 | 45 | #: src/main.cpp:28 46 | #, kde-format 47 | msgid "" 48 | "Copyright 2006, Max Howell\n" 49 | "Copyright 2007, Ian Monroe\n" 50 | "Copyright 2022 Harald Sitter" 51 | msgstr "" 52 | "Copyright 2006, Max Howell\n" 53 | "Copyright 2007, Ian Monroe\n" 54 | "Copyright 2022 Harald Sitter" 55 | 56 | #: src/qml/ControlsBar.qml:129 57 | msgctxt "@action:button" 58 | msgid "Application Menu" 59 | msgstr "應用程式選單" 60 | 61 | #: src/qml/ControlsBar.qml:160 62 | msgctxt "@action:button stop playback" 63 | msgid "Stop" 64 | msgstr "停止" 65 | 66 | #: src/qml/ControlsBar.qml:168 67 | msgctxt "@action:button" 68 | msgid "Unmute" 69 | msgstr "解除靜音" 70 | 71 | #: src/qml/ControlsBar.qml:168 72 | msgctxt "@action:button" 73 | msgid "Mute" 74 | msgstr "靜音" 75 | 76 | #: src/qml/ControlsBar.qml:178 77 | msgctxt "@action:button video subtitle" 78 | msgid "Subtitles" 79 | msgstr "字幕" 80 | 81 | #: src/qml/ControlsBar.qml:185 82 | msgctxt "@action:button selector for no subtitle" 83 | msgid "None" 84 | msgstr "無" 85 | 86 | #: src/qml/ControlsBar.qml:195 87 | msgctxt "" 88 | "@action:button subtitle selector %1 is usually a language (e.g. chinese) and " 89 | "%2 is usually a subtitle (e.g. Traditional)" 90 | msgid "%1 [%2]" 91 | msgstr "%1 [%2]" 92 | 93 | #: src/qml/ControlsBar.qml:212 94 | msgctxt "@action:button track selector" 95 | msgid "Audio Track" 96 | msgstr "音效軌" 97 | 98 | #: src/qml/ControlsBar.qml:227 99 | msgctxt "@action:button track selector" 100 | msgid "Video Track" 101 | msgstr "影片軌" 102 | 103 | #: src/qml/ControlsBar.qml:245 104 | msgctxt "@action opens about app page" 105 | msgid "About" 106 | msgstr "關於" 107 | 108 | #: src/qml/Main.qml:53 109 | msgctxt "@action:button open file dialog" 110 | msgid "Open…" 111 | msgstr "開啟…" 112 | 113 | #: src/qml/PlayerPage.qml:38 114 | msgctxt "@action:button" 115 | msgid "Play" 116 | msgstr "播放" 117 | 118 | #: src/qml/PlayerPage.qml:38 119 | msgctxt "@action:button" 120 | msgid "Pause" 121 | msgstr "暫停" 122 | 123 | #: src/qml/PlayerPage.qml:46 124 | msgctxt "@action:button" 125 | msgid "Exit Fullscreen" 126 | msgstr "離開全螢幕" 127 | 128 | #: src/qml/PlayerPage.qml:46 129 | msgctxt "@action:button" 130 | msgid "Enter Fullscreen" 131 | msgstr "進入全螢幕" 132 | 133 | #: src/qml/PlayerPage.qml:79 134 | msgctxt "@info" 135 | msgid "" 136 | "Not all video codecs are installed. Video playback support may be less " 137 | "reliable than expected.\n" 138 | "Please install ffmpeg-full by running:\n" 139 | "flatpak install org.freedesktop.Platform.ffmpeg-full//24.08" 141 | msgstr "" 142 | "有影片編碼器尚未安裝。影片播放支援可能會比預期的還要不好。\n" 143 | "請安裝 ffmpeg-full:\n" 144 | "flatpak install org.freedesktop.Platform.ffmpeg-full//24.08" 146 | 147 | #: src/qml/PlayerPage.qml:86 148 | msgctxt "@info" 149 | msgid "" 150 | "Not all video codecs are installed. Video playback support may be less " 151 | "reliable than expected.\n" 152 | "Please consult your distribution on how to install all possible codecs." 153 | msgstr "" 154 | "有影片編碼器尚未安裝。影片播放支援可能會比預期的還要不好。\n" 155 | "請查看您的發行版的說明以安裝所有可用的編碼器。" 156 | 157 | #: src/qml/PlayerPage.qml:94 158 | msgctxt "@action:button %1 is the name of a distribution" 159 | msgid "%1 Support" 160 | msgstr "%1 支援" 161 | 162 | #: src/qml/PlayerPage.qml:330 163 | msgctxt "" 164 | "@info overlay on top of video. %1 is the amount of time played %2 is the " 165 | "total duration of the video" 166 | msgid "%1 / %2" 167 | msgstr "%1 / %2" 168 | 169 | #: src/qml/VolumeButton.qml:31 170 | msgctxt "@action:button open volume slider popup" 171 | msgid "Show volume controls" 172 | msgstr "顯示音量控制" 173 | 174 | #: src/qml/WelcomeView.qml:16 175 | msgctxt "@title" 176 | msgid "Welcome to Dragon Player" 177 | msgstr "歡迎使用神龍播放器" 178 | 179 | #: src/qml/WelcomeView.qml:17 180 | msgctxt "@info" 181 | msgid "Dragon Player is a simple video player. Open a video to get started:" 182 | msgstr "神龍播放器是一個簡潔的影片播放器。開啟影片來開始使用吧!" 183 | 184 | #: src/qml/WelcomeView.qml:20 185 | msgctxt "@action:button" 186 | msgid "Open Video File or Network Stream" 187 | msgstr "開啟影片檔或網路串流" 188 | 189 | #, fuzzy 190 | #~| msgctxt "@option:check Volume of sound output" 191 | #~| msgid "Volume" 192 | #~ msgctxt "@action:button open volume slider popup" 193 | #~ msgid "Volume" 194 | #~ msgstr "音量" 195 | 196 | #~ msgctxt "@title:menu" 197 | #~ msgid "&Play" 198 | #~ msgstr "播放(&P)" 199 | 200 | #~ msgctxt "@title:menu" 201 | #~ msgid "Play Media" 202 | #~ msgstr "播放媒體" 203 | 204 | #~ msgctxt "@title:menu" 205 | #~ msgid "&Settings" 206 | #~ msgstr "設定(&S)" 207 | 208 | #~ msgid "Main Toolbar" 209 | #~ msgstr "主工具列" 210 | 211 | #~ msgctxt "@action:button" 212 | #~ msgid "Preferred Scale" 213 | #~ msgstr "預設調整大小" 214 | 215 | #~ msgctxt "@action:button" 216 | #~ msgid "Scale 100%" 217 | #~ msgstr "調整至 100%" 218 | 219 | #~ msgid "Adjust video scale?" 220 | #~ msgstr "要調整影像大小嗎?" 221 | 222 | #~ msgctxt "" 223 | #~ "%1 is the disc type, %2 is the name of the disc that the user can choose. " 224 | #~ "Ex. 'DVD: OfficeSpace'" 225 | #~ msgid "%1: %2" 226 | #~ msgstr "%1:%2" 227 | 228 | #~ msgctxt "Digital Versatile Disc, but keep it short" 229 | #~ msgid "DVD" 230 | #~ msgstr "DVD" 231 | 232 | #~ msgid "Data CD" 233 | #~ msgstr "資料光碟" 234 | 235 | #~ msgctxt "@title:window" 236 | #~ msgid "Select a Disc" 237 | #~ msgstr "選擇光碟" 238 | 239 | #~ msgid "Select a disc to play." 240 | #~ msgstr "選擇要播放的碟片。" 241 | 242 | #~ msgid "Improvements and polish" 243 | #~ msgstr "各種改進" 244 | 245 | #~ msgid "Creator of Phonon" 246 | #~ msgstr "Phonon 建立者" 247 | 248 | #~ msgid "Dragon Player icon" 249 | #~ msgstr "神龍播放器圖示" 250 | 251 | #~ msgid "Handbook" 252 | #~ msgstr "手冊" 253 | 254 | #~ msgid "Great reference code" 255 | #~ msgstr "讓我們參考程式碼" 256 | 257 | #~ msgid "Yatta happened to be the only video on my laptop to test with. :)" 258 | #~ msgstr "剛好是我筆記型電腦中唯一可以測試的影像檔 :)" 259 | 260 | #~ msgid "MPRIS v2 support" 261 | #~ msgstr "MPRIS v2 支援" 262 | 263 | #~ msgid "Port to KF5/Plasma 5" 264 | #~ msgstr "移植到 KF5/Plasma 5" 265 | 266 | #~ msgid "Play DVD Video" 267 | #~ msgstr "播放 DVD" 268 | 269 | #~ msgid "Play 'URL'" 270 | #~ msgstr "播放網址" 271 | 272 | #~ msgctxt "@title:menu" 273 | #~ msgid "Aspect &Ratio" 274 | #~ msgstr "外觀比例(&R)" 275 | 276 | #~ msgctxt "@title:menu" 277 | #~ msgid "&Audio Channels" 278 | #~ msgstr "聲道(&A)" 279 | 280 | #~ msgctxt "@option:radio aspect ratio" 281 | #~ msgid "Determine &Automatically" 282 | #~ msgstr "自動決定(&A)" 283 | 284 | #~ msgctxt "@option:radio aspect ratio" 285 | #~ msgid "&4:3" 286 | #~ msgstr "4:3(&4)" 287 | 288 | #~ msgctxt "@option:radio aspect ratio" 289 | #~ msgid "Ana&morphic (16:9)" 290 | #~ msgstr "16:9(&M)" 291 | 292 | #~ msgctxt "@option:radio aspect ratio" 293 | #~ msgid "&Window Size" 294 | #~ msgstr "視窗大小(&W)" 295 | 296 | #~ msgid "" 297 | #~ "Phonon could not be successfully initialized. Dragon Player will now " 298 | #~ "exit." 299 | #~ msgstr "Phonon 無法成功初始化。神龍播放器將離開。" 300 | 301 | #~ msgctxt "@action" 302 | #~ msgid "Play File…" 303 | #~ msgstr "播放檔案…" 304 | 305 | #~ msgctxt "@info:tooltip" 306 | #~ msgid "Open a media file for playback" 307 | #~ msgstr "開啟媒體檔案來進行播放" 308 | 309 | #~ msgctxt "@action" 310 | #~ msgid "Play Stream…" 311 | #~ msgstr "播放串流…" 312 | 313 | #~ msgctxt "@action" 314 | #~ msgid "Play Disc" 315 | #~ msgstr "播放光碟" 316 | 317 | #~ msgctxt "@action" 318 | #~ msgid "Increase Volume" 319 | #~ msgstr "提高音量" 320 | 321 | #~ msgctxt "@action" 322 | #~ msgid "Decrease Volume" 323 | #~ msgstr "降低音量" 324 | 325 | #~ msgctxt "@action" 326 | #~ msgid "Reset Video Scale" 327 | #~ msgstr "重設影像大小" 328 | 329 | #~ msgctxt "@action" 330 | #~ msgid "Menu Toggle" 331 | #~ msgstr "選單切換" 332 | 333 | #~ msgid "Position Slider" 334 | #~ msgstr "位置滑動器" 335 | 336 | #~ msgctxt "@option:check" 337 | #~ msgid "Video Settings" 338 | #~ msgstr "影像設定" 339 | 340 | #~ msgctxt "" 341 | #~ "@option:check Whether only one instance of dragon can be started and will " 342 | #~ "be reused when the user tries to play another file." 343 | #~ msgid "One Instance Only" 344 | #~ msgstr "只有一個實體" 345 | 346 | #~ msgctxt "@action previous chapter" 347 | #~ msgid "Previous" 348 | #~ msgstr "上一個" 349 | 350 | #~ msgctxt "@action next chapter" 351 | #~ msgid "Next" 352 | #~ msgstr "下一個" 353 | 354 | #~ msgctxt "@action" 355 | #~ msgid "Return 10% Back" 356 | #~ msgstr "往回 10%" 357 | 358 | #~ msgctxt "@action" 359 | #~ msgid "Go 10% Forward" 360 | #~ msgstr "往前 10%" 361 | 362 | #~ msgctxt "@action" 363 | #~ msgid "Return 10 Seconds Back" 364 | #~ msgstr "往回 10 秒" 365 | 366 | #~ msgctxt "@action" 367 | #~ msgid "Go 10 Seconds Forward" 368 | #~ msgstr "往前 10 秒" 369 | 370 | #~ msgctxt "@option:check Mute the sound output" 371 | #~ msgid "Mute" 372 | #~ msgstr "靜音" 373 | 374 | #~ msgid "Dragon Player was asked to open an empty URL; it cannot." 375 | #~ msgstr "神龍播放器無法開啟一個空的網址。" 376 | 377 | #~ msgctxt "@title:window" 378 | #~ msgid "Select File to Play" 379 | #~ msgstr "選擇要播放的檔案" 380 | 381 | #~ msgctxt "@title:window" 382 | #~ msgid "Stream to Play" 383 | #~ msgstr "選擇要播放的串流" 384 | 385 | #~ msgctxt "@label:textbox" 386 | #~ msgid "Stream:" 387 | #~ msgstr "串流:" 388 | 389 | #~ msgid "Sorry, no media was found in the drop" 390 | #~ msgstr "抱歉,找不到媒體" 391 | 392 | #~ msgctxt "Notification inhibition reason" 393 | #~ msgid "Playing a video" 394 | #~ msgstr "正在播放影片" 395 | 396 | #~ msgid "No media loaded" 397 | #~ msgstr "沒有載入媒體" 398 | 399 | #~ msgid "Paused" 400 | #~ msgstr "已暫停" 401 | 402 | #~ msgid "The file is not a playlist" 403 | #~ msgstr "此檔案不是一個播放清單" 404 | 405 | #~ msgid "Dragon Player could not download the remote playlist: %1" 406 | #~ msgstr "神龍播放器無法下載遠端的播放清單:%1" 407 | 408 | #~ msgid "" 409 | #~ "The playlist, '%1', could not be interpreted. Perhaps it is " 410 | #~ "empty?" 411 | #~ msgstr "此播放清單 %1 無法被解譯。檔案可能是空的。" 412 | 413 | #~ msgid "Dragon Player could not open the file: %1" 414 | #~ msgstr "神龍播放器無法開啟檔案:%1" 415 | 416 | #~ msgid "Track %1/%2" 417 | #~ msgstr "音軌 %1/%2" 418 | 419 | #~ msgctxt "@label:slider" 420 | #~ msgid "Brightness:" 421 | #~ msgstr "亮度:" 422 | 423 | #~ msgctxt "@label:slider" 424 | #~ msgid "Contrast:" 425 | #~ msgstr "對比:" 426 | 427 | #~ msgctxt "@label:slider" 428 | #~ msgid "Hue:" 429 | #~ msgstr "色調:" 430 | 431 | #~ msgctxt "@label:slider" 432 | #~ msgid "Saturation:" 433 | #~ msgstr "飽和度:" 434 | 435 | #~ msgctxt "@action:button" 436 | #~ msgid "Restore Defaults" 437 | #~ msgstr "回復預設值" 438 | 439 | #~ msgctxt "@action:button" 440 | #~ msgid "Close" 441 | #~ msgstr "關閉" 442 | 443 | #~ msgctxt "@option:radio" 444 | #~ msgid "&DVD Subtitle Selection" 445 | #~ msgstr "DVD 字幕選擇(&D)" 446 | 447 | #~ msgctxt "@option:radio audio language" 448 | #~ msgid "&Auto" 449 | #~ msgstr "自動(&A)" 450 | 451 | #~ msgctxt "@action" 452 | #~ msgid "Play &Media..." 453 | #~ msgstr "播放媒體(&M)..." 454 | 455 | #~ msgid "What media would you like to play?" 456 | #~ msgstr "您要播放哪個媒體?" 457 | 458 | #~ msgctxt "@action:button" 459 | #~ msgid "Play File..." 460 | #~ msgstr "播放檔案..." 461 | 462 | #~ msgctxt "@action Copy the URL of the selected multimedia" 463 | #~ msgid "Copy URL" 464 | #~ msgstr "複製連結" 465 | 466 | #~ msgctxt "@action" 467 | #~ msgid "Clear List" 468 | #~ msgstr "清除清單" 469 | 470 | #~ msgctxt "@action" 471 | #~ msgid "Remove Entry" 472 | #~ msgstr "移除項目" 473 | 474 | #~ msgid "" 475 | #~ "This file could not be found. Would you like to remove it from the " 476 | #~ "playlist?" 477 | #~ msgstr "找不到檔案。您要將它從播放清單中移除嗎?" 478 | 479 | #~ msgctxt "@title:window" 480 | #~ msgid "File not found" 481 | #~ msgstr "找不到檔案" 482 | 483 | #~ msgid "" 484 | #~ "IRC:\n" 485 | #~ "irc.freenode.net #dragonplayer\n" 486 | #~ "\n" 487 | #~ "Feedback:\n" 488 | #~ "imonroe@kde.org" 489 | #~ msgstr "" 490 | #~ "IRC 上的討論區:\n" 491 | #~ "irc.freenode.net #dragonplayer\n" 492 | #~ "\n" 493 | #~ "意見回饋:\n" 494 | #~ "imonroe@kde.org" 495 | -------------------------------------------------------------------------------- /snapcraft.yaml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2024-2025 Scarlett Moore 2 | # 3 | # SPDX-License-Identifier: CC0-1.0 4 | --- 5 | name: dragon 6 | confinement: strict 7 | grade: stable 8 | base: core24 9 | adopt-info: dragon 10 | apps: 11 | dragon: 12 | extensions: 13 | - kde-neon-6 14 | common-id: org.kde.dragonplayer.desktop 15 | desktop: usr/share/applications/org.kde.dragonplayer.desktop 16 | command: usr/bin/dragon 17 | slots: 18 | - mpris 19 | plugs: 20 | - home 21 | - pulseaudio 22 | - browser-support 23 | - audio-record 24 | environment: 25 | ALSA_CONFIG_PATH: "$SNAP/kf6/etc/asound.conf" 26 | QTWEBENGINE_DISABLE_SANDBOX: 1 27 | layout: 28 | /usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/alsa-lib: 29 | bind: $SNAP/usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/alsa-lib 30 | slots: 31 | session-dbus-interface: 32 | interface: dbus 33 | name: org.kde.dragonplayer 34 | bus: session 35 | mpris-dragonplayer: 36 | interface: dbus 37 | name: org.mpris.MediaPlayer2.dragonplayer 38 | bus: session 39 | parts: 40 | dragon: 41 | parse-info: 42 | - usr/share/metainfo/org.kde.dragonplayer.appdata.xml 43 | plugin: cmake 44 | source: . 45 | source-type: local 46 | build-packages: 47 | - libpulse0 48 | stage-packages: 49 | - libasound2 50 | - libasound2-plugins 51 | - libasound2-data 52 | - libpulse0 53 | cmake-parameters: 54 | - -DCMAKE_INSTALL_PREFIX=/usr 55 | - -DCMAKE_BUILD_TYPE=Release 56 | - -DQT_MAJOR_VERSION=6 57 | - -DBUILD_WITH_QT6=ON 58 | - -DBUILD_TESTING=OFF 59 | - -DCMAKE_INSTALL_SYSCONFDIR=/etc 60 | - -DCMAKE_INSTALL_LOCALSTATEDIR=/var 61 | - -DCMAKE_EXPORT_NO_PACKAGE_REGISTRY=ON 62 | - -DCMAKE_FIND_USE_PACKAGE_REGISTRY=OFF 63 | - -DCMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY=ON 64 | - -DCMAKE_INSTALL_RUNSTATEDIR=/run 65 | - -DCMAKE_SKIP_INSTALL_ALL_DEPENDENCY=ON 66 | - -DCMAKE_VERBOSE_MAKEFILE=ON 67 | - -DCMAKE_INSTALL_LIBDIR=lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR 68 | - --log-level=STATUS 69 | - -DCMAKE_LIBRARY_PATH=lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR 70 | build-environment: &build-environment 71 | - LD_LIBRARY_PATH: > 72 | "/snap/mesa-2404/current/usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR:$CRAFT_STAGE/usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR:/snap/kde-qt6-core24-sdk/current/usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/libproxy:$LD_LIBRARY_PATH" 73 | prime: 74 | - -usr/lib/*/cmake/* 75 | - -usr/include/* 76 | - -usr/share/ECM/* 77 | - -usr/share/man/* 78 | - -usr/bin/X11 79 | - -usr/lib/gcc/$CRAFT_ARCH_TRIPLET/6.0.0 80 | - -usr/lib/aspell/* 81 | - -usr/share/lintian 82 | gpu-2404: 83 | after: [dragon] 84 | source: https://github.com/canonical/gpu-snap.git 85 | plugin: dump 86 | override-prime: | 87 | craftctl default 88 | ${CRAFT_PART_SRC}/bin/gpu-2404-cleanup mesa-2404 89 | prime: 90 | - bin/gpu-2404-wrapper 91 | cleanup: 92 | after: 93 | - dragon 94 | plugin: nil 95 | build-snaps: 96 | - core24 97 | - kf6-core24 98 | override-prime: | 99 | set -eux 100 | for snap in "core24" "kf6-core24"; do 101 | cd "/snap/$snap/current" && find . -type f,l -exec rm -rf "${CRAFT_PRIME}/{}" \; 102 | done 103 | -------------------------------------------------------------------------------- /src/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # SPDX-License-Identifier: BSD-2-Clause 2 | # SPDX-FileCopyrightText: 2022 Harald Sitter 3 | 4 | include(ECMSetupVersion) 5 | ecm_setup_version(${PROJECT_VERSION} 6 | VARIABLE_PREFIX DRAGON 7 | VERSION_HEADER version.h) 8 | 9 | ecm_add_qml_module(dragonmodule URI org.kde.dragon VERSION 1.0 GENERATE_PLUGIN_SOURCE) 10 | ecm_target_qml_sources(dragonmodule 11 | SOURCES 12 | qml/AboutPage.qml 13 | qml/ControlsBar.qml 14 | qml/IconToolButton.qml 15 | qml/Main.qml 16 | qml/OverlayPopup.qml 17 | qml/PlayerPage.qml 18 | qml/VolumeButton.qml 19 | qml/WelcomeView.qml 20 | ) 21 | target_sources(dragonmodule 22 | PRIVATE 23 | mpris2/mediaplayer2.cpp 24 | mpris2/mediaplayer2player.cpp 25 | mpris2/mpris2.cpp 26 | fileopen.cpp 27 | sandbox.cpp) 28 | target_link_libraries(dragonmodule 29 | PRIVATE 30 | Qt6::Core 31 | KF6::KIOCore 32 | KF6::I18n 33 | KF6::Service 34 | KF6::WindowSystem 35 | Qt6::DBus 36 | Qt6::Qml 37 | Qt6::Quick 38 | Qt6::Multimedia 39 | PkgConfig::libavcodec) 40 | # Set mpris2 as include dir so the qml plugin source can find it 41 | target_include_directories(dragonmodule PRIVATE "$") 42 | ecm_finalize_qml_module(dragonmodule DESTINATION ${KDE_INSTALL_QMLDIR}) 43 | 44 | add_executable(dragon main.cpp) 45 | target_link_libraries(dragon 46 | Qt6::Core 47 | Qt6::Gui 48 | KF6::CoreAddons 49 | KF6::I18n 50 | KF6::I18nQml 51 | KF6::Crash 52 | Qt6::Qml 53 | Qt6::Widgets 54 | ) 55 | install(TARGETS dragon DESTINATION ${KDE_INSTALL_TARGETS_DEFAULT_ARGS}) 56 | -------------------------------------------------------------------------------- /src/dragon.h: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 2 | // SPDX-FileCopyrightText: 2023 Harald Sitter 3 | 4 | #pragma once 5 | 6 | #include 7 | 8 | #include "version.h" 9 | 10 | namespace Dragon 11 | { 12 | constexpr auto desktopFileName = QLatin1String("org.kde.dragonplayer"); 13 | constexpr auto version = QLatin1String(DRAGON_VERSION_STRING); 14 | } // namespace Dragon 15 | -------------------------------------------------------------------------------- /src/fileopen.cpp: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 2 | // SPDX-FileCopyrightText: 2025 Harald Sitter 3 | 4 | #include "fileopen.h" 5 | 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | 13 | using namespace Qt::StringLiterals; 14 | 15 | void FileOpen::open(QWindow *window) 16 | { 17 | auto wayland = KWaylandExtras::self(); 18 | connect( 19 | wayland, 20 | &KWaylandExtras::windowExported, 21 | this, 22 | [this, window](QWindow *exportedWindow, const QString &handle) { 23 | if (exportedWindow != window) { 24 | // not our event 25 | return; 26 | } 27 | openInternal(handle); 28 | }, 29 | Qt::SingleShotConnection); 30 | wayland->exportWindow(window); 31 | } 32 | 33 | void FileOpen::gotResponse(uint response, const QVariantMap &results) 34 | { 35 | if (response != 0) { 36 | qWarning() << "Failed to open portal dialog:" << response; 37 | Q_EMIT rejected(); 38 | return; 39 | } 40 | 41 | if (results.contains("uris"_L1)) { 42 | m_selectedUrl = QUrl(results.value("uris"_L1).toStringList().at(0)); 43 | // Per documentation the uris are always file:// 44 | auto dir = QFileInfo(m_selectedUrl.path()).path(); 45 | if (!dir.isEmpty()) { 46 | m_currentFolder = dir; 47 | Q_EMIT currentFolderChanged(); 48 | } 49 | } else { 50 | qWarning() << "Failed to open portal dialog: no uris"; 51 | } 52 | 53 | Q_EMIT accepted(); 54 | } 55 | 56 | void FileOpen::openInternal(const QString &windowHandle) 57 | { 58 | QDBusMessage message = QDBusMessage::createMethodCall(u"org.freedesktop.portal.Desktop"_s, 59 | u"/org/freedesktop/portal/desktop"_s, 60 | u"org.freedesktop.portal.FileChooser"_s, 61 | u"OpenFile"_s); 62 | QVariantMap options; 63 | 64 | options.insert("modal"_L1, true); 65 | options.insert("multiple"_L1, false); 66 | options.insert("directory"_L1, false); 67 | options.insert("handle_token"_L1, QStringLiteral("dragon%1").arg(QRandomGenerator::global()->generate())); 68 | if (!m_currentFolder.isEmpty()) { 69 | options.insert("current_folder"_L1, QFile::encodeName(m_currentFolder).append('\0')); 70 | } 71 | 72 | message << windowHandle; 73 | message << /* title = */ QString() << options; 74 | 75 | QDBusPendingCall pendingCall = QDBusConnection::sessionBus().asyncCall(message); 76 | auto watcher = new QDBusPendingCallWatcher(pendingCall); 77 | connect(watcher, &QDBusPendingCallWatcher::finished, this, [this](QDBusPendingCallWatcher *watcher) { 78 | watcher->deleteLater(); 79 | QDBusPendingReply reply = *watcher; 80 | 81 | if (reply.isError()) { 82 | qWarning() << "Failed to open portal dialog:" << reply.error().message(); 83 | Q_EMIT rejected(); 84 | return; 85 | } 86 | 87 | QDBusConnection::sessionBus() 88 | .connect(QString(), reply.value().path(), "org.freedesktop.portal.Request"_L1, "Response"_L1, this, SLOT(gotResponse(uint, QVariantMap))); 89 | }); 90 | } 91 | -------------------------------------------------------------------------------- /src/fileopen.h: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 2 | // SPDX-FileCopyrightText: 2025 Harald Sitter 3 | 4 | #pragma once 5 | 6 | #include 7 | 8 | #include 9 | 10 | class QWindow; 11 | 12 | class FileOpen : public QObject 13 | { 14 | Q_OBJECT 15 | QML_ELEMENT 16 | Q_PROPERTY(QString currentFolder MEMBER m_currentFolder NOTIFY currentFolderChanged) 17 | Q_PROPERTY(QUrl selectedUrl MEMBER m_selectedUrl NOTIFY accepted) 18 | public: 19 | using QObject::QObject; 20 | 21 | public Q_SLOTS: 22 | void open(QWindow *window); 23 | 24 | private Q_SLOTS: 25 | void gotResponse(uint response, const QVariantMap &results); 26 | 27 | Q_SIGNALS: 28 | void accepted(); 29 | void rejected(); 30 | void currentFolderChanged(); 31 | 32 | private: 33 | void openInternal(const QString &windowHandle); 34 | QUrl m_selectedUrl; 35 | QString m_currentFolder = QStandardPaths::standardLocations(QStandardPaths::MoviesLocation).at(0); 36 | }; 37 | -------------------------------------------------------------------------------- /src/main.cpp: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 2 | // SPDX-FileCopyrightText: 2021 Harald Sitter 3 | 4 | #include 5 | #include 6 | #include 7 | #include 8 | 9 | #include 10 | #include 11 | #include 12 | #include 13 | 14 | #include "dragon.h" 15 | 16 | using namespace Qt::StringLiterals; 17 | 18 | int main(int argc, char **argv) 19 | { 20 | // Needs to be a QApplication rather than QGuiApplication so filedialog actually uses kio. 21 | QApplication app(argc, argv); 22 | 23 | KAboutData aboutData(u"dragonplayer"_s, 24 | i18n("Dragon Player"), 25 | Dragon::version, 26 | i18n("A video player that has a usability focus"), 27 | KAboutLicense::GPL_V2, 28 | i18n("Copyright 2006, Max Howell\nCopyright 2007, Ian Monroe\nCopyright 2022 Harald Sitter"), 29 | QString() /* otherText */, 30 | u"https://commits.kde.org/dragon"_s); 31 | aboutData.setDesktopFileName(Dragon::desktopFileName); 32 | 33 | KAboutData::setApplicationData(aboutData); 34 | KCrash::initialize(); 35 | 36 | auto engine = new QQmlApplicationEngine(&app); // on the heap for code similarity reasons with other projects, technically not necessary. 37 | KLocalization::setupLocalizedContext(engine); 38 | 39 | engine->loadFromModule("org.kde.dragon", "Main"); 40 | if (engine->rootObjects().isEmpty()) { 41 | qWarning() << "Failed to load QML code. Note prior errors!"; 42 | abort(); 43 | return -1; 44 | } 45 | 46 | return app.exec(); 47 | } 48 | -------------------------------------------------------------------------------- /src/mpris2/mediaplayer2.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | SPDX-FileCopyrightText: 2012 Eike Hein 3 | 4 | SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 5 | */ 6 | 7 | #include "mediaplayer2.h" 8 | #include "mpris2.h" 9 | 10 | #include 11 | #include 12 | #include 13 | 14 | using namespace Qt::StringLiterals; 15 | 16 | MediaPlayer2::MediaPlayer2(ActionSet actionSet, QObject *parent) 17 | : QDBusAbstractAdaptor(parent) 18 | , m_actionSet(actionSet) 19 | { 20 | connect(m_actionSet.fullscreen, &QAction::toggled, this, &MediaPlayer2::emitFullscreenChange); 21 | } 22 | 23 | MediaPlayer2::~MediaPlayer2() 24 | { 25 | } 26 | 27 | bool MediaPlayer2::CanQuit() const 28 | { 29 | return true; 30 | } 31 | 32 | void MediaPlayer2::Quit() const 33 | { 34 | m_actionSet.quit->trigger(); 35 | } 36 | 37 | bool MediaPlayer2::CanRaise() const 38 | { 39 | return true; 40 | } 41 | 42 | void MediaPlayer2::Raise() const 43 | { 44 | m_actionSet.raise->trigger(); 45 | } 46 | 47 | bool MediaPlayer2::Fullscreen() const 48 | { 49 | return m_actionSet.fullscreen->isChecked(); 50 | } 51 | 52 | void MediaPlayer2::setFullscreen(bool fullscreen) const 53 | { 54 | m_actionSet.fullscreen->setChecked(fullscreen); 55 | } 56 | 57 | void MediaPlayer2::emitFullscreenChange(bool fullscreen) const 58 | { 59 | const QVariantMap properties{ 60 | {QStringLiteral("Fullscreen"), fullscreen}, 61 | {QStringLiteral("CanSetFullscreen"), CanSetFullscreen()}, 62 | }; 63 | Mpris2::signalPropertiesChange(this, properties); 64 | } 65 | 66 | bool MediaPlayer2::CanSetFullscreen() const 67 | { 68 | return true; 69 | } 70 | 71 | bool MediaPlayer2::HasTrackList() const 72 | { 73 | return false; 74 | } 75 | 76 | QString MediaPlayer2::Identity() const 77 | { 78 | return KAboutData::applicationData().displayName(); 79 | } 80 | 81 | QString MediaPlayer2::DesktopEntry() const 82 | { 83 | return QStringLiteral("org.kde.dragonplayer"); 84 | } 85 | 86 | QStringList MediaPlayer2::SupportedUriSchemes() const 87 | { 88 | QStringList protocols; 89 | 90 | const auto allProtocols = KProtocolInfo::protocols(); 91 | for (const QString &protocol : allProtocols) { 92 | if (!KProtocolInfo::isHelperProtocol(protocol)) 93 | protocols << protocol; 94 | } 95 | 96 | return protocols; 97 | } 98 | 99 | QStringList MediaPlayer2::SupportedMimeTypes() const 100 | { 101 | KService::Ptr app = KService::serviceByDesktopName(DesktopEntry()); 102 | 103 | if (app) 104 | return app->mimeTypes(); 105 | 106 | return QStringList(); 107 | } 108 | 109 | #include "moc_mediaplayer2.cpp" 110 | -------------------------------------------------------------------------------- /src/mpris2/mediaplayer2.h: -------------------------------------------------------------------------------- 1 | /* 2 | SPDX-FileCopyrightText: 2012 Eike Hein 3 | 4 | SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 5 | */ 6 | 7 | #ifndef DRAGONPLAYER_MEDIAPLAYER2_H 8 | #define DRAGONPLAYER_MEDIAPLAYER2_H 9 | 10 | #include 11 | #include 12 | #include 13 | #include // Needed for automoc'ed cpp to compile 14 | #include 15 | #include 16 | 17 | struct ActionSet { 18 | QAction *fullscreen; 19 | QAction *quit; 20 | QAction *raise; 21 | }; 22 | 23 | class MediaPlayer2 : public QDBusAbstractAdaptor 24 | { 25 | Q_OBJECT 26 | Q_CLASSINFO("D-Bus Interface", "org.mpris.MediaPlayer2") // Docs: https://specifications.freedesktop.org/mpris-spec/latest/Media_Player.html 27 | 28 | Q_PROPERTY(bool CanQuit READ CanQuit) 29 | Q_PROPERTY(bool CanRaise READ CanRaise) 30 | 31 | Q_PROPERTY(bool Fullscreen READ Fullscreen WRITE setFullscreen) 32 | Q_PROPERTY(bool CanSetFullscreen READ CanSetFullscreen) 33 | 34 | Q_PROPERTY(bool HasTrackList READ HasTrackList) 35 | 36 | Q_PROPERTY(QString Identity READ Identity) 37 | Q_PROPERTY(QString DesktopEntry READ DesktopEntry) 38 | 39 | Q_PROPERTY(QStringList SupportedUriSchemes READ SupportedUriSchemes) 40 | Q_PROPERTY(QStringList SupportedMimeTypes READ SupportedMimeTypes) 41 | 42 | public: 43 | explicit MediaPlayer2(ActionSet actionSet, QObject *parent); 44 | ~MediaPlayer2() override; 45 | 46 | bool CanQuit() const; 47 | bool CanRaise() const; 48 | 49 | bool Fullscreen() const; 50 | void setFullscreen(bool fullscreen) const; 51 | bool CanSetFullscreen() const; 52 | 53 | bool HasTrackList() const; 54 | 55 | QString Identity() const; 56 | QString DesktopEntry() const; 57 | 58 | QStringList SupportedUriSchemes() const; 59 | QStringList SupportedMimeTypes() const; 60 | 61 | public Q_SLOTS: 62 | void Raise() const; 63 | void Quit() const; 64 | 65 | private Q_SLOTS: 66 | void emitFullscreenChange(bool fullscreen) const; 67 | 68 | private: 69 | ActionSet m_actionSet; 70 | }; 71 | 72 | #endif 73 | -------------------------------------------------------------------------------- /src/mpris2/mediaplayer2player.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | SPDX-FileCopyrightText: 2012 Eike Hein 3 | 4 | SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 5 | */ 6 | 7 | #include "mediaplayer2player.h" 8 | #include "mpris2.h" 9 | 10 | #include 11 | #include 12 | #include 13 | 14 | using namespace Qt::StringLiterals; 15 | 16 | static QByteArray makeTrackId(const QString &source) 17 | { 18 | return QByteArray("/org/kde/dragonplayer") + "/tid_" + QCryptographicHash::hash(source.toLocal8Bit(), QCryptographicHash::Sha1).toHex(); 19 | } 20 | 21 | MediaPlayer2Player::MediaPlayer2Player(QMediaPlayer *player, QObject *parent) 22 | : QDBusAbstractAdaptor(parent) 23 | , oldPos(0) 24 | , m_player(player) 25 | { 26 | connect(m_player, &QMediaPlayer::positionChanged, this, &MediaPlayer2Player::tick); 27 | connect(m_player, &QMediaPlayer::sourceChanged, this, &MediaPlayer2Player::currentSourceChanged); 28 | connect(m_player, &QMediaPlayer::metaDataChanged, this, &MediaPlayer2Player::emitMetadataChange); 29 | connect(m_player, &QMediaPlayer::playbackStateChanged, this, &MediaPlayer2Player::stateUpdated); 30 | connect(m_player, &QMediaPlayer::durationChanged, this, &MediaPlayer2Player::emitMetadataChange); 31 | connect(m_player, &QMediaPlayer::seekableChanged, this, &MediaPlayer2Player::seekableChanged); 32 | connect(m_player->audioOutput(), &QAudioOutput::volumeChanged, this, &MediaPlayer2Player::volumeChanged); 33 | } 34 | 35 | MediaPlayer2Player::~MediaPlayer2Player() = default; 36 | 37 | bool MediaPlayer2Player::CanGoNext() const 38 | { 39 | return false; 40 | } 41 | 42 | void MediaPlayer2Player::Next() const 43 | { 44 | qWarning() << "Next() not supported"; 45 | } 46 | 47 | bool MediaPlayer2Player::CanGoPrevious() const 48 | { 49 | return false; 50 | } 51 | 52 | void MediaPlayer2Player::Previous() const 53 | { 54 | qWarning() << "Previous() not supported"; 55 | } 56 | 57 | bool MediaPlayer2Player::CanPause() const 58 | { 59 | return m_player->error() == QMediaPlayer::NoError; 60 | } 61 | 62 | void MediaPlayer2Player::Pause() const 63 | { 64 | m_player->pause(); 65 | } 66 | 67 | void MediaPlayer2Player::PlayPause() const 68 | { 69 | if (m_player->playbackState() == QMediaPlayer::PlayingState) { 70 | m_player->pause(); 71 | } else { 72 | m_player->play(); 73 | } 74 | } 75 | 76 | void MediaPlayer2Player::Stop() const 77 | { 78 | m_player->stop(); 79 | } 80 | 81 | bool MediaPlayer2Player::CanPlay() const 82 | { 83 | return true; 84 | } 85 | 86 | void MediaPlayer2Player::Play() const 87 | { 88 | m_player->play(); 89 | } 90 | 91 | void MediaPlayer2Player::SetPosition(const QDBusObjectPath &TrackId, qlonglong Position) const 92 | { 93 | m_player->setPosition(Position); 94 | } 95 | 96 | void MediaPlayer2Player::OpenUri(QString Uri) const 97 | { 98 | m_player->setSource(QUrl(Uri)); 99 | } 100 | 101 | QString MediaPlayer2Player::PlaybackStatus() const 102 | { 103 | switch (m_player->playbackState()) { 104 | case QMediaPlayer::PlayingState: 105 | return QStringLiteral("Playing"); 106 | break; 107 | case QMediaPlayer::PausedState: 108 | return QStringLiteral("Paused"); 109 | break; 110 | case QMediaPlayer::StoppedState: 111 | return QStringLiteral("Stopped"); 112 | break; 113 | } 114 | return QStringLiteral("Stopped"); 115 | } 116 | 117 | QString MediaPlayer2Player::LoopStatus() const 118 | { 119 | return QStringLiteral("None"); 120 | } 121 | 122 | void MediaPlayer2Player::setLoopStatus(const QString &loopStatus) const 123 | { 124 | Q_UNUSED(loopStatus) 125 | } 126 | 127 | double MediaPlayer2Player::Rate() const 128 | { 129 | return 1.0; 130 | } 131 | 132 | void MediaPlayer2Player::setRate(double rate) const 133 | { 134 | Q_UNUSED(rate) 135 | } 136 | 137 | bool MediaPlayer2Player::Shuffle() const 138 | { 139 | return false; 140 | } 141 | 142 | void MediaPlayer2Player::setShuffle(bool shuffle) const 143 | { 144 | Q_UNUSED(shuffle) 145 | } 146 | 147 | QVariantMap MediaPlayer2Player::Metadata() const 148 | { 149 | QVariantMap metaData{ 150 | {QStringLiteral("mpris:trackid"), QVariant::fromValue(QDBusObjectPath(makeTrackId(m_player->source().toString()).constData()))}, 151 | {QStringLiteral("xesam:url"), QVariant::fromValue(m_player->source().toString())}, 152 | }; 153 | 154 | const auto data = m_player->metaData(); 155 | const auto keys = data.keys(); 156 | if (keys.contains(QMediaMetaData::Duration)) { 157 | metaData.insert(QStringLiteral("mpris:length"), data.value(QMediaMetaData::Duration).toLongLong()); 158 | } 159 | 160 | // Fields where we don't need to perform any type conversions 161 | const std::map trivialData = { 162 | {QMediaMetaData::AlbumArtist, u"xesam:artist"_s}, 163 | {QMediaMetaData::AlbumTitle, u"xesam:album"_s}, 164 | {QMediaMetaData::Genre, u"xesam:genre"_s}, 165 | {QMediaMetaData::TrackNumber, u"xesam:trackNumber"_s}, 166 | }; 167 | 168 | for (const auto &[key, value] : trivialData) { 169 | if (keys.contains(key)) { 170 | metaData.insert(value, data.value(key)); 171 | } 172 | } 173 | 174 | return metaData; 175 | } 176 | 177 | double MediaPlayer2Player::Volume() const 178 | { 179 | return m_player->audioOutput()->volume(); 180 | } 181 | 182 | void MediaPlayer2Player::setVolume(double volume) const 183 | { 184 | m_player->audioOutput()->setVolume(qBound(0.0F, float(volume), 1.0F)); 185 | } 186 | 187 | qlonglong MediaPlayer2Player::Position() const 188 | { 189 | return m_player->position(); 190 | } 191 | 192 | double MediaPlayer2Player::MinimumRate() const 193 | { 194 | return 1.0; 195 | } 196 | 197 | double MediaPlayer2Player::MaximumRate() const 198 | { 199 | return 1.0; 200 | } 201 | 202 | bool MediaPlayer2Player::CanSeek() const 203 | { 204 | return m_player->isSeekable(); 205 | } 206 | 207 | void MediaPlayer2Player::Seek(qlonglong Offset) const 208 | { 209 | m_player->setPosition(m_player->position() + Offset); 210 | } 211 | 212 | bool MediaPlayer2Player::CanControl() const 213 | { 214 | return true; 215 | } 216 | 217 | void MediaPlayer2Player::tick(qint64 newPos) 218 | { 219 | Q_EMIT Seeked(newPos); 220 | } 221 | 222 | void MediaPlayer2Player::emitMetadataChange() const 223 | { 224 | const QVariantMap properties{{QStringLiteral("Metadata"), Metadata()}}; 225 | Mpris2::signalPropertiesChange(this, properties); 226 | } 227 | 228 | void MediaPlayer2Player::currentSourceChanged() const 229 | { 230 | const QVariantMap properties{ 231 | {QStringLiteral("Metadata"), Metadata()}, 232 | {QStringLiteral("CanSeek"), CanSeek()}, 233 | }; 234 | Mpris2::signalPropertiesChange(this, properties); 235 | } 236 | 237 | void MediaPlayer2Player::stateUpdated() const 238 | { 239 | const QVariantMap properties{ 240 | {QStringLiteral("PlaybackStatus"), PlaybackStatus()}, 241 | {QStringLiteral("CanPause"), CanPause()}, 242 | }; 243 | Mpris2::signalPropertiesChange(this, properties); 244 | } 245 | 246 | void MediaPlayer2Player::totalTimeChanged() const 247 | { 248 | const QVariantMap properties{{QStringLiteral("Metadata"), Metadata()}}; 249 | Mpris2::signalPropertiesChange(this, properties); 250 | } 251 | 252 | void MediaPlayer2Player::seekableChanged(bool seekable) const 253 | { 254 | const QVariantMap properties{{QStringLiteral("CanSeek"), seekable}}; 255 | Mpris2::signalPropertiesChange(this, properties); 256 | } 257 | 258 | void MediaPlayer2Player::volumeChanged() const 259 | { 260 | const QVariantMap properties{{QStringLiteral("Volume"), Volume()}}; 261 | Mpris2::signalPropertiesChange(this, properties); 262 | } 263 | 264 | #include "moc_mediaplayer2player.cpp" 265 | -------------------------------------------------------------------------------- /src/mpris2/mediaplayer2player.h: -------------------------------------------------------------------------------- 1 | /* 2 | SPDX-FileCopyrightText: 2012 Eike Hein 3 | 4 | SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 5 | */ 6 | 7 | #ifndef DRAGONPLAYER_MEDIAPLAYER2PLAYER_H 8 | #define DRAGONPLAYER_MEDIAPLAYER2PLAYER_H 9 | 10 | #include 11 | #include 12 | #include 13 | #include 14 | 15 | class MediaPlayer2Player : public QDBusAbstractAdaptor 16 | { 17 | Q_OBJECT 18 | Q_CLASSINFO("D-Bus Interface", "org.mpris.MediaPlayer2.Player") // Docs: https://specifications.freedesktop.org/mpris-spec/latest/Player_Interface.html 19 | 20 | Q_PROPERTY(QString PlaybackStatus READ PlaybackStatus) 21 | Q_PROPERTY(QString LoopStatus READ LoopStatus WRITE setLoopStatus) 22 | Q_PROPERTY(double Rate READ Rate WRITE setRate) 23 | Q_PROPERTY(bool Shuffle READ Shuffle WRITE setShuffle) 24 | Q_PROPERTY(QVariantMap Metadata READ Metadata) 25 | Q_PROPERTY(double Volume READ Volume WRITE setVolume) 26 | Q_PROPERTY(qlonglong Position READ Position) 27 | Q_PROPERTY(double MinimumRate READ MinimumRate) 28 | Q_PROPERTY(double MaximumRate READ MaximumRate) 29 | Q_PROPERTY(bool CanGoNext READ CanGoNext) 30 | Q_PROPERTY(bool CanGoPrevious READ CanGoPrevious) 31 | Q_PROPERTY(bool CanPlay READ CanPlay) 32 | Q_PROPERTY(bool CanPause READ CanPause) 33 | Q_PROPERTY(bool CanSeek READ CanSeek) 34 | Q_PROPERTY(bool CanControl READ CanControl) 35 | 36 | public: 37 | explicit MediaPlayer2Player(QMediaPlayer *player, QObject *parent); 38 | ~MediaPlayer2Player() override; 39 | 40 | QString PlaybackStatus() const; 41 | QString LoopStatus() const; 42 | void setLoopStatus(const QString &loopStatus) const; 43 | double Rate() const; 44 | void setRate(double rate) const; 45 | bool Shuffle() const; 46 | void setShuffle(bool shuffle) const; 47 | QVariantMap Metadata() const; 48 | double Volume() const; 49 | void setVolume(double volume) const; 50 | qlonglong Position() const; 51 | double MinimumRate() const; 52 | double MaximumRate() const; 53 | bool CanGoNext() const; 54 | bool CanGoPrevious() const; 55 | bool CanPlay() const; 56 | bool CanPause() const; 57 | bool CanSeek() const; 58 | bool CanControl() const; 59 | 60 | Q_SIGNALS: 61 | void Seeked(qlonglong Position) const; 62 | 63 | public Q_SLOTS: 64 | void Next() const; 65 | void Previous() const; 66 | void Pause() const; 67 | void PlayPause() const; 68 | void Stop() const; 69 | void Play() const; 70 | void Seek(qlonglong Offset) const; 71 | void SetPosition(const QDBusObjectPath &TrackId, qlonglong Position) const; 72 | void OpenUri(QString Uri) const; 73 | 74 | private Q_SLOTS: 75 | void tick(qint64 newPos); 76 | void emitMetadataChange() const; 77 | void currentSourceChanged() const; 78 | void stateUpdated() const; 79 | void totalTimeChanged() const; 80 | void seekableChanged(bool seekable) const; 81 | void volumeChanged() const; 82 | 83 | private: 84 | qint64 oldPos; 85 | QMediaPlayer *m_player; 86 | }; 87 | 88 | #endif 89 | -------------------------------------------------------------------------------- /src/mpris2/mpris2.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | SPDX-FileCopyrightText: 2012 Eike Hein 3 | 4 | SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 5 | */ 6 | 7 | #include "mpris2.h" 8 | #include "mediaplayer2.h" 9 | #include "mediaplayer2player.h" 10 | 11 | #include 12 | #include 13 | #include 14 | #include 15 | 16 | #include 17 | 18 | using namespace Qt::StringLiterals; 19 | 20 | Mpris2::Mpris2(QObject *parent) 21 | : QObject(parent) 22 | , m_quitAction([] { 23 | auto action = std::make_unique(); 24 | action->setObjectName(u"quitAction"_s); 25 | return action; 26 | }()) 27 | , m_fullscreenAction([] { 28 | auto action = std::make_unique(); 29 | action->setObjectName(u"fullscreenAction"_s); 30 | return action; 31 | }()) 32 | , m_raiseAction([] { 33 | auto action = std::make_unique(); 34 | action->setObjectName(u"raiseAction"_s); 35 | return action; 36 | }()) 37 | { 38 | } 39 | 40 | Mpris2::~Mpris2() = default; 41 | 42 | void Mpris2::signalPropertiesChange(const QObject *adaptor, const QVariantMap &properties) 43 | { 44 | QDBusMessage msg = QDBusMessage::createSignal(QStringLiteral("/org/mpris/MediaPlayer2"), 45 | QStringLiteral("org.freedesktop.DBus.Properties"), 46 | QStringLiteral("PropertiesChanged")); 47 | 48 | msg << QString::fromUtf8(adaptor->metaObject()->classInfo(0).value()); 49 | msg << properties; 50 | msg << QStringList(); 51 | 52 | QDBusConnection::sessionBus().send(msg); 53 | } 54 | 55 | void Mpris2::componentComplete() 56 | { 57 | const QString mpris2Name = QStringLiteral("org.mpris.MediaPlayer2.dragonplayer"); 58 | 59 | bool success = QDBusConnection::sessionBus().registerService(mpris2Name); 60 | 61 | // If the above failed, it's likely because we're not the first instance 62 | // and the name is already taken. In that event the MPRIS2 spec wants the 63 | // following: 64 | if (!success) 65 | success = QDBusConnection::sessionBus().registerService(mpris2Name + QLatin1String(".instance") + QString::number(getpid())); 66 | 67 | if (success) { 68 | new MediaPlayer2({.fullscreen = m_fullscreenAction.get(), .quit = m_quitAction.get(), .raise = m_raiseAction.get()}, this); 69 | new MediaPlayer2Player(m_player, this); 70 | QDBusConnection::sessionBus().registerObject(QStringLiteral("/org/mpris/MediaPlayer2"), this, QDBusConnection::ExportAdaptors); 71 | } else { 72 | qWarning() << "Failed to register MPRIS2 service:" << QDBusConnection::sessionBus().lastError().message(); 73 | } 74 | } 75 | 76 | void Mpris2::classBegin() 77 | { 78 | } 79 | 80 | #include "moc_mpris2.cpp" 81 | -------------------------------------------------------------------------------- /src/mpris2/mpris2.h: -------------------------------------------------------------------------------- 1 | /* 2 | SPDX-FileCopyrightText: 2012 Eike Hein 3 | 4 | SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 5 | */ 6 | 7 | #ifndef DRAGONPLAYER_MPRIS2_H 8 | #define DRAGONPLAYER_MPRIS2_H 9 | 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | 17 | class Mpris2 : public QObject, public QQmlParserStatus 18 | { 19 | Q_OBJECT 20 | QML_ELEMENT 21 | QML_NAMED_ELEMENT(MPRIS2) 22 | 23 | Q_PROPERTY(QMediaPlayer *player MEMBER m_player NOTIFY playerChanged REQUIRED) 24 | 25 | Q_PROPERTY(QObject *quitAction READ quitAction CONSTANT) 26 | Q_PROPERTY(QObject *fullscreenAction READ fullscreenAction CONSTANT) 27 | Q_PROPERTY(QObject *raiseAction READ raiseAction CONSTANT) 28 | 29 | public: 30 | explicit Mpris2(QObject *parent = nullptr); 31 | ~Mpris2() override; 32 | Q_DISABLE_COPY_MOVE(Mpris2) 33 | 34 | void classBegin() override; 35 | void componentComplete() override; 36 | 37 | static void signalPropertiesChange(const QObject *adaptor, const QVariantMap &properties); 38 | 39 | [[nodiscard]] QAction *quitAction() const 40 | { 41 | return m_quitAction.get(); 42 | } 43 | 44 | [[nodiscard]] QAction *fullscreenAction() const 45 | { 46 | return m_fullscreenAction.get(); 47 | } 48 | 49 | [[nodiscard]] QAction *raiseAction() const 50 | { 51 | return m_raiseAction.get(); 52 | } 53 | 54 | Q_SIGNALS: 55 | void playerChanged(); 56 | 57 | private: 58 | QMediaPlayer *m_player = nullptr; 59 | std::unique_ptr m_quitAction; 60 | std::unique_ptr m_fullscreenAction; 61 | std::unique_ptr m_raiseAction; 62 | }; 63 | 64 | #endif 65 | -------------------------------------------------------------------------------- /src/qml/AboutPage.qml: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 2 | // SPDX-FileCopyrightText: 2022 Harald Sitter 3 | 4 | import QtQuick 5 | import org.kde.kirigami as Kirigami 6 | import org.kde.coreaddons as KCoreAddons 7 | 8 | Kirigami.AboutPage { 9 | aboutData: KCoreAddons.AboutData 10 | globalToolBarStyle: Kirigami.ApplicationHeaderStyle.ToolBar 11 | } 12 | -------------------------------------------------------------------------------- /src/qml/IconToolButton.qml: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 2 | // SPDX-FileCopyrightText: 2025 Harald Sitter 3 | 4 | import QtQuick 5 | import QtQuick.Controls as QQC2 6 | 7 | import org.kde.kirigami as Kirigami 8 | 9 | QQC2.ToolButton { 10 | display: QQC2.AbstractButton.IconOnly 11 | QQC2.ToolTip.delay: Kirigami.Units.toolTipDelay 12 | QQC2.ToolTip.visible: hovered 13 | && text.length > 0 14 | && display === QQC2.AbstractButton.IconOnly 15 | && !pressed 16 | QQC2.ToolTip.text: (action as Kirigami.Action)?.tooltip 17 | } 18 | -------------------------------------------------------------------------------- /src/qml/Main.qml: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 2 | // SPDX-FileCopyrightText: 2021-2022 Harald Sitter 3 | 4 | import QtQuick 5 | import QtQuick.Dialogs as Dialogs 6 | import QtCore as Core 7 | 8 | import org.kde.kirigami as Kirigami 9 | import org.kde.config as KConfig 10 | 11 | import org.kde.dragon 12 | 13 | Kirigami.ApplicationWindow { 14 | id: appWindow 15 | 16 | property PlayerPage playerPage: PlayerPage { 17 | fullscreenAction: mpris2.fullscreenAction 18 | } 19 | 20 | property MPRIS2 mpris2: MPRIS2 { 21 | id: mpris2 22 | player: appWindow.playerPage.player 23 | 24 | property Kirigami.Action kQuit: Kirigami.Action { 25 | fromQAction: mpris2.quitAction 26 | onTriggered: appWindow.close() 27 | } 28 | 29 | property Kirigami.Action kRaise: Kirigami.Action { 30 | fromQAction: mpris2.raiseAction 31 | onTriggered: appWindow.raise() 32 | } 33 | } 34 | 35 | property FileOpen fileDialog: FileOpen { 36 | onAccepted: { 37 | appWindow.settings.lastFolder = currentFolder 38 | playerPage.player.source = selectedUrl 39 | playerPage.player.play() 40 | } 41 | } 42 | 43 | property Core.Settings settings: Core.Settings { 44 | property string lastFolder 45 | Component.onCompleted: { 46 | if (lastFolder.length > 0) { // only set if we have a value 47 | appWindow.fileDialog.currentFolder = lastFolder 48 | } 49 | } 50 | } 51 | 52 | property Kirigami.Action openAction: Kirigami.Action { 53 | text: i18nc("@action:button open file dialog", "Open…") 54 | icon.name: "document-open" 55 | onTriggered: appWindow.fileDialog.open(appWindow) 56 | tooltip: text 57 | } 58 | 59 | title: { 60 | if (!playerPage.player.source) { 61 | return "" 62 | } 63 | 64 | const title = playerPage.player.metaData.value(0) 65 | if (title) { 66 | return title 67 | } 68 | 69 | return playerPage.player.source.toString().split('/').pop() 70 | } 71 | minimumWidth: Kirigami.Settings.isMobile ? 0 : Kirigami.Units.gridUnit * 30 72 | minimumHeight: Kirigami.Settings.isMobile ? 0 : Kirigami.Units.gridUnit * 22 73 | pageStack.initialPage: playerPage 74 | 75 | KConfig.WindowStateSaver { 76 | configGroupName: "MainWindow" 77 | } 78 | 79 | Component.onCompleted: { 80 | if (Application.arguments.length < 2) { 81 | return 82 | } 83 | playerPage.player.source = Qt.resolvedUrl(Application.arguments[1], new QtObject() /* don't resolve relative to qrc:/ (the engine's base url) */) 84 | playerPage.player.play() 85 | } 86 | } 87 | -------------------------------------------------------------------------------- /src/qml/OverlayPopup.qml: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 2 | // SPDX-FileCopyrightText: 2025 Marco Martin 3 | 4 | import QtQuick 5 | import QtQuick.Layouts 6 | import QtQuick.Controls as QQC 7 | import QtQuick.Effects as Effects 8 | import org.kde.kirigami as Kirigami 9 | import QtMultimedia as Multimedia 10 | 11 | QQC.Popup { 12 | id: popup 13 | 14 | modal: false 15 | clip: false 16 | padding: Kirigami.Units.smallSpacing 17 | margins: Kirigami.Units.largeSpacing 18 | Kirigami.Theme.colorSet: Kirigami.Theme.Complementary 19 | 20 | Binding { 21 | target: popup.contentItem?.Kirigami.Theme 22 | property: "colorSet" 23 | value: popup.Kirigami.Theme.colorSet 24 | } 25 | 26 | background: Kirigami.ShadowedRectangle { 27 | Kirigami.Theme.colorSet: popup.Kirigami.Theme.colorSet 28 | color: Qt.alpha(Kirigami.Theme.backgroundColor, 0.6); 29 | // This to make the radius of the buttons near the borders exactly concentric, 30 | // otherwise it looks very janky 31 | radius: Kirigami.Units.cornerRadius + popup.padding 32 | border { 33 | width: 1 34 | color: Qt.alpha( 35 | Kirigami.ColorUtils.linearInterpolation(Kirigami.Theme.backgroundColor, Kirigami.Theme.textColor, 0.4), 36 | 0.6); 37 | } 38 | shadow { 39 | size: Kirigami.Units.gridUnit 40 | color: Qt.rgba(0, 0, 0, 0.25) 41 | yOffset: 2 42 | } 43 | 44 | Effects.MultiEffect { 45 | id: backgroundEffect 46 | anchors.fill: parent 47 | visible: backgroundSource !== null 48 | z: -1 49 | 50 | source: ShaderEffectSource { 51 | z: -2 52 | id: shaderSource 53 | anchors.fill: parent 54 | sourceRect: Qt.rect(popup.x + popup.parent?.Kirigami.ScenePosition.x ?? 0, 55 | popup.y + popup.parent?.Kirigami.ScenePosition.y, 56 | popup.width ?? 0, 57 | popup.height) 58 | sourceItem: QQC.ApplicationWindow.window.contentItem 59 | } 60 | 61 | autoPaddingEnabled: false 62 | blurEnabled: true 63 | blur: 1 64 | blurMax: 64 65 | 66 | saturation: 1 67 | maskEnabled: true 68 | maskSource: mask 69 | Item { 70 | id: mask 71 | visible: false 72 | layer.enabled: true 73 | anchors.fill: parent 74 | Rectangle { 75 | radius: Kirigami.Units.cornerRadius + popup.padding 76 | anchors.fill: parent 77 | x: popup.x + popup.parent?.Kirigami.ScenePosition.x ?? 0 78 | y: popup.y + popup.parent?.Kirigami.ScenePosition.y ?? 0 79 | width: popup.width 80 | height: popup.height 81 | } 82 | } 83 | } 84 | } 85 | 86 | enter: Transition { 87 | NumberAnimation { 88 | property: "opacity" 89 | from: 0 90 | to: 1 91 | duration: Kirigami.Units.longDuration 92 | easing.type: Easing.InOutQuad 93 | } 94 | } 95 | exit: Transition { 96 | NumberAnimation { 97 | property: "opacity" 98 | from: 1 99 | to: 0 100 | duration: Kirigami.Units.longDuration 101 | easing.type: Easing.InOutQuad 102 | } 103 | } 104 | } 105 | -------------------------------------------------------------------------------- /src/qml/VolumeButton.qml: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 2 | // SPDX-FileCopyrightText: 2021-2022 Harald Sitter 3 | 4 | import QtQuick 5 | import QtQuick.Controls as QQC2 6 | import QtMultimedia as Multimedia 7 | 8 | import org.kde.kirigami as Kirigami 9 | 10 | IconToolButton { 11 | id: volumeButton 12 | 13 | required property Multimedia.AudioOutput audioOutput 14 | 15 | icon.name: { 16 | if (volumeButton.audioOutput.muted || volumeButton.audioOutput.volume == 0.0) { 17 | return "audio-volume-muted" 18 | } 19 | if (volumeButton.audioOutput.volume > 0.66) { 20 | return "audio-volume-high" 21 | } 22 | if (volumeButton.audioOutput.volume > 0.33) { 23 | return "audio-volume-medium" 24 | } 25 | if (volumeButton.audioOutput.volume > 0) { 26 | return "audio-volume-low" 27 | } 28 | return "player-volume" 29 | } 30 | 31 | text: i18nc("@action:button open volume slider popup", "Show volume controls") 32 | QQC2.ToolTip.text: text 33 | QQC2.ToolTip.visible: hovered 34 | && text.length > 0 35 | && display === QQC2.AbstractButton.IconOnly 36 | && !pressed 37 | && !popup.visible 38 | 39 | down: pressed || popup.visible 40 | Accessible.role: Accessible.ButtonMenu 41 | 42 | onPressed: { 43 | if (!popup.visible) { 44 | popup.open() 45 | } else { 46 | popup.close() 47 | } 48 | } 49 | 50 | readonly property QQC2.Popup popup : OverlayPopup { 51 | x: Math.round(parent.width / 2 - width / 2) 52 | y: -height - toolbar.padding - Kirigami.Units.smallSpacing 53 | width: Kirigami.Units.gridUnit * 2 54 | height: Kirigami.Units.gridUnit * 6 55 | contentItem: QQC2.Slider { 56 | Kirigami.Theme.colorSet: Kirigami.Theme.Complementary 57 | orientation: Qt.Vertical 58 | from: 0.0 59 | to: 1.0 60 | value: volumeButton.audioOutput.volume 61 | wheelEnabled: false 62 | onMoved: volumeButton.audioOutput.volume = value 63 | } 64 | onOpenedChanged: { 65 | // Do not force the action to uncheck if the user is interacting with the button. 66 | // This prevents a cyclic toggle when the popup loses focus because it is getting closed by an explicit 67 | // click on the button. 68 | if (!hoverHandler.hovered) { 69 | volumeButton.checked = opened 70 | } 71 | } 72 | } 73 | 74 | HoverHandler { 75 | id: hoverHandler 76 | } 77 | } 78 | -------------------------------------------------------------------------------- /src/qml/WelcomeView.qml: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 2 | // SPDX-FileCopyrightText: 2022 Harald Sitter 3 | // SPDX-FileCopyrightText: 2025 Nate Graham 4 | 5 | import QtQuick 6 | import QtQuick.Layouts 7 | import QtQuick.Controls as QQC2 8 | import org.kde.kirigami as Kirigami 9 | 10 | Kirigami.PlaceholderMessage { 11 | width: parent.width - (Kirigami.Units.largeSpacing * 4) 12 | anchors.centerIn: parent 13 | 14 | icon.name: "dragonplayer" 15 | 16 | text: i18nc("@title", "Welcome to Dragon Player") 17 | explanation: i18nc("@info", "Dragon Player is a simple video player. Open a video to get started:") 18 | 19 | helpfulAction: Kirigami.Action { 20 | text: i18nc("@action:button", "Open Video File or Network Stream") 21 | icon.name: appWindow.openAction.icon.name 22 | onTriggered: appWindow.openAction.trigger() 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /src/sandbox.cpp: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 2 | // SPDX-FileCopyrightText: 2025 Harald Sitter 3 | 4 | #include "sandbox.h" 5 | 6 | extern "C" { 7 | #include 8 | } 9 | 10 | #include 11 | 12 | using namespace Qt::StringLiterals; 13 | 14 | bool Sandbox::isInside() const 15 | { 16 | return KSandbox::isInside(); 17 | } 18 | 19 | bool Sandbox::hasFfmpegFull() const 20 | { 21 | if (!KSandbox::isFlatpak()) { 22 | const auto codec = avcodec_find_decoder_by_name("h264"); 23 | return codec != nullptr; 24 | } 25 | 26 | return QDir(u"/app/lib/ffmpeg/"_s).entryList({u"libav*.so*"_s}, QDir::Files | QDir::NoDotAndDotDot).size() > 0; 27 | } 28 | -------------------------------------------------------------------------------- /src/sandbox.h: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 2 | // SPDX-FileCopyrightText: 2025 Harald Sitter 3 | 4 | #pragma once 5 | 6 | #include 7 | 8 | #include 9 | 10 | class Sandbox : public QObject 11 | { 12 | Q_OBJECT 13 | QML_ELEMENT 14 | QML_SINGLETON 15 | Q_PROPERTY(bool inside READ isInside CONSTANT) 16 | Q_PROPERTY(bool ffmpegFull READ hasFfmpegFull CONSTANT) 17 | public: 18 | using QObject::QObject; 19 | 20 | [[nodiscard]] bool isInside() const; 21 | [[nodiscard]] bool hasFfmpegFull() const; 22 | }; 23 | --------------------------------------------------------------------------------