pax_global_header00006660000000000000000000000064137313540130014512gustar00rootroot0000000000000052 comment=9cfab0128cd9975e026aff464a17df57ab63ce2a celluloid-0.20/000077500000000000000000000000001373135401300134075ustar00rootroot00000000000000celluloid-0.20/.github/000077500000000000000000000000001373135401300147475ustar00rootroot00000000000000celluloid-0.20/.github/CONTRIBUTING.md000066400000000000000000000013421373135401300172000ustar00rootroot00000000000000Reporting Bugs ============== - Make sure you're using the latest release. - If possible, also check if the problem has already been fixed in git master. - Don't report multiple unrelated/barely related bugs in one issue. - Attach a log file. - You can make celluloid print log messages by running `G_MESSAGES_DEBUG=all celluloid` - If the issue involves crashing, include a backtrace in the report. - You can create a backtrace by running `gdb -ex 'set pagination off' -ex run -ex bt celluloid` and perform the action that triggers the crash. - If the issue is a regression, it would be very helpful if you could perform a [bisect](https://git-scm.com/docs/git-bisect) to locate the commit that introduces the regression. celluloid-0.20/.github/FUNDING.yml000066400000000000000000000000531373135401300165620ustar00rootroot00000000000000custom: https://paypal.me/CelluloidProject celluloid-0.20/.github/ISSUE_TEMPLATE.md000066400000000000000000000001731373135401300174550ustar00rootroot00000000000000Overview Description: Steps to Reproduce: 1. 2. 3. Actual Results: Expected Results: Version: Additional Information: celluloid-0.20/.gitignore000066400000000000000000000014451373135401300154030ustar00rootroot00000000000000# Files generated by autotools /autom4te.cache /aclocal.m4 /compile /configure /configure.sub /config.* /depcomp /install-sh /intltool-* /ltmain.sh /missing /ar-lib /libtool /test-driver /stamp-h1 /m4 Makefile.in.in Makefile.in Makefile config.* po/POTFILES po/stamp-it /po/Makevars.template /po/*~ /po/*.sed /po/*.sin /po/*.header /po/Rules-quot /ABOUT-NLS # Files generated by `make` *.o *.stamp *.la *.so *.dll *.a *.exe *.lo *.log *.trs *.test *.tar.xz .deps/ .libs/ data/*.valid data/celluloid.appdata.xml data/celluloid.desktop data/org.gnome-mpv.gschema.xml data/io.github.celluloid_player.Celluloid.appdata.xml data/io.github.celluloid_player.Celluloid.desktop po/celluloid.pot po/*.gmo po/.intltool-merge-cache .dirstamp src/celluloid src/authors.h src/marshal.* src/mpris/mpris_gdbus.* /build celluloid-0.20/AUTHORS000066400000000000000000000004731373135401300144630ustar00rootroot00000000000000# Feel free to add/edit your name below. # The names in this file will be shown in the about dialog. # Format: name # is optional. Connor Duncan Gaurav Narula Harenome Ranaivoarivony Razanajato Michael Heyns Mingye Wang (Arthur2e5) Patrick Griffis Sun gipawu gnome-mpv tista500 xuzhen celluloid-0.20/COPYING000066400000000000000000001045141373135401300144470ustar00rootroot00000000000000 GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 Copyright (C) 2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The GNU General Public License is a free, copyleft license for software and other kinds of works. The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users. We, the Free Software Foundation, use the GNU General Public License for most of our software; it applies also to any other work released this way by its authors. You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things. To protect your rights, we need to prevent others from denying you these rights or asking you to surrender the rights. Therefore, you have certain responsibilities if you distribute copies of the software, or if you modify it: responsibilities to respect the freedom of others. For example, if you distribute copies of such a program, whether gratis or for a fee, you must pass on to the recipients the same freedoms that you received. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. Developers that use the GNU GPL protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License giving you legal permission to copy, distribute and/or modify it. For the developers' and authors' protection, the GPL clearly explains that there is no warranty for this free software. For both users' and authors' sake, the GPL requires that modified versions be marked as changed, so that their problems will not be attributed erroneously to authors of previous versions. Some devices are designed to deny users access to install or run modified versions of the software inside them, although the manufacturer can do so. This is fundamentally incompatible with the aim of protecting users' freedom to change the software. The systematic pattern of such abuse occurs in the area of products for individuals to use, which is precisely where it is most unacceptable. Therefore, we have designed this version of the GPL to prohibit the practice for those products. If such problems arise substantially in other domains, we stand ready to extend this provision to those domains in future versions of the GPL, as needed to protect the freedom of users. Finally, every program is threatened constantly by software patents. States should not allow patents to restrict development and use of software on general-purpose computers, but in those that do, we wish to avoid the special danger that patents applied to a free program could make it effectively proprietary. To prevent this, the GPL assures that patents cannot be used to render the program non-free. The precise terms and conditions for copying, distribution and modification follow. TERMS AND CONDITIONS 0. Definitions. "This License" refers to version 3 of the GNU General Public License. "Copyright" also means copyright-like laws that apply to other kinds of works, such as semiconductor masks. "The Program" refers to any copyrightable work licensed under this License. Each licensee is addressed as "you". "Licensees" and "recipients" may be individuals or organizations. To "modify" a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy. The resulting work is called a "modified version" of the earlier work or a work "based on" the earlier work. A "covered work" means either the unmodified Program or a work based on the Program. To "propagate" a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well. To "convey" a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying. An interactive user interface displays "Appropriate Legal Notices" to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License. If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion. 1. Source Code. The "source code" for a work means the preferred form of the work for making modifications to it. "Object code" means any non-source form of a work. A "Standard Interface" means an interface that either is an official standard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that language. The "System Libraries" of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major Component, or to implement a Standard Interface for which an implementation is available to the public in source code form. A "Major Component", in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it. The "Corresponding Source" for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work. The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source. The Corresponding Source for a work in source code form is that same work. 2. Basic Permissions. All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met. This License explicitly affirms your unlimited permission to run the unmodified Program. The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work. This License acknowledges your rights of fair use or other equivalent, as provided by copyright law. You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright. Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you. Conveying under any other circumstances is permitted solely under the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary. 3. Protecting Users' Legal Rights From Anti-Circumvention Law. No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures. When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work's users, your or third parties' legal rights to forbid circumvention of technological measures. 4. Conveying Verbatim Copies. You may convey verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program. You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee. 5. Conveying Modified Source Versions. You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions: a) The work must carry prominent notices stating that you modified it, and giving a relevant date. b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to "keep intact all notices". c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it. d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so. A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an "aggregate" if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate. 6. Conveying Non-Source Forms. You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways: a) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange. b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge. c) Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source. This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b. d) Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to copy the Corresponding Source along with the object code. If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements. e) Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d. A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work. A "User Product" is either (1) a "consumer product", which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage. For a particular product received by a particular user, "normally used" refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product. "Installation Information" for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made. If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM). The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Product in which it has been modified or installed. Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network. Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying. 7. Additional Terms. "Additional permissions" are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law. If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions. When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be written to require their own removal in certain cases when you modify the work.) You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission. Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms: a) Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or b) Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or d) Limiting the use for publicity purposes of names of licensors or authors of the material; or e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or f) Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors. All other non-permissive additional terms are considered "further restrictions" within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying. If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms. Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way. 8. Termination. You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11). However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation. Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice. Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10. 9. Acceptance Not Required for Having Copies. You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance. However, nothing other than this License grants you permission to propagate or modify any covered work. These actions infringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so. 10. Automatic Licensing of Downstream Recipients. Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License. You are not responsible for enforcing compliance by third parties with this License. An "entity transaction" is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organization, or merging organizations. If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party's predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts. You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it. 11. Patents. A "contributor" is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based. The work thus licensed is called the contributor's "contributor version". A contributor's "essential patent claims" are all patent claims owned or controlled by the contributor, whether already acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its contributor version, but do not include claims that would be infringed only as a consequence of further modification of the contributor version. For purposes of this definition, "control" includes the right to grant patent sublicenses in a manner consistent with the requirements of this License. Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the contributor's essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version. In the following three paragraphs, a "patent license" is any express agreement or commitment, however denominated, not to enforce a patent (such as an express permission to practice a patent or covenant not to sue for patent infringement). To "grant" such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party. If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly available network server or other readily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a manner consistent with the requirements of this License, to extend the patent license to downstream recipients. "Knowingly relying" means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recipient's use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid. If, pursuant to or in connection with a single transaction or arrangement, you convey, or propagate by procuring conveyance of, a covered work, and grant a patent license to some of the parties receiving the covered work authorizing them to use, propagate, modify or convey a specific copy of the covered work, then the patent license you grant is automatically extended to all recipients of the covered work and works based on it. A patent license is "discriminatory" if it does not include within the scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the rights that are specifically granted under this License. You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (or copies made from those copies), or (b) primarily for and in connection with specific products or compilations that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March 2007. Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law. 12. No Surrender of Others' Freedom. If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not convey it at all. For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program. 13. Use with the GNU Affero General Public License. Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU Affero General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the special requirements of the GNU Affero General Public License, section 13, concerning interaction through a network will apply to the combination as such. 14. Revised Versions of this License. The Free Software Foundation may publish revised and/or new versions of the GNU General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies that a certain numbered version of the GNU General Public License "or any later version" applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the GNU General Public License, you may choose any version ever published by the Free Software Foundation. If the Program specifies that a proxy can decide which future versions of the GNU General Public License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Program. Later license versions may give you additional or different permissions. However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version. 15. Disclaimer of Warranty. THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. Limitation of Liability. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. 17. Interpretation of Sections 15 and 16. If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively state the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . Also add information on how to contact you by electronic and paper mail. If the program does terminal interaction, make it output a short notice like this when it starts in an interactive mode: Copyright (C) This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, your program's commands might be different; for a GUI interface, you would use an "about box". You should also get your employer (if you work as a programmer) or school, if any, to sign a "copyright disclaimer" for the program, if necessary. For more information on this, and how to apply and follow the GNU GPL, see . The GNU General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. But first, please read . celluloid-0.20/Makefile.am000066400000000000000000000030321373135401300154410ustar00rootroot00000000000000AUTOMAKE_OPTIONS = foreign SUBDIRS = src data docs po EXTRA_DIST = README.md AUTHORS meson.build docs/meson.build test/meson.build test/test-option-parser.c meson-post-install.py po/meson.build UPDATE_DESKTOP = update-desktop-database -q || : UPDATE_ICON = gtk-update-icon-cache -q $(datadir)/icons/hicolor/ || : # Ensure that the dist tarball does not contain own/group from build system TAR_OPTIONS = --owner=0 --group=0 export TAR_OPTIONS # Extract version numbers in appdata XML and the main meson build file APPDATA_VERSION = $(shell xmllint $(top_srcdir)/data/io.github.celluloid_player.Celluloid.appdata.xml.in \ --xpath /component/releases/release/@version | \ sed 's/version="\([^s]\+\)"/\1/g;s/ /\n/g' | \ sort -rn | \ head -1) MESON_VERSION = $(shell $(AWK) -F "'" \ '/\yversion:/{print $$2}' \ $(top_srcdir)/meson.build) # Abort if the version numbers are not the same dist-hook: if [ "$(APPDATA_VERSION)" != "$(VERSION)" -o \ "$(MESON_VERSION)" != "$(VERSION)" ]; \ then \ echo "Version numbers in appdata XML, meson.build, and" \ "configure.ac do not match" 1>&2; \ exit 1; \ fi # Test building with Meson distcheck-hook: mkdir $(PACKAGE)-$(VERSION)/_build/meson \ $(PACKAGE)-$(VERSION)/_inst/meson && \ cd $(PACKAGE)-$(VERSION) && \ meson _build/meson \ --prefix $(abs_top_srcdir)/$(PACKAGE)-$(VERSION)/_inst/meson && \ ninja -C _build/meson install && \ rm -rf _build/meson _inst/meson install-data-hook: $(UPDATE_DESKTOP) $(UPDATE_ICON) uninstall-hook: $(UPDATE_DESKTOP) $(UPDATE_ICON) celluloid-0.20/README.md000066400000000000000000000143321373135401300146710ustar00rootroot00000000000000# Celluloid Celluloid (formerly GNOME MPV) is a simple GTK+ frontend for mpv. Celluloid interacts with mpv via the client API exported by libmpv, allowing access to mpv's powerful playback capabilities. ![Screenshot](https://celluloid-player.github.io/images/screenshot-0.png) ## Dependencies - appstream-glib[[1]](#note1) (build) - autoconf >= 2.69[[1]](#note1) (build) - autoconf-archive[[1]](#note1) (build) - automake >= 1.12[[1]](#note1) (build) - pkg-config (build) - gcc (build) - glib >= 2.44 - gtk >= 3.22 - mpv >= 0.32 - epoxy - lua (optional) - youtube-dl (optional) [1]: Not required when building from release tarballs ## Installation ### GNU/Linux packages - Arch Linux: https://www.archlinux.org/packages/celluloid - Arch Linux (Git): https://aur.archlinux.org/packages/celluloid-git - Debian: https://tracker.debian.org/pkg/celluloid - Fedora (rpmfusion): https://admin.rpmfusion.org/pkgdb/package/free/celluloid/ - OpenSUSE: https://software.opensuse.org/package/celluloid - Gentoo: https://packages.gentoo.org/packages/media-video/celluloid - Guix: http://guix.gnu.org/packages/celluloid-0.18 - Solus: https://packages.getsol.us/shannon/g/gnome-mpv/ - Ubuntu: https://launchpad.net/~xuzhen666/+archive/ubuntu/gnome-mpv ### Flatpak [Flatpak](https://flatpak.org) packages support multiple distributions and are sandboxed. Flatpak 0.9.5+ is recommended for best integration. Stable releases are hosted on [Flathub](https://flathub.org): ```sh flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo flatpak install flathub io.github.celluloid_player.Celluloid ``` Development versions are also packaged: ```sh flatpak install https://dl.tingping.se/flatpak/gnome-mpv.flatpakref ``` ### Source code Run the following command in the source code directory to build and install: ```sh meson build && cd build && ninja && sudo ninja install ``` Alternatively, you can use Autotools: ```sh ./autogen.sh && make && sudo make install ``` When building from release tarballs, replace `./autogen.sh` with `./configure`: ```sh ./configure && make && sudo make install ``` ## Usage ### Opening files There are 4 ways to open files in Celluloid. 1. Passing files and/or URIs as command line arguments. 2. Using the file chooser dialog box, accessible via the "Open" menu item. 3. Typing URI into the "Open Location" dialog box, accessible via the menu item with the same name. 4. Dragging and dropping files or URIs onto Celluloid. ### Manipulating playlist The playlist is hidden by default. To show the playlist, click the "Playlist" menu item or press F9. Files can be added by dragging and dropping files or URIs onto the playlist. Dropping files or URIs onto the video area will replace the content of the playlist. Playlist files or online playlists (eg. YouTube's playlist) will be automatically expanded into individual items when loaded. Items in the playlist can be reordered via drag-and-drop. To remove items from the playlist, select the item by clicking on it then press the delete button on your keyboard. ### Configuration Celluloid can be configured using the preferences dialog accessible via the "Preferences" menu item. Additional configuration options can be set from an external file using the same syntax as mpv's `mpv.conf`. See [mpv's manual](https://mpv.io/manual/stable/) for the full list of options. The file must be specified and enabled in the preferences dialog under the "MPV Configuration" section. It is also possible to set mpv options by putting the options — as you would pass to mpv on the command line — in `Extra MPV Options` text box in the preferences dialog. You can also pass options directly on the command line by adding `mpv-` prefix to the option name. For example, using the option `--mpv-vf=flip` when launching Celluloid is equivalent to using `--vf=flip` in mpv. ### User Scripts Celluloid can use most mpv user scripts as-is. Some user scripts may define keybindings that conflict with Celluloid, in which case you'll need to resolve the conflict by explicitly defining new keybindings using `input.conf`. See [mpv's manual](https://mpv.io/manual/stable/#lua-scripting-[,flags]]%29) for more details. User scripts can be installed by switching to the "Plugins" tab in the preferences dialog and dropping the files there. A list of mpv user scripts can be found [here](https://github.com/mpv-player/mpv/wiki/User-Scripts). ### Keybindings Celluloid defines a set of keybindings in the macro `DEFAULT_KEYBINDS`, which can be found in [src/celluloid-def.h](https://github.com/celluloid-player/celluloid/blob/master/src/celluloid-def.h). The syntax used is exactly the same as mpv's `input.conf`. These keybindings are applied on top of default keybindings provided by mpv. Additional keybindings can be defined in an external file using mpv's `input.conf` syntax. The file can be set in the preferences dialog under the "Keybindings" section. ## Contributing Translations Celluloid uses [Zanata](https://zanata.org) to coordinate translations. You can find Celluloid's page [here](https://translate.zanata.org/iteration/view/celluloid/master). To start translating, follow the instructions [here](http://docs.zanata.org/en/release/user-guide/translator-guide/). If you'd like to add a new language, open an issue on GitHub. While translating, you will find the string `translator-credits`. You should not translate this string. Instead, you should put your name, and optionally your email address, in the following format: `FirstName LastName `. Your name will then appear in the About dialog when your translation is active. ## License Celluloid is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. Celluloid is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Celluloid. If not, see . celluloid-0.20/autogen.sh000077500000000000000000000011301373135401300154030ustar00rootroot00000000000000#!/bin/sh # Run this to generate all the initial makefiles, etc. srcdir=`dirname $0` test -z "$srcdir" && srcdir=. (test -f $srcdir/configure.ac) || { echo -n "**Error**: Directory "\`$srcdir\'" does not look like the top-level directory" exit 1 } aclocal --install -I m4 || exit 1 autoreconf --force --install -Wno-portability || exit 1 if [ "$NOCONFIGURE" = "" ]; then $srcdir/configure "$@" || exit 1 if [ "$1" = "--help" ]; then exit 0 else echo "Now type \`make\' to compile" || exit 1 fi else echo "Skipping configure process." fi set +x celluloid-0.20/configure.ac000066400000000000000000000056051373135401300157030ustar00rootroot00000000000000AC_PREREQ([2.69]) AC_INIT( [celluloid], [0.20], [http://github.com/celluloid-player/celluloid/issues], [celluloid], [http://github.com/celluloid/celluloid] ) AC_CONFIG_SRCDIR([src/celluloid-main.c]) AC_CONFIG_MACRO_DIR([m4]) AC_USE_SYSTEM_EXTENSIONS AM_INIT_AUTOMAKE([1.12 tar-pax dist-xz no-dist-gzip subdir-objects foreign -Wall -Wno-portability]) AM_SILENT_RULES([yes]) AM_MAINTAINER_MODE([enable]) # i18n GETTEXT_PACKAGE=celluloid AC_SUBST(GETTEXT_PACKAGE) AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE", [GETTEXT package name]) AM_GNU_GETTEXT_VERSION([0.20]) AM_GNU_GETTEXT([external]) GLIB_GSETTINGS AC_ARG_ENABLE([debug], AS_HELP_STRING([--enable-debug], [turn on debugging]), [enable_debug=$enableval], [enable_debug=no]) AC_DEFUN([GM_CHECK_MACRO], [m4_ifndef([$1], [m4_fatal($1[ is not defined. Is ]$2[ installed?])])]) GM_CHECK_MACRO([AX_APPEND_COMPILE_FLAGS], [autoconf-archive]) GM_CHECK_MACRO([AX_APPEND_LINK_FLAGS], [autoconf-archive]) GM_CHECK_MACRO([AX_REQUIRE_DEFINED], [autoconf-archive]) GM_CHECK_MACRO([APPSTREAM_XML], [appstream-glib]) APPSTREAM_XML AS_IF([test "x$enable_debug" = "xyes"], [ AX_APPEND_COMPILE_FLAGS([-O0 -g]) ], [ AX_APPEND_COMPILE_FLAGS([-O2]) ]) AX_APPEND_COMPILE_FLAGS([ \ -std=gnu99 \ -funsigned-char \ -fstack-protector-strong \ -fPIE \ -fPIC \ -Wall \ -Wextra \ -Wconversion \ -Winline \ -Wno-padded \ -Wno-unused-parameter \ -Wstrict-prototypes \ -Wmissing-prototypes \ -Werror=implicit-function-declaration \ -Werror=pointer-arith \ -Werror=init-self \ -Werror=format-security \ -Werror=format=2 \ -Werror=missing-include-dirs \ -Werror=date-time \ ]) AX_APPEND_LINK_FLAGS([ \ -pie \ -Wl,-z,relro \ -Wl,-z,now \ ]) # Checks for programs. AC_PROG_CC AC_PROG_CC_STDC AC_PROG_AWK AC_PROG_SED AC_PATH_PROG(GDBUS_CODEGEN, [gdbus-codegen], []) AC_PATH_PROG(GLIB_GENMARSHAL, [glib-genmarshal], []) AS_IF([test "x$GDBUS_CODEGEN" = "x"], [ AC_MSG_ERROR([Could not find gdbus-codegen]) ]) AS_IF([test "x$GLIB_GENMARSHAL" = "x"], [ AC_MSG_ERROR([Could not find glib-genmarshal]) ]) PKG_CHECK_MODULES(DEPS, [gtk+-3.0 >= 3.22.23 glib-2.0 >= 2.44 mpv >= 1.107 epoxy]) AC_SEARCH_LIBS([sqrt], [m]) AC_DEFINE([GLIB_VERSION_MIN_REQUIRED], [GLIB_VERSION_2_44], [Dont warn using older APIs]) AC_DEFINE([GLIB_VERSION_MAX_ALLOWED], [GLIB_VERSION_2_44], [Prevents using newer APIs]) AC_DEFINE([GDK_VERSION_MIN_REQUIRED], [GDK_VERSION_3_22], [Dont warn using older APIs]) AC_DEFINE([GDK_VERSION_MAX_ALLOWED], [GDK_VERSION_3_22], [Prevents using newer APIs]) # Checks for header files. AC_CHECK_HEADERS([string.h stdio.h stdlib.h locale.h],[],[ AC_MSG_ERROR([Could not find required headers]) ]) AC_CHECK_FUNCS([setlocale],[],[ AC_MSG_ERROR([Could not find required functions]) ]) AC_CONFIG_FILES([Makefile src/Makefile data/Makefile docs/Makefile po/Makefile.in]) AC_OUTPUT echo " $PACKAGE $VERSION prefix ........: $prefix debug .........: $enable_debug " celluloid-0.20/data/000077500000000000000000000000001373135401300143205ustar00rootroot00000000000000celluloid-0.20/data/Makefile.am000066400000000000000000000027751373135401300163670ustar00rootroot00000000000000gsettings_SCHEMAS = io.github.celluloid_player.Celluloid.gschema.xml io.github.GnomeMpv.gschema.xml @GSETTINGS_RULES@ appstream_in_files = io.github.celluloid_player.Celluloid.appdata.xml.in appstream_XML = $(appstream_in_files:.xml.in=.xml) %.appdata.xml: %.appdata.xml.in $(AM_V_GEN)$(MSGFMT) --xml --template $< -d $(top_srcdir)/po -o $@ @APPSTREAM_XML_RULES@ dbusservicedir = $(datadir)/dbus-1/services dbusservice_in_files = io.github.celluloid_player.Celluloid.service.in dbusservice_DATA = $(dbusservice_in_files:.service.in=.service) %.service: %.service.in Makefile $(AM_V_GEN) sed -e "s|\@bindir\@|$(bindir)|" $< > $@ desktopdir = $(datadir)/applications desktop_in_files = io.github.celluloid_player.Celluloid.desktop.in desktop_DATA = $(desktop_in_files:.desktop.in=.desktop) %.desktop: %.desktop.in $(AM_V_GEN)$(MSGFMT) --desktop --template $< -d $(top_srcdir)/po -o $@ icondir = $(datadir)/icons/hicolor/scalable/apps icon_DATA = io.github.celluloid_player.Celluloid.svg symicondir = $(datadir)/icons/hicolor/symbolic/apps symicon_DATA = io.github.celluloid_player.Celluloid-symbolic.svg EXTRA_DIST = $(appstream_in_files) \ $(desktop_in_files) \ $(dbusservice_in_files) \ io.github.celluloid_player.Celluloid.svg \ io.github.celluloid_player.Celluloid-symbolic.svg \ io.github.GnomeMpv.gschema.xml \ io.github.celluloid_player.Celluloid.gschema.xml \ celluloid-mpris-gdbus.xml \ celluloid-marshal.lst \ meson.build DISTCLEANFILES = $(appstream_XML) $(desktop_DATA) $(dbusservice_DATA) celluloid-0.20/data/celluloid-marshal.lst000066400000000000000000000002371373135401300204470ustar00rootroot00000000000000VOID:POINTER,BOOLEAN VOID:STRING,POINTER VOID:INT,INT VOID:INT64,INT64 VOID:INT,STRING,STRING VOID:INT,POINTER VOID:BOOLEAN,BOOLEAN,POINTER,POINTER VOID:INT64 celluloid-0.20/data/celluloid-mpris-gdbus.xml000066400000000000000000000063451373135401300212600ustar00rootroot00000000000000 celluloid-0.20/data/io.github.GnomeMpv.gschema.xml000066400000000000000000000105421373135401300220710ustar00rootroot00000000000000 false Whether the settings has already been migrated from the previous version true Enable or disable dark theme true Enable or disable client-side decorations false Whether or not to use floating controls in windowed mode false Whether or not to autohide mouse cursor in windowed mode false Whether or not to use skip buttons for controlling playlist false Whether or not to make file chooser dialog remember last folder accessed false Whether or not to create new windows when there is already an instance '' Options to pass to mpv '' Path to mpv configuration file false Load or don't load mpv configuration file '' Path to mpv input configuration file false Load or don't load mpv input configuration file true Whether or not to enable MPRIS support true Whether or not to enable GNOME-Settings-Daemon-based media keys support true Whether or not to prefetch metadata for non-current playlist entries 640 Width of the window 480 Height of the window 1.0 Volume of player 250 Width of the playlist true Show or not show the controls false Show or not show the playlist '' URI of the last folder accessed celluloid-0.20/data/io.github.celluloid_player.Celluloid-symbolic.svg000066400000000000000000000062631373135401300260210ustar00rootroot00000000000000 image/svg+xml Gnome Symbolic Icon Theme Gnome Symbolic Icon Theme celluloid-0.20/data/io.github.celluloid_player.Celluloid.appdata.xml.in000066400000000000000000000201521373135401300262120ustar00rootroot00000000000000 io.github.celluloid_player.Celluloid CC-BY-SA-4.0 GPL-3.0+ Celluloid GTK+ frontend for mpv io.github.celluloid_player.Celluloid.desktop celluloid io.github.GnomeMpv.desktop

Celluloid is a simple media player that can play virtually all video and audio formats. It supports playlists and MPRIS2 media player controls. The design of Celluloid follows the GNOME Human Interface Guidelines, but can also be adapted for other systems that don't use client-side decorations (CSD). It is based on the mpv library and GTK.

Features:

  • Drag and drop playlist
  • Loading external mpv configuration files
  • MPRIS2 D-Bus interface
The Celluloid Developers

This release contains the following changes:

  • Make it possible to activate context menu when the playlist is empty.
  • Prevent constant resizing of the seek bar due to timestamp label resizing as its value changes.
  • Only show a single error dialog when a large number of errors occurs in rapid succession.
  • Add menu item for opening folders.
  • Adjust position of UI elements of modal dialogs in non-CSD mode to be more consistent with CSD mode.
  • Add support for loading external video tracks.
  • Make playlist shuffle toggleable.
  • Make arrow key bindings work with arrow keys on numpad.

This listing is incomplete. See git log for complete changelog.

This release contains the following changes:

  • Adjust the range of volume button based on the value of the volume-max property.
  • Retain window maximization state across sessions.
  • Retain loop state across sessions.
  • Implement playlist search.
  • Update the list of shortcuts in Keyboard Shortcuts dialog.
  • Correctly handle quotes and escape sequences in extra mpv options.
  • Display time at cursor position when hovering the seek bar.
  • Deprecate '--mpv-options'. Options starting with '--mpv-' can be used to set mpv options instead. For example, passing '--mpv-vf=vflip' to Celluloid is equivalent to passing '--vf=vflip' to mpv.
  • Add support for configuring dead zone, an area in which mouse movement will not cause controls to be shown.
  • Make window sizing work correctly with HiDPI displays.
  • Add Finnish translation by Kimmo Kujansuu.
  • Add Slovenian translation by @bertronika.

This listing is incomplete. See git log for complete changelog.

This release contains the following changes:

  • Add Persian translation by @danialbehzadi
  • Add Ukranian translation by @vl-nix
  • Add support for showing/hiding window decorations using the mpv option --border
  • Add menu item for opening discs
  • Block cursor autohide when volume popup is open in windowed mode
  • Fix crash with mpv 0.30

This listing is incomplete. See git log for complete changelog.

This release contains the following changes:

  • Rename project to Celluloid
  • Add Turkish translation by @TeknoMobil
  • Add Esperanto translation by @F3nd0
  • Migrate from opengl-cb to the new render API
  • Handle numpad keybindings
  • Handle unicode keybindings
  • Forward media key events to mpv
  • Add dconf key for controlling cursor speed at which controls are unhidden
  • Add option for suppressing playback errors

This listing is incomplete. See git log for complete changelog.

This release contains the following changes:

  • Split up the General tab in the preferences dialog
  • Improve behavior when toggling playlist under tiling window managers
  • Move app menu items to primary menu
  • Use separate MPRIS DBus connection for each window
  • Add support for MPRIS property LoopStatus
  • Add option --mpv-options for setting arbitrary mpv options from the command-line

This listing is incomplete. See git log for complete changelog.

This release contains the following changes:

  • Set default screenshot directory to XDG_PICTURES_DIR
  • Improve handling of --window-scale, --autofit, --autofit-larger, and --autofit-smaller
  • Add command line option for setting WM_ROLE
  • Add context menu item for removing playlist items
  • Add context menu item for copying location of playlist items

This listing is incomplete. See git log for complete changelog.

This release contains the following changes:

  • Add option to make skip buttons change playlist entries rather than chapters
  • Make the file chooser accept non-local locations
  • Add right-click menu entry for looping a single file
  • Handle property change events for fullscreen and window-scale
  • Add option to autohide mouse cursor in windowed mode

This listing is incomplete. See git log for complete changelog.

http://celluloid-player.github.io/images/screenshot-0.png The main window showing the application in action http://celluloid-player.github.io/images/screenshot-1.png The main window with CSD disabled http://celluloid-player.github.io/images/screenshot-2.png The main window with playlist open http://celluloid-player.github.io http://github.com/celluloid-player/celluloid/issues http://translate.zanata.org/project/view/celluloid gnome-mpv_at_teknik.io
celluloid-0.20/data/io.github.celluloid_player.Celluloid.desktop.in000066400000000000000000000052261373135401300254570ustar00rootroot00000000000000[Desktop Entry] Version=1.0 Name=Celluloid GenericName=Multimedia Player Comment=Play movies and videos Exec=celluloid %U # Translators: This is an icon name, don't translate! Icon=io.github.celluloid_player.Celluloid Terminal=false Type=Application StartupNotify=true StartupWMClass=io.github.celluloid_player.Celluloid DBusActivatable=true Categories=GTK;GNOME;AudioVideo;Player;Video;TV; # Translators: Search terms to find this application. Don't translate the semicolons! The list MUST also end with a semicolon! Keywords=Video;Movie;Film;Clip;Series;Player;DVD;TV;Disc;Album;Music;GNOME;mpv; MimeType=application/mpeg4-iod;application/mpeg4-muxcodetable;application/mxf;application/ogg;application/ram;application/sdp;application/streamingmedia;application/vnd.apple.mpegurl;application/vnd.ms-asf;application/vnd.rn-realmedia;application/vnd.rn-realmedia-vbr;application/x-extension-m4a;application/x-extension-mp4;application/x-flac;application/x-flash-video;application/x-matroska;application/x-ogg;application/x-streamingmedia;audio/3gpp;audio/3gpp2;audio/aac;audio/ac3;audio/amr;audio/amr-wb;audio/basic;audio/dv;audio/eac3;audio/flac;audio/m4a;audio/midi;audio/mp1;audio/mp2;audio/mp3;audio/mp4;audio/mpeg;audio/mpegurl;audio/mpg;audio/ogg;audio/opus;audio/scpls;audio/vnd.dolby.heaac.1;audio/vnd.dolby.heaac.2;audio/vnd.dolby.mlp;audio/vnd.dts;audio/vnd.dts.hd;audio/vnd.rn-realaudio;audio/wav;audio/webm;audio/x-aac;audio/x-aiff;audio/x-ape;audio/x-flac;audio/x-gsm;audio/x-it;audio/x-m4a;audio/x-matroska;audio/x-mod;audio/x-mp1;audio/x-mp2;audio/x-mp3;audio/x-mpeg;audio/x-mpegurl;audio/x-mpg;audio/x-ms-asf;audio/x-ms-wma;audio/x-musepack;audio/x-pn-aiff;audio/x-pn-au;audio/x-pn-realaudio;audio/x-pn-wav;audio/x-real-audio;audio/x-realaudio;audio/x-s3m;audio/x-scpls;audio/x-shorten;audio/x-speex;audio/x-tta;audio/x-vorbis;audio/x-vorbis+ogg;audio/x-wav;audio/x-wavpack;audio/x-xm;video/3gp;video/3gpp;video/3gpp2;video/divx;video/dv;video/fli;video/flv;video/mp2t;video/mp4;video/mp4v-es;video/mpeg;video/mpeg-system;video/msvideo;video/ogg;video/quicktime;video/vnd.mpegurl;video/vnd.rn-realvideo;video/webm;video/x-avi;video/x-flc;video/x-fli;video/x-flv;video/x-m4v;video/x-matroska;video/x-mpeg;video/x-mpeg-system;video/x-mpeg2;video/x-ms-asf;video/x-ms-wm;video/x-ms-wmv;video/x-ms-wmx;video/x-msvideo;video/x-nsv;video/x-ogm+ogg;video/x-theora;video/x-theora+ogg;x-content/audio-cdda;x-content/audio-player;x-content/video-dvd;x-scheme-handler/mms;x-scheme-handler/mmsh;x-scheme-handler/rtmp;x-scheme-handler/rtp;x-scheme-handler/rtsp; X-KDE-Protocols=ftp,http,https,mms,rtmp,rtsp,sftp,smb Actions=new-window; [Desktop Action new-window] Name=New Window Exec=celluloid --new-window celluloid-0.20/data/io.github.celluloid_player.Celluloid.gschema.xml000066400000000000000000000135401373135401300256050ustar00rootroot00000000000000 false Whether the settings has already been migrated from the previous version true Whether or not to automatically resize window to fit video true Enable or disable dark theme true Enable or disable client-side decorations false Whether or not to use floating controls in windowed mode false Whether or not to autohide mouse cursor in windowed mode 0 The minimum cursor speed at which floating controls will be unhidden. 0 The size of the dead zone in which cursor movement will not cause the controls to be shown. false Whether or not to use skip buttons for controlling playlist false Whether or not to make file chooser dialog remember last folder accessed false Whether or not to create new windows when there is already an instance "" Options to pass to mpv "" Path to mpv configuration file false Load or don't load mpv configuration file "" Path to mpv input configuration file false Load or don't load mpv input configuration file true Whether or not to enable MPRIS support true Whether or not to enable GNOME-Settings-Daemon-based media keys support true Whether or not to prefetch metadata for non-current playlist entries false Whether or not to display an error message when playback of a file ends with an error true Whether or not to inhibit session idling when something is playing 640 Width of the window 480 Height of the window false Whether or not the window is maximized 1.0 Volume of player false Whether or not to loop when the end of playlist is reached 250 Width of the playlist true Show or not show the controls false Show or not show the playlist "" URI of the last folder accessed celluloid-0.20/data/io.github.celluloid_player.Celluloid.service.in000066400000000000000000000001511373135401300254360ustar00rootroot00000000000000[D-BUS Service] Name=io.github.celluloid_player.Celluloid Exec=@bindir@/celluloid --gapplication-service celluloid-0.20/data/io.github.celluloid_player.Celluloid.svg000066400000000000000000000233271373135401300242020ustar00rootroot00000000000000 Adwaita Icon Template image/svg+xml GNOME Design Team Adwaita Icon Template celluloid-0.20/data/meson.build000066400000000000000000000037051373135401300164670ustar00rootroot00000000000000 schemadir = join_paths(get_option('datadir'), 'glib-2.0/schemas') install_data([ 'io.github.GnomeMpv.gschema.xml', 'io.github.celluloid_player.Celluloid.gschema.xml', ], install_dir: schemadir) appdata = i18n.merge_file( input: 'io.github.celluloid_player.Celluloid.appdata.xml.in', output: 'io.github.celluloid_player.Celluloid.appdata.xml', po_dir: '../po', install: true, install_dir: join_paths(get_option('datadir'), 'metainfo') ) desktop = i18n.merge_file( input: 'io.github.celluloid_player.Celluloid.desktop.in', output: 'io.github.celluloid_player.Celluloid.desktop', type: 'desktop', po_dir: '../po', install: true, install_dir: join_paths(get_option('datadir'), 'applications') ) icondir = join_paths(get_option('datadir'), 'icons/hicolor') install_data('io.github.celluloid_player.Celluloid.svg', install_dir: join_paths(icondir, 'scalable/apps') ) install_data('io.github.celluloid_player.Celluloid-symbolic.svg', install_dir: join_paths(icondir, 'symbolic/apps') ) service_conf = configuration_data() service_conf.set('bindir', join_paths(get_option('prefix'), get_option('bindir'))) configure_file( input: 'io.github.celluloid_player.Celluloid.service.in', output: 'io.github.celluloid_player.Celluloid.service', configuration: service_conf, install_dir: join_paths(get_option('datadir'), 'dbus-1', 'services') ) appstream_util = find_program('appstream-util', required: false) if appstream_util.found() test('Validate appstream file', appstream_util, args: ['validate', '--nonet', appdata]) endif desktop_file_validate = find_program('desktop-file-validate', required: false) if desktop_file_validate.found() test('Validate desktop file', desktop_file_validate, args: [desktop]) endif glib_compile_schemas = find_program('glib-compile-schemas', required: false) if glib_compile_schemas.found() test('Validate schema file', glib_compile_schemas, args: ['--strict', '--dry-run', meson.current_source_dir()] ) endif celluloid-0.20/docs/000077500000000000000000000000001373135401300143375ustar00rootroot00000000000000celluloid-0.20/docs/Makefile.am000066400000000000000000000000611373135401300163700ustar00rootroot00000000000000man_MANS=celluloid.1 EXTRA_DIST = $(man_MANS) celluloid-0.20/docs/celluloid.1000066400000000000000000000034661373135401300164060ustar00rootroot00000000000000.\"Copyright (c) 2017-2019 gnome-mpv .\" .\"This file is part of Celluloid. .\" .\"Celluloid is free software: you can redistribute it and/or modify .\"it under the terms of the GNU General Public License as published by .\"the Free Software Foundation, either version 3 of the License, or .\"(at your option) any later version. .\" .\"Celluloid is distributed in the hope that it will be useful, .\"but WITHOUT ANY WARRANTY; without even the implied warranty of .\"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the .\"GNU General Public License for more details. .\" .\"You should have received a copy of the GNU General Public License .\"along with Celluloid. If not, see . .TH celluloid 1 "19 July 2017" .SH NAME celluloid \- A simple GTK+ frontend for mpv .SH SYNOPSIS .B celluloid [\fIoptions...\fR] [\fIfilenames\fR|\fIURIs\fR] .SH DESCRIPTION \fBCelluloid\fR is a simple GTK+ frontend for \fBmpv\fR. \fBCelluloid\fR interacts with \fBmpv\fR via the client API exported by libmpv, allowing access to \fBmpv\fR's powerful playback capabilities. .SH OPTIONS .TP \fB\-?, \-h, \-\-help\fR Show help options. .TP \fB\--new-window\fR Create a new window if there is already a running instance. The option has no effect otherwise. .TP \fB\--enqueue\fR Append the given files or URIs to the playlist if there is a running instance. The option has no effect otherwise. .TP \fB\--mpv-options=OPTIONS\fR Deprecated. Pass arbitrary options to mpv. .TP \fB\--mpv-MPVOPTION=VALUE\fR Set mpv option \fBMPVOPTION\fR to \fBVALUE\fR. For example, \fB--mpv-vf=vflip\fR will set the mpv option \fBvf\fR to \fBvflip\fR. This is equivalent to passing \fB--vf=vflip\fR to mpv. .TP \fB\--version\fR Print the release version and exit. .SH BUGS Please report bugs at https://github.com/celluloid-player/celluloid/issues. celluloid-0.20/docs/meson.build000066400000000000000000000000331373135401300164750ustar00rootroot00000000000000install_man('celluloid.1') celluloid-0.20/meson-post-install.py000077500000000000000000000012031373135401300175300ustar00rootroot00000000000000#!/usr/bin/env python3 import os import subprocess prefix = os.environ.get('MESON_INSTALL_PREFIX', '/usr/local') datadir = os.path.join(prefix, 'share') # Packaging tools define DESTDIR and this isn't needed for them if not 'DESTDIR' in os.environ: print('Compiling gsettings schemas...') subprocess.call(['glib-compile-schemas', os.path.join(datadir, 'glib-2.0', 'schemas')]) print('Updating icon cache...') subprocess.call(['gtk-update-icon-cache', '-qtf', os.path.join(datadir, 'icons', 'hicolor')]) print('Updating desktop database...') subprocess.call(['update-desktop-database', '-q', os.path.join(datadir, 'applications')]) celluloid-0.20/meson.build000066400000000000000000000025071373135401300155550ustar00rootroot00000000000000project('celluloid', 'c', version: '0.20', meson_version: '>= 0.49.0', default_options: [ 'warning_level=2', 'c_std=gnu99', ] ) i18n = import('i18n') cc = meson.get_compiler('c') test_cflags = [ '-funsigned-char', '-fstack-protector-strong', '-fPIE', '-fPIC', '-Wconversion', '-Winline', '-Wno-padded', '-Wno-unused-parameter', '-Wstrict-prototypes', '-Wmissing-prototypes', '-Werror=implicit-function-declaration', '-Werror=pointer-arith', '-Werror=init-self', ['-Werror=format-security', '-Werror=format=2'], # Must be checked together '-Werror=missing-include-dirs', '-Werror=date-time' ] global_cflags = [] foreach cflag : test_cflags if cc.has_multi_arguments(cflag) global_cflags += cflag endif endforeach if cc.has_header('execinfo.h') global_cflags += '-DHAVE_EXECINFO_H' endif add_project_arguments(global_cflags, language: 'c') test_ldflags = [ '-pie', '-Wl,-z,relro', '-Wl,-z,now' ] global_ldflags = [] foreach ldflag : test_ldflags if cc.has_argument(ldflag) global_ldflags += ldflag endif endforeach add_project_link_arguments(global_ldflags, language: 'c') if not cc.has_function('setlocale') error('Could not find setlocale()') endif subdir('src') subdir('data') subdir('docs') subdir('po') subdir('test') meson.add_install_script('meson-post-install.py') celluloid-0.20/po/000077500000000000000000000000001373135401300140255ustar00rootroot00000000000000celluloid-0.20/po/LINGUAS000066400000000000000000000001431373135401300150500ustar00rootroot00000000000000bg ca cs da de eo es fa fr hr hu it ja nl pl pt_BR pt_PT ro ru sl sr sr@latin sv tr uk zh_CN zh_TW celluloid-0.20/po/Makevars000066400000000000000000000007101373135401300155170ustar00rootroot00000000000000subdir = po top_builddir = .. DOMAIN = $(PACKAGE) XGETTEXT_OPTIONS = --from-code=UTF-8 --keyword=_ --keyword=N_ --keyword=C_:1c,2 --keyword=NC_:1c,2 --keyword=g_dngettext:2,3 --add-comments COPYRIGHT_HOLDER = Celluloid PACKAGE_GNU = no MSGID_BUGS_ADDRESS = https://github.com/celluloid/celluloid/issues EXTRA_LOCALE_CATEGORIES = USE_MSGCTXT = no MSGMERGE_OPTIONS = --quiet MSGINIT_OPTIONS = PO_DEPENDS_ON_POT = no DIST_DEPENDS_ON_UPDATE_PO = no celluloid-0.20/po/POTFILES.in000066400000000000000000000016401373135401300156030ustar00rootroot00000000000000data/io.github.celluloid_player.Celluloid.gschema.xml data/io.github.celluloid_player.Celluloid.appdata.xml.in data/io.github.celluloid_player.Celluloid.desktop.in src/celluloid-application.c src/celluloid-common.c src/celluloid-control-box.c src/celluloid-controller-actions.c src/celluloid-controller.c src/celluloid-controller-input.c src/celluloid-file-chooser.c src/celluloid-header-bar.c src/celluloid-main.c src/celluloid-main-window.c src/celluloid-menu.c src/celluloid-metadata-cache.c src/celluloid-model.c src/celluloid-mpv.c src/celluloid-mpv-wrapper.c src/celluloid-open-location-dialog.c src/celluloid-option-parser.c src/celluloid-player.c src/celluloid-player-options.c src/celluloid-playlist-widget.c src/celluloid-plugins-manager.c src/celluloid-plugins-manager-item.c src/celluloid-preferences-dialog.c src/celluloid-seek-bar.c src/celluloid-shortcuts-window.c src/celluloid-video-area.c src/celluloid-view.c celluloid-0.20/po/bg.po000066400000000000000000001330721373135401300147630ustar00rootroot00000000000000# cybercop , 2019. #zanata # gnome-mpv , 2019. #zanata # cybercop , 2020. #zanata # gnome-mpv , 2020. #zanata msgid "" msgstr "" "Project-Id-Version: 0.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-02-20 20:48+0700\n" "PO-Revision-Date: 2020-09-12 08:27-0400\n" "Last-Translator: gnome-mpv \n" "Language-Team: Bulgarian\n" "Language: bg\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" "X-Generator: Zanata 4.6.2\n" #: data/io.github.celluloid_player.Celluloid.gschema.xml:11 msgid "" "Whether the settings has already been migrated from the previous version" msgstr "Дали настройките вече са прехвърлени от предишната версия" #: data/io.github.celluloid_player.Celluloid.gschema.xml:17 msgid "Whether or not to automatically resize window to fit video" msgstr "Да се преоразмерява ли автоматично прозореца според видеото" #: data/io.github.celluloid_player.Celluloid.gschema.xml:23 msgid "Enable or disable dark theme" msgstr "Включване или изключване на тъмната тема" #: data/io.github.celluloid_player.Celluloid.gschema.xml:29 msgid "Enable or disable client-side decorations" msgstr "Включване или изключване на Gnome 3 декорацията" #: data/io.github.celluloid_player.Celluloid.gschema.xml:35 msgid "Whether or not to use floating controls in windowed mode" msgstr "Да се ползват ли плаващи контролери в прозоречен режим" #: data/io.github.celluloid_player.Celluloid.gschema.xml:41 msgid "Whether or not to autohide mouse cursor in windowed mode" msgstr "Да се скрива ли автоматично курсора на мишката в прозоречен режим" #: data/io.github.celluloid_player.Celluloid.gschema.xml:47 msgid "The minimum cursor speed at which floating controls will be unhidden." msgstr "" "Минималната скорост на курсора, при която да се покажат плаващите " "контролери." #: data/io.github.celluloid_player.Celluloid.gschema.xml:54 msgid "" "The size of the dead zone in which cursor movement will not cause the " "controls to be shown." msgstr "" "Размерът на мъртвата зона, в която движението на курсора няма да доведе до " "показване на контролите." #: data/io.github.celluloid_player.Celluloid.gschema.xml:60 msgid "Whether or not to use skip buttons for controlling playlist" msgstr "Дали да се използват бутони за пропускане за управление на списъка" #: data/io.github.celluloid_player.Celluloid.gschema.xml:66 msgid "" "Whether or not to make file chooser dialog remember last folder accessed" msgstr "Да бъде ли запомнян последния избран файл или посетена папка" #: data/io.github.celluloid_player.Celluloid.gschema.xml:72 msgid "Whether or not to create new windows when there is already an instance" msgstr "Да се създават ли нови прозорци, когато вече има такъв" #: data/io.github.celluloid_player.Celluloid.gschema.xml:78 #: src/celluloid-application.c:575 msgid "Options to pass to mpv" msgstr "Внасяне на настройки от MPV" #: data/io.github.celluloid_player.Celluloid.gschema.xml:84 msgid "Path to mpv configuration file" msgstr "Път до конфигурационен файл на MPV" #: data/io.github.celluloid_player.Celluloid.gschema.xml:90 msgid "Load or don't load mpv configuration file" msgstr "Да се зареди ли конфигурационния файл от MPV" #: data/io.github.celluloid_player.Celluloid.gschema.xml:96 msgid "Path to mpv input configuration file" msgstr "Път до внесения конфигурационен файл на MPV" #: data/io.github.celluloid_player.Celluloid.gschema.xml:102 msgid "Load or don't load mpv input configuration file" msgstr "Да се зареди ли внесен MPV конфигурационен файл" #: data/io.github.celluloid_player.Celluloid.gschema.xml:108 msgid "Whether or not to enable MPRIS support" msgstr "Разрешена ли е поддръжка на MPRIS" #: data/io.github.celluloid_player.Celluloid.gschema.xml:114 msgid "" "Whether or not to enable GNOME-Settings-Daemon-based media keys support" msgstr "" "Включена ли е поддръжка на мултимедийни клавиши в GNOME-Settings-Daemon" #: data/io.github.celluloid_player.Celluloid.gschema.xml:120 msgid "Whether or not to prefetch metadata for non-current playlist entries" msgstr "" "Да се извличат ли метаданни за елементи от вече несъществуващи списъци" #: data/io.github.celluloid_player.Celluloid.gschema.xml:126 msgid "" "Whether or not to display an error message when playback of a file ends with" " an error" msgstr "" "Да се показва ли съобщение, когато възпроизвеждането на файл завършва с " "грешка" #: data/io.github.celluloid_player.Celluloid.gschema.xml:132 msgid "Whether or not to inhibit session idling when something is playing" msgstr "Дали да се инхибира сесията на празен ход, когато нещо се изпълнява" #: data/io.github.celluloid_player.Celluloid.gschema.xml:142 msgid "Width of the window" msgstr "Ширина на прозореца" #: data/io.github.celluloid_player.Celluloid.gschema.xml:148 msgid "Height of the window" msgstr "Височина на прозореца" #: data/io.github.celluloid_player.Celluloid.gschema.xml:154 msgid "Whether or not the window is maximized" msgstr "Да бъде ли максимизиран прозореца" #: data/io.github.celluloid_player.Celluloid.gschema.xml:161 msgid "Volume of player" msgstr "Сила на звука на плеъра" #: data/io.github.celluloid_player.Celluloid.gschema.xml:167 msgid "Whether or not to loop when the end of playlist is reached" msgstr "Да се превърти ли списъка, когато е достигнат края му" #: data/io.github.celluloid_player.Celluloid.gschema.xml:173 msgid "Width of the playlist" msgstr "Ширина на спъсъка за изпълнение" #: data/io.github.celluloid_player.Celluloid.gschema.xml:179 msgid "Show or not show the controls" msgstr "Да се показват ли контролерите" #: data/io.github.celluloid_player.Celluloid.gschema.xml:185 msgid "Show or not show the playlist" msgstr "Показване и скриване на списъка за изпълнение" #: data/io.github.celluloid_player.Celluloid.gschema.xml:191 msgid "URI of the last folder accessed" msgstr "Адрес на последната посещавана папка" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:7 #: data/io.github.celluloid_player.Celluloid.desktop.in:4 #: src/celluloid-application.c:451 msgid "Celluloid" msgstr "Celluloid" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:8 msgid "GTK+ frontend for mpv" msgstr "GTK+ интерфейс за MPV" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:16 msgid "" "Celluloid is a simple media player that can play virtually all video and " "audio formats. It supports playlists and MPRIS2 media player controls. The " "design of Celluloid follows the GNOME Human Interface Guidelines, but can " "also be adapted for other systems that don't use client-side decorations " "(CSD). It is based on the mpv library and GTK." msgstr "" "Celluloid е прост медиен плеър, който може да възпроизвежда практически " "всички видео и аудио формати. Той поддържа плейлисти и MPRIS2 контроли на " "медийния плеър. Дизайнът на Celluloid следва GNOME Human интерфейса, но може" " да бъде адаптиран и за други системи, които не използват декорации от " "страна на клиента (CSD). Той е базиран на MPV и GTK библиотеките." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:23 msgid "Features:" msgstr "Опции:" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:25 msgid "Drag and drop playlist" msgstr "Поддръжка на Drag'n'Drop" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:26 msgid "Loading external mpv configuration files" msgstr "Зареждане на външни MPV конфигурационни файлове" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:27 msgid "MPRIS2 D-Bus interface" msgstr "MPRIS2 D-Bus интерфейс" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:30 msgid "The Celluloid Developers" msgstr "Разработчиците на Celluloid" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:34 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:87 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:117 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:156 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:187 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:215 msgid "This release contains the following changes:" msgstr "Това издание съдържа следните промени:" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:38 msgid "" "Adjust the range of volume button based on the value of the volume-max " "property." msgstr "" "Регулиране диапазона на бутона за усилване въз основа на зададените от вас " "стойности за максимално ниво." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:42 msgid "Retain window maximization state across sessions." msgstr "Запазване състоянието на максимизиран прозорец през сесиите." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:45 msgid "Retain loop state across sessions." msgstr "Запазване на състоянието на превъртане през сесиите." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:48 msgid "Implement playlist search." msgstr "Внедряване на търсене в списъка." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:51 msgid "Update the list of shortcuts in Keyboard Shortcuts dialog." msgstr "Обновяване на списъка с бързи клавиши в диалога Бързи клавиши." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:54 msgid "Correctly handle quotes and escape sequences in extra mpv options." msgstr "" "Коректна работа с цитати и избягване на последователности в допълнителни " "опции за mpv." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:57 msgid "Display time at cursor position when hovering the seek bar." msgstr "" "Показване на време в позицията на курсора, когато се намира в лентата за " "търсене." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:60 msgid "" "Deprecate '--mpv-options'. Options starting with '--mpv-' can be used to set" " mpv options instead. For example, passing '--mpv-vf=vflip' to Celluloid is " "equivalent to passing '--vf=vflip' to mpv." msgstr "" "Изтегляне на '--mpv-опции'. Опциите, започващи с '--mpv-', могат да се " "използват вместо задаване на mpv опции. Например, поставянето на на '--mpv-" "vf=vflip' в Celluloid е еквивалентно на поставянето '--vf=vflip' в mpv." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:66 msgid "" "Add support for configuring dead zone, an area in which mouse movement will " "not cause controls to be shown." msgstr "" "Добавена е поддръжка за конфигуриране на \"мъртва зона\" - зона, в която " "движението на мишката няма да доведе до показване на контролите." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:70 msgid "Make window sizing work correctly with HiDPI displays." msgstr "" "Задаване на оразмеряването на прозореца да работи правилно с HiDPI дисплеи." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:73 msgid "Add Finnish translation by Kimmo Kujansuu." msgstr "Добавен е фински превод от Kimmo Kujansuu." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:76 msgid "Add Slovenian translation by @bertronika." msgstr "Добавен е словенски превод от @bertronika." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:80 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:110 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:149 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:180 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:208 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:236 msgid "This listing is incomplete. See git log for complete changelog." msgstr "Списъкът не е завършен. Вижте Git лога за пълния списък с промени." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:91 msgid "Add Persian translation by @danialbehzadi" msgstr "Добавен е превод на ирански от @danialbehzadi" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:94 msgid "Add Ukranian translation by @vl-nix" msgstr "Добавен е превод на украински от @vl-nix" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:97 msgid "" "Add support for showing/hiding window decorations using the mpv option " "--border" msgstr "" "Добавена е поддръжка за показване/скриване декорацията на прозореца с " "използване на MPV опцията --border" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:100 msgid "Add menu item for opening discs" msgstr "Добавен е елемент в менюто за отваряне на дискове" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:103 msgid "Block cursor autohide when volume popup is open in windowed mode" msgstr "" "Блокиране на автоматичното скриване на курсора, когато уведомлението за " "силата на звука е отворено в прозоречен режим" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:106 msgid "Fix crash with mpv 0.30" msgstr "Фиксиране на срив в MPV 0.30" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:121 msgid "Rename project to Celluloid" msgstr "Проектът е преименуван на Celluloid" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:124 msgid "Add Turkish translation by @TeknoMobil" msgstr "Добавен е превод на турски от @TeknoMobil" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:127 msgid "Add Esperanto translation by @F3nd0" msgstr "Добавен е превод на есперанто от @F3nd0" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:130 msgid "Migrate from opengl-cb to the new render API" msgstr "Миграция от opengl-cb към нов API за рендиране" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:133 msgid "Handle numpad keybindings" msgstr "Присвояване на клавиши за цифрова клавиатура" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:136 msgid "Handle unicode keybindings" msgstr "Присвояване на клавиши за Unicode" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:139 msgid "Forward media key events to mpv" msgstr "Препращане на медийни ключови събития към mpv" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:142 msgid "" "Add dconf key for controlling cursor speed at which controls are unhidden" msgstr "" "Добавяне на dconf ключ за контролиране скоростта на курсора, когато " "контролерите са видими." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:145 msgid "Add option for suppressing playback errors" msgstr "Добавяне на опция за игнориране на грешки при възпроизвеждане" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:160 msgid "Split up the General tab in the preferences dialog" msgstr "Разделен е разделът Общи в диалога с настройките" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:163 msgid "Improve behavior when toggling playlist under tiling window managers" msgstr "" "Подобряване на поведението при превключване на списъка за изпълнение при " "тилинг мениджъри на прозорци " #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:166 msgid "Move app menu items to primary menu" msgstr "Преместени са елементите от менюто на програмите в основното меню" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:169 msgid "Use separate MPRIS DBus connection for each window" msgstr "Използвана е отделна MPRIS DBus връзка за всеки прозорец" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:172 msgid "Add support for MPRIS property LoopStatus" msgstr "Добавена е поддръжка за свойствата на MPRIS LoopStatus" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:175 msgid "" "Add option --mpv-options for setting arbitrary mpv options from the command-" "line" msgstr "" "Добавете опция --mpv-options за задаване на произволни mpv опции от команден" " ред" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:191 msgid "Set default screenshot directory to XDG_PICTURES_DIR" msgstr "" "Задаване на директорията за снимки на екрана по подразбиране в " "XDG_PICTURES_DIR" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:194 msgid "" "Improve handling of --window-scale, --autofit, --autofit-larger, and " "--autofit-smaller" msgstr "" "Подобряване на обработката на мащаба на - Window, --autofit, --autofit-large" " и --autofit-small" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:198 msgid "Add command line option for setting WM_ROLE" msgstr "Добавяне опцията за команден ред за настройка на WM_ROLE" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:201 msgid "Add context menu item for removing playlist items" msgstr "" "Добавена е опция в контекстното меню за премахване на елементи от списъка за" " изпълнение" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:204 msgid "Add context menu item for copying location of playlist items" msgstr "" "Добавяне на елемент от контекстното меню за копиране на местоположението на " "елементите от списъка за изпълнение" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:219 msgid "" "Add option to make skip buttons change playlist entries rather than chapters" msgstr "" "Добавена е опция, бутона за пропускане да променя елементите от списъка, а " "не не заглавията" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:223 msgid "Make the file chooser accept non-local locations" msgstr "Файловия браузър има възможност да избира не-локални местоположение" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:226 msgid "Add right-click menu entry for looping a single file" msgstr "" "Добавяне на елемент в менюто при десен бутон на мишката за превъртане на " "единичен файл" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:229 msgid "Handle property change events for fullscreen and window-scale" msgstr "" "Обработване на събития за промяна на свойствата за цял екран и мащаб на " "прозореца" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:232 msgid "Add option to autohide mouse cursor in windowed mode" msgstr "Добавена е опция за скриване на курсора на мишката в прозоречен режим" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:246 msgid "The main window showing the application in action" msgstr "Основният прозорец показва програмата в действие" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:250 msgid "The main window with CSD disabled" msgstr "Главният прозорец с изключен CSD" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:254 msgid "The main window with playlist open" msgstr "Главният прозорец с отворен спъсък за изпълнение" #: data/io.github.celluloid_player.Celluloid.desktop.in:5 msgid "Multimedia Player" msgstr "Мултимедиен плеър" #: data/io.github.celluloid_player.Celluloid.desktop.in:6 msgid "Play movies and videos" msgstr "Изпълнение на филми и видеоклипове" #. Translators: Search terms to find this application. Don't translate the #. semicolons! The list MUST also end with a semicolon! #: data/io.github.celluloid_player.Celluloid.desktop.in:17 msgid "Video;Movie;Film;Clip;Series;Player;DVD;TV;Disc;Album;Music;GNOME;mpv;" msgstr "Видео;Кино;Филм;Клип;Сериал;Плеър;DVD;TV;Диск, Албум;Музика;Gnome;MPV" #: data/io.github.celluloid_player.Celluloid.desktop.in:23 msgid "New Window" msgstr "Нов прозорец" #: src/celluloid-application.c:495 msgid "Playing" msgstr "Изпълнение" #: src/celluloid-application.c:551 msgid "Show release version" msgstr "Покажи текущата версия" #: src/celluloid-application.c:559 msgid "Enqueue" msgstr "На опашка" #: src/celluloid-application.c:567 msgid "Create a new window" msgstr "Създаване на нов прозорец" #: src/celluloid-application.c:576 msgid "OPTIONS" msgstr "ОПЦИИ" #: src/celluloid-application.c:583 msgid "Set the window role" msgstr "Задаване роля на прозореца" #: src/celluloid-application.c:591 msgid "Don't connect to an already-running instance" msgstr "Не свързвайте към вече стартиран екземпляр" #: src/celluloid-control-box.c:362 msgid "Pause" msgstr "Пауза" #: src/celluloid-control-box.c:362 src/celluloid-control-box.c:565 msgid "Play" msgstr "Изпълнение" #: src/celluloid-control-box.c:568 msgid "Stop" msgstr "Спиране" #: src/celluloid-control-box.c:571 msgid "Forward" msgstr "Напред" #: src/celluloid-control-box.c:574 msgid "Rewind" msgstr "Назад" #: src/celluloid-control-box.c:577 msgid "Next Chapter" msgstr "Следващо заглавие" #: src/celluloid-control-box.c:580 msgid "Previous Chapter" msgstr "Предишно заглавие" #: src/celluloid-control-box.c:583 msgid "Loop Playlist" msgstr "Превъртане на списъка" #: src/celluloid-control-box.c:586 msgid "Shuffle Playlist" msgstr "Разбъркване на списъка" #: src/celluloid-control-box.c:589 src/celluloid-header-bar.c:91 msgid "Toggle Fullscreen" msgstr "Включване/изключване режима на цял екран" #: src/celluloid-controller.c:992 src/celluloid-view.c:1558 msgid "Error" msgstr "Грешка" #: src/celluloid-file-chooser.c:139 src/celluloid-plugins-manager.c:170 msgid "All Files" msgstr "Всички файлове" #: src/celluloid-file-chooser.c:147 msgid "Media Files" msgstr "Мултимедийни файлове" #: src/celluloid-file-chooser.c:158 msgid "Audio Files" msgstr "Аудио файлове" #: src/celluloid-file-chooser.c:166 msgid "Video Files" msgstr "Видео файлове" #: src/celluloid-file-chooser.c:174 msgid "Image Files" msgstr "Файлове с изображения" #: src/celluloid-file-chooser.c:184 msgid "Subtitle Files" msgstr "Фалове със субтитри" #: src/celluloid-menu.c:106 msgid "None" msgstr "Няма" #. For simplicity, also dup the default string used when the #. * track has no title. #: src/celluloid-menu.c:121 msgid "Unknown" msgstr "Неизвестно" #: src/celluloid-menu.c:154 msgid "_Load External…" msgstr "_Зареждане на външен…" #. Disable the menu item by setting the action to something #. * invalid. #: src/celluloid-menu.c:207 msgid "No disc found" msgstr "Не е намерен диск" #: src/celluloid-menu.c:235 msgid "_File" msgstr "_Файл" #: src/celluloid-menu.c:236 src/celluloid-menu.c:318 msgid "_Open…" msgstr "_Отваряне..." #: src/celluloid-menu.c:237 src/celluloid-menu.c:319 msgid "Open _Folder…" msgstr "Отваряне на _папка..." #: src/celluloid-menu.c:238 src/celluloid-menu.c:320 msgid "Open _Location…" msgstr "Отваряне на _местоположение..." #: src/celluloid-menu.c:239 msgid "Open _Disc…" msgstr "Отваряне на _диск..." #: src/celluloid-menu.c:240 src/celluloid-menu.c:290 msgid "_Save Playlist" msgstr "_Запазване на списък за изпълнение" #: src/celluloid-menu.c:241 src/celluloid-menu.c:323 msgid "_New Window" msgstr "_Нов прозорец" #: src/celluloid-menu.c:242 msgid "_Quit" msgstr "_Изход" #: src/celluloid-menu.c:243 msgid "_Edit" msgstr "_Редактиране" #: src/celluloid-menu.c:244 src/celluloid-menu.c:296 msgid "_Preferences" msgstr "_Предпочитания" #: src/celluloid-menu.c:245 src/celluloid-menu.c:292 msgid "_Video Track" msgstr "_Видео запис" #: src/celluloid-menu.c:246 src/celluloid-menu.c:293 msgid "_Audio Track" msgstr "_Аудио запис" #: src/celluloid-menu.c:247 src/celluloid-menu.c:294 msgid "S_ubtitle Track" msgstr "_Файл със субтитри" #: src/celluloid-menu.c:248 msgid "_View" msgstr "_Преглед" #: src/celluloid-menu.c:249 src/celluloid-menu.c:287 msgid "_Toggle Controls" msgstr "Включване/изключване на _контролерите" #: src/celluloid-menu.c:250 src/celluloid-menu.c:289 msgid "_Toggle Playlist" msgstr "Включване/изключване на _списъка за изпълнение" #: src/celluloid-menu.c:251 msgid "_Fullscreen" msgstr "_Режим на цял екран" #: src/celluloid-menu.c:252 msgid "_Help" msgstr "_Помощ" #: src/celluloid-menu.c:253 src/celluloid-menu.c:297 msgid "_Keyboard Shortcuts" msgstr "_Клавишни комбинации" #: src/celluloid-menu.c:254 src/celluloid-menu.c:298 msgid "_About Celluloid" msgstr "_Относно Celluloid" #: src/celluloid-menu.c:321 msgid "Open _Disc" msgstr "Отваряне на _диск" #: src/celluloid-mpv.c:240 #, c-format msgid "Playback was terminated abnormally. Reason: %s." msgstr "Възпрозвеждането беше спряно непредвидено. Причина: %s." #: src/celluloid-open-location-dialog.c:130 msgid "Location:" msgstr "Местоположение:" #: src/celluloid-open-location-dialog.c:136 #: src/celluloid-preferences-dialog.c:401 msgid "_Cancel" msgstr "_Отказ" #: src/celluloid-open-location-dialog.c:138 msgid "_Open" msgstr "_Отваряне" #: src/celluloid-player.c:550 msgid "Failed to apply one or more MPV options." msgstr "Не могат да бъдат приложени една или повече опции за MPV." #: src/celluloid-playlist-widget.c:784 msgid "_Copy Location" msgstr "_Копиране на местоположението" #: src/celluloid-playlist-widget.c:785 msgid "_Remove" msgstr "_Премахване" #: src/celluloid-playlist-widget.c:787 msgid "_Add…" msgstr "_Добавяне…" #: src/celluloid-playlist-widget.c:788 msgid "Add _Folder…" msgstr "Добавяне на _папка..." #: src/celluloid-playlist-widget.c:789 msgid "Add _Location…" msgstr "Добавяне на _местоположение…" #: src/celluloid-playlist-widget.c:790 msgid "_Shuffle" msgstr "_Разбъркано" #: src/celluloid-playlist-widget.c:791 msgid "Loop _File" msgstr "Превъртане на _файл" #: src/celluloid-playlist-widget.c:792 msgid "Loop _Playlist" msgstr "Превъртане на _списък" #: src/celluloid-playlist-widget.c:933 src/celluloid-shortcuts-window.c:136 msgid "Playlist" msgstr "Списък за изпълнение" #: src/celluloid-playlist-widget.c:941 msgid "Playlist is empty" msgstr "Списъкът е празен" #: src/celluloid-plugins-manager.c:163 src/celluloid-plugins-manager.c:409 msgid "Add Plugin" msgstr "Добавяне на разширение" #: src/celluloid-plugins-manager.c:175 msgid "Lua Plugins" msgstr "Lua разширения" #: src/celluloid-plugins-manager.c:181 msgid "JavaScript Plugins" msgstr "JavaScript разширения" #: src/celluloid-plugins-manager.c:186 msgid "C Plugins" msgstr "C - разширения" #: src/celluloid-plugins-manager.c:334 #, c-format msgid "Failed to copy file from '%s' to '%s'. Reason: %s" msgstr "Неуспешно копиране на файл от '%s' в '%s'. Причина: %s" #: src/celluloid-plugins-manager.c:385 msgid "No plugins found" msgstr "Не са намерени разширения" #: src/celluloid-plugins-manager-item.c:79 msgid "Remove" msgstr "Премахване" #: src/celluloid-plugins-manager-item.c:178 msgid "" "Are you sure you want to remove this script? This action cannot be undone." msgstr "" "Сигурен ли сте, че искате да премахнете този скрипт? Това действие не може " "да бъде отменено." #: src/celluloid-plugins-manager-item.c:199 #, c-format msgid "Failed to delete file '%s'. Reason: %s" msgstr "Неуспешно изтриване на файл '%s'. Причина: %s" #: src/celluloid-preferences-dialog.c:304 msgid "Automatically resize window to fit video" msgstr "Автоматично преоразмеряване на прозореца според видеото" #: src/celluloid-preferences-dialog.c:307 msgid "Enable client-side decorations" msgstr "Включване на вградената Gnome 3 декорация" #: src/celluloid-preferences-dialog.c:310 msgid "Enable dark theme" msgstr "Включване на тъмната тема" #: src/celluloid-preferences-dialog.c:313 msgid "Use floating controls in windowed mode" msgstr "Използване на плаващи контролери в прозоречен режим" #: src/celluloid-preferences-dialog.c:316 msgid "Autohide mouse cursor in windowed mode" msgstr "Автоматично скриване на курсора на мишката в прозоречен режим" #: src/celluloid-preferences-dialog.c:319 msgid "Use skip buttons for controlling playlist" msgstr "Използване на бутони за прескачане за управление на списъка" #: src/celluloid-preferences-dialog.c:322 msgid "Remember last file's location" msgstr "Запомняне на последното местоположение на файловете" #: src/celluloid-preferences-dialog.c:327 msgid "Load MPV configuration file" msgstr "Зареждане на MPV конфигурационен файл" #: src/celluloid-preferences-dialog.c:330 msgid "MPV configuration file:" msgstr " MPV конфигурационен файл:" #: src/celluloid-preferences-dialog.c:333 msgid "Load MPV input configuration file" msgstr "Зареждане на внесен MPV конфигурационен файл" #: src/celluloid-preferences-dialog.c:336 msgid "MPV input configuration file:" msgstr "Внесен MPV конфигурационен файл:" #: src/celluloid-preferences-dialog.c:341 msgid "Always open new window" msgstr "Винаги да се отваря нов прозорец" #: src/celluloid-preferences-dialog.c:344 msgid "Ignore playback errors" msgstr "Игнориране на грешки при възпроизвеждане" #: src/celluloid-preferences-dialog.c:347 msgid "Prefetch metadata" msgstr "Предварително изтегляне на метаданни" #: src/celluloid-preferences-dialog.c:350 msgid "Enable MPRIS support" msgstr "Включване поддръжка на MPRIS" #: src/celluloid-preferences-dialog.c:353 msgid "Enable media keys support" msgstr "Включване поддръжка на мултимедийни клавиши" #: src/celluloid-preferences-dialog.c:356 msgid "Extra MPV options:" msgstr "Допълнителни опции за MPV:" #: src/celluloid-preferences-dialog.c:389 msgid "Interface" msgstr "Интерфейс" #: src/celluloid-preferences-dialog.c:392 msgid "Config Files" msgstr "Конфигурационни файлове" #: src/celluloid-preferences-dialog.c:395 msgid "Miscellaneous" msgstr "Разни" #: src/celluloid-preferences-dialog.c:398 msgid "Plugins" msgstr "Разширения" #: src/celluloid-preferences-dialog.c:403 msgid "_Save" msgstr "_Запазване" #: src/celluloid-preferences-dialog.c:421 msgid "Preferences" msgstr "Предпочитания" #: src/celluloid-shortcuts-window.c:57 msgid "Open file" msgstr "Отваряне на файл" #: src/celluloid-shortcuts-window.c:58 msgid "Open location" msgstr "Отваряне на местоположение" #: src/celluloid-shortcuts-window.c:59 msgid "Add file to playlist" msgstr "Добавяне на файлове в списъка за изпълнение" #: src/celluloid-shortcuts-window.c:60 msgid "Add location to playlist" msgstr "Добавяне на местоположение в списъка за изпълнение" #: src/celluloid-shortcuts-window.c:61 msgid "Show preferences dialog" msgstr "Показване на диалога с настройките" #: src/celluloid-shortcuts-window.c:62 msgid "Toggle controls" msgstr "Показване/скриване на контролерите" #: src/celluloid-shortcuts-window.c:63 msgid "Toggle playlist" msgstr "Показване/скриване на списъка за изпълнение" #: src/celluloid-shortcuts-window.c:64 msgid "Toggle fullscreen mode" msgstr "Превключване в режим на цял екран" #: src/celluloid-shortcuts-window.c:65 msgid "Leave fullscreen mode" msgstr "Изход от режима на цял екран" #: src/celluloid-shortcuts-window.c:66 msgid "Toggle OSD states between normal and playback time/duration" msgstr "" "Превключване в OSD режим между нормалното време и времето на " "възпроизвеждане/продължителност" #: src/celluloid-shortcuts-window.c:67 msgid "Show filename on the OSD" msgstr "Показване името на файла в OSD" #: src/celluloid-shortcuts-window.c:68 msgid "Show progress, elapsed time, and duration on the OSD" msgstr "Показване на прогреса, оставащото време и продължителност в OSD" #: src/celluloid-shortcuts-window.c:71 msgid "Seek backward/forward 5 seconds" msgstr "Прескачане назад/напред с 5 секунди" #: src/celluloid-shortcuts-window.c:72 msgid "Exact seek backward/forward 1 second" msgstr "Прецизно прескачане назад/напред с 1 секунда" #: src/celluloid-shortcuts-window.c:73 msgid "Seek backward/forward 1 minute" msgstr "Прескачане назад/напред с 1 минута" #: src/celluloid-shortcuts-window.c:74 msgid "Exact seek backward/forward 5 seconds" msgstr "Прецизно прескачане назад/напред с 5 секунди" #: src/celluloid-shortcuts-window.c:75 msgid "Seek to previous/next subtitle" msgstr "Преминаване към предишните/следващите субтитри" #: src/celluloid-shortcuts-window.c:76 msgid "Step backward/forward a single frame" msgstr "Стъпка назад/напред с един кадър" #: src/celluloid-shortcuts-window.c:77 msgid "Seek to the beginning of the previous/next chapter" msgstr "Преминаване към предишното/следващото заглавие" #: src/celluloid-shortcuts-window.c:80 msgid "Decrease/increase playback speed by 10%" msgstr "Намаляване/увеличаване скоростта на възпроизвеждане с 10%" #: src/celluloid-shortcuts-window.c:81 msgid "Halve/double current playback speed" msgstr "Намаляване наполовина/удвояване скоростта на изпълнение" #: src/celluloid-shortcuts-window.c:82 msgid "Reset playback speed to normal" msgstr "Нулиране скоростта на изпълнение до нормална стойност" #: src/celluloid-shortcuts-window.c:83 msgid "Go backward/forward in the playlist" msgstr "Отиване назад/напред в списъка за изпълнение" #: src/celluloid-shortcuts-window.c:84 msgid "Remove selected playlist item" msgstr "Премахване на избраните елементи от списъка за изпълнение" #: src/celluloid-shortcuts-window.c:85 msgid "Save playlist" msgstr "Запазване на списъка за изпълнение" #: src/celluloid-shortcuts-window.c:86 msgid "Set/clear A-B loop points" msgstr "Задай/изчисти точки на повторение A-B" #: src/celluloid-shortcuts-window.c:87 msgid "Toggle infinite looping" msgstr "Включване/изключване на напрекъснатото повторение" #: src/celluloid-shortcuts-window.c:88 msgid "Pause or unpause" msgstr "Пауза и възобновяване" #: src/celluloid-shortcuts-window.c:89 msgid "Quit" msgstr "Изход" #: src/celluloid-shortcuts-window.c:90 msgid "Save current playback position and quit" msgstr "Запазване на текущата позиция на възпроизвеждане и изход" #: src/celluloid-shortcuts-window.c:93 msgid "Enter search mode" msgstr "Влизане в режим на търсене" #: src/celluloid-shortcuts-window.c:94 msgid "Jump to next match" msgstr "Прескачане до следващият резултат" #: src/celluloid-shortcuts-window.c:95 msgid "Jump to previous match" msgstr "Прескачане до предишният резултат" #: src/celluloid-shortcuts-window.c:96 msgid "Exit search mode" msgstr "Изход от режима за търсене" #: src/celluloid-shortcuts-window.c:99 msgid "Cycle through audio tracks" msgstr "Превъртане през аудио записите" #: src/celluloid-shortcuts-window.c:100 src/celluloid-shortcuts-window.c:101 msgid "Decrease/increase volume" msgstr "Намаляване/увеличаване силата на звука" #: src/celluloid-shortcuts-window.c:102 msgid "Mute or unmute" msgstr "Заглушаване и пускане на звука" #: src/celluloid-shortcuts-window.c:103 msgid "Adjust audio delay by +/- 0.1 seconds" msgstr "Задържане на аудиото с + / - 0,1 секунди" #: src/celluloid-shortcuts-window.c:106 msgid "Toggle subtitle visibility" msgstr "Превключване видимостта на субтитрите" #: src/celluloid-shortcuts-window.c:107 msgid "Cycle through available subtitles" msgstr "Превъртане през наличните субтитри" #: src/celluloid-shortcuts-window.c:108 msgid "Adjust subtitle delay by +/- 0.1 seconds" msgstr "Задържане на субтитрите с + / - 0,1 секунди" #: src/celluloid-shortcuts-window.c:109 msgid "Toggle SSA/ASS subtitles style override" msgstr "Превключване промяната стила на субтитрите SSA/ASS" #: src/celluloid-shortcuts-window.c:110 msgid "Move subtitles up/down" msgstr "Преместване на субтитрите нагоре/надолу" #: src/celluloid-shortcuts-window.c:111 msgid "Toggle VSFilter aspect compatibility mode" msgstr "Включване/изключване режим на VSFilter" #: src/celluloid-shortcuts-window.c:114 msgid "Cycle through video tracks" msgstr "Превъртане през видео записите" #: src/celluloid-shortcuts-window.c:115 msgid "Decrease/increase pan-and-scan range" msgstr "Намаляване/увеличаване диапазона на обхващане и сканиране" #: src/celluloid-shortcuts-window.c:116 msgid "Take a screenshot" msgstr "Направете снимка на екрана" #: src/celluloid-shortcuts-window.c:117 msgid "Take a screenshot, without subtitles" msgstr "Направете снимка на екрана без субтитри" #: src/celluloid-shortcuts-window.c:118 msgid "Take a screenshot, as the window shows it" msgstr "Направете снимка на екрана с всичко в прозореца" #: src/celluloid-shortcuts-window.c:119 msgid "Resize video to half its original size" msgstr "Оразмеряване на видеото в половината от оригиналния размер" #: src/celluloid-shortcuts-window.c:120 msgid "Resize video to its original size" msgstr "Оразмеряване на видеото в неговия оригинален размер" #: src/celluloid-shortcuts-window.c:121 msgid "Resize video to double its original size" msgstr "Оразмеряване на видеото в двоен размер спрямо оригинала" #: src/celluloid-shortcuts-window.c:122 msgid "Adjust contrast" msgstr "Настройка на контраста" #: src/celluloid-shortcuts-window.c:123 msgid "Adjust brightness" msgstr "Настройка на яркостта" #: src/celluloid-shortcuts-window.c:124 msgid "Adjust gamma" msgstr "Настройка на гамата" #: src/celluloid-shortcuts-window.c:125 msgid "Adjust saturation" msgstr "Настройка на наситеността" #: src/celluloid-shortcuts-window.c:126 msgid "Activate or deactivate deinterlacer" msgstr "Активирайте или деактивирайте деинтерлактора" #: src/celluloid-shortcuts-window.c:127 msgid "Cycle aspect ratio override" msgstr "Циклично презаписване на стойностите" #: src/celluloid-shortcuts-window.c:130 msgid "User Interface" msgstr "Потребителски интерфейс" #: src/celluloid-shortcuts-window.c:131 msgid "Video" msgstr "Видео" #: src/celluloid-shortcuts-window.c:132 msgid "Audio" msgstr "Аудио" #: src/celluloid-shortcuts-window.c:133 msgid "Subtitle" msgstr "Субтитри" #: src/celluloid-shortcuts-window.c:134 msgid "Playback" msgstr "Възпроизвеждане" #: src/celluloid-shortcuts-window.c:135 msgid "Seeking" msgstr "Търсене" #: src/celluloid-view.c:728 msgid "Load Audio Track…" msgstr "Зареди аудио запис…" #: src/celluloid-view.c:732 msgid "Load Video Track…" msgstr "Зареждане на видео запис..." #: src/celluloid-view.c:736 msgid "Load Subtitle Track…" msgstr "Зареди файл със субтитри…" #: src/celluloid-view.c:901 msgid "" "Enabling or disabling client-side decorations requires restarting to take " "effect." msgstr "" "Включването или изключването на вградената (Gnome 3) декорация изисква " "рестартиране за да влязат промените в сила." #: src/celluloid-view.c:1444 msgid "Add Folder to Playlist" msgstr "Добавяне на папка в списъка" #: src/celluloid-view.c:1444 msgid "Open Folder" msgstr "Отваряне на папка" #: src/celluloid-view.c:1449 msgid "Add File to Playlist" msgstr "Добавяне на файл в списъка" #: src/celluloid-view.c:1449 msgid "Open File" msgstr "Отваряне на файл" #: src/celluloid-view.c:1485 msgid "Add Location to Playlist" msgstr "Добавяне местоположение до списък" #: src/celluloid-view.c:1486 msgid "Open Location" msgstr "Отвори местоположение" #: src/celluloid-view.c:1532 msgid "Save Playlist" msgstr "Запазване на списъка" #: src/celluloid-view.c:1598 msgid "A GTK frontend for MPV" msgstr "GTK интерфейс за MPV" #: src/celluloid-view.c:1608 msgid "translator-credits" msgstr "Kiril Kirilov " celluloid-0.20/po/ca.po000066400000000000000000001135021373135401300147520ustar00rootroot00000000000000# Toni Estevez , 2019. #zanata # gnome-mpv , 2019. #zanata # Toni Estevez , 2020. #zanata msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-02-20 20:48+0700\n" "PO-Revision-Date: 2020-08-13 04:57-0400\n" "Last-Translator: Toni Estevez \n" "Language-Team: Catalan\n" "Language: ca\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" "X-Generator: Zanata 4.6.2\n" #: data/io.github.celluloid_player.Celluloid.gschema.xml:11 msgid "" "Whether the settings has already been migrated from the previous version" msgstr "Importa la configuració d'una versió anterior" #: data/io.github.celluloid_player.Celluloid.gschema.xml:17 msgid "Whether or not to automatically resize window to fit video" msgstr "Redimensiona automàticament la finestra a la mida del vídeo" #: data/io.github.celluloid_player.Celluloid.gschema.xml:23 msgid "Enable or disable dark theme" msgstr "Activa el tema fosc" #: data/io.github.celluloid_player.Celluloid.gschema.xml:29 msgid "Enable or disable client-side decorations" msgstr "Activa les decoracions del client" #: data/io.github.celluloid_player.Celluloid.gschema.xml:35 msgid "Whether or not to use floating controls in windowed mode" msgstr "Utilitza controls flotants en el mode finestra" #: data/io.github.celluloid_player.Celluloid.gschema.xml:41 msgid "Whether or not to autohide mouse cursor in windowed mode" msgstr "Amaga automàticament el punter del ratolí en el mode finestra" #: data/io.github.celluloid_player.Celluloid.gschema.xml:47 msgid "The minimum cursor speed at which floating controls will be unhidden." msgstr "" "La velocitat mínima del cursor a la qual s'amagaran els controls flotants." #: data/io.github.celluloid_player.Celluloid.gschema.xml:54 msgid "" "The size of the dead zone in which cursor movement will not cause the " "controls to be shown." msgstr "" "La mida de la zona morta en què el moviment del cursor no farà que es " "mostrin els controls." #: data/io.github.celluloid_player.Celluloid.gschema.xml:60 msgid "Whether or not to use skip buttons for controlling playlist" msgstr "Utilitza els botons de salt per controlar la llista de reproducció" #: data/io.github.celluloid_player.Celluloid.gschema.xml:66 msgid "" "Whether or not to make file chooser dialog remember last folder accessed" msgstr "Recorda la ubicació de l'últim fitxer obert" #: data/io.github.celluloid_player.Celluloid.gschema.xml:72 msgid "Whether or not to create new windows when there is already an instance" msgstr "Crea finestres noves quan ja hi hagi una instància" #: data/io.github.celluloid_player.Celluloid.gschema.xml:78 #: src/celluloid-application.c:575 msgid "Options to pass to mpv" msgstr "Opcions extra per a l'mpv:" #: data/io.github.celluloid_player.Celluloid.gschema.xml:84 msgid "Path to mpv configuration file" msgstr "Fitxer de configuració de l'mpv:" #: data/io.github.celluloid_player.Celluloid.gschema.xml:90 msgid "Load or don't load mpv configuration file" msgstr "Carrega el fitxer de configuració de l'mpv" #: data/io.github.celluloid_player.Celluloid.gschema.xml:96 msgid "Path to mpv input configuration file" msgstr "Fitxer de configuració de l'entrada de l'mpv" #: data/io.github.celluloid_player.Celluloid.gschema.xml:102 msgid "Load or don't load mpv input configuration file" msgstr "Carrega el fitxer de configuració de l'entrada de l'mpv" #: data/io.github.celluloid_player.Celluloid.gschema.xml:108 msgid "Whether or not to enable MPRIS support" msgstr "Activa la compatibilitat amb la interfície MPRIS" #: data/io.github.celluloid_player.Celluloid.gschema.xml:114 msgid "" "Whether or not to enable GNOME-Settings-Daemon-based media keys support" msgstr "Activa la compatibilitat amb les tecles multimèdia del GNOME" #: data/io.github.celluloid_player.Celluloid.gschema.xml:120 msgid "Whether or not to prefetch metadata for non-current playlist entries" msgstr "Precarrega les metadades de les llistes de reproducció no actuals" #: data/io.github.celluloid_player.Celluloid.gschema.xml:126 msgid "" "Whether or not to display an error message when playback of a file ends with" " an error" msgstr "" "Mostra un missatge d'error quan la reproducció d'un fitxer finalitza amb un" " error" #: data/io.github.celluloid_player.Celluloid.gschema.xml:132 msgid "Whether or not to inhibit session idling when something is playing" msgstr "Inhibir la suspensió de la sessió durant la reproducció" #: data/io.github.celluloid_player.Celluloid.gschema.xml:142 msgid "Width of the window" msgstr "Amplada de la finestra" #: data/io.github.celluloid_player.Celluloid.gschema.xml:148 msgid "Height of the window" msgstr "Alçada de la finestra" #: data/io.github.celluloid_player.Celluloid.gschema.xml:154 msgid "Whether or not the window is maximized" msgstr "Maximitza la finestra" #: data/io.github.celluloid_player.Celluloid.gschema.xml:161 msgid "Volume of player" msgstr "Volum del reproductor" #: data/io.github.celluloid_player.Celluloid.gschema.xml:167 msgid "Whether or not to loop when the end of playlist is reached" msgstr "Reprodueix en bucle la llista de reproducció" #: data/io.github.celluloid_player.Celluloid.gschema.xml:173 msgid "Width of the playlist" msgstr "Amplada de la llista de reproducció" #: data/io.github.celluloid_player.Celluloid.gschema.xml:179 msgid "Show or not show the controls" msgstr "Mostra els controls" #: data/io.github.celluloid_player.Celluloid.gschema.xml:185 msgid "Show or not show the playlist" msgstr "Mostra la llista de reproducció" #: data/io.github.celluloid_player.Celluloid.gschema.xml:191 msgid "URI of the last folder accessed" msgstr "Ubicació de l'última carpeta accedida" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:7 #: data/io.github.celluloid_player.Celluloid.desktop.in:4 #: src/celluloid-application.c:451 msgid "Celluloid" msgstr "Cel·luloide" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:8 msgid "GTK+ frontend for mpv" msgstr "Interfície GTK per al reproductor mpv" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:16 msgid "" "Celluloid is a simple media player that can play virtually all video and " "audio formats. It supports playlists and MPRIS2 media player controls. The " "design of Celluloid follows the GNOME Human Interface Guidelines, but can " "also be adapted for other systems that don't use client-side decorations " "(CSD). It is based on the mpv library and GTK." msgstr "" "Cel·luloide és un reproductor multimèdia senzill que pot reproduir " "pràcticament qualsevol format de vídeo i àudio. Admet llistes de reproducció" " i controls de reproducció MPRIS2. El disseny del Cel·luloide segueix les " "guies d'interfície d'usuari del GNOME, però també pot adaptar-se a altres " "entorns que no fan servir decoracions del client (CSD). Es basa en les " "biblioteques mpv i GTK." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:23 msgid "Features:" msgstr "Característiques:" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:25 msgid "Drag and drop playlist" msgstr "" "Es poden arrossegar i deixar anar les entrades de la llista de reproducció" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:26 msgid "Loading external mpv configuration files" msgstr "Carrega fitxers de configuració externs de l'mpv" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:27 msgid "MPRIS2 D-Bus interface" msgstr "Interfície D-Bus de MPRIS2" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:30 msgid "The Celluloid Developers" msgstr "Els desenvolupadors del Cel·luloide" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:34 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:87 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:117 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:156 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:187 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:215 msgid "This release contains the following changes:" msgstr "Aquesta versió conté els canvis següents:" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:38 msgid "" "Adjust the range of volume button based on the value of the volume-max " "property." msgstr "" "Ajusta el rang del botó de volum basant-se en el valor de la propietat " "«volum màxim»." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:42 msgid "Retain window maximization state across sessions." msgstr "Recorda l'estat de maximització de la finestra." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:45 msgid "Retain loop state across sessions." msgstr "Recorda l'estat de la reproducció en bucle." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:48 msgid "Implement playlist search." msgstr "Implementa la cerca a la llista de reproducció" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:51 msgid "Update the list of shortcuts in Keyboard Shortcuts dialog." msgstr "" "Actualitza la llista de dreceres en el diàleg de les dreceres de teclat." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:54 msgid "Correctly handle quotes and escape sequences in extra mpv options." msgstr "" "Gestiona correctament les cometes i les seqüències d'escapada en les opcions" " extra de MPV." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:57 msgid "Display time at cursor position when hovering the seek bar." msgstr "" "Mostra el temps en la posició del punter en situar-lo en la barra de cerca." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:60 msgid "" "Deprecate '--mpv-options'. Options starting with '--mpv-' can be used to set" " mpv options instead. For example, passing '--mpv-vf=vflip' to Celluloid is " "equivalent to passing '--vf=vflip' to mpv." msgstr "" "Desaprova «--mpv-options». En el seu lloc, per configurar opcions de mpv, es" " poden fer servir opcions que comencin per «--mpv-». Per exemple, passar " "«--mpv-vf=vflip» a Cel·luloide equival a passar «--vf=vflip» a mpv." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:66 msgid "" "Add support for configuring dead zone, an area in which mouse movement will " "not cause controls to be shown." msgstr "" "Afegeix suport per configurar una zona morta, una àrea en la qual el " "moviment del ratolí no farà que es mostrin controls." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:70 msgid "Make window sizing work correctly with HiDPI displays." msgstr "" "Ajusta la mida de la finestra correctament en pantalles d'alta densitat " "(HiDPI)." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:73 msgid "Add Finnish translation by Kimmo Kujansuu." msgstr "Afegeix la traducció al finlandès feta per Kimmo Kujansuu." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:76 msgid "Add Slovenian translation by @bertronika." msgstr "Afegeix la traducció a l'eslovè feta per @bertronika." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:80 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:110 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:149 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:180 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:208 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:236 msgid "This listing is incomplete. See git log for complete changelog." msgstr "" "Aquest llistat és incomplet. Consulteu el registre del Git per obtenir un " "registre de canvis complet." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:91 msgid "Add Persian translation by @danialbehzadi" msgstr "Afegeix la traducció al persa feta per danialbehzad" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:94 msgid "Add Ukranian translation by @vl-nix" msgstr "Afegeix la traducció a l'ucraïnès feta per vl-nix" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:97 msgid "" "Add support for showing/hiding window decorations using the mpv option " "--border" msgstr "" "Afegeix compatibilitat per mostrar/amagar les decoracions de la finestra " "utilitzant l'opció --border de l'mpv" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:100 msgid "Add menu item for opening discs" msgstr "Afegeix un element al menú per obrir discs" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:103 msgid "Block cursor autohide when volume popup is open in windowed mode" msgstr "" "Bloqueja l'ocultació automàtica del cursor quan s'obre la finestra emergent " "del volum en el mode finestra" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:106 msgid "Fix crash with mpv 0.30" msgstr "Corregeix el bloqueig amb la versió 0.30 de l'mpv" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:121 msgid "Rename project to Celluloid" msgstr "Canvia el nom del projecte a Cel·luloide" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:124 msgid "Add Turkish translation by @TeknoMobil" msgstr "Afegeix la traducció al turc feta per TeknoMobil" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:127 msgid "Add Esperanto translation by @F3nd0" msgstr "Afegeix la traducció a l'esperanto feta per F3nd0" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:130 msgid "Migrate from opengl-cb to the new render API" msgstr "Canvia de opengl-cb a la nova API de representació" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:133 msgid "Handle numpad keybindings" msgstr "Controla les combinacions de tecles de teclat numèric" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:136 msgid "Handle unicode keybindings" msgstr "Controla les assignacions de tecles de l'Unicode" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:139 msgid "Forward media key events to mpv" msgstr "Reenvia els esdeveniments de les tecles multimèdia a l'mpv" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:142 msgid "" "Add dconf key for controlling cursor speed at which controls are unhidden" msgstr "" "Afegeix una clau del dconf per controlar la velocitat del cursor a la qual " "s'amaguen els controls" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:145 msgid "Add option for suppressing playback errors" msgstr "Afegeix una opció per suprimir els errors de reproducció" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:160 msgid "Split up the General tab in the preferences dialog" msgstr "Divideix la pestanya General al diàleg de preferències" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:163 msgid "Improve behavior when toggling playlist under tiling window managers" msgstr "" "Millora el comportament en mostrar o ocultar la llista de reproducció en els" " gestors de finestra de mosaic" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:166 msgid "Move app menu items to primary menu" msgstr "Desplaça els elements del menú d'aplicació al menú principal" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:169 msgid "Use separate MPRIS DBus connection for each window" msgstr "" "Utilitza una connexió DBUS de la interfície MPRIS separada per a cada " "finestra" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:172 msgid "Add support for MPRIS property LoopStatus" msgstr "" "Afegeix compatibilitat amb la propietat LoopStatus de la interfície MPRIS" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:175 msgid "" "Add option --mpv-options for setting arbitrary mpv options from the command-" "line" msgstr "" "Afegeix l'opció --mpv-options per configurar opcions arbitràries de l'mpv " "des de la línia d'ordres" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:191 msgid "Set default screenshot directory to XDG_PICTURES_DIR" msgstr "" "Estableix com a carpeta de captures de pantalla predeterminada la carpeta " "XDG_PICTURES_DIR" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:194 msgid "" "Improve handling of --window-scale, --autofit, --autofit-larger, and " "--autofit-smaller" msgstr "" "Millora el maneig de les opcions --window-scale, --autofit, --autofit-larger" " i --autofit-smaller" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:198 msgid "Add command line option for setting WM_ROLE" msgstr "Afegeix una opció a la línia d'ordres per configurar WM_ROLE" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:201 msgid "Add context menu item for removing playlist items" msgstr "" "Afegeix un element al menú contextual per suprimir elements de la llista de " "reproducció" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:204 msgid "Add context menu item for copying location of playlist items" msgstr "" "Afegeix un element al menú contextual per copiar la ubicació dels elements " "de la llista de reproducció" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:219 msgid "" "Add option to make skip buttons change playlist entries rather than chapters" msgstr "" "Afegeix una opció per fer que els botons de salt seleccionin les entrades de" " la llista de reproducció en lloc dels capítols" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:223 msgid "Make the file chooser accept non-local locations" msgstr "Fa que el selector de fitxers accepti ubicacions no locals" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:226 msgid "Add right-click menu entry for looping a single file" msgstr "" "Afegeix una entrada al menú contextual per reproduir en bucle un únic fitxer" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:229 msgid "Handle property change events for fullscreen and window-scale" msgstr "" "Gestiona els esdeveniments de canvi de propietat per a la pantalla completa " "i l'escala de la finestra" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:232 msgid "Add option to autohide mouse cursor in windowed mode" msgstr "" "Afegeix una opció per amagar automàticament el punter del ratolí al mode " "finestra" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:246 msgid "The main window showing the application in action" msgstr "La finestra principal amb l'aplicació en acció" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:250 msgid "The main window with CSD disabled" msgstr "La finestra principal amb les decoracions del client desactivades" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:254 msgid "The main window with playlist open" msgstr "La finestra principal amb la llista de reproducció oberta" #: data/io.github.celluloid_player.Celluloid.desktop.in:5 msgid "Multimedia Player" msgstr "Reproductor multimèdia" #: data/io.github.celluloid_player.Celluloid.desktop.in:6 msgid "Play movies and videos" msgstr "Reprodueix pel·lícules i vídeos" #. Translators: Search terms to find this application. Don't translate the #. semicolons! The list MUST also end with a semicolon! #: data/io.github.celluloid_player.Celluloid.desktop.in:17 msgid "Video;Movie;Film;Clip;Series;Player;DVD;TV;Disc;Album;Music;GNOME;mpv;" msgstr "" "vídeo;pel·lícula;film;clip;sèrie;reproductor;DVD;TV;disc;àlbum;música;GNOME;" " mpv;" #: data/io.github.celluloid_player.Celluloid.desktop.in:23 msgid "New Window" msgstr "Finestra nova" #: src/celluloid-application.c:495 msgid "Playing" msgstr "En reproducció" #: src/celluloid-application.c:551 msgid "Show release version" msgstr "Mostra la versió" #: src/celluloid-application.c:559 msgid "Enqueue" msgstr "A la cua" #: src/celluloid-application.c:567 msgid "Create a new window" msgstr "Crea una finestra nova" #: src/celluloid-application.c:576 msgid "OPTIONS" msgstr "OPCIONS" #: src/celluloid-application.c:583 msgid "Set the window role" msgstr "Estableix el comportament de la finestra" #: src/celluloid-application.c:591 msgid "Don't connect to an already-running instance" msgstr "No connectis a una instància que ja s'estigui executant" #: src/celluloid-control-box.c:362 msgid "Pause" msgstr "Posa en pausa" #: src/celluloid-control-box.c:362 src/celluloid-control-box.c:565 msgid "Play" msgstr "Reprodueix" #: src/celluloid-control-box.c:568 msgid "Stop" msgstr "Atura" #: src/celluloid-control-box.c:571 msgid "Forward" msgstr "Avança" #: src/celluloid-control-box.c:574 msgid "Rewind" msgstr "Rebobina" #: src/celluloid-control-box.c:577 msgid "Next Chapter" msgstr "Capítol següent" #: src/celluloid-control-box.c:580 msgid "Previous Chapter" msgstr "Capítol anterior" #: src/celluloid-control-box.c:583 msgid "Loop Playlist" msgstr "Llista de reproducció en bucle" #: src/celluloid-control-box.c:586 msgid "Shuffle Playlist" msgstr "Mescla la llista de reproducció" #: src/celluloid-control-box.c:589 src/celluloid-header-bar.c:91 msgid "Toggle Fullscreen" msgstr "Activa/desactiva la pantalla completa" #: src/celluloid-controller.c:992 src/celluloid-view.c:1558 msgid "Error" msgstr "Error" #: src/celluloid-file-chooser.c:139 src/celluloid-plugins-manager.c:170 msgid "All Files" msgstr "Tots els fitxers" #: src/celluloid-file-chooser.c:147 msgid "Media Files" msgstr "Fitxers multimèdia" #: src/celluloid-file-chooser.c:158 msgid "Audio Files" msgstr "Fitxers d'àudio" #: src/celluloid-file-chooser.c:166 msgid "Video Files" msgstr "Fitxers de vídeo" #: src/celluloid-file-chooser.c:174 msgid "Image Files" msgstr "Fitxers d'imatge" #: src/celluloid-file-chooser.c:184 msgid "Subtitle Files" msgstr "Fitxers de subtítols" #: src/celluloid-menu.c:106 msgid "None" msgstr "Cap" #. For simplicity, also dup the default string used when the #. * track has no title. #: src/celluloid-menu.c:121 msgid "Unknown" msgstr "Desconeguda" #: src/celluloid-menu.c:154 msgid "_Load External…" msgstr "_Obre..." #. Disable the menu item by setting the action to something #. * invalid. #: src/celluloid-menu.c:207 msgid "No disc found" msgstr "No s'ha trobat cap disc" #: src/celluloid-menu.c:235 msgid "_File" msgstr "_Fitxer" #: src/celluloid-menu.c:236 src/celluloid-menu.c:318 msgid "_Open…" msgstr "_Obre..." #: src/celluloid-menu.c:237 src/celluloid-menu.c:319 msgid "Open _Folder…" msgstr "Obre una _carpeta..." #: src/celluloid-menu.c:238 src/celluloid-menu.c:320 msgid "Open _Location…" msgstr "Obre una _ubicació..." #: src/celluloid-menu.c:239 msgid "Open _Disc…" msgstr "Obre un _disc" #: src/celluloid-menu.c:240 src/celluloid-menu.c:290 msgid "_Save Playlist" msgstr "_Desa la llista de reproducció..." #: src/celluloid-menu.c:241 src/celluloid-menu.c:323 msgid "_New Window" msgstr "Finestra _nova" #: src/celluloid-menu.c:242 msgid "_Quit" msgstr "_Surt" #: src/celluloid-menu.c:243 msgid "_Edit" msgstr "_Edita" #: src/celluloid-menu.c:244 src/celluloid-menu.c:296 msgid "_Preferences" msgstr "_Preferències" #: src/celluloid-menu.c:245 src/celluloid-menu.c:292 msgid "_Video Track" msgstr "Pista de _vídeo" #: src/celluloid-menu.c:246 src/celluloid-menu.c:293 msgid "_Audio Track" msgstr "Pista d'à_udio" #: src/celluloid-menu.c:247 src/celluloid-menu.c:294 msgid "S_ubtitle Track" msgstr "Pista de _subtítols" #: src/celluloid-menu.c:248 msgid "_View" msgstr "_Vista" #: src/celluloid-menu.c:249 src/celluloid-menu.c:287 msgid "_Toggle Controls" msgstr "Mostra/amaga els _controls" #: src/celluloid-menu.c:250 src/celluloid-menu.c:289 msgid "_Toggle Playlist" msgstr "Mostra/amaga la _llista de reproducció" #: src/celluloid-menu.c:251 msgid "_Fullscreen" msgstr "_Pantalla completa" #: src/celluloid-menu.c:252 msgid "_Help" msgstr "_Ajuda" #: src/celluloid-menu.c:253 src/celluloid-menu.c:297 msgid "_Keyboard Shortcuts" msgstr "Dreceres de _teclat" #: src/celluloid-menu.c:254 src/celluloid-menu.c:298 msgid "_About Celluloid" msgstr "_Quant a" #: src/celluloid-menu.c:321 msgid "Open _Disc" msgstr "Obre un _disc" #: src/celluloid-mpv.c:240 #, c-format msgid "Playback was terminated abnormally. Reason: %s." msgstr "La reproducció ha acabat de forma anòmala. Motiu: %s" #: src/celluloid-open-location-dialog.c:130 msgid "Location:" msgstr "Ubicació:" #: src/celluloid-open-location-dialog.c:136 #: src/celluloid-preferences-dialog.c:401 msgid "_Cancel" msgstr "_Cancel·la" #: src/celluloid-open-location-dialog.c:138 msgid "_Open" msgstr "_Obre" #: src/celluloid-player.c:550 msgid "Failed to apply one or more MPV options." msgstr "No s'han pogut aplicar una o més opcions de l'mpv." #: src/celluloid-playlist-widget.c:784 msgid "_Copy Location" msgstr "_Copia la ubicació" #: src/celluloid-playlist-widget.c:785 msgid "_Remove" msgstr "_Suprimeix" #: src/celluloid-playlist-widget.c:787 msgid "_Add…" msgstr "_Afegeix…" #: src/celluloid-playlist-widget.c:788 msgid "Add _Folder…" msgstr "Afegeix una _carpeta..." #: src/celluloid-playlist-widget.c:789 msgid "Add _Location…" msgstr "Afegeix una _ubicació..." #: src/celluloid-playlist-widget.c:790 msgid "_Shuffle" msgstr "_Mescla" #: src/celluloid-playlist-widget.c:791 msgid "Loop _File" msgstr "_Fitxer en bucle" #: src/celluloid-playlist-widget.c:792 msgid "Loop _Playlist" msgstr "_Llista de reproducció en bucle" #: src/celluloid-playlist-widget.c:933 src/celluloid-shortcuts-window.c:136 msgid "Playlist" msgstr "Llista de reproducció" #: src/celluloid-playlist-widget.c:941 msgid "Playlist is empty" msgstr "La llista de reproducció és buida" #: src/celluloid-plugins-manager.c:163 src/celluloid-plugins-manager.c:409 msgid "Add Plugin" msgstr "Afegeix un connector" #: src/celluloid-plugins-manager.c:175 msgid "Lua Plugins" msgstr "Connectors Lua" #: src/celluloid-plugins-manager.c:181 msgid "JavaScript Plugins" msgstr "Connectors JavaScript" #: src/celluloid-plugins-manager.c:186 msgid "C Plugins" msgstr "Connectors C" #: src/celluloid-plugins-manager.c:334 #, c-format msgid "Failed to copy file from '%s' to '%s'. Reason: %s" msgstr "No s'ha pogut copiar el fitxer de «%s» a «%s». Motiu: %s" #: src/celluloid-plugins-manager.c:385 msgid "No plugins found" msgstr "No s'ha trobat cap connector" #: src/celluloid-plugins-manager-item.c:79 msgid "Remove" msgstr "Suprimeix" #: src/celluloid-plugins-manager-item.c:178 msgid "" "Are you sure you want to remove this script? This action cannot be undone." msgstr "" "Segur que voleu suprimir aquest script? Aquesta acció no es pot desfer." #: src/celluloid-plugins-manager-item.c:199 #, c-format msgid "Failed to delete file '%s'. Reason: %s" msgstr "No s'ha pogut suprimir el fitxer «%s». Motiu: %s" #: src/celluloid-preferences-dialog.c:304 msgid "Automatically resize window to fit video" msgstr "Redimensionar automàticament la finestra a la mida del vídeo" #: src/celluloid-preferences-dialog.c:307 msgid "Enable client-side decorations" msgstr "Activa les decoracions del client" #: src/celluloid-preferences-dialog.c:310 msgid "Enable dark theme" msgstr "Activa el tema fosc" #: src/celluloid-preferences-dialog.c:313 msgid "Use floating controls in windowed mode" msgstr "Utilitza controls flotants al mode finestra" #: src/celluloid-preferences-dialog.c:316 msgid "Autohide mouse cursor in windowed mode" msgstr "Amaga automàticament el punter del ratolí al mode de finestra" #: src/celluloid-preferences-dialog.c:319 msgid "Use skip buttons for controlling playlist" msgstr "Utilitza els botons de salt per controlar la llista de reproducció" #: src/celluloid-preferences-dialog.c:322 msgid "Remember last file's location" msgstr "Recorda la ubicació de l'últim fitxer" #: src/celluloid-preferences-dialog.c:327 msgid "Load MPV configuration file" msgstr "Carrega un fitxer de configuració de l'mpv" #: src/celluloid-preferences-dialog.c:330 msgid "MPV configuration file:" msgstr "Fitxer de configuració de l'mpv:" #: src/celluloid-preferences-dialog.c:333 msgid "Load MPV input configuration file" msgstr "Carrega un fitxer de configuració de l'entrada de l'mpv" #: src/celluloid-preferences-dialog.c:336 msgid "MPV input configuration file:" msgstr "Fitxer de configuració de l'entrada de l'mpv:" #: src/celluloid-preferences-dialog.c:341 msgid "Always open new window" msgstr "Obre sempre una finestra nova" #: src/celluloid-preferences-dialog.c:344 msgid "Ignore playback errors" msgstr "Ignora els errors de reproducció" #: src/celluloid-preferences-dialog.c:347 msgid "Prefetch metadata" msgstr "Precarrega les metadades" #: src/celluloid-preferences-dialog.c:350 msgid "Enable MPRIS support" msgstr "Activa la compatibilitat amb la interfície MPRIS" #: src/celluloid-preferences-dialog.c:353 msgid "Enable media keys support" msgstr "Activa les tecles multimèdia" #: src/celluloid-preferences-dialog.c:356 msgid "Extra MPV options:" msgstr "Opcions addicionals de l'mpv:" #: src/celluloid-preferences-dialog.c:389 msgid "Interface" msgstr "Interfície" #: src/celluloid-preferences-dialog.c:392 msgid "Config Files" msgstr "Fitxers de configuració" #: src/celluloid-preferences-dialog.c:395 msgid "Miscellaneous" msgstr "Miscel·lània" #: src/celluloid-preferences-dialog.c:398 msgid "Plugins" msgstr "Connectors" #: src/celluloid-preferences-dialog.c:403 msgid "_Save" msgstr "_Desa" #: src/celluloid-preferences-dialog.c:421 msgid "Preferences" msgstr "Preferències" #: src/celluloid-shortcuts-window.c:57 msgid "Open file" msgstr "Obre un fitxer" #: src/celluloid-shortcuts-window.c:58 msgid "Open location" msgstr "Obre una ubicació" #: src/celluloid-shortcuts-window.c:59 msgid "Add file to playlist" msgstr "Afegeix un fitxer a la llista de reproducció" #: src/celluloid-shortcuts-window.c:60 msgid "Add location to playlist" msgstr "Afegeix una ubicació a la llista de reproducció" #: src/celluloid-shortcuts-window.c:61 msgid "Show preferences dialog" msgstr "Mostra el diàleg de preferències" #: src/celluloid-shortcuts-window.c:62 msgid "Toggle controls" msgstr "Mostra/amaga els controls" #: src/celluloid-shortcuts-window.c:63 msgid "Toggle playlist" msgstr "Mostra/amaga la llista de reproducció" #: src/celluloid-shortcuts-window.c:64 msgid "Toggle fullscreen mode" msgstr "Activa/desactiva el mode de pantalla completa" #: src/celluloid-shortcuts-window.c:65 msgid "Leave fullscreen mode" msgstr "Surt del mode de pantalla completa" #: src/celluloid-shortcuts-window.c:66 msgid "Toggle OSD states between normal and playback time/duration" msgstr "Mostra/amaga en pantalla el temps de reproducció i la durada" #: src/celluloid-shortcuts-window.c:67 msgid "Show filename on the OSD" msgstr "Mostra en pantalla el nom del fitxer" #: src/celluloid-shortcuts-window.c:68 msgid "Show progress, elapsed time, and duration on the OSD" msgstr "Mostra en pantalla el progrés, el temps transcorregut i la durada" #: src/celluloid-shortcuts-window.c:71 msgid "Seek backward/forward 5 seconds" msgstr "Salta 5 segons cap enrere/endavant" #: src/celluloid-shortcuts-window.c:72 msgid "Exact seek backward/forward 1 second" msgstr "Salta exactament 1 segon cap enrere/endavant" #: src/celluloid-shortcuts-window.c:73 msgid "Seek backward/forward 1 minute" msgstr "Salta 1 minut cap enrere/endavant" #: src/celluloid-shortcuts-window.c:74 msgid "Exact seek backward/forward 5 seconds" msgstr "Salta exactament 5 segons cap enrere/endavant" #: src/celluloid-shortcuts-window.c:75 msgid "Seek to previous/next subtitle" msgstr "Salta als subtítols anteriors/següents" #: src/celluloid-shortcuts-window.c:76 msgid "Step backward/forward a single frame" msgstr "Retrocedeix/avança un sol fotograma" #: src/celluloid-shortcuts-window.c:77 msgid "Seek to the beginning of the previous/next chapter" msgstr "Salta al principi del capítol anterior/següent" #: src/celluloid-shortcuts-window.c:80 msgid "Decrease/increase playback speed by 10%" msgstr "Disminueix/augmenta la velocitat de reproducció un 10%" #: src/celluloid-shortcuts-window.c:81 msgid "Halve/double current playback speed" msgstr "Redueix a la meitat o duplica la velocitat de reproducció" #: src/celluloid-shortcuts-window.c:82 msgid "Reset playback speed to normal" msgstr "Restableix la velocitat de reproducció" #: src/celluloid-shortcuts-window.c:83 msgid "Go backward/forward in the playlist" msgstr "Retrocedeix/avança a la llista de reproducció" #: src/celluloid-shortcuts-window.c:84 msgid "Remove selected playlist item" msgstr "Suprimeix l'element seleccionat de la llista de reproducció" #: src/celluloid-shortcuts-window.c:85 msgid "Save playlist" msgstr "Desa la llista de reproducció" #: src/celluloid-shortcuts-window.c:86 msgid "Set/clear A-B loop points" msgstr "Fixa/esborra els punts de bucle A-B" #: src/celluloid-shortcuts-window.c:87 msgid "Toggle infinite looping" msgstr "Activa/desactiva la reproducció en bucle" #: src/celluloid-shortcuts-window.c:88 msgid "Pause or unpause" msgstr "Posa en pausa o continua" #: src/celluloid-shortcuts-window.c:89 msgid "Quit" msgstr "Surt" #: src/celluloid-shortcuts-window.c:90 msgid "Save current playback position and quit" msgstr "Desa la posició de reproducció actual i surt" #: src/celluloid-shortcuts-window.c:93 msgid "Enter search mode" msgstr "Entra al mode de cerca" #: src/celluloid-shortcuts-window.c:94 msgid "Jump to next match" msgstr "Ves a la coincidència següent" #: src/celluloid-shortcuts-window.c:95 msgid "Jump to previous match" msgstr "Ves a la coincidència anterior" #: src/celluloid-shortcuts-window.c:96 msgid "Exit search mode" msgstr "Surt del mode de cerca" #: src/celluloid-shortcuts-window.c:99 msgid "Cycle through audio tracks" msgstr "Selecciona la pista d'àudio següent" #: src/celluloid-shortcuts-window.c:100 src/celluloid-shortcuts-window.c:101 msgid "Decrease/increase volume" msgstr "Disminueix/augmenta el volum" #: src/celluloid-shortcuts-window.c:102 msgid "Mute or unmute" msgstr "Silencia/activa el so" #: src/celluloid-shortcuts-window.c:103 msgid "Adjust audio delay by +/- 0.1 seconds" msgstr "Ajusta el retard de l'àudio en +/- 0.1 segons" #: src/celluloid-shortcuts-window.c:106 msgid "Toggle subtitle visibility" msgstr "Mostra/amaga els subtítols" #: src/celluloid-shortcuts-window.c:107 msgid "Cycle through available subtitles" msgstr "Selecciona els subtítols següents" #: src/celluloid-shortcuts-window.c:108 msgid "Adjust subtitle delay by +/- 0.1 seconds" msgstr "Ajusta el retard dels subtítols en +/- 0.1 segons" #: src/celluloid-shortcuts-window.c:109 msgid "Toggle SSA/ASS subtitles style override" msgstr "Activa/desactiva l'anulació de l'estil dels subtítols SSA/ASS" #: src/celluloid-shortcuts-window.c:110 msgid "Move subtitles up/down" msgstr "Mou els subtítols amunt/avall" #: src/celluloid-shortcuts-window.c:111 msgid "Toggle VSFilter aspect compatibility mode" msgstr "Activa/desactiva el mode de compatibilitat d'aspecte del VSFilter" #: src/celluloid-shortcuts-window.c:114 msgid "Cycle through video tracks" msgstr "Selecciona la pista de vídeo següent" #: src/celluloid-shortcuts-window.c:115 msgid "Decrease/increase pan-and-scan range" msgstr "Disminueix/augmenta el rang de reenquadrament (pan and scan)" #: src/celluloid-shortcuts-window.c:116 msgid "Take a screenshot" msgstr "Fes una captura de pantalla" #: src/celluloid-shortcuts-window.c:117 msgid "Take a screenshot, without subtitles" msgstr "Fes una captura de pantalla, sense subtítols" #: src/celluloid-shortcuts-window.c:118 msgid "Take a screenshot, as the window shows it" msgstr "Fes una captura de pantalla, tal com es mostra a la finestra" #: src/celluloid-shortcuts-window.c:119 msgid "Resize video to half its original size" msgstr "Redimensiona el vídeo a la meitat de la mida original" #: src/celluloid-shortcuts-window.c:120 msgid "Resize video to its original size" msgstr "Redimensiona el vídeo a la mida original" #: src/celluloid-shortcuts-window.c:121 msgid "Resize video to double its original size" msgstr "Redimensiona el vídeo al doble de la mida original" #: src/celluloid-shortcuts-window.c:122 msgid "Adjust contrast" msgstr "Ajusta el contrast" #: src/celluloid-shortcuts-window.c:123 msgid "Adjust brightness" msgstr "Ajusta la brillantor" #: src/celluloid-shortcuts-window.c:124 msgid "Adjust gamma" msgstr "Ajusta la correcció gamma" #: src/celluloid-shortcuts-window.c:125 msgid "Adjust saturation" msgstr "Ajusta la saturació" #: src/celluloid-shortcuts-window.c:126 msgid "Activate or deactivate deinterlacer" msgstr "Activa/desactiva el desentrellaçat" #: src/celluloid-shortcuts-window.c:127 msgid "Cycle aspect ratio override" msgstr "Selecciona la relació d'aspecte següent" #: src/celluloid-shortcuts-window.c:130 msgid "User Interface" msgstr "Interfície d'usuari" #: src/celluloid-shortcuts-window.c:131 msgid "Video" msgstr "Vídeo" #: src/celluloid-shortcuts-window.c:132 msgid "Audio" msgstr "Àudio" #: src/celluloid-shortcuts-window.c:133 msgid "Subtitle" msgstr "Subtítols" #: src/celluloid-shortcuts-window.c:134 msgid "Playback" msgstr "Reproducció" #: src/celluloid-shortcuts-window.c:135 msgid "Seeking" msgstr "Cerca" #: src/celluloid-view.c:728 msgid "Load Audio Track…" msgstr "Carrega una pista d'àudio..." #: src/celluloid-view.c:732 msgid "Load Video Track…" msgstr "Carrega una pista de vídeo..." #: src/celluloid-view.c:736 msgid "Load Subtitle Track…" msgstr "Carrega una pista de subtítols..." #: src/celluloid-view.c:901 msgid "" "Enabling or disabling client-side decorations requires restarting to take " "effect." msgstr "" "Per activar o desactivar les decoracions del client cal reiniciar " "l'aplicació." #: src/celluloid-view.c:1444 msgid "Add Folder to Playlist" msgstr "Afegeix una carpeta a la llista de reproducció" #: src/celluloid-view.c:1444 msgid "Open Folder" msgstr "Obre una carpeta" #: src/celluloid-view.c:1449 msgid "Add File to Playlist" msgstr "Afegeix un fitxer a la llista de reproducció" #: src/celluloid-view.c:1449 msgid "Open File" msgstr "Obre un fitxer" #: src/celluloid-view.c:1485 msgid "Add Location to Playlist" msgstr "Afegeix una ubicació a la llista de reproducció" #: src/celluloid-view.c:1486 msgid "Open Location" msgstr "Obre una ubicació" #: src/celluloid-view.c:1532 msgid "Save Playlist" msgstr "Desa la llista de reproducció" #: src/celluloid-view.c:1598 msgid "A GTK frontend for MPV" msgstr "Una interfície GTK per al reproductor mpv" #: src/celluloid-view.c:1608 msgid "translator-credits" msgstr "" "Toni Estevez, toni.estevez@gmail.com\n" "Adolfo Jayme Barrientos, fitojb@ubuntu.com" celluloid-0.20/po/cs.po000066400000000000000000001021311373135401300147700ustar00rootroot00000000000000# Czech translations for gnome-mpv package # gnome-mpv # Copyright (C) 2015 THE gnome-mpv'S COPYRIGHT HOLDER # This file is distributed under the same license as the gnome-mpv package. # Tomáš Marný, 2015. # Jaroslav Svoboda , 2019. #zanata # gnome-mpv , 2019. #zanata # gnome-mpv , 2020. #zanata msgid "" msgstr "" "Project-Id-Version: gnome-mpv 0.2\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-02-20 20:48+0700\n" "PO-Revision-Date: 2020-06-23 10:48-0400\n" "Last-Translator: Copied by Zanata \n" "Language-Team: \n" "Language: cs\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2\n" "X-Generator: Zanata 4.6.2\n" #: data/io.github.celluloid_player.Celluloid.gschema.xml:11 msgid "" "Whether the settings has already been migrated from the previous version" msgstr "Zda už byly předvolby konvertovány ze staré na novou verzi" #: data/io.github.celluloid_player.Celluloid.gschema.xml:17 #, fuzzy msgid "Whether or not to automatically resize window to fit video" msgstr "Zda schovávat kurzor myši v módu v okně" #: data/io.github.celluloid_player.Celluloid.gschema.xml:23 msgid "Enable or disable dark theme" msgstr "Zapnout nebo vypnout tmavý motiv" #: data/io.github.celluloid_player.Celluloid.gschema.xml:29 msgid "Enable or disable client-side decorations" msgstr "Zapnout nebo vypnout dekorace na straně klienta" #: data/io.github.celluloid_player.Celluloid.gschema.xml:35 msgid "Whether or not to use floating controls in windowed mode" msgstr "Zda v okenním režimu použít plovoucí ovládací prvky" #: data/io.github.celluloid_player.Celluloid.gschema.xml:41 msgid "Whether or not to autohide mouse cursor in windowed mode" msgstr "Zda schovávat kurzor myši v módu v okně" #: data/io.github.celluloid_player.Celluloid.gschema.xml:47 msgid "The minimum cursor speed at which floating controls will be unhidden." msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:54 msgid "" "The size of the dead zone in which cursor movement will not cause the " "controls to be shown." msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:60 msgid "Whether or not to use skip buttons for controlling playlist" msgstr "Zda používat tlačítka přeskočit pro ovládání seznamu přehrávání" #: data/io.github.celluloid_player.Celluloid.gschema.xml:66 msgid "" "Whether or not to make file chooser dialog remember last folder accessed" msgstr "Zda si má dialog pro výběr souborů pamatovat poslední umístění" #: data/io.github.celluloid_player.Celluloid.gschema.xml:72 msgid "Whether or not to create new windows when there is already an instance" msgstr "Zda vytvořit nové okno pokud je již jedno otevřeno" #: data/io.github.celluloid_player.Celluloid.gschema.xml:78 #: src/celluloid-application.c:575 msgid "Options to pass to mpv" msgstr "Přepínače pro mpv" #: data/io.github.celluloid_player.Celluloid.gschema.xml:84 msgid "Path to mpv configuration file" msgstr "Cesta ke konfiguračnímu souboru mpv" #: data/io.github.celluloid_player.Celluloid.gschema.xml:90 msgid "Load or don't load mpv configuration file" msgstr "Načíst nebo nenačíst konfigurační soubor mpv" #: data/io.github.celluloid_player.Celluloid.gschema.xml:96 msgid "Path to mpv input configuration file" msgstr "Cesta ke konfiguračnímu souboru vstupu mpv" #: data/io.github.celluloid_player.Celluloid.gschema.xml:102 msgid "Load or don't load mpv input configuration file" msgstr "Načíst nebo nenačíst konfigurační soubor vstupu mpv" #: data/io.github.celluloid_player.Celluloid.gschema.xml:108 msgid "Whether or not to enable MPRIS support" msgstr "Zda zapnout podporu MPRIS" #: data/io.github.celluloid_player.Celluloid.gschema.xml:114 msgid "" "Whether or not to enable GNOME-Settings-Daemon-based media keys support" msgstr "" "Zda zapnout podporu pro multimediální klávesy podle démona GNOME Nastavení" #: data/io.github.celluloid_player.Celluloid.gschema.xml:120 msgid "Whether or not to prefetch metadata for non-current playlist entries" msgstr "" "Zda dopředu načítat metadata ne právě přehrávaných položek seznamu " "přehrávání" #: data/io.github.celluloid_player.Celluloid.gschema.xml:126 msgid "" "Whether or not to display an error message when playback of a file ends with" " an error" msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:132 msgid "Whether or not to inhibit session idling when something is playing" msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:142 msgid "Width of the window" msgstr "Šířka okna" #: data/io.github.celluloid_player.Celluloid.gschema.xml:148 msgid "Height of the window" msgstr "Výška okna" #: data/io.github.celluloid_player.Celluloid.gschema.xml:154 msgid "Whether or not the window is maximized" msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:161 msgid "Volume of player" msgstr "Hlasitost přehrávání" #: data/io.github.celluloid_player.Celluloid.gschema.xml:167 msgid "Whether or not to loop when the end of playlist is reached" msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:173 msgid "Width of the playlist" msgstr "Šířka seznamu přehrávání" #: data/io.github.celluloid_player.Celluloid.gschema.xml:179 msgid "Show or not show the controls" msgstr "Zobrazit nebo nezobrazit ovládací tlačítka" #: data/io.github.celluloid_player.Celluloid.gschema.xml:185 msgid "Show or not show the playlist" msgstr "Zobrazit nebo nezobrazit seznam přehrávání" #: data/io.github.celluloid_player.Celluloid.gschema.xml:191 msgid "URI of the last folder accessed" msgstr "Cesta k poslední použité složce" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:7 #: data/io.github.celluloid_player.Celluloid.desktop.in:4 #: src/celluloid-application.c:451 msgid "Celluloid" msgstr "Celluloid" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:8 msgid "GTK+ frontend for mpv" msgstr "GTK+ rozhraní nad mpv" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:16 msgid "" "Celluloid is a simple media player that can play virtually all video and " "audio formats. It supports playlists and MPRIS2 media player controls. The " "design of Celluloid follows the GNOME Human Interface Guidelines, but can " "also be adapted for other systems that don't use client-side decorations " "(CSD). It is based on the mpv library and GTK." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:23 msgid "Features:" msgstr "Nabízí:" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:25 msgid "Drag and drop playlist" msgstr "Seznam přehrávání („playlist“) s možností přetáhnout soubory myší" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:26 msgid "Loading external mpv configuration files" msgstr "Načítání externího konfiguračního souboru pro mpv" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:27 msgid "MPRIS2 D-Bus interface" msgstr "Rozhraní MPRIS2 D-Bus" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:30 msgid "The Celluloid Developers" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:34 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:87 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:117 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:156 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:187 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:215 msgid "This release contains the following changes:" msgstr "Tato verze obsahuje následující změny:" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:38 msgid "" "Adjust the range of volume button based on the value of the volume-max " "property." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:42 msgid "Retain window maximization state across sessions." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:45 msgid "Retain loop state across sessions." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:48 msgid "Implement playlist search." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:51 msgid "Update the list of shortcuts in Keyboard Shortcuts dialog." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:54 msgid "Correctly handle quotes and escape sequences in extra mpv options." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:57 msgid "Display time at cursor position when hovering the seek bar." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:60 msgid "" "Deprecate '--mpv-options'. Options starting with '--mpv-' can be used to set" " mpv options instead. For example, passing '--mpv-vf=vflip' to Celluloid is " "equivalent to passing '--vf=vflip' to mpv." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:66 msgid "" "Add support for configuring dead zone, an area in which mouse movement will " "not cause controls to be shown." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:70 msgid "Make window sizing work correctly with HiDPI displays." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:73 msgid "Add Finnish translation by Kimmo Kujansuu." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:76 msgid "Add Slovenian translation by @bertronika." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:80 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:110 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:149 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:180 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:208 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:236 msgid "This listing is incomplete. See git log for complete changelog." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:91 msgid "Add Persian translation by @danialbehzadi" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:94 msgid "Add Ukranian translation by @vl-nix" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:97 msgid "" "Add support for showing/hiding window decorations using the mpv option " "--border" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:100 msgid "Add menu item for opening discs" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:103 msgid "Block cursor autohide when volume popup is open in windowed mode" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:106 msgid "Fix crash with mpv 0.30" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:121 msgid "Rename project to Celluloid" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:124 msgid "Add Turkish translation by @TeknoMobil" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:127 msgid "Add Esperanto translation by @F3nd0" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:130 msgid "Migrate from opengl-cb to the new render API" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:133 msgid "Handle numpad keybindings" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:136 msgid "Handle unicode keybindings" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:139 msgid "Forward media key events to mpv" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:142 msgid "" "Add dconf key for controlling cursor speed at which controls are unhidden" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:145 msgid "Add option for suppressing playback errors" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:160 msgid "Split up the General tab in the preferences dialog" msgstr "Rozdělit Hlavní záložku v dialogu předvoleb" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:163 msgid "Improve behavior when toggling playlist under tiling window managers" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:166 msgid "Move app menu items to primary menu" msgstr "Přesunout položky menu aplikace do primátního menu" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:169 msgid "Use separate MPRIS DBus connection for each window" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:172 msgid "Add support for MPRIS property LoopStatus" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:175 msgid "" "Add option --mpv-options for setting arbitrary mpv options from the command-" "line" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:191 msgid "Set default screenshot directory to XDG_PICTURES_DIR" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:194 msgid "" "Improve handling of --window-scale, --autofit, --autofit-larger, and " "--autofit-smaller" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:198 msgid "Add command line option for setting WM_ROLE" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:201 msgid "Add context menu item for removing playlist items" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:204 msgid "Add context menu item for copying location of playlist items" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:219 msgid "" "Add option to make skip buttons change playlist entries rather than chapters" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:223 msgid "Make the file chooser accept non-local locations" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:226 msgid "Add right-click menu entry for looping a single file" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:229 msgid "Handle property change events for fullscreen and window-scale" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:232 #, fuzzy msgid "Add option to autohide mouse cursor in windowed mode" msgstr "Automaticky skrývat kurzor v módu okna" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:246 msgid "The main window showing the application in action" msgstr "Hlavní okno a aplikace v akci" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:250 msgid "The main window with CSD disabled" msgstr "Hlavní okno s vypnutými dekoracemi na straně klienta" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:254 msgid "The main window with playlist open" msgstr "Hlavní okno s otevřeným seznamem přehrávání" #: data/io.github.celluloid_player.Celluloid.desktop.in:5 msgid "Multimedia Player" msgstr "" #: data/io.github.celluloid_player.Celluloid.desktop.in:6 msgid "Play movies and videos" msgstr "" #. Translators: Search terms to find this application. Don't translate the #. semicolons! The list MUST also end with a semicolon! #: data/io.github.celluloid_player.Celluloid.desktop.in:17 msgid "Video;Movie;Film;Clip;Series;Player;DVD;TV;Disc;Album;Music;GNOME;mpv;" msgstr "" "Video;Snímek;Film;Klip;Seriál;Přehrávač;DVD;TV;Disk;Album;Hudba;GNOME;mpv;" #: data/io.github.celluloid_player.Celluloid.desktop.in:23 msgid "New Window" msgstr "Nové okno" #: src/celluloid-application.c:495 msgid "Playing" msgstr "Hraje" #: src/celluloid-application.c:551 msgid "Show release version" msgstr "Zobrazit verzi vydání" #: src/celluloid-application.c:559 msgid "Enqueue" msgstr "Zařadit do fronty" #: src/celluloid-application.c:567 msgid "Create a new window" msgstr "Vytvořit nové okno" #: src/celluloid-application.c:576 msgid "OPTIONS" msgstr "MOŽNOSTI" #: src/celluloid-application.c:583 msgid "Set the window role" msgstr "Nastavit roli okna" #: src/celluloid-application.c:591 msgid "Don't connect to an already-running instance" msgstr "Nepřipojovat k již běžící instanci" #: src/celluloid-control-box.c:362 msgid "Pause" msgstr "Pozastavit" #: src/celluloid-control-box.c:362 src/celluloid-control-box.c:565 msgid "Play" msgstr "Přehrát" #: src/celluloid-control-box.c:568 msgid "Stop" msgstr "Zastavit" #: src/celluloid-control-box.c:571 msgid "Forward" msgstr "Vpřed" #: src/celluloid-control-box.c:574 msgid "Rewind" msgstr "Zpět" #: src/celluloid-control-box.c:577 msgid "Next Chapter" msgstr "Další kapitola" #: src/celluloid-control-box.c:580 msgid "Previous Chapter" msgstr "Předchozí kapitola" #: src/celluloid-control-box.c:583 msgid "Loop Playlist" msgstr "Opakovat playlist" #: src/celluloid-control-box.c:586 msgid "Shuffle Playlist" msgstr "" #: src/celluloid-control-box.c:589 src/celluloid-header-bar.c:91 msgid "Toggle Fullscreen" msgstr "Zobrazení na celou obrazovku" #: src/celluloid-controller.c:992 src/celluloid-view.c:1558 msgid "Error" msgstr "Chyba" #: src/celluloid-file-chooser.c:139 src/celluloid-plugins-manager.c:170 msgid "All Files" msgstr "Všechny soubory" #: src/celluloid-file-chooser.c:147 msgid "Media Files" msgstr "Soubory médií" #: src/celluloid-file-chooser.c:158 msgid "Audio Files" msgstr "Soubory zvuku" #: src/celluloid-file-chooser.c:166 msgid "Video Files" msgstr "Soubory videa" #: src/celluloid-file-chooser.c:174 msgid "Image Files" msgstr "Soubory obrázků" #: src/celluloid-file-chooser.c:184 msgid "Subtitle Files" msgstr "Soubory titulků" #: src/celluloid-menu.c:106 msgid "None" msgstr "Nic" #. For simplicity, also dup the default string used when the #. * track has no title. #: src/celluloid-menu.c:121 msgid "Unknown" msgstr "Neznámý" #: src/celluloid-menu.c:154 msgid "_Load External…" msgstr "_Načíst externí…" #. Disable the menu item by setting the action to something #. * invalid. #: src/celluloid-menu.c:207 #, fuzzy msgid "No disc found" msgstr "Nebyly nalezeny žádné pluginy" #: src/celluloid-menu.c:235 msgid "_File" msgstr "_Soubor" #: src/celluloid-menu.c:236 src/celluloid-menu.c:318 msgid "_Open…" msgstr "_Otevřít..." #: src/celluloid-menu.c:237 src/celluloid-menu.c:319 msgid "Open _Folder…" msgstr "" #: src/celluloid-menu.c:238 src/celluloid-menu.c:320 msgid "Open _Location…" msgstr "Otevřít_umístění..." #: src/celluloid-menu.c:239 #, fuzzy msgid "Open _Disc…" msgstr "Otevřít_umístění..." #: src/celluloid-menu.c:240 src/celluloid-menu.c:290 msgid "_Save Playlist" msgstr "_Uložit seznam přehrávání" #: src/celluloid-menu.c:241 src/celluloid-menu.c:323 msgid "_New Window" msgstr "_Nové okno" #: src/celluloid-menu.c:242 #, fuzzy msgid "_Quit" msgstr "Ukončit" #: src/celluloid-menu.c:243 msgid "_Edit" msgstr "Up_ravit" #: src/celluloid-menu.c:244 src/celluloid-menu.c:296 msgid "_Preferences" msgstr "_Předvolby" #: src/celluloid-menu.c:245 src/celluloid-menu.c:292 msgid "_Video Track" msgstr "Stopa _videa" #: src/celluloid-menu.c:246 src/celluloid-menu.c:293 msgid "_Audio Track" msgstr "Stopa _zvuku" #: src/celluloid-menu.c:247 src/celluloid-menu.c:294 msgid "S_ubtitle Track" msgstr "_Titulky" #: src/celluloid-menu.c:248 msgid "_View" msgstr "Zo_brazit" #: src/celluloid-menu.c:249 src/celluloid-menu.c:287 msgid "_Toggle Controls" msgstr "Přepnout _ovládání" #: src/celluloid-menu.c:250 src/celluloid-menu.c:289 msgid "_Toggle Playlist" msgstr "Přepnout seznam _přehrávání" #: src/celluloid-menu.c:251 msgid "_Fullscreen" msgstr "_Celá obrazovka" #: src/celluloid-menu.c:252 msgid "_Help" msgstr "_Nápověda" #: src/celluloid-menu.c:253 src/celluloid-menu.c:297 msgid "_Keyboard Shortcuts" msgstr "_Klávesové zkratky" #: src/celluloid-menu.c:254 src/celluloid-menu.c:298 msgid "_About Celluloid" msgstr "_O Celluloidu" #: src/celluloid-menu.c:321 #, fuzzy msgid "Open _Disc" msgstr "Otevřít soubor" #: src/celluloid-mpv.c:240 #, c-format msgid "Playback was terminated abnormally. Reason: %s." msgstr "Přehrávání bylo nečekaně ukončeno. Důvod: %s." #: src/celluloid-open-location-dialog.c:130 msgid "Location:" msgstr "Umístění:" #: src/celluloid-open-location-dialog.c:136 #: src/celluloid-preferences-dialog.c:401 msgid "_Cancel" msgstr "_Zrušit" #: src/celluloid-open-location-dialog.c:138 msgid "_Open" msgstr "_Otevřít" #: src/celluloid-player.c:550 msgid "Failed to apply one or more MPV options." msgstr "Nebylo možno uplatnit jednu nebo více předvoleb MPV." #: src/celluloid-playlist-widget.c:784 msgid "_Copy Location" msgstr "_Kopírovat umístění" #: src/celluloid-playlist-widget.c:785 msgid "_Remove" msgstr "_Odstranit" #: src/celluloid-playlist-widget.c:787 msgid "_Add…" msgstr "_Přidat…" #: src/celluloid-playlist-widget.c:788 msgid "Add _Folder…" msgstr "" #: src/celluloid-playlist-widget.c:789 msgid "Add _Location…" msgstr "Přidat _umístění…" #: src/celluloid-playlist-widget.c:790 msgid "_Shuffle" msgstr "_Náhodně" #: src/celluloid-playlist-widget.c:791 msgid "Loop _File" msgstr "Opakovat _soubor" #: src/celluloid-playlist-widget.c:792 msgid "Loop _Playlist" msgstr "Opakovat seznam _přehrávání" #: src/celluloid-playlist-widget.c:933 src/celluloid-shortcuts-window.c:136 msgid "Playlist" msgstr "Seznam přehrávání" #: src/celluloid-playlist-widget.c:941 #, fuzzy msgid "Playlist is empty" msgstr "Seznam přehrávání" #: src/celluloid-plugins-manager.c:163 src/celluloid-plugins-manager.c:409 msgid "Add Plugin" msgstr "Přidat plugin" #: src/celluloid-plugins-manager.c:175 msgid "Lua Plugins" msgstr "Lua pluginy" #: src/celluloid-plugins-manager.c:181 msgid "JavaScript Plugins" msgstr "JavaScriptové pluginy" #: src/celluloid-plugins-manager.c:186 msgid "C Plugins" msgstr "Pluginy v C" #: src/celluloid-plugins-manager.c:334 #, c-format msgid "Failed to copy file from '%s' to '%s'. Reason: %s" msgstr "Selhalo kopírování souboru z ‚%s‘ do ‚%s‘. Důvod: %s" #: src/celluloid-plugins-manager.c:385 msgid "No plugins found" msgstr "Nebyly nalezeny žádné pluginy" #: src/celluloid-plugins-manager-item.c:79 msgid "Remove" msgstr "Odstranit" #: src/celluloid-plugins-manager-item.c:178 msgid "" "Are you sure you want to remove this script? This action cannot be undone." msgstr "Určitě si přejete tento skript odstranit? Akci nelze vrátit zpět." #: src/celluloid-plugins-manager-item.c:199 #, c-format msgid "Failed to delete file '%s'. Reason: %s" msgstr "Selhalo smazání souboru ‚%s‘. Důvod: %s" #: src/celluloid-preferences-dialog.c:304 msgid "Automatically resize window to fit video" msgstr "" #: src/celluloid-preferences-dialog.c:307 msgid "Enable client-side decorations" msgstr "Povolit dekorace na straně klienta" #: src/celluloid-preferences-dialog.c:310 msgid "Enable dark theme" msgstr "Povolit tmavý motiv" #: src/celluloid-preferences-dialog.c:313 msgid "Use floating controls in windowed mode" msgstr "Použít v okenním režimu plovoucí ovládání" #: src/celluloid-preferences-dialog.c:316 msgid "Autohide mouse cursor in windowed mode" msgstr "Automaticky skrývat kurzor v módu okna" #: src/celluloid-preferences-dialog.c:319 msgid "Use skip buttons for controlling playlist" msgstr "Použít tlačítko přeskočit pro ovládání seznamu skladeb" #: src/celluloid-preferences-dialog.c:322 msgid "Remember last file's location" msgstr "Pamatovat si umístění posledního souboru" #: src/celluloid-preferences-dialog.c:327 msgid "Load MPV configuration file" msgstr "Načíst konfigurační soubor MPV" #: src/celluloid-preferences-dialog.c:330 msgid "MPV configuration file:" msgstr "Konfigurační soubor MPV:" #: src/celluloid-preferences-dialog.c:333 msgid "Load MPV input configuration file" msgstr "Načíst vstupní konfigurační soubor MPV" #: src/celluloid-preferences-dialog.c:336 msgid "MPV input configuration file:" msgstr "Vstupní konfigurační soubor MPV:" #: src/celluloid-preferences-dialog.c:341 msgid "Always open new window" msgstr "Vždy otevřít nové okno" #: src/celluloid-preferences-dialog.c:344 msgid "Ignore playback errors" msgstr "" #: src/celluloid-preferences-dialog.c:347 msgid "Prefetch metadata" msgstr "Dopředu načíst metadata" #: src/celluloid-preferences-dialog.c:350 msgid "Enable MPRIS support" msgstr "Zapnout podporu MPRIS" #: src/celluloid-preferences-dialog.c:353 msgid "Enable media keys support" msgstr "Zapnout podporu multimediálních kláves" #: src/celluloid-preferences-dialog.c:356 msgid "Extra MPV options:" msgstr "Extra možnosti MPV:" #: src/celluloid-preferences-dialog.c:389 msgid "Interface" msgstr "Rozhraní" #: src/celluloid-preferences-dialog.c:392 msgid "Config Files" msgstr "Konfigurační soubory" #: src/celluloid-preferences-dialog.c:395 msgid "Miscellaneous" msgstr "Různé" #: src/celluloid-preferences-dialog.c:398 msgid "Plugins" msgstr "Pluginy" #: src/celluloid-preferences-dialog.c:403 msgid "_Save" msgstr "_Uložit" #: src/celluloid-preferences-dialog.c:421 msgid "Preferences" msgstr "Předvolby" #: src/celluloid-shortcuts-window.c:57 msgid "Open file" msgstr "Otevřít soubor" #: src/celluloid-shortcuts-window.c:58 msgid "Open location" msgstr "Otevřít umístění" #: src/celluloid-shortcuts-window.c:59 msgid "Add file to playlist" msgstr "Přidat soubory do seznamu přehrávání" #: src/celluloid-shortcuts-window.c:60 msgid "Add location to playlist" msgstr "Přidat umístění do seznamu přehrávání" #: src/celluloid-shortcuts-window.c:61 msgid "Show preferences dialog" msgstr "Otevřít předvolby" #: src/celluloid-shortcuts-window.c:62 msgid "Toggle controls" msgstr "Přepnout ovládání" #: src/celluloid-shortcuts-window.c:63 msgid "Toggle playlist" msgstr "Přepnout seznam přehrávání" #: src/celluloid-shortcuts-window.c:64 msgid "Toggle fullscreen mode" msgstr "Přepnout zobrazení na celou obrazovku" #: src/celluloid-shortcuts-window.c:65 msgid "Leave fullscreen mode" msgstr "Opustit celou obrazovku" #: src/celluloid-shortcuts-window.c:66 msgid "Toggle OSD states between normal and playback time/duration" msgstr "Přepnout zprávy na obrazovce (normální nebo čas přehrávání)" #: src/celluloid-shortcuts-window.c:67 msgid "Show filename on the OSD" msgstr "Ukazovat na obrazovce název souboru" #: src/celluloid-shortcuts-window.c:68 msgid "Show progress, elapsed time, and duration on the OSD" msgstr "Ukazovat na obrazovce postup, uplynulý čas a celkový čas" #: src/celluloid-shortcuts-window.c:71 msgid "Seek backward/forward 5 seconds" msgstr "Skok zpět o 5 sekund" #: src/celluloid-shortcuts-window.c:72 msgid "Exact seek backward/forward 1 second" msgstr "Přesný skok zpět o 1 sekundu" #: src/celluloid-shortcuts-window.c:73 msgid "Seek backward/forward 1 minute" msgstr "Skok zpět/vpřed o 1 minutu" #: src/celluloid-shortcuts-window.c:74 msgid "Exact seek backward/forward 5 seconds" msgstr "Přesný skok zpět/vpřed o 5 sekund" #: src/celluloid-shortcuts-window.c:75 msgid "Seek to previous/next subtitle" msgstr "Skok k předchozím/dalším titulkům" #: src/celluloid-shortcuts-window.c:76 msgid "Step backward/forward a single frame" msgstr "Krok zpět/vpřed po jednotlivém snímku" #: src/celluloid-shortcuts-window.c:77 msgid "Seek to the beginning of the previous/next chapter" msgstr "Skok na začátek předchozí/další kapitoly" #: src/celluloid-shortcuts-window.c:80 msgid "Decrease/increase playback speed by 10%" msgstr "Zpomalit/zrychlit přehrávání o 10 %" #: src/celluloid-shortcuts-window.c:81 msgid "Halve/double current playback speed" msgstr "Snížit na polovinu / zdvojnásobit rychlost přehrávání" #: src/celluloid-shortcuts-window.c:82 msgid "Reset playback speed to normal" msgstr "Obnovit normální rychlost přehrávání" #: src/celluloid-shortcuts-window.c:83 msgid "Go backward/forward in the playlist" msgstr "Jít v seznamu přehrávání zpět/vpřed" #: src/celluloid-shortcuts-window.c:84 msgid "Remove selected playlist item" msgstr "Odstranit vybranou položku v seznamu přehrávání" #: src/celluloid-shortcuts-window.c:85 msgid "Save playlist" msgstr "Uložit seznam přehrávání" #: src/celluloid-shortcuts-window.c:86 msgid "Set/clear A-B loop points" msgstr "Nastavit/smazat A-B body smyčky" #: src/celluloid-shortcuts-window.c:87 msgid "Toggle infinite looping" msgstr "Přepnout opakování" #: src/celluloid-shortcuts-window.c:88 msgid "Pause or unpause" msgstr "Pozastavit nebo hrát dál" #: src/celluloid-shortcuts-window.c:89 msgid "Quit" msgstr "Ukončit" #: src/celluloid-shortcuts-window.c:90 msgid "Save current playback position and quit" msgstr "Uložit pozici přehrávání a ukončit" #: src/celluloid-shortcuts-window.c:93 msgid "Enter search mode" msgstr "" #: src/celluloid-shortcuts-window.c:94 msgid "Jump to next match" msgstr "" #: src/celluloid-shortcuts-window.c:95 msgid "Jump to previous match" msgstr "" #: src/celluloid-shortcuts-window.c:96 msgid "Exit search mode" msgstr "" #: src/celluloid-shortcuts-window.c:99 msgid "Cycle through audio tracks" msgstr "Procházet zvukové stopy" #: src/celluloid-shortcuts-window.c:100 src/celluloid-shortcuts-window.c:101 msgid "Decrease/increase volume" msgstr "Snížit/zvýšit hlasitost" #: src/celluloid-shortcuts-window.c:102 msgid "Mute or unmute" msgstr "Ztlumit nebo obnovit hlasitost" #: src/celluloid-shortcuts-window.c:103 msgid "Adjust audio delay by +/- 0.1 seconds" msgstr "Posunout zvukovou stupu o +/- 0,1 sekundy" #: src/celluloid-shortcuts-window.c:106 msgid "Toggle subtitle visibility" msgstr "Přepnout viditelnost titulků" #: src/celluloid-shortcuts-window.c:107 msgid "Cycle through available subtitles" msgstr "Procházet načtené titulky" #: src/celluloid-shortcuts-window.c:108 msgid "Adjust subtitle delay by +/- 0.1 seconds" msgstr "Posunout stupu titulků o +/- 0,1 sekundy" #: src/celluloid-shortcuts-window.c:109 msgid "Toggle SSA/ASS subtitles style override" msgstr "Přepnout styl titulků SSA/ASS" #: src/celluloid-shortcuts-window.c:110 msgid "Move subtitles up/down" msgstr "Posunout titulky nahoru/dolů" #: src/celluloid-shortcuts-window.c:111 msgid "Toggle VSFilter aspect compatibility mode" msgstr "Přepnout mód kompatibility poměru stran VSFilter" #: src/celluloid-shortcuts-window.c:114 msgid "Cycle through video tracks" msgstr "Procházet stopy videa" #: src/celluloid-shortcuts-window.c:115 msgid "Decrease/increase pan-and-scan range" msgstr "Snížit/zvýšit rozsah ořezávání videa s jiným poměrem stran" #: src/celluloid-shortcuts-window.c:116 msgid "Take a screenshot" msgstr "Pořídit snímek obrazovky" #: src/celluloid-shortcuts-window.c:117 msgid "Take a screenshot, without subtitles" msgstr "Pořídit snímek obrazovky, bez titulků" #: src/celluloid-shortcuts-window.c:118 msgid "Take a screenshot, as the window shows it" msgstr "Pořídit snímek obrazovky, tak, jak se okno zobrazuje" #: src/celluloid-shortcuts-window.c:119 msgid "Resize video to half its original size" msgstr "Zmenšit na poloviční velikost videa" #: src/celluloid-shortcuts-window.c:120 msgid "Resize video to its original size" msgstr "Obnovit původní velikost videa" #: src/celluloid-shortcuts-window.c:121 msgid "Resize video to double its original size" msgstr "Zvětšit na dvojnásobnou velikost videa" #: src/celluloid-shortcuts-window.c:122 msgid "Adjust contrast" msgstr "Upravit konstrast" #: src/celluloid-shortcuts-window.c:123 msgid "Adjust brightness" msgstr "Upravit jas" #: src/celluloid-shortcuts-window.c:124 msgid "Adjust gamma" msgstr "Upravit svítivost (gamma)" #: src/celluloid-shortcuts-window.c:125 msgid "Adjust saturation" msgstr "Upravit sytost" #: src/celluloid-shortcuts-window.c:126 msgid "Activate or deactivate deinterlacer" msgstr "Zapnout nebo vypnout odstranění prokládání" #: src/celluloid-shortcuts-window.c:127 msgid "Cycle aspect ratio override" msgstr "Procházet přepsání poměru stran" #: src/celluloid-shortcuts-window.c:130 msgid "User Interface" msgstr "Uživatelské rozhraní" #: src/celluloid-shortcuts-window.c:131 msgid "Video" msgstr "Video" #: src/celluloid-shortcuts-window.c:132 msgid "Audio" msgstr "Zvuk" #: src/celluloid-shortcuts-window.c:133 msgid "Subtitle" msgstr "Titulky" #: src/celluloid-shortcuts-window.c:134 msgid "Playback" msgstr "Přehrávání" #: src/celluloid-shortcuts-window.c:135 msgid "Seeking" msgstr "Posouvání" #: src/celluloid-view.c:728 msgid "Load Audio Track…" msgstr "Načíst zvukovou stopu…" #: src/celluloid-view.c:732 msgid "Load Video Track…" msgstr "" #: src/celluloid-view.c:736 msgid "Load Subtitle Track…" msgstr "Načíst stopu titulků…" #: src/celluloid-view.c:901 msgid "" "Enabling or disabling client-side decorations requires restarting to take " "effect." msgstr "" "Aby se projevilo povolení nebo zakázání dekorací na straně klienta, je nutný" " restart aplikace" #: src/celluloid-view.c:1444 msgid "Add Folder to Playlist" msgstr "" #: src/celluloid-view.c:1444 msgid "Open Folder" msgstr "" #: src/celluloid-view.c:1449 msgid "Add File to Playlist" msgstr "_Přidat soubory do seznamu přehrávání" #: src/celluloid-view.c:1449 msgid "Open File" msgstr "Otevřít soubor" #: src/celluloid-view.c:1485 msgid "Add Location to Playlist" msgstr "Přidat umístění do seznamu přehrávání" #: src/celluloid-view.c:1486 msgid "Open Location" msgstr "Otevřít umístění" #: src/celluloid-view.c:1532 msgid "Save Playlist" msgstr "_Uložit seznam přehrávání" #: src/celluloid-view.c:1598 msgid "A GTK frontend for MPV" msgstr "GTK frontend pro MPV" #: src/celluloid-view.c:1608 msgid "translator-credits" msgstr "Tomáš Marný" celluloid-0.20/po/da.po000066400000000000000000001106741373135401300147620ustar00rootroot00000000000000# Danish translation for Celluloid # scootergrisen, 2017. # gnome-mpv , 2019. #zanata # scootergrisen , 2019. #zanata # scootergrisen , 2020. #zanata msgid "" msgstr "" "Project-Id-Version: gnome-mpv 0.15\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-02-20 20:48+0700\n" "PO-Revision-Date: 2020-08-02 06:37-0400\n" "Last-Translator: scootergrisen \n" "Language-Team: Danish\n" "Language: da\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Zanata 4.6.2\n" #: data/io.github.celluloid_player.Celluloid.gschema.xml:11 msgid "" "Whether the settings has already been migrated from the previous version" msgstr "" "Hvorvidt indstillingerne allerede er blevet migreret fra den forrige version" #: data/io.github.celluloid_player.Celluloid.gschema.xml:17 msgid "Whether or not to automatically resize window to fit video" msgstr "Om vinduet automatisk skal tilpasses til videoen" #: data/io.github.celluloid_player.Celluloid.gschema.xml:23 msgid "Enable or disable dark theme" msgstr "Aktivér eller deaktivér mørkt tema" #: data/io.github.celluloid_player.Celluloid.gschema.xml:29 msgid "Enable or disable client-side decorations" msgstr "Aktivér eller deaktivér klientsidedekorationer" #: data/io.github.celluloid_player.Celluloid.gschema.xml:35 msgid "Whether or not to use floating controls in windowed mode" msgstr "Hvorvidt der skal bruges flydende styring i vinduestilstand" #: data/io.github.celluloid_player.Celluloid.gschema.xml:41 msgid "Whether or not to autohide mouse cursor in windowed mode" msgstr "Om musemarkøren automatisk skal skjules i vinduestilstand" #: data/io.github.celluloid_player.Celluloid.gschema.xml:47 msgid "The minimum cursor speed at which floating controls will be unhidden." msgstr "Den laveste markørhastighed hvor flydende styring ikke skjules." #: data/io.github.celluloid_player.Celluloid.gschema.xml:54 msgid "" "The size of the dead zone in which cursor movement will not cause the " "controls to be shown." msgstr "Størrelsen på den døde zone hvor markørbevægelser viser styringen." #: data/io.github.celluloid_player.Celluloid.gschema.xml:60 msgid "Whether or not to use skip buttons for controlling playlist" msgstr "" "Hvorvidt der skal bruges spring over-knapper til at styre afspilningsliste" #: data/io.github.celluloid_player.Celluloid.gschema.xml:66 msgid "" "Whether or not to make file chooser dialog remember last folder accessed" msgstr "" "Hvorvidt filvælger-dialogen skal huske mappen som der sidst var adgang til" #: data/io.github.celluloid_player.Celluloid.gschema.xml:72 msgid "Whether or not to create new windows when there is already an instance" msgstr "Hvorvidt nye vinduer skal oprettes når der allerede er en instans" #: data/io.github.celluloid_player.Celluloid.gschema.xml:78 #: src/celluloid-application.c:575 msgid "Options to pass to mpv" msgstr "Tilvalg som skal videregives til mpv" #: data/io.github.celluloid_player.Celluloid.gschema.xml:84 msgid "Path to mpv configuration file" msgstr "Stil til mpv-konfigurationsfil" #: data/io.github.celluloid_player.Celluloid.gschema.xml:90 msgid "Load or don't load mpv configuration file" msgstr "Indlæs eller indlæs ikke mpv-konfigurationsfil" #: data/io.github.celluloid_player.Celluloid.gschema.xml:96 msgid "Path to mpv input configuration file" msgstr "Sti til mpv-input-konfigurationsfil" #: data/io.github.celluloid_player.Celluloid.gschema.xml:102 msgid "Load or don't load mpv input configuration file" msgstr "Indlæs eller indlæs ikke mpv-input-konfigurationsfil" #: data/io.github.celluloid_player.Celluloid.gschema.xml:108 msgid "Whether or not to enable MPRIS support" msgstr "Hvorvidt understøttelse af MPRIS skal aktiveres" #: data/io.github.celluloid_player.Celluloid.gschema.xml:114 msgid "" "Whether or not to enable GNOME-Settings-Daemon-based media keys support" msgstr "" "Hvorvidt understøttelse af GNOME-Settings-Daemon-baserede medietaster skal " "aktiveres" #: data/io.github.celluloid_player.Celluloid.gschema.xml:120 msgid "Whether or not to prefetch metadata for non-current playlist entries" msgstr "" "Hvorvidt metadata skal hentes på forhånd for poster som ikke er i brug" #: data/io.github.celluloid_player.Celluloid.gschema.xml:126 msgid "" "Whether or not to display an error message when playback of a file ends with" " an error" msgstr "" "Hvorvidt der skal vises en fejlmeddelelse når afspilningen af en fil slutter" " med en fejl" #: data/io.github.celluloid_player.Celluloid.gschema.xml:132 msgid "Whether or not to inhibit session idling when something is playing" msgstr "Hvorvidt inaktivitet af session skal forhindres når noget afspilles" #: data/io.github.celluloid_player.Celluloid.gschema.xml:142 msgid "Width of the window" msgstr "Vinduets bredde" #: data/io.github.celluloid_player.Celluloid.gschema.xml:148 msgid "Height of the window" msgstr "Vinduets højde" #: data/io.github.celluloid_player.Celluloid.gschema.xml:154 msgid "Whether or not the window is maximized" msgstr "Om vinduet er maksimeret eller ej" #: data/io.github.celluloid_player.Celluloid.gschema.xml:161 msgid "Volume of player" msgstr "Afspillerens lydstyrke" #: data/io.github.celluloid_player.Celluloid.gschema.xml:167 msgid "Whether or not to loop when the end of playlist is reached" msgstr "Om afspilningslisten skal fortsætte i løkke når slutningen er nået" #: data/io.github.celluloid_player.Celluloid.gschema.xml:173 msgid "Width of the playlist" msgstr "Afspilningslistens bredde" #: data/io.github.celluloid_player.Celluloid.gschema.xml:179 msgid "Show or not show the controls" msgstr "Vis eller skjul styringen" #: data/io.github.celluloid_player.Celluloid.gschema.xml:185 msgid "Show or not show the playlist" msgstr "Vis eller skjul afspilningsliste" #: data/io.github.celluloid_player.Celluloid.gschema.xml:191 msgid "URI of the last folder accessed" msgstr "URI'en til mappen som der sidst var adgang til" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:7 #: data/io.github.celluloid_player.Celluloid.desktop.in:4 #: src/celluloid-application.c:451 msgid "Celluloid" msgstr "Celluloid" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:8 msgid "GTK+ frontend for mpv" msgstr "GTK+-frontend til mpv" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:16 msgid "" "Celluloid is a simple media player that can play virtually all video and " "audio formats. It supports playlists and MPRIS2 media player controls. The " "design of Celluloid follows the GNOME Human Interface Guidelines, but can " "also be adapted for other systems that don't use client-side decorations " "(CSD). It is based on the mpv library and GTK." msgstr "" "Celluloid er en simpel medieafspiller som kan afspille næsten alle video- og" " lydformater. Den understøtter afspilningslister og " "MPRIS2-medieafspillerstyring. Celluloids design følger GNOME Human Interface" " Guidelines men kan også tilpasses andre systemer der ikke bruger " "klientside-dekorationer (CSD). Den er baseret på mpv-biblioteket og GTK." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:23 msgid "Features:" msgstr "Funktionaliteter:" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:25 msgid "Drag and drop playlist" msgstr "Træk og slip afspilningsliste" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:26 msgid "Loading external mpv configuration files" msgstr "Indlæser eksterne mpv-konfigurationsfiler" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:27 msgid "MPRIS2 D-Bus interface" msgstr "MPRIS2 D-Bus-grænseflade" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:30 msgid "The Celluloid Developers" msgstr "Celluloids udviklere" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:34 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:87 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:117 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:156 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:187 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:215 msgid "This release contains the following changes:" msgstr "Udgivelsen indeholder følgende ændringer:" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:38 msgid "" "Adjust the range of volume button based on the value of the volume-max " "property." msgstr "" "Juster lydstyrkeknappens område baseret på værdien af egenskaben volume-max." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:42 msgid "Retain window maximization state across sessions." msgstr "Bibehold vinduets maksimeret tilstand på tværs af sessioner." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:45 msgid "Retain loop state across sessions." msgstr "Bibehold løkketilstand på tværs af sessioner." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:48 msgid "Implement playlist search." msgstr "Implementer søgning i afspilningsliste." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:51 msgid "Update the list of shortcuts in Keyboard Shortcuts dialog." msgstr "Opdater listen over genveje i dialogen Tastaturgenveje." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:54 msgid "Correctly handle quotes and escape sequences in extra mpv options." msgstr "" "Korrekt håndtering af citationstegn og undvigesekvenser i ekstra mpv-" "tilvalg." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:57 msgid "Display time at cursor position when hovering the seek bar." msgstr "" "Vis tidspunktet ved markørens placering når der holdes over søgelinjen." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:60 msgid "" "Deprecate '--mpv-options'. Options starting with '--mpv-' can be used to set" " mpv options instead. For example, passing '--mpv-vf=vflip' to Celluloid is " "equivalent to passing '--vf=vflip' to mpv." msgstr "" "Gør '--mpv-tilvalg' udgået. Tilvalg som begynder med '--mpv-' kan i stedet " "bruges til at indstille mpv-tilvalg. Hvis man f.eks. angiver '--mpv-" "vf=vflip' til Celluloid, så svarer det til at angive '--vf=vflip' til mpv." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:66 msgid "" "Add support for configuring dead zone, an area in which mouse movement will " "not cause controls to be shown." msgstr "" "Tilføj understøttelse af konfiguration af død zone, et område hvor " "musebevægelser ikke får styringen til at blive vist." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:70 msgid "Make window sizing work correctly with HiDPI displays." msgstr "Få vinduesstørrelser til at virke korrekt med HiDPI-skærme." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:73 msgid "Add Finnish translation by Kimmo Kujansuu." msgstr "Tilføj finsk oversættelse af Kimmo Kujansuu." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:76 msgid "Add Slovenian translation by @bertronika." msgstr "Tilføj slovensk oversættelse af @bertronika." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:80 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:110 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:149 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:180 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:208 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:236 msgid "This listing is incomplete. See git log for complete changelog." msgstr "Listen er ikke komplet. Se git-loggen for en komplet ændringslog." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:91 msgid "Add Persian translation by @danialbehzadi" msgstr "Tilføj persisk oversættelse af @danialbehzadi" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:94 msgid "Add Ukranian translation by @vl-nix" msgstr "Tilføj ukrainsk oversættelse af @vl-nix" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:97 msgid "" "Add support for showing/hiding window decorations using the mpv option " "--border" msgstr "" "Tilføj understøttelse til at vise/skjule vinduesdekorationer med mpv " "tilvalget --border" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:100 msgid "Add menu item for opening discs" msgstr "Tilføj menupunkt til at åbne diske" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:103 msgid "Block cursor autohide when volume popup is open in windowed mode" msgstr "" "Bloker automatisk skjulning af markør når lysstyrke-pop op er åben i " "vinduestilstand" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:106 msgid "Fix crash with mpv 0.30" msgstr "Ret nedbryd med mpv 0.30" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:121 msgid "Rename project to Celluloid" msgstr "Omdøb projektet til Celluloid" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:124 msgid "Add Turkish translation by @TeknoMobil" msgstr "Tilføj tyrkisk oversættelse af @TeknoMobil" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:127 msgid "Add Esperanto translation by @F3nd0" msgstr "Tilføj esperanto oversættelse af @F3nd0" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:130 msgid "Migrate from opengl-cb to the new render API" msgstr "Migrer fra opengl-cb til den nye gengivelses API" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:133 msgid "Handle numpad keybindings" msgstr "Håndter tastebindinger for det numeriske tastatur" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:136 msgid "Handle unicode keybindings" msgstr "Håndter tastebindinger for unicode" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:139 msgid "Forward media key events to mpv" msgstr "Viderestil medietast-hændelser til mpv" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:142 msgid "" "Add dconf key for controlling cursor speed at which controls are unhidden" msgstr "" "Tilføj dconf-nøgle til styring af markørens hastighed hvor styring skjules" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:145 msgid "Add option for suppressing playback errors" msgstr "Tilføj tilvalg til undertrykkelse af afspilningsfejl" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:160 msgid "Split up the General tab in the preferences dialog" msgstr "Opdeling af Generelt-fanebladet i præferencer-dialogen." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:163 msgid "Improve behavior when toggling playlist under tiling window managers" msgstr "" "Forbedret opførsel når afspilningslisten vises/skjules under fliselæggende " "vindueshåndteringer" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:166 msgid "Move app menu items to primary menu" msgstr "Flyt punkterne fra programmenuen til den primære menu" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:169 msgid "Use separate MPRIS DBus connection for each window" msgstr "Brug separat MPRIS DBus-forbindelse til hvert vindue" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:172 msgid "Add support for MPRIS property LoopStatus" msgstr "Tilføj understøttelse af MPRIS-egenskaben LoopStatus" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:175 msgid "" "Add option --mpv-options for setting arbitrary mpv options from the command-" "line" msgstr "" "Tilføj tilvalget --mpv-options til indstilling af vilkårlige tilvalg fra " "kommandolinjen" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:191 msgid "Set default screenshot directory to XDG_PICTURES_DIR" msgstr "Indstil standardmappen for skærmbilleder til XDG_PICTURES_DIR" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:194 msgid "" "Improve handling of --window-scale, --autofit, --autofit-larger, and " "--autofit-smaller" msgstr "" "Forbedret håndtering af --window-scale, --autofit, --autofit-larger og " "--autofit-smaller" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:198 msgid "Add command line option for setting WM_ROLE" msgstr "Tilføj kommandolinjetilvalg for indstilling af WM_ROLE" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:201 msgid "Add context menu item for removing playlist items" msgstr "Tilføj punkt i genvejsmenuen til fjernelse af afspilningslistepunkter" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:204 msgid "Add context menu item for copying location of playlist items" msgstr "" "Tilføj punkt i genvejsmenuen til kopiering af placering for " "afspilningslistepunkter" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:219 msgid "" "Add option to make skip buttons change playlist entries rather than chapters" msgstr "" "Tilføjet valgmulighed for at få spring over-knappen til at ændre " "afspilningslistepunkter frem for kapitler." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:223 msgid "Make the file chooser accept non-local locations" msgstr "Fået filvælgeren til at accepterer placeringer som ikke er lokale" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:226 msgid "Add right-click menu entry for looping a single file" msgstr "Tilføj menupunkt ved højreklik for at afspille en enkelt fil i løkke" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:229 msgid "Handle property change events for fullscreen and window-scale" msgstr "" "Håndter hændelser af egenskabsændring for fuldskærm og vinduesskalering" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:232 msgid "Add option to autohide mouse cursor in windowed mode" msgstr "" "Tilføjet valgmulighed for automatisk at skjule musemarkøren i " "vinduestilstand" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:246 msgid "The main window showing the application in action" msgstr "Hovedvinduet som viser programmet i funktion" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:250 msgid "The main window with CSD disabled" msgstr "Hovedvinduet med deaktiveret skærmdisplay" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:254 msgid "The main window with playlist open" msgstr "Hovedvinduet med åben afspilningsliste" #: data/io.github.celluloid_player.Celluloid.desktop.in:5 msgid "Multimedia Player" msgstr "Multimedieafspiller" #: data/io.github.celluloid_player.Celluloid.desktop.in:6 msgid "Play movies and videos" msgstr "Afspil film og videoer" #. Translators: Search terms to find this application. Don't translate the #. semicolons! The list MUST also end with a semicolon! #: data/io.github.celluloid_player.Celluloid.desktop.in:17 msgid "Video;Movie;Film;Clip;Series;Player;DVD;TV;Disc;Album;Music;GNOME;mpv;" msgstr "Video;Film;Klip;Serier;Afspiller;DVD;TV;Disk;Album;Musik;GNOME;mpv;" #: data/io.github.celluloid_player.Celluloid.desktop.in:23 msgid "New Window" msgstr "Nyt vindue" #: src/celluloid-application.c:495 msgid "Playing" msgstr "Afspiller" #: src/celluloid-application.c:551 msgid "Show release version" msgstr "Vis udgivelsesversion" #: src/celluloid-application.c:559 msgid "Enqueue" msgstr "Sæt i kø" #: src/celluloid-application.c:567 msgid "Create a new window" msgstr "Opret et nyt vindue" #: src/celluloid-application.c:576 msgid "OPTIONS" msgstr "TILVALG" #: src/celluloid-application.c:583 msgid "Set the window role" msgstr "Sæt vinduesrollen" #: src/celluloid-application.c:591 msgid "Don't connect to an already-running instance" msgstr "Opret ikke forbindelse til en instans som allerede kører" #: src/celluloid-control-box.c:362 msgid "Pause" msgstr "Pause" #: src/celluloid-control-box.c:362 src/celluloid-control-box.c:565 msgid "Play" msgstr "Afspil" #: src/celluloid-control-box.c:568 msgid "Stop" msgstr "Stop" #: src/celluloid-control-box.c:571 msgid "Forward" msgstr "Fremad" #: src/celluloid-control-box.c:574 msgid "Rewind" msgstr "Baglæns" #: src/celluloid-control-box.c:577 msgid "Next Chapter" msgstr "Næste kapitel" #: src/celluloid-control-box.c:580 msgid "Previous Chapter" msgstr "Forrige kapitel" #: src/celluloid-control-box.c:583 msgid "Loop Playlist" msgstr "Afspil afspilningsliste i løkke" #: src/celluloid-control-box.c:586 msgid "Shuffle Playlist" msgstr "Bland afspilningsliste" #: src/celluloid-control-box.c:589 src/celluloid-header-bar.c:91 msgid "Toggle Fullscreen" msgstr "Fuldskærm til/fra" #: src/celluloid-controller.c:992 src/celluloid-view.c:1558 msgid "Error" msgstr "Fejl" #: src/celluloid-file-chooser.c:139 src/celluloid-plugins-manager.c:170 msgid "All Files" msgstr "Alle filer" #: src/celluloid-file-chooser.c:147 msgid "Media Files" msgstr "Mediefiler" #: src/celluloid-file-chooser.c:158 msgid "Audio Files" msgstr "Lydfiler" #: src/celluloid-file-chooser.c:166 msgid "Video Files" msgstr "Videofiler" #: src/celluloid-file-chooser.c:174 msgid "Image Files" msgstr "Billedfiler" #: src/celluloid-file-chooser.c:184 msgid "Subtitle Files" msgstr "Undertekstfiler" #: src/celluloid-menu.c:106 msgid "None" msgstr "Intet" #. For simplicity, also dup the default string used when the #. * track has no title. #: src/celluloid-menu.c:121 msgid "Unknown" msgstr "Ukendt" #: src/celluloid-menu.c:154 msgid "_Load External…" msgstr "_Indlæs eksternt …" #. Disable the menu item by setting the action to something #. * invalid. #: src/celluloid-menu.c:207 msgid "No disc found" msgstr "Ingen disk fundet" #: src/celluloid-menu.c:235 msgid "_File" msgstr "_Fil" #: src/celluloid-menu.c:236 src/celluloid-menu.c:318 msgid "_Open…" msgstr "_Åbn …" #: src/celluloid-menu.c:237 src/celluloid-menu.c:319 msgid "Open _Folder…" msgstr "Åbn _mappe …" #: src/celluloid-menu.c:238 src/celluloid-menu.c:320 msgid "Open _Location…" msgstr "Åbn _placering …" #: src/celluloid-menu.c:239 msgid "Open _Disc…" msgstr "Åbn _disk …" #: src/celluloid-menu.c:240 src/celluloid-menu.c:290 msgid "_Save Playlist" msgstr "_Gem afspilningsliste" #: src/celluloid-menu.c:241 src/celluloid-menu.c:323 msgid "_New Window" msgstr "_Nyt vindue" #: src/celluloid-menu.c:242 msgid "_Quit" msgstr "_Afslut" #: src/celluloid-menu.c:243 msgid "_Edit" msgstr "_Rediger" #: src/celluloid-menu.c:244 src/celluloid-menu.c:296 msgid "_Preferences" msgstr "_Præferencer" #: src/celluloid-menu.c:245 src/celluloid-menu.c:292 msgid "_Video Track" msgstr "_Videospor" #: src/celluloid-menu.c:246 src/celluloid-menu.c:293 msgid "_Audio Track" msgstr "_Lydspor" #: src/celluloid-menu.c:247 src/celluloid-menu.c:294 msgid "S_ubtitle Track" msgstr "_Undertekstspor" #: src/celluloid-menu.c:248 msgid "_View" msgstr "_Vis" #: src/celluloid-menu.c:249 src/celluloid-menu.c:287 msgid "_Toggle Controls" msgstr "_Styring til/fra" #: src/celluloid-menu.c:250 src/celluloid-menu.c:289 msgid "_Toggle Playlist" msgstr "_Afspilningsliste til/fra" #: src/celluloid-menu.c:251 msgid "_Fullscreen" msgstr "_Fuldskærm" #: src/celluloid-menu.c:252 msgid "_Help" msgstr "_Hjælp" #: src/celluloid-menu.c:253 src/celluloid-menu.c:297 msgid "_Keyboard Shortcuts" msgstr "_Tastaturgenveje" #: src/celluloid-menu.c:254 src/celluloid-menu.c:298 msgid "_About Celluloid" msgstr "_Om Celluloid" #: src/celluloid-menu.c:321 msgid "Open _Disc" msgstr "Åbn _disk" #: src/celluloid-mpv.c:240 #, c-format msgid "Playback was terminated abnormally. Reason: %s." msgstr "Afspilningen blev afsluttet unormalt. Årsag: %s." #: src/celluloid-open-location-dialog.c:130 msgid "Location:" msgstr "Placering:" #: src/celluloid-open-location-dialog.c:136 #: src/celluloid-preferences-dialog.c:401 msgid "_Cancel" msgstr "_Annuller" #: src/celluloid-open-location-dialog.c:138 msgid "_Open" msgstr "_Åbn" #: src/celluloid-player.c:550 msgid "Failed to apply one or more MPV options." msgstr "Kunne ikke anvende et eller flere MPV-tilvalg." #: src/celluloid-playlist-widget.c:784 msgid "_Copy Location" msgstr "_Kopíer placering" #: src/celluloid-playlist-widget.c:785 msgid "_Remove" msgstr "_Fjern" #: src/celluloid-playlist-widget.c:787 msgid "_Add…" msgstr "_Tilføj …" #: src/celluloid-playlist-widget.c:788 msgid "Add _Folder…" msgstr "Tilføj _mappe …" #: src/celluloid-playlist-widget.c:789 msgid "Add _Location…" msgstr "Tilføj _placering …" #: src/celluloid-playlist-widget.c:790 msgid "_Shuffle" msgstr "_Bland" #: src/celluloid-playlist-widget.c:791 msgid "Loop _File" msgstr "Løkke_fil" #: src/celluloid-playlist-widget.c:792 msgid "Loop _Playlist" msgstr "Afspil afspilningsliste i _løkke" #: src/celluloid-playlist-widget.c:933 src/celluloid-shortcuts-window.c:136 msgid "Playlist" msgstr "Afspilningsliste" #: src/celluloid-playlist-widget.c:941 msgid "Playlist is empty" msgstr "Afspilningslisten er tom" #: src/celluloid-plugins-manager.c:163 src/celluloid-plugins-manager.c:409 msgid "Add Plugin" msgstr "Tilføj plugin" #: src/celluloid-plugins-manager.c:175 msgid "Lua Plugins" msgstr "Lua-plugins" #: src/celluloid-plugins-manager.c:181 msgid "JavaScript Plugins" msgstr "JavaScript-plugins" #: src/celluloid-plugins-manager.c:186 msgid "C Plugins" msgstr "C-plugins" #: src/celluloid-plugins-manager.c:334 #, c-format msgid "Failed to copy file from '%s' to '%s'. Reason: %s" msgstr "Kunne ikke kopiere fil fra '%s' til '%s'. Årsag: %s" #: src/celluloid-plugins-manager.c:385 msgid "No plugins found" msgstr "Ingen plugins fundet" #: src/celluloid-plugins-manager-item.c:79 msgid "Remove" msgstr "Fjern" #: src/celluloid-plugins-manager-item.c:178 msgid "" "Are you sure you want to remove this script? This action cannot be undone." msgstr "" "Er du sikker på, at du vil fjerne dette script? Handlingen kan ikke " "fortrydes." #: src/celluloid-plugins-manager-item.c:199 #, c-format msgid "Failed to delete file '%s'. Reason: %s" msgstr "Kunne ikke slette filen '%s'. Årsag: %s" #: src/celluloid-preferences-dialog.c:304 msgid "Automatically resize window to fit video" msgstr "Tilpas automatisk vinduet til videoen" #: src/celluloid-preferences-dialog.c:307 msgid "Enable client-side decorations" msgstr "Aktivér klientsidedekorationer" #: src/celluloid-preferences-dialog.c:310 msgid "Enable dark theme" msgstr "Aktivér mørkt tema" #: src/celluloid-preferences-dialog.c:313 msgid "Use floating controls in windowed mode" msgstr "Vis flydende styring i vinduestilstand" #: src/celluloid-preferences-dialog.c:316 msgid "Autohide mouse cursor in windowed mode" msgstr "Skjul automatisk musemarkøren i vinduestilstand" #: src/celluloid-preferences-dialog.c:319 msgid "Use skip buttons for controlling playlist" msgstr "Brug spring over-knapper til at styre afspilningsliste" #: src/celluloid-preferences-dialog.c:322 msgid "Remember last file's location" msgstr "Husk placeringen af den sidste fil" #: src/celluloid-preferences-dialog.c:327 msgid "Load MPV configuration file" msgstr "Indlæs MPV-konfigurationsfil" #: src/celluloid-preferences-dialog.c:330 msgid "MPV configuration file:" msgstr "MPV-konfigurationsfil:" #: src/celluloid-preferences-dialog.c:333 msgid "Load MPV input configuration file" msgstr "Indlæs MPV-input-konfigurationsfil" #: src/celluloid-preferences-dialog.c:336 msgid "MPV input configuration file:" msgstr "MPV-input-konfigurationsfil:" #: src/celluloid-preferences-dialog.c:341 msgid "Always open new window" msgstr "Åbn altid et nyt vindue" #: src/celluloid-preferences-dialog.c:344 msgid "Ignore playback errors" msgstr "Ignorer fejl ved afspilning" #: src/celluloid-preferences-dialog.c:347 msgid "Prefetch metadata" msgstr "Hent metadata på forhånd" #: src/celluloid-preferences-dialog.c:350 msgid "Enable MPRIS support" msgstr "Aktivér understøttelse af MPRIS" #: src/celluloid-preferences-dialog.c:353 msgid "Enable media keys support" msgstr "Aktivér understøttelse af medietaster" #: src/celluloid-preferences-dialog.c:356 msgid "Extra MPV options:" msgstr "Ekstra MPV-tilvalg:" #: src/celluloid-preferences-dialog.c:389 msgid "Interface" msgstr "Grænseflade" #: src/celluloid-preferences-dialog.c:392 msgid "Config Files" msgstr "Konfigurationsfiler" #: src/celluloid-preferences-dialog.c:395 msgid "Miscellaneous" msgstr "Diverse" #: src/celluloid-preferences-dialog.c:398 msgid "Plugins" msgstr "Plugins" #: src/celluloid-preferences-dialog.c:403 msgid "_Save" msgstr "_Gem" #: src/celluloid-preferences-dialog.c:421 msgid "Preferences" msgstr "Præferencer" #: src/celluloid-shortcuts-window.c:57 msgid "Open file" msgstr "Åbn fil" #: src/celluloid-shortcuts-window.c:58 msgid "Open location" msgstr "Åbn placering" #: src/celluloid-shortcuts-window.c:59 msgid "Add file to playlist" msgstr "Tilføj fil til afspilningsliste" #: src/celluloid-shortcuts-window.c:60 msgid "Add location to playlist" msgstr "Tilføj placering til afspilningsliste" #: src/celluloid-shortcuts-window.c:61 msgid "Show preferences dialog" msgstr "Vis præferencer-dialogen" #: src/celluloid-shortcuts-window.c:62 msgid "Toggle controls" msgstr "Styring til/fra" #: src/celluloid-shortcuts-window.c:63 msgid "Toggle playlist" msgstr "Afspilningsliste til/fra" #: src/celluloid-shortcuts-window.c:64 msgid "Toggle fullscreen mode" msgstr "Fuldskærmstilstand til/fra" #: src/celluloid-shortcuts-window.c:65 msgid "Leave fullscreen mode" msgstr "Forlad fuldskærmstilstand" #: src/celluloid-shortcuts-window.c:66 msgid "Toggle OSD states between normal and playback time/duration" msgstr "Skærmdisplay-tilstande normal og afspilningstid/varighed til/fra" #: src/celluloid-shortcuts-window.c:67 msgid "Show filename on the OSD" msgstr "Vis filnavn på skærmdisplayet" #: src/celluloid-shortcuts-window.c:68 msgid "Show progress, elapsed time, and duration on the OSD" msgstr "Vis forløb, forløbet tid og varighed på skærmdisplayet" #: src/celluloid-shortcuts-window.c:71 msgid "Seek backward/forward 5 seconds" msgstr "Søg 5 sekunder baglæns/fremad" #: src/celluloid-shortcuts-window.c:72 msgid "Exact seek backward/forward 1 second" msgstr "Søg præcist 1 sekund baglæns/fremad" #: src/celluloid-shortcuts-window.c:73 msgid "Seek backward/forward 1 minute" msgstr "Søg 1 minut baglæns/fremad" #: src/celluloid-shortcuts-window.c:74 msgid "Exact seek backward/forward 5 seconds" msgstr "Søg præcist 5 sekunder baglæns/fremad" #: src/celluloid-shortcuts-window.c:75 msgid "Seek to previous/next subtitle" msgstr "Søg til forrige/næste undertekst" #: src/celluloid-shortcuts-window.c:76 msgid "Step backward/forward a single frame" msgstr "Ét billede baglæns/fremad" #: src/celluloid-shortcuts-window.c:77 msgid "Seek to the beginning of the previous/next chapter" msgstr "Søg til begyndelsen af det forrige/næste kapitel" #: src/celluloid-shortcuts-window.c:80 msgid "Decrease/increase playback speed by 10%" msgstr "Langsommere/hurtigere afspilningshastighed med 10%" #: src/celluloid-shortcuts-window.c:81 msgid "Halve/double current playback speed" msgstr "Halve/dobbelte af den nuværende afspilningshastighed" #: src/celluloid-shortcuts-window.c:82 msgid "Reset playback speed to normal" msgstr "Nulstil afspilningshastigheden til normal" #: src/celluloid-shortcuts-window.c:83 msgid "Go backward/forward in the playlist" msgstr "Gå baglæns/fremad i afspilningslisten" #: src/celluloid-shortcuts-window.c:84 msgid "Remove selected playlist item" msgstr "Fjern den valgte post fra afspilningslisten" #: src/celluloid-shortcuts-window.c:85 msgid "Save playlist" msgstr "Gem afspilningsliste" #: src/celluloid-shortcuts-window.c:86 msgid "Set/clear A-B loop points" msgstr "Sæt/ryd A-B-løkkens punkter" #: src/celluloid-shortcuts-window.c:87 msgid "Toggle infinite looping" msgstr "Uendelig løkke til/fra" #: src/celluloid-shortcuts-window.c:88 msgid "Pause or unpause" msgstr "Pause eller fjern fra pause" #: src/celluloid-shortcuts-window.c:89 msgid "Quit" msgstr "Afslut" #: src/celluloid-shortcuts-window.c:90 msgid "Save current playback position and quit" msgstr "Gem nuværende afspilningsposition og afslut" #: src/celluloid-shortcuts-window.c:93 msgid "Enter search mode" msgstr "Gå i søgetilstand" #: src/celluloid-shortcuts-window.c:94 msgid "Jump to next match" msgstr "Hop til næste resultat" #: src/celluloid-shortcuts-window.c:95 msgid "Jump to previous match" msgstr "Hop til forrige resultat" #: src/celluloid-shortcuts-window.c:96 msgid "Exit search mode" msgstr "Afslut søgetilstand" #: src/celluloid-shortcuts-window.c:99 msgid "Cycle through audio tracks" msgstr "Løb gennem lydspor" #: src/celluloid-shortcuts-window.c:100 src/celluloid-shortcuts-window.c:101 msgid "Decrease/increase volume" msgstr "Højere/lavere lydstyrke" #: src/celluloid-shortcuts-window.c:102 msgid "Mute or unmute" msgstr "Mute eller slå lyden til" #: src/celluloid-shortcuts-window.c:103 msgid "Adjust audio delay by +/- 0.1 seconds" msgstr "Juster lydens forsinkelse med +/- 0,1 sekunder" #: src/celluloid-shortcuts-window.c:106 msgid "Toggle subtitle visibility" msgstr "Undertekst synlighed til/fra" #: src/celluloid-shortcuts-window.c:107 msgid "Cycle through available subtitles" msgstr "Løb gennem tilgængelige undertekster" #: src/celluloid-shortcuts-window.c:108 msgid "Adjust subtitle delay by +/- 0.1 seconds" msgstr "Juster underteksternes forsinkelse med +/- 0,1 sekunder" #: src/celluloid-shortcuts-window.c:109 msgid "Toggle SSA/ASS subtitles style override" msgstr "Tilsidesæt stilen af SSA/ASS-undertekster til/fra" #: src/celluloid-shortcuts-window.c:110 msgid "Move subtitles up/down" msgstr "Flyt undertekster op/ned" #: src/celluloid-shortcuts-window.c:111 msgid "Toggle VSFilter aspect compatibility mode" msgstr "Kompatibilitetstilstand af højde-bredde-forhold for VSFilter til/fra" #: src/celluloid-shortcuts-window.c:114 msgid "Cycle through video tracks" msgstr "Løb gennem videospor" #: src/celluloid-shortcuts-window.c:115 msgid "Decrease/increase pan-and-scan range" msgstr "Lavere/højere område for pan-og-skan" #: src/celluloid-shortcuts-window.c:116 msgid "Take a screenshot" msgstr "Tag et skærmbillede" #: src/celluloid-shortcuts-window.c:117 msgid "Take a screenshot, without subtitles" msgstr "Tag et skærmbillede, uden undertekster" #: src/celluloid-shortcuts-window.c:118 msgid "Take a screenshot, as the window shows it" msgstr "Tag et skærmbillede, sådan som vinduet viser det" #: src/celluloid-shortcuts-window.c:119 msgid "Resize video to half its original size" msgstr "Tilpas videoens størrelse til halvdelen af dens oprindelige størrelse" #: src/celluloid-shortcuts-window.c:120 msgid "Resize video to its original size" msgstr "Tilpas videoens størrelse til dens oprindelige størrelse" #: src/celluloid-shortcuts-window.c:121 msgid "Resize video to double its original size" msgstr "" "Tilpas videoens størrelse til det dobbelte af dens oprindelige størrelse" #: src/celluloid-shortcuts-window.c:122 msgid "Adjust contrast" msgstr "Juster kontrast" #: src/celluloid-shortcuts-window.c:123 msgid "Adjust brightness" msgstr "Juster lysstyrke" #: src/celluloid-shortcuts-window.c:124 msgid "Adjust gamma" msgstr "Juster gamma" #: src/celluloid-shortcuts-window.c:125 msgid "Adjust saturation" msgstr "Juster farvemætning" #: src/celluloid-shortcuts-window.c:126 msgid "Activate or deactivate deinterlacer" msgstr "Aktivér eller deaktivér afsammenfletter" #: src/celluloid-shortcuts-window.c:127 msgid "Cycle aspect ratio override" msgstr "Løb gennem tilsidesættelse af højde-bredde-forhold" #: src/celluloid-shortcuts-window.c:130 msgid "User Interface" msgstr "Brugerflade" #: src/celluloid-shortcuts-window.c:131 msgid "Video" msgstr "Video" #: src/celluloid-shortcuts-window.c:132 msgid "Audio" msgstr "Lyd" #: src/celluloid-shortcuts-window.c:133 msgid "Subtitle" msgstr "Undertekst" #: src/celluloid-shortcuts-window.c:134 msgid "Playback" msgstr "Afspilning" #: src/celluloid-shortcuts-window.c:135 msgid "Seeking" msgstr "Søgning" #: src/celluloid-view.c:728 msgid "Load Audio Track…" msgstr "Indlæs lydspor …" #: src/celluloid-view.c:732 msgid "Load Video Track…" msgstr "Indlæs videospor …" #: src/celluloid-view.c:736 msgid "Load Subtitle Track…" msgstr "Indlæs undertekstspor …" #: src/celluloid-view.c:901 msgid "" "Enabling or disabling client-side decorations requires restarting to take " "effect." msgstr "" "Aktivering eller deaktivering af klientsidedekorationer kræver genstart før " "ændringerne træder i kraft." #: src/celluloid-view.c:1444 msgid "Add Folder to Playlist" msgstr "Tilføj mappe til afspilningsliste" #: src/celluloid-view.c:1444 msgid "Open Folder" msgstr "Åbn mappe" #: src/celluloid-view.c:1449 msgid "Add File to Playlist" msgstr "Tilføj fil til afspilningsliste" #: src/celluloid-view.c:1449 msgid "Open File" msgstr "Åbn fil" #: src/celluloid-view.c:1485 msgid "Add Location to Playlist" msgstr "Tilføj placering til afspilningsliste" #: src/celluloid-view.c:1486 msgid "Open Location" msgstr "Åbn placering" #: src/celluloid-view.c:1532 msgid "Save Playlist" msgstr "Gem afspilningsliste" #: src/celluloid-view.c:1598 msgid "A GTK frontend for MPV" msgstr "En GTK-frontend til MPV" #: src/celluloid-view.c:1608 msgid "translator-credits" msgstr "scootergrisen" celluloid-0.20/po/de.po000066400000000000000000001120411373135401300147540ustar00rootroot00000000000000# German (de_DE) translations for gnome-mpv package. # gnome-mpv # Copyright (C) 2015 THE gnome-mpv'S COPYRIGHT HOLDER # This file is distributed under the same license as the gnone-mpv package. # Vincent Bermel , 2015. # Vincent Bermel , 2019. #zanata # gnome-mpv , 2019. #zanata # Vincent Bermel , 2020. #zanata # gnome-mpv , 2020. #zanata msgid "" msgstr "" "Project-Id-Version: gnome-mpv 0.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-02-20 20:48+0700\n" "PO-Revision-Date: 2020-08-04 04:59-0400\n" "Last-Translator: Vincent Bermel \n" "Language-Team: German Translations\n" "Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Zanata 4.6.2\n" #: data/io.github.celluloid_player.Celluloid.gschema.xml:11 msgid "" "Whether the settings has already been migrated from the previous version" msgstr "Ob Einstellungen schon von der vorherigen Version übernommen wurden" #: data/io.github.celluloid_player.Celluloid.gschema.xml:17 #, fuzzy msgid "Whether or not to automatically resize window to fit video" msgstr "Ob der Mauszeiger im Fenstermodus versteckt werden soll." #: data/io.github.celluloid_player.Celluloid.gschema.xml:23 msgid "Enable or disable dark theme" msgstr "Dunkles Thema verwenden" #: data/io.github.celluloid_player.Celluloid.gschema.xml:29 msgid "Enable or disable client-side decorations" msgstr "Kombinierte Titel-/Menüleiste (CSD)" #: data/io.github.celluloid_player.Celluloid.gschema.xml:35 msgid "Whether or not to use floating controls in windowed mode" msgstr "" "Ob im Fenstermodus ausblendende Bedienelemente verwendet werden sollen" #: data/io.github.celluloid_player.Celluloid.gschema.xml:41 msgid "Whether or not to autohide mouse cursor in windowed mode" msgstr "Ob der Mauszeiger im Fenstermodus versteckt werden soll." #: data/io.github.celluloid_player.Celluloid.gschema.xml:47 msgid "The minimum cursor speed at which floating controls will be unhidden." msgstr "" "Minimale Mauszeigergeschwindigkeit unterhalb derer die Kontrollflächen " "ausgeblendet werden." #: data/io.github.celluloid_player.Celluloid.gschema.xml:54 msgid "" "The size of the dead zone in which cursor movement will not cause the " "controls to be shown." msgstr "" "Größe des Bereichs, in welchem Mauszeigerbewegung nicht zum Anzeigen der " "Kontrollflächen führen wird." #: data/io.github.celluloid_player.Celluloid.gschema.xml:60 msgid "Whether or not to use skip buttons for controlling playlist" msgstr "Skip-Buttons zur Kontrolle der Wiedergabeliste verwenden" #: data/io.github.celluloid_player.Celluloid.gschema.xml:66 msgid "" "Whether or not to make file chooser dialog remember last folder accessed" msgstr "Speicherort der zuletzt gespielten Datei merken" #: data/io.github.celluloid_player.Celluloid.gschema.xml:72 msgid "Whether or not to create new windows when there is already an instance" msgstr "Ob neue Fenster erzeugt werden sollen, wenn Celluloid bereits läuft" #: data/io.github.celluloid_player.Celluloid.gschema.xml:78 #: src/celluloid-application.c:575 msgid "Options to pass to mpv" msgstr "MPV-Einstellungen" #: data/io.github.celluloid_player.Celluloid.gschema.xml:84 msgid "Path to mpv configuration file" msgstr "MPV-Konfigurationsdatei" #: data/io.github.celluloid_player.Celluloid.gschema.xml:90 msgid "Load or don't load mpv configuration file" msgstr "MPV-Konfiguration aus Datei laden" #: data/io.github.celluloid_player.Celluloid.gschema.xml:96 msgid "Path to mpv input configuration file" msgstr "Datei mit MPV-Tastenbelegungen" #: data/io.github.celluloid_player.Celluloid.gschema.xml:102 msgid "Load or don't load mpv input configuration file" msgstr "MPV-Konfiguration aus Datei laden" #: data/io.github.celluloid_player.Celluloid.gschema.xml:108 msgid "Whether or not to enable MPRIS support" msgstr "Ob Steuerung über MPRIS aktiviert werden soll" #: data/io.github.celluloid_player.Celluloid.gschema.xml:114 msgid "" "Whether or not to enable GNOME-Settings-Daemon-based media keys support" msgstr "Ob mittels GNOME-Settings-Daemon Medientasten aktiviert werden sollen" #: data/io.github.celluloid_player.Celluloid.gschema.xml:120 msgid "Whether or not to prefetch metadata for non-current playlist entries" msgstr "" "Ob Metadaten für noch nicht abgespielte Elemente der Wiedergabeliste " "gesammelt werden sollen" #: data/io.github.celluloid_player.Celluloid.gschema.xml:126 msgid "" "Whether or not to display an error message when playback of a file ends with" " an error" msgstr "" "Fehlermeldung anzeigen, wenn beim Abspielen einer Datei ein Fehler auftritt?" " " #: data/io.github.celluloid_player.Celluloid.gschema.xml:132 msgid "Whether or not to inhibit session idling when something is playing" msgstr "Ob während Wiedergabe Energiesparmodi verhindern werden soll" #: data/io.github.celluloid_player.Celluloid.gschema.xml:142 msgid "Width of the window" msgstr "Fensterbreite" #: data/io.github.celluloid_player.Celluloid.gschema.xml:148 msgid "Height of the window" msgstr "Fensterhöhe" #: data/io.github.celluloid_player.Celluloid.gschema.xml:154 msgid "Whether or not the window is maximized" msgstr "Ob das Fenster maximiert ist" #: data/io.github.celluloid_player.Celluloid.gschema.xml:161 msgid "Volume of player" msgstr "Lautstärke" #: data/io.github.celluloid_player.Celluloid.gschema.xml:167 msgid "Whether or not to loop when the end of playlist is reached" msgstr "Ob am Ende einer Widergabeliste von vorn begonnen werden soll" #: data/io.github.celluloid_player.Celluloid.gschema.xml:173 msgid "Width of the playlist" msgstr "Breite der Wiedergabeliste" #: data/io.github.celluloid_player.Celluloid.gschema.xml:179 msgid "Show or not show the controls" msgstr "Wiedergabesteuerung anzeigen" #: data/io.github.celluloid_player.Celluloid.gschema.xml:185 msgid "Show or not show the playlist" msgstr "Wiedergabeliste anzeigen" #: data/io.github.celluloid_player.Celluloid.gschema.xml:191 msgid "URI of the last folder accessed" msgstr "Zuletzt geöffnetes Verzeichnis" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:7 #: data/io.github.celluloid_player.Celluloid.desktop.in:4 #: src/celluloid-application.c:451 msgid "Celluloid" msgstr "Celluloid" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:8 msgid "GTK+ frontend for mpv" msgstr "Eine GTK-Oberfläche für den Medienspieler mpv" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:16 msgid "" "Celluloid is a simple media player that can play virtually all video and " "audio formats. It supports playlists and MPRIS2 media player controls. The " "design of Celluloid follows the GNOME Human Interface Guidelines, but can " "also be adapted for other systems that don't use client-side decorations " "(CSD). It is based on the mpv library and GTK." msgstr "" "Celluloid ist ein einfach zu bedienender Medienspieler, der so gut wie alle " "Video- und Audioformate abspielen kann. Es werden Wiedergabelisten und " "Fernsteuerung über die MPRIS2-Schnittstelle unterstützt. Celluloid ist gemäß" " der \"GNOME Human Interface Guidelines\", der Designrichtlinien des GNOME-" "Projekts gestaltet, kann aber für Systeme angepasst werden, welche keine " "clientseitigen Fensterdekorationen (CDSs) unterstützen. Die technische Basis" " stellen mpv und GTK." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:23 msgid "Features:" msgstr "Funktionen:" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:25 msgid "Drag and drop playlist" msgstr "Wiedergabeliste mit Drag and Drop-Unterstützung" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:26 msgid "Loading external mpv configuration files" msgstr "Laden externer mpv-Konfigurationsdateien" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:27 msgid "MPRIS2 D-Bus interface" msgstr "MPRIS2 D-Bus Schnittstelle" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:30 msgid "The Celluloid Developers" msgstr "Die Celluloid-Entwickler" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:34 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:87 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:117 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:156 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:187 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:215 msgid "This release contains the following changes:" msgstr "Diese Veröffentlichungen umfasst die folgenden Änderungen:" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:38 msgid "" "Adjust the range of volume button based on the value of the volume-max " "property." msgstr "" "Die Spanne des Lautstärkereglers kann über den Wert volume-max beeinflusst " "werden." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:42 msgid "Retain window maximization state across sessions." msgstr "Fenstermaximierungsstatus wird über Sitzungen hinweg beibehalten." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:45 msgid "Retain loop state across sessions." msgstr "Wiederholungspräferenzen wird über Sitzungen hinweg beibehalten." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:48 msgid "Implement playlist search." msgstr "Suche in Wiedergabelisten implementiert." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:51 msgid "Update the list of shortcuts in Keyboard Shortcuts dialog." msgstr "Liste der Tastenkombinationen aktualisiert." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:54 msgid "Correctly handle quotes and escape sequences in extra mpv options." msgstr "" "Korrektes Interpretieren von Escape-Sequenzen und Anführungszeichen in " "Extra-MPV-Optionen." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:57 msgid "Display time at cursor position when hovering the seek bar." msgstr "Anzeige der Zeit, wenn der Mauszeiger über die Suchbar geführt wird." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:60 msgid "" "Deprecate '--mpv-options'. Options starting with '--mpv-' can be used to set" " mpv options instead. For example, passing '--mpv-vf=vflip' to Celluloid is " "equivalent to passing '--vf=vflip' to mpv." msgstr "" "Die Option der Kommandozeilenschnittstelle '--mpv-options' ist als veraltet " "markiert. Optionen beginnend mit 'mpv-' können stattdessen verwendet werden," " um mpv-Optionen zu verwenden. So entspricht die Celluloid-Option '--mpv-" "vf=vflip' der mpv-Option '--vf=vflip'." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:66 msgid "" "Add support for configuring dead zone, an area in which mouse movement will " "not cause controls to be shown." msgstr "" "Es kann eine tote Zone angegeben werden, innerhalb derer Mauszeigerbewegung " "nicht zur Anzeige der Kontrollflächen führt." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:70 msgid "Make window sizing work correctly with HiDPI displays." msgstr "Korrigierte Fenstergröße für HiDPI-Bildschirme." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:73 msgid "Add Finnish translation by Kimmo Kujansuu." msgstr "Finnische Übersetzung beigesteuert von Kimmo Kujansuu." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:76 msgid "Add Slovenian translation by @bertronika." msgstr "Slowenische Übersetzung beigesteuert von @bertonika." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:80 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:110 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:149 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:180 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:208 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:236 msgid "This listing is incomplete. See git log for complete changelog." msgstr "" "Diese Liste ist unvollständig. Eine detaillierte Übersicht bietet das " "Changelog." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:91 msgid "Add Persian translation by @danialbehzadi" msgstr "Persische Übersetzung von @danialbehzadi" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:94 msgid "Add Ukranian translation by @vl-nix" msgstr "Ukrainische Übersetzung von@vl-nix" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:97 msgid "" "Add support for showing/hiding window decorations using the mpv option " "--border" msgstr "" "Möglichkeit Fensterdekorationen über die mpv-Option --border ein- und " "auszublenden" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:100 msgid "Add menu item for opening discs" msgstr "Menüeintrag zum Öffnen von Datenträgern" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:103 msgid "Block cursor autohide when volume popup is open in windowed mode" msgstr "" "Mauszeiger-Autohide bei offenem Lautstärke-Popup im Fenstermodus blockiert" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:106 msgid "Fix crash with mpv 0.30" msgstr "Absturz mit mpv 0.30 behoben" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:121 msgid "Rename project to Celluloid" msgstr "Projekt umbenannt in Celluloid" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:124 msgid "Add Turkish translation by @TeknoMobil" msgstr "Türkische Übersetzung von @TeknoMobil" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:127 msgid "Add Esperanto translation by @F3nd0" msgstr "Esperanto-Übersetzung von @F3nd0" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:130 msgid "Migrate from opengl-cb to the new render API" msgstr "Migration von opengl-cb zur neuen Render-API" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:133 msgid "Handle numpad keybindings" msgstr "" "Unterstützung von Tastenkombinationen unter Einbeziehung des Ziffernblocks" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:136 msgid "Handle unicode keybindings" msgstr "Unterstützung von UnicodeTastenkombinationen" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:139 msgid "Forward media key events to mpv" msgstr "Medientasten-Eingaben an mpv übergeben" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:142 msgid "" "Add dconf key for controlling cursor speed at which controls are unhidden" msgstr "" "dconf key für Regelung der minimalen Mauszeigergeschwindigkeit unterhalb " "derer die Kontrollflächen ausgeblendet werden." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:145 msgid "Add option for suppressing playback errors" msgstr "Option zum Unterdrücken von Wiedergabefehlern" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:160 msgid "Split up the General tab in the preferences dialog" msgstr "Der \"Allgemein\"-Tab in den Einstellungen wurde aufgeteilt." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:163 msgid "Improve behavior when toggling playlist under tiling window managers" msgstr "" "Das Verhalten des Ein-/Aus-Schalters für Wiedergabelisten wurde im " "Zusammenhang mit Tiling-Fenstermanagern verbessert." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:166 msgid "Move app menu items to primary menu" msgstr "" "Im Zuge der Abschaffung des GNOME-Anwendungsmenüs wurde dieses in das " "Hauptmenü integriert." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:169 msgid "Use separate MPRIS DBus connection for each window" msgstr "Separate MPRIS DBus-Verbindung für jedes Fenster" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:172 msgid "Add support for MPRIS property LoopStatus" msgstr "Unterstützung für MPRIS property LoopStatus" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:175 msgid "" "Add option --mpv-options for setting arbitrary mpv options from the command-" "line" msgstr "" "Neue Kommondozeilenoption zum Setzen beliebiger MPV-Optionen: --mpv-options" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:191 msgid "Set default screenshot directory to XDG_PICTURES_DIR" msgstr "XDG_PICTURES_DIR ist nun standardmäßiger Screenshot-Speicherort." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:194 msgid "" "Improve handling of --window-scale, --autofit, --autofit-larger, and " "--autofit-smaller" msgstr "" "Verbesserte Handhabung der Optionen --window-scale, --autofit, --autofit-" "larger, and --autofit-smaller" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:198 msgid "Add command line option for setting WM_ROLE" msgstr "Neue Kommandozeilenoption zum Setzen der WM_ROLE" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:201 msgid "Add context menu item for removing playlist items" msgstr "Neuer Kontextmenüeintrag zum Entfernen von Wiedergabelisten-Elementen" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:204 msgid "Add context menu item for copying location of playlist items" msgstr "Neuer Kontextmenüeintrag zum Kopieren von Wiedergabelisten-Elementen" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:219 msgid "" "Add option to make skip buttons change playlist entries rather than chapters" msgstr "" "Neue Option, die es erlaubt, das Verhalten der \"Überspringen\"-Schaltfläche" " zu verändern. Zur Wahl stehen Kapitelwechsel und Wechsel zwischen " "Wiedergabelisten-Elementen." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:223 msgid "Make the file chooser accept non-local locations" msgstr "Der Dateiwähler akzeptiert nun auch nicht-lokale Orte" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:226 msgid "Add right-click menu entry for looping a single file" msgstr "Neues Rechtsklickmenü um einzelne Datei in Schleife zu spielen" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:229 msgid "Handle property change events for fullscreen and window-scale" msgstr "" "Korrekte Handhabung von property change events für den Vollbildmodus und bei" " Fenstersklaierung" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:232 msgid "Add option to autohide mouse cursor in windowed mode" msgstr "Mauszeiger im Fenstermodus automatisch verstecken" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:246 msgid "The main window showing the application in action" msgstr "Das Hauptfenser von Celluloid" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:250 msgid "The main window with CSD disabled" msgstr "Das Hauptfenster ohne CSD-Titelleiste" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:254 msgid "The main window with playlist open" msgstr "Das Hauptfenster mit Wiedergabeliste" #: data/io.github.celluloid_player.Celluloid.desktop.in:5 msgid "Multimedia Player" msgstr "Multimediaspieler" #: data/io.github.celluloid_player.Celluloid.desktop.in:6 msgid "Play movies and videos" msgstr "Filme und Videos abspielen" #. Translators: Search terms to find this application. Don't translate the #. semicolons! The list MUST also end with a semicolon! #: data/io.github.celluloid_player.Celluloid.desktop.in:17 msgid "Video;Movie;Film;Clip;Series;Player;DVD;TV;Disc;Album;Music;GNOME;mpv;" msgstr "Video;Movie;Film;Clip;Serie;Spieler;DVD,TV;Album;Musik;GNOME;mpv" #: data/io.github.celluloid_player.Celluloid.desktop.in:23 msgid "New Window" msgstr "Neues Fenster" #: src/celluloid-application.c:495 #, fuzzy msgid "Playing" msgstr "Wiedergabe" #: src/celluloid-application.c:551 msgid "Show release version" msgstr "Release-Version anzeigen" #: src/celluloid-application.c:559 msgid "Enqueue" msgstr "In Warteschlange aufnehmen" #: src/celluloid-application.c:567 msgid "Create a new window" msgstr "Neues Fenster aufrufen" #: src/celluloid-application.c:576 msgid "OPTIONS" msgstr "OPTIONS" #: src/celluloid-application.c:583 msgid "Set the window role" msgstr "Fensterart festlegen" #: src/celluloid-application.c:591 msgid "Don't connect to an already-running instance" msgstr "Nicht mit einer bereits laufenden Instanz verbinden" #: src/celluloid-control-box.c:362 msgid "Pause" msgstr "Pause" #: src/celluloid-control-box.c:362 src/celluloid-control-box.c:565 msgid "Play" msgstr "Abspielen" #: src/celluloid-control-box.c:568 msgid "Stop" msgstr "Stoppen" #: src/celluloid-control-box.c:571 msgid "Forward" msgstr "Vorspulen" #: src/celluloid-control-box.c:574 msgid "Rewind" msgstr "Zurückspulen" #: src/celluloid-control-box.c:577 msgid "Next Chapter" msgstr "Weiterspringen" #: src/celluloid-control-box.c:580 msgid "Previous Chapter" msgstr "Zurückspringen" #: src/celluloid-control-box.c:583 msgid "Loop Playlist" msgstr "Wiedergabeliste in Schleife spielen" #: src/celluloid-control-box.c:586 msgid "Shuffle Playlist" msgstr "Zufällige Wiedergabe" #: src/celluloid-control-box.c:589 src/celluloid-header-bar.c:91 msgid "Toggle Fullscreen" msgstr "Vollbild" #: src/celluloid-controller.c:992 src/celluloid-view.c:1558 msgid "Error" msgstr "Fehler" #: src/celluloid-file-chooser.c:139 src/celluloid-plugins-manager.c:170 msgid "All Files" msgstr "Alle Dateien" #: src/celluloid-file-chooser.c:147 msgid "Media Files" msgstr "Mediendateien" #: src/celluloid-file-chooser.c:158 msgid "Audio Files" msgstr "Audiodateien" #: src/celluloid-file-chooser.c:166 msgid "Video Files" msgstr "Videodateien" #: src/celluloid-file-chooser.c:174 msgid "Image Files" msgstr "Bilddateien" #: src/celluloid-file-chooser.c:184 msgid "Subtitle Files" msgstr "Untertiteldateien" #: src/celluloid-menu.c:106 msgid "None" msgstr "Keine" #. For simplicity, also dup the default string used when the #. * track has no title. #: src/celluloid-menu.c:121 msgid "Unknown" msgstr "Originalspur" #: src/celluloid-menu.c:154 msgid "_Load External…" msgstr "_Importieren" #. Disable the menu item by setting the action to something #. * invalid. #: src/celluloid-menu.c:207 msgid "No disc found" msgstr "Kein Datenträger gefunden" #: src/celluloid-menu.c:235 msgid "_File" msgstr "_Datei" #: src/celluloid-menu.c:236 src/celluloid-menu.c:318 msgid "_Open…" msgstr "_Öffnen" #: src/celluloid-menu.c:237 src/celluloid-menu.c:319 msgid "Open _Folder…" msgstr "_Ordner öffnen" #: src/celluloid-menu.c:238 src/celluloid-menu.c:320 msgid "Open _Location…" msgstr "_Ort öffnen" #: src/celluloid-menu.c:239 msgid "Open _Disc…" msgstr "_Datenträger öffnen" #: src/celluloid-menu.c:240 src/celluloid-menu.c:290 msgid "_Save Playlist" msgstr "Wiedergabeliste _speichern" #: src/celluloid-menu.c:241 src/celluloid-menu.c:323 msgid "_New Window" msgstr "_Neues Fenster" #: src/celluloid-menu.c:242 msgid "_Quit" msgstr "B_eenden" #: src/celluloid-menu.c:243 msgid "_Edit" msgstr "_Bearbeiten" #: src/celluloid-menu.c:244 src/celluloid-menu.c:296 msgid "_Preferences" msgstr "_Einstellungen" #: src/celluloid-menu.c:245 src/celluloid-menu.c:292 msgid "_Video Track" msgstr "_Videospur" #: src/celluloid-menu.c:246 src/celluloid-menu.c:293 msgid "_Audio Track" msgstr "_Tonspur" #: src/celluloid-menu.c:247 src/celluloid-menu.c:294 msgid "S_ubtitle Track" msgstr "_Untertitel" #: src/celluloid-menu.c:248 msgid "_View" msgstr "_Ansicht" #: src/celluloid-menu.c:249 src/celluloid-menu.c:287 msgid "_Toggle Controls" msgstr "Wiedergabe_steuerung ein/aus" #: src/celluloid-menu.c:250 src/celluloid-menu.c:289 msgid "_Toggle Playlist" msgstr "_Wiedergabeliste ein/aus" #: src/celluloid-menu.c:251 msgid "_Fullscreen" msgstr "_Vollbild" #: src/celluloid-menu.c:252 msgid "_Help" msgstr "_Hilfe" #: src/celluloid-menu.c:253 src/celluloid-menu.c:297 msgid "_Keyboard Shortcuts" msgstr "_Tastenkürzel" #: src/celluloid-menu.c:254 src/celluloid-menu.c:298 msgid "_About Celluloid" msgstr "_Über Celluloid" #: src/celluloid-menu.c:321 msgid "Open _Disc" msgstr "_Datenträger öffnen" #: src/celluloid-mpv.c:240 #, c-format msgid "Playback was terminated abnormally. Reason: %s." msgstr "Wiedergabe wurde abgebrochen. Grund: %s." #: src/celluloid-open-location-dialog.c:130 msgid "Location:" msgstr "Adresse (lokal oder Web):" #: src/celluloid-open-location-dialog.c:136 #: src/celluloid-preferences-dialog.c:401 msgid "_Cancel" msgstr "_Abbrechen" #: src/celluloid-open-location-dialog.c:138 msgid "_Open" msgstr "Ö_ffnen" #: src/celluloid-player.c:550 msgid "Failed to apply one or more MPV options." msgstr "MPV-Optionen konnten nicht angewendet werden." #: src/celluloid-playlist-widget.c:784 msgid "_Copy Location" msgstr "Ort _kopieren" #: src/celluloid-playlist-widget.c:785 msgid "_Remove" msgstr "_Entfernen" #: src/celluloid-playlist-widget.c:787 msgid "_Add…" msgstr "_Hinzufügen" #: src/celluloid-playlist-widget.c:788 msgid "Add _Folder…" msgstr "Ordner _hinzufügen" #: src/celluloid-playlist-widget.c:789 msgid "Add _Location…" msgstr "_Verzeichnis oder URL hinzufügen" #: src/celluloid-playlist-widget.c:790 msgid "_Shuffle" msgstr "_Zufällige Wiedergabe" #: src/celluloid-playlist-widget.c:791 msgid "Loop _File" msgstr "_Datei in Schleife spielen" #: src/celluloid-playlist-widget.c:792 msgid "Loop _Playlist" msgstr "_Wiedergabeliste in Schleife spielen" #: src/celluloid-playlist-widget.c:933 src/celluloid-shortcuts-window.c:136 msgid "Playlist" msgstr "Wiedergabeliste" #: src/celluloid-playlist-widget.c:941 msgid "Playlist is empty" msgstr "Wiedergabeliste ist leer." #: src/celluloid-plugins-manager.c:163 src/celluloid-plugins-manager.c:409 msgid "Add Plugin" msgstr "Plugin hinzufügen" #: src/celluloid-plugins-manager.c:175 msgid "Lua Plugins" msgstr "Lua-Plugins" #: src/celluloid-plugins-manager.c:181 msgid "JavaScript Plugins" msgstr "JavaScript-Plugins" #: src/celluloid-plugins-manager.c:186 msgid "C Plugins" msgstr "C-Plugins" #: src/celluloid-plugins-manager.c:334 #, c-format msgid "Failed to copy file from '%s' to '%s'. Reason: %s" msgstr "Datei konnte nicht von '%s' nach '%s' kopiert werden. Grund: %s." #: src/celluloid-plugins-manager.c:385 msgid "No plugins found" msgstr "Keine Plugins gefunden" #: src/celluloid-plugins-manager-item.c:79 msgid "Remove" msgstr "Entfernen" #: src/celluloid-plugins-manager-item.c:178 msgid "" "Are you sure you want to remove this script? This action cannot be undone." msgstr "Wollen Sie dieses Skript unwiderruflich entfernen?" #: src/celluloid-plugins-manager-item.c:199 #, c-format msgid "Failed to delete file '%s'. Reason: %s" msgstr "Datei '%s' konnte nicht gelöscht werden. Grund: %s." #: src/celluloid-preferences-dialog.c:304 msgid "Automatically resize window to fit video" msgstr "Fenstergröße automatisch an Video anpassen" #: src/celluloid-preferences-dialog.c:307 msgid "Enable client-side decorations" msgstr "Kombinierte Titel-/Menüleiste (CSD)" #: src/celluloid-preferences-dialog.c:310 msgid "Enable dark theme" msgstr "Dunkles Thema verwenden" #: src/celluloid-preferences-dialog.c:313 msgid "Use floating controls in windowed mode" msgstr "Ausblendende Bedienelemente in Fenstermodus" #: src/celluloid-preferences-dialog.c:316 msgid "Autohide mouse cursor in windowed mode" msgstr "Autohide für Mauszeiger im Fenstermodus" #: src/celluloid-preferences-dialog.c:319 msgid "Use skip buttons for controlling playlist" msgstr "" "Klick auf Doppelpfeil: Wechsel zum nächsten Element der Wiedergabeliste" #: src/celluloid-preferences-dialog.c:322 msgid "Remember last file's location" msgstr "Speicherort der zuletzt gespielten Datei merken" #: src/celluloid-preferences-dialog.c:327 msgid "Load MPV configuration file" msgstr "MPV-Konfiguration aus Datei laden" #: src/celluloid-preferences-dialog.c:330 msgid "MPV configuration file:" msgstr "MPV-Konfigurationsdatei" #: src/celluloid-preferences-dialog.c:333 msgid "Load MPV input configuration file" msgstr "MPV-Tastenbelegung aus Datei laden" #: src/celluloid-preferences-dialog.c:336 msgid "MPV input configuration file:" msgstr "Datei mit MPV-Tastenbelegungen" #: src/celluloid-preferences-dialog.c:341 msgid "Always open new window" msgstr "Immer neues Fenster öffnen" #: src/celluloid-preferences-dialog.c:344 msgid "Ignore playback errors" msgstr "Wiedergabefehler ignorieren" #: src/celluloid-preferences-dialog.c:347 msgid "Prefetch metadata" msgstr "Metadaten im Voraus sammeln" #: src/celluloid-preferences-dialog.c:350 msgid "Enable MPRIS support" msgstr "MPRIS-Unterstützung aktivieren" #: src/celluloid-preferences-dialog.c:353 msgid "Enable media keys support" msgstr "Medientasten unterstützen" #: src/celluloid-preferences-dialog.c:356 msgid "Extra MPV options:" msgstr "Weitere Optionen für MPV" #: src/celluloid-preferences-dialog.c:389 msgid "Interface" msgstr "Schnittstelle" #: src/celluloid-preferences-dialog.c:392 msgid "Config Files" msgstr "Konfigurationsdateien" #: src/celluloid-preferences-dialog.c:395 msgid "Miscellaneous" msgstr "Sonstiges" #: src/celluloid-preferences-dialog.c:398 msgid "Plugins" msgstr "Plugins" #: src/celluloid-preferences-dialog.c:403 msgid "_Save" msgstr "_Speichern" #: src/celluloid-preferences-dialog.c:421 msgid "Preferences" msgstr "Einstellungen" #: src/celluloid-shortcuts-window.c:57 msgid "Open file" msgstr "Öffnen" #: src/celluloid-shortcuts-window.c:58 msgid "Open location" msgstr "Adresse öffnen" #: src/celluloid-shortcuts-window.c:59 msgid "Add file to playlist" msgstr "Datei zur Widergabeliste hinzufügen" #: src/celluloid-shortcuts-window.c:60 msgid "Add location to playlist" msgstr "Ort zur Wiedergabeliste hinzufügen" #: src/celluloid-shortcuts-window.c:61 msgid "Show preferences dialog" msgstr "Einstellungen anzeigen" #: src/celluloid-shortcuts-window.c:62 msgid "Toggle controls" msgstr "Wiedergabesteuerung ein/aus" #: src/celluloid-shortcuts-window.c:63 msgid "Toggle playlist" msgstr "Wiedergabeliste ein/aus" #: src/celluloid-shortcuts-window.c:64 msgid "Toggle fullscreen mode" msgstr "Vollbild" #: src/celluloid-shortcuts-window.c:65 msgid "Leave fullscreen mode" msgstr "Vollbildmodus verlassen" #: src/celluloid-shortcuts-window.c:66 msgid "Toggle OSD states between normal and playback time/duration" msgstr "Wiedergabeposition einblenden/ausblenden" #: src/celluloid-shortcuts-window.c:67 msgid "Show filename on the OSD" msgstr "Dateiname kurzzeitig einblenden" #: src/celluloid-shortcuts-window.c:68 msgid "Show progress, elapsed time, and duration on the OSD" msgstr "Wiedergabeposition kurzzeitig einblenden" #: src/celluloid-shortcuts-window.c:71 msgid "Seek backward/forward 5 seconds" msgstr "15 Sekunden zurück/vorwärts springen" #: src/celluloid-shortcuts-window.c:72 msgid "Exact seek backward/forward 1 second" msgstr "Eine Sekunde zurück/vorwärts springen" #: src/celluloid-shortcuts-window.c:73 msgid "Seek backward/forward 1 minute" msgstr "Eine Minute zurück/vorwärts springen" #: src/celluloid-shortcuts-window.c:74 msgid "Exact seek backward/forward 5 seconds" msgstr "5 Sekunden zurück/vorwärts springen" #: src/celluloid-shortcuts-window.c:75 msgid "Seek to previous/next subtitle" msgstr "Zum vorherigen/nächsten Untertitel springen" #: src/celluloid-shortcuts-window.c:76 msgid "Step backward/forward a single frame" msgstr "Einzelnen Frame zurück/nach vorne springen" #: src/celluloid-shortcuts-window.c:77 msgid "Seek to the beginning of the previous/next chapter" msgstr "Zum vorherigen/nächsten Kapitel springen" #: src/celluloid-shortcuts-window.c:80 msgid "Decrease/increase playback speed by 10%" msgstr "Wiedergabegeschwindigkeit um 10% verringern/erhöhen" #: src/celluloid-shortcuts-window.c:81 msgid "Halve/double current playback speed" msgstr "Wiedergabegeschwindigkeit halbieren/verdoppeln" #: src/celluloid-shortcuts-window.c:82 msgid "Reset playback speed to normal" msgstr "Wiedergabegeschwindigkeit auf Normalwert zurücksetzen" #: src/celluloid-shortcuts-window.c:83 msgid "Go backward/forward in the playlist" msgstr "Vorheriger/nächster Titel der Wiedergabeliste" #: src/celluloid-shortcuts-window.c:84 msgid "Remove selected playlist item" msgstr "Ausgewählten Titel aus Wiedergabeliste entfernen" #: src/celluloid-shortcuts-window.c:85 msgid "Save playlist" msgstr "Wiedergabeliste speichern" #: src/celluloid-shortcuts-window.c:86 msgid "Set/clear A-B loop points" msgstr "Loop-Begrenzungen setzen/entfernen" #: src/celluloid-shortcuts-window.c:87 msgid "Toggle infinite looping" msgstr "Endloses Loopen aktivieren" #: src/celluloid-shortcuts-window.c:88 msgid "Pause or unpause" msgstr "Pause oder Fortsetzen" #: src/celluloid-shortcuts-window.c:89 msgid "Quit" msgstr "Beenden" #: src/celluloid-shortcuts-window.c:90 msgid "Save current playback position and quit" msgstr "Wiedergabeposition merken und beenden" #: src/celluloid-shortcuts-window.c:93 msgid "Enter search mode" msgstr "Suchmodus starten" #: src/celluloid-shortcuts-window.c:94 msgid "Jump to next match" msgstr "Zur nächsten Übereinstimmung" #: src/celluloid-shortcuts-window.c:95 msgid "Jump to previous match" msgstr "Zur vorigen Übereinstimmung" #: src/celluloid-shortcuts-window.c:96 msgid "Exit search mode" msgstr "Suchmodus beenden" #: src/celluloid-shortcuts-window.c:99 msgid "Cycle through audio tracks" msgstr "Zwischen verfügbaren Tonspuren springen" #: src/celluloid-shortcuts-window.c:100 src/celluloid-shortcuts-window.c:101 msgid "Decrease/increase volume" msgstr "Lautstärke verringern/erhöhen" #: src/celluloid-shortcuts-window.c:102 msgid "Mute or unmute" msgstr "Stummschalten" #: src/celluloid-shortcuts-window.c:103 msgid "Adjust audio delay by +/- 0.1 seconds" msgstr "Tonspur in Schritten von 0.1 Sekunden vor/zurück verschieben" #: src/celluloid-shortcuts-window.c:106 msgid "Toggle subtitle visibility" msgstr "Untertitel anzeigen/ausblenden" #: src/celluloid-shortcuts-window.c:107 msgid "Cycle through available subtitles" msgstr "Zwischen verfügbaren Untertiteln springen" #: src/celluloid-shortcuts-window.c:108 msgid "Adjust subtitle delay by +/- 0.1 seconds" msgstr "Untertitel in Schritten von 0.1 Sekunden verschieben" #: src/celluloid-shortcuts-window.c:109 msgid "Toggle SSA/ASS subtitles style override" msgstr "ASS-Untertitelstil erzwingen" #: src/celluloid-shortcuts-window.c:110 msgid "Move subtitles up/down" msgstr "Untertitel höher/tiefer anzeigen" #: src/celluloid-shortcuts-window.c:111 msgid "Toggle VSFilter aspect compatibility mode" msgstr "Streckungskorrektor für Untertiteldarstellung ein/aus" #: src/celluloid-shortcuts-window.c:114 msgid "Cycle through video tracks" msgstr "Zwischen verfügbaren Videospuren springen" #: src/celluloid-shortcuts-window.c:115 msgid "Decrease/increase pan-and-scan range" msgstr "Videoformat schrittweise einpassen (Pan & Scan)" #: src/celluloid-shortcuts-window.c:116 msgid "Take a screenshot" msgstr "Bildschirmfoto aufnehmen" #: src/celluloid-shortcuts-window.c:117 msgid "Take a screenshot, without subtitles" msgstr "Bildschirmfoto ohne Untertitel aufnehmen" #: src/celluloid-shortcuts-window.c:118 msgid "Take a screenshot, as the window shows it" msgstr "Foto des Fensterinhalts aufnehmen" #: src/celluloid-shortcuts-window.c:119 msgid "Resize video to half its original size" msgstr "Halbe Videogröße" #: src/celluloid-shortcuts-window.c:120 msgid "Resize video to its original size" msgstr "Ursprüngliche Videogröße" #: src/celluloid-shortcuts-window.c:121 msgid "Resize video to double its original size" msgstr "Doppelte Videogröße" #: src/celluloid-shortcuts-window.c:122 msgid "Adjust contrast" msgstr "Kontrast anpassen" #: src/celluloid-shortcuts-window.c:123 msgid "Adjust brightness" msgstr "Helligkeit anpassen" #: src/celluloid-shortcuts-window.c:124 msgid "Adjust gamma" msgstr "Gammawert anpassen" #: src/celluloid-shortcuts-window.c:125 msgid "Adjust saturation" msgstr "Farbsättigung anpassen" #: src/celluloid-shortcuts-window.c:126 msgid "Activate or deactivate deinterlacer" msgstr "Deinterlacing (de)aktivieren" #: src/celluloid-shortcuts-window.c:127 msgid "Cycle aspect ratio override" msgstr "Seitenverhältnis umschalten" #: src/celluloid-shortcuts-window.c:130 msgid "User Interface" msgstr "Benutzeroberfläche" #: src/celluloid-shortcuts-window.c:131 msgid "Video" msgstr "Videowiedergabe" #: src/celluloid-shortcuts-window.c:132 msgid "Audio" msgstr "Audiowiedergabe" #: src/celluloid-shortcuts-window.c:133 msgid "Subtitle" msgstr "Untertitel" #: src/celluloid-shortcuts-window.c:134 msgid "Playback" msgstr "Wiedergabesteuerung" #: src/celluloid-shortcuts-window.c:135 msgid "Seeking" msgstr "Wiedergabeposition" #: src/celluloid-view.c:728 msgid "Load Audio Track…" msgstr "Audiospur laden..." #: src/celluloid-view.c:732 msgid "Load Video Track…" msgstr "Videospur wird geladen..." #: src/celluloid-view.c:736 msgid "Load Subtitle Track…" msgstr "Untertitel laden..." #: src/celluloid-view.c:901 msgid "" "Enabling or disabling client-side decorations requires restarting to take " "effect." msgstr "Die Änderung der Fensterdekoration erfordert einen Neustart." #: src/celluloid-view.c:1444 msgid "Add Folder to Playlist" msgstr "Ordner zur Widergabeliste hinzufügen" #: src/celluloid-view.c:1444 msgid "Open Folder" msgstr "Ordner öffnen" #: src/celluloid-view.c:1449 msgid "Add File to Playlist" msgstr "Datei zur _Wiedergabeliste hinzufügen" #: src/celluloid-view.c:1449 msgid "Open File" msgstr "Datei öffnen" #: src/celluloid-view.c:1485 msgid "Add Location to Playlist" msgstr "Verzeichnis oder URL zur Wiedergabeliste hinzufügen" #: src/celluloid-view.c:1486 msgid "Open Location" msgstr "Adresse öffnen" #: src/celluloid-view.c:1532 msgid "Save Playlist" msgstr "Wiedergabeliste speichern" #: src/celluloid-view.c:1598 msgid "A GTK frontend for MPV" msgstr "Eine GTK-Oberfläche für MPV" #: src/celluloid-view.c:1608 msgid "translator-credits" msgstr "Vincent Bermel" celluloid-0.20/po/eo.po000066400000000000000000001053151373135401300147750ustar00rootroot00000000000000# Tirifto , 2019. #zanata # gnome-mpv , 2020. #zanata msgid "" msgstr "" "Project-Id-Version: celluloid\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-07-07 00:28+0700\n" "PO-Revision-Date: 2020-06-23 10:42-0400\n" "Last-Translator: Copied by Zanata \n" "Language-Team: Esperanto\n" "Language: eo\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" "X-Generator: Zanata 4.6.2\n" #: data/io.github.celluloid_player.Celluloid.gschema.xml:11 msgid "" "Whether the settings has already been migrated from the previous version" msgstr "Ĉu la agordoj jam transmetiĝis de la antaŭa eldono" #: data/io.github.celluloid_player.Celluloid.gschema.xml:17 msgid "Whether or not to automatically resize window to fit video" msgstr "" "Ĉu aŭ ne aŭtomate aligrandigi fenestron por esti samgranda kiel la video" #: data/io.github.celluloid_player.Celluloid.gschema.xml:23 msgid "Enable or disable dark theme" msgstr "Ŝalti aŭ malŝalti malhelan etoson" #: data/io.github.celluloid_player.Celluloid.gschema.xml:29 msgid "Enable or disable client-side decorations" msgstr "Ŝalti aŭ malŝalti klient-flankajn ornamaĵojn" #: data/io.github.celluloid_player.Celluloid.gschema.xml:35 msgid "Whether or not to use floating controls in windowed mode" msgstr "Ĉu uzi surfilmajn regilojn en fenestra reĝimo" #: data/io.github.celluloid_player.Celluloid.gschema.xml:41 msgid "Whether or not to autohide mouse cursor in windowed mode" msgstr "Ĉu aŭtomate kaŝi musmontrilon en fenestra reĝimo" #: data/io.github.celluloid_player.Celluloid.gschema.xml:47 msgid "The minimum cursor speed at which floating controls will be unhidden." msgstr "Minimuma rapido de musmontrilo je kiu montriĝos surfilmaj regiloj." #: data/io.github.celluloid_player.Celluloid.gschema.xml:54 msgid "" "The size of the dead zone in which cursor movement will not cause the " "controls to be shown." msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:60 msgid "Whether or not to use skip buttons for controlling playlist" msgstr "Ĉu uzi preterpasajn butonojn por regi legliston" #: data/io.github.celluloid_player.Celluloid.gschema.xml:66 msgid "" "Whether or not to make file chooser dialog remember last folder accessed" msgstr "Ĉu memorigi laste atingitan dosierujon al la dosierelekta interagujo" #: data/io.github.celluloid_player.Celluloid.gschema.xml:72 msgid "Whether or not to create new windows when there is already an instance" msgstr "Ĉu krei ekstrajn fenestrojn kiam unu fenestro jamas" #: data/io.github.celluloid_player.Celluloid.gschema.xml:78 #: src/celluloid-application.c:575 msgid "Options to pass to mpv" msgstr "Opcioj transdonotaj al mpv" #: data/io.github.celluloid_player.Celluloid.gschema.xml:84 msgid "Path to mpv configuration file" msgstr "Dosierindiko de la agorda dosiero de mpv" #: data/io.github.celluloid_player.Celluloid.gschema.xml:90 msgid "Load or don't load mpv configuration file" msgstr "Enlegi aŭ ne enlegi la agordan dosieron de mpv" #: data/io.github.celluloid_player.Celluloid.gschema.xml:96 msgid "Path to mpv input configuration file" msgstr "Dosierindiko de la eniga agorda dosiero de mpv" #: data/io.github.celluloid_player.Celluloid.gschema.xml:102 msgid "Load or don't load mpv input configuration file" msgstr "Enlegi aŭ ne enlegi la enigan agordan dosieron de mpv" #: data/io.github.celluloid_player.Celluloid.gschema.xml:108 msgid "Whether or not to enable MPRIS support" msgstr "Ĉu ŝalti subtenon de MPRIS" #: data/io.github.celluloid_player.Celluloid.gschema.xml:114 msgid "" "Whether or not to enable GNOME-Settings-Daemon-based media keys support" msgstr "" "Ĉu ŝalti subtenon de aŭdovidaj klavoj surbaze de « GNOME-Settings-Daemon »" #: data/io.github.celluloid_player.Celluloid.gschema.xml:120 msgid "Whether or not to prefetch metadata for non-current playlist entries" msgstr "Ĉu antaŭlegi metadatumojn por nenunaj leglisteroj" #: data/io.github.celluloid_player.Celluloid.gschema.xml:126 msgid "" "Whether or not to display an error message when playback of a file ends with" " an error" msgstr "Ĉu montri erarmesaĝon kiam legado de dosiero finiĝas per eraro" #: data/io.github.celluloid_player.Celluloid.gschema.xml:132 msgid "Whether or not to inhibit session idling when something is playing" msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:142 msgid "Width of the window" msgstr "Larĝo de la fenestro" #: data/io.github.celluloid_player.Celluloid.gschema.xml:148 msgid "Height of the window" msgstr "Alto de la fenestro" #: data/io.github.celluloid_player.Celluloid.gschema.xml:154 msgid "Whether or not the window is maximized" msgstr "Ĉu la fenestro estas maksimumigita" #: data/io.github.celluloid_player.Celluloid.gschema.xml:161 msgid "Volume of player" msgstr "Laŭteco de la legilo" #: data/io.github.celluloid_player.Celluloid.gschema.xml:167 msgid "Whether or not to loop when the end of playlist is reached" msgstr "Ĉu aŭ ne ripeti kiam la fino de la leglisto estas atingota" #: data/io.github.celluloid_player.Celluloid.gschema.xml:173 msgid "Width of the playlist" msgstr "Larĝo de la leglisto" #: data/io.github.celluloid_player.Celluloid.gschema.xml:179 msgid "Show or not show the controls" msgstr "Montri aŭ ne montri la regilojn" #: data/io.github.celluloid_player.Celluloid.gschema.xml:185 msgid "Show or not show the playlist" msgstr "Montri aŭ ne montri la legliston" #: data/io.github.celluloid_player.Celluloid.gschema.xml:191 msgid "URI of the last folder accessed" msgstr "URI de la laste atingita dosierujo" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:7 #: data/io.github.celluloid_player.Celluloid.desktop.in:4 #: src/celluloid-application.c:451 msgid "Celluloid" msgstr "Celuloido" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:8 msgid "GTK+ frontend for mpv" msgstr "Fasado per GTK+ por mpv" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:16 msgid "" "Celluloid is a simple media player that can play virtually all video and " "audio formats. It supports playlists and MPRIS2 media player controls. The " "design of Celluloid follows the GNOME Human Interface Guidelines, but can " "also be adapted for other systems that don't use client-side decorations " "(CSD). It is based on the mpv library and GTK." msgstr "" "Celuloido estas simpla plurmedia legilo, kiu povas legi preskaŭ ĉiuj videaj " "kaj sonaj formatoj. Ĝi regas leglistojn kaj plurmedilegilajn regilojn laŭ " "MPRIS2. La fasono de Celuloido laŭas la hominterfacajn gvidliniojn de GNOME," " sed ankaŭ povasadaptiĝi por aliaj sistemoj, kiuj ne uzas klientflankajn " "ornamaĵojn (KFO). Ĝi baziĝas sur la bibliotekoj mpv kaj GTK." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:23 msgid "Features:" msgstr "Funkcioj:" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:25 msgid "Drag and drop playlist" msgstr "Ŝovmeta leglisto" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:26 msgid "Loading external mpv configuration files" msgstr "Enlegado de eksteraj agordaj dosieroj de mpv" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:27 msgid "MPRIS2 D-Bus interface" msgstr "Interfaco de « MPRIS2 D-Bus »" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:30 msgid "The Celluloid Developers" msgstr "La programistoj de Celuloido" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:34 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:87 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:117 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:156 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:187 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:215 msgid "This release contains the following changes:" msgstr "Ĉi tiu eldono enhavas la jenajn ŝanĝojn:" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:38 msgid "" "Adjust the range of volume button based on the value of the volume-max " "property." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:42 msgid "Retain window maximization state across sessions." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:45 msgid "Retain loop state across sessions." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:48 msgid "Implement playlist search." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:51 msgid "Update the list of shortcuts in Keyboard Shortcuts dialog." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:54 msgid "Correctly handle quotes and escape sequences in extra mpv options." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:57 msgid "Display time at cursor position when hovering the seek bar." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:60 msgid "" "Deprecate '--mpv-options'. Options starting with '--mpv-' can be used to set" " mpv options instead. For example, passing '--mpv-vf=vflip' to Celluloid is " "equivalent to passing '--vf=vflip' to mpv." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:66 msgid "" "Add support for configuring dead zone, an area in which mouse movement will " "not cause controls to be shown." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:70 msgid "Make window sizing work correctly with HiDPI displays." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:73 msgid "Add Finnish translation by Kimmo Kujansuu." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:76 msgid "Add Slovenian translation by @bertronika." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:80 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:110 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:149 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:180 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:208 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:236 msgid "This listing is incomplete. See git log for complete changelog." msgstr "" "La listigo estas nekompleta. Uzu la komandon `git log` por plena ŝanĝaro." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:91 msgid "Add Persian translation by @danialbehzadi" msgstr "Aldoni perslingvigon de @danialbehzadi" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:94 msgid "Add Ukranian translation by @vl-nix" msgstr "Aldoni ukrajnlingvigon tradukon de @vl-nx" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:97 msgid "" "Add support for showing/hiding window decorations using the mpv option " "--border" msgstr "" "Aldoni regadon por kaŝadon/malkaŝadon de fenestraj ornamaĵoj per la mpv-" "opcio --border" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:100 msgid "Add menu item for opening discs" msgstr "Aldoni menueron por malfermi lumdiskojn" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:103 msgid "Block cursor autohide when volume popup is open in windowed mode" msgstr "" "Embarasi aŭtomatan kaŝiĝon de kursuro dum ŝanĝo de laŭteco en fenestra " "reĝimo" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:106 msgid "Fix crash with mpv 0.30" msgstr "Ripari kraŝon kun mpv-0.30" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:121 msgid "Rename project to Celluloid" msgstr "Alinomi la projektojn Celuloido" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:124 msgid "Add Turkish translation by @TeknoMobil" msgstr "Aldoni turklingvigon de @TeknoMobil" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:127 msgid "Add Esperanto translation by @F3nd0" msgstr "Aldoni esperantlingvigon de @F3nd0" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:130 msgid "Migrate from opengl-cb to the new render API" msgstr "Migri de opengl-cb al la nova API" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:133 msgid "Handle numpad keybindings" msgstr "Trakti ciferplatajn klavkombinojn" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:136 msgid "Handle unicode keybindings" msgstr "Trakti unikodajn klavkombinojn" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:139 msgid "Forward media key events to mpv" msgstr "Plusendi eventojn de aŭdovidaj klavoj al mpv" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:142 msgid "" "Add dconf key for controlling cursor speed at which controls are unhidden" msgstr "" "Aldonado de dconf-ŝlosilo por regi musmontrilan rapidon de regila kaŝado" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:145 msgid "Add option for suppressing playback errors" msgstr "Aldoni opcion por silentigi lego-erarojn" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:160 msgid "Split up the General tab in the preferences dialog" msgstr "Dividi la Ĝeneralan langeton en la agorda interagujo" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:163 msgid "Improve behavior when toggling playlist under tiling window managers" msgstr "" "Plibonigi konduton dum baskuligo de leglisto en kahelaj fenestraj aranĝiloj" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:166 msgid "Move app menu items to primary menu" msgstr "Movi erojn de aplikaĵa menuo al ĉefmenuo" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:169 msgid "Use separate MPRIS DBus connection for each window" msgstr "Uzi apartan konekton de « MPRIS DBus » por ĉiu fenestro" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:172 msgid "Add support for MPRIS property LoopStatus" msgstr "Aldoni subtenon por eco « LoopStatus » de MPRIS" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:175 msgid "" "Add option --mpv-options for setting arbitrary mpv options from the command-" "line" msgstr "" "Aldoni opcion « --mpv-options » por agordado de ajnaj opcioj de mpv de la " "komandlinio" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:191 msgid "Set default screenshot directory to XDG_PICTURES_DIR" msgstr "Agordi la implicitan ekrankopian dosierujon al XDG_PICTURES_DIR" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:194 msgid "" "Improve handling of --window-scale, --autofit, --autofit-larger, and " "--autofit-smaller" msgstr "" "Plibonigi traktadon de « --window-scale », « --autofit », « --autofit-" "larger », kaj « --autofit-smaller »" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:198 msgid "Add command line option for setting WM_ROLE" msgstr "Aldoni komandlinian opcion por agordi econ « WM_ROLE »" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:201 msgid "Add context menu item for removing playlist items" msgstr "Aldoni kuntekstan menuon por forigado de leglisteroj" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:204 msgid "Add context menu item for copying location of playlist items" msgstr "Aldoni kuntekstan menueron por kopiado de leglistaj indikoj" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:219 msgid "" "Add option to make skip buttons change playlist entries rather than chapters" msgstr "" "Aldoni opcion por ŝanĝi leglisterojn anstataŭ ĉapitrojn per preterpasaj " "butonoj" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:223 msgid "Make the file chooser accept non-local locations" msgstr "Akceptigi forajn lokojn al la dosiera elektilo" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:226 msgid "Add right-click menu entry for looping a single file" msgstr "Aldoni dekstraklakan menueron por ripetado de unu dosiero" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:229 msgid "Handle property change events for fullscreen and window-scale" msgstr "Trakti okazojn de ecaj ŝanĝoj por « fullscreen » kaj « window-scale »" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:232 msgid "Add option to autohide mouse cursor in windowed mode" msgstr "Aldoni opcion por aŭtomata kaŝo de musmontrilo en fenestra reĝimo" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:246 msgid "The main window showing the application in action" msgstr "La ĉefa fenestro montras la funkciantan aplikaĵon" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:250 msgid "The main window with CSD disabled" msgstr "La ĉefa fenestro kun malŝaltitaj klient-flankaj ornamaĵoj" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:254 msgid "The main window with playlist open" msgstr "La ĉefa fenestro kun malfermita leglisto" #: data/io.github.celluloid_player.Celluloid.desktop.in:5 msgid "Multimedia Player" msgstr "Plurmedia legilo" #: data/io.github.celluloid_player.Celluloid.desktop.in:6 msgid "Play movies and videos" msgstr "Legi filmojn kaj videojn" #. Translators: Search terms to find this application. Don't translate the #. semicolons! The list MUST also end with a semicolon! #: data/io.github.celluloid_player.Celluloid.desktop.in:17 msgid "Video;Movie;Film;Clip;Series;Player;DVD;TV;Disc;Album;Music;GNOME;mpv;" msgstr "Disko;DVD;Filmo;GNOME;KD;mpv;Muziko;Seriaĵo;Televido;TV;" #: data/io.github.celluloid_player.Celluloid.desktop.in:23 msgid "New Window" msgstr "Nova fenestro" #: src/celluloid-application.c:495 msgid "Playing" msgstr "Leganta" #: src/celluloid-application.c:551 msgid "Show release version" msgstr "Montri eldonon" #: src/celluloid-application.c:559 msgid "Enqueue" msgstr "Envicigi" #: src/celluloid-application.c:567 msgid "Create a new window" msgstr "Krei novan fenestron" #: src/celluloid-application.c:576 msgid "OPTIONS" msgstr "OPCIOJ" #: src/celluloid-application.c:583 msgid "Set the window role" msgstr "Agordi rolon de la fenestro" #: src/celluloid-application.c:591 msgid "Don't connect to an already-running instance" msgstr "Ne konekti al jama rulaĵo" #: src/celluloid-control-box.c:362 msgid "Pause" msgstr "Paŭzigi" #: src/celluloid-control-box.c:362 src/celluloid-control-box.c:565 msgid "Play" msgstr "Legi" #: src/celluloid-control-box.c:568 msgid "Stop" msgstr "Haltigi" #: src/celluloid-control-box.c:571 msgid "Forward" msgstr "Pluen" #: src/celluloid-control-box.c:574 msgid "Rewind" msgstr "Reen" #: src/celluloid-control-box.c:577 msgid "Next Chapter" msgstr "Sekva ĉapitro" #: src/celluloid-control-box.c:580 msgid "Previous Chapter" msgstr "Antaŭa ĉapitro" #: src/celluloid-control-box.c:583 msgid "Loop Playlist" msgstr "Ripetadi legliston" #: src/celluloid-control-box.c:586 msgid "Shuffle Playlist" msgstr "" #: src/celluloid-control-box.c:589 src/celluloid-header-bar.c:91 msgid "Toggle Fullscreen" msgstr "Baskuligi tutekranan reĝimon" #: src/celluloid-controller.c:992 src/celluloid-view.c:1558 msgid "Error" msgstr "Eraro" #: src/celluloid-file-chooser.c:139 src/celluloid-plugins-manager.c:170 msgid "All Files" msgstr "Ĉiuj dosieroj" #: src/celluloid-file-chooser.c:147 msgid "Media Files" msgstr "Aŭdovidaj dosieroj" #: src/celluloid-file-chooser.c:158 msgid "Audio Files" msgstr "Sonaj dosieroj" #: src/celluloid-file-chooser.c:166 msgid "Video Files" msgstr "Filmaj dosieroj" #: src/celluloid-file-chooser.c:174 msgid "Image Files" msgstr "Bildaj dosieroj" #: src/celluloid-file-chooser.c:184 msgid "Subtitle Files" msgstr "Subtekstaj dosieroj" #: src/celluloid-menu.c:106 msgid "None" msgstr "Neniu" #. For simplicity, also dup the default string used when the #. * track has no title. #: src/celluloid-menu.c:121 msgid "Unknown" msgstr "Nekonata" #: src/celluloid-menu.c:154 msgid "_Load External…" msgstr "En_legi eksteran…" #. Disable the menu item by setting the action to something #. * invalid. #: src/celluloid-menu.c:207 msgid "No disc found" msgstr "Neniu lumdisko trovita" #: src/celluloid-menu.c:235 msgid "_File" msgstr "_Dosiero" #: src/celluloid-menu.c:236 src/celluloid-menu.c:318 msgid "_Open…" msgstr "_Malfermi…" #: src/celluloid-menu.c:237 src/celluloid-menu.c:319 msgid "Open _Folder…" msgstr "" #: src/celluloid-menu.c:238 src/celluloid-menu.c:320 msgid "Open _Location…" msgstr "Malfermi _lokon…" #: src/celluloid-menu.c:239 msgid "Open _Disc…" msgstr "Malfermi lum_diskon…" #: src/celluloid-menu.c:240 src/celluloid-menu.c:290 msgid "_Save Playlist" msgstr "_Konservi legliston" #: src/celluloid-menu.c:241 src/celluloid-menu.c:323 msgid "_New Window" msgstr "_Nova fenestro" #: src/celluloid-menu.c:242 msgid "_Quit" msgstr "_Fini" #: src/celluloid-menu.c:243 msgid "_Edit" msgstr "R_edakti" #: src/celluloid-menu.c:244 src/celluloid-menu.c:296 msgid "_Preferences" msgstr "_Agordoj" #: src/celluloid-menu.c:245 src/celluloid-menu.c:292 msgid "_Video Track" msgstr "Variaĵo de _filmo" #: src/celluloid-menu.c:246 src/celluloid-menu.c:293 msgid "_Audio Track" msgstr "Variaĵo de _sono" #: src/celluloid-menu.c:247 src/celluloid-menu.c:294 msgid "S_ubtitle Track" msgstr "Variaĵo de s_ubteksto" #: src/celluloid-menu.c:248 msgid "_View" msgstr "_Vido" #: src/celluloid-menu.c:249 src/celluloid-menu.c:287 msgid "_Toggle Controls" msgstr "_Baskuligi regilojn" #: src/celluloid-menu.c:250 src/celluloid-menu.c:289 msgid "_Toggle Playlist" msgstr "Baskuligi _legliston" #: src/celluloid-menu.c:251 msgid "_Fullscreen" msgstr "_Tutekrana reĝimo" #: src/celluloid-menu.c:252 msgid "_Help" msgstr "_Helpo" #: src/celluloid-menu.c:253 src/celluloid-menu.c:297 msgid "_Keyboard Shortcuts" msgstr "_Klavkombinoj" #: src/celluloid-menu.c:254 src/celluloid-menu.c:298 msgid "_About Celluloid" msgstr "_Pri Celuloido" #: src/celluloid-menu.c:321 msgid "Open _Disc" msgstr "Malfermi lum_diskon" #: src/celluloid-mpv.c:240 #, c-format msgid "Playback was terminated abnormally. Reason: %s." msgstr "Legado ĉesis malnormale. Kialo: %s" #: src/celluloid-open-location-dialog.c:130 msgid "Location:" msgstr "Loko:" #: src/celluloid-open-location-dialog.c:136 #: src/celluloid-preferences-dialog.c:401 msgid "_Cancel" msgstr "_Nuligi" #: src/celluloid-open-location-dialog.c:138 msgid "_Open" msgstr "_Malfermi" #: src/celluloid-player.c:550 msgid "Failed to apply one or more MPV options." msgstr "Malsukcesis apliki unu aŭ pli da MPV-opcioj" #: src/celluloid-playlist-widget.c:784 msgid "_Copy Location" msgstr "_Kopii lokon" #: src/celluloid-playlist-widget.c:785 msgid "_Remove" msgstr "_Forigi" #: src/celluloid-playlist-widget.c:787 msgid "_Add…" msgstr "_Aldoni…" #: src/celluloid-playlist-widget.c:788 msgid "Add _Folder…" msgstr "" #: src/celluloid-playlist-widget.c:789 msgid "Add _Location…" msgstr "Aldoni _lokon…" #: src/celluloid-playlist-widget.c:790 msgid "_Shuffle" msgstr "_Miksi" #: src/celluloid-playlist-widget.c:791 msgid "Loop _File" msgstr "Ripedati _dosieron" #: src/celluloid-playlist-widget.c:792 msgid "Loop _Playlist" msgstr "Ripetadi _legliston" #: src/celluloid-playlist-widget.c:933 src/celluloid-shortcuts-window.c:136 msgid "Playlist" msgstr "Leglisto" #: src/celluloid-playlist-widget.c:941 msgid "Playlist is empty" msgstr "Leglisto malplenas" #: src/celluloid-plugins-manager.c:163 src/celluloid-plugins-manager.c:409 msgid "Add Plugin" msgstr "Aldoni kromprogramon" #: src/celluloid-plugins-manager.c:175 msgid "Lua Plugins" msgstr "Kromprogramoj en Lua" #: src/celluloid-plugins-manager.c:181 msgid "JavaScript Plugins" msgstr "Kromprogramoj en Ĝavoskripto" #: src/celluloid-plugins-manager.c:186 msgid "C Plugins" msgstr "Kromprogramoj en C" #: src/celluloid-plugins-manager.c:334 #, c-format msgid "Failed to copy file from '%s' to '%s'. Reason: %s" msgstr "Malskucesis kopii dosieron de « %s » al « %s ». Kialo: « %s »" #: src/celluloid-plugins-manager.c:385 msgid "No plugins found" msgstr "Neniuj kromprogramoj troviĝis" #: src/celluloid-plugins-manager-item.c:79 msgid "Remove" msgstr "Forigi" #: src/celluloid-plugins-manager-item.c:178 msgid "" "Are you sure you want to remove this script? This action cannot be undone." msgstr "Ĉu vi certe volas forigi ĉi tiun skripton? Tiu agon ne eblos malfari." #: src/celluloid-plugins-manager-item.c:199 #, c-format msgid "Failed to delete file '%s'. Reason: %s" msgstr "Malsukcesis forigi dosieron « %s ». Kialo: %s" #: src/celluloid-preferences-dialog.c:304 msgid "Automatically resize window to fit video" msgstr "Aŭtomate aligrandigi fenestron por esti samgranda kiel video" #: src/celluloid-preferences-dialog.c:307 msgid "Enable client-side decorations" msgstr "Ŝalti klient-flankajn ornamaĵojn" #: src/celluloid-preferences-dialog.c:310 msgid "Enable dark theme" msgstr "Ŝalti malhelan etoson" #: src/celluloid-preferences-dialog.c:313 msgid "Use floating controls in windowed mode" msgstr "Uzi surfilmajn regilojn en fenestra reĝimo" #: src/celluloid-preferences-dialog.c:316 msgid "Autohide mouse cursor in windowed mode" msgstr "Memfare kaŝi musmontrilon en fenestra reĝimo" #: src/celluloid-preferences-dialog.c:319 msgid "Use skip buttons for controlling playlist" msgstr "Uzi preterpasajn butonojn por regi legliston" #: src/celluloid-preferences-dialog.c:322 msgid "Remember last file's location" msgstr "Memori lokon de lasta dosiero" #: src/celluloid-preferences-dialog.c:327 msgid "Load MPV configuration file" msgstr "Enlegi agordan dosieron de MPV" #: src/celluloid-preferences-dialog.c:330 msgid "MPV configuration file:" msgstr "Agorda dosiero de MPV:" #: src/celluloid-preferences-dialog.c:333 msgid "Load MPV input configuration file" msgstr "Enlegi enigan agordan dosieron de MPV" #: src/celluloid-preferences-dialog.c:336 msgid "MPV input configuration file:" msgstr "Eniga agorda dosiero de MPV:" #: src/celluloid-preferences-dialog.c:341 msgid "Always open new window" msgstr "Ĉiam malfermi novan fenestron" #: src/celluloid-preferences-dialog.c:344 msgid "Ignore playback errors" msgstr "Malatenti erarojn de legado" #: src/celluloid-preferences-dialog.c:347 msgid "Prefetch metadata" msgstr "Antaŭpeti metadatumojn" #: src/celluloid-preferences-dialog.c:350 msgid "Enable MPRIS support" msgstr "Ŝalti subtenon de MPRIS" #: src/celluloid-preferences-dialog.c:353 msgid "Enable media keys support" msgstr "Ŝalti subtenon de aŭdovidaj klavoj" #: src/celluloid-preferences-dialog.c:356 msgid "Extra MPV options:" msgstr "Ekstraj opcioj de MPV:" #: src/celluloid-preferences-dialog.c:389 msgid "Interface" msgstr "Fasado" #: src/celluloid-preferences-dialog.c:392 msgid "Config Files" msgstr "Agordaj dosieroj" #: src/celluloid-preferences-dialog.c:395 msgid "Miscellaneous" msgstr "Diversaj" #: src/celluloid-preferences-dialog.c:398 msgid "Plugins" msgstr "Kromprogramoj" #: src/celluloid-preferences-dialog.c:403 msgid "_Save" msgstr "_Konservi" #: src/celluloid-preferences-dialog.c:421 msgid "Preferences" msgstr "Agordoj" #: src/celluloid-shortcuts-window.c:57 msgid "Open file" msgstr "Malfermi dosieron" #: src/celluloid-shortcuts-window.c:58 msgid "Open location" msgstr "Malfermi lokon" #: src/celluloid-shortcuts-window.c:59 msgid "Add file to playlist" msgstr "Aldoni dosieron al leglisto" #: src/celluloid-shortcuts-window.c:60 msgid "Add location to playlist" msgstr "Aldoni lokon al leglisto" #: src/celluloid-shortcuts-window.c:61 msgid "Show preferences dialog" msgstr "Montri agordan interagujon" #: src/celluloid-shortcuts-window.c:62 msgid "Toggle controls" msgstr "Baskuligi regilojn" #: src/celluloid-shortcuts-window.c:63 msgid "Toggle playlist" msgstr "Baskuligi legliston" #: src/celluloid-shortcuts-window.c:64 msgid "Toggle fullscreen mode" msgstr "Baskuligi tutekranan reĝimon" #: src/celluloid-shortcuts-window.c:65 msgid "Leave fullscreen mode" msgstr "Forlasi tutekranan reĝimon" #: src/celluloid-shortcuts-window.c:66 msgid "Toggle OSD states between normal and playback time/duration" msgstr "Baskuligi statojn inter normala kaj tempomontra" #: src/celluloid-shortcuts-window.c:67 msgid "Show filename on the OSD" msgstr "Montri dosiernomon en la surfilma regilaro" #: src/celluloid-shortcuts-window.c:68 msgid "Show progress, elapsed time, and duration on the OSD" msgstr "Montri progreson, pasintan tempon, kaj daŭron en la surfilma regilaro" #: src/celluloid-shortcuts-window.c:71 msgid "Seek backward/forward 5 seconds" msgstr "Tempiri 5 sekundojn reen/pluen" #: src/celluloid-shortcuts-window.c:72 msgid "Exact seek backward/forward 1 second" msgstr "Precize tempiri 1 sekundon reen/pluen" #: src/celluloid-shortcuts-window.c:73 msgid "Seek backward/forward 1 minute" msgstr "Tempiri 1 minuton reen/pluen" #: src/celluloid-shortcuts-window.c:74 msgid "Exact seek backward/forward 5 seconds" msgstr "Precize tempiri 5 sekundojn reen/pluen" #: src/celluloid-shortcuts-window.c:75 msgid "Seek to previous/next subtitle" msgstr "Tempiri al la antaŭa/sekva subteksto" #: src/celluloid-shortcuts-window.c:76 msgid "Step backward/forward a single frame" msgstr "Tempiri unu filmeron reen/pluen" #: src/celluloid-shortcuts-window.c:77 msgid "Seek to the beginning of the previous/next chapter" msgstr "Tempiri al la komenco de la lasta/sekva ĉapitro" #: src/celluloid-shortcuts-window.c:80 msgid "Decrease/increase playback speed by 10%" msgstr "Alkrementi/dekrementi legrapidon je 10%" #: src/celluloid-shortcuts-window.c:81 msgid "Halve/double current playback speed" msgstr "Du onigi/obligi la nunan legrapidon" #: src/celluloid-shortcuts-window.c:82 msgid "Reset playback speed to normal" msgstr "Restarigi norman legrapidon" #: src/celluloid-shortcuts-window.c:83 msgid "Go backward/forward in the playlist" msgstr "Iri pluen/antaŭen en la leglist" #: src/celluloid-shortcuts-window.c:84 msgid "Remove selected playlist item" msgstr "Forigi elektitan leglisteron" #: src/celluloid-shortcuts-window.c:85 msgid "Save playlist" msgstr "Konservi legliston" #: src/celluloid-shortcuts-window.c:86 msgid "Set/clear A-B loop points" msgstr "Meti/forigi limojn A-B de ripetado" #: src/celluloid-shortcuts-window.c:87 msgid "Toggle infinite looping" msgstr "Baskuligi senfinan ripetadon" #: src/celluloid-shortcuts-window.c:88 msgid "Pause or unpause" msgstr "Paŭzigi aŭ malpaŭzigi" #: src/celluloid-shortcuts-window.c:89 msgid "Quit" msgstr "Fini" #: src/celluloid-shortcuts-window.c:90 msgid "Save current playback position and quit" msgstr "Konservi nunan templokon kaj fini" #: src/celluloid-shortcuts-window.c:93 msgid "Enter search mode" msgstr "Komenci tempiran reĝimon" #: src/celluloid-shortcuts-window.c:94 msgid "Jump to next match" msgstr "Iri al la sekva trafo" #: src/celluloid-shortcuts-window.c:95 msgid "Jump to previous match" msgstr "Iri al la antaŭa trafo" #: src/celluloid-shortcuts-window.c:96 msgid "Exit search mode" msgstr "Fini tempiran reĝimon" #: src/celluloid-shortcuts-window.c:99 msgid "Cycle through audio tracks" msgstr "Cikligi tra sontrakoj" #: src/celluloid-shortcuts-window.c:100 src/celluloid-shortcuts-window.c:101 msgid "Decrease/increase volume" msgstr "(Mal)pliigi laŭtecon" #: src/celluloid-shortcuts-window.c:102 msgid "Mute or unmute" msgstr "(Mal)silentigi" #: src/celluloid-shortcuts-window.c:103 msgid "Adjust audio delay by +/- 0.1 seconds" msgstr "Alĝustigi prokraston de sono po 0,1 sekundoj" #: src/celluloid-shortcuts-window.c:106 msgid "Toggle subtitle visibility" msgstr "Baskuligi videblecon de subtekstoj" #: src/celluloid-shortcuts-window.c:107 msgid "Cycle through available subtitles" msgstr "Cikligi tra disponeblaj subtekstoj" #: src/celluloid-shortcuts-window.c:108 msgid "Adjust subtitle delay by +/- 0.1 seconds" msgstr "Alĝustigi prokraston de subtekstoj po 0,1 sekundoj" #: src/celluloid-shortcuts-window.c:109 msgid "Toggle SSA/ASS subtitles style override" msgstr "Baskuligi transpason de stilo de SSA/ASS-subtekstoj" #: src/celluloid-shortcuts-window.c:110 msgid "Move subtitles up/down" msgstr "Movi subtekstojn supren/suben" #: src/celluloid-shortcuts-window.c:111 msgid "Toggle VSFilter aspect compatibility mode" msgstr "Baskuligi reĝimon de formata kongrueco kun VSFilter" #: src/celluloid-shortcuts-window.c:114 msgid "Cycle through video tracks" msgstr "Cikligi tra videaj trakoj" #: src/celluloid-shortcuts-window.c:115 msgid "Decrease/increase pan-and-scan range" msgstr "(Mal)pliigi amplekson de glitado" #: src/celluloid-shortcuts-window.c:116 msgid "Take a screenshot" msgstr "Fari ekrankopion" #: src/celluloid-shortcuts-window.c:117 msgid "Take a screenshot, without subtitles" msgstr "Fari ekrankopion, sen subtekstoj" #: src/celluloid-shortcuts-window.c:118 msgid "Take a screenshot, as the window shows it" msgstr "Fari ekrankopion tian, kian montras la fenestro" #: src/celluloid-shortcuts-window.c:119 msgid "Resize video to half its original size" msgstr "Aligrandigi filmon al duono de originala grando" #: src/celluloid-shortcuts-window.c:120 msgid "Resize video to its original size" msgstr "Aligrandigi filmon al originala grando" #: src/celluloid-shortcuts-window.c:121 msgid "Resize video to double its original size" msgstr "Aligrandigi filmon al duoblo de originala grando" #: src/celluloid-shortcuts-window.c:122 msgid "Adjust contrast" msgstr "Alĝustigi kontraston" #: src/celluloid-shortcuts-window.c:123 msgid "Adjust brightness" msgstr "Alĝustigi helecon" #: src/celluloid-shortcuts-window.c:124 msgid "Adjust gamma" msgstr "Alĝustigi gamaon" #: src/celluloid-shortcuts-window.c:125 msgid "Adjust saturation" msgstr "Alĝustigi saturecon" #: src/celluloid-shortcuts-window.c:126 msgid "Activate or deactivate deinterlacer" msgstr "Aktivigi aŭ malaktivigi malinterplektilon" #: src/celluloid-shortcuts-window.c:127 msgid "Cycle aspect ratio override" msgstr "Cikligi transpason de bildformato" #: src/celluloid-shortcuts-window.c:130 msgid "User Interface" msgstr "Fasado" #: src/celluloid-shortcuts-window.c:131 msgid "Video" msgstr "Filmo" #: src/celluloid-shortcuts-window.c:132 msgid "Audio" msgstr "Sono" #: src/celluloid-shortcuts-window.c:133 msgid "Subtitle" msgstr "Subteksto" #: src/celluloid-shortcuts-window.c:134 msgid "Playback" msgstr "Legado" #: src/celluloid-shortcuts-window.c:135 msgid "Seeking" msgstr "Tempiro" #: src/celluloid-view.c:728 msgid "Load Audio Track…" msgstr "Ŝargi sonan trakon…" #: src/celluloid-view.c:732 msgid "Load Video Track…" msgstr "" #: src/celluloid-view.c:736 msgid "Load Subtitle Track…" msgstr "Ŝargi subtekstan trakon…" #: src/celluloid-view.c:901 msgid "" "Enabling or disabling client-side decorations requires restarting to take " "effect." msgstr "" "(Mal)ŝalto de klient-flankaj ornamaĵoj postulas restartigon por efektiviĝi" #: src/celluloid-view.c:1444 msgid "Add Folder to Playlist" msgstr "" #: src/celluloid-view.c:1444 msgid "Open Folder" msgstr "" #: src/celluloid-view.c:1449 msgid "Add File to Playlist" msgstr "Aldoni dosieron al leglisto" #: src/celluloid-view.c:1449 msgid "Open File" msgstr "Malfermi dosieron" #: src/celluloid-view.c:1485 msgid "Add Location to Playlist" msgstr "Aldoni lokon al leglisto" #: src/celluloid-view.c:1486 msgid "Open Location" msgstr "Malfermi lokon" #: src/celluloid-view.c:1532 msgid "Save Playlist" msgstr "Konservi legliston" #: src/celluloid-view.c:1598 msgid "A GTK frontend for MPV" msgstr "Fasado por MPV per GTK" #: src/celluloid-view.c:1608 msgid "translator-credits" msgstr "Tirifto" celluloid-0.20/po/es.po000066400000000000000000001145121373135401300150000ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # Toni Estevez , 2019. #zanata # gnome-mpv , 2019. #zanata # Toni Estevez , 2020. #zanata msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-02-20 20:48+0700\n" "PO-Revision-Date: 2020-08-13 04:56-0400\n" "Last-Translator: Toni Estevez \n" "Language-Team: Spanish\n" "Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" "X-Generator: Zanata 4.6.2\n" #: data/io.github.celluloid_player.Celluloid.gschema.xml:11 msgid "" "Whether the settings has already been migrated from the previous version" msgstr "Importar la configuración de una versión anterior" #: data/io.github.celluloid_player.Celluloid.gschema.xml:17 msgid "Whether or not to automatically resize window to fit video" msgstr "Redimensionar automáticamente la ventana al tamaño del vídeo" #: data/io.github.celluloid_player.Celluloid.gschema.xml:23 msgid "Enable or disable dark theme" msgstr "Activar el tema oscuro" #: data/io.github.celluloid_player.Celluloid.gschema.xml:29 msgid "Enable or disable client-side decorations" msgstr "Activar las decoraciones del lado del cliente" #: data/io.github.celluloid_player.Celluloid.gschema.xml:35 msgid "Whether or not to use floating controls in windowed mode" msgstr "Usar los controles flotantes en el modo ventana" #: data/io.github.celluloid_player.Celluloid.gschema.xml:41 msgid "Whether or not to autohide mouse cursor in windowed mode" msgstr "Ocultar automáticamente el puntero del ratón en el modo ventana" #: data/io.github.celluloid_player.Celluloid.gschema.xml:47 msgid "The minimum cursor speed at which floating controls will be unhidden." msgstr "" "La velocidad mínima del cursor a la que se ocultarán los controles " "flotantes." #: data/io.github.celluloid_player.Celluloid.gschema.xml:54 msgid "" "The size of the dead zone in which cursor movement will not cause the " "controls to be shown." msgstr "" "El tamaño de la zona muerta en la que el movimiento del cursor no provocará " "que se muestren los controles." #: data/io.github.celluloid_player.Celluloid.gschema.xml:60 msgid "Whether or not to use skip buttons for controlling playlist" msgstr "Usar los botones de salto para controlar la lista de reproducción" #: data/io.github.celluloid_player.Celluloid.gschema.xml:66 msgid "" "Whether or not to make file chooser dialog remember last folder accessed" msgstr "Recordar la ubicación del último archivo abierto" #: data/io.github.celluloid_player.Celluloid.gschema.xml:72 msgid "Whether or not to create new windows when there is already an instance" msgstr "Crear ventanas nuevas cuando ya exista una instancia" #: data/io.github.celluloid_player.Celluloid.gschema.xml:78 #: src/celluloid-application.c:575 msgid "Options to pass to mpv" msgstr "Opciones extra para mpv:" #: data/io.github.celluloid_player.Celluloid.gschema.xml:84 msgid "Path to mpv configuration file" msgstr "Archivo de configuración de mpv:" #: data/io.github.celluloid_player.Celluloid.gschema.xml:90 msgid "Load or don't load mpv configuration file" msgstr "Cargar un archivo de configuración de mpv" #: data/io.github.celluloid_player.Celluloid.gschema.xml:96 msgid "Path to mpv input configuration file" msgstr "Archivo de configuración de la entrada de mpv:" #: data/io.github.celluloid_player.Celluloid.gschema.xml:102 msgid "Load or don't load mpv input configuration file" msgstr "Cargar un archivo de configuración de la entrada de mpv" #: data/io.github.celluloid_player.Celluloid.gschema.xml:108 msgid "Whether or not to enable MPRIS support" msgstr "Activar la compatibilidad con MPRIS" #: data/io.github.celluloid_player.Celluloid.gschema.xml:114 msgid "" "Whether or not to enable GNOME-Settings-Daemon-based media keys support" msgstr "Activar la compatibilidad con las teclas multimedia de GNOME" #: data/io.github.celluloid_player.Celluloid.gschema.xml:120 msgid "Whether or not to prefetch metadata for non-current playlist entries" msgstr "Precargar los metadatos de las listas de reproducción no actuales" #: data/io.github.celluloid_player.Celluloid.gschema.xml:126 msgid "" "Whether or not to display an error message when playback of a file ends with" " an error" msgstr "" "Mostrar un mensaje de error cuando la reproducción de un archivo finaliza " "con un error" #: data/io.github.celluloid_player.Celluloid.gschema.xml:132 msgid "Whether or not to inhibit session idling when something is playing" msgstr "Inhibir la suspensión de la sesión durante la reproducción" #: data/io.github.celluloid_player.Celluloid.gschema.xml:142 msgid "Width of the window" msgstr "Anchura de la ventana" #: data/io.github.celluloid_player.Celluloid.gschema.xml:148 msgid "Height of the window" msgstr "Altura de la ventana" #: data/io.github.celluloid_player.Celluloid.gschema.xml:154 msgid "Whether or not the window is maximized" msgstr "Maximizar la ventana" #: data/io.github.celluloid_player.Celluloid.gschema.xml:161 msgid "Volume of player" msgstr "Volumen del reproductor" #: data/io.github.celluloid_player.Celluloid.gschema.xml:167 msgid "Whether or not to loop when the end of playlist is reached" msgstr "Reproducir en bucle la lista de reproducción" #: data/io.github.celluloid_player.Celluloid.gschema.xml:173 msgid "Width of the playlist" msgstr "Anchura de la lista de reproducción" #: data/io.github.celluloid_player.Celluloid.gschema.xml:179 msgid "Show or not show the controls" msgstr "Mostrar los controles" #: data/io.github.celluloid_player.Celluloid.gschema.xml:185 msgid "Show or not show the playlist" msgstr "Mostrar la lista de reproducción" #: data/io.github.celluloid_player.Celluloid.gschema.xml:191 msgid "URI of the last folder accessed" msgstr "Ubicación de la última carpeta accedida" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:7 #: data/io.github.celluloid_player.Celluloid.desktop.in:4 #: src/celluloid-application.c:451 msgid "Celluloid" msgstr "Celuloide" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:8 msgid "GTK+ frontend for mpv" msgstr "Interfaz GTK para el reproductor mpv" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:16 msgid "" "Celluloid is a simple media player that can play virtually all video and " "audio formats. It supports playlists and MPRIS2 media player controls. The " "design of Celluloid follows the GNOME Human Interface Guidelines, but can " "also be adapted for other systems that don't use client-side decorations " "(CSD). It is based on the mpv library and GTK." msgstr "" "Celuloide es un reproductor multimedia sencillo que puede reproducir " "prácticamente cualquier formato de vídeo y audio. Admite listas de " "reproducción y controles de reproducción MPRIS2. El diseño de Celuloide " "sigue las guías de interfaz de usuario de GNOME, pero también puede " "adaptarse a otros entornos que no usan decoraciones del lado del cliente " "(CSD). Se basa en las bibliotecas mpv y GTK." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:23 msgid "Features:" msgstr "Características:" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:25 msgid "Drag and drop playlist" msgstr "Permite arrastrar y soltar entradas en la lista de reproducción" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:26 msgid "Loading external mpv configuration files" msgstr "Carga archivos de configuración externos de mpv" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:27 msgid "MPRIS2 D-Bus interface" msgstr "Interfaz D-Bus de MPRIS2" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:30 msgid "The Celluloid Developers" msgstr "Los desarrolladores de Celuloide" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:34 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:87 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:117 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:156 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:187 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:215 msgid "This release contains the following changes:" msgstr "Esta versión contiene los cambios siguientes:" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:38 msgid "" "Adjust the range of volume button based on the value of the volume-max " "property." msgstr "" "Ajusta el rango del botón de volumen basándose en el valor de la propiedad " "«volumen máximo»." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:42 msgid "Retain window maximization state across sessions." msgstr "Recuerda el estado de maximización de la ventana." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:45 msgid "Retain loop state across sessions." msgstr "Recuerda el estado de la reproducción en bucle." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:48 msgid "Implement playlist search." msgstr "Implementa la búsqueda en la lista de reproducción." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:51 msgid "Update the list of shortcuts in Keyboard Shortcuts dialog." msgstr "Actualiza la lista de atajos en el diálogo de los atajos de teclado." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:54 msgid "Correctly handle quotes and escape sequences in extra mpv options." msgstr "" "Maneja correctamente las comillas y las secuencias de escape en las opciones" " extra de mpv." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:57 msgid "Display time at cursor position when hovering the seek bar." msgstr "" "Muestra el tiempo en la posición del puntero al situarlo en la barra de " "búsqueda." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:60 msgid "" "Deprecate '--mpv-options'. Options starting with '--mpv-' can be used to set" " mpv options instead. For example, passing '--mpv-vf=vflip' to Celluloid is " "equivalent to passing '--vf=vflip' to mpv." msgstr "" "Desaprueba «--mpv-options». En su lugar, para configurar opciones de mpv, se" " pueden usar opciones que empiecen por «--mpv-». Por ejemplo, pasar «--mpv-" "vf=vflip» a Celuloide equivale a pasar «--vf=vflip» a mpv." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:66 msgid "" "Add support for configuring dead zone, an area in which mouse movement will " "not cause controls to be shown." msgstr "" "Añade apoyo para configurar una zona muerta, un área en la que el movimiento" " del ratón no causará que se muestren los controles." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:70 msgid "Make window sizing work correctly with HiDPI displays." msgstr "" "Ajusta el tamaño de la ventana correctamente en pantallas de alta densidad " "(HiDPI)." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:73 msgid "Add Finnish translation by Kimmo Kujansuu." msgstr "Añade la traducción al finlandés hecha por Kimmo Kujansuu." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:76 msgid "Add Slovenian translation by @bertronika." msgstr "Añade la traducción al esloveno hecha por @bertronika." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:80 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:110 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:149 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:180 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:208 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:236 msgid "This listing is incomplete. See git log for complete changelog." msgstr "" "Este listado está incompleto. Consulte el registro de Git para obtener un " "registro de cambios completo." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:91 msgid "Add Persian translation by @danialbehzadi" msgstr "Añade la traducción al persa hecha por danialbehzadi" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:94 msgid "Add Ukranian translation by @vl-nix" msgstr "Añade la traducción al ucraniano hecha por vl-nix" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:97 msgid "" "Add support for showing/hiding window decorations using the mpv option " "--border" msgstr "" "Añade compatibilidad para mostrar/ocultar las decoraciones de la ventana " "usando la opción de mpv --border" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:100 msgid "Add menu item for opening discs" msgstr "Añade un elemento al menú para abrir discos" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:103 msgid "Block cursor autohide when volume popup is open in windowed mode" msgstr "" "Bloquea la ocultación automática del cursor cuando se abre la ventana " "emergente del volumen en el modo ventana" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:106 msgid "Fix crash with mpv 0.30" msgstr "Corrige el bloqueo con la versión 0.30 de mpv" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:121 msgid "Rename project to Celluloid" msgstr "Cambia el nombre del proyecto a Celuloide" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:124 msgid "Add Turkish translation by @TeknoMobil" msgstr "Añade la traducción al turco hecha por TeknoMobil" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:127 msgid "Add Esperanto translation by @F3nd0" msgstr "Añade la traducción al esperanto hecha por F3nd0" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:130 msgid "Migrate from opengl-cb to the new render API" msgstr "Cambia de opengl-cb a la nueva API de representación" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:133 msgid "Handle numpad keybindings" msgstr "Maneja las combinaciones de teclas del teclado numérico" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:136 msgid "Handle unicode keybindings" msgstr "Maneja las combinaciones de teclas de Unicode" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:139 msgid "Forward media key events to mpv" msgstr "Reenvía los eventos de las teclas multimedia a mpv" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:142 msgid "" "Add dconf key for controlling cursor speed at which controls are unhidden" msgstr "" "Añade una clave de dconf para controlar la velocidad del cursor a la que se " "ocultan los controles" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:145 msgid "Add option for suppressing playback errors" msgstr "Añade una opción para suprimir los errores de reproducción" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:160 msgid "Split up the General tab in the preferences dialog" msgstr "Divide la pestaña General en el diálogo de preferencias" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:163 msgid "Improve behavior when toggling playlist under tiling window managers" msgstr "" "Mejora el comportamiento al mostrar u ocultar la lista de reproducción en " "los gestores de ventana de mosaico" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:166 msgid "Move app menu items to primary menu" msgstr "Traslada los elementos del menú de aplicación al menú principal" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:169 msgid "Use separate MPRIS DBus connection for each window" msgstr "Usa una conexión DBus de MPRIS separada para cada ventana" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:172 msgid "Add support for MPRIS property LoopStatus" msgstr "Añade compatibilidad con la propiedad LoopStatus de MPRIS" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:175 msgid "" "Add option --mpv-options for setting arbitrary mpv options from the command-" "line" msgstr "" "Añade la opción --mpv-options para configurar opciones arbitrarias de mpv " "desde la línea de órdenes" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:191 msgid "Set default screenshot directory to XDG_PICTURES_DIR" msgstr "" "Configura como carpeta de capturas de pantalla predeterminada la carpeta " "XDG_PICTURES_DIR" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:194 msgid "" "Improve handling of --window-scale, --autofit, --autofit-larger, and " "--autofit-smaller" msgstr "" "Mejora el manejo de las opciones --window-scale, --autofit, --autofit-larger" " y --autofit-smaller" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:198 msgid "Add command line option for setting WM_ROLE" msgstr "Añade una opción a la línea de órdenes para configurar WM_ROLE" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:201 msgid "Add context menu item for removing playlist items" msgstr "" "Añade un elemento al menú contextual para eliminar elementos de la lista de " "reproducción" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:204 msgid "Add context menu item for copying location of playlist items" msgstr "" "Añade un elemento al menú contextual para copiar la ubicación de los " "elementos de la lista de reproducción" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:219 msgid "" "Add option to make skip buttons change playlist entries rather than chapters" msgstr "" "Añade una opción para que los botones de salto seleccionen las entradas de " "la lista de reproducción en lugar de los capítulos" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:223 msgid "Make the file chooser accept non-local locations" msgstr "Hace que el selector de archivos acepte ubicaciones no locales" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:226 msgid "Add right-click menu entry for looping a single file" msgstr "" "Añade una entrada en el menú contextual para reproducir en bucle un único " "archivo" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:229 msgid "Handle property change events for fullscreen and window-scale" msgstr "" "Maneja los eventos de cambio de propiedad para la pantalla completa y la " "escala de la ventana" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:232 msgid "Add option to autohide mouse cursor in windowed mode" msgstr "" "Añade una opción para ocultar automáticamente el cursor del ratón en el modo" " ventana" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:246 msgid "The main window showing the application in action" msgstr "La ventana principal con la aplicación en acción" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:250 msgid "The main window with CSD disabled" msgstr "" "La ventana principal con las decoraciones del lado del cliente desactivadas" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:254 msgid "The main window with playlist open" msgstr "La ventana principal con la lista de reproducción abierta" #: data/io.github.celluloid_player.Celluloid.desktop.in:5 msgid "Multimedia Player" msgstr "Reproductor multimedia" #: data/io.github.celluloid_player.Celluloid.desktop.in:6 msgid "Play movies and videos" msgstr "Reproduce películas y vídeos" #. Translators: Search terms to find this application. Don't translate the #. semicolons! The list MUST also end with a semicolon! #: data/io.github.celluloid_player.Celluloid.desktop.in:17 msgid "Video;Movie;Film;Clip;Series;Player;DVD;TV;Disc;Album;Music;GNOME;mpv;" msgstr "" "vídeo;película;filme;clip;serie;reproductor;DVD;TV;disco;álbum;música; " "GNOME;mpv;" #: data/io.github.celluloid_player.Celluloid.desktop.in:23 msgid "New Window" msgstr "Ventana nueva" #: src/celluloid-application.c:495 msgid "Playing" msgstr "En reproducción" #: src/celluloid-application.c:551 msgid "Show release version" msgstr "Mostrar la versión" #: src/celluloid-application.c:559 msgid "Enqueue" msgstr "A la cola" #: src/celluloid-application.c:567 msgid "Create a new window" msgstr "Crear una nueva ventana" #: src/celluloid-application.c:576 msgid "OPTIONS" msgstr "OPCIONES" #: src/celluloid-application.c:583 msgid "Set the window role" msgstr "Configurar el comportamiento de la ventana" #: src/celluloid-application.c:591 msgid "Don't connect to an already-running instance" msgstr "No conectar a una instancia que ya se esté ejecutando" #: src/celluloid-control-box.c:362 msgid "Pause" msgstr "Pausar" #: src/celluloid-control-box.c:362 src/celluloid-control-box.c:565 msgid "Play" msgstr "Reproducir" #: src/celluloid-control-box.c:568 msgid "Stop" msgstr "Detener" #: src/celluloid-control-box.c:571 msgid "Forward" msgstr "Avanzar" #: src/celluloid-control-box.c:574 msgid "Rewind" msgstr "Rebobinar" #: src/celluloid-control-box.c:577 msgid "Next Chapter" msgstr "Capítulo siguiente" #: src/celluloid-control-box.c:580 msgid "Previous Chapter" msgstr "Capítulo anterior" #: src/celluloid-control-box.c:583 msgid "Loop Playlist" msgstr "Lista de reproducción en bucle" #: src/celluloid-control-box.c:586 msgid "Shuffle Playlist" msgstr "Barajar la lista de reproducción" #: src/celluloid-control-box.c:589 src/celluloid-header-bar.c:91 msgid "Toggle Fullscreen" msgstr "Activar/desactivar la pantalla completa" #: src/celluloid-controller.c:992 src/celluloid-view.c:1558 msgid "Error" msgstr "Error" #: src/celluloid-file-chooser.c:139 src/celluloid-plugins-manager.c:170 msgid "All Files" msgstr "Todos los archivos" #: src/celluloid-file-chooser.c:147 msgid "Media Files" msgstr "Archivos multimedia" #: src/celluloid-file-chooser.c:158 msgid "Audio Files" msgstr "Archivos de audio" #: src/celluloid-file-chooser.c:166 msgid "Video Files" msgstr "Archivos de vídeo" #: src/celluloid-file-chooser.c:174 msgid "Image Files" msgstr "Archivos de imagen" #: src/celluloid-file-chooser.c:184 msgid "Subtitle Files" msgstr "Archivos de subtítulos" #: src/celluloid-menu.c:106 msgid "None" msgstr "Ninguna" #. For simplicity, also dup the default string used when the #. * track has no title. #: src/celluloid-menu.c:121 msgid "Unknown" msgstr "Desconocida" #: src/celluloid-menu.c:154 msgid "_Load External…" msgstr "_Abrir..." #. Disable the menu item by setting the action to something #. * invalid. #: src/celluloid-menu.c:207 msgid "No disc found" msgstr "No se ha encontrado ningún disco" #: src/celluloid-menu.c:235 msgid "_File" msgstr "_Archivo" #: src/celluloid-menu.c:236 src/celluloid-menu.c:318 msgid "_Open…" msgstr "_Abrir..." #: src/celluloid-menu.c:237 src/celluloid-menu.c:319 msgid "Open _Folder…" msgstr "Abrir una _carpeta..." #: src/celluloid-menu.c:238 src/celluloid-menu.c:320 msgid "Open _Location…" msgstr "Abrir una _ubicación..." #: src/celluloid-menu.c:239 msgid "Open _Disc…" msgstr "Abrir un _disco..." #: src/celluloid-menu.c:240 src/celluloid-menu.c:290 msgid "_Save Playlist" msgstr "_Guardar la lista de reproducción..." #: src/celluloid-menu.c:241 src/celluloid-menu.c:323 msgid "_New Window" msgstr "Ventana _nueva" #: src/celluloid-menu.c:242 msgid "_Quit" msgstr "_Salir" #: src/celluloid-menu.c:243 msgid "_Edit" msgstr "_Editar" #: src/celluloid-menu.c:244 src/celluloid-menu.c:296 msgid "_Preferences" msgstr "_Preferencias" #: src/celluloid-menu.c:245 src/celluloid-menu.c:292 msgid "_Video Track" msgstr "Pista de _vídeo" #: src/celluloid-menu.c:246 src/celluloid-menu.c:293 msgid "_Audio Track" msgstr "Pista de _audio" #: src/celluloid-menu.c:247 src/celluloid-menu.c:294 msgid "S_ubtitle Track" msgstr "Pista de _subtítulos" #: src/celluloid-menu.c:248 msgid "_View" msgstr "_Vista" #: src/celluloid-menu.c:249 src/celluloid-menu.c:287 msgid "_Toggle Controls" msgstr "Mostrar/ocultar los _controles" #: src/celluloid-menu.c:250 src/celluloid-menu.c:289 msgid "_Toggle Playlist" msgstr "Mostrar/ocultar la _lista de reproducción" #: src/celluloid-menu.c:251 msgid "_Fullscreen" msgstr "_Pantalla completa" #: src/celluloid-menu.c:252 msgid "_Help" msgstr "Ay_uda" #: src/celluloid-menu.c:253 src/celluloid-menu.c:297 msgid "_Keyboard Shortcuts" msgstr "Atajos de _teclado" #: src/celluloid-menu.c:254 src/celluloid-menu.c:298 msgid "_About Celluloid" msgstr "_Acerca de Celuloide" #: src/celluloid-menu.c:321 msgid "Open _Disc" msgstr "Abrir un _disco" #: src/celluloid-mpv.c:240 #, c-format msgid "Playback was terminated abnormally. Reason: %s." msgstr "La reproducción ha terminado de forma anómala. Razón: %s." #: src/celluloid-open-location-dialog.c:130 msgid "Location:" msgstr "Ubicación:" #: src/celluloid-open-location-dialog.c:136 #: src/celluloid-preferences-dialog.c:401 msgid "_Cancel" msgstr "_Cancelar" #: src/celluloid-open-location-dialog.c:138 msgid "_Open" msgstr "_Abrir" #: src/celluloid-player.c:550 msgid "Failed to apply one or more MPV options." msgstr "No se han podido aplicar una o más opciones de mpv." #: src/celluloid-playlist-widget.c:784 msgid "_Copy Location" msgstr "_Copiar la ubicación" #: src/celluloid-playlist-widget.c:785 msgid "_Remove" msgstr "_Borrar" #: src/celluloid-playlist-widget.c:787 msgid "_Add…" msgstr "_Añadir..." #: src/celluloid-playlist-widget.c:788 msgid "Add _Folder…" msgstr "Añadir una _carpeta..." #: src/celluloid-playlist-widget.c:789 msgid "Add _Location…" msgstr "Añadir una _ubicación..." #: src/celluloid-playlist-widget.c:790 msgid "_Shuffle" msgstr "_Barajar" #: src/celluloid-playlist-widget.c:791 msgid "Loop _File" msgstr " _Archivo en bucle" #: src/celluloid-playlist-widget.c:792 msgid "Loop _Playlist" msgstr "_Lista de reproducción en bucle" #: src/celluloid-playlist-widget.c:933 src/celluloid-shortcuts-window.c:136 msgid "Playlist" msgstr "Lista de reproducción" #: src/celluloid-playlist-widget.c:941 msgid "Playlist is empty" msgstr "La lista de reproducción está vacía" #: src/celluloid-plugins-manager.c:163 src/celluloid-plugins-manager.c:409 msgid "Add Plugin" msgstr "Añadir un complemento" #: src/celluloid-plugins-manager.c:175 msgid "Lua Plugins" msgstr "Complementos Lua" #: src/celluloid-plugins-manager.c:181 msgid "JavaScript Plugins" msgstr "Complementos JavaScript" #: src/celluloid-plugins-manager.c:186 msgid "C Plugins" msgstr "Complementos C" #: src/celluloid-plugins-manager.c:334 #, c-format msgid "Failed to copy file from '%s' to '%s'. Reason: %s" msgstr "No se ha podido copiar el archivo de «%s» a «%s». Razón: %s" #: src/celluloid-plugins-manager.c:385 msgid "No plugins found" msgstr "No se han encontrado complementos" #: src/celluloid-plugins-manager-item.c:79 msgid "Remove" msgstr "Eliminar" #: src/celluloid-plugins-manager-item.c:178 msgid "" "Are you sure you want to remove this script? This action cannot be undone." msgstr "" "¿Seguro que quiere eliminar este guion? Esta acción no se puede deshacer." #: src/celluloid-plugins-manager-item.c:199 #, c-format msgid "Failed to delete file '%s'. Reason: %s" msgstr "No se ha podido eliminar el archivo «%s». Razón: %s" #: src/celluloid-preferences-dialog.c:304 msgid "Automatically resize window to fit video" msgstr "Redimensionar automáticamente la ventana al tamaño del vídeo" #: src/celluloid-preferences-dialog.c:307 msgid "Enable client-side decorations" msgstr "Activar las decoraciones del lado del cliente" #: src/celluloid-preferences-dialog.c:310 msgid "Enable dark theme" msgstr "Activar el tema oscuro" #: src/celluloid-preferences-dialog.c:313 msgid "Use floating controls in windowed mode" msgstr "Usar controles flotantes en el modo ventana" #: src/celluloid-preferences-dialog.c:316 msgid "Autohide mouse cursor in windowed mode" msgstr "Ocultar automáticamente el puntero del ratón en el modo ventana" #: src/celluloid-preferences-dialog.c:319 msgid "Use skip buttons for controlling playlist" msgstr "Usar los botones de salto para controlar la lista de reproducción" #: src/celluloid-preferences-dialog.c:322 msgid "Remember last file's location" msgstr "Recordar la ubicación del último archivo" #: src/celluloid-preferences-dialog.c:327 msgid "Load MPV configuration file" msgstr "Cargar un archivo de configuración de mpv" #: src/celluloid-preferences-dialog.c:330 msgid "MPV configuration file:" msgstr "Archivo de configuración de mpv:" #: src/celluloid-preferences-dialog.c:333 msgid "Load MPV input configuration file" msgstr "Cargar un archivo de configuración de la entrada de mpv" #: src/celluloid-preferences-dialog.c:336 msgid "MPV input configuration file:" msgstr "Archivo de configuración de la entrada de mpv:" #: src/celluloid-preferences-dialog.c:341 msgid "Always open new window" msgstr "Abrir siempre una ventana nueva" #: src/celluloid-preferences-dialog.c:344 msgid "Ignore playback errors" msgstr "Ignorar los errores de reproducción" #: src/celluloid-preferences-dialog.c:347 msgid "Prefetch metadata" msgstr "Precargar los metadatos" #: src/celluloid-preferences-dialog.c:350 msgid "Enable MPRIS support" msgstr "Activar la compatibilidad con MPRIS" #: src/celluloid-preferences-dialog.c:353 msgid "Enable media keys support" msgstr "Activar las teclas multimedia" #: src/celluloid-preferences-dialog.c:356 msgid "Extra MPV options:" msgstr "Opciones extra de mpv:" #: src/celluloid-preferences-dialog.c:389 msgid "Interface" msgstr "Interfaz" #: src/celluloid-preferences-dialog.c:392 msgid "Config Files" msgstr "Archivos de configuración" #: src/celluloid-preferences-dialog.c:395 msgid "Miscellaneous" msgstr "Miscelánea" #: src/celluloid-preferences-dialog.c:398 msgid "Plugins" msgstr "Complementos" #: src/celluloid-preferences-dialog.c:403 msgid "_Save" msgstr "_Guardar" #: src/celluloid-preferences-dialog.c:421 msgid "Preferences" msgstr "Preferencias" #: src/celluloid-shortcuts-window.c:57 msgid "Open file" msgstr "Abrir un archivo" #: src/celluloid-shortcuts-window.c:58 msgid "Open location" msgstr "Abrir una ubicación" #: src/celluloid-shortcuts-window.c:59 msgid "Add file to playlist" msgstr "Añadir un archivo a la lista de reproducción" #: src/celluloid-shortcuts-window.c:60 msgid "Add location to playlist" msgstr "Añadir una ubicación a la lista de reproducción" #: src/celluloid-shortcuts-window.c:61 msgid "Show preferences dialog" msgstr "Mostrar el diálogo de preferencias" #: src/celluloid-shortcuts-window.c:62 msgid "Toggle controls" msgstr "Mostrar/ocultar los controles" #: src/celluloid-shortcuts-window.c:63 msgid "Toggle playlist" msgstr "Mostrar/ocultar la lista de reproducción" #: src/celluloid-shortcuts-window.c:64 msgid "Toggle fullscreen mode" msgstr "Activar/desactivar el modo de pantalla completa" #: src/celluloid-shortcuts-window.c:65 msgid "Leave fullscreen mode" msgstr "Salir del modo de pantalla completa" #: src/celluloid-shortcuts-window.c:66 msgid "Toggle OSD states between normal and playback time/duration" msgstr "Mostrar/ocultar en pantalla el tiempo de reproducción y la duración" #: src/celluloid-shortcuts-window.c:67 msgid "Show filename on the OSD" msgstr "Mostrar en pantalla el nombre del archivo" #: src/celluloid-shortcuts-window.c:68 msgid "Show progress, elapsed time, and duration on the OSD" msgstr "Mostrar en pantalla el progreso, el tiempo transcurrido y la duración" #: src/celluloid-shortcuts-window.c:71 msgid "Seek backward/forward 5 seconds" msgstr "Saltar 5 segundos hacia atrás/adelante" #: src/celluloid-shortcuts-window.c:72 msgid "Exact seek backward/forward 1 second" msgstr "Saltar exactamente 1 segundo hacia atrás/adelante" #: src/celluloid-shortcuts-window.c:73 msgid "Seek backward/forward 1 minute" msgstr "Saltar 1 minuto hacia atrás/adelante" #: src/celluloid-shortcuts-window.c:74 msgid "Exact seek backward/forward 5 seconds" msgstr "Saltar exactamente 5 segundos hacia atrás/adelante" #: src/celluloid-shortcuts-window.c:75 msgid "Seek to previous/next subtitle" msgstr "Saltar a los subtítulos anteriores/siguientes" #: src/celluloid-shortcuts-window.c:76 msgid "Step backward/forward a single frame" msgstr "Retroceder/avanzar un solo fotograma" #: src/celluloid-shortcuts-window.c:77 msgid "Seek to the beginning of the previous/next chapter" msgstr "Saltar al principio del capítulo anterior/siguiente" #: src/celluloid-shortcuts-window.c:80 msgid "Decrease/increase playback speed by 10%" msgstr "Disminuir/aumentar la velocidad de reproducción un 10%" #: src/celluloid-shortcuts-window.c:81 msgid "Halve/double current playback speed" msgstr "Reducir a la mitad o duplicar la velocidad de reproducción" #: src/celluloid-shortcuts-window.c:82 msgid "Reset playback speed to normal" msgstr "Restablecer la velocidad de reproducción" #: src/celluloid-shortcuts-window.c:83 msgid "Go backward/forward in the playlist" msgstr "Retroceder/avanzar en la lista de reproducción" #: src/celluloid-shortcuts-window.c:84 msgid "Remove selected playlist item" msgstr "Borrar el elemento seleccionado de la lista de reproducción" #: src/celluloid-shortcuts-window.c:85 msgid "Save playlist" msgstr "Guardar la lista de reproducción" #: src/celluloid-shortcuts-window.c:86 msgid "Set/clear A-B loop points" msgstr "Fijar/borrar los puntos de bucle A-B" #: src/celluloid-shortcuts-window.c:87 msgid "Toggle infinite looping" msgstr "Activar/desactivar la reproducción en bucle" #: src/celluloid-shortcuts-window.c:88 msgid "Pause or unpause" msgstr "Pausar/reanudar" #: src/celluloid-shortcuts-window.c:89 msgid "Quit" msgstr "Salir" #: src/celluloid-shortcuts-window.c:90 msgid "Save current playback position and quit" msgstr "Guardar la posición de reproducción actual y salir" #: src/celluloid-shortcuts-window.c:93 msgid "Enter search mode" msgstr "Entrar en el modo de búsqueda" #: src/celluloid-shortcuts-window.c:94 msgid "Jump to next match" msgstr "Ir a la coincidencia siguiente" #: src/celluloid-shortcuts-window.c:95 msgid "Jump to previous match" msgstr "Ir a la coincidencia anterior" #: src/celluloid-shortcuts-window.c:96 msgid "Exit search mode" msgstr "Salir del modo de búsqueda" #: src/celluloid-shortcuts-window.c:99 msgid "Cycle through audio tracks" msgstr "Seleccionar la pista de audio siguiente" #: src/celluloid-shortcuts-window.c:100 src/celluloid-shortcuts-window.c:101 msgid "Decrease/increase volume" msgstr "Disminuir/aumentar el volumen" #: src/celluloid-shortcuts-window.c:102 msgid "Mute or unmute" msgstr "Silenciar/activar el sonido" #: src/celluloid-shortcuts-window.c:103 msgid "Adjust audio delay by +/- 0.1 seconds" msgstr "Ajustar el retraso del audio en +/- 0,1 segundos" #: src/celluloid-shortcuts-window.c:106 msgid "Toggle subtitle visibility" msgstr "Mostrar/ocultar los subtítulos" #: src/celluloid-shortcuts-window.c:107 msgid "Cycle through available subtitles" msgstr "Seleccionar los subtítulos siguientes" #: src/celluloid-shortcuts-window.c:108 msgid "Adjust subtitle delay by +/- 0.1 seconds" msgstr "Ajustar el retraso de los subtítulos en +/- 0,1 segundos" #: src/celluloid-shortcuts-window.c:109 msgid "Toggle SSA/ASS subtitles style override" msgstr "Activar/desactivar la anulación del estilo de los subtítulos SSA/ASS " #: src/celluloid-shortcuts-window.c:110 msgid "Move subtitles up/down" msgstr "Mover los subtítulos arriba/abajo" #: src/celluloid-shortcuts-window.c:111 msgid "Toggle VSFilter aspect compatibility mode" msgstr "Activar/desactivar el modo de compatibilidad de aspecto de VSFilter" #: src/celluloid-shortcuts-window.c:114 msgid "Cycle through video tracks" msgstr "Seleccionar la pista de vídeo siguiente" #: src/celluloid-shortcuts-window.c:115 msgid "Decrease/increase pan-and-scan range" msgstr "Disminuir/aumentar el rango de reencuadre (pan and scan)" #: src/celluloid-shortcuts-window.c:116 msgid "Take a screenshot" msgstr "Tomar una captura de pantalla" #: src/celluloid-shortcuts-window.c:117 msgid "Take a screenshot, without subtitles" msgstr "Tomar una captura de pantalla, sin subtítulos" #: src/celluloid-shortcuts-window.c:118 msgid "Take a screenshot, as the window shows it" msgstr "Tomar una captura de pantalla, tal como se muestra en la ventana" #: src/celluloid-shortcuts-window.c:119 msgid "Resize video to half its original size" msgstr "Redimensionar el vídeo a la mitad de su tamaño original" #: src/celluloid-shortcuts-window.c:120 msgid "Resize video to its original size" msgstr "Redimensionar el vídeo a su tamaño original" #: src/celluloid-shortcuts-window.c:121 msgid "Resize video to double its original size" msgstr "Redimensionar el vídeo al doble de su tamaño original" #: src/celluloid-shortcuts-window.c:122 msgid "Adjust contrast" msgstr "Ajustar el contraste" #: src/celluloid-shortcuts-window.c:123 msgid "Adjust brightness" msgstr "Ajustar el brillo" #: src/celluloid-shortcuts-window.c:124 msgid "Adjust gamma" msgstr "Ajustar la correcció gamma" #: src/celluloid-shortcuts-window.c:125 msgid "Adjust saturation" msgstr "Ajustar la saturación" #: src/celluloid-shortcuts-window.c:126 msgid "Activate or deactivate deinterlacer" msgstr "Activar/desactivar el desentrelazado" #: src/celluloid-shortcuts-window.c:127 msgid "Cycle aspect ratio override" msgstr "Seleccionar la relación de aspecto siguiente" #: src/celluloid-shortcuts-window.c:130 msgid "User Interface" msgstr "Interfaz de usuario" #: src/celluloid-shortcuts-window.c:131 msgid "Video" msgstr "Vídeo" #: src/celluloid-shortcuts-window.c:132 msgid "Audio" msgstr "Audio" #: src/celluloid-shortcuts-window.c:133 msgid "Subtitle" msgstr "Subtítulos" #: src/celluloid-shortcuts-window.c:134 msgid "Playback" msgstr "Reproducción" #: src/celluloid-shortcuts-window.c:135 msgid "Seeking" msgstr "Búsqueda" #: src/celluloid-view.c:728 msgid "Load Audio Track…" msgstr "Cargar una pista de audio..." #: src/celluloid-view.c:732 msgid "Load Video Track…" msgstr "Cargar una pista de vídeo..." #: src/celluloid-view.c:736 msgid "Load Subtitle Track…" msgstr "Cargar una pista de subtítulos..." #: src/celluloid-view.c:901 msgid "" "Enabling or disabling client-side decorations requires restarting to take " "effect." msgstr "" "Para activar o desactivar las decoraciones del lado del cliente, es " "necesario reiniciar la aplicación." #: src/celluloid-view.c:1444 msgid "Add Folder to Playlist" msgstr "Añadir una carpeta a la lista de reproducción" #: src/celluloid-view.c:1444 msgid "Open Folder" msgstr "Abrir una carpeta" #: src/celluloid-view.c:1449 msgid "Add File to Playlist" msgstr "Añadir un archivo a la lista de reproducción" #: src/celluloid-view.c:1449 msgid "Open File" msgstr "Abrir un archivo" #: src/celluloid-view.c:1485 msgid "Add Location to Playlist" msgstr "Añadir una ubicación a la lista de reproducción" #: src/celluloid-view.c:1486 msgid "Open Location" msgstr "Abrir una ubicación" #: src/celluloid-view.c:1532 msgid "Save Playlist" msgstr "Guardar la lista de reproducción" #: src/celluloid-view.c:1598 msgid "A GTK frontend for MPV" msgstr "Una interfaz GTK para el reproductor mpv" #: src/celluloid-view.c:1608 msgid "translator-credits" msgstr "" "Toni Estevez, toni.estevez@gmail.com>\n" "Sergio D. Márquez, marquez.sergio.d@gmail.com" celluloid-0.20/po/fa.po000066400000000000000000001036611373135401300147620ustar00rootroot00000000000000# Danial Behzadi , 2019. #zanata # gnome-mpv , 2019. #zanata # gnome-mpv , 2020. #zanata msgid "" msgstr "" "Project-Id-Version: celluloid\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-10-09 19:52+0700\n" "PO-Revision-Date: 2020-06-23 10:48-0400\n" "Last-Translator: Copied by Zanata \n" "Language-Team: Persian\n" "Language: fa\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0\n" "X-Generator: Zanata 4.6.2\n" #: data/io.github.celluloid_player.Celluloid.gschema.xml:11 msgid "" "Whether the settings has already been migrated from the previous version" msgstr "این که تنظمیات از نگارش پیشین مهاجرت داده شده یا نه" #: data/io.github.celluloid_player.Celluloid.gschema.xml:17 #, fuzzy msgid "Whether or not to automatically resize window to fit video" msgstr "این که در حالت پنجره‌ای نشانگر موشی پنهان شود یا نه" #: data/io.github.celluloid_player.Celluloid.gschema.xml:23 msgid "Enable or disable dark theme" msgstr "به یا از کار انداختن زمینهٔ تاریک" #: data/io.github.celluloid_player.Celluloid.gschema.xml:29 msgid "Enable or disable client-side decorations" msgstr "به یا از کار انداختن تزیینات سمت کارخواه" #: data/io.github.celluloid_player.Celluloid.gschema.xml:35 msgid "Whether or not to use floating controls in windowed mode" msgstr "این که در حالت پنجره‌ای از واپایشگرهای شناور استفاده شود یا نه" #: data/io.github.celluloid_player.Celluloid.gschema.xml:41 msgid "Whether or not to autohide mouse cursor in windowed mode" msgstr "این که در حالت پنجره‌ای نشانگر موشی پنهان شود یا نه" #: data/io.github.celluloid_player.Celluloid.gschema.xml:47 msgid "The minimum cursor speed at which floating controls will be unhidden." msgstr "کمینهٔ سرعت نشانگر برای آشکار شدن واپایشگرهای شناور." #: data/io.github.celluloid_player.Celluloid.gschema.xml:54 msgid "" "The size of the dead zone in which cursor movement will not cause the " "controls to be shown." msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:60 msgid "Whether or not to use skip buttons for controlling playlist" msgstr "این که برای واپایش فهرست پخش از دکمه‌های پرش استفاده شود یا نه" #: data/io.github.celluloid_player.Celluloid.gschema.xml:66 msgid "" "Whether or not to make file chooser dialog remember last folder accessed" msgstr "این که گفت‌وگوی گزینشگر پرونده، آخرین شاخه را به خاطر بسپرد یا نه" #: data/io.github.celluloid_player.Celluloid.gschema.xml:72 msgid "Whether or not to create new windows when there is already an instance" msgstr "این که هنگام باز بودن یک اجرا، پنجره‌های جدید گشوده شوند یا نه" #: data/io.github.celluloid_player.Celluloid.gschema.xml:78 #: src/celluloid-application.c:575 msgid "Options to pass to mpv" msgstr "انتخاب‌های داده شده به mpv" #: data/io.github.celluloid_player.Celluloid.gschema.xml:84 msgid "Path to mpv configuration file" msgstr "مسیر پروندهٔ پیکربندی mpv" #: data/io.github.celluloid_player.Celluloid.gschema.xml:90 msgid "Load or don't load mpv configuration file" msgstr "بار کردن یا نکردن پروندهٔ پیکربندی mpv" #: data/io.github.celluloid_player.Celluloid.gschema.xml:96 msgid "Path to mpv input configuration file" msgstr "مسیر پروندهٔ پیکربندی ورودی mpv" #: data/io.github.celluloid_player.Celluloid.gschema.xml:102 msgid "Load or don't load mpv input configuration file" msgstr "بار کردن یا نکردن پروندهٔ پیکربندی ورودی mpv" #: data/io.github.celluloid_player.Celluloid.gschema.xml:108 msgid "Whether or not to enable MPRIS support" msgstr "این که MPIRS به کار انداخته شود یا نه" #: data/io.github.celluloid_player.Celluloid.gschema.xml:114 msgid "" "Whether or not to enable GNOME-Settings-Daemon-based media keys support" msgstr "" "این که پشتیبانی کلیدهای رسانه‌ای مبتنی بر GNOME-Settings-Daemon به کار " "انداخته شود یا نه" #: data/io.github.celluloid_player.Celluloid.gschema.xml:120 msgid "Whether or not to prefetch metadata for non-current playlist entries" msgstr "این که فراداده برای ورودی‌های فهرست پخش ناجاری، پیش‌واکشی شود یا نه" #: data/io.github.celluloid_player.Celluloid.gschema.xml:126 msgid "" "Whether or not to display an error message when playback of a file ends with" " an error" msgstr "" "این که هنگام پخش پرونده‌ای با پایان خطادار، پیام خطایی نشان داده شود یا نه" #: data/io.github.celluloid_player.Celluloid.gschema.xml:132 msgid "Whether or not to inhibit session idling when something is playing" msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:142 msgid "Width of the window" msgstr "پهنای پنجره" #: data/io.github.celluloid_player.Celluloid.gschema.xml:148 msgid "Height of the window" msgstr "بلندای پنجره" #: data/io.github.celluloid_player.Celluloid.gschema.xml:154 msgid "Whether or not the window is maximized" msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:161 msgid "Volume of player" msgstr "حجم پخش‌کننده" #: data/io.github.celluloid_player.Celluloid.gschema.xml:167 msgid "Whether or not to loop when the end of playlist is reached" msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:173 msgid "Width of the playlist" msgstr "پهنای فهرست پخش" #: data/io.github.celluloid_player.Celluloid.gschema.xml:179 msgid "Show or not show the controls" msgstr "نمایش یا عدم نمایش واپایشگرها" #: data/io.github.celluloid_player.Celluloid.gschema.xml:185 msgid "Show or not show the playlist" msgstr "نمایش یا عدم نمایش فهرست پخش" #: data/io.github.celluloid_player.Celluloid.gschema.xml:191 msgid "URI of the last folder accessed" msgstr "نشانی آخرین شاخه" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:7 #: data/io.github.celluloid_player.Celluloid.desktop.in:4 #: src/celluloid-application.c:451 msgid "Celluloid" msgstr "سلولوید" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:8 msgid "GTK+ frontend for mpv" msgstr "پیشانهٔ ‪GTK+‬ برای mpv" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:16 msgid "" "Celluloid is a simple media player that can play virtually all video and " "audio formats. It supports playlists and MPRIS2 media player controls. The " "design of Celluloid follows the GNOME Human Interface Guidelines, but can " "also be adapted for other systems that don't use client-side decorations " "(CSD). It is based on the mpv library and GTK." msgstr "" "سلولوید یک پخش‌کنندهٔ ساده است که می‌تواند تقریباً تمام قالب‌های صوتی و " "تصویری را پخش کند. این برنامه از فهرست‌های پخش و واپایگشرهای پخش‌کنندهٔ " "رسانهٔ MPIRS2 پشتیبانی می‌کند. طرّاحی سلولوید پیرو رهنمودهای رابط انسانی " "گنوم بوده، ولی برای دیگر سامانه‌ها که از تزیینات سمت کارخواه (CSD) استفاده " "نمی‌کنند نیز قابل تطبیق است. این برنامه بر مبنای کتابخانهٔ mpv و GTK است." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:23 msgid "Features:" msgstr "ویژگی‌ها:" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:25 msgid "Drag and drop playlist" msgstr "فهرست پخش با کشش و رهایی" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:26 msgid "Loading external mpv configuration files" msgstr "بار کردن پرونده‌های پیکربندی mpv" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:27 msgid "MPRIS2 D-Bus interface" msgstr "رابط دی‌باس MPIRS2" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:30 msgid "The Celluloid Developers" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:34 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:87 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:117 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:156 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:187 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:215 msgid "This release contains the following changes:" msgstr "این ارائه شامل تغییرات زیر است:" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:38 msgid "" "Adjust the range of volume button based on the value of the volume-max " "property." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:42 msgid "Retain window maximization state across sessions." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:45 msgid "Retain loop state across sessions." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:48 msgid "Implement playlist search." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:51 msgid "Update the list of shortcuts in Keyboard Shortcuts dialog." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:54 msgid "Correctly handle quotes and escape sequences in extra mpv options." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:57 msgid "Display time at cursor position when hovering the seek bar." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:60 msgid "" "Deprecate '--mpv-options'. Options starting with '--mpv-' can be used to set" " mpv options instead. For example, passing '--mpv-vf=vflip' to Celluloid is " "equivalent to passing '--vf=vflip' to mpv." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:66 msgid "" "Add support for configuring dead zone, an area in which mouse movement will " "not cause controls to be shown." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:70 msgid "Make window sizing work correctly with HiDPI displays." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:73 msgid "Add Finnish translation by Kimmo Kujansuu." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:76 msgid "Add Slovenian translation by @bertronika." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:80 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:110 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:149 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:180 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:208 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:236 msgid "This listing is incomplete. See git log for complete changelog." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:91 msgid "Add Persian translation by @danialbehzadi" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:94 msgid "Add Ukranian translation by @vl-nix" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:97 msgid "" "Add support for showing/hiding window decorations using the mpv option " "--border" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:100 msgid "Add menu item for opening discs" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:103 msgid "Block cursor autohide when volume popup is open in windowed mode" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:106 msgid "Fix crash with mpv 0.30" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:121 msgid "Rename project to Celluloid" msgstr "تغییر نام پروژه به سلولوید" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:124 msgid "Add Turkish translation by @TeknoMobil" msgstr "افزودن ترجمهٔ ترکی به دست @TeknoMobil" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:127 msgid "Add Esperanto translation by @F3nd0" msgstr "افزودن ترجمهٔ اسپرانتو به دست @F3nd0" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:130 msgid "Migrate from opengl-cb to the new render API" msgstr "مهاجرت از opengl-cb به API پرداخت جدید" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:133 msgid "Handle numpad keybindings" msgstr "مدیریت ترکیب‌کلیدهای صفحه‌عدد" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:136 msgid "Handle unicode keybindings" msgstr "مدیریت ترکیب‌کلیدهای یونی‌کد" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:139 msgid "Forward media key events to mpv" msgstr "هدایت رویدادهای کلید رسانه به mpv" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:142 msgid "" "Add dconf key for controlling cursor speed at which controls are unhidden" msgstr "افزودن کلید dconf برای واپایش سرعت نشانگر برای آشکارسازی واپایشگرها" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:145 msgid "Add option for suppressing playback errors" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:160 msgid "Split up the General tab in the preferences dialog" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:163 msgid "Improve behavior when toggling playlist under tiling window managers" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:166 msgid "Move app menu items to primary menu" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:169 msgid "Use separate MPRIS DBus connection for each window" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:172 msgid "Add support for MPRIS property LoopStatus" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:175 msgid "" "Add option --mpv-options for setting arbitrary mpv options from the command-" "line" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:191 msgid "Set default screenshot directory to XDG_PICTURES_DIR" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:194 msgid "" "Improve handling of --window-scale, --autofit, --autofit-larger, and " "--autofit-smaller" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:198 msgid "Add command line option for setting WM_ROLE" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:201 msgid "Add context menu item for removing playlist items" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:204 msgid "Add context menu item for copying location of playlist items" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:219 msgid "" "Add option to make skip buttons change playlist entries rather than chapters" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:223 msgid "Make the file chooser accept non-local locations" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:226 msgid "Add right-click menu entry for looping a single file" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:229 msgid "Handle property change events for fullscreen and window-scale" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:232 msgid "Add option to autohide mouse cursor in windowed mode" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:246 msgid "The main window showing the application in action" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:250 msgid "The main window with CSD disabled" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:254 msgid "The main window with playlist open" msgstr "" #: data/io.github.celluloid_player.Celluloid.desktop.in:5 msgid "Multimedia Player" msgstr "پخش‌کنندهٔ رسانه" #: data/io.github.celluloid_player.Celluloid.desktop.in:6 msgid "Play movies and videos" msgstr "پخش فیلم‌ها و ویدیوها" #. Translators: Search terms to find this application. Don't translate the #. semicolons! The list MUST also end with a semicolon! #: data/io.github.celluloid_player.Celluloid.desktop.in:17 msgid "Video;Movie;Film;Clip;Series;Player;DVD;TV;Disc;Album;Music;GNOME;mpv;" msgstr "" "Video;Movie;Film;Clip;Series;Player;DVD;TV;Disc;Album;Music;GNOME;mpv;ویدیو;فیلم;کلیپ;سریال;پخش;دی‌وی‌دی;تلویزیون;سی‌دی;آلبوم;آهنگ;موسیقی;گنوم;" #: data/io.github.celluloid_player.Celluloid.desktop.in:23 msgid "New Window" msgstr "پنجرهٔ جدید" #: src/celluloid-application.c:495 msgid "Playing" msgstr "در حال پخش" #: src/celluloid-application.c:551 msgid "Show release version" msgstr "نمایش نگارش ارائه" #: src/celluloid-application.c:559 msgid "Enqueue" msgstr "صف کردن" #: src/celluloid-application.c:567 msgid "Create a new window" msgstr "ایجاد پنجره‌ای جدید" #: src/celluloid-application.c:576 msgid "OPTIONS" msgstr "گزینه‌ها" #: src/celluloid-application.c:583 msgid "Set the window role" msgstr "تنظیم نقش پنجره" #: src/celluloid-application.c:591 msgid "Don't connect to an already-running instance" msgstr "وصل نشدن به یک نمونهٔ در حال اجرا" #: src/celluloid-control-box.c:362 msgid "Pause" msgstr "مکث" #: src/celluloid-control-box.c:362 src/celluloid-control-box.c:565 msgid "Play" msgstr "پخش" #: src/celluloid-control-box.c:568 msgid "Stop" msgstr "توقّف" #: src/celluloid-control-box.c:571 msgid "Forward" msgstr "جلو" #: src/celluloid-control-box.c:574 msgid "Rewind" msgstr "عقب" #: src/celluloid-control-box.c:577 msgid "Next Chapter" msgstr "فصل بعدی" #: src/celluloid-control-box.c:580 msgid "Previous Chapter" msgstr "فصل پیشین" #: src/celluloid-control-box.c:583 msgid "Loop Playlist" msgstr "فهرست پخش حلقه‌ای" #: src/celluloid-control-box.c:586 msgid "Shuffle Playlist" msgstr "" #: src/celluloid-control-box.c:589 src/celluloid-header-bar.c:91 msgid "Toggle Fullscreen" msgstr "تغییر حالت تمام‌صفحه" #: src/celluloid-controller.c:992 src/celluloid-view.c:1558 msgid "Error" msgstr "خطا" #: src/celluloid-file-chooser.c:139 src/celluloid-plugins-manager.c:170 msgid "All Files" msgstr "تمام پرونده‌‌ها" #: src/celluloid-file-chooser.c:147 msgid "Media Files" msgstr "پرونده‌های رسانه" #: src/celluloid-file-chooser.c:158 msgid "Audio Files" msgstr "پرونده‌های صوتی" #: src/celluloid-file-chooser.c:166 msgid "Video Files" msgstr "پرونده‌های ویدیویی" #: src/celluloid-file-chooser.c:174 msgid "Image Files" msgstr "پرونده‌های تصویر" #: src/celluloid-file-chooser.c:184 msgid "Subtitle Files" msgstr "پرونده‌های زیرنویس" #: src/celluloid-menu.c:106 msgid "None" msgstr "هیچ‌کدام" #. For simplicity, also dup the default string used when the #. * track has no title. #: src/celluloid-menu.c:121 msgid "Unknown" msgstr "ناشناخته" #: src/celluloid-menu.c:154 msgid "_Load External…" msgstr "_بار کردن از بیرون…" #. Disable the menu item by setting the action to something #. * invalid. #: src/celluloid-menu.c:207 msgid "No disc found" msgstr "هیچ دیسکی پیدا نشد" #: src/celluloid-menu.c:235 msgid "_File" msgstr "_پرونده" #: src/celluloid-menu.c:236 src/celluloid-menu.c:318 msgid "_Open…" msgstr "_گشودن…" #: src/celluloid-menu.c:237 src/celluloid-menu.c:319 msgid "Open _Folder…" msgstr "" #: src/celluloid-menu.c:238 src/celluloid-menu.c:320 msgid "Open _Location…" msgstr "گشودن _موقعیت…" #: src/celluloid-menu.c:239 msgid "Open _Disc…" msgstr "گشودن _دیسک…" #: src/celluloid-menu.c:240 src/celluloid-menu.c:290 msgid "_Save Playlist" msgstr "_ذخیرهٔ فهرست پخش" #: src/celluloid-menu.c:241 src/celluloid-menu.c:323 msgid "_New Window" msgstr "پنجرهٔ _جدید" #: src/celluloid-menu.c:242 msgid "_Quit" msgstr "" #: src/celluloid-menu.c:243 msgid "_Edit" msgstr "_ویرایش" #: src/celluloid-menu.c:244 src/celluloid-menu.c:296 msgid "_Preferences" msgstr "_ترجیحات" #: src/celluloid-menu.c:245 src/celluloid-menu.c:292 msgid "_Video Track" msgstr "قطعهٔ _ویدیویی" #: src/celluloid-menu.c:246 src/celluloid-menu.c:293 msgid "_Audio Track" msgstr "قطعهٔ _صوتی" #: src/celluloid-menu.c:247 src/celluloid-menu.c:294 msgid "S_ubtitle Track" msgstr "قطعهٔ _زیرنویس" #: src/celluloid-menu.c:248 msgid "_View" msgstr "_نما" #: src/celluloid-menu.c:249 src/celluloid-menu.c:287 msgid "_Toggle Controls" msgstr "تغییر _حالت واپایشگرها" #: src/celluloid-menu.c:250 src/celluloid-menu.c:289 msgid "_Toggle Playlist" msgstr "تغییر _حالت فهرست پخش" #: src/celluloid-menu.c:251 msgid "_Fullscreen" msgstr "_تمام‌صفحه" #: src/celluloid-menu.c:252 msgid "_Help" msgstr "_راهنما" #: src/celluloid-menu.c:253 src/celluloid-menu.c:297 msgid "_Keyboard Shortcuts" msgstr "_میان‌برهای صفحه‌کلید" #: src/celluloid-menu.c:254 src/celluloid-menu.c:298 msgid "_About Celluloid" msgstr "_دربارهٔ سلولوید" #: src/celluloid-menu.c:321 msgid "Open _Disc" msgstr "گشودن _دیسک" #: src/celluloid-mpv.c:240 #, c-format msgid "Playback was terminated abnormally. Reason: %s." msgstr "" #: src/celluloid-open-location-dialog.c:130 msgid "Location:" msgstr "موقعیت:" #: src/celluloid-open-location-dialog.c:136 #: src/celluloid-preferences-dialog.c:401 msgid "_Cancel" msgstr "_لغو" #: src/celluloid-open-location-dialog.c:138 msgid "_Open" msgstr "_گشودن" #: src/celluloid-player.c:550 msgid "Failed to apply one or more MPV options." msgstr "شکست در اعمال برخی گزینه‌های mpv." #: src/celluloid-playlist-widget.c:784 msgid "_Copy Location" msgstr "_رونوشت از موقعیت" #: src/celluloid-playlist-widget.c:785 msgid "_Remove" msgstr "_برداشتن" #: src/celluloid-playlist-widget.c:787 msgid "_Add…" msgstr "_افزودن…" #: src/celluloid-playlist-widget.c:788 msgid "Add _Folder…" msgstr "" #: src/celluloid-playlist-widget.c:789 msgid "Add _Location…" msgstr "افزودن _موقعیت…" #: src/celluloid-playlist-widget.c:790 msgid "_Shuffle" msgstr "_بر زدن" #: src/celluloid-playlist-widget.c:791 msgid "Loop _File" msgstr "تکرار _پرونده" #: src/celluloid-playlist-widget.c:792 msgid "Loop _Playlist" msgstr "تکرار _فهرست پخش" #: src/celluloid-playlist-widget.c:933 src/celluloid-shortcuts-window.c:136 msgid "Playlist" msgstr "فهرست پخش" #: src/celluloid-playlist-widget.c:941 #, fuzzy msgid "Playlist is empty" msgstr "فهرست پخش" #: src/celluloid-plugins-manager.c:163 src/celluloid-plugins-manager.c:409 msgid "Add Plugin" msgstr "افزودن افزایه" #: src/celluloid-plugins-manager.c:175 msgid "Lua Plugins" msgstr "افزایه‌های Lua" #: src/celluloid-plugins-manager.c:181 msgid "JavaScript Plugins" msgstr "افزایه‌های جاوااسکریپت" #: src/celluloid-plugins-manager.c:186 msgid "C Plugins" msgstr "افزایه‌های سی" #: src/celluloid-plugins-manager.c:334 #, c-format msgid "Failed to copy file from '%s' to '%s'. Reason: %s" msgstr "" #: src/celluloid-plugins-manager.c:385 msgid "No plugins found" msgstr "هیچ افزایه‌ای پیدا نشد" #: src/celluloid-plugins-manager-item.c:79 msgid "Remove" msgstr "برداشتن" #: src/celluloid-plugins-manager-item.c:178 msgid "" "Are you sure you want to remove this script? This action cannot be undone." msgstr "" #: src/celluloid-plugins-manager-item.c:199 #, c-format msgid "Failed to delete file '%s'. Reason: %s" msgstr "" #: src/celluloid-preferences-dialog.c:304 msgid "Automatically resize window to fit video" msgstr "" #: src/celluloid-preferences-dialog.c:307 msgid "Enable client-side decorations" msgstr "به کار انداختن تزیینات سمت کارخواه" #: src/celluloid-preferences-dialog.c:310 msgid "Enable dark theme" msgstr "به کار انداختن زمینهٔ تاریک" #: src/celluloid-preferences-dialog.c:313 msgid "Use floating controls in windowed mode" msgstr "استفاده از واپایشگرهای شناور در حالت پنجره‌ای" #: src/celluloid-preferences-dialog.c:316 msgid "Autohide mouse cursor in windowed mode" msgstr "نهفتن خودکار نشانگر موشی در حالت پنجره‌ای" #: src/celluloid-preferences-dialog.c:319 msgid "Use skip buttons for controlling playlist" msgstr "استفاده از دکمه‌های پرش برای واپایش فهرست پخش" #: src/celluloid-preferences-dialog.c:322 msgid "Remember last file's location" msgstr "به خاطر سپردن موقعیت آخرین پرونده" #: src/celluloid-preferences-dialog.c:327 msgid "Load MPV configuration file" msgstr "بار کردن پروندهٔ پیکربندی mpv" #: src/celluloid-preferences-dialog.c:330 msgid "MPV configuration file:" msgstr " پروندهٔ پیکربندی mpv:" #: src/celluloid-preferences-dialog.c:333 msgid "Load MPV input configuration file" msgstr "بار کردن پروندهٔ پیکربندی ورودی mpv" #: src/celluloid-preferences-dialog.c:336 msgid "MPV input configuration file:" msgstr " پروندهٔ پیکربندی ورودی mpv:" #: src/celluloid-preferences-dialog.c:341 msgid "Always open new window" msgstr "گشودن همیشگی پنجرهٔ جدید" #: src/celluloid-preferences-dialog.c:344 msgid "Ignore playback errors" msgstr "چشم‌پوشی از خطاهای پخش" #: src/celluloid-preferences-dialog.c:347 msgid "Prefetch metadata" msgstr "پیش‌واکشی فراداده" #: src/celluloid-preferences-dialog.c:350 msgid "Enable MPRIS support" msgstr "به کار انداختن پشتیبانی MPRIS" #: src/celluloid-preferences-dialog.c:353 msgid "Enable media keys support" msgstr "به کار انداختن پشتبانی کلیدهای رسانه" #: src/celluloid-preferences-dialog.c:356 msgid "Extra MPV options:" msgstr "گزینه‌های اضافی mpv:" #: src/celluloid-preferences-dialog.c:389 msgid "Interface" msgstr "رابط" #: src/celluloid-preferences-dialog.c:392 msgid "Config Files" msgstr "پرونده‌های پیکربندی" #: src/celluloid-preferences-dialog.c:395 msgid "Miscellaneous" msgstr "متفرّقه" #: src/celluloid-preferences-dialog.c:398 msgid "Plugins" msgstr "افزایه‌ها" #: src/celluloid-preferences-dialog.c:403 msgid "_Save" msgstr "_ذخیره" #: src/celluloid-preferences-dialog.c:421 msgid "Preferences" msgstr "ترجیحات" #: src/celluloid-shortcuts-window.c:57 msgid "Open file" msgstr "گشودن پرونده" #: src/celluloid-shortcuts-window.c:58 msgid "Open location" msgstr "گشودن موقعیت" #: src/celluloid-shortcuts-window.c:59 msgid "Add file to playlist" msgstr "افزودن پرونده به فهرست پخش" #: src/celluloid-shortcuts-window.c:60 msgid "Add location to playlist" msgstr "افزودن موقعیت به فهرست پخش" #: src/celluloid-shortcuts-window.c:61 msgid "Show preferences dialog" msgstr "نمایش گفت‌وگوی ترجیحات" #: src/celluloid-shortcuts-window.c:62 msgid "Toggle controls" msgstr "تغییر حالت واپایشگرها" #: src/celluloid-shortcuts-window.c:63 msgid "Toggle playlist" msgstr "تغییر حالت فهرست پخش" #: src/celluloid-shortcuts-window.c:64 msgid "Toggle fullscreen mode" msgstr "تغییر حالت تمام‌صفحه" #: src/celluloid-shortcuts-window.c:65 msgid "Leave fullscreen mode" msgstr "خروجی از حالت تمام‌صفحه" #: src/celluloid-shortcuts-window.c:66 msgid "Toggle OSD states between normal and playback time/duration" msgstr "" #: src/celluloid-shortcuts-window.c:67 msgid "Show filename on the OSD" msgstr "" #: src/celluloid-shortcuts-window.c:68 msgid "Show progress, elapsed time, and duration on the OSD" msgstr "" #: src/celluloid-shortcuts-window.c:71 msgid "Seek backward/forward 5 seconds" msgstr "" #: src/celluloid-shortcuts-window.c:72 msgid "Exact seek backward/forward 1 second" msgstr "" #: src/celluloid-shortcuts-window.c:73 msgid "Seek backward/forward 1 minute" msgstr "" #: src/celluloid-shortcuts-window.c:74 msgid "Exact seek backward/forward 5 seconds" msgstr "" #: src/celluloid-shortcuts-window.c:75 msgid "Seek to previous/next subtitle" msgstr "" #: src/celluloid-shortcuts-window.c:76 msgid "Step backward/forward a single frame" msgstr "" #: src/celluloid-shortcuts-window.c:77 msgid "Seek to the beginning of the previous/next chapter" msgstr "" #: src/celluloid-shortcuts-window.c:80 msgid "Decrease/increase playback speed by 10%" msgstr "" #: src/celluloid-shortcuts-window.c:81 msgid "Halve/double current playback speed" msgstr "" #: src/celluloid-shortcuts-window.c:82 msgid "Reset playback speed to normal" msgstr "" #: src/celluloid-shortcuts-window.c:83 msgid "Go backward/forward in the playlist" msgstr "" #: src/celluloid-shortcuts-window.c:84 msgid "Remove selected playlist item" msgstr "" #: src/celluloid-shortcuts-window.c:85 msgid "Save playlist" msgstr "" #: src/celluloid-shortcuts-window.c:86 msgid "Set/clear A-B loop points" msgstr "" #: src/celluloid-shortcuts-window.c:87 msgid "Toggle infinite looping" msgstr "" #: src/celluloid-shortcuts-window.c:88 msgid "Pause or unpause" msgstr "" #: src/celluloid-shortcuts-window.c:89 msgid "Quit" msgstr "" #: src/celluloid-shortcuts-window.c:90 msgid "Save current playback position and quit" msgstr "" #: src/celluloid-shortcuts-window.c:93 msgid "Enter search mode" msgstr "" #: src/celluloid-shortcuts-window.c:94 msgid "Jump to next match" msgstr "" #: src/celluloid-shortcuts-window.c:95 msgid "Jump to previous match" msgstr "" #: src/celluloid-shortcuts-window.c:96 msgid "Exit search mode" msgstr "" #: src/celluloid-shortcuts-window.c:99 msgid "Cycle through audio tracks" msgstr "" #: src/celluloid-shortcuts-window.c:100 src/celluloid-shortcuts-window.c:101 msgid "Decrease/increase volume" msgstr "" #: src/celluloid-shortcuts-window.c:102 msgid "Mute or unmute" msgstr "" #: src/celluloid-shortcuts-window.c:103 msgid "Adjust audio delay by +/- 0.1 seconds" msgstr "" #: src/celluloid-shortcuts-window.c:106 msgid "Toggle subtitle visibility" msgstr "" #: src/celluloid-shortcuts-window.c:107 msgid "Cycle through available subtitles" msgstr "" #: src/celluloid-shortcuts-window.c:108 msgid "Adjust subtitle delay by +/- 0.1 seconds" msgstr "" #: src/celluloid-shortcuts-window.c:109 msgid "Toggle SSA/ASS subtitles style override" msgstr "" #: src/celluloid-shortcuts-window.c:110 msgid "Move subtitles up/down" msgstr "" #: src/celluloid-shortcuts-window.c:111 msgid "Toggle VSFilter aspect compatibility mode" msgstr "" #: src/celluloid-shortcuts-window.c:114 msgid "Cycle through video tracks" msgstr "" #: src/celluloid-shortcuts-window.c:115 msgid "Decrease/increase pan-and-scan range" msgstr "" #: src/celluloid-shortcuts-window.c:116 msgid "Take a screenshot" msgstr "نماگرفت" #: src/celluloid-shortcuts-window.c:117 msgid "Take a screenshot, without subtitles" msgstr "" #: src/celluloid-shortcuts-window.c:118 msgid "Take a screenshot, as the window shows it" msgstr "" #: src/celluloid-shortcuts-window.c:119 msgid "Resize video to half its original size" msgstr "" #: src/celluloid-shortcuts-window.c:120 msgid "Resize video to its original size" msgstr "" #: src/celluloid-shortcuts-window.c:121 msgid "Resize video to double its original size" msgstr "" #: src/celluloid-shortcuts-window.c:122 msgid "Adjust contrast" msgstr "" #: src/celluloid-shortcuts-window.c:123 msgid "Adjust brightness" msgstr "" #: src/celluloid-shortcuts-window.c:124 msgid "Adjust gamma" msgstr "" #: src/celluloid-shortcuts-window.c:125 msgid "Adjust saturation" msgstr "" #: src/celluloid-shortcuts-window.c:126 msgid "Activate or deactivate deinterlacer" msgstr "" #: src/celluloid-shortcuts-window.c:127 msgid "Cycle aspect ratio override" msgstr "" #: src/celluloid-shortcuts-window.c:130 msgid "User Interface" msgstr "رابط کاربری" #: src/celluloid-shortcuts-window.c:131 msgid "Video" msgstr "ویدیو" #: src/celluloid-shortcuts-window.c:132 msgid "Audio" msgstr "صدا" #: src/celluloid-shortcuts-window.c:133 msgid "Subtitle" msgstr "زیرنویس" #: src/celluloid-shortcuts-window.c:134 msgid "Playback" msgstr "پخش" #: src/celluloid-shortcuts-window.c:135 msgid "Seeking" msgstr "رسیدن" #: src/celluloid-view.c:728 msgid "Load Audio Track…" msgstr "بار کردن قطعهٔ صوتی…" #: src/celluloid-view.c:732 msgid "Load Video Track…" msgstr "" #: src/celluloid-view.c:736 msgid "Load Subtitle Track…" msgstr "بار کردن قطعهٔ زیرنویس…" #: src/celluloid-view.c:901 msgid "" "Enabling or disabling client-side decorations requires restarting to take " "effect." msgstr "" #: src/celluloid-view.c:1444 msgid "Add Folder to Playlist" msgstr "" #: src/celluloid-view.c:1444 msgid "Open Folder" msgstr "" #: src/celluloid-view.c:1449 msgid "Add File to Playlist" msgstr "افزودن پرونده به فهرست پخش" #: src/celluloid-view.c:1449 msgid "Open File" msgstr "گشودن پرونده" #: src/celluloid-view.c:1485 msgid "Add Location to Playlist" msgstr "افزودن موقعیت به فهرست پخش" #: src/celluloid-view.c:1486 msgid "Open Location" msgstr "گشودن موقعیت" #: src/celluloid-view.c:1532 msgid "Save Playlist" msgstr "ذخیرهٔ فهرست پخش" #: src/celluloid-view.c:1598 msgid "A GTK frontend for MPV" msgstr "یک پیشانهٔ ‪GTK‬ برای mpv" #: src/celluloid-view.c:1608 msgid "translator-credits" msgstr "دانیال بهزادی " celluloid-0.20/po/fi.po000066400000000000000000001105361373135401300147710ustar00rootroot00000000000000# Kimmo Kujansuu , 2019. #zanata # Jiri Grönroos , 2020. #zanata # Kimmo Kujansuu , 2020. #zanata msgid "" msgstr "" "Project-Id-Version: celluloid\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-12-12 23:48+0700\n" "PO-Revision-Date: 2020-08-24 07:18-0400\n" "Last-Translator: Kimmo Kujansuu \n" "Language-Team: Finnish\n" "Language: fi\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" "X-Generator: Zanata 4.6.2\n" #: data/io.github.celluloid_player.Celluloid.gschema.xml:11 msgid "" "Whether the settings has already been migrated from the previous version" msgstr "Onko asetukset jo siirretty edellisestä versiosta" #: data/io.github.celluloid_player.Celluloid.gschema.xml:17 msgid "Whether or not to automatically resize window to fit video" msgstr "Muuttaako ikkuna automaattisesti videon kokoa" #: data/io.github.celluloid_player.Celluloid.gschema.xml:23 msgid "Enable or disable dark theme" msgstr "Ota tumma teema käyttöön tai poista se käytöstä" #: data/io.github.celluloid_player.Celluloid.gschema.xml:29 msgid "Enable or disable client-side decorations" msgstr "Asiakaspuolen ikkunatehosteet käyttöön tai pois" #: data/io.github.celluloid_player.Celluloid.gschema.xml:35 msgid "Whether or not to use floating controls in windowed mode" msgstr "Käytetäänkö kelluvia säätimiä ikkunatilassa" #: data/io.github.celluloid_player.Celluloid.gschema.xml:41 msgid "Whether or not to autohide mouse cursor in windowed mode" msgstr "Haluatko piilottaa hiiren osoittimen automaattisesti ikkuna-tilassa" #: data/io.github.celluloid_player.Celluloid.gschema.xml:47 msgid "The minimum cursor speed at which floating controls will be unhidden." msgstr "Kohdistimen miniminopeus, jolla kelluvat säätimet ovat piilossa." #: data/io.github.celluloid_player.Celluloid.gschema.xml:54 msgid "" "The size of the dead zone in which cursor movement will not cause the " "controls to be shown." msgstr "" "Vyöhykkeen koko, jossa hiiren liike ei nosta ohjauksen kuvakkeita näkyviin." #: data/io.github.celluloid_player.Celluloid.gschema.xml:60 msgid "Whether or not to use skip buttons for controlling playlist" msgstr "Käytäkö ohituspainikkeita soittolistan ohjaamiseen" #: data/io.github.celluloid_player.Celluloid.gschema.xml:66 msgid "" "Whether or not to make file chooser dialog remember last folder accessed" msgstr "Muistaako tiedostonvalinta viimeksi käytetyn kansion" #: data/io.github.celluloid_player.Celluloid.gschema.xml:72 msgid "Whether or not to create new windows when there is already an instance" msgstr "Luodaanko uusia ikkunoita, kun esiintymä on jo olemassa" #: data/io.github.celluloid_player.Celluloid.gschema.xml:78 #: src/celluloid-application.c:575 msgid "Options to pass to mpv" msgstr "Vaihtoehdot siirtyä MPV:hen" #: data/io.github.celluloid_player.Celluloid.gschema.xml:84 msgid "Path to mpv configuration file" msgstr "Polku MPV-asetustiedostoon" #: data/io.github.celluloid_player.Celluloid.gschema.xml:90 msgid "Load or don't load mpv configuration file" msgstr "Lataa tai älä lataa MPV-asetustiedostoa" #: data/io.github.celluloid_player.Celluloid.gschema.xml:96 msgid "Path to mpv input configuration file" msgstr "Polku MPV-sisääntulon asetustiedostoon" #: data/io.github.celluloid_player.Celluloid.gschema.xml:102 msgid "Load or don't load mpv input configuration file" msgstr "Lataa tai älä lataa MPV-sisääntulon asetustiedostoa" #: data/io.github.celluloid_player.Celluloid.gschema.xml:108 msgid "Whether or not to enable MPRIS support" msgstr "Otetaanko MPRIS-tuki käyttöön vai ei" #: data/io.github.celluloid_player.Celluloid.gschema.xml:114 msgid "" "Whether or not to enable GNOME-Settings-Daemon-based media keys support" msgstr "" "Otetaanko GNOME-asetukset palveluun pohjautuva medianäppäintuki käyttöön vai" " ei" #: data/io.github.celluloid_player.Celluloid.gschema.xml:120 msgid "Whether or not to prefetch metadata for non-current playlist entries" msgstr "Haluatko esinoutaa muidekin kuin nykyisten soittolistojen metatiedot" #: data/io.github.celluloid_player.Celluloid.gschema.xml:126 msgid "" "Whether or not to display an error message when playback of a file ends with" " an error" msgstr "Näytetäänkö virheilmoitus, kun tiedoston toisto päättyy virheeseen" #: data/io.github.celluloid_player.Celluloid.gschema.xml:132 msgid "Whether or not to inhibit session idling when something is playing" msgstr "Estetäänkö istunnon joutokäynti kun jotain soitetaan" #: data/io.github.celluloid_player.Celluloid.gschema.xml:142 msgid "Width of the window" msgstr "Ikkunan leveys" #: data/io.github.celluloid_player.Celluloid.gschema.xml:148 msgid "Height of the window" msgstr "Ikkunan korkeus" #: data/io.github.celluloid_player.Celluloid.gschema.xml:154 msgid "Whether or not the window is maximized" msgstr "Onko ikkuna on maksimoitu vai ei" #: data/io.github.celluloid_player.Celluloid.gschema.xml:161 msgid "Volume of player" msgstr "Soittimen äänenvoimakkuus" #: data/io.github.celluloid_player.Celluloid.gschema.xml:167 msgid "Whether or not to loop when the end of playlist is reached" msgstr "Käytetäänkö looppitoimintoa soittolistan lopun saavuttua" #: data/io.github.celluloid_player.Celluloid.gschema.xml:173 msgid "Width of the playlist" msgstr "Soittolistan laajuus" #: data/io.github.celluloid_player.Celluloid.gschema.xml:179 msgid "Show or not show the controls" msgstr "Näytetäänkö säätimet" #: data/io.github.celluloid_player.Celluloid.gschema.xml:185 msgid "Show or not show the playlist" msgstr "Näytetäänkö soittolista" #: data/io.github.celluloid_player.Celluloid.gschema.xml:191 msgid "URI of the last folder accessed" msgstr "Viimeksi käytettyjen kansioiden sijainti" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:7 #: data/io.github.celluloid_player.Celluloid.desktop.in:4 #: src/celluloid-application.c:451 msgid "Celluloid" msgstr "Celluloid" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:8 msgid "GTK+ frontend for mpv" msgstr "GTK+-käyttöliittymä MPV:lle" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:16 msgid "" "Celluloid is a simple media player that can play virtually all video and " "audio formats. It supports playlists and MPRIS2 media player controls. The " "design of Celluloid follows the GNOME Human Interface Guidelines, but can " "also be adapted for other systems that don't use client-side decorations " "(CSD). It is based on the mpv library and GTK." msgstr "" "Celluloid on yksinkertainen mediasoitin, joka voi toistaa käytännössä kaikki" " video- ja äänimuodot. Se tukee soittolistoja ja MPRIS2-mediasoittimen " "ohjaimia. Celluloidin suunnittelu noudattaa GNOME Human Interface -ohjeita, " "mutta sitä voidaan mukauttaa myös muihin järjestelmiin, jotka eivät käytä " "ikkunatehosteita (CSD). Se perustuu MPV-kirjastoon ja GTK:hon." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:23 msgid "Features:" msgstr "Ominaisuudet:" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:25 msgid "Drag and drop playlist" msgstr "Vedä ja pudota soittolista" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:26 msgid "Loading external mpv configuration files" msgstr "Ladataan ulkoisia MPV-asetustiedostoja" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:27 msgid "MPRIS2 D-Bus interface" msgstr "MPRIS2 -D-Bus-liitäntä" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:30 msgid "The Celluloid Developers" msgstr "Celluloid-kehittäjät" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:34 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:87 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:117 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:156 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:187 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:215 msgid "This release contains the following changes:" msgstr "Tämä julkaisu sisältää seuraavat muutokset:" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:38 msgid "" "Adjust the range of volume button based on the value of the volume-max " "property." msgstr "Säädä painikkeen aluetta äänenvoimakkuuden enimmäisarvon mukaan." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:42 msgid "Retain window maximization state across sessions." msgstr "Säilytä ikkunan maksimitila istuntojen välillä." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:45 msgid "Retain loop state across sessions." msgstr "Säilytä toisto tauotta koko istunnon ajan." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:48 msgid "Implement playlist search." msgstr "Ota soittolistan haku käyttöön." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:51 msgid "Update the list of shortcuts in Keyboard Shortcuts dialog." msgstr "Päivitä pikanäppäinten luettelo pikanäppäimet-valintaikkunassa." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:54 msgid "Correctly handle quotes and escape sequences in extra mpv options." msgstr "Käsitelle oikein lainaumerkkejä ja erikoismerkkejä MPV valinnoissa." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:57 msgid "Display time at cursor position when hovering the seek bar." msgstr "Näytä aika kohdistimessa kun siirrät hakupalkkia." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:60 msgid "" "Deprecate '--mpv-options'. Options starting with '--mpv-' can be used to set" " mpv options instead. For example, passing '--mpv-vf=vflip' to Celluloid is " "equivalent to passing '--vf=vflip' to mpv." msgstr "" "Jätä väliin '--mpv-options'. Asetukset, jotka alkavat '--mpv-' voidaan " "asettaa mpv-asetusten sen sijaan. Esimerkiksi, '--mpv-vf=vflip' on " "Celluloidin vastaava ohitus '--vf=vflip' mpv:n tilalle." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:66 msgid "" "Add support for configuring dead zone, an area in which mouse movement will " "not cause controls to be shown." msgstr "" "Lisää tuki kuolleiden alueiden määrittämiselle. Alue, jolla hiiren " "liikkuminen ei aiheuta ohjauksen kuvakkeita näkyviin." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:70 msgid "Make window sizing work correctly with HiDPI displays." msgstr "Tee ikkunoiden mitoitus oikein HiDPI-näytöillä." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:73 msgid "Add Finnish translation by Kimmo Kujansuu." msgstr "Lisätty Suomi kielipaketti lähettäjä Kimmo Kujansuu" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:76 msgid "Add Slovenian translation by @bertronika." msgstr "Lisätty Slovenian kielipaketti lähettäjä @bertronika." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:80 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:110 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:149 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:180 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:208 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:236 msgid "This listing is incomplete. See git log for complete changelog." msgstr "Tämä luettelo on puutteellinen. Katso täydellinen git-muutosloki." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:91 msgid "Add Persian translation by @danialbehzadi" msgstr "Lisätty Persian kielipaketti lähettäjä @danialbehzadi" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:94 msgid "Add Ukranian translation by @vl-nix" msgstr "Lisätty Ukrainan kielipaketti lähettäjä @vl-nix" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:97 msgid "" "Add support for showing/hiding window decorations using the mpv option " "--border" msgstr "" "Lisätty tuki ikkunatehosteiden näyttämistä/piilottamista varten MPV-" "asetuksella --border" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:100 msgid "Add menu item for opening discs" msgstr "Lisätty valikkoon kohta levyjen avaamista varten" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:103 msgid "Block cursor autohide when volume popup is open in windowed mode" msgstr "" "Estetty kohdistimen automaattinen piilottaminen, kun äänenvoimakkuuden " "ponnahdusikkuna on avattu" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:106 msgid "Fix crash with mpv 0.30" msgstr "Kaatuminen korjattu versiossa MPV 0.30" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:121 msgid "Rename project to Celluloid" msgstr "Projekti nimetty Celluloid:ksi" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:124 msgid "Add Turkish translation by @TeknoMobil" msgstr "Lisätty Turkkilainen kielipaketti lähettäjä @TeknoMobil" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:127 msgid "Add Esperanto translation by @F3nd0" msgstr "Lisätty Esperanto kielipaketti lähettäjä @F3nd0" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:130 msgid "Migrate from opengl-cb to the new render API" msgstr "Siirrytty OpenGL-CB -muodosta uuteen renderöinti API-liittymään" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:133 msgid "Handle numpad keybindings" msgstr "Osaa numeronäppäimistön painikkeet" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:136 msgid "Handle unicode keybindings" msgstr "Osaa unicode -painikkeet" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:139 msgid "Forward media key events to mpv" msgstr "Välittää medianäppäinten avaintoiminnot MPV:hen" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:142 msgid "" "Add dconf key for controlling cursor speed at which controls are unhidden" msgstr "" "Lisää dconf -avaimen kohdistimen nopeuden hallintaan, kun säätimet ovat " "piilossa" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:145 msgid "Add option for suppressing playback errors" msgstr "Lisää vaihtoehdon toistovirheiden estämiseksi" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:160 msgid "Split up the General tab in the preferences dialog" msgstr "Jakaa välilehden Yleinen asetukset-valintaikkunassa" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:163 msgid "Improve behavior when toggling playlist under tiling window managers" msgstr "" "Parantaa käyttäytymistä, kun soittolistat voidaan kytkeä vierekkäin " "ikkunanhallinan alla" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:166 msgid "Move app menu items to primary menu" msgstr "Siirrä sovelluksen valikkokohteet päävalikkoon" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:169 msgid "Use separate MPRIS DBus connection for each window" msgstr "Käytä erillistä MPRIS DBus -yhteyttä jokaiseen ikkunaan" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:172 msgid "Add support for MPRIS property LoopStatus" msgstr "Lisää tuki MPRIS -ominaisuus Loop -silmukan tilaksi" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:175 msgid "" "Add option --mpv-options for setting arbitrary mpv options from the command-" "line" msgstr "" "Lisää optio --mpv -optio asettaa satunnaiset mpv-asetukset komentoriviltä" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:191 msgid "Set default screenshot directory to XDG_PICTURES_DIR" msgstr "Aseta oletus kuvakaappauksen hakemistoon XDG_PICTURES_DIR" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:194 msgid "" "Improve handling of --window-scale, --autofit, --autofit-larger, and " "--autofit-smaller" msgstr "" "Paranna käsittelyä --window-scale, --autofit, --autofit-larger, ja " "--autofit-smaller" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:198 msgid "Add command line option for setting WM_ROLE" msgstr "Lisää komentorivivalinta WM_ROLE -asetukseksi" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:201 msgid "Add context menu item for removing playlist items" msgstr "Lisää pikavalikko soittolistan kohteiden poistamista varten" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:204 msgid "Add context menu item for copying location of playlist items" msgstr "Lisää pikavalikko kopioidaksesi soittolistan kohteiden sijainnin" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:219 msgid "" "Add option to make skip buttons change playlist entries rather than chapters" msgstr "" "Lisää vaihtoehto, jotta ohituspainikkeet muuttavat soittolistan merkintöjä " "lukujen sijasta" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:223 msgid "Make the file chooser accept non-local locations" msgstr "" "Varmista, että tiedoston valitsin hyväksyy muut kuin paikalliset sijainnit" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:226 msgid "Add right-click menu entry for looping a single file" msgstr "" "Lisää hiiren kakkospainikkeella merkintä yksittäisen kappaleen silmukointi" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:229 msgid "Handle property change events for fullscreen and window-scale" msgstr "Muuttaa koko näytön ja ikkunan mittakaavan tapahtumia" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:232 msgid "Add option to autohide mouse cursor in windowed mode" msgstr "" "Lisää vaihtoehto hiiren kohdistimen automaattiseen piilottamiseen " "ikkunatilassa" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:246 msgid "The main window showing the application in action" msgstr "Pääikkuna, joka näyttää sovelluksen olevan toiminnassa" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:250 msgid "The main window with CSD disabled" msgstr "Pääikkuna, jossa CSD on poistettu käytöstä" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:254 msgid "The main window with playlist open" msgstr "Pääikkuna, jossa soittolista on auki" #: data/io.github.celluloid_player.Celluloid.desktop.in:5 msgid "Multimedia Player" msgstr "Multimediasoitin" #: data/io.github.celluloid_player.Celluloid.desktop.in:6 msgid "Play movies and videos" msgstr "Toista elokuvia ja videoita" #. Translators: Search terms to find this application. Don't translate the #. semicolons! The list MUST also end with a semicolon! #: data/io.github.celluloid_player.Celluloid.desktop.in:17 msgid "Video;Movie;Film;Clip;Series;Player;DVD;TV;Disc;Album;Music;GNOME;mpv;" msgstr "" "Video;Movie;Film;Clip;Series;Player;DVD;TV;Disc;Album;Music;GNOME;mpv;Elokuva;Filmi;Sarja;Soitto;Musiikki;" #: data/io.github.celluloid_player.Celluloid.desktop.in:23 msgid "New Window" msgstr "Uusi ikkuna" #: src/celluloid-application.c:495 msgid "Playing" msgstr "Soitetaan" #: src/celluloid-application.c:551 msgid "Show release version" msgstr "Näytä julkaisuversio" #: src/celluloid-application.c:559 msgid "Enqueue" msgstr "Jonoon" #: src/celluloid-application.c:567 msgid "Create a new window" msgstr "Luo uusi ikkuna" #: src/celluloid-application.c:576 msgid "OPTIONS" msgstr "VAIHTOEHDOT" #: src/celluloid-application.c:583 msgid "Set the window role" msgstr "Määritä ikkunan rooli" #: src/celluloid-application.c:591 msgid "Don't connect to an already-running instance" msgstr "Älä muodosta yhteyttä jo käynnissä olevaan tapaukseen" #: src/celluloid-control-box.c:362 msgid "Pause" msgstr "Tauko" #: src/celluloid-control-box.c:362 src/celluloid-control-box.c:565 msgid "Play" msgstr "Toista" #: src/celluloid-control-box.c:568 msgid "Stop" msgstr "Pysäytä" #: src/celluloid-control-box.c:571 msgid "Forward" msgstr "Eteenpäin" #: src/celluloid-control-box.c:574 msgid "Rewind" msgstr "Taaksepäin" #: src/celluloid-control-box.c:577 msgid "Next Chapter" msgstr "Seuraava kappale" #: src/celluloid-control-box.c:580 msgid "Previous Chapter" msgstr "Edellinen kappale" #: src/celluloid-control-box.c:583 msgid "Loop Playlist" msgstr "Toista soittolistaa tauotta" #: src/celluloid-control-box.c:586 msgid "Shuffle Playlist" msgstr "Sekoita soittolista" #: src/celluloid-control-box.c:589 src/celluloid-header-bar.c:91 msgid "Toggle Fullscreen" msgstr "Koko näytön tila päällä/pois" #: src/celluloid-controller.c:992 src/celluloid-view.c:1558 msgid "Error" msgstr "Virhe" #: src/celluloid-file-chooser.c:139 src/celluloid-plugins-manager.c:170 msgid "All Files" msgstr "Kaikki tiedostot" #: src/celluloid-file-chooser.c:147 msgid "Media Files" msgstr "Mediatiedostot" #: src/celluloid-file-chooser.c:158 msgid "Audio Files" msgstr "Äänitiedostot" #: src/celluloid-file-chooser.c:166 msgid "Video Files" msgstr "Videotiedostot " #: src/celluloid-file-chooser.c:174 msgid "Image Files" msgstr "Kuvatiedostot " #: src/celluloid-file-chooser.c:184 msgid "Subtitle Files" msgstr "Tekstitystiedostot" #: src/celluloid-menu.c:106 msgid "None" msgstr "Ei mitään" #. For simplicity, also dup the default string used when the #. * track has no title. #: src/celluloid-menu.c:121 msgid "Unknown" msgstr "Tuntematon" #: src/celluloid-menu.c:154 msgid "_Load External…" msgstr "_Lataa ulkoinen…" #. Disable the menu item by setting the action to something #. * invalid. #: src/celluloid-menu.c:207 msgid "No disc found" msgstr "Levyä ei löytynyt" #: src/celluloid-menu.c:235 msgid "_File" msgstr "_Tiedosto" #: src/celluloid-menu.c:236 src/celluloid-menu.c:318 msgid "_Open…" msgstr "_Avaa..." #: src/celluloid-menu.c:237 src/celluloid-menu.c:319 msgid "Open _Folder…" msgstr "Avaa _kansio…" #: src/celluloid-menu.c:238 src/celluloid-menu.c:320 msgid "Open _Location…" msgstr "Avaa _sijainti..." #: src/celluloid-menu.c:239 msgid "Open _Disc…" msgstr "Avaa _levy..." #: src/celluloid-menu.c:240 src/celluloid-menu.c:290 msgid "_Save Playlist" msgstr "_Tallenna soittolista" #: src/celluloid-menu.c:241 src/celluloid-menu.c:323 msgid "_New Window" msgstr "_Uusi ikkuna" #: src/celluloid-menu.c:242 msgid "_Quit" msgstr "_Lopeta" #: src/celluloid-menu.c:243 msgid "_Edit" msgstr "_Muokkaa" #: src/celluloid-menu.c:244 src/celluloid-menu.c:296 msgid "_Preferences" msgstr "_Asetukset" #: src/celluloid-menu.c:245 src/celluloid-menu.c:292 msgid "_Video Track" msgstr "_Videoraita" #: src/celluloid-menu.c:246 src/celluloid-menu.c:293 msgid "_Audio Track" msgstr "_Ääniraita" #: src/celluloid-menu.c:247 src/celluloid-menu.c:294 msgid "S_ubtitle Track" msgstr "T_ekstitysraita" #: src/celluloid-menu.c:248 msgid "_View" msgstr "_Näytä" #: src/celluloid-menu.c:249 src/celluloid-menu.c:287 msgid "_Toggle Controls" msgstr "_Säätimet päällä/pois" #: src/celluloid-menu.c:250 src/celluloid-menu.c:289 msgid "_Toggle Playlist" msgstr "_Soittolista päällä/pois" #: src/celluloid-menu.c:251 msgid "_Fullscreen" msgstr "_Koko näyttö" #: src/celluloid-menu.c:252 msgid "_Help" msgstr "_Ohje" #: src/celluloid-menu.c:253 src/celluloid-menu.c:297 msgid "_Keyboard Shortcuts" msgstr "_Pikanäppäimet" #: src/celluloid-menu.c:254 src/celluloid-menu.c:298 msgid "_About Celluloid" msgstr "_Tietoja - Celluloid" #: src/celluloid-menu.c:321 msgid "Open _Disc" msgstr "Avaa _levy" #: src/celluloid-mpv.c:240 #, c-format msgid "Playback was terminated abnormally. Reason: %s." msgstr "Toisto lopetettiin odottamattomasti. Syy: %s" #: src/celluloid-open-location-dialog.c:130 msgid "Location:" msgstr "Sijainti:" #: src/celluloid-open-location-dialog.c:136 #: src/celluloid-preferences-dialog.c:401 msgid "_Cancel" msgstr "_Peru" #: src/celluloid-open-location-dialog.c:138 msgid "_Open" msgstr "_Avaa" #: src/celluloid-player.c:550 msgid "Failed to apply one or more MPV options." msgstr "Yhtä tai useampaa MPV-valintaa ei voitu käyttää." #: src/celluloid-playlist-widget.c:784 msgid "_Copy Location" msgstr "_Kopioi sijainti" #: src/celluloid-playlist-widget.c:785 msgid "_Remove" msgstr "_Poista" #: src/celluloid-playlist-widget.c:787 msgid "_Add…" msgstr "_Lisää..." #: src/celluloid-playlist-widget.c:788 msgid "Add _Folder…" msgstr "Lisää _kansio..." #: src/celluloid-playlist-widget.c:789 msgid "Add _Location…" msgstr "Lisää _sijainti..." #: src/celluloid-playlist-widget.c:790 msgid "_Shuffle" msgstr "_Sekoittaa" #: src/celluloid-playlist-widget.c:791 msgid "Loop _File" msgstr "Silmukkaan _tiedosto" #: src/celluloid-playlist-widget.c:792 msgid "Loop _Playlist" msgstr "Silmukkaan _soittolista" #: src/celluloid-playlist-widget.c:933 src/celluloid-shortcuts-window.c:136 msgid "Playlist" msgstr "Soittolista" #: src/celluloid-playlist-widget.c:941 msgid "Playlist is empty" msgstr "Soittolista on tyhjä" #: src/celluloid-plugins-manager.c:163 src/celluloid-plugins-manager.c:409 msgid "Add Plugin" msgstr "Lisää laajennus" #: src/celluloid-plugins-manager.c:175 msgid "Lua Plugins" msgstr "Lua-laajennukset" #: src/celluloid-plugins-manager.c:181 msgid "JavaScript Plugins" msgstr "JavaScript-laajennukset" #: src/celluloid-plugins-manager.c:186 msgid "C Plugins" msgstr "C-laajennukset" #: src/celluloid-plugins-manager.c:334 #, c-format msgid "Failed to copy file from '%s' to '%s'. Reason: %s" msgstr "Tiedoston %s kopioiminen kohteeseen %s epäonnistui. Syy: %s" #: src/celluloid-plugins-manager.c:385 msgid "No plugins found" msgstr "Laajennuksia ei löytynyt" #: src/celluloid-plugins-manager-item.c:79 msgid "Remove" msgstr "Poista" #: src/celluloid-plugins-manager-item.c:178 msgid "" "Are you sure you want to remove this script? This action cannot be undone." msgstr "" "Haluatko varmasti poistaa tämän komentosarjan? Tätä toimintoa ei voi " "peruuttaa." #: src/celluloid-plugins-manager-item.c:199 #, c-format msgid "Failed to delete file '%s'. Reason: %s" msgstr "Tiedostoa %s ei voitu poistaa. Syy: %s" #: src/celluloid-preferences-dialog.c:304 msgid "Automatically resize window to fit video" msgstr "Ikkunan koon muuttaminen automaattisesti videon mukaan" #: src/celluloid-preferences-dialog.c:307 msgid "Enable client-side decorations" msgstr "Ota käyttöön asiakkaan ikkunatehosteet" #: src/celluloid-preferences-dialog.c:310 msgid "Enable dark theme" msgstr "Käytä tummaa teemaa" #: src/celluloid-preferences-dialog.c:313 msgid "Use floating controls in windowed mode" msgstr "Käytä kelluvia säätimiä ikkunatilassa" #: src/celluloid-preferences-dialog.c:316 msgid "Autohide mouse cursor in windowed mode" msgstr "Piilota hiiren osoitin automaattisesti ikkunatilassa" #: src/celluloid-preferences-dialog.c:319 msgid "Use skip buttons for controlling playlist" msgstr "Käytä ohituspainikkeita soittolistan ohjaamiseen" #: src/celluloid-preferences-dialog.c:322 msgid "Remember last file's location" msgstr "Muista tiedostojen viimeinen sijainti" #: src/celluloid-preferences-dialog.c:327 msgid "Load MPV configuration file" msgstr "Lataa MPV-asetustiedosto" #: src/celluloid-preferences-dialog.c:330 msgid "MPV configuration file:" msgstr "MPV-asetustiedosto:" #: src/celluloid-preferences-dialog.c:333 msgid "Load MPV input configuration file" msgstr "Lataa MPV-sisääntulon asetustiedosto" #: src/celluloid-preferences-dialog.c:336 msgid "MPV input configuration file:" msgstr "MPV-sisääntulon asetustiedosto:" #: src/celluloid-preferences-dialog.c:341 msgid "Always open new window" msgstr "Avaa aina uusi ikkuna" #: src/celluloid-preferences-dialog.c:344 msgid "Ignore playback errors" msgstr "Ohita toiston virheet" #: src/celluloid-preferences-dialog.c:347 msgid "Prefetch metadata" msgstr "Hae metatiedot etukäteen" #: src/celluloid-preferences-dialog.c:350 msgid "Enable MPRIS support" msgstr "Ota MPRIS-tuki käyttöön" #: src/celluloid-preferences-dialog.c:353 msgid "Enable media keys support" msgstr "Ota medianäppäintuki käyttöön" #: src/celluloid-preferences-dialog.c:356 msgid "Extra MPV options:" msgstr "Lisää MPV-vaihtoehtoja:" #: src/celluloid-preferences-dialog.c:389 msgid "Interface" msgstr "Käyttöliittymä" #: src/celluloid-preferences-dialog.c:392 msgid "Config Files" msgstr "Asetustiedostot" #: src/celluloid-preferences-dialog.c:395 msgid "Miscellaneous" msgstr "Sekalaiset" #: src/celluloid-preferences-dialog.c:398 msgid "Plugins" msgstr "Laajennukset" #: src/celluloid-preferences-dialog.c:403 msgid "_Save" msgstr "_Tallenna" #: src/celluloid-preferences-dialog.c:421 msgid "Preferences" msgstr "Asetukset" #: src/celluloid-shortcuts-window.c:57 msgid "Open file" msgstr "Avaa tiedosto" #: src/celluloid-shortcuts-window.c:58 msgid "Open location" msgstr "Avaa sijainti" #: src/celluloid-shortcuts-window.c:59 msgid "Add file to playlist" msgstr "Lisää tiedosto soittolistaan" #: src/celluloid-shortcuts-window.c:60 msgid "Add location to playlist" msgstr "Lisää sijainti soittolistaan" #: src/celluloid-shortcuts-window.c:61 msgid "Show preferences dialog" msgstr "Näytä Asetukset-valintaikkuna" #: src/celluloid-shortcuts-window.c:62 msgid "Toggle controls" msgstr "Säätimet päällä/pois" #: src/celluloid-shortcuts-window.c:63 msgid "Toggle playlist" msgstr "Soittolista päällä/pois" #: src/celluloid-shortcuts-window.c:64 msgid "Toggle fullscreen mode" msgstr "Vaihtele koko näytön tilan välillä" #: src/celluloid-shortcuts-window.c:65 msgid "Leave fullscreen mode" msgstr "Poistu koko näytön tilasta" #: src/celluloid-shortcuts-window.c:66 msgid "Toggle OSD states between normal and playback time/duration" msgstr "Vaihda OSD-tilat normaalin ja toistoajan/keston välillä" #: src/celluloid-shortcuts-window.c:67 msgid "Show filename on the OSD" msgstr "Näytä tiedostonimi OSD-näytössä" #: src/celluloid-shortcuts-window.c:68 msgid "Show progress, elapsed time, and duration on the OSD" msgstr "Näytä edistyminen, kulunut aika ja kesto OSD-näytössä" #: src/celluloid-shortcuts-window.c:71 msgid "Seek backward/forward 5 seconds" msgstr "Siirry eteen-/taaksepäin 5 sekuntia" #: src/celluloid-shortcuts-window.c:72 msgid "Exact seek backward/forward 1 second" msgstr "Siirry tarkasti eteen-/taaksepäin 1 sekunti " #: src/celluloid-shortcuts-window.c:73 msgid "Seek backward/forward 1 minute" msgstr "Siirry eteen-/taaksepäin 1 minuutti" #: src/celluloid-shortcuts-window.c:74 msgid "Exact seek backward/forward 5 seconds" msgstr "Siirry tarkasti eteen-/taaksepäin 5 sekuntia " #: src/celluloid-shortcuts-window.c:75 msgid "Seek to previous/next subtitle" msgstr "Siirry edellinen/seuraava tekstitys" #: src/celluloid-shortcuts-window.c:76 msgid "Step backward/forward a single frame" msgstr "Astu taaksepäin/eteenpäin yksi kuva kerrallaan" #: src/celluloid-shortcuts-window.c:77 msgid "Seek to the beginning of the previous/next chapter" msgstr "Siirry edellisen/seuraavan kappaleen alkuun" #: src/celluloid-shortcuts-window.c:80 msgid "Decrease/increase playback speed by 10%" msgstr "Pienennä/lisää toistonopeutta 10%" #: src/celluloid-shortcuts-window.c:81 msgid "Halve/double current playback speed" msgstr "Puoli/kaksinkertainen toistonopeus" #: src/celluloid-shortcuts-window.c:82 msgid "Reset playback speed to normal" msgstr "Palauta toistonopeus normaaliksi" #: src/celluloid-shortcuts-window.c:83 msgid "Go backward/forward in the playlist" msgstr "Siirry taakse/eteenpäin soittolistassa" #: src/celluloid-shortcuts-window.c:84 msgid "Remove selected playlist item" msgstr "Poista valittu soittolista" #: src/celluloid-shortcuts-window.c:85 msgid "Save playlist" msgstr "Tallenna soittolista" #: src/celluloid-shortcuts-window.c:86 msgid "Set/clear A-B loop points" msgstr "Aseta/tyhjennä A-B -soittosilmukkat" #: src/celluloid-shortcuts-window.c:87 msgid "Toggle infinite looping" msgstr "Vaihda ääretön soittosilmukka" #: src/celluloid-shortcuts-window.c:88 msgid "Pause or unpause" msgstr "Tauko tai jatka" #: src/celluloid-shortcuts-window.c:89 msgid "Quit" msgstr "Lopeta" #: src/celluloid-shortcuts-window.c:90 msgid "Save current playback position and quit" msgstr "Tallenna nykyinen toistopaikka ja lopeta" #: src/celluloid-shortcuts-window.c:93 msgid "Enter search mode" msgstr "Siirry hakutilaan" #: src/celluloid-shortcuts-window.c:94 msgid "Jump to next match" msgstr "Hyppää seuraavaan osumaan" #: src/celluloid-shortcuts-window.c:95 msgid "Jump to previous match" msgstr "Hyppää edelliseen osumaan" #: src/celluloid-shortcuts-window.c:96 msgid "Exit search mode" msgstr "Poistu hakutilasta" #: src/celluloid-shortcuts-window.c:99 msgid "Cycle through audio tracks" msgstr "Selaa ääniraitojen läpi" #: src/celluloid-shortcuts-window.c:100 src/celluloid-shortcuts-window.c:101 msgid "Decrease/increase volume" msgstr "Pienennä/lisää äänenvoimakkuutta" #: src/celluloid-shortcuts-window.c:102 msgid "Mute or unmute" msgstr "Mykistä tai poista mykistys" #: src/celluloid-shortcuts-window.c:103 msgid "Adjust audio delay by +/- 0.1 seconds" msgstr "Säädä äänen viivettä +/-0,1 sekuntia" #: src/celluloid-shortcuts-window.c:106 msgid "Toggle subtitle visibility" msgstr "Vaihda tekstityksen näkyvyyttä" #: src/celluloid-shortcuts-window.c:107 msgid "Cycle through available subtitles" msgstr "Selaa käytettävissä olevia tekstityksiä" #: src/celluloid-shortcuts-window.c:108 msgid "Adjust subtitle delay by +/- 0.1 seconds" msgstr "Säädä tekstityksen viive +/- 0,1 sekunnilla" #: src/celluloid-shortcuts-window.c:109 msgid "Toggle SSA/ASS subtitles style override" msgstr "Vaihda SSA/ASS-tekstitystyylin ohitus" #: src/celluloid-shortcuts-window.c:110 msgid "Move subtitles up/down" msgstr "Siirrä tekstityksiä ylös/alas" #: src/celluloid-shortcuts-window.c:111 msgid "Toggle VSFilter aspect compatibility mode" msgstr "Vaihda VSFilter-kuvasuhteen yhteensopivuustilaa" #: src/celluloid-shortcuts-window.c:114 msgid "Cycle through video tracks" msgstr "Selaa videoraitojen läpi" #: src/celluloid-shortcuts-window.c:115 msgid "Decrease/increase pan-and-scan range" msgstr "Pienennä/lisää skannausaluetta" #: src/celluloid-shortcuts-window.c:116 msgid "Take a screenshot" msgstr "Ota kuvakaappaus" #: src/celluloid-shortcuts-window.c:117 msgid "Take a screenshot, without subtitles" msgstr "Ota kuvakaappaus ilman tekstityksiä" #: src/celluloid-shortcuts-window.c:118 msgid "Take a screenshot, as the window shows it" msgstr "Ota kuva kaappaus, kuten se ikkunassa näykyy" #: src/celluloid-shortcuts-window.c:119 msgid "Resize video to half its original size" msgstr "Videon koon muuttaminen puoleen alkuperäisestä koosta" #: src/celluloid-shortcuts-window.c:120 msgid "Resize video to its original size" msgstr "Videon koon muuttaminen alkuperäiseen kokoon" #: src/celluloid-shortcuts-window.c:121 msgid "Resize video to double its original size" msgstr "Videon koon muuttaminen kaksinkertaiseksi alkuperäisestä koosta" #: src/celluloid-shortcuts-window.c:122 msgid "Adjust contrast" msgstr "Säädä kontrastia" #: src/celluloid-shortcuts-window.c:123 msgid "Adjust brightness" msgstr "Säädä kirkkautta" #: src/celluloid-shortcuts-window.c:124 msgid "Adjust gamma" msgstr "Säädä gamma" #: src/celluloid-shortcuts-window.c:125 msgid "Adjust saturation" msgstr "Säädä värikylläisyyttä" #: src/celluloid-shortcuts-window.c:126 msgid "Activate or deactivate deinterlacer" msgstr "Aktivoi tai deaktivoi skaalain" #: src/celluloid-shortcuts-window.c:127 msgid "Cycle aspect ratio override" msgstr "Jakson kuvasuhteen ohitus" #: src/celluloid-shortcuts-window.c:130 msgid "User Interface" msgstr "Käyttöliittymä" #: src/celluloid-shortcuts-window.c:131 msgid "Video" msgstr "Video" #: src/celluloid-shortcuts-window.c:132 msgid "Audio" msgstr "Ääni" #: src/celluloid-shortcuts-window.c:133 msgid "Subtitle" msgstr "Tekstitys" #: src/celluloid-shortcuts-window.c:134 msgid "Playback" msgstr "Toisto" #: src/celluloid-shortcuts-window.c:135 msgid "Seeking" msgstr "Siirtyminen" #: src/celluloid-view.c:728 msgid "Load Audio Track…" msgstr "Lataa ääniraita…" #: src/celluloid-view.c:732 msgid "Load Video Track…" msgstr "Lataa video…" #: src/celluloid-view.c:736 msgid "Load Subtitle Track…" msgstr "Lataa tekstitys..." #: src/celluloid-view.c:901 msgid "" "Enabling or disabling client-side decorations requires restarting to take " "effect." msgstr "" "Asiakkaan ikkunatehosteiden ottaminen käyttöön tai poistaminen käytöstä " "edellyttää uudelleenkäynnistystä." #: src/celluloid-view.c:1444 msgid "Add Folder to Playlist" msgstr "Lisää kansio soittolistaan" #: src/celluloid-view.c:1444 msgid "Open Folder" msgstr "Avaa kansio" #: src/celluloid-view.c:1449 msgid "Add File to Playlist" msgstr "Lisää tiedosto soittolistaan" #: src/celluloid-view.c:1449 msgid "Open File" msgstr "Avaa tiedosto" #: src/celluloid-view.c:1485 msgid "Add Location to Playlist" msgstr "Lisää sijainti soittolistaan" #: src/celluloid-view.c:1486 msgid "Open Location" msgstr "Avaa sijainti" #: src/celluloid-view.c:1532 msgid "Save Playlist" msgstr "Tallenna soittolista" #: src/celluloid-view.c:1598 msgid "A GTK frontend for MPV" msgstr "MPV:n GTK+ -käyttöliittymä" #: src/celluloid-view.c:1608 msgid "translator-credits" msgstr "" "Kääntänyt:\n" "Kimmo Kujansuu" celluloid-0.20/po/fr.po000066400000000000000000001115041373135401300147760ustar00rootroot00000000000000# French translations for gnome-mpv package # gnome-mpvパッケージに対する日本語翻訳. # Copyright (C) 2015 The gnome-mpv'u copyright holder # This file is distributed under the same license as the gnome-mpv package. # Harenome Ranaivorarivony Razanajato , 2015. # Clement Lefebvre , 2019. #zanata # Erwan Amans , 2019. #zanata # gnome-mpv , 2019. #zanata # gnome-mpv , 2020. #zanata msgid "" msgstr "" "Project-Id-Version: gnome-mpv 0.5\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-02-20 20:48+0700\n" "PO-Revision-Date: 2020-06-23 10:40-0400\n" "Last-Translator: Copied by Zanata \n" "Language-Team: Français\n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" "X-Generator: Zanata 4.6.2\n" "X-Poedit-Basepath: ../src\n" "X-Poedit-SearchPath-0: .\n" "X-Poedit-SearchPathExcluded-0: mpv.c\n" #: data/io.github.celluloid_player.Celluloid.gschema.xml:11 msgid "" "Whether the settings has already been migrated from the previous version" msgstr "" "Si les paramètres ont déjà été migré à partir de la version précédente" #: data/io.github.celluloid_player.Celluloid.gschema.xml:17 #, fuzzy msgid "Whether or not to automatically resize window to fit video" msgstr "" "Si oui ou non le curseur de la souris doit être masqué automatiquement en " "mode fenêtré" #: data/io.github.celluloid_player.Celluloid.gschema.xml:23 msgid "Enable or disable dark theme" msgstr "Activer ou désactiver le thème sombre" #: data/io.github.celluloid_player.Celluloid.gschema.xml:29 msgid "Enable or disable client-side decorations" msgstr "Activer ou désactiver les décorations côté client" #: data/io.github.celluloid_player.Celluloid.gschema.xml:35 msgid "Whether or not to use floating controls in windowed mode" msgstr "Utilisation ou non des commandes flottantes en mode fenêtré" #: data/io.github.celluloid_player.Celluloid.gschema.xml:41 msgid "Whether or not to autohide mouse cursor in windowed mode" msgstr "" "Si oui ou non le curseur de la souris doit être masqué automatiquement en " "mode fenêtré" #: data/io.github.celluloid_player.Celluloid.gschema.xml:47 msgid "The minimum cursor speed at which floating controls will be unhidden." msgstr "" "La vitesse de pointeur minimum à partir de laquelle les commandes flottantes" " réapparaissent." #: data/io.github.celluloid_player.Celluloid.gschema.xml:54 msgid "" "The size of the dead zone in which cursor movement will not cause the " "controls to be shown." msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:60 msgid "Whether or not to use skip buttons for controlling playlist" msgstr "" "Utiliser ou non les boutons de saut pour contrôler la liste de lecture" #: data/io.github.celluloid_player.Celluloid.gschema.xml:66 msgid "" "Whether or not to make file chooser dialog remember last folder accessed" msgstr "" "Si oui ou non le sélecteur de fichier doit se souvenir du dernier dossier " "accédé" #: data/io.github.celluloid_player.Celluloid.gschema.xml:72 msgid "Whether or not to create new windows when there is already an instance" msgstr "" "Si oui ou non il faut créer de nouvelles fenêtres quand il y a déjà une " "instance en cours" #: data/io.github.celluloid_player.Celluloid.gschema.xml:78 #: src/celluloid-application.c:575 msgid "Options to pass to mpv" msgstr "Options à activer dans mpv" #: data/io.github.celluloid_player.Celluloid.gschema.xml:84 msgid "Path to mpv configuration file" msgstr "Chemin du fichier de configuration de mpv" #: data/io.github.celluloid_player.Celluloid.gschema.xml:90 msgid "Load or don't load mpv configuration file" msgstr "Charger ou non le fichier de configuration de mpv" #: data/io.github.celluloid_player.Celluloid.gschema.xml:96 msgid "Path to mpv input configuration file" msgstr "Chemin du fichier de configuration des raccourcis de mpv" #: data/io.github.celluloid_player.Celluloid.gschema.xml:102 msgid "Load or don't load mpv input configuration file" msgstr "Charger ou non le fichier de configuration de l'entrée de mpv" #: data/io.github.celluloid_player.Celluloid.gschema.xml:108 msgid "Whether or not to enable MPRIS support" msgstr "Activer ou non le support MPRIS" #: data/io.github.celluloid_player.Celluloid.gschema.xml:114 msgid "" "Whether or not to enable GNOME-Settings-Daemon-based media keys support" msgstr "" "Activer ou non la prise en charge des touches multimédia de GNOME-Settings-" "Daemon" #: data/io.github.celluloid_player.Celluloid.gschema.xml:120 msgid "Whether or not to prefetch metadata for non-current playlist entries" msgstr "Pré-rechercher ou non les métadonnées pour les entrées non jouées" #: data/io.github.celluloid_player.Celluloid.gschema.xml:126 msgid "" "Whether or not to display an error message when playback of a file ends with" " an error" msgstr "" "Si oui ou non il faut afficher un message d'erreur lorsque la lecture d'un " "fichier se finit avec une erreur" #: data/io.github.celluloid_player.Celluloid.gschema.xml:132 msgid "Whether or not to inhibit session idling when something is playing" msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:142 msgid "Width of the window" msgstr "Largeur de la fenêtre" #: data/io.github.celluloid_player.Celluloid.gschema.xml:148 msgid "Height of the window" msgstr "Hauteur de la fenêtre" #: data/io.github.celluloid_player.Celluloid.gschema.xml:154 msgid "Whether or not the window is maximized" msgstr "Défini si la fenêtre est maximisée ou non" #: data/io.github.celluloid_player.Celluloid.gschema.xml:161 msgid "Volume of player" msgstr "Volume du lecteur" #: data/io.github.celluloid_player.Celluloid.gschema.xml:167 msgid "Whether or not to loop when the end of playlist is reached" msgstr "Relancer ou non la liste de lecture lorsque la fin est atteinte" #: data/io.github.celluloid_player.Celluloid.gschema.xml:173 msgid "Width of the playlist" msgstr "Largeur de la liste de lecture" #: data/io.github.celluloid_player.Celluloid.gschema.xml:179 msgid "Show or not show the controls" msgstr "Afficher ou cacher les contrôles" #: data/io.github.celluloid_player.Celluloid.gschema.xml:185 msgid "Show or not show the playlist" msgstr "Afficher ou cacher la liste de lecture" #: data/io.github.celluloid_player.Celluloid.gschema.xml:191 msgid "URI of the last folder accessed" msgstr "Chemin d'accès du dernier dossier consulté" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:7 #: data/io.github.celluloid_player.Celluloid.desktop.in:4 #: src/celluloid-application.c:451 msgid "Celluloid" msgstr "Celluloid" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:8 msgid "GTK+ frontend for mpv" msgstr "Interface en GTK+ pour mpv" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:16 msgid "" "Celluloid is a simple media player that can play virtually all video and " "audio formats. It supports playlists and MPRIS2 media player controls. The " "design of Celluloid follows the GNOME Human Interface Guidelines, but can " "also be adapted for other systems that don't use client-side decorations " "(CSD). It is based on the mpv library and GTK." msgstr "" "Celluloid est un lecteur multimédia simple capable de lire pratiquement tous" " les formats vidéo et audio. Il supporte les listes de lecture et le " "contrôle à distance MPRIS2. Sa conception est basée sur les recommandation " "GNOME en matière d'interfaces graphiques mais il peut aussi s'adapter aux " "autres environnements de bureaux qui n'utilisent pas de décorations de " "fenêtres côté client (CSD)." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:23 msgid "Features:" msgstr "Fonctionnalités" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:25 msgid "Drag and drop playlist" msgstr "Glisser-déposer la liste de lecture" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:26 msgid "Loading external mpv configuration files" msgstr "Chargement des fichiers de configuration externes pour mpv" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:27 msgid "MPRIS2 D-Bus interface" msgstr "Interface D-Bus MPRIS2" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:30 msgid "The Celluloid Developers" msgstr "Les développeurs de Celluloid" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:34 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:87 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:117 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:156 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:187 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:215 msgid "This release contains the following changes:" msgstr "Cette version apporte les changement suivants :" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:38 msgid "" "Adjust the range of volume button based on the value of the volume-max " "property." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:42 msgid "Retain window maximization state across sessions." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:45 msgid "Retain loop state across sessions." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:48 msgid "Implement playlist search." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:51 msgid "Update the list of shortcuts in Keyboard Shortcuts dialog." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:54 msgid "Correctly handle quotes and escape sequences in extra mpv options." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:57 msgid "Display time at cursor position when hovering the seek bar." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:60 msgid "" "Deprecate '--mpv-options'. Options starting with '--mpv-' can be used to set" " mpv options instead. For example, passing '--mpv-vf=vflip' to Celluloid is " "equivalent to passing '--vf=vflip' to mpv." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:66 msgid "" "Add support for configuring dead zone, an area in which mouse movement will " "not cause controls to be shown." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:70 msgid "Make window sizing work correctly with HiDPI displays." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:73 msgid "Add Finnish translation by Kimmo Kujansuu." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:76 msgid "Add Slovenian translation by @bertronika." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:80 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:110 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:149 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:180 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:208 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:236 msgid "This listing is incomplete. See git log for complete changelog." msgstr "" "Cette liste n'est pas complète. Pour voir tous les changements utilisez git" " log." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:91 msgid "Add Persian translation by @danialbehzadi" msgstr "Ajout des traductions perses par @danialbehzadi" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:94 msgid "Add Ukranian translation by @vl-nix" msgstr "Ajout des traductions ukrainiennes par @vl-nix" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:97 msgid "" "Add support for showing/hiding window decorations using the mpv option " "--border" msgstr "" "Ajout du support du (dés)affichage des décorations de fenêtres grâce à " "l'option mpv --border" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:100 msgid "Add menu item for opening discs" msgstr "Ajout d'une entrée de menu pour ouvrir les disques" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:103 msgid "Block cursor autohide when volume popup is open in windowed mode" msgstr "" "Bloquer le masquage du curseur lorsque la fenêtre de volume est ouverte en " "mode fenêtré" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:106 msgid "Fix crash with mpv 0.30" msgstr "Règle le problème de crash avec mpv 0.30" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:121 msgid "Rename project to Celluloid" msgstr "Changement de nom de projet en Celluloid" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:124 msgid "Add Turkish translation by @TeknoMobil" msgstr "Ajout des traductions turques par @TeknoMobil" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:127 msgid "Add Esperanto translation by @F3nd0" msgstr "Ajout des traductions Esperanto par @F3nd0" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:130 msgid "Migrate from opengl-cb to the new render API" msgstr "Migration de opengl-cb à la nouvelle API de rendu" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:133 msgid "Handle numpad keybindings" msgstr "Support des touches de raccourcis numériques" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:136 msgid "Handle unicode keybindings" msgstr "Support des touches de raccourcis unicode" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:139 msgid "Forward media key events to mpv" msgstr "Envoi des évènements de touches multimédia vers mpv" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:142 msgid "" "Add dconf key for controlling cursor speed at which controls are unhidden" msgstr "" "Ajout d'une clef dconf pour contrôler la vitesse de pointeur à laquelle les " "commandes flottantes sont montrées." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:145 msgid "Add option for suppressing playback errors" msgstr "Ajout d'une option pour ignorer les erreurs de lecture" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:160 msgid "Split up the General tab in the preferences dialog" msgstr "Onglet général scindé dans les préférences" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:163 msgid "Improve behavior when toggling playlist under tiling window managers" msgstr "" "Meilleur comportement lors de la bascule de la liste de lecture sous les " "gestionnaires de fenêtres de carrelage" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:166 msgid "Move app menu items to primary menu" msgstr "Éléments du menu d'application déplacés vers le menu principal " #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:169 msgid "Use separate MPRIS DBus connection for each window" msgstr "Utilisation d'une connexion DBUS MPRIS unique pour chaque fenêtre" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:172 msgid "Add support for MPRIS property LoopStatus" msgstr "Ajout du support pour la propriété MPRIS LoopStatus" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:175 msgid "" "Add option --mpv-options for setting arbitrary mpv options from the command-" "line" msgstr "" "Nouvelle option --mpv-options pour passer des options à mpv via la ligne de " "commande" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:191 msgid "Set default screenshot directory to XDG_PICTURES_DIR" msgstr "Répertoire de capture d'écran par défaut réglé à XDG_PICTURES_DIR" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:194 msgid "" "Improve handling of --window-scale, --autofit, --autofit-larger, and " "--autofit-smaller" msgstr "" "Meilleur support de --window-scale, --autofit, --autofit-larger et " "--autofit-smaller" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:198 msgid "Add command line option for setting WM_ROLE" msgstr "Ajout d'une option de ligne de commande pour renseigner WM_ROLE" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:201 msgid "Add context menu item for removing playlist items" msgstr "" "Ajout d'une option pour retirer les éléments de la liste de lecture dans le " "menu contextuel" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:204 msgid "Add context menu item for copying location of playlist items" msgstr "" "Ajout d'une option pour copier l'emplacement d'éléments de la liste de " "lecture dans le menu contextuel" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:219 msgid "" "Add option to make skip buttons change playlist entries rather than chapters" msgstr "" "Ajout d'une option pour faire agir les boutons de saut sur les éléments de " "la liste de lecture plutôt que sur les chapîtres" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:223 msgid "Make the file chooser accept non-local locations" msgstr "Le sélecteur de fichiers accepte les emplacements distants" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:226 msgid "Add right-click menu entry for looping a single file" msgstr "" "Ajout d'une option dans le menu contextuel pour lire un fichier en boucle" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:229 msgid "Handle property change events for fullscreen and window-scale" msgstr "" "Support des changements de propriétés pour le plein écran et la taille de " "fenêtre" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:232 msgid "Add option to autohide mouse cursor in windowed mode" msgstr "" "Ajout d'une option pour masquer automatiquement le curseur de la souris en " "mode fenêtré" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:246 msgid "The main window showing the application in action" msgstr "La fenêtre principale montrant l'application en action" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:250 msgid "The main window with CSD disabled" msgstr "La fenêtre principale avec CSD désactivé" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:254 msgid "The main window with playlist open" msgstr "La fenêtre principale avec la liste de lecture ouverte" #: data/io.github.celluloid_player.Celluloid.desktop.in:5 msgid "Multimedia Player" msgstr "Lecteur multimédia" #: data/io.github.celluloid_player.Celluloid.desktop.in:6 msgid "Play movies and videos" msgstr "Lecture de films et vidéos" #. Translators: Search terms to find this application. Don't translate the #. semicolons! The list MUST also end with a semicolon! #: data/io.github.celluloid_player.Celluloid.desktop.in:17 msgid "Video;Movie;Film;Clip;Series;Player;DVD;TV;Disc;Album;Music;GNOME;mpv;" msgstr "" "Vidéo;Film;Clip;Séries;Lecteur;DVD;TV;Télé;Disque;Album;Musique;GNOME;mpv;" #: data/io.github.celluloid_player.Celluloid.desktop.in:23 msgid "New Window" msgstr "Nouvelle fenêtre" #: src/celluloid-application.c:495 msgid "Playing" msgstr "En cours de lecture" #: src/celluloid-application.c:551 msgid "Show release version" msgstr "Afficher la version" #: src/celluloid-application.c:559 msgid "Enqueue" msgstr "Files d'attente" #: src/celluloid-application.c:567 msgid "Create a new window" msgstr "Créer une nouvelle fenêtre" #: src/celluloid-application.c:576 msgid "OPTIONS" msgstr "OPTIONS" #: src/celluloid-application.c:583 msgid "Set the window role" msgstr "Définir le rôle de la fenêtre" #: src/celluloid-application.c:591 msgid "Don't connect to an already-running instance" msgstr "Ne pas se connectez à une instance en cours d'exécution" #: src/celluloid-control-box.c:362 msgid "Pause" msgstr "Pause" #: src/celluloid-control-box.c:362 src/celluloid-control-box.c:565 msgid "Play" msgstr "Lecture" #: src/celluloid-control-box.c:568 msgid "Stop" msgstr "Arret" #: src/celluloid-control-box.c:571 msgid "Forward" msgstr "Avancer" #: src/celluloid-control-box.c:574 msgid "Rewind" msgstr "Reculer" #: src/celluloid-control-box.c:577 msgid "Next Chapter" msgstr "Chapitre suivant" #: src/celluloid-control-box.c:580 msgid "Previous Chapter" msgstr "Chapitre précédant" #: src/celluloid-control-box.c:583 msgid "Loop Playlist" msgstr "Lecture en boucle" #: src/celluloid-control-box.c:586 msgid "Shuffle Playlist" msgstr "" #: src/celluloid-control-box.c:589 src/celluloid-header-bar.c:91 msgid "Toggle Fullscreen" msgstr "Plein écran" #: src/celluloid-controller.c:992 src/celluloid-view.c:1558 msgid "Error" msgstr "Erreur" #: src/celluloid-file-chooser.c:139 src/celluloid-plugins-manager.c:170 msgid "All Files" msgstr "Tous les fichiers" #: src/celluloid-file-chooser.c:147 msgid "Media Files" msgstr "Fichiers multimédias" #: src/celluloid-file-chooser.c:158 msgid "Audio Files" msgstr "Fichiers audio" #: src/celluloid-file-chooser.c:166 msgid "Video Files" msgstr "Fichiers vidéo" #: src/celluloid-file-chooser.c:174 msgid "Image Files" msgstr "Fichiers image" #: src/celluloid-file-chooser.c:184 msgid "Subtitle Files" msgstr "Fichiers de(s) sous-titres" #: src/celluloid-menu.c:106 msgid "None" msgstr "Vide" #. For simplicity, also dup the default string used when the #. * track has no title. #: src/celluloid-menu.c:121 msgid "Unknown" msgstr "Inconnu" #: src/celluloid-menu.c:154 msgid "_Load External…" msgstr "_Charger un fichier externe..." #. Disable the menu item by setting the action to something #. * invalid. #: src/celluloid-menu.c:207 msgid "No disc found" msgstr "Aucun disque trouvé" #: src/celluloid-menu.c:235 msgid "_File" msgstr "_Fichier" #: src/celluloid-menu.c:236 src/celluloid-menu.c:318 msgid "_Open…" msgstr "_Ouvrir..." #: src/celluloid-menu.c:237 src/celluloid-menu.c:319 msgid "Open _Folder…" msgstr "" #: src/celluloid-menu.c:238 src/celluloid-menu.c:320 msgid "Open _Location…" msgstr "Ouvrir un _emplacement..." #: src/celluloid-menu.c:239 msgid "Open _Disc…" msgstr "Ouvrir un _disque..." #: src/celluloid-menu.c:240 src/celluloid-menu.c:290 msgid "_Save Playlist" msgstr "_Enregistrer la liste de lecture" #: src/celluloid-menu.c:241 src/celluloid-menu.c:323 msgid "_New Window" msgstr "_Nouvelle fenêtre" #: src/celluloid-menu.c:242 #, fuzzy msgid "_Quit" msgstr "Quitter" #: src/celluloid-menu.c:243 msgid "_Edit" msgstr "É_diter" #: src/celluloid-menu.c:244 src/celluloid-menu.c:296 msgid "_Preferences" msgstr "_Préférences" #: src/celluloid-menu.c:245 src/celluloid-menu.c:292 msgid "_Video Track" msgstr "Piste _vidéo" #: src/celluloid-menu.c:246 src/celluloid-menu.c:293 msgid "_Audio Track" msgstr "Piste _audio" #: src/celluloid-menu.c:247 src/celluloid-menu.c:294 msgid "S_ubtitle Track" msgstr "So_us-titres" #: src/celluloid-menu.c:248 msgid "_View" msgstr "_Vue" #: src/celluloid-menu.c:249 src/celluloid-menu.c:287 msgid "_Toggle Controls" msgstr "Afficher les _contrôles" #: src/celluloid-menu.c:250 src/celluloid-menu.c:289 msgid "_Toggle Playlist" msgstr "Afficher la _liste de lecture" #: src/celluloid-menu.c:251 msgid "_Fullscreen" msgstr "_Plein écran" #: src/celluloid-menu.c:252 msgid "_Help" msgstr "_Aide" #: src/celluloid-menu.c:253 src/celluloid-menu.c:297 msgid "_Keyboard Shortcuts" msgstr "_Raccourcis clavier" #: src/celluloid-menu.c:254 src/celluloid-menu.c:298 msgid "_About Celluloid" msgstr "_À propos de Celluloid" #: src/celluloid-menu.c:321 msgid "Open _Disc" msgstr "Ouvrir un _disque" #: src/celluloid-mpv.c:240 #, c-format msgid "Playback was terminated abnormally. Reason: %s." msgstr "La lecture a été interrompue pour la raison suivante : %s" #: src/celluloid-open-location-dialog.c:130 msgid "Location:" msgstr "Emplacement:" #: src/celluloid-open-location-dialog.c:136 #: src/celluloid-preferences-dialog.c:401 msgid "_Cancel" msgstr "_Annuler" #: src/celluloid-open-location-dialog.c:138 msgid "_Open" msgstr "_Ouvrir" #: src/celluloid-player.c:550 msgid "Failed to apply one or more MPV options." msgstr "Impossible d'appliquer une ou plusieurs options à mpv." #: src/celluloid-playlist-widget.c:784 msgid "_Copy Location" msgstr "_Copier l'emplacement" #: src/celluloid-playlist-widget.c:785 msgid "_Remove" msgstr "_Supprimer" #: src/celluloid-playlist-widget.c:787 msgid "_Add…" msgstr "_Ajouter" #: src/celluloid-playlist-widget.c:788 msgid "Add _Folder…" msgstr "" #: src/celluloid-playlist-widget.c:789 msgid "Add _Location…" msgstr "Ajouter un _Emplacement" #: src/celluloid-playlist-widget.c:790 msgid "_Shuffle" msgstr "Lecture aléa_toire" #: src/celluloid-playlist-widget.c:791 msgid "Loop _File" msgstr "Lecture en boucle du _fichier" #: src/celluloid-playlist-widget.c:792 msgid "Loop _Playlist" msgstr "Lecture en boucle de la liste de _lecture" #: src/celluloid-playlist-widget.c:933 src/celluloid-shortcuts-window.c:136 msgid "Playlist" msgstr "Liste de lecture" #: src/celluloid-playlist-widget.c:941 #, fuzzy msgid "Playlist is empty" msgstr "Liste de lecture" #: src/celluloid-plugins-manager.c:163 src/celluloid-plugins-manager.c:409 msgid "Add Plugin" msgstr "Ajouter un greffon" #: src/celluloid-plugins-manager.c:175 msgid "Lua Plugins" msgstr "Greffons Lua" #: src/celluloid-plugins-manager.c:181 msgid "JavaScript Plugins" msgstr "Greffons JavaScript" #: src/celluloid-plugins-manager.c:186 msgid "C Plugins" msgstr "Greffons C" #: src/celluloid-plugins-manager.c:334 #, c-format msgid "Failed to copy file from '%s' to '%s'. Reason: %s" msgstr "" "Impossible de copier le fichier de '%s' vers '%s' pour la raison suivante : " "%s" #: src/celluloid-plugins-manager.c:385 msgid "No plugins found" msgstr "Aucun greffon trouvé" #: src/celluloid-plugins-manager-item.c:79 msgid "Remove" msgstr "Supprimer" #: src/celluloid-plugins-manager-item.c:178 msgid "" "Are you sure you want to remove this script? This action cannot be undone." msgstr "" "Êtes vous sur de vouloir supprimer ce script ? Cette action est irréversible" #: src/celluloid-plugins-manager-item.c:199 #, c-format msgid "Failed to delete file '%s'. Reason: %s" msgstr "Impossible de supprimer le fichier '%s' pour la raison suivante : %s" #: src/celluloid-preferences-dialog.c:304 msgid "Automatically resize window to fit video" msgstr "" #: src/celluloid-preferences-dialog.c:307 msgid "Enable client-side decorations" msgstr "Activer les décorations fenêtre" #: src/celluloid-preferences-dialog.c:310 msgid "Enable dark theme" msgstr "Activer le thème sombre" #: src/celluloid-preferences-dialog.c:313 msgid "Use floating controls in windowed mode" msgstr "Utiliser les commandes flottantes en mode fenêtré" #: src/celluloid-preferences-dialog.c:316 msgid "Autohide mouse cursor in windowed mode" msgstr "Masquer automatiquement le curseur de la souris en mode fenêtré" #: src/celluloid-preferences-dialog.c:319 msgid "Use skip buttons for controlling playlist" msgstr "Utilisez les boutons de saut pour contrôler la liste de lecture" #: src/celluloid-preferences-dialog.c:322 msgid "Remember last file's location" msgstr "Se souvenir de l'emplacement du dernier fichier ouvert" #: src/celluloid-preferences-dialog.c:327 msgid "Load MPV configuration file" msgstr "Charger un fichier de configuration MPV" #: src/celluloid-preferences-dialog.c:330 msgid "MPV configuration file:" msgstr "Fichier de configuration MPV:" #: src/celluloid-preferences-dialog.c:333 msgid "Load MPV input configuration file" msgstr "Charger un fichier de configuration des raccourcis clavier MPV" #: src/celluloid-preferences-dialog.c:336 msgid "MPV input configuration file:" msgstr "Fichier de configuration des raccourcis clavier MPV:" #: src/celluloid-preferences-dialog.c:341 msgid "Always open new window" msgstr "Toujours ouvrir une nouvelle fenêtre" #: src/celluloid-preferences-dialog.c:344 msgid "Ignore playback errors" msgstr "Ignorer les erreurs de lecture" #: src/celluloid-preferences-dialog.c:347 msgid "Prefetch metadata" msgstr "Pré-rechercher les métadonnées" #: src/celluloid-preferences-dialog.c:350 msgid "Enable MPRIS support" msgstr "Activer le support MPRIS" #: src/celluloid-preferences-dialog.c:353 msgid "Enable media keys support" msgstr "Activer la prise en charge des touches multimédias" #: src/celluloid-preferences-dialog.c:356 msgid "Extra MPV options:" msgstr "Options supplémentaires pour MPV" #: src/celluloid-preferences-dialog.c:389 msgid "Interface" msgstr "Interface" #: src/celluloid-preferences-dialog.c:392 msgid "Config Files" msgstr "Fichiers de configuration" #: src/celluloid-preferences-dialog.c:395 msgid "Miscellaneous" msgstr "Divers" #: src/celluloid-preferences-dialog.c:398 msgid "Plugins" msgstr "Greffons" #: src/celluloid-preferences-dialog.c:403 msgid "_Save" msgstr "_Enregistrer" #: src/celluloid-preferences-dialog.c:421 msgid "Preferences" msgstr "Préférences" #: src/celluloid-shortcuts-window.c:57 msgid "Open file" msgstr "Ouvrir un fichier" #: src/celluloid-shortcuts-window.c:58 msgid "Open location" msgstr "Ouvrir un emplacement" #: src/celluloid-shortcuts-window.c:59 msgid "Add file to playlist" msgstr "Ajouter un fichier à la liste de lecture" #: src/celluloid-shortcuts-window.c:60 msgid "Add location to playlist" msgstr "Ajouter un emplacement à la liste de lecture" #: src/celluloid-shortcuts-window.c:61 msgid "Show preferences dialog" msgstr "Afficher les préférences" #: src/celluloid-shortcuts-window.c:62 msgid "Toggle controls" msgstr "Afficher les contrôles" #: src/celluloid-shortcuts-window.c:63 msgid "Toggle playlist" msgstr "Afficher la liste de lecture" #: src/celluloid-shortcuts-window.c:64 msgid "Toggle fullscreen mode" msgstr "Plein écran" #: src/celluloid-shortcuts-window.c:65 msgid "Leave fullscreen mode" msgstr "Quitter le mode plein écran" #: src/celluloid-shortcuts-window.c:66 msgid "Toggle OSD states between normal and playback time/duration" msgstr "Commutation des états de l'OSD" #: src/celluloid-shortcuts-window.c:67 msgid "Show filename on the OSD" msgstr "Afficher le nom du fichier sur l'OSD" #: src/celluloid-shortcuts-window.c:68 msgid "Show progress, elapsed time, and duration on the OSD" msgstr "Afficher la progression, le temps écoulé et la durée sur l'OSD" #: src/celluloid-shortcuts-window.c:71 msgid "Seek backward/forward 5 seconds" msgstr "Avancer/reculer de 5 secondes" #: src/celluloid-shortcuts-window.c:72 msgid "Exact seek backward/forward 1 second" msgstr "Avancer/reculer d'exactement 1 second" #: src/celluloid-shortcuts-window.c:73 msgid "Seek backward/forward 1 minute" msgstr "Avancer/reculer d'1 minute" #: src/celluloid-shortcuts-window.c:74 msgid "Exact seek backward/forward 5 seconds" msgstr "Avancer/reculer d'exactement 5 secondes" #: src/celluloid-shortcuts-window.c:75 msgid "Seek to previous/next subtitle" msgstr "Sous-titre précédent/suivant" #: src/celluloid-shortcuts-window.c:76 msgid "Step backward/forward a single frame" msgstr "Avancer/reculer d'une image vers l'arrière/vers l'avant" #: src/celluloid-shortcuts-window.c:77 msgid "Seek to the beginning of the previous/next chapter" msgstr "Aller au début du chapitre précédent/suivant" #: src/celluloid-shortcuts-window.c:80 msgid "Decrease/increase playback speed by 10%" msgstr "Reduire/Augmenter la vitesse de lecture de 10%" #: src/celluloid-shortcuts-window.c:81 msgid "Halve/double current playback speed" msgstr "Reduire de moitié ou doubler la vitesse de lecture actuelle" #: src/celluloid-shortcuts-window.c:82 msgid "Reset playback speed to normal" msgstr "Réinitialiser la vitesse de lecture" #: src/celluloid-shortcuts-window.c:83 msgid "Go backward/forward in the playlist" msgstr "Aller en arrière/en avant dans la liste de lecture" #: src/celluloid-shortcuts-window.c:84 msgid "Remove selected playlist item" msgstr "Supprimer l'élément sélectionné de la liste de lecture" #: src/celluloid-shortcuts-window.c:85 msgid "Save playlist" msgstr "Sauvegarder la liste de lecture" #: src/celluloid-shortcuts-window.c:86 msgid "Set/clear A-B loop points" msgstr "Définir/enlever les repères de boucle A-B" #: src/celluloid-shortcuts-window.c:87 msgid "Toggle infinite looping" msgstr "Basculer en boucle infinie" #: src/celluloid-shortcuts-window.c:88 msgid "Pause or unpause" msgstr "Pause/reprendre" #: src/celluloid-shortcuts-window.c:89 msgid "Quit" msgstr "Quitter" #: src/celluloid-shortcuts-window.c:90 msgid "Save current playback position and quit" msgstr "Enregistrer la position de lecture actuelle et quitter" #: src/celluloid-shortcuts-window.c:93 msgid "Enter search mode" msgstr "" #: src/celluloid-shortcuts-window.c:94 msgid "Jump to next match" msgstr "" #: src/celluloid-shortcuts-window.c:95 msgid "Jump to previous match" msgstr "" #: src/celluloid-shortcuts-window.c:96 msgid "Exit search mode" msgstr "" #: src/celluloid-shortcuts-window.c:99 msgid "Cycle through audio tracks" msgstr "Parcourir les pistes audio" #: src/celluloid-shortcuts-window.c:100 src/celluloid-shortcuts-window.c:101 msgid "Decrease/increase volume" msgstr "Diminuer/augmenter le volume" #: src/celluloid-shortcuts-window.c:102 msgid "Mute or unmute" msgstr "Muet" #: src/celluloid-shortcuts-window.c:103 msgid "Adjust audio delay by +/- 0.1 seconds" msgstr "Ajustez le délai audio de +/- 0,1 seconde" #: src/celluloid-shortcuts-window.c:106 msgid "Toggle subtitle visibility" msgstr "Commutation de la visibilité des sous-titres" #: src/celluloid-shortcuts-window.c:107 msgid "Cycle through available subtitles" msgstr "Parcourir les sous-titres disponibles" #: src/celluloid-shortcuts-window.c:108 msgid "Adjust subtitle delay by +/- 0.1 seconds" msgstr "Ajustez le délai des sous-titres de +/- 0,1 seconde" #: src/celluloid-shortcuts-window.c:109 msgid "Toggle SSA/ASS subtitles style override" msgstr "Commutation de la priorité de style des sous-titres SSA/ASS" #: src/celluloid-shortcuts-window.c:110 msgid "Move subtitles up/down" msgstr "Déplacer les sous titres en haut/bas" #: src/celluloid-shortcuts-window.c:111 msgid "Toggle VSFilter aspect compatibility mode" msgstr "Commutation du mode de compatibilité VSFilter" #: src/celluloid-shortcuts-window.c:114 msgid "Cycle through video tracks" msgstr "Parcourir les pistes vidéo" #: src/celluloid-shortcuts-window.c:115 msgid "Decrease/increase pan-and-scan range" msgstr "Augmenter/diminuer la portée du panoramique et du balayage" #: src/celluloid-shortcuts-window.c:116 msgid "Take a screenshot" msgstr "Prendre une capture d'écran" #: src/celluloid-shortcuts-window.c:117 msgid "Take a screenshot, without subtitles" msgstr "Prendre une capture d'écran, sans les sous-titres" #: src/celluloid-shortcuts-window.c:118 msgid "Take a screenshot, as the window shows it" msgstr "Prendre une capture d'écran, comme la fenêtre le montre" #: src/celluloid-shortcuts-window.c:119 msgid "Resize video to half its original size" msgstr "Réduire de moitié la taille de la vidéo" #: src/celluloid-shortcuts-window.c:120 msgid "Resize video to its original size" msgstr "Redimensionner la vidéo à sa taille d'origine" #: src/celluloid-shortcuts-window.c:121 msgid "Resize video to double its original size" msgstr "Doubler la taille de la vidéo" #: src/celluloid-shortcuts-window.c:122 msgid "Adjust contrast" msgstr "Ajuster le contraste" #: src/celluloid-shortcuts-window.c:123 msgid "Adjust brightness" msgstr "Ajuster la luminosité" #: src/celluloid-shortcuts-window.c:124 msgid "Adjust gamma" msgstr "Ajuster le gamma" #: src/celluloid-shortcuts-window.c:125 msgid "Adjust saturation" msgstr "Ajuster la saturation" #: src/celluloid-shortcuts-window.c:126 msgid "Activate or deactivate deinterlacer" msgstr "Activer ou désactiver le désentrelaceur" #: src/celluloid-shortcuts-window.c:127 msgid "Cycle aspect ratio override" msgstr "Remplacement du rapport d'aspect du cycle" #: src/celluloid-shortcuts-window.c:130 msgid "User Interface" msgstr "Interface de l'utilisateur" #: src/celluloid-shortcuts-window.c:131 msgid "Video" msgstr "Vidéo" #: src/celluloid-shortcuts-window.c:132 msgid "Audio" msgstr "Audio" #: src/celluloid-shortcuts-window.c:133 msgid "Subtitle" msgstr "Sous-titre" #: src/celluloid-shortcuts-window.c:134 msgid "Playback" msgstr "Lecture" #: src/celluloid-shortcuts-window.c:135 msgid "Seeking" msgstr "Navigation" #: src/celluloid-view.c:728 msgid "Load Audio Track…" msgstr "Chargement de la piste audio...." #: src/celluloid-view.c:732 msgid "Load Video Track…" msgstr "" #: src/celluloid-view.c:736 msgid "Load Subtitle Track…" msgstr "Chargement des sous-titres...." #: src/celluloid-view.c:901 msgid "" "Enabling or disabling client-side decorations requires restarting to take " "effect." msgstr "" "Activation ou désactivation des décorations côté client. Nécessite un " "redémarrage pour prendre effet." #: src/celluloid-view.c:1444 msgid "Add Folder to Playlist" msgstr "" #: src/celluloid-view.c:1444 msgid "Open Folder" msgstr "" #: src/celluloid-view.c:1449 msgid "Add File to Playlist" msgstr "Ajouter un fichier à la liste de lecture" #: src/celluloid-view.c:1449 msgid "Open File" msgstr "Ouvrir un fichier" #: src/celluloid-view.c:1485 msgid "Add Location to Playlist" msgstr "Ajouter l'emplacement à la liste de lecture" #: src/celluloid-view.c:1486 msgid "Open Location" msgstr "Ouvrir un emplacement" #: src/celluloid-view.c:1532 msgid "Save Playlist" msgstr "Enregistrer la liste de lecture" #: src/celluloid-view.c:1598 msgid "A GTK frontend for MPV" msgstr "Une interface GTK pour MPV" #: src/celluloid-view.c:1608 msgid "translator-credits" msgstr "" "Harenome Ranaivorarivony Razanajato\n" "JeanDeLaMouche\n" "Erwan Amans " celluloid-0.20/po/hr.po000066400000000000000000001115541373135401300150050ustar00rootroot00000000000000# gnome-mpv , 2019. #zanata # gogo , 2019. #zanata # gogo , 2020. #zanata msgid "" msgstr "" "Project-Id-Version: gnome-mpv 0.15\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-02-20 20:48+0700\n" "PO-Revision-Date: 2020-05-16 06:44-0400\n" "Last-Translator: gogo \n" "Language-Team: Croatian\n" "Language: hr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" "X-Generator: Zanata 4.6.2\n" #: data/io.github.celluloid_player.Celluloid.gschema.xml:11 msgid "" "Whether the settings has already been migrated from the previous version" msgstr "Jesu li postavke već migrirane iz prijašnje inačice" #: data/io.github.celluloid_player.Celluloid.gschema.xml:17 msgid "Whether or not to automatically resize window to fit video" msgstr "Treba li automatski prilagoditi prozor na video veličinu" #: data/io.github.celluloid_player.Celluloid.gschema.xml:23 msgid "Enable or disable dark theme" msgstr "Omogući ili onemogući tamnu temu" #: data/io.github.celluloid_player.Celluloid.gschema.xml:29 msgid "Enable or disable client-side decorations" msgstr "Omogući ili onemogući ukrase klijenta" #: data/io.github.celluloid_player.Celluloid.gschema.xml:35 msgid "Whether or not to use floating controls in windowed mode" msgstr "Treba li koristiti lebdeće upravljanje u prozorskom načinu prikaza" #: data/io.github.celluloid_player.Celluloid.gschema.xml:41 msgid "Whether or not to autohide mouse cursor in windowed mode" msgstr "" "Treba li koristiti automatsko sakrivanje pokazivača miša u prozorskom načinu" " prikaza miša" #: data/io.github.celluloid_player.Celluloid.gschema.xml:47 msgid "The minimum cursor speed at which floating controls will be unhidden." msgstr "" "Najmanja brzina pokazivača miša pri kojoj će lebdeće upravljanje biti " "prikazano." #: data/io.github.celluloid_player.Celluloid.gschema.xml:54 msgid "" "The size of the dead zone in which cursor movement will not cause the " "controls to be shown." msgstr "" "Veličina mrtve zone u kojoj pomicanje pokazivača miša neće uzrokovati prikaz" " upravljanja." #: data/io.github.celluloid_player.Celluloid.gschema.xml:60 msgid "Whether or not to use skip buttons for controlling playlist" msgstr "Treba li koristiti tipke preskakanja za upravljanje popisom izvođenja" #: data/io.github.celluloid_player.Celluloid.gschema.xml:66 msgid "" "Whether or not to make file chooser dialog remember last folder accessed" msgstr "" "Treba li dijalog odabiratelja datoteka zapamtiti posljednje pristupljenu " "mapu" #: data/io.github.celluloid_player.Celluloid.gschema.xml:72 msgid "Whether or not to create new windows when there is already an instance" msgstr "Treba li pokrenuti nove prozore kada već postoji pokrenut primjerak" #: data/io.github.celluloid_player.Celluloid.gschema.xml:78 #: src/celluloid-application.c:575 msgid "Options to pass to mpv" msgstr "Mogućnosti za prosljeđivanje u mpv" #: data/io.github.celluloid_player.Celluloid.gschema.xml:84 msgid "Path to mpv configuration file" msgstr "Putanja do mpv datoteke podešavanja" #: data/io.github.celluloid_player.Celluloid.gschema.xml:90 msgid "Load or don't load mpv configuration file" msgstr "Učitaj ili ne učitavaj mpv datoteku podešavanja" #: data/io.github.celluloid_player.Celluloid.gschema.xml:96 msgid "Path to mpv input configuration file" msgstr "Putanja do ulazne datoteke mpv podešavanja" #: data/io.github.celluloid_player.Celluloid.gschema.xml:102 msgid "Load or don't load mpv input configuration file" msgstr "Učitaj ili nemoj učitati ulaznu datoteku mpv podešavanja" #: data/io.github.celluloid_player.Celluloid.gschema.xml:108 msgid "Whether or not to enable MPRIS support" msgstr "Treba li omogućiti MPRIS podršku" #: data/io.github.celluloid_player.Celluloid.gschema.xml:114 msgid "" "Whether or not to enable GNOME-Settings-Daemon-based media keys support" msgstr "" "Treba li omogućiti GNOME-Settings-Daemon-based podršku za medijske tipke" #: data/io.github.celluloid_player.Celluloid.gschema.xml:120 msgid "Whether or not to prefetch metadata for non-current playlist entries" msgstr "Treba li preuzeti metapodatke za nestandardne stavke popisa izvođenja" #: data/io.github.celluloid_player.Celluloid.gschema.xml:126 msgid "" "Whether or not to display an error message when playback of a file ends with" " an error" msgstr "" "Treba li prikazati poruku greške kada reprodukcija datoteke završi greškom" #: data/io.github.celluloid_player.Celluloid.gschema.xml:132 msgid "Whether or not to inhibit session idling when something is playing" msgstr "Treba li pokrenuti mirovanje sesije pri reprodukciji" #: data/io.github.celluloid_player.Celluloid.gschema.xml:142 msgid "Width of the window" msgstr "Širina prozora" #: data/io.github.celluloid_player.Celluloid.gschema.xml:148 msgid "Height of the window" msgstr "Visina prozora" #: data/io.github.celluloid_player.Celluloid.gschema.xml:154 msgid "Whether or not the window is maximized" msgstr "Treba li uvećati prozor" #: data/io.github.celluloid_player.Celluloid.gschema.xml:161 msgid "Volume of player" msgstr "Glasnoća zvuka reporduktora" #: data/io.github.celluloid_player.Celluloid.gschema.xml:167 msgid "Whether or not to loop when the end of playlist is reached" msgstr "Treba li ponovno pokrenuti popis izvođenja kada je dosegnut kraj" #: data/io.github.celluloid_player.Celluloid.gschema.xml:173 msgid "Width of the playlist" msgstr "Širina popisa izvođenja" #: data/io.github.celluloid_player.Celluloid.gschema.xml:179 msgid "Show or not show the controls" msgstr "Treba li prikazati upravljanja" #: data/io.github.celluloid_player.Celluloid.gschema.xml:185 msgid "Show or not show the playlist" msgstr "Prikazuj ili ne prikazuj popis izvođenja" #: data/io.github.celluloid_player.Celluloid.gschema.xml:191 msgid "URI of the last folder accessed" msgstr "URI posljednje pristupljene mape" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:7 #: data/io.github.celluloid_player.Celluloid.desktop.in:4 #: src/celluloid-application.c:451 msgid "Celluloid" msgstr "Celuloid" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:8 msgid "GTK+ frontend for mpv" msgstr "GTK+ grafičko korisničko sučelje za mpv" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:16 msgid "" "Celluloid is a simple media player that can play virtually all video and " "audio formats. It supports playlists and MPRIS2 media player controls. The " "design of Celluloid follows the GNOME Human Interface Guidelines, but can " "also be adapted for other systems that don't use client-side decorations " "(CSD). It is based on the mpv library and GTK." msgstr "" "Celuloid je jednostavan medijski reproduktor koji može reproducirati " "virtualno sve video i zvučne formate. Podržava popise izvođenja i MPRIS2 " "medijsko upravljanje reprodukcijom. Dizajn Celuloida slijedi smjernice GNOME" " Human sučelja , ali isto tako može biti prilagođen za druge sustave koji ne" " koriste ukrase od strane klijenta (CSD). Temelji se na mpv biblioteci i " "GTK-u." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:23 msgid "Features:" msgstr "Značajke:" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:25 msgid "Drag and drop playlist" msgstr "Povuci i ispusti popis izvođenja" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:26 msgid "Loading external mpv configuration files" msgstr "Učitavanje vanjske mpv datoteke podešavanja" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:27 msgid "MPRIS2 D-Bus interface" msgstr "MPRIS2 D-Bus sučelje" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:30 msgid "The Celluloid Developers" msgstr "Celuloid razvijatelji" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:34 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:87 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:117 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:156 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:187 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:215 msgid "This release contains the following changes:" msgstr "Ovo izdanje sadrži sljedeće promjene:" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:38 msgid "" "Adjust the range of volume button based on the value of the volume-max " "property." msgstr "" "Prilagodba raspona tipke glasnoće zvuka temeljene na vrijednosti svojstva " "najveće glasnoće zvuka" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:42 msgid "Retain window maximization state across sessions." msgstr "Zadržavanje stanja uvećanog prozora po sesijama." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:45 msgid "Retain loop state across sessions." msgstr "Zadržavanje stanja petlje po sesijama." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:48 msgid "Implement playlist search." msgstr "Implemetirana je pretraga popisa izvođenja." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:51 msgid "Update the list of shortcuts in Keyboard Shortcuts dialog." msgstr "Nadopunjen je popis prečaca u dijalogu prečaca tipkovnice." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:54 msgid "Correctly handle quotes and escape sequences in extra mpv options." msgstr "" "Ispravljeno je rukovanje s navodnicima i escape nizovima u dodatnim mpv " "mogućnostima." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:57 msgid "Display time at cursor position when hovering the seek bar." msgstr "" "Prikaz vremena na položaju pokazivača pri prelasku preko trake pretrage." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:60 msgid "" "Deprecate '--mpv-options'. Options starting with '--mpv-' can be used to set" " mpv options instead. For example, passing '--mpv-vf=vflip' to Celluloid is " "equivalent to passing '--vf=vflip' to mpv." msgstr "" "Zastarjelo '--mpv-options'. Mogućnosti koje započinju s '--mpv-' umjesto se " "mogu koristiti za postavljanje mpv mogućnosti. Na primjer, proslijeđivanje '" "--mpv-vf=vflip' u Celluloid je ekvivalent proslijeđivanju '--vf=vflip' u " "mpv." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:66 msgid "" "Add support for configuring dead zone, an area in which mouse movement will " "not cause controls to be shown." msgstr "" "Dodana je mogućnost podešavanja mrtve zone, područje u kojemu pomicanje miša" " neće pokrenuti prikazivanje kontrola." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:70 msgid "Make window sizing work correctly with HiDPI displays." msgstr "" "Promjena veličine prozora na zaslonima visoke razlučivosti (HiDPI) sada radi" " ispravno." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:73 msgid "Add Finnish translation by Kimmo Kujansuu." msgstr "Finski prijevod je dodao Kimmo Kujansuu." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:76 msgid "Add Slovenian translation by @bertronika." msgstr "Slovenski prijevod je dodao @bertronika." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:80 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:110 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:149 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:180 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:208 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:236 msgid "This listing is incomplete. See git log for complete changelog." msgstr "" "Ovaj popis je nepotpun. Pogledajte git zapis za potpuni pregled promjena." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:91 msgid "Add Persian translation by @danialbehzadi" msgstr "Perzijski prijevod je dodao @danialbehzadi" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:94 msgid "Add Ukranian translation by @vl-nix" msgstr "Ukrajinski prijevod je dodao @vl-nix" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:97 msgid "" "Add support for showing/hiding window decorations using the mpv option " "--border" msgstr "" "Dodana je podrška za prikaz/sakrivanje ukrasa prozora pomoću mogućnosti " "--border" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:100 msgid "Add menu item for opening discs" msgstr "Dodana je stavka izbornika za otvaranje diskova" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:103 msgid "Block cursor autohide when volume popup is open in windowed mode" msgstr "" "Blokirano je automatsko sakrivanje pokazivača miša kada je skočni prozor " "glasnoće zvuka otvoren u prozorskom načinu prikaza" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:106 msgid "Fix crash with mpv 0.30" msgstr "Popravljeno je rušenje s mpv 0.30" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:121 msgid "Rename project to Celluloid" msgstr "Preimenovanje projekta u Celuloid" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:124 msgid "Add Turkish translation by @TeknoMobil" msgstr "Turski prijevod je dodao @TeknoMobil" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:127 msgid "Add Esperanto translation by @F3nd0" msgstr "Esperanto prijevod je dodao @F3nd0" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:130 msgid "Migrate from opengl-cb to the new render API" msgstr "Prijelaz sa opengl-cb u novi API prikaza" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:133 msgid "Handle numpad keybindings" msgstr "Rukovanje brojčanim prečacima" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:136 msgid "Handle unicode keybindings" msgstr "Rukovanje unikôdnim prečacima" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:139 msgid "Forward media key events to mpv" msgstr "Proslijeđivanje događaja medijske tipke u mpv" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:142 msgid "" "Add dconf key for controlling cursor speed at which controls are unhidden" msgstr "" "Dodan je dconf izraz za upravljanje brzinom pokazivača miša kada se " "upravljanja prikažu" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:145 msgid "Add option for suppressing playback errors" msgstr "Dodana je mogućnost za potiskivanje grešaka repordukcije" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:160 msgid "Split up the General tab in the preferences dialog" msgstr "Podjela kartice Općenito u dijalogu osobitosti" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:163 msgid "Improve behavior when toggling playlist under tiling window managers" msgstr "" "Poboljšanje ponašanja uklj/isklj popisa izvođenja pri popločenom prikazu u " "upraviteljima prozora" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:166 msgid "Move app menu items to primary menu" msgstr "Premještanje izbornika aplikacije u glavni izbornik" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:169 msgid "Use separate MPRIS DBus connection for each window" msgstr "Korištenje zasebnog MPRIS DBus povezivanja za svaki prozor" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:172 msgid "Add support for MPRIS property LoopStatus" msgstr "Dodana je podrška za MPRIS LoopStatus svojstvo" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:175 msgid "" "Add option --mpv-options for setting arbitrary mpv options from the command-" "line" msgstr "" "Dodana je mogućnost --mpv-options za postavljanje proizvoljne mpv mogućnosti" " iz naredbenog redka" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:191 msgid "Set default screenshot directory to XDG_PICTURES_DIR" msgstr "Zadani direktorij snimki zaslona je postavljen u XDG_PICTURES_DIR" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:194 msgid "" "Improve handling of --window-scale, --autofit, --autofit-larger, and " "--autofit-smaller" msgstr "" "Poboljšano je rukovanje sa --window-scale, --autofit, --autofit-larger i " "--autofit-smaller" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:198 msgid "Add command line option for setting WM_ROLE" msgstr "Dodana je WM_ROLE mogućnost naredbenog redka" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:201 msgid "Add context menu item for removing playlist items" msgstr "" "Dodana je stavka sadržajnog izbornika za uklanjanje stavki popisa izvođenja" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:204 msgid "Add context menu item for copying location of playlist items" msgstr "" "Dodana je stavka sadržajnog izbornika za kopiranje lokacije stavki popisa " "izvođenja" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:219 msgid "" "Add option to make skip buttons change playlist entries rather than chapters" msgstr "" "Dodana je mogućnost za stvaranje tipki preskakanja stavki popisa izvođenja " "radije nego poglavlja" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:223 msgid "Make the file chooser accept non-local locations" msgstr "Odabiratelj datoteka sada prihvaća nelokalne lokacije" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:226 msgid "Add right-click menu entry for looping a single file" msgstr "" "Dodana je stavka izbornika lijevog klika u svrhu ponavljanja jedne datoteke" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:229 msgid "Handle property change events for fullscreen and window-scale" msgstr "" "Rukovanje događajima svojstava promjene za cjelozaslonski ili prikaz u " "prozoru" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:232 msgid "Add option to autohide mouse cursor in windowed mode" msgstr "" "Dodana je mogućnost za automatsko sakrivanje pokazivača miša u prozorskom " "načinu prikaza" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:246 msgid "The main window showing the application in action" msgstr "Glavni prozor prikazuje aplikaciju u akciji" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:250 msgid "The main window with CSD disabled" msgstr "Glavni prozor s onemogućenim CSD-om" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:254 msgid "The main window with playlist open" msgstr "Glavni prozor sa otvorenim popisom izvođenja" #: data/io.github.celluloid_player.Celluloid.desktop.in:5 msgid "Multimedia Player" msgstr "Multimedijski reporduktor" #: data/io.github.celluloid_player.Celluloid.desktop.in:6 msgid "Play movies and videos" msgstr "Gledajte filmove i video snimke" #. Translators: Search terms to find this application. Don't translate the #. semicolons! The list MUST also end with a semicolon! #: data/io.github.celluloid_player.Celluloid.desktop.in:17 msgid "Video;Movie;Film;Clip;Series;Player;DVD;TV;Disc;Album;Music;GNOME;mpv;" msgstr "" "Video;Snimka;Film;Klip;Serija;Reproduktor;DVD;TV;Disk;Album;Glazba;GNOME;mpv;" #: data/io.github.celluloid_player.Celluloid.desktop.in:23 msgid "New Window" msgstr "Novi prozor" #: src/celluloid-application.c:495 msgid "Playing" msgstr "Reprodukcija" #: src/celluloid-application.c:551 msgid "Show release version" msgstr "Prikaži inačicu izdanja" #: src/celluloid-application.c:559 msgid "Enqueue" msgstr "Dodaj u red čekanja" #: src/celluloid-application.c:567 msgid "Create a new window" msgstr "Stvori novi prozor" #: src/celluloid-application.c:576 msgid "OPTIONS" msgstr "MOGUĆNOSTI" #: src/celluloid-application.c:583 msgid "Set the window role" msgstr "Postavi namjenu prozora" #: src/celluloid-application.c:591 msgid "Don't connect to an already-running instance" msgstr "Ne povezuj s već pokrenutim primjerkom" #: src/celluloid-control-box.c:362 msgid "Pause" msgstr "Pauziraj" #: src/celluloid-control-box.c:362 src/celluloid-control-box.c:565 msgid "Play" msgstr "Reproduciraj" #: src/celluloid-control-box.c:568 msgid "Stop" msgstr "Zaustavi" #: src/celluloid-control-box.c:571 msgid "Forward" msgstr "Premotaj unaprijed" #: src/celluloid-control-box.c:574 msgid "Rewind" msgstr "Premotaj unatrag" #: src/celluloid-control-box.c:577 msgid "Next Chapter" msgstr "Sljedeće poglavlje" #: src/celluloid-control-box.c:580 msgid "Previous Chapter" msgstr "Prijašnje poglavlje" #: src/celluloid-control-box.c:583 msgid "Loop Playlist" msgstr "Ponovi popis izvođenja" #: src/celluloid-control-box.c:586 msgid "Shuffle Playlist" msgstr "Naizmjenični popis izvođenja" #: src/celluloid-control-box.c:589 src/celluloid-header-bar.c:91 msgid "Toggle Fullscreen" msgstr "Prozor ili cijeli zaslon" #: src/celluloid-controller.c:992 src/celluloid-view.c:1558 msgid "Error" msgstr "Greška" #: src/celluloid-file-chooser.c:139 src/celluloid-plugins-manager.c:170 msgid "All Files" msgstr "Dodaj datoteke" #: src/celluloid-file-chooser.c:147 msgid "Media Files" msgstr "Medijske datoteke" #: src/celluloid-file-chooser.c:158 msgid "Audio Files" msgstr "Glazbene datoteke" #: src/celluloid-file-chooser.c:166 msgid "Video Files" msgstr "Video datoteke" #: src/celluloid-file-chooser.c:174 msgid "Image Files" msgstr "Slikovne datoteke" #: src/celluloid-file-chooser.c:184 msgid "Subtitle Files" msgstr "Datoteke podnaslova" #: src/celluloid-menu.c:106 msgid "None" msgstr "Nikakav" #. For simplicity, also dup the default string used when the #. * track has no title. #: src/celluloid-menu.c:121 msgid "Unknown" msgstr "Nepoznat" #: src/celluloid-menu.c:154 msgid "_Load External…" msgstr "_Učitaj vanjski…" #. Disable the menu item by setting the action to something #. * invalid. #: src/celluloid-menu.c:207 msgid "No disc found" msgstr "Nema pronađenog diska" #: src/celluloid-menu.c:235 msgid "_File" msgstr "_Datoteka" #: src/celluloid-menu.c:236 src/celluloid-menu.c:318 msgid "_Open…" msgstr "_Otvori…" #: src/celluloid-menu.c:237 src/celluloid-menu.c:319 msgid "Open _Folder…" msgstr "" #: src/celluloid-menu.c:238 src/celluloid-menu.c:320 msgid "Open _Location…" msgstr "Otvori _lokaciju…" #: src/celluloid-menu.c:239 msgid "Open _Disc…" msgstr "Otvori _disk…" #: src/celluloid-menu.c:240 src/celluloid-menu.c:290 msgid "_Save Playlist" msgstr "_Spremi popis izvođenja" #: src/celluloid-menu.c:241 src/celluloid-menu.c:323 msgid "_New Window" msgstr "_Novi prozor" #: src/celluloid-menu.c:242 msgid "_Quit" msgstr "_Zatvori" #: src/celluloid-menu.c:243 msgid "_Edit" msgstr "_Uredi" #: src/celluloid-menu.c:244 src/celluloid-menu.c:296 msgid "_Preferences" msgstr "_Osobitosti" #: src/celluloid-menu.c:245 src/celluloid-menu.c:292 msgid "_Video Track" msgstr "_Video zapis" #: src/celluloid-menu.c:246 src/celluloid-menu.c:293 msgid "_Audio Track" msgstr "_Zvučni zapis" #: src/celluloid-menu.c:247 src/celluloid-menu.c:294 msgid "S_ubtitle Track" msgstr "Z_apis podnaslova" #: src/celluloid-menu.c:248 msgid "_View" msgstr "_Pogled" #: src/celluloid-menu.c:249 src/celluloid-menu.c:287 msgid "_Toggle Controls" msgstr "Uklj/Isklj _upravljanja" #: src/celluloid-menu.c:250 src/celluloid-menu.c:289 msgid "_Toggle Playlist" msgstr "Uklj/Isklj popis _izvođenja" #: src/celluloid-menu.c:251 msgid "_Fullscreen" msgstr "_Cjelozaslonski prikaz" #: src/celluloid-menu.c:252 msgid "_Help" msgstr "_Pomoć" #: src/celluloid-menu.c:253 src/celluloid-menu.c:297 msgid "_Keyboard Shortcuts" msgstr "_Prečaci tipkovnice" #: src/celluloid-menu.c:254 src/celluloid-menu.c:298 msgid "_About Celluloid" msgstr "_O Celuloidu" #: src/celluloid-menu.c:321 msgid "Open _Disc" msgstr "Otvori _disk" #: src/celluloid-mpv.c:240 #, c-format msgid "Playback was terminated abnormally. Reason: %s." msgstr "Reporodukcija je prekinuta neočekivano. Razlog: %s." #: src/celluloid-open-location-dialog.c:130 msgid "Location:" msgstr "Lokacija:" #: src/celluloid-open-location-dialog.c:136 #: src/celluloid-preferences-dialog.c:401 msgid "_Cancel" msgstr "_Odustani" #: src/celluloid-open-location-dialog.c:138 msgid "_Open" msgstr "_Otvori" #: src/celluloid-player.c:550 msgid "Failed to apply one or more MPV options." msgstr "Neuspjela primjena jedne ili više MPV mogućnosti." #: src/celluloid-playlist-widget.c:784 msgid "_Copy Location" msgstr "_Kopiraj lokaciju" #: src/celluloid-playlist-widget.c:785 msgid "_Remove" msgstr "_Ukloni" #: src/celluloid-playlist-widget.c:787 msgid "_Add…" msgstr "_Dodaj…" #: src/celluloid-playlist-widget.c:788 msgid "Add _Folder…" msgstr "" #: src/celluloid-playlist-widget.c:789 msgid "Add _Location…" msgstr "Dodaj _lokaciju…" #: src/celluloid-playlist-widget.c:790 msgid "_Shuffle" msgstr "_Naizmjenično" #: src/celluloid-playlist-widget.c:791 msgid "Loop _File" msgstr "Ponovi _datoteku" #: src/celluloid-playlist-widget.c:792 msgid "Loop _Playlist" msgstr "Ponovi _popis izvođenja" #: src/celluloid-playlist-widget.c:933 src/celluloid-shortcuts-window.c:136 msgid "Playlist" msgstr "Popis izvođenja" #: src/celluloid-playlist-widget.c:941 msgid "Playlist is empty" msgstr "Popis izvođenja je prazan" #: src/celluloid-plugins-manager.c:163 src/celluloid-plugins-manager.c:409 msgid "Add Plugin" msgstr "Dodaj priključak" #: src/celluloid-plugins-manager.c:175 msgid "Lua Plugins" msgstr "Lua priključci" #: src/celluloid-plugins-manager.c:181 msgid "JavaScript Plugins" msgstr "JavaScript priključci" #: src/celluloid-plugins-manager.c:186 msgid "C Plugins" msgstr "C priključci" #: src/celluloid-plugins-manager.c:334 #, c-format msgid "Failed to copy file from '%s' to '%s'. Reason: %s" msgstr "Neuspjelo kopiranje datoteke sa '%s' na '%s'. Razlog: %s" #: src/celluloid-plugins-manager.c:385 msgid "No plugins found" msgstr "Nema pronađenih priključaka" #: src/celluloid-plugins-manager-item.c:79 msgid "Remove" msgstr "Ukloni" #: src/celluloid-plugins-manager-item.c:178 msgid "" "Are you sure you want to remove this script? This action cannot be undone." msgstr "Sigurno želite ukloniti ovu skriptu? Ova radnja se ne može poništiti." #: src/celluloid-plugins-manager-item.c:199 #, c-format msgid "Failed to delete file '%s'. Reason: %s" msgstr "Neuspjelo brisanje datoteke '%s'. Razlog: %s" #: src/celluloid-preferences-dialog.c:304 msgid "Automatically resize window to fit video" msgstr "Automatski prilagodi prozor na video veličinu" #: src/celluloid-preferences-dialog.c:307 msgid "Enable client-side decorations" msgstr "Omogući ukrase klijenta" #: src/celluloid-preferences-dialog.c:310 msgid "Enable dark theme" msgstr "Omogući tamnu temu" #: src/celluloid-preferences-dialog.c:313 msgid "Use floating controls in windowed mode" msgstr "Koristi lebdeća upravljanja u prozorskom načinu prikaza" #: src/celluloid-preferences-dialog.c:316 msgid "Autohide mouse cursor in windowed mode" msgstr "Automatski sakrij pokazivača miša u prozorskom načinu prikaza" #: src/celluloid-preferences-dialog.c:319 msgid "Use skip buttons for controlling playlist" msgstr "Koristi tipke preskakanja za upravljanje popisom izvođenja" #: src/celluloid-preferences-dialog.c:322 msgid "Remember last file's location" msgstr "Zapamti lokaciju posljednje datoteke" #: src/celluloid-preferences-dialog.c:327 msgid "Load MPV configuration file" msgstr "Učitaj MPV datoteku podešavanja" #: src/celluloid-preferences-dialog.c:330 msgid "MPV configuration file:" msgstr "MPV datoteka podešavanja:" #: src/celluloid-preferences-dialog.c:333 msgid "Load MPV input configuration file" msgstr "Učitaj ulaznu datoteku MPV podešavanja" #: src/celluloid-preferences-dialog.c:336 msgid "MPV input configuration file:" msgstr "Ulazna datoteka MPV podešavanja:" #: src/celluloid-preferences-dialog.c:341 msgid "Always open new window" msgstr "Uvijek otvori novi prozor" #: src/celluloid-preferences-dialog.c:344 msgid "Ignore playback errors" msgstr "Zanemari greške reprodukcije" #: src/celluloid-preferences-dialog.c:347 msgid "Prefetch metadata" msgstr "Preuzmi metapodatke" #: src/celluloid-preferences-dialog.c:350 msgid "Enable MPRIS support" msgstr "Omogući MPRIS podršku" #: src/celluloid-preferences-dialog.c:353 msgid "Enable media keys support" msgstr "Omogući podršku medijskih tipki" #: src/celluloid-preferences-dialog.c:356 msgid "Extra MPV options:" msgstr "Dodatne MPV mogućnosti:" #: src/celluloid-preferences-dialog.c:389 msgid "Interface" msgstr "Sučelje" #: src/celluloid-preferences-dialog.c:392 msgid "Config Files" msgstr "Datoteke podešavanja" #: src/celluloid-preferences-dialog.c:395 msgid "Miscellaneous" msgstr "Ostalo" #: src/celluloid-preferences-dialog.c:398 msgid "Plugins" msgstr "Priključci" #: src/celluloid-preferences-dialog.c:403 msgid "_Save" msgstr "_Spremi" #: src/celluloid-preferences-dialog.c:421 msgid "Preferences" msgstr "Osobitosti" #: src/celluloid-shortcuts-window.c:57 msgid "Open file" msgstr "Otvori datoteku" #: src/celluloid-shortcuts-window.c:58 msgid "Open location" msgstr "Otvori lokaciju" #: src/celluloid-shortcuts-window.c:59 msgid "Add file to playlist" msgstr "Dodaj datoteku na popis izvođenja" #: src/celluloid-shortcuts-window.c:60 msgid "Add location to playlist" msgstr "Dodaj lokaciju na popis izvođenja" #: src/celluloid-shortcuts-window.c:61 msgid "Show preferences dialog" msgstr "Prikaži dijalog osobitosti" #: src/celluloid-shortcuts-window.c:62 msgid "Toggle controls" msgstr "Uklj/Isklj upravljanja" #: src/celluloid-shortcuts-window.c:63 msgid "Toggle playlist" msgstr "Uklj/Isklj popis izvođenja" #: src/celluloid-shortcuts-window.c:64 msgid "Toggle fullscreen mode" msgstr "Uklj/Isklj cjelozaslonski način rada" #: src/celluloid-shortcuts-window.c:65 msgid "Leave fullscreen mode" msgstr "Napusti cjelozaslonski prikaz" #: src/celluloid-shortcuts-window.c:66 msgid "Toggle OSD states between normal and playback time/duration" msgstr "" "Uklj/Isklj OSD prikaz napretka i proteklog vremena/trajanja reprodukcije" #: src/celluloid-shortcuts-window.c:67 msgid "Show filename on the OSD" msgstr "Prikaži naziv datoteka na OSD-u" #: src/celluloid-shortcuts-window.c:68 msgid "Show progress, elapsed time, and duration on the OSD" msgstr "Prikaži napredak, proteklo vrijeme i trajanje na OSD-u" #: src/celluloid-shortcuts-window.c:71 msgid "Seek backward/forward 5 seconds" msgstr "Premotaj unatrag/unaprijed za 5 sekundi" #: src/celluloid-shortcuts-window.c:72 msgid "Exact seek backward/forward 1 second" msgstr "Premotaj unatrag/unaprijed za 1 sekundu" #: src/celluloid-shortcuts-window.c:73 msgid "Seek backward/forward 1 minute" msgstr "Premotaj unatrag/unaprijed za 1 minutu" #: src/celluloid-shortcuts-window.c:74 msgid "Exact seek backward/forward 5 seconds" msgstr "Premotaj unatrag/unaprijed za 5 sekundi" #: src/celluloid-shortcuts-window.c:75 msgid "Seek to previous/next subtitle" msgstr "Prebaci na prijašnji/sljedeći podnaslov" #: src/celluloid-shortcuts-window.c:76 msgid "Step backward/forward a single frame" msgstr "Premotaj za sličicu unatrag/unaprijed" #: src/celluloid-shortcuts-window.c:77 msgid "Seek to the beginning of the previous/next chapter" msgstr "Premotaj na početak prijašnjeg/sljedećeg poglavlja" #: src/celluloid-shortcuts-window.c:80 msgid "Decrease/increase playback speed by 10%" msgstr "Smanji/Povećaj brzinu reprodukcije za 10%" #: src/celluloid-shortcuts-window.c:81 msgid "Halve/double current playback speed" msgstr "Smanji za pola ili udvostruči brzinu trenutne reprodukcije" #: src/celluloid-shortcuts-window.c:82 msgid "Reset playback speed to normal" msgstr "Vrati na normalnu brzinu repordukcije" #: src/celluloid-shortcuts-window.c:83 msgid "Go backward/forward in the playlist" msgstr "Idi natrag/naprijed u popisu izvođenja" #: src/celluloid-shortcuts-window.c:84 msgid "Remove selected playlist item" msgstr "Ukloni odabranu stavku s popisa izvođenja" #: src/celluloid-shortcuts-window.c:85 msgid "Save playlist" msgstr "Spremi popis izvođenja" #: src/celluloid-shortcuts-window.c:86 msgid "Set/clear A-B loop points" msgstr "Postavi/Ukloni A-B točke ponavljanja" #: src/celluloid-shortcuts-window.c:87 msgid "Toggle infinite looping" msgstr "Uklj/Isklj beskonačno ponavljanje" #: src/celluloid-shortcuts-window.c:88 msgid "Pause or unpause" msgstr "Pauziraj ili nastavi reprodukciju" #: src/celluloid-shortcuts-window.c:89 msgid "Quit" msgstr "Zatvori" #: src/celluloid-shortcuts-window.c:90 msgid "Save current playback position and quit" msgstr "Spremi trenutni položaj reprodukcije i zatvori" #: src/celluloid-shortcuts-window.c:93 msgid "Enter search mode" msgstr "Pokreni način pretrage" #: src/celluloid-shortcuts-window.c:94 msgid "Jump to next match" msgstr "Idi na sljedeće podudaranje" #: src/celluloid-shortcuts-window.c:95 msgid "Jump to previous match" msgstr "Idi na prijašnje podudaranje" #: src/celluloid-shortcuts-window.c:96 msgid "Exit search mode" msgstr "Zatvori način pretrage" #: src/celluloid-shortcuts-window.c:99 msgid "Cycle through audio tracks" msgstr "Odaberi/Prebacuj zvučne zapise" #: src/celluloid-shortcuts-window.c:100 src/celluloid-shortcuts-window.c:101 msgid "Decrease/increase volume" msgstr "Pojačaj/Smanji glasnoću zvuka" #: src/celluloid-shortcuts-window.c:102 msgid "Mute or unmute" msgstr "Utišaj ili uključi zvuk" #: src/celluloid-shortcuts-window.c:103 msgid "Adjust audio delay by +/- 0.1 seconds" msgstr "Prilagodi odgodu zvuka za +/- sekundi" #: src/celluloid-shortcuts-window.c:106 msgid "Toggle subtitle visibility" msgstr "Uklj/Isklj podnaslov" #: src/celluloid-shortcuts-window.c:107 msgid "Cycle through available subtitles" msgstr "Odaberi/Prebacuj podnaslove" #: src/celluloid-shortcuts-window.c:108 msgid "Adjust subtitle delay by +/- 0.1 seconds" msgstr "Prilagodi odgodu podnaslova za +/- sekundi" #: src/celluloid-shortcuts-window.c:109 msgid "Toggle SSA/ASS subtitles style override" msgstr "Uklj/Isklj obilaženje SSA/ASS izgleda podnaslova" #: src/celluloid-shortcuts-window.c:110 msgid "Move subtitles up/down" msgstr "Pomakni podnaslove gore/dolje" #: src/celluloid-shortcuts-window.c:111 msgid "Toggle VSFilter aspect compatibility mode" msgstr "Uklj/Isklj način kompatibilnosti VSFilter omjera" #: src/celluloid-shortcuts-window.c:114 msgid "Cycle through video tracks" msgstr "Odaberi/Prebacuj video zapise" #: src/celluloid-shortcuts-window.c:115 msgid "Decrease/increase pan-and-scan range" msgstr "Povećaj/Smanji raspon skeniranja-obrezivanja" #: src/celluloid-shortcuts-window.c:116 msgid "Take a screenshot" msgstr "Uslikaj zaslon" #: src/celluloid-shortcuts-window.c:117 msgid "Take a screenshot, without subtitles" msgstr "Uslikaj zaslon bez podnaslova" #: src/celluloid-shortcuts-window.c:118 msgid "Take a screenshot, as the window shows it" msgstr "Uslikaj zaslon kako je prikazan u prozoru" #: src/celluloid-shortcuts-window.c:119 msgid "Resize video to half its original size" msgstr "Promijeni veličinu videa na polovicu izvorne veličine" #: src/celluloid-shortcuts-window.c:120 msgid "Resize video to its original size" msgstr "Promijeni veličinu videa na izvornu veličinu" #: src/celluloid-shortcuts-window.c:121 msgid "Resize video to double its original size" msgstr "Promijeni veličinu videa na dvostruko od izvorne veličine" #: src/celluloid-shortcuts-window.c:122 msgid "Adjust contrast" msgstr "Prilagodi kontrast" #: src/celluloid-shortcuts-window.c:123 msgid "Adjust brightness" msgstr "Prilagodi svjetlinu" #: src/celluloid-shortcuts-window.c:124 msgid "Adjust gamma" msgstr "Prilagodi gamu" #: src/celluloid-shortcuts-window.c:125 msgid "Adjust saturation" msgstr "Prilagodi zasićenje" #: src/celluloid-shortcuts-window.c:126 msgid "Activate or deactivate deinterlacer" msgstr "Aktiviraj ili deaktiviraj raspletanje" #: src/celluloid-shortcuts-window.c:127 msgid "Cycle aspect ratio override" msgstr "Odaberi/Prebacuj omjer prikaza" #: src/celluloid-shortcuts-window.c:130 msgid "User Interface" msgstr "Korisničko sučelje" #: src/celluloid-shortcuts-window.c:131 msgid "Video" msgstr "Video" #: src/celluloid-shortcuts-window.c:132 msgid "Audio" msgstr "Zvuk" #: src/celluloid-shortcuts-window.c:133 msgid "Subtitle" msgstr "Podnaslov" #: src/celluloid-shortcuts-window.c:134 msgid "Playback" msgstr "Reprodukcija" #: src/celluloid-shortcuts-window.c:135 msgid "Seeking" msgstr "Premotavanje" #: src/celluloid-view.c:728 msgid "Load Audio Track…" msgstr "Učitaj zvučni zapis…" #: src/celluloid-view.c:732 msgid "Load Video Track…" msgstr "Učitaj video zapis…" #: src/celluloid-view.c:736 msgid "Load Subtitle Track…" msgstr "Učitaj zapis podnaslova…" #: src/celluloid-view.c:901 msgid "" "Enabling or disabling client-side decorations requires restarting to take " "effect." msgstr "" "Omogućavanje ili onemogućavanje ukrasa od strane klijenta zahtijeva ponovno " "pokretanje." #: src/celluloid-view.c:1444 msgid "Add Folder to Playlist" msgstr "" #: src/celluloid-view.c:1444 msgid "Open Folder" msgstr "" #: src/celluloid-view.c:1449 msgid "Add File to Playlist" msgstr "Dodaj datoteku na popis izvođenja" #: src/celluloid-view.c:1449 msgid "Open File" msgstr "Otvori datoteku" #: src/celluloid-view.c:1485 msgid "Add Location to Playlist" msgstr "Dodaj lokaciju na popis izvođenja" #: src/celluloid-view.c:1486 msgid "Open Location" msgstr "Otvori lokaciju" #: src/celluloid-view.c:1532 msgid "Save Playlist" msgstr "Spremi popis izvođenja" #: src/celluloid-view.c:1598 msgid "A GTK frontend for MPV" msgstr "GTK grafičko korisničko sučelje za mpv" #: src/celluloid-view.c:1608 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " gogo https://launchpad.net/~trebelnik-stefina" celluloid-0.20/po/hu.po000066400000000000000000000761401373135401300150110ustar00rootroot00000000000000# gnome-mpv , 2019. #zanata # gnome-mpv , 2020. #zanata msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-02-20 20:48+0700\n" "PO-Revision-Date: 2020-06-23 10:40-0400\n" "Last-Translator: Copied by Zanata \n" "Language-Team: Hungarian\n" "Language: hu\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" "X-Generator: Zanata 4.6.2\n" #: data/io.github.celluloid_player.Celluloid.gschema.xml:11 msgid "" "Whether the settings has already been migrated from the previous version" msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:17 msgid "Whether or not to automatically resize window to fit video" msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:23 msgid "Enable or disable dark theme" msgstr "Sötét téma engedélyezése/tiltása" #: data/io.github.celluloid_player.Celluloid.gschema.xml:29 msgid "Enable or disable client-side decorations" msgstr "Kliensoldali díszítések engedélyezése/tiltása" #: data/io.github.celluloid_player.Celluloid.gschema.xml:35 msgid "Whether or not to use floating controls in windowed mode" msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:41 msgid "Whether or not to autohide mouse cursor in windowed mode" msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:47 msgid "The minimum cursor speed at which floating controls will be unhidden." msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:54 msgid "" "The size of the dead zone in which cursor movement will not cause the " "controls to be shown." msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:60 msgid "Whether or not to use skip buttons for controlling playlist" msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:66 msgid "" "Whether or not to make file chooser dialog remember last folder accessed" msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:72 msgid "Whether or not to create new windows when there is already an instance" msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:78 #: src/celluloid-application.c:575 msgid "Options to pass to mpv" msgstr "Az mpv-nek átadandó opciók" #: data/io.github.celluloid_player.Celluloid.gschema.xml:84 msgid "Path to mpv configuration file" msgstr "Az mpv konfigurációs fájl útvonala" #: data/io.github.celluloid_player.Celluloid.gschema.xml:90 msgid "Load or don't load mpv configuration file" msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:96 msgid "Path to mpv input configuration file" msgstr "Az mpv bemeneti konfigurációs fájl útvonala" #: data/io.github.celluloid_player.Celluloid.gschema.xml:102 msgid "Load or don't load mpv input configuration file" msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:108 msgid "Whether or not to enable MPRIS support" msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:114 msgid "" "Whether or not to enable GNOME-Settings-Daemon-based media keys support" msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:120 msgid "Whether or not to prefetch metadata for non-current playlist entries" msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:126 msgid "" "Whether or not to display an error message when playback of a file ends with" " an error" msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:132 msgid "Whether or not to inhibit session idling when something is playing" msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:142 msgid "Width of the window" msgstr "Az ablak szélessége" #: data/io.github.celluloid_player.Celluloid.gschema.xml:148 msgid "Height of the window" msgstr "Az ablak magassága" #: data/io.github.celluloid_player.Celluloid.gschema.xml:154 msgid "Whether or not the window is maximized" msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:161 msgid "Volume of player" msgstr "A lejátszó hangereje" #: data/io.github.celluloid_player.Celluloid.gschema.xml:167 msgid "Whether or not to loop when the end of playlist is reached" msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:173 msgid "Width of the playlist" msgstr "A lejátszási lista szélessége" #: data/io.github.celluloid_player.Celluloid.gschema.xml:179 msgid "Show or not show the controls" msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:185 msgid "Show or not show the playlist" msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:191 msgid "URI of the last folder accessed" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:7 #: data/io.github.celluloid_player.Celluloid.desktop.in:4 #: src/celluloid-application.c:451 msgid "Celluloid" msgstr "Celluloid" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:8 msgid "GTK+ frontend for mpv" msgstr "GTK+ felület az mpv-hez" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:16 msgid "" "Celluloid is a simple media player that can play virtually all video and " "audio formats. It supports playlists and MPRIS2 media player controls. The " "design of Celluloid follows the GNOME Human Interface Guidelines, but can " "also be adapted for other systems that don't use client-side decorations " "(CSD). It is based on the mpv library and GTK." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:23 msgid "Features:" msgstr "Funkciók:" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:25 msgid "Drag and drop playlist" msgstr "Fogd és vidd lejátszási lista" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:26 msgid "Loading external mpv configuration files" msgstr "Külső mpv konfigurációs fájlok betöltése" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:27 msgid "MPRIS2 D-Bus interface" msgstr "MPRIS2 D-Bus interfész" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:30 msgid "The Celluloid Developers" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:34 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:87 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:117 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:156 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:187 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:215 msgid "This release contains the following changes:" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:38 msgid "" "Adjust the range of volume button based on the value of the volume-max " "property." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:42 msgid "Retain window maximization state across sessions." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:45 msgid "Retain loop state across sessions." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:48 msgid "Implement playlist search." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:51 msgid "Update the list of shortcuts in Keyboard Shortcuts dialog." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:54 msgid "Correctly handle quotes and escape sequences in extra mpv options." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:57 msgid "Display time at cursor position when hovering the seek bar." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:60 msgid "" "Deprecate '--mpv-options'. Options starting with '--mpv-' can be used to set" " mpv options instead. For example, passing '--mpv-vf=vflip' to Celluloid is " "equivalent to passing '--vf=vflip' to mpv." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:66 msgid "" "Add support for configuring dead zone, an area in which mouse movement will " "not cause controls to be shown." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:70 msgid "Make window sizing work correctly with HiDPI displays." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:73 msgid "Add Finnish translation by Kimmo Kujansuu." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:76 msgid "Add Slovenian translation by @bertronika." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:80 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:110 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:149 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:180 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:208 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:236 msgid "This listing is incomplete. See git log for complete changelog." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:91 msgid "Add Persian translation by @danialbehzadi" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:94 msgid "Add Ukranian translation by @vl-nix" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:97 msgid "" "Add support for showing/hiding window decorations using the mpv option " "--border" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:100 msgid "Add menu item for opening discs" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:103 msgid "Block cursor autohide when volume popup is open in windowed mode" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:106 msgid "Fix crash with mpv 0.30" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:121 msgid "Rename project to Celluloid" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:124 msgid "Add Turkish translation by @TeknoMobil" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:127 msgid "Add Esperanto translation by @F3nd0" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:130 msgid "Migrate from opengl-cb to the new render API" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:133 msgid "Handle numpad keybindings" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:136 msgid "Handle unicode keybindings" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:139 msgid "Forward media key events to mpv" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:142 msgid "" "Add dconf key for controlling cursor speed at which controls are unhidden" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:145 msgid "Add option for suppressing playback errors" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:160 msgid "Split up the General tab in the preferences dialog" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:163 msgid "Improve behavior when toggling playlist under tiling window managers" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:166 msgid "Move app menu items to primary menu" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:169 msgid "Use separate MPRIS DBus connection for each window" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:172 msgid "Add support for MPRIS property LoopStatus" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:175 msgid "" "Add option --mpv-options for setting arbitrary mpv options from the command-" "line" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:191 msgid "Set default screenshot directory to XDG_PICTURES_DIR" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:194 msgid "" "Improve handling of --window-scale, --autofit, --autofit-larger, and " "--autofit-smaller" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:198 msgid "Add command line option for setting WM_ROLE" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:201 msgid "Add context menu item for removing playlist items" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:204 msgid "Add context menu item for copying location of playlist items" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:219 msgid "" "Add option to make skip buttons change playlist entries rather than chapters" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:223 msgid "Make the file chooser accept non-local locations" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:226 msgid "Add right-click menu entry for looping a single file" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:229 msgid "Handle property change events for fullscreen and window-scale" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:232 msgid "Add option to autohide mouse cursor in windowed mode" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:246 msgid "The main window showing the application in action" msgstr "Az alkalmazás működés közben" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:250 msgid "The main window with CSD disabled" msgstr "A főablak letiltott díszítésekkel" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:254 msgid "The main window with playlist open" msgstr "A főablak megnyitott lejátszási listával" #: data/io.github.celluloid_player.Celluloid.desktop.in:5 msgid "Multimedia Player" msgstr "" #: data/io.github.celluloid_player.Celluloid.desktop.in:6 msgid "Play movies and videos" msgstr "" #. Translators: Search terms to find this application. Don't translate the #. semicolons! The list MUST also end with a semicolon! #: data/io.github.celluloid_player.Celluloid.desktop.in:17 msgid "Video;Movie;Film;Clip;Series;Player;DVD;TV;Disc;Album;Music;GNOME;mpv;" msgstr "" #: data/io.github.celluloid_player.Celluloid.desktop.in:23 msgid "New Window" msgstr "" #: src/celluloid-application.c:495 msgid "Playing" msgstr "" #: src/celluloid-application.c:551 #, fuzzy msgid "Show release version" msgstr "Kiadási verzió megjelenítése" #: src/celluloid-application.c:559 #, fuzzy msgid "Enqueue" msgstr "Sorba állítás" #: src/celluloid-application.c:567 msgid "Create a new window" msgstr "" #: src/celluloid-application.c:576 msgid "OPTIONS" msgstr "" #: src/celluloid-application.c:583 msgid "Set the window role" msgstr "" #: src/celluloid-application.c:591 msgid "Don't connect to an already-running instance" msgstr "Ne csatlakozzon egy már futó példányhoz" #: src/celluloid-control-box.c:362 msgid "Pause" msgstr "Szünet" #: src/celluloid-control-box.c:362 src/celluloid-control-box.c:565 msgid "Play" msgstr "Lejátszás" #: src/celluloid-control-box.c:568 msgid "Stop" msgstr "Megállítás" #: src/celluloid-control-box.c:571 msgid "Forward" msgstr "Előretekerés" #: src/celluloid-control-box.c:574 msgid "Rewind" msgstr "Visszatekerés" #: src/celluloid-control-box.c:577 msgid "Next Chapter" msgstr "Következő fejezet" #: src/celluloid-control-box.c:580 msgid "Previous Chapter" msgstr "Előző fejezet" #: src/celluloid-control-box.c:583 msgid "Loop Playlist" msgstr "" #: src/celluloid-control-box.c:586 msgid "Shuffle Playlist" msgstr "" #: src/celluloid-control-box.c:589 src/celluloid-header-bar.c:91 msgid "Toggle Fullscreen" msgstr "Átváltás teljes képernyőre" #: src/celluloid-controller.c:992 src/celluloid-view.c:1558 msgid "Error" msgstr "Hiba" #: src/celluloid-file-chooser.c:139 src/celluloid-plugins-manager.c:170 msgid "All Files" msgstr "" #: src/celluloid-file-chooser.c:147 msgid "Media Files" msgstr "" #: src/celluloid-file-chooser.c:158 msgid "Audio Files" msgstr "" #: src/celluloid-file-chooser.c:166 msgid "Video Files" msgstr "" #: src/celluloid-file-chooser.c:174 msgid "Image Files" msgstr "" #: src/celluloid-file-chooser.c:184 msgid "Subtitle Files" msgstr "" #: src/celluloid-menu.c:106 msgid "None" msgstr "Egyik sem" #. For simplicity, also dup the default string used when the #. * track has no title. #: src/celluloid-menu.c:121 msgid "Unknown" msgstr "Ismeretlen" #: src/celluloid-menu.c:154 msgid "_Load External…" msgstr "_Külső betöltése..." #. Disable the menu item by setting the action to something #. * invalid. #: src/celluloid-menu.c:207 msgid "No disc found" msgstr "" #: src/celluloid-menu.c:235 msgid "_File" msgstr "_Fájl" #: src/celluloid-menu.c:236 src/celluloid-menu.c:318 msgid "_Open…" msgstr "" #: src/celluloid-menu.c:237 src/celluloid-menu.c:319 msgid "Open _Folder…" msgstr "" #: src/celluloid-menu.c:238 src/celluloid-menu.c:320 msgid "Open _Location…" msgstr "" #: src/celluloid-menu.c:239 msgid "Open _Disc…" msgstr "" #: src/celluloid-menu.c:240 src/celluloid-menu.c:290 msgid "_Save Playlist" msgstr "Lejátszási lista _mentése" #: src/celluloid-menu.c:241 src/celluloid-menu.c:323 msgid "_New Window" msgstr "" #: src/celluloid-menu.c:242 #, fuzzy msgid "_Quit" msgstr "Kilépés" #: src/celluloid-menu.c:243 msgid "_Edit" msgstr "_Szerkesztés" #: src/celluloid-menu.c:244 src/celluloid-menu.c:296 msgid "_Preferences" msgstr "_Beállítások" #: src/celluloid-menu.c:245 src/celluloid-menu.c:292 msgid "_Video Track" msgstr "_Videósáv" #: src/celluloid-menu.c:246 src/celluloid-menu.c:293 msgid "_Audio Track" msgstr "_Hangsáv" #: src/celluloid-menu.c:247 src/celluloid-menu.c:294 msgid "S_ubtitle Track" msgstr "F_eliratsáv" #: src/celluloid-menu.c:248 msgid "_View" msgstr "_Nézet" #: src/celluloid-menu.c:249 src/celluloid-menu.c:287 msgid "_Toggle Controls" msgstr "_Vezérlők be-/kikapcsolása" #: src/celluloid-menu.c:250 src/celluloid-menu.c:289 msgid "_Toggle Playlist" msgstr "_Lejátszási lista be-/kikapcsolása" #: src/celluloid-menu.c:251 msgid "_Fullscreen" msgstr "_Teljes képernyő" #: src/celluloid-menu.c:252 msgid "_Help" msgstr "_Súgó" #: src/celluloid-menu.c:253 src/celluloid-menu.c:297 msgid "_Keyboard Shortcuts" msgstr "_Billentyűkombinációk" #: src/celluloid-menu.c:254 src/celluloid-menu.c:298 msgid "_About Celluloid" msgstr "" #: src/celluloid-menu.c:321 #, fuzzy msgid "Open _Disc" msgstr "Fájl megnyitása" #: src/celluloid-mpv.c:240 #, c-format msgid "Playback was terminated abnormally. Reason: %s." msgstr "A lejátszás nem megfelelően lett leállítva. Ok: %s." #: src/celluloid-open-location-dialog.c:130 msgid "Location:" msgstr "Hely:" #: src/celluloid-open-location-dialog.c:136 #: src/celluloid-preferences-dialog.c:401 msgid "_Cancel" msgstr "_Mégse" #: src/celluloid-open-location-dialog.c:138 msgid "_Open" msgstr "_Megnyitás" #: src/celluloid-player.c:550 msgid "Failed to apply one or more MPV options." msgstr "Egy vagy több MPV beállítás alkalmazása nem sikerült" #: src/celluloid-playlist-widget.c:784 msgid "_Copy Location" msgstr "" #: src/celluloid-playlist-widget.c:785 msgid "_Remove" msgstr "" #: src/celluloid-playlist-widget.c:787 msgid "_Add…" msgstr "_Hozzáadás..." #: src/celluloid-playlist-widget.c:788 msgid "Add _Folder…" msgstr "" #: src/celluloid-playlist-widget.c:789 msgid "Add _Location…" msgstr "_Hely hozzáadása..." #: src/celluloid-playlist-widget.c:790 msgid "_Shuffle" msgstr "" #: src/celluloid-playlist-widget.c:791 msgid "Loop _File" msgstr "" #: src/celluloid-playlist-widget.c:792 msgid "Loop _Playlist" msgstr "" #: src/celluloid-playlist-widget.c:933 src/celluloid-shortcuts-window.c:136 msgid "Playlist" msgstr "Lejátszási lista" #: src/celluloid-playlist-widget.c:941 #, fuzzy msgid "Playlist is empty" msgstr "Lejátszási lista" #: src/celluloid-plugins-manager.c:163 src/celluloid-plugins-manager.c:409 msgid "Add Plugin" msgstr "" #: src/celluloid-plugins-manager.c:175 msgid "Lua Plugins" msgstr "" #: src/celluloid-plugins-manager.c:181 msgid "JavaScript Plugins" msgstr "" #: src/celluloid-plugins-manager.c:186 msgid "C Plugins" msgstr "" #: src/celluloid-plugins-manager.c:334 #, c-format msgid "Failed to copy file from '%s' to '%s'. Reason: %s" msgstr "A fájl másolása innen: „%s\", ide: „%s\" nem sikerült. Ok: %s" #: src/celluloid-plugins-manager.c:385 msgid "No plugins found" msgstr "" #: src/celluloid-plugins-manager-item.c:79 msgid "Remove" msgstr "Eltávolítás" #: src/celluloid-plugins-manager-item.c:178 msgid "" "Are you sure you want to remove this script? This action cannot be undone." msgstr "" "Biztosan el akarja távolítani ezt a parancsfájlt? Ez a művelet nem vonható " "vissza." #: src/celluloid-plugins-manager-item.c:199 #, c-format msgid "Failed to delete file '%s'. Reason: %s" msgstr "„%s\" fájl törlése nem sikerült. Ok: %s" #: src/celluloid-preferences-dialog.c:304 msgid "Automatically resize window to fit video" msgstr "" #: src/celluloid-preferences-dialog.c:307 msgid "Enable client-side decorations" msgstr "Kliensoldali díszítések engedélyezése" #: src/celluloid-preferences-dialog.c:310 msgid "Enable dark theme" msgstr "Sötét téma engedélyezése" #: src/celluloid-preferences-dialog.c:313 msgid "Use floating controls in windowed mode" msgstr "" #: src/celluloid-preferences-dialog.c:316 msgid "Autohide mouse cursor in windowed mode" msgstr "" #: src/celluloid-preferences-dialog.c:319 msgid "Use skip buttons for controlling playlist" msgstr "" #: src/celluloid-preferences-dialog.c:322 msgid "Remember last file's location" msgstr "Az utolsó fájl pozíciójának megjegyzése" #: src/celluloid-preferences-dialog.c:327 msgid "Load MPV configuration file" msgstr "MPV konfigurációs fájl betöltése" #: src/celluloid-preferences-dialog.c:330 msgid "MPV configuration file:" msgstr "MPV konfigurációs fájl:" #: src/celluloid-preferences-dialog.c:333 msgid "Load MPV input configuration file" msgstr "MPV beviteli konfigurációs fájl betöltése" #: src/celluloid-preferences-dialog.c:336 msgid "MPV input configuration file:" msgstr "MPV beviteli konfigurációs fájl:" #: src/celluloid-preferences-dialog.c:341 msgid "Always open new window" msgstr "" #: src/celluloid-preferences-dialog.c:344 msgid "Ignore playback errors" msgstr "" #: src/celluloid-preferences-dialog.c:347 msgid "Prefetch metadata" msgstr "" #: src/celluloid-preferences-dialog.c:350 msgid "Enable MPRIS support" msgstr "" #: src/celluloid-preferences-dialog.c:353 msgid "Enable media keys support" msgstr "" #: src/celluloid-preferences-dialog.c:356 msgid "Extra MPV options:" msgstr "Extra MPV beállítások:" #: src/celluloid-preferences-dialog.c:389 msgid "Interface" msgstr "" #: src/celluloid-preferences-dialog.c:392 msgid "Config Files" msgstr "" #: src/celluloid-preferences-dialog.c:395 msgid "Miscellaneous" msgstr "" #: src/celluloid-preferences-dialog.c:398 msgid "Plugins" msgstr "" #: src/celluloid-preferences-dialog.c:403 msgid "_Save" msgstr "_Mentés" #: src/celluloid-preferences-dialog.c:421 msgid "Preferences" msgstr "Beállítások" #: src/celluloid-shortcuts-window.c:57 msgid "Open file" msgstr "Fájl megnyitása" #: src/celluloid-shortcuts-window.c:58 msgid "Open location" msgstr "Hely megnyitása" #: src/celluloid-shortcuts-window.c:59 msgid "Add file to playlist" msgstr "" #: src/celluloid-shortcuts-window.c:60 msgid "Add location to playlist" msgstr "" #: src/celluloid-shortcuts-window.c:61 msgid "Show preferences dialog" msgstr "Beállítások párbeszédablak mutatása" #: src/celluloid-shortcuts-window.c:62 msgid "Toggle controls" msgstr "Vezérlők be-/kikapcsolása" #: src/celluloid-shortcuts-window.c:63 msgid "Toggle playlist" msgstr "Lejátszási lista be-/kikapcsolása" #: src/celluloid-shortcuts-window.c:64 msgid "Toggle fullscreen mode" msgstr "Teljes képernyős mód be-/kikapcsolása" #: src/celluloid-shortcuts-window.c:65 msgid "Leave fullscreen mode" msgstr "Kilépés a teljes képernyős módból" #: src/celluloid-shortcuts-window.c:66 msgid "Toggle OSD states between normal and playback time/duration" msgstr "Váltás a normál és a lejátszási idő/hossz OSD között" #: src/celluloid-shortcuts-window.c:67 msgid "Show filename on the OSD" msgstr "Fájlnév megjelenítése az OSD-n" #: src/celluloid-shortcuts-window.c:68 msgid "Show progress, elapsed time, and duration on the OSD" msgstr "" #: src/celluloid-shortcuts-window.c:71 #, fuzzy msgid "Seek backward/forward 5 seconds" msgstr "Visszatekerés/előretekerés 5 másodperccel" #: src/celluloid-shortcuts-window.c:72 #, fuzzy msgid "Exact seek backward/forward 1 second" msgstr "Visszatekerés/előretekerés pontosan 1 másodperccel" #: src/celluloid-shortcuts-window.c:73 #, fuzzy msgid "Seek backward/forward 1 minute" msgstr "Visszatekerés/előretekerés 1 perccel" #: src/celluloid-shortcuts-window.c:74 #, fuzzy msgid "Exact seek backward/forward 5 seconds" msgstr "Visszatekerés/előretekerés pontosan 5 másodperccel" #: src/celluloid-shortcuts-window.c:75 #, fuzzy msgid "Seek to previous/next subtitle" msgstr "Ugrás az előző/következő felirathoz" #: src/celluloid-shortcuts-window.c:76 #, fuzzy msgid "Step backward/forward a single frame" msgstr "Visszalépés/előrelépés egy képkockával" #: src/celluloid-shortcuts-window.c:77 #, fuzzy msgid "Seek to the beginning of the previous/next chapter" msgstr "Ugrás az előző/következő fejezet elejére" #: src/celluloid-shortcuts-window.c:80 #, fuzzy msgid "Decrease/increase playback speed by 10%" msgstr "Lejátszási sebesség csökkentése/növelése 10%-kal" #: src/celluloid-shortcuts-window.c:81 #, fuzzy msgid "Halve/double current playback speed" msgstr "Jelenlegi lejátszási sebesség felezése/duplázása" #: src/celluloid-shortcuts-window.c:82 #, fuzzy msgid "Reset playback speed to normal" msgstr "Normál lejátszási sebesség visszaállítása" #: src/celluloid-shortcuts-window.c:83 msgid "Go backward/forward in the playlist" msgstr "Ugrás előre/hátra a lejátszási listában" #: src/celluloid-shortcuts-window.c:84 msgid "Remove selected playlist item" msgstr "Kiválasztott lejátszási elem eltávolítása" #: src/celluloid-shortcuts-window.c:85 msgid "Save playlist" msgstr "Lejátszási lista mentése" #: src/celluloid-shortcuts-window.c:86 msgid "Set/clear A-B loop points" msgstr "A-B ismétlési szakasz beállítása/törlése" #: src/celluloid-shortcuts-window.c:87 msgid "Toggle infinite looping" msgstr "Végtelen ismétlés be-/kikapcsolása" #: src/celluloid-shortcuts-window.c:88 msgid "Pause or unpause" msgstr "Szünet vagy folytatás" #: src/celluloid-shortcuts-window.c:89 msgid "Quit" msgstr "Kilépés" #: src/celluloid-shortcuts-window.c:90 msgid "Save current playback position and quit" msgstr "Jelenlegi lejátszási pozíció mentése és kilépés" #: src/celluloid-shortcuts-window.c:93 msgid "Enter search mode" msgstr "" #: src/celluloid-shortcuts-window.c:94 msgid "Jump to next match" msgstr "" #: src/celluloid-shortcuts-window.c:95 msgid "Jump to previous match" msgstr "" #: src/celluloid-shortcuts-window.c:96 msgid "Exit search mode" msgstr "" #: src/celluloid-shortcuts-window.c:99 msgid "Cycle through audio tracks" msgstr "Váltás a hangsávok között" #: src/celluloid-shortcuts-window.c:100 src/celluloid-shortcuts-window.c:101 msgid "Decrease/increase volume" msgstr "Hangerő csökkentése/növelése" #: src/celluloid-shortcuts-window.c:102 msgid "Mute or unmute" msgstr "Némítás be-/kikapcsolása" #: src/celluloid-shortcuts-window.c:103 msgid "Adjust audio delay by +/- 0.1 seconds" msgstr "Hangsáv eltolásának beállítása 0,1 mp időközökkel" #: src/celluloid-shortcuts-window.c:106 msgid "Toggle subtitle visibility" msgstr "Felirat láthatóságának be-/kikapcsolása" #: src/celluloid-shortcuts-window.c:107 msgid "Cycle through available subtitles" msgstr "Váltás az elérhető feliratok között" #: src/celluloid-shortcuts-window.c:108 msgid "Adjust subtitle delay by +/- 0.1 seconds" msgstr "Feliratok eltolásának beállítása 0,1 mp időközökkel" #: src/celluloid-shortcuts-window.c:109 msgid "Toggle SSA/ASS subtitles style override" msgstr "SSA/ASS feliratstílus felülbírálásának be-/kikapcsolása" #: src/celluloid-shortcuts-window.c:110 msgid "Move subtitles up/down" msgstr "Feliratok mozgatása fel/le" #: src/celluloid-shortcuts-window.c:111 msgid "Toggle VSFilter aspect compatibility mode" msgstr "VSFilter képarány-kompatibilitási mód be-/kikapcsolása" #: src/celluloid-shortcuts-window.c:114 msgid "Cycle through video tracks" msgstr "Váltás a videósávok között" #: src/celluloid-shortcuts-window.c:115 msgid "Decrease/increase pan-and-scan range" msgstr "Pan-and-scan tartomány csökkentése/növelése" #: src/celluloid-shortcuts-window.c:116 msgid "Take a screenshot" msgstr "Képernyőkép készítése" #: src/celluloid-shortcuts-window.c:117 msgid "Take a screenshot, without subtitles" msgstr "Képernyőkép készítése feliratok nélkül" #: src/celluloid-shortcuts-window.c:118 msgid "Take a screenshot, as the window shows it" msgstr "Képernyőkép készítése az ablak tartalmáról" #: src/celluloid-shortcuts-window.c:119 msgid "Resize video to half its original size" msgstr "Videó átméretezése az eredeti méret felére" #: src/celluloid-shortcuts-window.c:120 msgid "Resize video to its original size" msgstr "Videó átméretezése az eredeti méretre" #: src/celluloid-shortcuts-window.c:121 msgid "Resize video to double its original size" msgstr "Videó átméretezése az eredeti méret kétszeresére" #: src/celluloid-shortcuts-window.c:122 msgid "Adjust contrast" msgstr "Kontraszt beállítása" #: src/celluloid-shortcuts-window.c:123 msgid "Adjust brightness" msgstr "Világosság beállítása" #: src/celluloid-shortcuts-window.c:124 msgid "Adjust gamma" msgstr "Gamma beállítása" #: src/celluloid-shortcuts-window.c:125 msgid "Adjust saturation" msgstr "Telítettség beállítása" #: src/celluloid-shortcuts-window.c:126 msgid "Activate or deactivate deinterlacer" msgstr "Váltottsorosság-mentesítés be-/kikapcsolása" #: src/celluloid-shortcuts-window.c:127 msgid "Cycle aspect ratio override" msgstr "" #: src/celluloid-shortcuts-window.c:130 msgid "User Interface" msgstr "Felhasználói felület" #: src/celluloid-shortcuts-window.c:131 msgid "Video" msgstr "Videó" #: src/celluloid-shortcuts-window.c:132 msgid "Audio" msgstr "Hang" #: src/celluloid-shortcuts-window.c:133 msgid "Subtitle" msgstr "Felirat" #: src/celluloid-shortcuts-window.c:134 msgid "Playback" msgstr "Lejátszás" #: src/celluloid-shortcuts-window.c:135 msgid "Seeking" msgstr "Tekerés" #: src/celluloid-view.c:728 msgid "Load Audio Track…" msgstr "" #: src/celluloid-view.c:732 msgid "Load Video Track…" msgstr "" #: src/celluloid-view.c:736 msgid "Load Subtitle Track…" msgstr "" #: src/celluloid-view.c:901 msgid "" "Enabling or disabling client-side decorations requires restarting to take " "effect." msgstr "" #: src/celluloid-view.c:1444 msgid "Add Folder to Playlist" msgstr "" #: src/celluloid-view.c:1444 msgid "Open Folder" msgstr "" #: src/celluloid-view.c:1449 msgid "Add File to Playlist" msgstr "Fájl hozzáadása a lejátszási listához" #: src/celluloid-view.c:1449 msgid "Open File" msgstr "Fájl megnyitása" #: src/celluloid-view.c:1485 msgid "Add Location to Playlist" msgstr "Hely hozzáadása a lejátszási listához" #: src/celluloid-view.c:1486 msgid "Open Location" msgstr "Hely megnyitása" #: src/celluloid-view.c:1532 msgid "Save Playlist" msgstr "Lejátszási lista mentése" #: src/celluloid-view.c:1598 msgid "A GTK frontend for MPV" msgstr "Egy GTK felület az MPV-hez" #: src/celluloid-view.c:1608 msgid "translator-credits" msgstr "" celluloid-0.20/po/it.po000066400000000000000000001121661373135401300150100ustar00rootroot00000000000000# gnome-mpv , 2019. #zanata #,,,,zjf , 2020. #zanata # gnome-mpv , 2020. #zanata msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-02-20 20:48+0700\n" "PO-Revision-Date: 2020-09-12 08:27-0400\n" "Last-Translator: gnome-mpv \n" "Language-Team: Italian\n" "Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" "X-Generator: Zanata 4.6.2\n" #: data/io.github.celluloid_player.Celluloid.gschema.xml:11 msgid "" "Whether the settings has already been migrated from the previous version" msgstr "" "Determina se la migrazione delle preferenze da una versione precedente è " "stata già effettuata" #: data/io.github.celluloid_player.Celluloid.gschema.xml:17 msgid "Whether or not to automatically resize window to fit video" msgstr "" "Determina se ridimensionare automaticamente la finestra per adattarla alle " "dimensioni del video" #: data/io.github.celluloid_player.Celluloid.gschema.xml:23 msgid "Enable or disable dark theme" msgstr "Attiva o disattiva il tema scuro" #: data/io.github.celluloid_player.Celluloid.gschema.xml:29 msgid "Enable or disable client-side decorations" msgstr "Attiva o disattiva le decorazioni client-side" #: data/io.github.celluloid_player.Celluloid.gschema.xml:35 msgid "Whether or not to use floating controls in windowed mode" msgstr "Determina se usare i controlli mobili in modalità finestra" #: data/io.github.celluloid_player.Celluloid.gschema.xml:41 msgid "Whether or not to autohide mouse cursor in windowed mode" msgstr "" "Determina se nascondere automaticamente il cursore in modalità finestra" #: data/io.github.celluloid_player.Celluloid.gschema.xml:47 msgid "The minimum cursor speed at which floating controls will be unhidden." msgstr "" "La velocità minima del cursore alla quale saranno mostrati i controlli a " "schermo." #: data/io.github.celluloid_player.Celluloid.gschema.xml:54 msgid "" "The size of the dead zone in which cursor movement will not cause the " "controls to be shown." msgstr "" "La dimensione della zona morta in cui il movimento del cursore non farà " "apparire i controlli." #: data/io.github.celluloid_player.Celluloid.gschema.xml:60 msgid "Whether or not to use skip buttons for controlling playlist" msgstr "Determina se usare i pulsanti di salto per controllare la playlist" #: data/io.github.celluloid_player.Celluloid.gschema.xml:66 msgid "" "Whether or not to make file chooser dialog remember last folder accessed" msgstr "" "Determina se la finestra di selezione file ricorda l'ultima cartella " "visitata" #: data/io.github.celluloid_player.Celluloid.gschema.xml:72 msgid "Whether or not to create new windows when there is already an instance" msgstr "Determina se creare nuove finestre quando è già avviata un'istanza" #: data/io.github.celluloid_player.Celluloid.gschema.xml:78 #: src/celluloid-application.c:575 msgid "Options to pass to mpv" msgstr "Opzioni da inserire in mpv" #: data/io.github.celluloid_player.Celluloid.gschema.xml:84 msgid "Path to mpv configuration file" msgstr "Percorso del file di configurazione di mpv" #: data/io.github.celluloid_player.Celluloid.gschema.xml:90 msgid "Load or don't load mpv configuration file" msgstr "Determina se caricare il file di configurazione di mpv" #: data/io.github.celluloid_player.Celluloid.gschema.xml:96 msgid "Path to mpv input configuration file" msgstr "Percorso del file delle configurazioni di input di mpv" #: data/io.github.celluloid_player.Celluloid.gschema.xml:102 msgid "Load or don't load mpv input configuration file" msgstr "Determina se caricare il file delle configurazioni di input di mpv" #: data/io.github.celluloid_player.Celluloid.gschema.xml:108 msgid "Whether or not to enable MPRIS support" msgstr "Determina se abilitare il supporto a MPRIS" #: data/io.github.celluloid_player.Celluloid.gschema.xml:114 msgid "" "Whether or not to enable GNOME-Settings-Daemon-based media keys support" msgstr "" "Determina se abilitare il supporto ai tasti multimediali di GNOME-Settings-" "Daemon" #: data/io.github.celluloid_player.Celluloid.gschema.xml:120 msgid "Whether or not to prefetch metadata for non-current playlist entries" msgstr "" "Determina se eseguire il precaricamento dei metadati per le voci della " "playlist non selezionate" #: data/io.github.celluloid_player.Celluloid.gschema.xml:126 msgid "" "Whether or not to display an error message when playback of a file ends with" " an error" msgstr "" "Determina se mostrare un messaggio di errore quando la riproduzione di un " "file termina con un errore" #: data/io.github.celluloid_player.Celluloid.gschema.xml:132 msgid "Whether or not to inhibit session idling when something is playing" msgstr "" "Determina se inibire la sessione di idle quando qualcosa è in riproduzione" #: data/io.github.celluloid_player.Celluloid.gschema.xml:142 msgid "Width of the window" msgstr "Larghezza della finestra" #: data/io.github.celluloid_player.Celluloid.gschema.xml:148 msgid "Height of the window" msgstr "Altezza della finestra" #: data/io.github.celluloid_player.Celluloid.gschema.xml:154 msgid "Whether or not the window is maximized" msgstr "Determina se la finestra è massimizzata" #: data/io.github.celluloid_player.Celluloid.gschema.xml:161 msgid "Volume of player" msgstr "Volume del player" #: data/io.github.celluloid_player.Celluloid.gschema.xml:167 msgid "Whether or not to loop when the end of playlist is reached" msgstr "" "Determina se eseguire la ripetizione quando si raggiunge il termine della " "playlist" #: data/io.github.celluloid_player.Celluloid.gschema.xml:173 msgid "Width of the playlist" msgstr "Larghezza della playlist" #: data/io.github.celluloid_player.Celluloid.gschema.xml:179 msgid "Show or not show the controls" msgstr "Determina se mostrare i controlli" #: data/io.github.celluloid_player.Celluloid.gschema.xml:185 msgid "Show or not show the playlist" msgstr "Determina se mostrare la playlist" #: data/io.github.celluloid_player.Celluloid.gschema.xml:191 msgid "URI of the last folder accessed" msgstr "Percorso dell'ultima cartella visualizzata" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:7 #: data/io.github.celluloid_player.Celluloid.desktop.in:4 #: src/celluloid-application.c:451 msgid "Celluloid" msgstr "Celluloid" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:8 msgid "GTK+ frontend for mpv" msgstr "Un frontend in GTK+ per mpv" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:16 msgid "" "Celluloid is a simple media player that can play virtually all video and " "audio formats. It supports playlists and MPRIS2 media player controls. The " "design of Celluloid follows the GNOME Human Interface Guidelines, but can " "also be adapted for other systems that don't use client-side decorations " "(CSD). It is based on the mpv library and GTK." msgstr "" "Celluloid è un semplice lettore multimediale in grado di riprodurre " "praticamente tutti i formati audio e video. Supporta playlist e controlli " "MPRIS2 multimediali. Il design di Celluloid segue le linee guida GNOME Human" " Interface, ma può anche essere adattato per altri sistemi che non usano " "decorazioni lato client (CSD). Si basa sulle librerie libmpv e GTK." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:23 msgid "Features:" msgstr "Caratteristiche:" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:25 msgid "Drag and drop playlist" msgstr "Trascinamento della playlist" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:26 msgid "Loading external mpv configuration files" msgstr "Caricamento di file di configurazione esterni di mpv" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:27 msgid "MPRIS2 D-Bus interface" msgstr "Interfaccia MPRIS2 D-Bus" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:30 msgid "The Celluloid Developers" msgstr "Gli sviluppatori di Celluloid" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:34 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:87 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:117 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:156 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:187 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:215 msgid "This release contains the following changes:" msgstr "Questa versione contiene le seguenti modifiche:" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:38 msgid "" "Adjust the range of volume button based on the value of the volume-max " "property." msgstr "" "Regolazione dell'intervallo del pulsante del volume basata sul valore della " "proprietà volume-max." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:42 msgid "Retain window maximization state across sessions." msgstr "" "Ricorda lo stato dalla massimizzazione della finestra da una sessione " "all'altra." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:45 msgid "Retain loop state across sessions." msgstr "Ricorda lo stato della ripetizione da una sessione all'altra." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:48 msgid "Implement playlist search." msgstr "Implementata la ricerca nella playlist." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:51 msgid "Update the list of shortcuts in Keyboard Shortcuts dialog." msgstr "" "Aggiornata la lista della scorciatoie nell'apposita finestra di dialogo." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:54 msgid "Correctly handle quotes and escape sequences in extra mpv options." msgstr "" "Gestione corretta delle virgolette e delle esclusioni nelle opzioni di mpv." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:57 msgid "Display time at cursor position when hovering the seek bar." msgstr "" "Mostra il tempo quando il cursore si sovrappone alla barra di selezione." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:60 msgid "" "Deprecate '--mpv-options'. Options starting with '--mpv-' can be used to set" " mpv options instead. For example, passing '--mpv-vf=vflip' to Celluloid is " "equivalent to passing '--vf=vflip' to mpv." msgstr "" "'--mpv-options' obsoleto. Le opzioni che iniziano con '--mpv-' possono " "essere usate come opzioni di mpv. Per esempio, '--mpv-vf=vflip' in Celluloid" " è l'equivalente di '--vf=vflip' in mpv." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:66 msgid "" "Add support for configuring dead zone, an area in which mouse movement will " "not cause controls to be shown." msgstr "" "Aggiunto supporto alla zona morta, un'area nella quale i movimenti del " "cursore non invocheranno i controlli a schermo." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:70 msgid "Make window sizing work correctly with HiDPI displays." msgstr "Corretta la grandezza della finestra sugli schermi HiDPI." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:73 msgid "Add Finnish translation by Kimmo Kujansuu." msgstr "Aggiunta traduzione finlandese di Kimmo Kujansuu." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:76 msgid "Add Slovenian translation by @bertronika." msgstr "Aggiunta traduzione slovena di @bertronika." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:80 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:110 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:149 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:180 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:208 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:236 msgid "This listing is incomplete. See git log for complete changelog." msgstr "" "Questa lista è incompleta. Consultare git log per il changelog completo." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:91 msgid "Add Persian translation by @danialbehzadi" msgstr "Aggiunta traduzione persiana di @danialbehzadi." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:94 msgid "Add Ukranian translation by @vl-nix" msgstr "Aggiunta traduzione ucraina di @vl-nix" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:97 msgid "" "Add support for showing/hiding window decorations using the mpv option " "--border" msgstr "" "Aggiunto supporto per l'abilitazione delle decorazioni delle finestre " "tramite l'opzione di mpv --border" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:100 msgid "Add menu item for opening discs" msgstr "Aggiunta voce del menù per l'apertura di dischi" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:103 msgid "Block cursor autohide when volume popup is open in windowed mode" msgstr "" "Blocco della disabilitazione del cursore quando il popup del volume è aperto" " in modalità finestra" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:106 msgid "Fix crash with mpv 0.30" msgstr "Risolto il crash con mpv 0.30" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:121 msgid "Rename project to Celluloid" msgstr "Progetto rinominato in Celluloid" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:124 msgid "Add Turkish translation by @TeknoMobil" msgstr "Aggiunta traduzione turca di @TeknoMobil" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:127 msgid "Add Esperanto translation by @F3nd0" msgstr "Aggiunta traduzione esperanto di @F3nd0" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:130 msgid "Migrate from opengl-cb to the new render API" msgstr "Migrazione da opengl-cb alla nuova API di rendering" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:133 msgid "Handle numpad keybindings" msgstr "Gestione comandi da tastierino numerico" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:136 msgid "Handle unicode keybindings" msgstr "Gestione comandi unicode" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:139 msgid "Forward media key events to mpv" msgstr "Inoltro delle chiavi di eventi multimediali a mpv" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:142 msgid "" "Add dconf key for controlling cursor speed at which controls are unhidden" msgstr "" "Aggiunta chiave dconf per il controllo della velocità del cursore in cui i " "controlli sono mostrati a schermo" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:145 msgid "Add option for suppressing playback errors" msgstr "Aggiunta opzione per sopprimere gli errori di riproduzione" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:160 msgid "Split up the General tab in the preferences dialog" msgstr "Divisione della scheda Generale nella finestra delle preferenze" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:163 msgid "Improve behavior when toggling playlist under tiling window managers" msgstr "" "Migliorato il comportamento della playlist con i tiling window manager" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:166 msgid "Move app menu items to primary menu" msgstr "Trasferite le voci dell'app menù nel menù primario" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:169 msgid "Use separate MPRIS DBus connection for each window" msgstr "Utilizzo di connessioni DBus MPRIS separate per ogni finestra" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:172 msgid "Add support for MPRIS property LoopStatus" msgstr "Aggiunto supporto per la proprietà LoopStatus di MPRIS" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:175 msgid "" "Add option --mpv-options for setting arbitrary mpv options from the command-" "line" msgstr "" "Aggiunta l'opzione --mpv-options per impostare opzioni di mpv dalla riga di " "comando" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:191 msgid "Set default screenshot directory to XDG_PICTURES_DIR" msgstr "Cartella predefinita degli screenshot impostata a XDG_PICTURES_DIR" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:194 msgid "" "Improve handling of --window-scale, --autofit, --autofit-larger, and " "--autofit-smaller" msgstr "" "Migliorata la gestione di --window-scale, --autofit, --autofit-larger, e " "--autofit-smaller" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:198 msgid "Add command line option for setting WM_ROLE" msgstr "Aggiunta opzione da riga di comando per l'impostazione di WM_ROLE" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:201 msgid "Add context menu item for removing playlist items" msgstr "Aggiunta voce menù per la rimozione degli elementi della playlist" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:204 msgid "Add context menu item for copying location of playlist items" msgstr "" "Aggiunta voce menù per la copia dell'indirizzo degli elementi della playlist" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:219 msgid "" "Add option to make skip buttons change playlist entries rather than chapters" msgstr "" "Aggiunta opzione per fare in modo che i pulsanti di salto cambino gli " "elementi della playlist piuttosto che i capitoli" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:223 msgid "Make the file chooser accept non-local locations" msgstr "Il selettore dei file ora accetta anche posizioni non-locali" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:226 msgid "Add right-click menu entry for looping a single file" msgstr "Aggiunta una voce nel menù clic-destro per ripetere un singolo file" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:229 msgid "Handle property change events for fullscreen and window-scale" msgstr "" "Gestione degli eventi di modifica delle proprietà per fullscreen e window-" "scale" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:232 msgid "Add option to autohide mouse cursor in windowed mode" msgstr "" "Aggiunta opzione per nascondere automaticamente il cursore nella modalità " "finestra" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:246 msgid "The main window showing the application in action" msgstr "La finestra principale in funzione" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:250 msgid "The main window with CSD disabled" msgstr "La finestra principale con le decorazioni client-side disattivate" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:254 msgid "The main window with playlist open" msgstr "La finestra principale con la playlist visualizzata" #: data/io.github.celluloid_player.Celluloid.desktop.in:5 msgid "Multimedia Player" msgstr "Riproduttore multimediale" #: data/io.github.celluloid_player.Celluloid.desktop.in:6 msgid "Play movies and videos" msgstr "Riproduci film e video" #. Translators: Search terms to find this application. Don't translate the #. semicolons! The list MUST also end with a semicolon! #: data/io.github.celluloid_player.Celluloid.desktop.in:17 msgid "Video;Movie;Film;Clip;Series;Player;DVD;TV;Disc;Album;Music;GNOME;mpv;" msgstr "Video;Film;Clip;Serie;Player;DVD;TV;Disco;Album;Musica;GNOME;mpv;" #: data/io.github.celluloid_player.Celluloid.desktop.in:23 msgid "New Window" msgstr "Nuova Finestra" #: src/celluloid-application.c:495 msgid "Playing" msgstr "In riproduzione" #: src/celluloid-application.c:551 msgid "Show release version" msgstr "Mostra versione release" #: src/celluloid-application.c:559 msgid "Enqueue" msgstr "Accoda" #: src/celluloid-application.c:567 msgid "Create a new window" msgstr "Apri una nuova finestra" #: src/celluloid-application.c:576 msgid "OPTIONS" msgstr "OPZIONI" #: src/celluloid-application.c:583 msgid "Set the window role" msgstr "Imposta il ruolo della finestra" #: src/celluloid-application.c:591 msgid "Don't connect to an already-running instance" msgstr "Non connettere a un'istanza già in esecuzione" #: src/celluloid-control-box.c:362 msgid "Pause" msgstr "Pausa" #: src/celluloid-control-box.c:362 src/celluloid-control-box.c:565 msgid "Play" msgstr "Riproduci" #: src/celluloid-control-box.c:568 msgid "Stop" msgstr "Ferma" #: src/celluloid-control-box.c:571 msgid "Forward" msgstr "Vai avanti" #: src/celluloid-control-box.c:574 msgid "Rewind" msgstr "Torna indietro" #: src/celluloid-control-box.c:577 msgid "Next Chapter" msgstr "Capitolo successivo" #: src/celluloid-control-box.c:580 msgid "Previous Chapter" msgstr "Capitolo precedente" #: src/celluloid-control-box.c:583 msgid "Loop Playlist" msgstr "Ripetizione della Playlist" #: src/celluloid-control-box.c:586 msgid "Shuffle Playlist" msgstr "Riordina la Playlist" #: src/celluloid-control-box.c:589 src/celluloid-header-bar.c:91 msgid "Toggle Fullscreen" msgstr "Attiva/Disattiva Schermo Intero" #: src/celluloid-controller.c:992 src/celluloid-view.c:1558 msgid "Error" msgstr "Errore" #: src/celluloid-file-chooser.c:139 src/celluloid-plugins-manager.c:170 msgid "All Files" msgstr "Tutti i File" #: src/celluloid-file-chooser.c:147 msgid "Media Files" msgstr "File Multimediali" #: src/celluloid-file-chooser.c:158 msgid "Audio Files" msgstr "File Audio" #: src/celluloid-file-chooser.c:166 msgid "Video Files" msgstr "File Video" #: src/celluloid-file-chooser.c:174 msgid "Image Files" msgstr "File Immagine" #: src/celluloid-file-chooser.c:184 msgid "Subtitle Files" msgstr "File Sottotitoli" #: src/celluloid-menu.c:106 msgid "None" msgstr "Nessuna" #. For simplicity, also dup the default string used when the #. * track has no title. #: src/celluloid-menu.c:121 msgid "Unknown" msgstr "Sconosciuta" #: src/celluloid-menu.c:154 msgid "_Load External…" msgstr "_Importa…" #. Disable the menu item by setting the action to something #. * invalid. #: src/celluloid-menu.c:207 msgid "No disc found" msgstr "Nessun disco trovato" #: src/celluloid-menu.c:235 msgid "_File" msgstr "_File" #: src/celluloid-menu.c:236 src/celluloid-menu.c:318 msgid "_Open…" msgstr "_Apri…" #: src/celluloid-menu.c:237 src/celluloid-menu.c:319 msgid "Open _Folder…" msgstr "Apri _Cartella..." #: src/celluloid-menu.c:238 src/celluloid-menu.c:320 msgid "Open _Location…" msgstr "Apri _Posizione…" #: src/celluloid-menu.c:239 msgid "Open _Disc…" msgstr "Apri _Disco…" #: src/celluloid-menu.c:240 src/celluloid-menu.c:290 msgid "_Save Playlist" msgstr "_Salva Playlist" #: src/celluloid-menu.c:241 src/celluloid-menu.c:323 msgid "_New Window" msgstr "_Nuova Finestra" #: src/celluloid-menu.c:242 msgid "_Quit" msgstr "_Esci" #: src/celluloid-menu.c:243 msgid "_Edit" msgstr "_Modifica" #: src/celluloid-menu.c:244 src/celluloid-menu.c:296 msgid "_Preferences" msgstr "_Preferenze" #: src/celluloid-menu.c:245 src/celluloid-menu.c:292 msgid "_Video Track" msgstr "Traccia _Video" #: src/celluloid-menu.c:246 src/celluloid-menu.c:293 msgid "_Audio Track" msgstr "Traccia _Audio" #: src/celluloid-menu.c:247 src/celluloid-menu.c:294 msgid "S_ubtitle Track" msgstr "Traccia S_ottotitoli" #: src/celluloid-menu.c:248 msgid "_View" msgstr "_Visualizza" #: src/celluloid-menu.c:249 src/celluloid-menu.c:287 msgid "_Toggle Controls" msgstr "Visualizza/Nascondi i _Controlli" #: src/celluloid-menu.c:250 src/celluloid-menu.c:289 msgid "_Toggle Playlist" msgstr "Visualizza/Nascondi la _Playlist" #: src/celluloid-menu.c:251 msgid "_Fullscreen" msgstr "Schermo _Intero" #: src/celluloid-menu.c:252 msgid "_Help" msgstr "_Aiuto" #: src/celluloid-menu.c:253 src/celluloid-menu.c:297 msgid "_Keyboard Shortcuts" msgstr "Scorciatoie da _Tastiera" #: src/celluloid-menu.c:254 src/celluloid-menu.c:298 msgid "_About Celluloid" msgstr "I_nformazioni su Celluloid" #: src/celluloid-menu.c:321 msgid "Open _Disc" msgstr "Apri _Disco" #: src/celluloid-mpv.c:240 #, c-format msgid "Playback was terminated abnormally. Reason: %s." msgstr "La riproduzione si è interrotta in modo anomalo. Motivo: %s" #: src/celluloid-open-location-dialog.c:130 msgid "Location:" msgstr "Posizione:" #: src/celluloid-open-location-dialog.c:136 #: src/celluloid-preferences-dialog.c:401 msgid "_Cancel" msgstr "_Annulla" #: src/celluloid-open-location-dialog.c:138 msgid "_Open" msgstr "_Apri" #: src/celluloid-player.c:550 msgid "Failed to apply one or more MPV options." msgstr "Impossibile applicare una o più opzioni di MPV" #: src/celluloid-playlist-widget.c:784 msgid "_Copy Location" msgstr "_Copia Posizione" #: src/celluloid-playlist-widget.c:785 msgid "_Remove" msgstr "_Rimuovi" #: src/celluloid-playlist-widget.c:787 msgid "_Add…" msgstr "A_ggiungi…" #: src/celluloid-playlist-widget.c:788 msgid "Add _Folder…" msgstr "Aggiungi _Cartella..." #: src/celluloid-playlist-widget.c:789 msgid "Add _Location…" msgstr "Aggiungi _Posizione…" #: src/celluloid-playlist-widget.c:790 msgid "_Shuffle" msgstr "Riproduzione Cas_uale" #: src/celluloid-playlist-widget.c:791 msgid "Loop _File" msgstr "Ripeti il _File" #: src/celluloid-playlist-widget.c:792 msgid "Loop _Playlist" msgstr "Ripeti la _Playlist" #: src/celluloid-playlist-widget.c:933 src/celluloid-shortcuts-window.c:136 msgid "Playlist" msgstr "Playlist" #: src/celluloid-playlist-widget.c:941 msgid "Playlist is empty" msgstr "La playlist è vuota" #: src/celluloid-plugins-manager.c:163 src/celluloid-plugins-manager.c:409 msgid "Add Plugin" msgstr "Aggiungi Plugin" #: src/celluloid-plugins-manager.c:175 msgid "Lua Plugins" msgstr "Plugin in Lua" #: src/celluloid-plugins-manager.c:181 msgid "JavaScript Plugins" msgstr "Plugin in JavaScript" #: src/celluloid-plugins-manager.c:186 msgid "C Plugins" msgstr "Plugin in C" #: src/celluloid-plugins-manager.c:334 #, c-format msgid "Failed to copy file from '%s' to '%s'. Reason: %s" msgstr "Impossibile copiare il file da '%s' a '%s'. Motivo: %s" #: src/celluloid-plugins-manager.c:385 msgid "No plugins found" msgstr "Nessun plugin trovato" #: src/celluloid-plugins-manager-item.c:79 msgid "Remove" msgstr "Rimuovi" #: src/celluloid-plugins-manager-item.c:178 msgid "" "Are you sure you want to remove this script? This action cannot be undone." msgstr "" "Sei sicuro di voler cancellare questo script? Questa azione non può essere " "annullata." #: src/celluloid-plugins-manager-item.c:199 #, c-format msgid "Failed to delete file '%s'. Reason: %s" msgstr "Impossibile cancellare il file '%s'. Motivo: %s" #: src/celluloid-preferences-dialog.c:304 msgid "Automatically resize window to fit video" msgstr "Ridimensiona automaticamente la finestra per adattarla al video" #: src/celluloid-preferences-dialog.c:307 msgid "Enable client-side decorations" msgstr "Attiva le decorazioni client-side" #: src/celluloid-preferences-dialog.c:310 msgid "Enable dark theme" msgstr "Attiva tema scuro" #: src/celluloid-preferences-dialog.c:313 msgid "Use floating controls in windowed mode" msgstr "Usa i controlli mobili in modalità finestra" #: src/celluloid-preferences-dialog.c:316 msgid "Autohide mouse cursor in windowed mode" msgstr "Nascondi automaticamente il cursore del mouse in modalità finestra" #: src/celluloid-preferences-dialog.c:319 msgid "Use skip buttons for controlling playlist" msgstr "Usa i pulsanti di salto per controllare la playlist" #: src/celluloid-preferences-dialog.c:322 msgid "Remember last file's location" msgstr "Ricorda l'ultimo percorso dei file" #: src/celluloid-preferences-dialog.c:327 msgid "Load MPV configuration file" msgstr "Carica file di configurazione di MPV" #: src/celluloid-preferences-dialog.c:330 msgid "MPV configuration file:" msgstr "File di configurazione di MPV" #: src/celluloid-preferences-dialog.c:333 msgid "Load MPV input configuration file" msgstr "Carica file di input di MPV" #: src/celluloid-preferences-dialog.c:336 msgid "MPV input configuration file:" msgstr "File di input di MPV" #: src/celluloid-preferences-dialog.c:341 msgid "Always open new window" msgstr "Apri sempre una nuova finestra" #: src/celluloid-preferences-dialog.c:344 msgid "Ignore playback errors" msgstr "Ignora gli errori di riproduzione" #: src/celluloid-preferences-dialog.c:347 msgid "Prefetch metadata" msgstr "Precarica i metadati" #: src/celluloid-preferences-dialog.c:350 msgid "Enable MPRIS support" msgstr "Abilita il supporto MPRIS" #: src/celluloid-preferences-dialog.c:353 msgid "Enable media keys support" msgstr "Abilita il supporto ai tasti multimediali" #: src/celluloid-preferences-dialog.c:356 msgid "Extra MPV options:" msgstr "Opzioni extra per MPV" #: src/celluloid-preferences-dialog.c:389 msgid "Interface" msgstr "Interfaccia" #: src/celluloid-preferences-dialog.c:392 msgid "Config Files" msgstr "File di Configurazione" #: src/celluloid-preferences-dialog.c:395 msgid "Miscellaneous" msgstr "Altre Opzioni" #: src/celluloid-preferences-dialog.c:398 msgid "Plugins" msgstr "Plugin" #: src/celluloid-preferences-dialog.c:403 msgid "_Save" msgstr "_Salva" #: src/celluloid-preferences-dialog.c:421 msgid "Preferences" msgstr "Preferenze" #: src/celluloid-shortcuts-window.c:57 msgid "Open file" msgstr "Apri file" #: src/celluloid-shortcuts-window.c:58 msgid "Open location" msgstr "Apri posizione" #: src/celluloid-shortcuts-window.c:59 msgid "Add file to playlist" msgstr "Aggiungi file alla playlist" #: src/celluloid-shortcuts-window.c:60 msgid "Add location to playlist" msgstr "Aggiungi posizione alla playlist" #: src/celluloid-shortcuts-window.c:61 msgid "Show preferences dialog" msgstr "Mostra la finestra delle preferenze" #: src/celluloid-shortcuts-window.c:62 msgid "Toggle controls" msgstr "Visualizza/Nascondi i controlli" #: src/celluloid-shortcuts-window.c:63 msgid "Toggle playlist" msgstr "Visualizza/Nascondi la playlist" #: src/celluloid-shortcuts-window.c:64 msgid "Toggle fullscreen mode" msgstr "Attiva/Disattiva la modalità a schermo intero" #: src/celluloid-shortcuts-window.c:65 msgid "Leave fullscreen mode" msgstr "Esci dalla modalità a schermo intero" #: src/celluloid-shortcuts-window.c:66 msgid "Toggle OSD states between normal and playback time/duration" msgstr "Attiva/Disattiva la visualizzazione del tempo in sovrimpressione" #: src/celluloid-shortcuts-window.c:67 msgid "Show filename on the OSD" msgstr "Mostra il nome del file in sovrimpressione" #: src/celluloid-shortcuts-window.c:68 msgid "Show progress, elapsed time, and duration on the OSD" msgstr "Mostra la durata, il tempo trascorso e mancante in sovrimpressione" #: src/celluloid-shortcuts-window.c:71 msgid "Seek backward/forward 5 seconds" msgstr "Vai indietro/avanti di 5 secondi" #: src/celluloid-shortcuts-window.c:72 msgid "Exact seek backward/forward 1 second" msgstr "Vai indietro/avanti di 1 secondo" #: src/celluloid-shortcuts-window.c:73 msgid "Seek backward/forward 1 minute" msgstr "Vai indietro/avanti di un 1 minuto" #: src/celluloid-shortcuts-window.c:74 msgid "Exact seek backward/forward 5 seconds" msgstr "Vai indietro/avanti di 5 secondi" #: src/celluloid-shortcuts-window.c:75 msgid "Seek to previous/next subtitle" msgstr "Vai ai sottotitoli precedenti/prossimi" #: src/celluloid-shortcuts-window.c:76 msgid "Step backward/forward a single frame" msgstr "Vai indietro/avanti di un singolo fotogramma" #: src/celluloid-shortcuts-window.c:77 msgid "Seek to the beginning of the previous/next chapter" msgstr "Vai all'inizio del capitolo precedente/prossimo" #: src/celluloid-shortcuts-window.c:80 msgid "Decrease/increase playback speed by 10%" msgstr "Diminuisci/Aumenta la velocità di riproduzione del 10%" #: src/celluloid-shortcuts-window.c:81 msgid "Halve/double current playback speed" msgstr "Dimezza/Raddoppia la velocità di riproduzione corrente" #: src/celluloid-shortcuts-window.c:82 msgid "Reset playback speed to normal" msgstr "Ripristina la velocità di riproduzione normale" #: src/celluloid-shortcuts-window.c:83 msgid "Go backward/forward in the playlist" msgstr "Vai indietro/avanti nella playlist" #: src/celluloid-shortcuts-window.c:84 msgid "Remove selected playlist item" msgstr "Rimuovi la voce selezionata dalla playlist" #: src/celluloid-shortcuts-window.c:85 msgid "Save playlist" msgstr "Salva playlist" #: src/celluloid-shortcuts-window.c:86 msgid "Set/clear A-B loop points" msgstr "Imposta/rimuovi la ripetizione fra i punti A-B" #: src/celluloid-shortcuts-window.c:87 msgid "Toggle infinite looping" msgstr "Attiva/Disattiva la ripetizione continua" #: src/celluloid-shortcuts-window.c:88 msgid "Pause or unpause" msgstr "Pausa o riproduci" #: src/celluloid-shortcuts-window.c:89 msgid "Quit" msgstr "Esci" #: src/celluloid-shortcuts-window.c:90 msgid "Save current playback position and quit" msgstr "Salva la posizione di riproduzione corrente ed esci " #: src/celluloid-shortcuts-window.c:93 msgid "Enter search mode" msgstr "Entra nella modalità di ricerca" #: src/celluloid-shortcuts-window.c:94 msgid "Jump to next match" msgstr "Vai alla corrispondenza successiva" #: src/celluloid-shortcuts-window.c:95 msgid "Jump to previous match" msgstr "Vai alla corrispondenza precedente" #: src/celluloid-shortcuts-window.c:96 msgid "Exit search mode" msgstr "Esci dalla modalità di ricerca" #: src/celluloid-shortcuts-window.c:99 msgid "Cycle through audio tracks" msgstr "Scegli fra le tracce audio disponibili" #: src/celluloid-shortcuts-window.c:100 src/celluloid-shortcuts-window.c:101 msgid "Decrease/increase volume" msgstr "Diminuisci/Aumenta il volume" #: src/celluloid-shortcuts-window.c:102 msgid "Mute or unmute" msgstr "Attiva/Disattiva l'audio" #: src/celluloid-shortcuts-window.c:103 msgid "Adjust audio delay by +/- 0.1 seconds" msgstr "Regola il ritardo dell'audio di +/- 0.1 secondi" #: src/celluloid-shortcuts-window.c:106 msgid "Toggle subtitle visibility" msgstr "Attiva/Disattiva la visualizzazione dei sottotitoli" #: src/celluloid-shortcuts-window.c:107 msgid "Cycle through available subtitles" msgstr "Scegli fra i sottotitoli disponibili" #: src/celluloid-shortcuts-window.c:108 msgid "Adjust subtitle delay by +/- 0.1 seconds" msgstr "Regola il ritardo dei sottotitoli di +/- 0.1 secondi" #: src/celluloid-shortcuts-window.c:109 msgid "Toggle SSA/ASS subtitles style override" msgstr "Attiva/Disattiva lo stile dei sottotitoli SSA/ASS" #: src/celluloid-shortcuts-window.c:110 msgid "Move subtitles up/down" msgstr "Sposta i sottotitoli su/giù" #: src/celluloid-shortcuts-window.c:111 msgid "Toggle VSFilter aspect compatibility mode" msgstr "Attiva/Disattiva la modalità di compatibilità per VSFilter" #: src/celluloid-shortcuts-window.c:114 msgid "Cycle through video tracks" msgstr "Scegli fra le tracce video disponibili" #: src/celluloid-shortcuts-window.c:115 msgid "Decrease/increase pan-and-scan range" msgstr "Diminuisci/Aumenta la grandezza del pan-and-scan" #: src/celluloid-shortcuts-window.c:116 msgid "Take a screenshot" msgstr "Fai uno screenshot" #: src/celluloid-shortcuts-window.c:117 msgid "Take a screenshot, without subtitles" msgstr "Fai uno screenshot, senza sottotitoli" #: src/celluloid-shortcuts-window.c:118 msgid "Take a screenshot, as the window shows it" msgstr "Fai uno screenshot, così come è la finestra" #: src/celluloid-shortcuts-window.c:119 msgid "Resize video to half its original size" msgstr "Dimezza la dimensione originale del video" #: src/celluloid-shortcuts-window.c:120 msgid "Resize video to its original size" msgstr "Ripristina la dimensione originale del video" #: src/celluloid-shortcuts-window.c:121 msgid "Resize video to double its original size" msgstr "Raddoppia la dimensione originale del video" #: src/celluloid-shortcuts-window.c:122 msgid "Adjust contrast" msgstr "Modifica contrasto" #: src/celluloid-shortcuts-window.c:123 msgid "Adjust brightness" msgstr "Modifica luminosità" #: src/celluloid-shortcuts-window.c:124 msgid "Adjust gamma" msgstr "Modifica gamma" #: src/celluloid-shortcuts-window.c:125 msgid "Adjust saturation" msgstr "Modifica saturazione" #: src/celluloid-shortcuts-window.c:126 msgid "Activate or deactivate deinterlacer" msgstr "Attiva o disattiva il deinterlacciatore" #: src/celluloid-shortcuts-window.c:127 msgid "Cycle aspect ratio override" msgstr "Scegli fra le proporzioni di aspetto disponibili" #: src/celluloid-shortcuts-window.c:130 msgid "User Interface" msgstr "Interfaccia Utente" #: src/celluloid-shortcuts-window.c:131 msgid "Video" msgstr "Video" #: src/celluloid-shortcuts-window.c:132 msgid "Audio" msgstr "Audio" #: src/celluloid-shortcuts-window.c:133 msgid "Subtitle" msgstr "Sottotitoli" #: src/celluloid-shortcuts-window.c:134 msgid "Playback" msgstr "Riproduzione" #: src/celluloid-shortcuts-window.c:135 msgid "Seeking" msgstr "Ricerca" #: src/celluloid-view.c:728 msgid "Load Audio Track…" msgstr "Carica Traccia Audio…" #: src/celluloid-view.c:732 msgid "Load Video Track…" msgstr "Carica Traccia Video…" #: src/celluloid-view.c:736 msgid "Load Subtitle Track…" msgstr "Carica Traccia Sottotitoli…" #: src/celluloid-view.c:901 msgid "" "Enabling or disabling client-side decorations requires restarting to take " "effect." msgstr "" "L'abilitazione o la disabilitazione delle decorazioni client-side richiede " "un riavvio per avere effetto." #: src/celluloid-view.c:1444 msgid "Add Folder to Playlist" msgstr "Aggiungi Cartella alla Playlist" #: src/celluloid-view.c:1444 msgid "Open Folder" msgstr "Apri Cartella" #: src/celluloid-view.c:1449 msgid "Add File to Playlist" msgstr "Aggiungi File alla Playlist" #: src/celluloid-view.c:1449 msgid "Open File" msgstr "Apri file" #: src/celluloid-view.c:1485 msgid "Add Location to Playlist" msgstr "Aggiungi Posizione alla Playlist" #: src/celluloid-view.c:1486 msgid "Open Location" msgstr "Apri Posizione" #: src/celluloid-view.c:1532 msgid "Save Playlist" msgstr "Salva Playlist" #: src/celluloid-view.c:1598 msgid "A GTK frontend for MPV" msgstr "Un frontend in GTK per MPV" #: src/celluloid-view.c:1608 msgid "translator-credits" msgstr "" "Luca Trevisani\n" "Giusy Margarita" celluloid-0.20/po/ja.po000066400000000000000000000726771373135401300150020ustar00rootroot00000000000000# Japanese translations for gnome-mpv package # gnome-mpvパッケージに対する日本語翻訳. # Copyright (C) 2015 THE gnome-mpv'S COPYRIGHT HOLDER # This file is distributed under the same license as the gnome-mpv package. # Tista , 2015. # gnome-mpv , 2019. #zanata # gnome-mpv , 2020. #zanata msgid "" msgstr "" "Project-Id-Version: gnome-mpv 0.2\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-02-20 20:48+0700\n" "PO-Revision-Date: 2020-06-23 10:48-0400\n" "Last-Translator: Copied by Zanata \n" "Language-Team: Japanese <>\n" "Language: ja\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Zanata 4.6.2\n" #: data/io.github.celluloid_player.Celluloid.gschema.xml:11 msgid "" "Whether the settings has already been migrated from the previous version" msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:17 msgid "Whether or not to automatically resize window to fit video" msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:23 #, fuzzy msgid "Enable or disable dark theme" msgstr "暗いテーマを有効または無効にする" #: data/io.github.celluloid_player.Celluloid.gschema.xml:29 #, fuzzy msgid "Enable or disable client-side decorations" msgstr "CSDを有効または無効にする" #: data/io.github.celluloid_player.Celluloid.gschema.xml:35 msgid "Whether or not to use floating controls in windowed mode" msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:41 msgid "Whether or not to autohide mouse cursor in windowed mode" msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:47 msgid "The minimum cursor speed at which floating controls will be unhidden." msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:54 msgid "" "The size of the dead zone in which cursor movement will not cause the " "controls to be shown." msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:60 msgid "Whether or not to use skip buttons for controlling playlist" msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:66 msgid "" "Whether or not to make file chooser dialog remember last folder accessed" msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:72 msgid "Whether or not to create new windows when there is already an instance" msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:78 #: src/celluloid-application.c:575 #, fuzzy msgid "Options to pass to mpv" msgstr "mpvに渡すオプション" #: data/io.github.celluloid_player.Celluloid.gschema.xml:84 #, fuzzy msgid "Path to mpv configuration file" msgstr "MPV設定ファイル" #: data/io.github.celluloid_player.Celluloid.gschema.xml:90 msgid "Load or don't load mpv configuration file" msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:96 #, fuzzy msgid "Path to mpv input configuration file" msgstr "MPV入力設定ファイル" #: data/io.github.celluloid_player.Celluloid.gschema.xml:102 msgid "Load or don't load mpv input configuration file" msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:108 msgid "Whether or not to enable MPRIS support" msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:114 msgid "" "Whether or not to enable GNOME-Settings-Daemon-based media keys support" msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:120 msgid "Whether or not to prefetch metadata for non-current playlist entries" msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:126 msgid "" "Whether or not to display an error message when playback of a file ends with" " an error" msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:132 msgid "Whether or not to inhibit session idling when something is playing" msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:142 #, fuzzy msgid "Width of the window" msgstr "ウィンドウの横幅" #: data/io.github.celluloid_player.Celluloid.gschema.xml:148 #, fuzzy msgid "Height of the window" msgstr "ウィンドウの高さ" #: data/io.github.celluloid_player.Celluloid.gschema.xml:154 msgid "Whether or not the window is maximized" msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:161 #, fuzzy msgid "Volume of player" msgstr "音量" #: data/io.github.celluloid_player.Celluloid.gschema.xml:167 msgid "Whether or not to loop when the end of playlist is reached" msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:173 #, fuzzy msgid "Width of the playlist" msgstr "プレイリストの幅" #: data/io.github.celluloid_player.Celluloid.gschema.xml:179 msgid "Show or not show the controls" msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:185 msgid "Show or not show the playlist" msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:191 msgid "URI of the last folder accessed" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:7 #: data/io.github.celluloid_player.Celluloid.desktop.in:4 #: src/celluloid-application.c:451 msgid "Celluloid" msgstr "Celluloid" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:8 msgid "GTK+ frontend for mpv" msgstr "MPVのGTKフロントエンド" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:16 msgid "" "Celluloid is a simple media player that can play virtually all video and " "audio formats. It supports playlists and MPRIS2 media player controls. The " "design of Celluloid follows the GNOME Human Interface Guidelines, but can " "also be adapted for other systems that don't use client-side decorations " "(CSD). It is based on the mpv library and GTK." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:23 msgid "Features:" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:25 msgid "Drag and drop playlist" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:26 msgid "Loading external mpv configuration files" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:27 msgid "MPRIS2 D-Bus interface" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:30 msgid "The Celluloid Developers" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:34 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:87 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:117 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:156 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:187 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:215 msgid "This release contains the following changes:" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:38 msgid "" "Adjust the range of volume button based on the value of the volume-max " "property." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:42 msgid "Retain window maximization state across sessions." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:45 msgid "Retain loop state across sessions." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:48 msgid "Implement playlist search." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:51 msgid "Update the list of shortcuts in Keyboard Shortcuts dialog." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:54 msgid "Correctly handle quotes and escape sequences in extra mpv options." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:57 msgid "Display time at cursor position when hovering the seek bar." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:60 msgid "" "Deprecate '--mpv-options'. Options starting with '--mpv-' can be used to set" " mpv options instead. For example, passing '--mpv-vf=vflip' to Celluloid is " "equivalent to passing '--vf=vflip' to mpv." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:66 msgid "" "Add support for configuring dead zone, an area in which mouse movement will " "not cause controls to be shown." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:70 msgid "Make window sizing work correctly with HiDPI displays." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:73 msgid "Add Finnish translation by Kimmo Kujansuu." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:76 msgid "Add Slovenian translation by @bertronika." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:80 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:110 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:149 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:180 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:208 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:236 msgid "This listing is incomplete. See git log for complete changelog." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:91 msgid "Add Persian translation by @danialbehzadi" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:94 msgid "Add Ukranian translation by @vl-nix" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:97 msgid "" "Add support for showing/hiding window decorations using the mpv option " "--border" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:100 msgid "Add menu item for opening discs" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:103 msgid "Block cursor autohide when volume popup is open in windowed mode" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:106 msgid "Fix crash with mpv 0.30" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:121 msgid "Rename project to Celluloid" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:124 msgid "Add Turkish translation by @TeknoMobil" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:127 msgid "Add Esperanto translation by @F3nd0" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:130 msgid "Migrate from opengl-cb to the new render API" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:133 msgid "Handle numpad keybindings" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:136 msgid "Handle unicode keybindings" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:139 msgid "Forward media key events to mpv" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:142 msgid "" "Add dconf key for controlling cursor speed at which controls are unhidden" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:145 msgid "Add option for suppressing playback errors" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:160 msgid "Split up the General tab in the preferences dialog" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:163 msgid "Improve behavior when toggling playlist under tiling window managers" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:166 msgid "Move app menu items to primary menu" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:169 msgid "Use separate MPRIS DBus connection for each window" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:172 msgid "Add support for MPRIS property LoopStatus" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:175 msgid "" "Add option --mpv-options for setting arbitrary mpv options from the command-" "line" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:191 msgid "Set default screenshot directory to XDG_PICTURES_DIR" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:194 msgid "" "Improve handling of --window-scale, --autofit, --autofit-larger, and " "--autofit-smaller" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:198 msgid "Add command line option for setting WM_ROLE" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:201 msgid "Add context menu item for removing playlist items" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:204 msgid "Add context menu item for copying location of playlist items" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:219 msgid "" "Add option to make skip buttons change playlist entries rather than chapters" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:223 msgid "Make the file chooser accept non-local locations" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:226 msgid "Add right-click menu entry for looping a single file" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:229 msgid "Handle property change events for fullscreen and window-scale" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:232 msgid "Add option to autohide mouse cursor in windowed mode" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:246 msgid "The main window showing the application in action" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:250 msgid "The main window with CSD disabled" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:254 msgid "The main window with playlist open" msgstr "" #: data/io.github.celluloid_player.Celluloid.desktop.in:5 msgid "Multimedia Player" msgstr "" #: data/io.github.celluloid_player.Celluloid.desktop.in:6 msgid "Play movies and videos" msgstr "" #. Translators: Search terms to find this application. Don't translate the #. semicolons! The list MUST also end with a semicolon! #: data/io.github.celluloid_player.Celluloid.desktop.in:17 msgid "Video;Movie;Film;Clip;Series;Player;DVD;TV;Disc;Album;Music;GNOME;mpv;" msgstr "" #: data/io.github.celluloid_player.Celluloid.desktop.in:23 msgid "New Window" msgstr "新しいウィンドウ" #: src/celluloid-application.c:495 #, fuzzy msgid "Playing" msgstr "プレイ中" #: src/celluloid-application.c:551 msgid "Show release version" msgstr "" #: src/celluloid-application.c:559 msgid "Enqueue" msgstr "" #: src/celluloid-application.c:567 #, fuzzy msgid "Create a new window" msgstr "新しいウィンドウを開きます" #: src/celluloid-application.c:576 msgid "OPTIONS" msgstr "" #: src/celluloid-application.c:583 msgid "Set the window role" msgstr "" #: src/celluloid-application.c:591 msgid "Don't connect to an already-running instance" msgstr "" #: src/celluloid-control-box.c:362 #, fuzzy msgid "Pause" msgstr "一時停止" #: src/celluloid-control-box.c:362 src/celluloid-control-box.c:565 #, fuzzy msgid "Play" msgstr "プレー" #: src/celluloid-control-box.c:568 #, fuzzy msgid "Stop" msgstr "停止" #: src/celluloid-control-box.c:571 msgid "Forward" msgstr "" #: src/celluloid-control-box.c:574 msgid "Rewind" msgstr "" #: src/celluloid-control-box.c:577 msgid "Next Chapter" msgstr "" #: src/celluloid-control-box.c:580 msgid "Previous Chapter" msgstr "" #: src/celluloid-control-box.c:583 msgid "Loop Playlist" msgstr "" #: src/celluloid-control-box.c:586 msgid "Shuffle Playlist" msgstr "" #: src/celluloid-control-box.c:589 src/celluloid-header-bar.c:91 #, fuzzy msgid "Toggle Fullscreen" msgstr "全面表示を切換える" #: src/celluloid-controller.c:992 src/celluloid-view.c:1558 #, fuzzy msgid "Error" msgstr "エラー" #: src/celluloid-file-chooser.c:139 src/celluloid-plugins-manager.c:170 #, fuzzy msgid "All Files" msgstr "全てのファイル" #: src/celluloid-file-chooser.c:147 #, fuzzy msgid "Media Files" msgstr "メディア" #: src/celluloid-file-chooser.c:158 #, fuzzy msgid "Audio Files" msgstr "音声" #: src/celluloid-file-chooser.c:166 msgid "Video Files" msgstr "動画" #: src/celluloid-file-chooser.c:174 #, fuzzy msgid "Image Files" msgstr "画像" #: src/celluloid-file-chooser.c:184 #, fuzzy msgid "Subtitle Files" msgstr "字幕" #: src/celluloid-menu.c:106 #, fuzzy msgid "None" msgstr "なし" #. For simplicity, also dup the default string used when the #. * track has no title. #: src/celluloid-menu.c:121 #, fuzzy msgid "Unknown" msgstr "不明" #: src/celluloid-menu.c:154 msgid "_Load External…" msgstr "" #. Disable the menu item by setting the action to something #. * invalid. #: src/celluloid-menu.c:207 msgid "No disc found" msgstr "" #: src/celluloid-menu.c:235 msgid "_File" msgstr "ファイル(_F)" #: src/celluloid-menu.c:236 src/celluloid-menu.c:318 msgid "_Open…" msgstr "" #: src/celluloid-menu.c:237 src/celluloid-menu.c:319 msgid "Open _Folder…" msgstr "" #: src/celluloid-menu.c:238 src/celluloid-menu.c:320 msgid "Open _Location…" msgstr "" #: src/celluloid-menu.c:239 msgid "Open _Disc…" msgstr "" #: src/celluloid-menu.c:240 src/celluloid-menu.c:290 msgid "_Save Playlist" msgstr "プレイリストの保存(_S)" #: src/celluloid-menu.c:241 src/celluloid-menu.c:323 #, fuzzy msgid "_New Window" msgstr "新しいウィンドウ" #: src/celluloid-menu.c:242 #, fuzzy msgid "_Quit" msgstr "終了" #: src/celluloid-menu.c:243 msgid "_Edit" msgstr "編集(_E)" #: src/celluloid-menu.c:244 src/celluloid-menu.c:296 msgid "_Preferences" msgstr "設定(_P)" #: src/celluloid-menu.c:245 src/celluloid-menu.c:292 #, fuzzy msgid "_Video Track" msgstr "ビデオトラック(_V)" #: src/celluloid-menu.c:246 src/celluloid-menu.c:293 #, fuzzy msgid "_Audio Track" msgstr "音声トラック(_A)" #: src/celluloid-menu.c:247 src/celluloid-menu.c:294 #, fuzzy msgid "S_ubtitle Track" msgstr "字幕トラック(_S)" #: src/celluloid-menu.c:248 msgid "_View" msgstr "表示(_V)" #: src/celluloid-menu.c:249 src/celluloid-menu.c:287 msgid "_Toggle Controls" msgstr "" #: src/celluloid-menu.c:250 src/celluloid-menu.c:289 msgid "_Toggle Playlist" msgstr "プレイリストの表示・非表示(_T)" #: src/celluloid-menu.c:251 msgid "_Fullscreen" msgstr "全画面表示(_F)" #: src/celluloid-menu.c:252 msgid "_Help" msgstr "ヘルプ(_H)" #: src/celluloid-menu.c:253 src/celluloid-menu.c:297 #, fuzzy msgid "_Keyboard Shortcuts" msgstr "ショートカット" #: src/celluloid-menu.c:254 src/celluloid-menu.c:298 msgid "_About Celluloid" msgstr "" #: src/celluloid-menu.c:321 #, fuzzy msgid "Open _Disc" msgstr "ファイルを開く" #: src/celluloid-mpv.c:240 #, c-format msgid "Playback was terminated abnormally. Reason: %s." msgstr "" #: src/celluloid-open-location-dialog.c:130 msgid "Location:" msgstr "場所:" #: src/celluloid-open-location-dialog.c:136 #: src/celluloid-preferences-dialog.c:401 msgid "_Cancel" msgstr "キャンセル(_C)" #: src/celluloid-open-location-dialog.c:138 msgid "_Open" msgstr "開く(_O)" #: src/celluloid-player.c:550 msgid "Failed to apply one or more MPV options." msgstr "" #: src/celluloid-playlist-widget.c:784 msgid "_Copy Location" msgstr "" #: src/celluloid-playlist-widget.c:785 msgid "_Remove" msgstr "" #: src/celluloid-playlist-widget.c:787 msgid "_Add…" msgstr "" #: src/celluloid-playlist-widget.c:788 msgid "Add _Folder…" msgstr "" #: src/celluloid-playlist-widget.c:789 msgid "Add _Location…" msgstr "" #: src/celluloid-playlist-widget.c:790 msgid "_Shuffle" msgstr "" #: src/celluloid-playlist-widget.c:791 msgid "Loop _File" msgstr "" #: src/celluloid-playlist-widget.c:792 msgid "Loop _Playlist" msgstr "" #: src/celluloid-playlist-widget.c:933 src/celluloid-shortcuts-window.c:136 msgid "Playlist" msgstr "プレイリスト" #: src/celluloid-playlist-widget.c:941 #, fuzzy msgid "Playlist is empty" msgstr "プレイリスト" #: src/celluloid-plugins-manager.c:163 src/celluloid-plugins-manager.c:409 msgid "Add Plugin" msgstr "" #: src/celluloid-plugins-manager.c:175 msgid "Lua Plugins" msgstr "" #: src/celluloid-plugins-manager.c:181 msgid "JavaScript Plugins" msgstr "" #: src/celluloid-plugins-manager.c:186 msgid "C Plugins" msgstr "" #: src/celluloid-plugins-manager.c:334 #, c-format msgid "Failed to copy file from '%s' to '%s'. Reason: %s" msgstr "" #: src/celluloid-plugins-manager.c:385 msgid "No plugins found" msgstr "" #: src/celluloid-plugins-manager-item.c:79 #, fuzzy msgid "Remove" msgstr "削除" #: src/celluloid-plugins-manager-item.c:178 #, fuzzy msgid "" "Are you sure you want to remove this script? This action cannot be undone." msgstr "このスクリプトを削除してもよろしいですか?このアクションを元に戻すことはできません。" #: src/celluloid-plugins-manager-item.c:199 #, c-format msgid "Failed to delete file '%s'. Reason: %s" msgstr "" #: src/celluloid-preferences-dialog.c:304 msgid "Automatically resize window to fit video" msgstr "" #: src/celluloid-preferences-dialog.c:307 msgid "Enable client-side decorations" msgstr "CSDを有効にする" #: src/celluloid-preferences-dialog.c:310 msgid "Enable dark theme" msgstr "暗いテーマを有効にする" #: src/celluloid-preferences-dialog.c:313 msgid "Use floating controls in windowed mode" msgstr "" #: src/celluloid-preferences-dialog.c:316 msgid "Autohide mouse cursor in windowed mode" msgstr "" #: src/celluloid-preferences-dialog.c:319 msgid "Use skip buttons for controlling playlist" msgstr "" #: src/celluloid-preferences-dialog.c:322 msgid "Remember last file's location" msgstr "" #: src/celluloid-preferences-dialog.c:327 msgid "Load MPV configuration file" msgstr "MPV設定ファイルをロードする" #: src/celluloid-preferences-dialog.c:330 msgid "MPV configuration file:" msgstr "MPV設定ファイル:" #: src/celluloid-preferences-dialog.c:333 msgid "Load MPV input configuration file" msgstr "MPV入力設定ファイルをロードする" #: src/celluloid-preferences-dialog.c:336 msgid "MPV input configuration file:" msgstr "MPV入力設定ファイル:" #: src/celluloid-preferences-dialog.c:341 msgid "Always open new window" msgstr "" #: src/celluloid-preferences-dialog.c:344 msgid "Ignore playback errors" msgstr "" #: src/celluloid-preferences-dialog.c:347 msgid "Prefetch metadata" msgstr "" #: src/celluloid-preferences-dialog.c:350 msgid "Enable MPRIS support" msgstr "" #: src/celluloid-preferences-dialog.c:353 msgid "Enable media keys support" msgstr "" #: src/celluloid-preferences-dialog.c:356 msgid "Extra MPV options:" msgstr "その他のMPVオプション:" #: src/celluloid-preferences-dialog.c:389 msgid "Interface" msgstr "" #: src/celluloid-preferences-dialog.c:392 msgid "Config Files" msgstr "" #: src/celluloid-preferences-dialog.c:395 msgid "Miscellaneous" msgstr "" #: src/celluloid-preferences-dialog.c:398 msgid "Plugins" msgstr "" #: src/celluloid-preferences-dialog.c:403 msgid "_Save" msgstr "保存(_S)" #: src/celluloid-preferences-dialog.c:421 msgid "Preferences" msgstr "設定" #: src/celluloid-shortcuts-window.c:57 #, fuzzy msgid "Open file" msgstr "ファイルを開く" #: src/celluloid-shortcuts-window.c:58 #, fuzzy msgid "Open location" msgstr "場所を開く" #: src/celluloid-shortcuts-window.c:59 #, fuzzy msgid "Add file to playlist" msgstr "プレイリストにファイルを追加" #: src/celluloid-shortcuts-window.c:60 msgid "Add location to playlist" msgstr "" #: src/celluloid-shortcuts-window.c:61 #, fuzzy msgid "Show preferences dialog" msgstr "設定を表示する" #: src/celluloid-shortcuts-window.c:62 msgid "Toggle controls" msgstr "" #: src/celluloid-shortcuts-window.c:63 msgid "Toggle playlist" msgstr "" #: src/celluloid-shortcuts-window.c:64 #, fuzzy msgid "Toggle fullscreen mode" msgstr "全面表示を切換える" #: src/celluloid-shortcuts-window.c:65 #, fuzzy msgid "Leave fullscreen mode" msgstr "全画面表示を終了" #: src/celluloid-shortcuts-window.c:66 msgid "Toggle OSD states between normal and playback time/duration" msgstr "" #: src/celluloid-shortcuts-window.c:67 msgid "Show filename on the OSD" msgstr "" #: src/celluloid-shortcuts-window.c:68 msgid "Show progress, elapsed time, and duration on the OSD" msgstr "" #: src/celluloid-shortcuts-window.c:71 msgid "Seek backward/forward 5 seconds" msgstr "" #: src/celluloid-shortcuts-window.c:72 msgid "Exact seek backward/forward 1 second" msgstr "" #: src/celluloid-shortcuts-window.c:73 msgid "Seek backward/forward 1 minute" msgstr "" #: src/celluloid-shortcuts-window.c:74 msgid "Exact seek backward/forward 5 seconds" msgstr "" #: src/celluloid-shortcuts-window.c:75 msgid "Seek to previous/next subtitle" msgstr "" #: src/celluloid-shortcuts-window.c:76 msgid "Step backward/forward a single frame" msgstr "" #: src/celluloid-shortcuts-window.c:77 msgid "Seek to the beginning of the previous/next chapter" msgstr "" #: src/celluloid-shortcuts-window.c:80 msgid "Decrease/increase playback speed by 10%" msgstr "" #: src/celluloid-shortcuts-window.c:81 msgid "Halve/double current playback speed" msgstr "" #: src/celluloid-shortcuts-window.c:82 msgid "Reset playback speed to normal" msgstr "" #: src/celluloid-shortcuts-window.c:83 msgid "Go backward/forward in the playlist" msgstr "" #: src/celluloid-shortcuts-window.c:84 msgid "Remove selected playlist item" msgstr "" #: src/celluloid-shortcuts-window.c:85 #, fuzzy msgid "Save playlist" msgstr "プレイリストを保存" #: src/celluloid-shortcuts-window.c:86 msgid "Set/clear A-B loop points" msgstr "" #: src/celluloid-shortcuts-window.c:87 msgid "Toggle infinite looping" msgstr "" #: src/celluloid-shortcuts-window.c:88 msgid "Pause or unpause" msgstr "" #: src/celluloid-shortcuts-window.c:89 #, fuzzy msgid "Quit" msgstr "終了" #: src/celluloid-shortcuts-window.c:90 msgid "Save current playback position and quit" msgstr "" #: src/celluloid-shortcuts-window.c:93 msgid "Enter search mode" msgstr "" #: src/celluloid-shortcuts-window.c:94 msgid "Jump to next match" msgstr "" #: src/celluloid-shortcuts-window.c:95 msgid "Jump to previous match" msgstr "" #: src/celluloid-shortcuts-window.c:96 msgid "Exit search mode" msgstr "" #: src/celluloid-shortcuts-window.c:99 msgid "Cycle through audio tracks" msgstr "" #: src/celluloid-shortcuts-window.c:100 src/celluloid-shortcuts-window.c:101 msgid "Decrease/increase volume" msgstr "" #: src/celluloid-shortcuts-window.c:102 msgid "Mute or unmute" msgstr "" #: src/celluloid-shortcuts-window.c:103 msgid "Adjust audio delay by +/- 0.1 seconds" msgstr "" #: src/celluloid-shortcuts-window.c:106 msgid "Toggle subtitle visibility" msgstr "" #: src/celluloid-shortcuts-window.c:107 msgid "Cycle through available subtitles" msgstr "" #: src/celluloid-shortcuts-window.c:108 msgid "Adjust subtitle delay by +/- 0.1 seconds" msgstr "" #: src/celluloid-shortcuts-window.c:109 msgid "Toggle SSA/ASS subtitles style override" msgstr "" #: src/celluloid-shortcuts-window.c:110 msgid "Move subtitles up/down" msgstr "" #: src/celluloid-shortcuts-window.c:111 msgid "Toggle VSFilter aspect compatibility mode" msgstr "" #: src/celluloid-shortcuts-window.c:114 msgid "Cycle through video tracks" msgstr "" #: src/celluloid-shortcuts-window.c:115 msgid "Decrease/increase pan-and-scan range" msgstr "" #: src/celluloid-shortcuts-window.c:116 #, fuzzy msgid "Take a screenshot" msgstr "スクリーンショットを撮る" #: src/celluloid-shortcuts-window.c:117 msgid "Take a screenshot, without subtitles" msgstr "" #: src/celluloid-shortcuts-window.c:118 msgid "Take a screenshot, as the window shows it" msgstr "" #: src/celluloid-shortcuts-window.c:119 msgid "Resize video to half its original size" msgstr "" #: src/celluloid-shortcuts-window.c:120 msgid "Resize video to its original size" msgstr "" #: src/celluloid-shortcuts-window.c:121 msgid "Resize video to double its original size" msgstr "" #: src/celluloid-shortcuts-window.c:122 msgid "Adjust contrast" msgstr "" #: src/celluloid-shortcuts-window.c:123 msgid "Adjust brightness" msgstr "" #: src/celluloid-shortcuts-window.c:124 msgid "Adjust gamma" msgstr "" #: src/celluloid-shortcuts-window.c:125 msgid "Adjust saturation" msgstr "" #: src/celluloid-shortcuts-window.c:126 msgid "Activate or deactivate deinterlacer" msgstr "" #: src/celluloid-shortcuts-window.c:127 msgid "Cycle aspect ratio override" msgstr "" #: src/celluloid-shortcuts-window.c:130 #, fuzzy msgid "User Interface" msgstr "ユーザーインターフェース" #: src/celluloid-shortcuts-window.c:131 msgid "Video" msgstr "ビデオ" #: src/celluloid-shortcuts-window.c:132 #, fuzzy msgid "Audio" msgstr "オーディオ" #: src/celluloid-shortcuts-window.c:133 #, fuzzy msgid "Subtitle" msgstr "字幕" #: src/celluloid-shortcuts-window.c:134 #, fuzzy msgid "Playback" msgstr "プレイバック" #: src/celluloid-shortcuts-window.c:135 msgid "Seeking" msgstr "" #: src/celluloid-view.c:728 #, fuzzy msgid "Load Audio Track…" msgstr "音声トラックをロードする" #: src/celluloid-view.c:732 msgid "Load Video Track…" msgstr "" #: src/celluloid-view.c:736 #, fuzzy msgid "Load Subtitle Track…" msgstr "字幕をロードする" #: src/celluloid-view.c:901 #, fuzzy msgid "" "Enabling or disabling client-side decorations requires restarting to take " "effect." msgstr "CSDの有効・無効は再起動が必要です。" #: src/celluloid-view.c:1444 msgid "Add Folder to Playlist" msgstr "" #: src/celluloid-view.c:1444 msgid "Open Folder" msgstr "" #: src/celluloid-view.c:1449 msgid "Add File to Playlist" msgstr "プレイリストの表示・非表示" #: src/celluloid-view.c:1449 msgid "Open File" msgstr "ファイルを開く" #: src/celluloid-view.c:1485 msgid "Add Location to Playlist" msgstr "" #: src/celluloid-view.c:1486 msgid "Open Location" msgstr "場所を開く" #: src/celluloid-view.c:1532 #, fuzzy msgid "Save Playlist" msgstr "_プレイリストの保存" #: src/celluloid-view.c:1598 msgid "A GTK frontend for MPV" msgstr "MPVのGTKフロントエンド" #: src/celluloid-view.c:1608 msgid "translator-credits" msgstr "Tista" celluloid-0.20/po/meson.build000066400000000000000000000010021373135401300161600ustar00rootroot00000000000000i18n.gettext(meson.project_name(), preset: 'glib' ) msgfmt = find_program('msgfmt', required: false) if msgfmt.found() linguas = run_command('cat', files('LINGUAS')).stdout().strip().split('\n') foreach lingua : linguas po_file = '.'.join([lingua, 'po']) test('Validate @0@'.format(po_file), msgfmt, args: [ '--output-file=/dev/null', '--check-accelerator=_', '-c', '-v', join_paths(meson.current_source_dir(), po_file) ] ) endforeach endif celluloid-0.20/po/nl.po000066400000000000000000001076041373135401300150060ustar00rootroot00000000000000# gnome-mpv , 2019. #zanata # Jan Wesselink , 2020. #zanata # gnome-mpv , 2020. #zanata msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-02-20 20:48+0700\n" "PO-Revision-Date: 2020-08-01 10:42-0400\n" "Last-Translator: gnome-mpv \n" "Language-Team: Dutch\n" "Language: nl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" "X-Generator: Zanata 4.6.2\n" #: data/io.github.celluloid_player.Celluloid.gschema.xml:11 #, fuzzy msgid "" "Whether the settings has already been migrated from the previous version" msgstr "Of de instellingen al gemigreerd zijn van een vorige versie" #: data/io.github.celluloid_player.Celluloid.gschema.xml:17 msgid "Whether or not to automatically resize window to fit video" msgstr "Wel of niet automatisch aanpassen van venster aan de video" #: data/io.github.celluloid_player.Celluloid.gschema.xml:23 msgid "Enable or disable dark theme" msgstr "Schakel donker thema in of uit" #: data/io.github.celluloid_player.Celluloid.gschema.xml:29 msgid "Enable or disable client-side decorations" msgstr "Schakel client-side decoraties in of uit" #: data/io.github.celluloid_player.Celluloid.gschema.xml:35 msgid "Whether or not to use floating controls in windowed mode" msgstr "De zwevende bedieningselementen wel of niet gebruiken in venstermodus" #: data/io.github.celluloid_player.Celluloid.gschema.xml:41 msgid "Whether or not to autohide mouse cursor in windowed mode" msgstr "" "Wel of niet automatisch verbergen van de muisaanwijzer in venstermodus" #: data/io.github.celluloid_player.Celluloid.gschema.xml:47 msgid "The minimum cursor speed at which floating controls will be unhidden." msgstr "" "De minimale cursorsnelheid waarbij de zwevende bedieningselementen weer " "zichtbaar zullen worden" #: data/io.github.celluloid_player.Celluloid.gschema.xml:54 msgid "" "The size of the dead zone in which cursor movement will not cause the " "controls to be shown." msgstr "" "De grootte van de dode zone waarin de besturingselementen bij muisbewegingen" " niet zichtbaar zullen worden" #: data/io.github.celluloid_player.Celluloid.gschema.xml:60 msgid "Whether or not to use skip buttons for controlling playlist" msgstr "" "Wel of niet gebruiken van knoppen om over te slaan in de afspeellijst " #: data/io.github.celluloid_player.Celluloid.gschema.xml:66 #, fuzzy msgid "" "Whether or not to make file chooser dialog remember last folder accessed" msgstr "" "Laat de bestandskiezer de laatst geraadpleegde map wel of niet onthouden" #: data/io.github.celluloid_player.Celluloid.gschema.xml:72 msgid "Whether or not to create new windows when there is already an instance" msgstr "Wel of niet een nieuw venster starten als er al een actief is" #: data/io.github.celluloid_player.Celluloid.gschema.xml:78 #: src/celluloid-application.c:575 msgid "Options to pass to mpv" msgstr "Opties om door te geven aan mpv" #: data/io.github.celluloid_player.Celluloid.gschema.xml:84 msgid "Path to mpv configuration file" msgstr "Pad naar mpv configuratiebestand" #: data/io.github.celluloid_player.Celluloid.gschema.xml:90 #, fuzzy msgid "Load or don't load mpv configuration file" msgstr "Laad mpv configuratiebestand wel of niet" #: data/io.github.celluloid_player.Celluloid.gschema.xml:96 #, fuzzy msgid "Path to mpv input configuration file" msgstr "Pad naar mpv input configuratiebestand" #: data/io.github.celluloid_player.Celluloid.gschema.xml:102 #, fuzzy msgid "Load or don't load mpv input configuration file" msgstr "Laad mpv input configuratiebestand wel of niet" #: data/io.github.celluloid_player.Celluloid.gschema.xml:108 msgid "Whether or not to enable MPRIS support" msgstr "Wel of niet inschakelen van MPRIS ondersteuning" #: data/io.github.celluloid_player.Celluloid.gschema.xml:114 msgid "" "Whether or not to enable GNOME-Settings-Daemon-based media keys support" msgstr "" "Wel of niet inschakelen van GNOME-Settings-Daemon-based media keys " "ondersteuning" #: data/io.github.celluloid_player.Celluloid.gschema.xml:120 msgid "Whether or not to prefetch metadata for non-current playlist entries" msgstr "" "Wel of niet van te voren ophalen van metadata voor niet-huidige " "afspeellijstitems" #: data/io.github.celluloid_player.Celluloid.gschema.xml:126 msgid "" "Whether or not to display an error message when playback of a file ends with" " an error" msgstr "" "Wel of niet weergeven van een foutmelding als het afspelen stopt door een " "fout" #: data/io.github.celluloid_player.Celluloid.gschema.xml:132 msgid "Whether or not to inhibit session idling when something is playing" msgstr "Wel of niet blokkeren als er iets aan het afspelen is" #: data/io.github.celluloid_player.Celluloid.gschema.xml:142 msgid "Width of the window" msgstr "Breedte van het venster" #: data/io.github.celluloid_player.Celluloid.gschema.xml:148 msgid "Height of the window" msgstr "Hoogte van het venster" #: data/io.github.celluloid_player.Celluloid.gschema.xml:154 msgid "Whether or not the window is maximized" msgstr "Of het venster wel of niet gemaximaliseerd is" #: data/io.github.celluloid_player.Celluloid.gschema.xml:161 #, fuzzy msgid "Volume of player" msgstr "Volume van de speler" #: data/io.github.celluloid_player.Celluloid.gschema.xml:167 msgid "Whether or not to loop when the end of playlist is reached" msgstr "Wel of niet herhalen als het einde van de afspeellijst is bereikt " #: data/io.github.celluloid_player.Celluloid.gschema.xml:173 msgid "Width of the playlist" msgstr "Breedte van de afspeellijst" #: data/io.github.celluloid_player.Celluloid.gschema.xml:179 #, fuzzy msgid "Show or not show the controls" msgstr "Geef de controls wel of niet weer" #: data/io.github.celluloid_player.Celluloid.gschema.xml:185 msgid "Show or not show the playlist" msgstr "Geef de afspeellijst wel of niet weer" #: data/io.github.celluloid_player.Celluloid.gschema.xml:191 msgid "URI of the last folder accessed" msgstr "URI van de map die het laatst is geraadpleegd" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:7 #: data/io.github.celluloid_player.Celluloid.desktop.in:4 #: src/celluloid-application.c:451 msgid "Celluloid" msgstr "Celluloid" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:8 msgid "GTK+ frontend for mpv" msgstr "GTK+ frontend voor mpv" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:16 msgid "" "Celluloid is a simple media player that can play virtually all video and " "audio formats. It supports playlists and MPRIS2 media player controls. The " "design of Celluloid follows the GNOME Human Interface Guidelines, but can " "also be adapted for other systems that don't use client-side decorations " "(CSD). It is based on the mpv library and GTK." msgstr "" "Celluloid is een eenvoudige mediaspeler die nagenoeg alle video en " "audioformaten kan afspelen. Het ondersteunt afspeellijsten en MPRIS2 " "mediaspeler bediening. Het ontwerp van Celluloid volgt de GNOME Human " "Interface richtlijnen, maar kan ook worden aangepast voor andere systemen " "die geen client-side-decortions gebruiken. Het is gebaseerd op de mpv " "bibliotheek en op GTK. " #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:23 msgid "Features:" msgstr "Functies:" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:25 #, fuzzy msgid "Drag and drop playlist" msgstr "Drag and drop afspeellijst" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:26 msgid "Loading external mpv configuration files" msgstr "Externe mpv configuratiebestanden laden" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:27 msgid "MPRIS2 D-Bus interface" msgstr "MPRIS2 D-Bus interface" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:30 msgid "The Celluloid Developers" msgstr "De Celluloid ontwikkelaars" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:34 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:87 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:117 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:156 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:187 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:215 msgid "This release contains the following changes:" msgstr "Deze uitgave bevat de volgende aanpassingen:" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:38 msgid "" "Adjust the range of volume button based on the value of the volume-max " "property." msgstr "" "Stel het bereik van de volumeknop in op basis van de volume-max " "eigenschappen" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:42 msgid "Retain window maximization state across sessions." msgstr "Behoud maximale venstergrootte tussen verschillende sessies" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:45 msgid "Retain loop state across sessions." msgstr "Behoud herhaalinstelling tussen verschillende sessies" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:48 msgid "Implement playlist search." msgstr "Implementeer zoeken in afspeellijst" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:51 msgid "Update the list of shortcuts in Keyboard Shortcuts dialog." msgstr "Werk de lijst met sneltoetsen bij in het dialoogvenster Sneltoetsen" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:54 msgid "Correctly handle quotes and escape sequences in extra mpv options." msgstr "Behandel citaten en escape-reeksen correct in extra mpv-opties" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:57 msgid "Display time at cursor position when hovering the seek bar." msgstr "Geef de tijd weer op de cursorpositie wanneer u de zoekbalk beweegt" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:60 msgid "" "Deprecate '--mpv-options'. Options starting with '--mpv-' can be used to set" " mpv options instead. For example, passing '--mpv-vf=vflip' to Celluloid is " "equivalent to passing '--vf=vflip' to mpv." msgstr "" "Beëindig '--mpv-opties'. Opties die beginnen met '--mpv-' kunnen in plaats " "daarvan worden gebruikt om mpv-opties in te stellen. Het doorgeven van '--" "mpv-vf = vflip' aan Celluloid is bijvoorbeeld gelijk aan het doorgeven van '" "--vf = vflip' aan mpv" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:66 msgid "" "Add support for configuring dead zone, an area in which mouse movement will " "not cause controls to be shown." msgstr "" "Voeg ondersteuning toe voor het configureren van de dode zone, een gebied " "waarin muisbewegingen geen bediening zullen veroorzaken" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:70 msgid "Make window sizing work correctly with HiDPI displays." msgstr "Zorg ervoor dat venstergrootte correct werkt met HiDPI-schermen" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:73 msgid "Add Finnish translation by Kimmo Kujansuu." msgstr "Finse vertaling toegevoegd door Kimmo Kujansuu" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:76 msgid "Add Slovenian translation by @bertronika." msgstr "Sloveense vertaling toevoegd door @bertronika." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:80 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:110 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:149 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:180 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:208 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:236 msgid "This listing is incomplete. See git log for complete changelog." msgstr "Deze lijst is onvolledig. Zie git log voor volledige changelog." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:91 msgid "Add Persian translation by @danialbehzadi" msgstr "Perzische vertaling toegevoegd door @danialbehzadi" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:94 msgid "Add Ukranian translation by @vl-nix" msgstr "Oekraïense vertaling toegevoegd door @ vl-nix" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:97 msgid "" "Add support for showing/hiding window decorations using the mpv option " "--border" msgstr "" "Ondersteuning toevoegen voor het weergeven / verbergen van vensterdecoraties" " met behulp van de mpv-optie --border" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:100 msgid "Add menu item for opening discs" msgstr "Menu-item toevoegen voor het openen van schijven" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:103 msgid "Block cursor autohide when volume popup is open in windowed mode" msgstr "" "Blokkeer cursor autohide wanneer volume pop-up is geopend in venstermodus" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:106 msgid "Fix crash with mpv 0.30" msgstr "Fix crash met mpv 0.30" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:121 msgid "Rename project to Celluloid" msgstr "Hernoem project naar Celluloid" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:124 msgid "Add Turkish translation by @TeknoMobil" msgstr "Turkse vertaling toegevoegddoor @TeknoMobil" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:127 msgid "Add Esperanto translation by @F3nd0" msgstr "Esperanto-vertaling toegevoegd door @ F3nd0" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:130 msgid "Migrate from opengl-cb to the new render API" msgstr "Migreer van opengl-cb naar de nieuwe render-API" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:133 msgid "Handle numpad keybindings" msgstr "Verwerk numpad sneltoetsen" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:136 msgid "Handle unicode keybindings" msgstr "Verwerk unicode sneltoetsen" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:139 msgid "Forward media key events to mpv" msgstr "Stuur mediasleutelgebeurtenissen door naar mpv" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:142 msgid "" "Add dconf key for controlling cursor speed at which controls are unhidden" msgstr "" "Voeg een dconf-sleutel toe voor het instellen van de cursorsnelheid waarbij " "bedieningselementen zichtbaar zullen worden" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:145 msgid "Add option for suppressing playback errors" msgstr "Optie toevoegen om afspeelfouten te onderdrukken" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:160 msgid "Split up the General tab in the preferences dialog" msgstr "Verdeel het tabblad Algemeen in het voorkeurenvenster" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:163 msgid "Improve behavior when toggling playlist under tiling window managers" msgstr "" "Verbeter het gedrag bij het wisselen van afspeellijst onder tegelende " "vensterbeheerders" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:166 msgid "Move app menu items to primary menu" msgstr "Verplaats app-menu-items naar het primaire menu" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:169 msgid "Use separate MPRIS DBus connection for each window" msgstr "Gebruik voor elk venster een afzonderlijke MPRIS DBus-verbinding" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:172 msgid "Add support for MPRIS property LoopStatus" msgstr "Ondersteuning toevoegen voor MPRIS-eigenschap LoopStatus" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:175 msgid "" "Add option --mpv-options for setting arbitrary mpv options from the command-" "line" msgstr "" "Optie --mpv-opties toevoegen voor het instellen van willekeurige mpv-opties " "vanaf de opdrachtregel" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:191 msgid "Set default screenshot directory to XDG_PICTURES_DIR" msgstr "Stel de standaard schermafdruk-map in op XDG_PICTURES_DIR" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:194 msgid "" "Improve handling of --window-scale, --autofit, --autofit-larger, and " "--autofit-smaller" msgstr "" "Verbeter de afhandeling van --window-schaal, --autofit, --autofit-groter en " "--autofit-kleiner" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:198 msgid "Add command line option for setting WM_ROLE" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:201 msgid "Add context menu item for removing playlist items" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:204 msgid "Add context menu item for copying location of playlist items" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:219 msgid "" "Add option to make skip buttons change playlist entries rather than chapters" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:223 msgid "Make the file chooser accept non-local locations" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:226 msgid "Add right-click menu entry for looping a single file" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:229 msgid "Handle property change events for fullscreen and window-scale" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:232 msgid "Add option to autohide mouse cursor in windowed mode" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:246 msgid "The main window showing the application in action" msgstr "Het hoofdvenster dat de applicatie in actie laat zien" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:250 msgid "The main window with CSD disabled" msgstr "Het hoofdvenster met CSD uitgeschakeld" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:254 msgid "The main window with playlist open" msgstr "Het hoofdvenster met een afspeellijst open" #: data/io.github.celluloid_player.Celluloid.desktop.in:5 msgid "Multimedia Player" msgstr "" #: data/io.github.celluloid_player.Celluloid.desktop.in:6 msgid "Play movies and videos" msgstr "" #. Translators: Search terms to find this application. Don't translate the #. semicolons! The list MUST also end with a semicolon! #: data/io.github.celluloid_player.Celluloid.desktop.in:17 msgid "Video;Movie;Film;Clip;Series;Player;DVD;TV;Disc;Album;Music;GNOME;mpv;" msgstr "" #: data/io.github.celluloid_player.Celluloid.desktop.in:23 msgid "New Window" msgstr "Nieuw venster" #: src/celluloid-application.c:495 msgid "Playing" msgstr "Afspelen" #: src/celluloid-application.c:551 msgid "Show release version" msgstr "Toon release versie" #: src/celluloid-application.c:559 #, fuzzy msgid "Enqueue" msgstr "Voeg toe aan wachtrij" #: src/celluloid-application.c:567 msgid "Create a new window" msgstr "Creëer een nieuw venster" #: src/celluloid-application.c:576 msgid "OPTIONS" msgstr "Opties" #: src/celluloid-application.c:583 msgid "Set the window role" msgstr "" #: src/celluloid-application.c:591 #, fuzzy msgid "Don't connect to an already-running instance" msgstr "Verbind niet met instanties die al draaien" #: src/celluloid-control-box.c:362 msgid "Pause" msgstr "Pauze" #: src/celluloid-control-box.c:362 src/celluloid-control-box.c:565 msgid "Play" msgstr "Speel af" #: src/celluloid-control-box.c:568 msgid "Stop" msgstr "Stop" #: src/celluloid-control-box.c:571 msgid "Forward" msgstr "Voorwaarts" #: src/celluloid-control-box.c:574 msgid "Rewind" msgstr "Achterwaarts" #: src/celluloid-control-box.c:577 msgid "Next Chapter" msgstr "Volgend Hoofdstuk" #: src/celluloid-control-box.c:580 msgid "Previous Chapter" msgstr "Vorig Hoofdstuk" #: src/celluloid-control-box.c:583 msgid "Loop Playlist" msgstr "Herhaal afspeellijst" #: src/celluloid-control-box.c:586 msgid "Shuffle Playlist" msgstr "Willekeurig afspelen afspeellijst" #: src/celluloid-control-box.c:589 src/celluloid-header-bar.c:91 msgid "Toggle Fullscreen" msgstr "Schakel naar volledig scherm" #: src/celluloid-controller.c:992 src/celluloid-view.c:1558 msgid "Error" msgstr "Fout" #: src/celluloid-file-chooser.c:139 src/celluloid-plugins-manager.c:170 msgid "All Files" msgstr "Alle bestanden" #: src/celluloid-file-chooser.c:147 msgid "Media Files" msgstr "Media bestanden" #: src/celluloid-file-chooser.c:158 msgid "Audio Files" msgstr "Audio bestanden" #: src/celluloid-file-chooser.c:166 msgid "Video Files" msgstr "Video bestanden" #: src/celluloid-file-chooser.c:174 msgid "Image Files" msgstr "Afbeeldingen" #: src/celluloid-file-chooser.c:184 msgid "Subtitle Files" msgstr "Ondertiteling" #: src/celluloid-menu.c:106 msgid "None" msgstr "Geen" #. For simplicity, also dup the default string used when the #. * track has no title. #: src/celluloid-menu.c:121 msgid "Unknown" msgstr "Onbekend" #: src/celluloid-menu.c:154 msgid "_Load External…" msgstr "_Laad Externe…" #. Disable the menu item by setting the action to something #. * invalid. #: src/celluloid-menu.c:207 msgid "No disc found" msgstr "Geen schijf gevonden" #: src/celluloid-menu.c:235 msgid "_File" msgstr "_Bestand" #: src/celluloid-menu.c:236 src/celluloid-menu.c:318 msgid "_Open…" msgstr "_Open…" #: src/celluloid-menu.c:237 src/celluloid-menu.c:319 msgid "Open _Folder…" msgstr "" #: src/celluloid-menu.c:238 src/celluloid-menu.c:320 msgid "Open _Location…" msgstr "Open _Locatie…" #: src/celluloid-menu.c:239 msgid "Open _Disc…" msgstr "Open _Schijf…" #: src/celluloid-menu.c:240 src/celluloid-menu.c:290 msgid "_Save Playlist" msgstr "_Sla Afspeellijst op" #: src/celluloid-menu.c:241 src/celluloid-menu.c:323 msgid "_New Window" msgstr "_Nieuw venster" #: src/celluloid-menu.c:242 #, fuzzy msgid "_Quit" msgstr "_Afsluiten" #: src/celluloid-menu.c:243 msgid "_Edit" msgstr "_Bewerken" #: src/celluloid-menu.c:244 src/celluloid-menu.c:296 msgid "_Preferences" msgstr "_Instellingen" #: src/celluloid-menu.c:245 src/celluloid-menu.c:292 msgid "_Video Track" msgstr "_Video bestand" #: src/celluloid-menu.c:246 src/celluloid-menu.c:293 msgid "_Audio Track" msgstr "_Audio bestand" #: src/celluloid-menu.c:247 src/celluloid-menu.c:294 msgid "S_ubtitle Track" msgstr "_Ondertitel bestand" #: src/celluloid-menu.c:248 msgid "_View" msgstr "_Weergave" #: src/celluloid-menu.c:249 src/celluloid-menu.c:287 msgid "_Toggle Controls" msgstr "_Schakel bediening in of uit" #: src/celluloid-menu.c:250 src/celluloid-menu.c:289 msgid "_Toggle Playlist" msgstr "_Schakel afspeellijst in of uit" #: src/celluloid-menu.c:251 msgid "_Fullscreen" msgstr "_Volledig Scherm" #: src/celluloid-menu.c:252 msgid "_Help" msgstr "_Help" #: src/celluloid-menu.c:253 src/celluloid-menu.c:297 msgid "_Keyboard Shortcuts" msgstr "_Sneltoetsen" #: src/celluloid-menu.c:254 src/celluloid-menu.c:298 msgid "_About Celluloid" msgstr "_Over Celluloid" #: src/celluloid-menu.c:321 msgid "Open _Disc" msgstr "Open _Schijf…" #: src/celluloid-mpv.c:240 #, fuzzy, c-format msgid "Playback was terminated abnormally. Reason: %s." msgstr "Afspelen werd abnormaal beëindigd. Reden: %s." #: src/celluloid-open-location-dialog.c:130 msgid "Location:" msgstr "Locatie:" #: src/celluloid-open-location-dialog.c:136 #: src/celluloid-preferences-dialog.c:401 msgid "_Cancel" msgstr "_Annuleren" #: src/celluloid-open-location-dialog.c:138 msgid "_Open" msgstr "_Open" #: src/celluloid-player.c:550 msgid "Failed to apply one or more MPV options." msgstr "Het toepassen van een of meerdere MPV opties is mislukt." #: src/celluloid-playlist-widget.c:784 msgid "_Copy Location" msgstr "_Kopieer Locatie" #: src/celluloid-playlist-widget.c:785 msgid "_Remove" msgstr "_Verwijder" #: src/celluloid-playlist-widget.c:787 msgid "_Add…" msgstr "_Voeg Toe…" #: src/celluloid-playlist-widget.c:788 msgid "Add _Folder…" msgstr "" #: src/celluloid-playlist-widget.c:789 msgid "Add _Location…" msgstr "Voeg _locatie toe" #: src/celluloid-playlist-widget.c:790 msgid "_Shuffle" msgstr "_Willekeurig " #: src/celluloid-playlist-widget.c:791 msgid "Loop _File" msgstr "Herhaal _bestand" #: src/celluloid-playlist-widget.c:792 msgid "Loop _Playlist" msgstr "Herhaal _afspeellijst" #: src/celluloid-playlist-widget.c:933 src/celluloid-shortcuts-window.c:136 msgid "Playlist" msgstr "Afspeellijst" #: src/celluloid-playlist-widget.c:941 msgid "Playlist is empty" msgstr "Afspeellijst is leeg" #: src/celluloid-plugins-manager.c:163 src/celluloid-plugins-manager.c:409 msgid "Add Plugin" msgstr "Voeg plugin toe " #: src/celluloid-plugins-manager.c:175 msgid "Lua Plugins" msgstr "Lua Plugins" #: src/celluloid-plugins-manager.c:181 msgid "JavaScript Plugins" msgstr "JavaScript Plugins" #: src/celluloid-plugins-manager.c:186 msgid "C Plugins" msgstr "C Plugins" #: src/celluloid-plugins-manager.c:334 #, fuzzy, c-format msgid "Failed to copy file from '%s' to '%s'. Reason: %s" msgstr "Bestand van '%s' naar '%s' kopiëren mislukt. Reden: %s" #: src/celluloid-plugins-manager.c:385 msgid "No plugins found" msgstr "Geen plugins gevonden" #: src/celluloid-plugins-manager-item.c:79 msgid "Remove" msgstr "Verwijderen" #: src/celluloid-plugins-manager-item.c:178 msgid "" "Are you sure you want to remove this script? This action cannot be undone." msgstr "" "Weet je het zeker dat je dit script wil verwijderen? Deze actie kan niet " "ongedaan worden gemaakt." #: src/celluloid-plugins-manager-item.c:199 #, fuzzy, c-format msgid "Failed to delete file '%s'. Reason: %s" msgstr "Bestand '%s' verwijderen mislukt. Reden: %s" #: src/celluloid-preferences-dialog.c:304 msgid "Automatically resize window to fit video" msgstr "Automatisch aanpassen van venster aan video" #: src/celluloid-preferences-dialog.c:307 msgid "Enable client-side decorations" msgstr "Schakel client-side decoratie in" #: src/celluloid-preferences-dialog.c:310 msgid "Enable dark theme" msgstr "Schakel donker thema in" #: src/celluloid-preferences-dialog.c:313 msgid "Use floating controls in windowed mode" msgstr "Gebruik zwevenden bedieningselementen in venstermodus" #: src/celluloid-preferences-dialog.c:316 msgid "Autohide mouse cursor in windowed mode" msgstr "Automatisch verbergen van muisaanwijzer in venstermodus" #: src/celluloid-preferences-dialog.c:319 msgid "Use skip buttons for controlling playlist" msgstr "Gebruik skip knoppen voor bediening van afspeellijst" #: src/celluloid-preferences-dialog.c:322 msgid "Remember last file's location" msgstr "Onthoud de locatie van het laatste bestand" #: src/celluloid-preferences-dialog.c:327 msgid "Load MPV configuration file" msgstr "Laad MPV configuratiebestand" #: src/celluloid-preferences-dialog.c:330 msgid "MPV configuration file:" msgstr "MPV configuratiebestand:" #: src/celluloid-preferences-dialog.c:333 #, fuzzy msgid "Load MPV input configuration file" msgstr "Laad MPV input configuratiebestand" #: src/celluloid-preferences-dialog.c:336 #, fuzzy msgid "MPV input configuration file:" msgstr "MPV input configuratiebestand:" #: src/celluloid-preferences-dialog.c:341 msgid "Always open new window" msgstr "Altijd een nieuw venster openen" #: src/celluloid-preferences-dialog.c:344 msgid "Ignore playback errors" msgstr "Negeer afspeelfouten" #: src/celluloid-preferences-dialog.c:347 msgid "Prefetch metadata" msgstr "Haal metadata van te voren op" #: src/celluloid-preferences-dialog.c:350 msgid "Enable MPRIS support" msgstr "Schakel MPRIS support in" #: src/celluloid-preferences-dialog.c:353 msgid "Enable media keys support" msgstr "Schakel media keys support in" #: src/celluloid-preferences-dialog.c:356 msgid "Extra MPV options:" msgstr "Extra MPV opties:" #: src/celluloid-preferences-dialog.c:389 msgid "Interface" msgstr "Interface" #: src/celluloid-preferences-dialog.c:392 msgid "Config Files" msgstr "Config Bestanden" #: src/celluloid-preferences-dialog.c:395 msgid "Miscellaneous" msgstr "Diversen" #: src/celluloid-preferences-dialog.c:398 msgid "Plugins" msgstr "Plugins" #: src/celluloid-preferences-dialog.c:403 msgid "_Save" msgstr "_Opslaan" #: src/celluloid-preferences-dialog.c:421 msgid "Preferences" msgstr "Instellingen" #: src/celluloid-shortcuts-window.c:57 msgid "Open file" msgstr "Open bestand" #: src/celluloid-shortcuts-window.c:58 msgid "Open location" msgstr "Open locatie" #: src/celluloid-shortcuts-window.c:59 msgid "Add file to playlist" msgstr "Voeg bestand toe aan afspeellijst" #: src/celluloid-shortcuts-window.c:60 msgid "Add location to playlist" msgstr "Voeg locatie toe aan afspeellijst" #: src/celluloid-shortcuts-window.c:61 msgid "Show preferences dialog" msgstr "Toon instellingen dialoog" #: src/celluloid-shortcuts-window.c:62 msgid "Toggle controls" msgstr "Schakel bediening in of uit" #: src/celluloid-shortcuts-window.c:63 msgid "Toggle playlist" msgstr "Schakel afspeellijst in of uit" #: src/celluloid-shortcuts-window.c:64 msgid "Toggle fullscreen mode" msgstr "Schakel naar volledig scherm" #: src/celluloid-shortcuts-window.c:65 msgid "Leave fullscreen mode" msgstr "Verlaat volledig scherm-modus" #: src/celluloid-shortcuts-window.c:66 msgid "Toggle OSD states between normal and playback time/duration" msgstr "Schakel OSD weergave tussen normaal en afspeeltijd/duur" #: src/celluloid-shortcuts-window.c:67 msgid "Show filename on the OSD" msgstr "Geef bestandsnaam weer op de OSD" #: src/celluloid-shortcuts-window.c:68 msgid "Show progress, elapsed time, and duration on the OSD" msgstr "Geef vooruitgang, verstreken tijd en duratie weer op de OSD" #: src/celluloid-shortcuts-window.c:71 msgid "Seek backward/forward 5 seconds" msgstr "Zoek 5 seconden achter- of voorwaards" #: src/celluloid-shortcuts-window.c:72 msgid "Exact seek backward/forward 1 second" msgstr "Zoek exact 1 seconde achter- of voorwaards" #: src/celluloid-shortcuts-window.c:73 msgid "Seek backward/forward 1 minute" msgstr "Zoek 1 minuut achter- of voorwaards" #: src/celluloid-shortcuts-window.c:74 msgid "Exact seek backward/forward 5 seconds" msgstr "Zoek exact 5 seconden achter- of voorwaards" #: src/celluloid-shortcuts-window.c:75 msgid "Seek to previous/next subtitle" msgstr "Zoek naar vorige/volgende ondertiteling" #: src/celluloid-shortcuts-window.c:76 msgid "Step backward/forward a single frame" msgstr "Ga een frame achter- of voorwaarts" #: src/celluloid-shortcuts-window.c:77 msgid "Seek to the beginning of the previous/next chapter" msgstr "Zoek naar het begin van het vorige/volgende hoofdstuk" #: src/celluloid-shortcuts-window.c:80 msgid "Decrease/increase playback speed by 10%" msgstr "Verlaag of verhoog afspeelsnelheid met 10%" #: src/celluloid-shortcuts-window.c:81 msgid "Halve/double current playback speed" msgstr "Halveer of verdubbel de huidige afspeelsnelheid" #: src/celluloid-shortcuts-window.c:82 msgid "Reset playback speed to normal" msgstr "Reset afspeelsnelheid naar normaal" #: src/celluloid-shortcuts-window.c:83 msgid "Go backward/forward in the playlist" msgstr "Ga achter- of voorwaards in de afspeellijst" #: src/celluloid-shortcuts-window.c:84 msgid "Remove selected playlist item" msgstr "Verwijder geselecteerde item van de afspeellijst" #: src/celluloid-shortcuts-window.c:85 msgid "Save playlist" msgstr "Sla afspeellijst op" #: src/celluloid-shortcuts-window.c:86 msgid "Set/clear A-B loop points" msgstr "Instellen/verwijderen A-B punten herhaaldelijk afspelen" #: src/celluloid-shortcuts-window.c:87 msgid "Toggle infinite looping" msgstr "Schakel eindeloos herhalen in" #: src/celluloid-shortcuts-window.c:88 msgid "Pause or unpause" msgstr "Pauzeren of hervatten" #: src/celluloid-shortcuts-window.c:89 msgid "Quit" msgstr "Afsluiten" #: src/celluloid-shortcuts-window.c:90 msgid "Save current playback position and quit" msgstr "Sla huidige afspeelpositie op en sluit af" #: src/celluloid-shortcuts-window.c:93 msgid "Enter search mode" msgstr "Zoekmodus activeren" #: src/celluloid-shortcuts-window.c:94 msgid "Jump to next match" msgstr "Spring naar volgende overeenkomst" #: src/celluloid-shortcuts-window.c:95 msgid "Jump to previous match" msgstr "Spring naar vorige overeenkomst" #: src/celluloid-shortcuts-window.c:96 msgid "Exit search mode" msgstr "Verlaat zoekmodus" #: src/celluloid-shortcuts-window.c:99 msgid "Cycle through audio tracks" msgstr "Doorloop audiotracks" #: src/celluloid-shortcuts-window.c:100 src/celluloid-shortcuts-window.c:101 msgid "Decrease/increase volume" msgstr "Verlaag of verhoog volume" #: src/celluloid-shortcuts-window.c:102 msgid "Mute or unmute" msgstr "Dempen of dempen opheffen" #: src/celluloid-shortcuts-window.c:103 msgid "Adjust audio delay by +/- 0.1 seconds" msgstr "Verander audiovertraging met ±0.1 seconden" #: src/celluloid-shortcuts-window.c:106 msgid "Toggle subtitle visibility" msgstr "Schakel ondertiteling in" #: src/celluloid-shortcuts-window.c:107 msgid "Cycle through available subtitles" msgstr "Doorloop beschikbare ondertitels" #: src/celluloid-shortcuts-window.c:108 msgid "Adjust subtitle delay by +/- 0.1 seconds" msgstr "Verander ondertitelingvertraging met ±0.1 seconden" #: src/celluloid-shortcuts-window.c:109 msgid "Toggle SSA/ASS subtitles style override" msgstr "" #: src/celluloid-shortcuts-window.c:110 msgid "Move subtitles up/down" msgstr "Verplaats ondertiteling omhoog of omlaag" #: src/celluloid-shortcuts-window.c:111 msgid "Toggle VSFilter aspect compatibility mode" msgstr "" #: src/celluloid-shortcuts-window.c:114 msgid "Cycle through video tracks" msgstr "Doorloop videohoofdstukken" #: src/celluloid-shortcuts-window.c:115 msgid "Decrease/increase pan-and-scan range" msgstr "Verkleinen/vergroten pan-en-scanbereik " #: src/celluloid-shortcuts-window.c:116 msgid "Take a screenshot" msgstr "Maak een schermafbeelding" #: src/celluloid-shortcuts-window.c:117 msgid "Take a screenshot, without subtitles" msgstr "Maak een schermafbeelding zonder ondertiteling" #: src/celluloid-shortcuts-window.c:118 msgid "Take a screenshot, as the window shows it" msgstr "Maak een schermafbeelding zoals het venster het toont" #: src/celluloid-shortcuts-window.c:119 msgid "Resize video to half its original size" msgstr "Formaat video wijzigen naar helft van origineel formaat" #: src/celluloid-shortcuts-window.c:120 msgid "Resize video to its original size" msgstr "Formaat video wijzigen naar origineel formaat" #: src/celluloid-shortcuts-window.c:121 msgid "Resize video to double its original size" msgstr "Formaat video wijzigen naar dubbele grootte van origineel formaat" #: src/celluloid-shortcuts-window.c:122 msgid "Adjust contrast" msgstr "Verander contrast" #: src/celluloid-shortcuts-window.c:123 msgid "Adjust brightness" msgstr "Verander helderheid" #: src/celluloid-shortcuts-window.c:124 msgid "Adjust gamma" msgstr "Verander gamma" #: src/celluloid-shortcuts-window.c:125 msgid "Adjust saturation" msgstr "Verander verzadiging" #: src/celluloid-shortcuts-window.c:126 #, fuzzy msgid "Activate or deactivate deinterlacer" msgstr "Activeer of deactiveer de deinterlacer" #: src/celluloid-shortcuts-window.c:127 msgid "Cycle aspect ratio override" msgstr "Doorloop beeldverhouding omzeilen" #: src/celluloid-shortcuts-window.c:130 msgid "User Interface" msgstr "Gebruikersomgeving" #: src/celluloid-shortcuts-window.c:131 msgid "Video" msgstr "Video" #: src/celluloid-shortcuts-window.c:132 msgid "Audio" msgstr "Audio" #: src/celluloid-shortcuts-window.c:133 msgid "Subtitle" msgstr "Ondertiteling" #: src/celluloid-shortcuts-window.c:134 msgid "Playback" msgstr "Afspelen" #: src/celluloid-shortcuts-window.c:135 msgid "Seeking" msgstr "Zoeken" #: src/celluloid-view.c:728 msgid "Load Audio Track…" msgstr "Laad Audio Track" #: src/celluloid-view.c:732 msgid "Load Video Track…" msgstr "Laad video track" #: src/celluloid-view.c:736 msgid "Load Subtitle Track…" msgstr "Laad ondertitelingsbestand" #: src/celluloid-view.c:901 msgid "" "Enabling or disabling client-side decorations requires restarting to take " "effect." msgstr "" "In- of uitschakelen van client-side decoraties vereist herstarten van om " "effect te hebben." #: src/celluloid-view.c:1444 msgid "Add Folder to Playlist" msgstr "" #: src/celluloid-view.c:1444 msgid "Open Folder" msgstr "" #: src/celluloid-view.c:1449 msgid "Add File to Playlist" msgstr "Voeg Bestand toe aan Afspeellijst" #: src/celluloid-view.c:1449 msgid "Open File" msgstr "Open Bestand" #: src/celluloid-view.c:1485 msgid "Add Location to Playlist" msgstr "Voeg locatie toe aan Afspeellijst" #: src/celluloid-view.c:1486 msgid "Open Location" msgstr "Open Locatie" #: src/celluloid-view.c:1532 msgid "Save Playlist" msgstr "Sla Afspeellijst op" #: src/celluloid-view.c:1598 msgid "A GTK frontend for MPV" msgstr "Een GTK frontend voor MPV" #: src/celluloid-view.c:1608 msgid "translator-credits" msgstr "Waardering voor vertalers" celluloid-0.20/po/pl.po000066400000000000000000001135641373135401300150120ustar00rootroot00000000000000# Piotr Sokół , 2016. # gnome-mpv , 2019. #zanata # Piotr Drąg , 2020. #zanata msgid "" msgstr "" "Project-Id-Version: gnome-mpv 0.15\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-02-20 20:48+0700\n" "PO-Revision-Date: 2020-08-08 05:49-0400\n" "Last-Translator: Piotr Drąg \n" "Language-Team: polski <>\n" "Language: pl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" "X-Generator: Zanata 4.6.2\n" #: data/io.github.celluloid_player.Celluloid.gschema.xml:11 msgid "" "Whether the settings has already been migrated from the previous version" msgstr "Czy ustawienia zostały już zaimportowane z poprzedniej wersji" #: data/io.github.celluloid_player.Celluloid.gschema.xml:17 msgid "Whether or not to automatically resize window to fit video" msgstr "Czy automatycznie dopasowywać okno do rozmiaru wideo" #: data/io.github.celluloid_player.Celluloid.gschema.xml:23 msgid "Enable or disable dark theme" msgstr "Przełącza ciemny motyw" #: data/io.github.celluloid_player.Celluloid.gschema.xml:29 msgid "Enable or disable client-side decorations" msgstr "Czy wyświetlać obramowania okna po stronie klienta" #: data/io.github.celluloid_player.Celluloid.gschema.xml:35 msgid "Whether or not to use floating controls in windowed mode" msgstr "Czy ukrywać przyciski sterujące w trybie okna" #: data/io.github.celluloid_player.Celluloid.gschema.xml:41 msgid "Whether or not to autohide mouse cursor in windowed mode" msgstr "Czy automatycznie ukrywać kursor w trybie okna" #: data/io.github.celluloid_player.Celluloid.gschema.xml:47 msgid "The minimum cursor speed at which floating controls will be unhidden." msgstr "" "Minimalna prędkość kursora, przy jakiej przyciski sterujące zostaną " "wyświetlone." #: data/io.github.celluloid_player.Celluloid.gschema.xml:54 msgid "" "The size of the dead zone in which cursor movement will not cause the " "controls to be shown." msgstr "" "Rozmiar martwej strefy, w której ruch kursora nie spowoduje wyświetlenia " "przycisków sterujących." #: data/io.github.celluloid_player.Celluloid.gschema.xml:60 msgid "Whether or not to use skip buttons for controlling playlist" msgstr "Czy używać przycisków przechodzenia do sterowania listą odtwarzania" #: data/io.github.celluloid_player.Celluloid.gschema.xml:66 msgid "" "Whether or not to make file chooser dialog remember last folder accessed" msgstr "Czy okno wyboru pliku pamięta ostatnio używany katalog" #: data/io.github.celluloid_player.Celluloid.gschema.xml:72 msgid "Whether or not to create new windows when there is already an instance" msgstr "Czy otwierać nowe okna, kiedy program jest już uruchomiony" #: data/io.github.celluloid_player.Celluloid.gschema.xml:78 #: src/celluloid-application.c:575 msgid "Options to pass to mpv" msgstr "Opcje przekazywane do programu mpv" #: data/io.github.celluloid_player.Celluloid.gschema.xml:84 msgid "Path to mpv configuration file" msgstr "Ścieżka do pliku konfiguracji mpv" #: data/io.github.celluloid_player.Celluloid.gschema.xml:90 msgid "Load or don't load mpv configuration file" msgstr "Czy wczytywać plik konfiguracji mpv" #: data/io.github.celluloid_player.Celluloid.gschema.xml:96 msgid "Path to mpv input configuration file" msgstr "Ścieżka do pliku konfiguracji skrótów programu mpv" #: data/io.github.celluloid_player.Celluloid.gschema.xml:102 msgid "Load or don't load mpv input configuration file" msgstr "Czy wczytywać plik konfiguracji skrótów programu mpv" #: data/io.github.celluloid_player.Celluloid.gschema.xml:108 msgid "Whether or not to enable MPRIS support" msgstr "Czy obsługiwać MPRIS" #: data/io.github.celluloid_player.Celluloid.gschema.xml:114 msgid "" "Whether or not to enable GNOME-Settings-Daemon-based media keys support" msgstr "" "Czy obsługiwać przyciski multimedialne za pomocą usługi GNOME-Settings-" "Daemon" #: data/io.github.celluloid_player.Celluloid.gschema.xml:120 msgid "Whether or not to prefetch metadata for non-current playlist entries" msgstr "" "Czy wcześniej wczytywać metadane obecnie nieodtwarzanych pozycji listy " "odtwarzania" #: data/io.github.celluloid_player.Celluloid.gschema.xml:126 msgid "" "Whether or not to display an error message when playback of a file ends with" " an error" msgstr "" "Czy wyświetlać komunikat o błędzie po wystąpieniu problemu z odtwarzaniem " "pliku" #: data/io.github.celluloid_player.Celluloid.gschema.xml:132 msgid "Whether or not to inhibit session idling when something is playing" msgstr "Czy wstrzymywać bezczynność sesji, kiedy coś jest odtwarzane" #: data/io.github.celluloid_player.Celluloid.gschema.xml:142 msgid "Width of the window" msgstr "Szerokość okna" #: data/io.github.celluloid_player.Celluloid.gschema.xml:148 msgid "Height of the window" msgstr "Wysokość okna" #: data/io.github.celluloid_player.Celluloid.gschema.xml:154 msgid "Whether or not the window is maximized" msgstr "Czy okno jest zmaksymalizowane" #: data/io.github.celluloid_player.Celluloid.gschema.xml:161 msgid "Volume of player" msgstr "Głośność odtwarzania dźwięku" #: data/io.github.celluloid_player.Celluloid.gschema.xml:167 msgid "Whether or not to loop when the end of playlist is reached" msgstr "Czy powtarzać listę odtwarzania po jej ukończeniu" #: data/io.github.celluloid_player.Celluloid.gschema.xml:173 msgid "Width of the playlist" msgstr "Szerokość listy odtwarzania" #: data/io.github.celluloid_player.Celluloid.gschema.xml:179 msgid "Show or not show the controls" msgstr "Czy wyświetlać przyciski sterujące" #: data/io.github.celluloid_player.Celluloid.gschema.xml:185 msgid "Show or not show the playlist" msgstr "Czy wyświetlać listę odtwarzania" #: data/io.github.celluloid_player.Celluloid.gschema.xml:191 msgid "URI of the last folder accessed" msgstr "Adres URI ostatnio używanego katalogu" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:7 #: data/io.github.celluloid_player.Celluloid.desktop.in:4 #: src/celluloid-application.c:451 msgid "Celluloid" msgstr "Celluloid" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:8 msgid "GTK+ frontend for mpv" msgstr "Interfejs GTK dla biblioteki mpv" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:16 msgid "" "Celluloid is a simple media player that can play virtually all video and " "audio formats. It supports playlists and MPRIS2 media player controls. The " "design of Celluloid follows the GNOME Human Interface Guidelines, but can " "also be adapted for other systems that don't use client-side decorations " "(CSD). It is based on the mpv library and GTK." msgstr "" "Celluloid to prosty odtwarzacz multimedialny obsługujący praktycznie " "wszystkie formaty dźwięku i wideo. Umożliwia korzystanie z list odtwarzania " "i sterowanie za pomocą MPRIS2. Interfejs programu Celluloid jest zgodny " "z Wytycznymi projektowania interfejsów GNOME, ale może być używany także " "w innych środowiskach, które nie obsługują wyświetlania obramowań okna po " "stronie klienta (CSD). Celluloid korzysta z bibliotek mpv i GTK." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:23 msgid "Features:" msgstr "Cechy:" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:25 msgid "Drag and drop playlist" msgstr "lista odtwarzania obsługująca przeciąganie plików," #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:26 msgid "Loading external mpv configuration files" msgstr "wczytywanie zewnętrznych plików konfiguracji programu mpv," #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:27 msgid "MPRIS2 D-Bus interface" msgstr "obsługa interfejsu D-Bus MPRIS2." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:30 msgid "The Celluloid Developers" msgstr "Deweloperzy programu Celluloid" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:34 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:87 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:117 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:156 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:187 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:215 msgid "This release contains the following changes:" msgstr "To wydanie zawiera następujące zmiany:" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:38 msgid "" "Adjust the range of volume button based on the value of the volume-max " "property." msgstr "" "Dostosowanie zakresu przycisku głośności na podstawie wartości własności " "„volume-max”." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:42 msgid "Retain window maximization state across sessions." msgstr "Zachowywanie stanu maksymalizacji okna między sesjami." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:45 msgid "Retain loop state across sessions." msgstr "Zachowywanie stanu powtarzania między sesjami." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:48 msgid "Implement playlist search." msgstr "Implementacja wyszukiwania na liście odtwarzania." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:51 msgid "Update the list of shortcuts in Keyboard Shortcuts dialog." msgstr "Aktualizacja listy skrótów w oknie skrótów klawiszowych." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:54 msgid "Correctly handle quotes and escape sequences in extra mpv options." msgstr "" "Właściwa obsługa cudzysłowów i sekwencji sterujących w dodatkowych opcjach " "mpv." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:57 msgid "Display time at cursor position when hovering the seek bar." msgstr "" "Wyświetlanie czasu w pozycji kursora po najechaniu na pasek przewijania." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:60 msgid "" "Deprecate '--mpv-options'. Options starting with '--mpv-' can be used to set" " mpv options instead. For example, passing '--mpv-vf=vflip' to Celluloid is " "equivalent to passing '--vf=vflip' to mpv." msgstr "" "„--mpv-options” jest przestarzałe. Zamiast tego do ustawiania opcji mpv " "można używać opcji zaczynających się od „--mpv-”. Na przykład przekazanie " "„--mpv-vf=vflip” do programu Celluloid jest odpowiednikiem przekazania " "„--vf=vflip” do mpv." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:66 msgid "" "Add support for configuring dead zone, an area in which mouse movement will " "not cause controls to be shown." msgstr "" "Obsługa konfigurowania martwej strefy, w której ruch kursora nie spowoduje " "wyświetlenia przycisków sterujących." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:70 msgid "Make window sizing work correctly with HiDPI displays." msgstr "" "Rozmiar okna działa teraz poprawnie na ekranach o wysokiej rozdzielczości." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:73 msgid "Add Finnish translation by Kimmo Kujansuu." msgstr "Nowe tłumaczenie na język fiński od Kimmo Kujansuu." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:76 msgid "Add Slovenian translation by @bertronika." msgstr "Nowe tłumaczenie na język słoweński od @bertronika." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:80 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:110 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:149 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:180 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:208 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:236 msgid "This listing is incomplete. See git log for complete changelog." msgstr "" "Ta lista jest niepełna. Polecenie „git log” wyświetli pełną listę zmian." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:91 msgid "Add Persian translation by @danialbehzadi" msgstr "Nowe tłumaczenie na język perski od @danialbehzadi" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:94 msgid "Add Ukranian translation by @vl-nix" msgstr "Nowe tłumaczenie na język ukraiński od @vl-nix" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:97 msgid "" "Add support for showing/hiding window decorations using the mpv option " "--border" msgstr "" "Obsługa wyświetlania/ukrywania obramowania okna za pomocą opcji --border " "programu mpv" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:100 msgid "Add menu item for opening discs" msgstr "Menu otwierania płyt" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:103 msgid "Block cursor autohide when volume popup is open in windowed mode" msgstr "" "Blokowanie automatycznego ukrywania kursora, kiedy menu głośności jest " "otwarte w trybie okna" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:106 msgid "Fix crash with mpv 0.30" msgstr "Poprawka awarii podczas używania mpv 0.30" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:121 msgid "Rename project to Celluloid" msgstr "Zmiana nazwy projektu na Celluloid" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:124 msgid "Add Turkish translation by @TeknoMobil" msgstr "Nowe tłumaczenie na język turecki od @TeknoMobil" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:127 msgid "Add Esperanto translation by @F3nd0" msgstr "Nowe tłumaczenie na język esperanto od @F3nd0" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:130 msgid "Migrate from opengl-cb to the new render API" msgstr "Migracja z opengl-cb na nowe API wyświetlania" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:133 msgid "Handle numpad keybindings" msgstr "Obsługa skrótów na klawiaturze numerycznej" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:136 msgid "Handle unicode keybindings" msgstr "Obsługa skrótów używających unikodu" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:139 msgid "Forward media key events to mpv" msgstr "Przekierowywanie zdarzeń klawiszy multimedialnych do programu mpv" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:142 msgid "" "Add dconf key for controlling cursor speed at which controls are unhidden" msgstr "" "Nowy klucz dconf do sterowania prędkością kursora, przy której przyciski " "sterowania są wyświetlane" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:145 msgid "Add option for suppressing playback errors" msgstr "Opcja ukrywania błędów odtwarzania" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:160 msgid "Split up the General tab in the preferences dialog" msgstr "Podział karty „Ogólne” w oknie preferencji" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:163 msgid "Improve behavior when toggling playlist under tiling window managers" msgstr "" "Ulepszone zachowanie podczas przełączania listy odtwarzania w kafelkowych " "menedżerach okien" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:166 msgid "Move app menu items to primary menu" msgstr "Przeniesienie menu programu do głównego menu" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:169 msgid "Use separate MPRIS DBus connection for each window" msgstr "" "Używanie oddzielnego połączenia MPRIS z magistralą D-Bus dla każdego okna" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:172 msgid "Add support for MPRIS property LoopStatus" msgstr "Obsługa własności „LoopStatus” interfejsu MPRIS" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:175 msgid "" "Add option --mpv-options for setting arbitrary mpv options from the command-" "line" msgstr "" "Opcja --mpv-options do ustawiania dowolnych opcji programu mpv z wiersza " "poleceń" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:191 msgid "Set default screenshot directory to XDG_PICTURES_DIR" msgstr "Ustawienie domyślnego katalogu zrzutów ekranu na XDG_PICTURES_DIR" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:194 msgid "" "Improve handling of --window-scale, --autofit, --autofit-larger, and " "--autofit-smaller" msgstr "" "Ulepszona obsługa opcji --window-scale, --autofit, --autofit-larger " "i --autofit-smaller" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:198 msgid "Add command line option for setting WM_ROLE" msgstr "Opcja wiersza poleceń do ustawiania WM_ROLE" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:201 msgid "Add context menu item for removing playlist items" msgstr "Menu kontekstowe do usuwania pozycji z listy odtwarzania" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:204 msgid "Add context menu item for copying location of playlist items" msgstr "Menu kontekstowe do kopiowania ścieżki do pozycji listy odtwarzania" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:219 msgid "" "Add option to make skip buttons change playlist entries rather than chapters" msgstr "" "Opcja zmieniająca działanie przycisków przechodzenia z rozdziałów na pozycje" " listy odtwarzania" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:223 msgid "Make the file chooser accept non-local locations" msgstr "Okno wyboru pliku przyjmuje nielokalne ścieżki" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:226 msgid "Add right-click menu entry for looping a single file" msgstr "Powtarzanie jednego pliku w menu pod prawym przyciskiem" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:229 msgid "Handle property change events for fullscreen and window-scale" msgstr "Obsługa zdarzeń zmiany własności dla pełnego ekranu i skalowania okna" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:232 msgid "Add option to autohide mouse cursor in windowed mode" msgstr "Opcja automatycznego ukrywania kursora w trybie okna" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:246 msgid "The main window showing the application in action" msgstr "Główne okno przedstawiające działanie programu" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:250 msgid "The main window with CSD disabled" msgstr "" "Główne okno programu z wyłączonym wyświetlaniem obramowania okna po stronie " "klienta" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:254 msgid "The main window with playlist open" msgstr "Główne okno programu z listą odtwarzania" #: data/io.github.celluloid_player.Celluloid.desktop.in:5 msgid "Multimedia Player" msgstr "Odtwarzacz multimedialny" #: data/io.github.celluloid_player.Celluloid.desktop.in:6 msgid "Play movies and videos" msgstr "Odtwarzanie filmów i nagrań wideo" #. Translators: Search terms to find this application. Don't translate the #. semicolons! The list MUST also end with a semicolon! #: data/io.github.celluloid_player.Celluloid.desktop.in:17 msgid "Video;Movie;Film;Clip;Series;Player;DVD;TV;Disc;Album;Music;GNOME;mpv;" msgstr "" "Wideo;Video;Film;Movie;Klip;Clip;Serial;Series;Show;Odtwarzacz;Player;DVD;Diwidi;Blu-" "ray;Bluray;Blue-ray;Blurej;TV;Płyta;Płyty;Disc;Album;Muzyka;Music;GNOME;mpv;" #: data/io.github.celluloid_player.Celluloid.desktop.in:23 msgid "New Window" msgstr "Nowe okno" #: src/celluloid-application.c:495 msgid "Playing" msgstr "Odtwarzanie" #: src/celluloid-application.c:551 msgid "Show release version" msgstr "Wyświetla informacje o wersji" #: src/celluloid-application.c:559 msgid "Enqueue" msgstr "Dodaje do kolejki odtwarzania" #: src/celluloid-application.c:567 msgid "Create a new window" msgstr "Otwiera nowe okno" #: src/celluloid-application.c:576 msgid "OPTIONS" msgstr "OPCJE" #: src/celluloid-application.c:583 msgid "Set the window role" msgstr "Ustawia rolę okna" #: src/celluloid-application.c:591 msgid "Don't connect to an already-running instance" msgstr "Nie łączy z już uruchomionym wystąpieniem programu" #: src/celluloid-control-box.c:362 msgid "Pause" msgstr "Wstrzymuje odtwarzanie" #: src/celluloid-control-box.c:362 src/celluloid-control-box.c:565 msgid "Play" msgstr "Rozpoczyna odtwarzanie" #: src/celluloid-control-box.c:568 msgid "Stop" msgstr "Zatrzymuje odtwarzanie" #: src/celluloid-control-box.c:571 msgid "Forward" msgstr "Przechodzi naprzód" #: src/celluloid-control-box.c:574 msgid "Rewind" msgstr "Przechodzi wstecz" #: src/celluloid-control-box.c:577 msgid "Next Chapter" msgstr "Następny rozdział" #: src/celluloid-control-box.c:580 msgid "Previous Chapter" msgstr "Poprzedni rozdział" #: src/celluloid-control-box.c:583 msgid "Loop Playlist" msgstr "Powtarza listę odtwarzania" #: src/celluloid-control-box.c:586 msgid "Shuffle Playlist" msgstr "Losuje kolejność odtwarzania z listy" #: src/celluloid-control-box.c:589 src/celluloid-header-bar.c:91 msgid "Toggle Fullscreen" msgstr "Przełącza wyświetlanie na pełnym ekranie" #: src/celluloid-controller.c:992 src/celluloid-view.c:1558 msgid "Error" msgstr "Błąd" #: src/celluloid-file-chooser.c:139 src/celluloid-plugins-manager.c:170 msgid "All Files" msgstr "Wszystkie pliki" #: src/celluloid-file-chooser.c:147 msgid "Media Files" msgstr "Pliki multimedialne" #: src/celluloid-file-chooser.c:158 msgid "Audio Files" msgstr "Pliki dźwiękowe" #: src/celluloid-file-chooser.c:166 msgid "Video Files" msgstr "Pliki wideo" #: src/celluloid-file-chooser.c:174 msgid "Image Files" msgstr "Pliki obrazów" #: src/celluloid-file-chooser.c:184 msgid "Subtitle Files" msgstr "Pliki napisów" #: src/celluloid-menu.c:106 msgid "None" msgstr "Brak" #. For simplicity, also dup the default string used when the #. * track has no title. #: src/celluloid-menu.c:121 msgid "Unknown" msgstr "Nieznana" #: src/celluloid-menu.c:154 msgid "_Load External…" msgstr "_Wczytaj zewnętrzną…" #. Disable the menu item by setting the action to something #. * invalid. #: src/celluloid-menu.c:207 msgid "No disc found" msgstr "Nie odnaleziono płyty" #: src/celluloid-menu.c:235 msgid "_File" msgstr "_Plik" #: src/celluloid-menu.c:236 src/celluloid-menu.c:318 msgid "_Open…" msgstr "_Otwórz…" #: src/celluloid-menu.c:237 src/celluloid-menu.c:319 msgid "Open _Folder…" msgstr "Otwórz _katalog…" #: src/celluloid-menu.c:238 src/celluloid-menu.c:320 msgid "Open _Location…" msgstr "Otwórz położ_enie…" #: src/celluloid-menu.c:239 msgid "Open _Disc…" msgstr "Ot_wórz płytę…" #: src/celluloid-menu.c:240 src/celluloid-menu.c:290 msgid "_Save Playlist" msgstr "Z_apisz listę odtwarzania" #: src/celluloid-menu.c:241 src/celluloid-menu.c:323 msgid "_New Window" msgstr "_Nowe okno" #: src/celluloid-menu.c:242 msgid "_Quit" msgstr "Za_kończ" #: src/celluloid-menu.c:243 msgid "_Edit" msgstr "_Edycja" #: src/celluloid-menu.c:244 src/celluloid-menu.c:296 msgid "_Preferences" msgstr "_Preferencje" #: src/celluloid-menu.c:245 src/celluloid-menu.c:292 msgid "_Video Track" msgstr "Ścieżka _wideo" #: src/celluloid-menu.c:246 src/celluloid-menu.c:293 msgid "_Audio Track" msgstr "Ścieżka _dźwiękowa" #: src/celluloid-menu.c:247 src/celluloid-menu.c:294 msgid "S_ubtitle Track" msgstr "Ścieżka _napisów" #: src/celluloid-menu.c:248 msgid "_View" msgstr "_Widok" #: src/celluloid-menu.c:249 src/celluloid-menu.c:287 msgid "_Toggle Controls" msgstr "Przyciski _sterujące" #: src/celluloid-menu.c:250 src/celluloid-menu.c:289 msgid "_Toggle Playlist" msgstr "_Lista odtwarzania" #: src/celluloid-menu.c:251 msgid "_Fullscreen" msgstr "_Pełny ekran" #: src/celluloid-menu.c:252 msgid "_Help" msgstr "Pomo_c" #: src/celluloid-menu.c:253 src/celluloid-menu.c:297 msgid "_Keyboard Shortcuts" msgstr "_Skróty klawiszowe" #: src/celluloid-menu.c:254 src/celluloid-menu.c:298 msgid "_About Celluloid" msgstr "_O programie" #: src/celluloid-menu.c:321 msgid "Open _Disc" msgstr "Ot_wórz płytę" #: src/celluloid-mpv.c:240 #, c-format msgid "Playback was terminated abnormally. Reason: %s." msgstr "Zakończono odtwarzanie w nieprawidłowy sposób. Powód: %s." #: src/celluloid-open-location-dialog.c:130 msgid "Location:" msgstr "Położenie:" #: src/celluloid-open-location-dialog.c:136 #: src/celluloid-preferences-dialog.c:401 msgid "_Cancel" msgstr "_Anuluj" #: src/celluloid-open-location-dialog.c:138 msgid "_Open" msgstr "_Otwórz" #: src/celluloid-player.c:550 msgid "Failed to apply one or more MPV options." msgstr "Zastosowanie jednej lub więcej opcji MPV się nie powiodło." #: src/celluloid-playlist-widget.c:784 msgid "_Copy Location" msgstr "S_kopiuj położenie" #: src/celluloid-playlist-widget.c:785 msgid "_Remove" msgstr "_Usuń" #: src/celluloid-playlist-widget.c:787 msgid "_Add…" msgstr "_Dodaj…" #: src/celluloid-playlist-widget.c:788 msgid "Add _Folder…" msgstr "Dodaj _katalog…" #: src/celluloid-playlist-widget.c:789 msgid "Add _Location…" msgstr "Dodaj p_ołożenie…" #: src/celluloid-playlist-widget.c:790 msgid "_Shuffle" msgstr "_Losowe odtwarzanie" #: src/celluloid-playlist-widget.c:791 msgid "Loop _File" msgstr "_Powtarzanie pliku" #: src/celluloid-playlist-widget.c:792 msgid "Loop _Playlist" msgstr "Po_wtarzanie listy odtwarzania" #: src/celluloid-playlist-widget.c:933 src/celluloid-shortcuts-window.c:136 msgid "Playlist" msgstr "Lista odtwarzania" #: src/celluloid-playlist-widget.c:941 msgid "Playlist is empty" msgstr "Lista odtwarzania jest pusta" #: src/celluloid-plugins-manager.c:163 src/celluloid-plugins-manager.c:409 msgid "Add Plugin" msgstr "Dodawanie wtyczki" #: src/celluloid-plugins-manager.c:175 msgid "Lua Plugins" msgstr "Wtyczki w języku Lua" #: src/celluloid-plugins-manager.c:181 msgid "JavaScript Plugins" msgstr "Wtyczki w języku JavaScript" #: src/celluloid-plugins-manager.c:186 msgid "C Plugins" msgstr "Wtyczki w języku C" #: src/celluloid-plugins-manager.c:334 #, c-format msgid "Failed to copy file from '%s' to '%s'. Reason: %s" msgstr "Skopiowanie pliku z „%s” do „%s” się nie powiodło. Powód: %s" #: src/celluloid-plugins-manager.c:385 msgid "No plugins found" msgstr "Nie odnaleziono wtyczek" #: src/celluloid-plugins-manager-item.c:79 msgid "Remove" msgstr "Usuń" #: src/celluloid-plugins-manager-item.c:178 msgid "" "Are you sure you want to remove this script? This action cannot be undone." msgstr "Usunąć ten skrypt? Tego działania nie można cofnąć." #: src/celluloid-plugins-manager-item.c:199 #, c-format msgid "Failed to delete file '%s'. Reason: %s" msgstr "Usunięcie pliku „%s” się nie powiodło. Powód: %s" #: src/celluloid-preferences-dialog.c:304 msgid "Automatically resize window to fit video" msgstr "Automatyczne dopasowywanie okna do rozmiaru wideo" #: src/celluloid-preferences-dialog.c:307 msgid "Enable client-side decorations" msgstr "Wyświetlanie obramowania okna po stronie klienta" #: src/celluloid-preferences-dialog.c:310 msgid "Enable dark theme" msgstr "Ciemny motyw" #: src/celluloid-preferences-dialog.c:313 msgid "Use floating controls in windowed mode" msgstr "Ukrywanie przycisków sterujących w trybie okna" #: src/celluloid-preferences-dialog.c:316 msgid "Autohide mouse cursor in windowed mode" msgstr "Automatyczne ukrywanie kursora w trybie okna" #: src/celluloid-preferences-dialog.c:319 msgid "Use skip buttons for controlling playlist" msgstr "Używanie przycisków przechodzenia do sterowania listą odtwarzania" #: src/celluloid-preferences-dialog.c:322 msgid "Remember last file's location" msgstr "Pamiętanie położenia ostatnio używanego pliku" #: src/celluloid-preferences-dialog.c:327 msgid "Load MPV configuration file" msgstr "Wczytywanie pliku konfiguracji MPV" #: src/celluloid-preferences-dialog.c:330 msgid "MPV configuration file:" msgstr "Plik konfiguracji MPV:" #: src/celluloid-preferences-dialog.c:333 msgid "Load MPV input configuration file" msgstr "Wczytywanie pliku konfiguracji skrótów MPV" #: src/celluloid-preferences-dialog.c:336 msgid "MPV input configuration file:" msgstr "Plik konfiguracji skrótów MPV:" #: src/celluloid-preferences-dialog.c:341 msgid "Always open new window" msgstr "Otwieranie zawsze w nowym oknie" #: src/celluloid-preferences-dialog.c:344 msgid "Ignore playback errors" msgstr "Ignorowanie błędów odtwarzania" #: src/celluloid-preferences-dialog.c:347 msgid "Prefetch metadata" msgstr "Wcześniejsze wczytywanie metadanych" #: src/celluloid-preferences-dialog.c:350 msgid "Enable MPRIS support" msgstr "Obsługa MPRIS" #: src/celluloid-preferences-dialog.c:353 msgid "Enable media keys support" msgstr "Obsługa przycisków multimedialnych" #: src/celluloid-preferences-dialog.c:356 msgid "Extra MPV options:" msgstr "Dodatkowe opcje MPV:" #: src/celluloid-preferences-dialog.c:389 msgid "Interface" msgstr "Interfejs" #: src/celluloid-preferences-dialog.c:392 msgid "Config Files" msgstr "Pliki konfiguracji" #: src/celluloid-preferences-dialog.c:395 msgid "Miscellaneous" msgstr "Różne" #: src/celluloid-preferences-dialog.c:398 msgid "Plugins" msgstr "Wtyczki" #: src/celluloid-preferences-dialog.c:403 msgid "_Save" msgstr "_Zapisz" #: src/celluloid-preferences-dialog.c:421 msgid "Preferences" msgstr "Preferencje" #: src/celluloid-shortcuts-window.c:57 msgid "Open file" msgstr "Otwarcie pliku" #: src/celluloid-shortcuts-window.c:58 msgid "Open location" msgstr "Otwarcie położenia" #: src/celluloid-shortcuts-window.c:59 msgid "Add file to playlist" msgstr "Dodanie pliku do listy odtwarzania" #: src/celluloid-shortcuts-window.c:60 msgid "Add location to playlist" msgstr "Dodanie położenia do listy odtwarzania" #: src/celluloid-shortcuts-window.c:61 msgid "Show preferences dialog" msgstr "Wyświetlenie okna preferencji" #: src/celluloid-shortcuts-window.c:62 msgid "Toggle controls" msgstr "Przełączenie wyświetlania przycisków sterujących" #: src/celluloid-shortcuts-window.c:63 msgid "Toggle playlist" msgstr "Przełączenie wyświetlania listy odtwarzania" #: src/celluloid-shortcuts-window.c:64 msgid "Toggle fullscreen mode" msgstr "Przełączenie trybu pełnoekranowego" #: src/celluloid-shortcuts-window.c:65 msgid "Leave fullscreen mode" msgstr "Opuszczenie trybu pełnoekranowego" #: src/celluloid-shortcuts-window.c:66 msgid "Toggle OSD states between normal and playback time/duration" msgstr "Przełączenie wyświetlania czasu odtwarzania/trwania w menu ekranowym" #: src/celluloid-shortcuts-window.c:67 msgid "Show filename on the OSD" msgstr "Wyświetlenie nazwy pliku w menu ekranowym" #: src/celluloid-shortcuts-window.c:68 msgid "Show progress, elapsed time, and duration on the OSD" msgstr "Wyświetlenie postępu, czasu odtwarzania i trwania w menu ekranowym" #: src/celluloid-shortcuts-window.c:71 msgid "Seek backward/forward 5 seconds" msgstr "Przejście 5 sekund wstecz/naprzód" #: src/celluloid-shortcuts-window.c:72 msgid "Exact seek backward/forward 1 second" msgstr "Dokładne przejście 1 sekundę wstecz/naprzód" #: src/celluloid-shortcuts-window.c:73 msgid "Seek backward/forward 1 minute" msgstr "Przejście 1 minutę wstecz/naprzód" #: src/celluloid-shortcuts-window.c:74 msgid "Exact seek backward/forward 5 seconds" msgstr "Dokładne przejście 5 sekund wstecz/naprzód" #: src/celluloid-shortcuts-window.c:75 msgid "Seek to previous/next subtitle" msgstr "Przejście do poprzedniego/następnego napisu dialogowego" #: src/celluloid-shortcuts-window.c:76 msgid "Step backward/forward a single frame" msgstr "Przejście pojedynczą klatkę wstecz/naprzód" #: src/celluloid-shortcuts-window.c:77 msgid "Seek to the beginning of the previous/next chapter" msgstr "Przejście do początku poprzedniego/następnego rozdziału" #: src/celluloid-shortcuts-window.c:80 msgid "Decrease/increase playback speed by 10%" msgstr "Zmniejszenie/zwiększenie prędkości odtwarzania o 10%" #: src/celluloid-shortcuts-window.c:81 msgid "Halve/double current playback speed" msgstr "Dwukrotne zmniejszenie/zwiększenie obecnej prędkości odtwarzania" #: src/celluloid-shortcuts-window.c:82 msgid "Reset playback speed to normal" msgstr "Przywrócenie zwykłej prędkości odtwarzania" #: src/celluloid-shortcuts-window.c:83 msgid "Go backward/forward in the playlist" msgstr "Przejście wstecz/naprzód na liście odtwarzania" #: src/celluloid-shortcuts-window.c:84 msgid "Remove selected playlist item" msgstr "Usunięcie zaznaczonej pozycji listy odtwarzania" #: src/celluloid-shortcuts-window.c:85 msgid "Save playlist" msgstr "Zapisanie listy odtwarzania" #: src/celluloid-shortcuts-window.c:86 msgid "Set/clear A-B loop points" msgstr "Ustawienie/wyczyszczenie punktów zapętlenia A-B" #: src/celluloid-shortcuts-window.c:87 msgid "Toggle infinite looping" msgstr "Przełączenia zapętlonego odtwarzania" #: src/celluloid-shortcuts-window.c:88 msgid "Pause or unpause" msgstr "Przełączenie wstrzymania odtwarzania" #: src/celluloid-shortcuts-window.c:89 msgid "Quit" msgstr "Zakończenie działania programu" #: src/celluloid-shortcuts-window.c:90 msgid "Save current playback position and quit" msgstr "" "Zapisanie obecnej pozycji odtwarzania i zakończenie działania programu" #: src/celluloid-shortcuts-window.c:93 msgid "Enter search mode" msgstr "Włączenie trybu wyszukiwania" #: src/celluloid-shortcuts-window.c:94 msgid "Jump to next match" msgstr "Przejście do następnego wyniku" #: src/celluloid-shortcuts-window.c:95 msgid "Jump to previous match" msgstr "Przejście do poprzedniego wyniku" #: src/celluloid-shortcuts-window.c:96 msgid "Exit search mode" msgstr "Wyłączenie trybu wyszukiwania" #: src/celluloid-shortcuts-window.c:99 msgid "Cycle through audio tracks" msgstr "Przełączenie ścieżki dźwiękowej" #: src/celluloid-shortcuts-window.c:100 src/celluloid-shortcuts-window.c:101 msgid "Decrease/increase volume" msgstr "Zmniejszenie/zwiększenie głośności" #: src/celluloid-shortcuts-window.c:102 msgid "Mute or unmute" msgstr "Przełączenie wyciszenia dźwięku" #: src/celluloid-shortcuts-window.c:103 msgid "Adjust audio delay by +/- 0.1 seconds" msgstr "Dostosowanie opóźnienia dźwięku o +/- 0,1 s" #: src/celluloid-shortcuts-window.c:106 msgid "Toggle subtitle visibility" msgstr "Przełączenie widoczności napisów" #: src/celluloid-shortcuts-window.c:107 msgid "Cycle through available subtitles" msgstr "Przełączenie ścieżki napisów" #: src/celluloid-shortcuts-window.c:108 msgid "Adjust subtitle delay by +/- 0.1 seconds" msgstr "Dostosowanie opóźnienia napisów o +/- 0,1 s" #: src/celluloid-shortcuts-window.c:109 msgid "Toggle SSA/ASS subtitles style override" msgstr "Przełączenie zastępowania stylów napisów SSA/ASS" #: src/celluloid-shortcuts-window.c:110 msgid "Move subtitles up/down" msgstr "Przesunięcie napisów w górę/dół" #: src/celluloid-shortcuts-window.c:111 msgid "Toggle VSFilter aspect compatibility mode" msgstr "Przełączenie trybu zgodności proporcji VSFilter" #: src/celluloid-shortcuts-window.c:114 msgid "Cycle through video tracks" msgstr "Przełączenie ścieżki wideo" #: src/celluloid-shortcuts-window.c:115 msgid "Decrease/increase pan-and-scan range" msgstr "Zmniejszenie/zwiększenie zakresu „pan-and-scan”" #: src/celluloid-shortcuts-window.c:116 msgid "Take a screenshot" msgstr "Wykonanie zrzutu obrazu" #: src/celluloid-shortcuts-window.c:117 msgid "Take a screenshot, without subtitles" msgstr "Wykonanie zrzutu obrazu bez napisów" #: src/celluloid-shortcuts-window.c:118 msgid "Take a screenshot, as the window shows it" msgstr "Wykonanie zrzutu obrazu wyświetlanego w oknie" #: src/celluloid-shortcuts-window.c:119 msgid "Resize video to half its original size" msgstr "Ustawienie rozmiaru obrazu na dwukrotnie mniejszy niż oryginalny" #: src/celluloid-shortcuts-window.c:120 msgid "Resize video to its original size" msgstr "Przywrócenie oryginalnego rozmiaru obrazu" #: src/celluloid-shortcuts-window.c:121 msgid "Resize video to double its original size" msgstr "Ustawienie rozmiaru obrazu na dwukrotnie większy niż oryginalny" #: src/celluloid-shortcuts-window.c:122 msgid "Adjust contrast" msgstr "Dostosowanie kontrastu" #: src/celluloid-shortcuts-window.c:123 msgid "Adjust brightness" msgstr "Dostosowanie jasności" #: src/celluloid-shortcuts-window.c:124 msgid "Adjust gamma" msgstr "Dostosowanie gammy" #: src/celluloid-shortcuts-window.c:125 msgid "Adjust saturation" msgstr "Dostosowanie nasycenia" #: src/celluloid-shortcuts-window.c:126 msgid "Activate or deactivate deinterlacer" msgstr "Przełączenie usuwania przeplotu" #: src/celluloid-shortcuts-window.c:127 msgid "Cycle aspect ratio override" msgstr "Przełączenie proporcji obrazu" #: src/celluloid-shortcuts-window.c:130 msgid "User Interface" msgstr "Interfejs użytkownika" #: src/celluloid-shortcuts-window.c:131 msgid "Video" msgstr "Wideo" #: src/celluloid-shortcuts-window.c:132 msgid "Audio" msgstr "Dźwięk" #: src/celluloid-shortcuts-window.c:133 msgid "Subtitle" msgstr "Napisy dialogowe" #: src/celluloid-shortcuts-window.c:134 msgid "Playback" msgstr "Odtwarzanie" #: src/celluloid-shortcuts-window.c:135 msgid "Seeking" msgstr "Przewijanie" #: src/celluloid-view.c:728 msgid "Load Audio Track…" msgstr "Wczytywanie ścieżki dźwiękowej…" #: src/celluloid-view.c:732 msgid "Load Video Track…" msgstr "Wczytywanie ścieżki wideo…" #: src/celluloid-view.c:736 msgid "Load Subtitle Track…" msgstr "Wczytywanie ścieżki napisów…" #: src/celluloid-view.c:901 msgid "" "Enabling or disabling client-side decorations requires restarting to take " "effect." msgstr "" "Włączenie lub wyłączenie wyświetlania obramowania okna po stronie klienta " "wymaga ponownego uruchomienia programu, aby wprowadzić zmiany." #: src/celluloid-view.c:1444 msgid "Add Folder to Playlist" msgstr "Dodawanie katalogu do listy odtwarzania" #: src/celluloid-view.c:1444 msgid "Open Folder" msgstr "Otwieranie katalogu" #: src/celluloid-view.c:1449 msgid "Add File to Playlist" msgstr "Dodawanie pliku do listy odtwarzania" #: src/celluloid-view.c:1449 msgid "Open File" msgstr "Otwieranie pliku" #: src/celluloid-view.c:1485 msgid "Add Location to Playlist" msgstr "Dodawanie położenia do listy odtwarzania" #: src/celluloid-view.c:1486 msgid "Open Location" msgstr "Otwieranie położenia" #: src/celluloid-view.c:1532 msgid "Save Playlist" msgstr "Zapisywanie listy odtwarzania" #: src/celluloid-view.c:1598 msgid "A GTK frontend for MPV" msgstr "Interfejs GTK dla biblioteki MPV" #: src/celluloid-view.c:1608 msgid "translator-credits" msgstr "" "Piotr Sokół , 2016, 2019\n" "Piotr Drąg , 2020" celluloid-0.20/po/pt_BR.po000066400000000000000000001122451373135401300154000ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # Carlos Henrique , 2019. #zanata # gnome-mpv , 2019. #zanata # Carlos Henrique , 2020. #zanata msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-02-20 20:48+0700\n" "PO-Revision-Date: 2020-08-10 05:01-0400\n" "Last-Translator: Carlos Henrique \n" "Language-Team: Portuguese (Brazil)\n" "Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" "X-Generator: Zanata 4.6.2\n" #: data/io.github.celluloid_player.Celluloid.gschema.xml:11 msgid "" "Whether the settings has already been migrated from the previous version" msgstr "Se as configurações já migraram da versão anterior" #: data/io.github.celluloid_player.Celluloid.gschema.xml:17 msgid "Whether or not to automatically resize window to fit video" msgstr "Redimensionar ou não a janela automaticamente para o tamanho do vídeo" #: data/io.github.celluloid_player.Celluloid.gschema.xml:23 msgid "Enable or disable dark theme" msgstr "Ativa ou desativa tema escuro" #: data/io.github.celluloid_player.Celluloid.gschema.xml:29 msgid "Enable or disable client-side decorations" msgstr "Ativa ou desativa decorações de janela" #: data/io.github.celluloid_player.Celluloid.gschema.xml:35 msgid "Whether or not to use floating controls in windowed mode" msgstr "Se Usa ou não controles flutuantes no modo janela" #: data/io.github.celluloid_player.Celluloid.gschema.xml:41 msgid "Whether or not to autohide mouse cursor in windowed mode" msgstr "Se é ou não para ocultar cursor do mouse no modo de janela" #: data/io.github.celluloid_player.Celluloid.gschema.xml:47 msgid "The minimum cursor speed at which floating controls will be unhidden." msgstr "" "A velocidade mínima do cursor flutuante no qual os controles serão " "reexibidos." #: data/io.github.celluloid_player.Celluloid.gschema.xml:54 msgid "" "The size of the dead zone in which cursor movement will not cause the " "controls to be shown." msgstr "" "O tamanho da zona morta na qual o movimento do cursor não fará com que os " "controles sejam mostrados." #: data/io.github.celluloid_player.Celluloid.gschema.xml:60 msgid "Whether or not to use skip buttons for controlling playlist" msgstr "" "Se quer ou não usar botões de pular, para controlar a lista de reprodução" #: data/io.github.celluloid_player.Celluloid.gschema.xml:66 msgid "" "Whether or not to make file chooser dialog remember last folder accessed" msgstr "" "Se deseja ou não fazer o seletor de arquivos lembrar a última página " "acessada" #: data/io.github.celluloid_player.Celluloid.gschema.xml:72 msgid "Whether or not to create new windows when there is already an instance" msgstr "Se quer ou não criar novas janelas quando já existe uma instância" #: data/io.github.celluloid_player.Celluloid.gschema.xml:78 #: src/celluloid-application.c:575 msgid "Options to pass to mpv" msgstr "Opções para passar para o mpv" #: data/io.github.celluloid_player.Celluloid.gschema.xml:84 msgid "Path to mpv configuration file" msgstr "Caminho para o arquivo de configuração do mpv" #: data/io.github.celluloid_player.Celluloid.gschema.xml:90 msgid "Load or don't load mpv configuration file" msgstr "Carregar ou não, o arquivo de configuração do mpv" #: data/io.github.celluloid_player.Celluloid.gschema.xml:96 msgid "Path to mpv input configuration file" msgstr "Caminho para o arquivo de atalhos do mpv" #: data/io.github.celluloid_player.Celluloid.gschema.xml:102 msgid "Load or don't load mpv input configuration file" msgstr "Carregar ou não, o arquivo de atalhos do mpv" #: data/io.github.celluloid_player.Celluloid.gschema.xml:108 msgid "Whether or not to enable MPRIS support" msgstr "Se ativa ou desativa suporte para MPRIS" #: data/io.github.celluloid_player.Celluloid.gschema.xml:114 msgid "" "Whether or not to enable GNOME-Settings-Daemon-based media keys support" msgstr "" "Se ativa ou desativa suporte para comandos de mídia do GNOME-Settings-Daemon" #: data/io.github.celluloid_player.Celluloid.gschema.xml:120 msgid "Whether or not to prefetch metadata for non-current playlist entries" msgstr "" "Se faz ou não uma pré-busca dos metadados para as entradas nas listas de " "reprodução não atuais" #: data/io.github.celluloid_player.Celluloid.gschema.xml:126 msgid "" "Whether or not to display an error message when playback of a file ends with" " an error" msgstr "" "Se quer ou não, exibir uma mensagem de erro quando a reprodução de um " "arquivo termina com um erro" #: data/io.github.celluloid_player.Celluloid.gschema.xml:132 msgid "Whether or not to inhibit session idling when something is playing" msgstr "" "Inibir ou não a ociosidade da sessão quando algo está sendo reproduzido" #: data/io.github.celluloid_player.Celluloid.gschema.xml:142 msgid "Width of the window" msgstr "Largura da janela" #: data/io.github.celluloid_player.Celluloid.gschema.xml:148 msgid "Height of the window" msgstr "Altura da janela" #: data/io.github.celluloid_player.Celluloid.gschema.xml:154 msgid "Whether or not the window is maximized" msgstr "Se a janela está ou não maximizada" #: data/io.github.celluloid_player.Celluloid.gschema.xml:161 msgid "Volume of player" msgstr "Volume do reprodutor" #: data/io.github.celluloid_player.Celluloid.gschema.xml:167 msgid "Whether or not to loop when the end of playlist is reached" msgstr "Se deve ou não repetir a lista quando ela terminar" #: data/io.github.celluloid_player.Celluloid.gschema.xml:173 msgid "Width of the playlist" msgstr "Largura da lista de reprodução" #: data/io.github.celluloid_player.Celluloid.gschema.xml:179 msgid "Show or not show the controls" msgstr "Mostra ou não os controles" #: data/io.github.celluloid_player.Celluloid.gschema.xml:185 msgid "Show or not show the playlist" msgstr "Mostrar ou não a lista de reprodução" #: data/io.github.celluloid_player.Celluloid.gschema.xml:191 msgid "URI of the last folder accessed" msgstr "URI da última pasta acessada" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:7 #: data/io.github.celluloid_player.Celluloid.desktop.in:4 #: src/celluloid-application.c:451 msgid "Celluloid" msgstr "Celluloid" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:8 msgid "GTK+ frontend for mpv" msgstr "Interface em GTK+ para o mpv" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:16 msgid "" "Celluloid is a simple media player that can play virtually all video and " "audio formats. It supports playlists and MPRIS2 media player controls. The " "design of Celluloid follows the GNOME Human Interface Guidelines, but can " "also be adapted for other systems that don't use client-side decorations " "(CSD). It is based on the mpv library and GTK." msgstr "" "O Celluloid é um media player simples que pode reproduzir praticamente todos" " os formatos de vídeo e áudio. Ele suporta listas de reprodução e controles " "MPRIS2 media player. O design do Celluloid segue as Diretrizes da interface " "humana do GNOME, mas também pode ser adaptado para outros sistemas que não " "usam decorações do lado do cliente (CSD). É baseado na biblioteca mpv e GTK." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:23 msgid "Features:" msgstr "Recursos:" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:25 msgid "Drag and drop playlist" msgstr "Arrastar e soltar lista de reprodução" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:26 msgid "Loading external mpv configuration files" msgstr "Carregando arquivos externos de configuração do mpv" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:27 msgid "MPRIS2 D-Bus interface" msgstr "Interface MPRIS2 D-BUS" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:30 msgid "The Celluloid Developers" msgstr "Os Desenvolvedores do Celluloid" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:34 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:87 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:117 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:156 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:187 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:215 msgid "This release contains the following changes:" msgstr "Esta versão contém as seguintes alterações:" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:38 msgid "" "Adjust the range of volume button based on the value of the volume-max " "property." msgstr "" "Ajuste o botão do intervalo de volume, com base no valor da propriedade " "volume-máximo." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:42 msgid "Retain window maximization state across sessions." msgstr "Manter o estado de maximização da janela entre as sessões." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:45 msgid "Retain loop state across sessions." msgstr "Manter o estado do loop entre as sessões." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:48 msgid "Implement playlist search." msgstr "Implementar pesquisa na lista de reprodução." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:51 msgid "Update the list of shortcuts in Keyboard Shortcuts dialog." msgstr "Atualizar a lista de atalhos na caixa de diálogo, Atalhos do teclado." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:54 msgid "Correctly handle quotes and escape sequences in extra mpv options." msgstr "" "Manuseie corretamente as citações e sequências de escape em opções extras do" " mpv." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:57 msgid "Display time at cursor position when hovering the seek bar." msgstr "" "Mostra o tempo na posição do cursor ao passar o mouse na barra de busca." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:60 msgid "" "Deprecate '--mpv-options'. Options starting with '--mpv-' can be used to set" " mpv options instead. For example, passing '--mpv-vf=vflip' to Celluloid is " "equivalent to passing '--vf=vflip' to mpv." msgstr "" "Preterir '--mpv-options'. Opções começando com '--mpv-' podem ser usadas " "para definir as opções do mpv. Por exemplo, passar '--mpv-vf = vflip' para o" " Celluloid é equivalente a passar '--vf = vflip' para o mpv." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:66 msgid "" "Add support for configuring dead zone, an area in which mouse movement will " "not cause controls to be shown." msgstr "" "Adicionado suporte para configurar a zona morta, uma área na qual o " "movimento do mouse não fará com que os controles sejam mostrados." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:70 msgid "Make window sizing work correctly with HiDPI displays." msgstr "" "Faz o dimensionamento da janela funcionar corretamente em monitores HiDPI." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:73 msgid "Add Finnish translation by Kimmo Kujansuu." msgstr "Adicionada a tradução finlandesa por Kimmo Kujansuu." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:76 msgid "Add Slovenian translation by @bertronika." msgstr "Adicionada tradução eslovena por @bertronika" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:80 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:110 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:149 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:180 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:208 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:236 msgid "This listing is incomplete. See git log for complete changelog." msgstr "Esta listagem está incompleta. Veja log git para changelog completo." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:91 msgid "Add Persian translation by @danialbehzadi" msgstr "Adic. tradução Persa por @danialbehzadi" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:94 msgid "Add Ukranian translation by @vl-nix" msgstr "Adic. tradução ucraniana por @vl-nix" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:97 msgid "" "Add support for showing/hiding window decorations using the mpv option " "--border" msgstr "" "Adicionado suporte para mostrar/ocultar as decorações de janela usando a opção \n" "\"--border\" do mpv" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:100 msgid "Add menu item for opening discs" msgstr "Adicionado item de menu para abrir discos" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:103 msgid "Block cursor autohide when volume popup is open in windowed mode" msgstr "" "Ocultar automaticamente o bloco do cursor quando o pop-up de volume estiver " "aberto no modo de janela" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:106 msgid "Fix crash with mpv 0.30" msgstr "Corrigido erro com o mpv 0.30" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:121 msgid "Rename project to Celluloid" msgstr "Projeto renomeado para Celluloid" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:124 msgid "Add Turkish translation by @TeknoMobil" msgstr "Adic. tradução Turca por @TeknoMobil" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:127 msgid "Add Esperanto translation by @F3nd0" msgstr "Adic. tradução Esperanto por @F3nd0" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:130 msgid "Migrate from opengl-cb to the new render API" msgstr "Migrado do opengl-cb para o novo renderizador API" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:133 msgid "Handle numpad keybindings" msgstr " Manipulável com combinações de teclas numéricas" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:136 msgid "Handle unicode keybindings" msgstr "Manipulável com combinações de teclas unicode" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:139 msgid "Forward media key events to mpv" msgstr "Encaminha eventos-chave da mídia para o mpv" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:142 msgid "" "Add dconf key for controlling cursor speed at which controls are unhidden" msgstr "" "Adicionado chave dconf para controlar a velocidade do cursor na qual os " "controles estão ocultos" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:145 msgid "Add option for suppressing playback errors" msgstr "Adicionada opção para suprimir erros de reprodução" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:160 msgid "Split up the General tab in the preferences dialog" msgstr "Dividir o separador Geral na aba de diálogo de preferências" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:163 msgid "Improve behavior when toggling playlist under tiling window managers" msgstr "" "Melhorar o comportamento alternando a lista de reprodução gerenciadas em " "janelas lado a lado" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:166 msgid "Move app menu items to primary menu" msgstr "Mover itens do menu de aplicativos para o menu principal" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:169 msgid "Use separate MPRIS DBus connection for each window" msgstr "Usar janelas separadas para conexões MPRIS D-BUS" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:172 msgid "Add support for MPRIS property LoopStatus" msgstr "Adicionar suporte para a propriedade MPRIS LoopStatus" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:175 msgid "" "Add option --mpv-options for setting arbitrary mpv options from the command-" "line" msgstr "" "Adicionar a opção --mpv-options para definir opções arbitrárias do mpv em " "linha de comando" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:191 msgid "Set default screenshot directory to XDG_PICTURES_DIR" msgstr "Definir o local padrão para a tela de captura XDG_PICTURES_DIR" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:194 msgid "" "Improve handling of --window-scale, --autofit, --autofit-larger, and " "--autofit-smaller" msgstr "" " Melhorar o tratamento de --window-scale, --autofit, --autofit-larger, e " "--autofit-smaller" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:198 msgid "Add command line option for setting WM_ROLE" msgstr "Adicionar linha de comando para opção de definir WM_ROLE" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:201 msgid "Add context menu item for removing playlist items" msgstr "Adicionar menu de contexto para remover itens da lista de reprodução" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:204 msgid "Add context menu item for copying location of playlist items" msgstr "" "Adicionar item de menu de contexto para copiar a localização de itens da " "lista de reprodução" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:219 msgid "" "Add option to make skip buttons change playlist entries rather than chapters" msgstr "" "Adicionar a opção para fazer os botões de pular carregarem de lista de " "reprodução, ao invés de pular capítulos" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:223 msgid "Make the file chooser accept non-local locations" msgstr "Fazer o seletor de arquivos aceitar locais não-locais" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:226 msgid "Add right-click menu entry for looping a single file" msgstr "" "Adicionar menu de contexto no botão direito para fazer a repetição de um " "único arquivo" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:229 msgid "Handle property change events for fullscreen and window-scale" msgstr "" "Manipular eventos de mudança de propriedade para tela inteira e escala de " "janela" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:232 msgid "Add option to autohide mouse cursor in windowed mode" msgstr "Adic. opção auto-ocultar o ponteiro do mouse no modo tela cheia" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:246 msgid "The main window showing the application in action" msgstr "Mostrando o aplicativo em ação na janela principal" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:250 msgid "The main window with CSD disabled" msgstr "Janela principal com CSD desativado" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:254 msgid "The main window with playlist open" msgstr "Janela principal com a lista de reprodução aberta" #: data/io.github.celluloid_player.Celluloid.desktop.in:5 msgid "Multimedia Player" msgstr "Tocador Multimídia" #: data/io.github.celluloid_player.Celluloid.desktop.in:6 msgid "Play movies and videos" msgstr "Reproduz filmes e vídeos" #. Translators: Search terms to find this application. Don't translate the #. semicolons! The list MUST also end with a semicolon! #: data/io.github.celluloid_player.Celluloid.desktop.in:17 msgid "Video;Movie;Film;Clip;Series;Player;DVD;TV;Disc;Album;Music;GNOME;mpv;" msgstr "Vídeo;Filme;Clipes;Séries;Tocar;DVD;TV;Disco;Álbum;Música;GNOME;mpv;" #: data/io.github.celluloid_player.Celluloid.desktop.in:23 msgid "New Window" msgstr "Nova Janela" #: src/celluloid-application.c:495 msgid "Playing" msgstr "Reproduzindo" #: src/celluloid-application.c:551 msgid "Show release version" msgstr "Mostrar a versão" #: src/celluloid-application.c:559 msgid "Enqueue" msgstr "Enfileirar" #: src/celluloid-application.c:567 msgid "Create a new window" msgstr "Criar uma nova janela" #: src/celluloid-application.c:576 msgid "OPTIONS" msgstr "OPÇÕES" #: src/celluloid-application.c:583 msgid "Set the window role" msgstr "Definir o papel da janela" #: src/celluloid-application.c:591 msgid "Don't connect to an already-running instance" msgstr "Não conectar a uma instância já em execução" #: src/celluloid-control-box.c:362 msgid "Pause" msgstr "Pausar" #: src/celluloid-control-box.c:362 src/celluloid-control-box.c:565 msgid "Play" msgstr "reproduzir" #: src/celluloid-control-box.c:568 msgid "Stop" msgstr "Parar" #: src/celluloid-control-box.c:571 msgid "Forward" msgstr "Avançar" #: src/celluloid-control-box.c:574 msgid "Rewind" msgstr "Retroceder" #: src/celluloid-control-box.c:577 msgid "Next Chapter" msgstr "Próximo Capítulo" #: src/celluloid-control-box.c:580 msgid "Previous Chapter" msgstr "Capítulo Anterior" #: src/celluloid-control-box.c:583 msgid "Loop Playlist" msgstr "Repetir a Lista" #: src/celluloid-control-box.c:586 msgid "Shuffle Playlist" msgstr "Misturar a lista de reprodução" #: src/celluloid-control-box.c:589 src/celluloid-header-bar.c:91 msgid "Toggle Fullscreen" msgstr "Alternar para Tela Cheia" #: src/celluloid-controller.c:992 src/celluloid-view.c:1558 msgid "Error" msgstr "Erro" #: src/celluloid-file-chooser.c:139 src/celluloid-plugins-manager.c:170 msgid "All Files" msgstr "Todos os Arquivos" #: src/celluloid-file-chooser.c:147 msgid "Media Files" msgstr "Arquivos de Mídia" #: src/celluloid-file-chooser.c:158 msgid "Audio Files" msgstr "Arquivos de Áudio" #: src/celluloid-file-chooser.c:166 msgid "Video Files" msgstr "Arquivos de Vídeo" #: src/celluloid-file-chooser.c:174 msgid "Image Files" msgstr "Arquivos de Imagem" #: src/celluloid-file-chooser.c:184 msgid "Subtitle Files" msgstr "Arquivos de Legenda" #: src/celluloid-menu.c:106 msgid "None" msgstr "Nenhum" #. For simplicity, also dup the default string used when the #. * track has no title. #: src/celluloid-menu.c:121 msgid "Unknown" msgstr "Desconhecido" #: src/celluloid-menu.c:154 msgid "_Load External…" msgstr "_Carregar Externa..." #. Disable the menu item by setting the action to something #. * invalid. #: src/celluloid-menu.c:207 msgid "No disc found" msgstr "Disco não encontrado" #: src/celluloid-menu.c:235 msgid "_File" msgstr "_Arquivo" #: src/celluloid-menu.c:236 src/celluloid-menu.c:318 msgid "_Open…" msgstr "_Abrir..." #: src/celluloid-menu.c:237 src/celluloid-menu.c:319 msgid "Open _Folder…" msgstr "Abrir _Pasta..." #: src/celluloid-menu.c:238 src/celluloid-menu.c:320 msgid "Open _Location…" msgstr "_Abrir Local..." #: src/celluloid-menu.c:239 msgid "Open _Disc…" msgstr "Abrir _Disco..." #: src/celluloid-menu.c:240 src/celluloid-menu.c:290 msgid "_Save Playlist" msgstr "_Salvar Lista de Reprodução" #: src/celluloid-menu.c:241 src/celluloid-menu.c:323 msgid "_New Window" msgstr "_Nova Janela" #: src/celluloid-menu.c:242 msgid "_Quit" msgstr "_Sair" #: src/celluloid-menu.c:243 msgid "_Edit" msgstr "_Editar" #: src/celluloid-menu.c:244 src/celluloid-menu.c:296 msgid "_Preferences" msgstr "_Preferências" #: src/celluloid-menu.c:245 src/celluloid-menu.c:292 msgid "_Video Track" msgstr "_Faixa de Vídeo" #: src/celluloid-menu.c:246 src/celluloid-menu.c:293 msgid "_Audio Track" msgstr "_Faixa de Áudio" #: src/celluloid-menu.c:247 src/celluloid-menu.c:294 msgid "S_ubtitle Track" msgstr "F_aixa de Legendas" #: src/celluloid-menu.c:248 msgid "_View" msgstr "_Exibir" #: src/celluloid-menu.c:249 src/celluloid-menu.c:287 msgid "_Toggle Controls" msgstr "_Mostrar Controles" #: src/celluloid-menu.c:250 src/celluloid-menu.c:289 msgid "_Toggle Playlist" msgstr "_Mostrar Lista de Reprodução" #: src/celluloid-menu.c:251 msgid "_Fullscreen" msgstr "_Tela Cheia" #: src/celluloid-menu.c:252 msgid "_Help" msgstr "_Ajuda" #: src/celluloid-menu.c:253 src/celluloid-menu.c:297 msgid "_Keyboard Shortcuts" msgstr "_Teclas de Atalho" #: src/celluloid-menu.c:254 src/celluloid-menu.c:298 msgid "_About Celluloid" msgstr "_Sobre o Celluloid" #: src/celluloid-menu.c:321 msgid "Open _Disc" msgstr "Abrir _Disco" #: src/celluloid-mpv.c:240 #, c-format msgid "Playback was terminated abnormally. Reason: %s." msgstr "A reprodução foi encerrada de forma inesperada. Motivo: %s." #: src/celluloid-open-location-dialog.c:130 msgid "Location:" msgstr "Local:" #: src/celluloid-open-location-dialog.c:136 #: src/celluloid-preferences-dialog.c:401 msgid "_Cancel" msgstr "_Cancelar" #: src/celluloid-open-location-dialog.c:138 msgid "_Open" msgstr "_Abrir" #: src/celluloid-player.c:550 msgid "Failed to apply one or more MPV options." msgstr "Falha ao aplicar uma ou mais opções do MPV." #: src/celluloid-playlist-widget.c:784 msgid "_Copy Location" msgstr "_Copiar Local" #: src/celluloid-playlist-widget.c:785 msgid "_Remove" msgstr "_Remover" #: src/celluloid-playlist-widget.c:787 msgid "_Add…" msgstr "_Adicionar..." #: src/celluloid-playlist-widget.c:788 msgid "Add _Folder…" msgstr "Adic _Pasta..." #: src/celluloid-playlist-widget.c:789 msgid "Add _Location…" msgstr "Adicionar _Local" #: src/celluloid-playlist-widget.c:790 msgid "_Shuffle" msgstr "_Aleatório" #: src/celluloid-playlist-widget.c:791 msgid "Loop _File" msgstr "Repetir_Arquivo" #: src/celluloid-playlist-widget.c:792 msgid "Loop _Playlist" msgstr "Repetir _Lista" #: src/celluloid-playlist-widget.c:933 src/celluloid-shortcuts-window.c:136 msgid "Playlist" msgstr "Lista de Reprodução" #: src/celluloid-playlist-widget.c:941 msgid "Playlist is empty" msgstr "Lista está vazia" #: src/celluloid-plugins-manager.c:163 src/celluloid-plugins-manager.c:409 msgid "Add Plugin" msgstr "Adic. Plugin" #: src/celluloid-plugins-manager.c:175 msgid "Lua Plugins" msgstr "Plugins Lua" #: src/celluloid-plugins-manager.c:181 msgid "JavaScript Plugins" msgstr "Plugins JavaScript" #: src/celluloid-plugins-manager.c:186 msgid "C Plugins" msgstr "Plugins C" #: src/celluloid-plugins-manager.c:334 #, c-format msgid "Failed to copy file from '%s' to '%s'. Reason: %s" msgstr "Falha ao copiar arquivo de '%s' para '%s'. Motivo: %s" #: src/celluloid-plugins-manager.c:385 msgid "No plugins found" msgstr "Nenhum plugin encontrado" #: src/celluloid-plugins-manager-item.c:79 msgid "Remove" msgstr "Remover" #: src/celluloid-plugins-manager-item.c:178 msgid "" "Are you sure you want to remove this script? This action cannot be undone." msgstr "" "Tem certeza que deseja remover este script? Esta ação não poderá ser " "desfeita." #: src/celluloid-plugins-manager-item.c:199 #, c-format msgid "Failed to delete file '%s'. Reason: %s" msgstr "Falha ao remover o arquivo %s. Motivo: %s" #: src/celluloid-preferences-dialog.c:304 msgid "Automatically resize window to fit video" msgstr "Redimensionar automaticamente a janela para caber o vídeo" #: src/celluloid-preferences-dialog.c:307 msgid "Enable client-side decorations" msgstr "Ativar decorações de janela independentes" #: src/celluloid-preferences-dialog.c:310 msgid "Enable dark theme" msgstr "Ativar tema escuro" #: src/celluloid-preferences-dialog.c:313 msgid "Use floating controls in windowed mode" msgstr "Usar controles flutuantes no modo janela" #: src/celluloid-preferences-dialog.c:316 msgid "Autohide mouse cursor in windowed mode" msgstr "Auto ocultar o ponteiro do mouse no modo janela" #: src/celluloid-preferences-dialog.c:319 msgid "Use skip buttons for controlling playlist" msgstr "Use os botões de pular para controlar a lista de reprodução" #: src/celluloid-preferences-dialog.c:322 msgid "Remember last file's location" msgstr "Lembrar o local do último arquivo" #: src/celluloid-preferences-dialog.c:327 msgid "Load MPV configuration file" msgstr "Carregar arquivo de configuração MPV" #: src/celluloid-preferences-dialog.c:330 msgid "MPV configuration file:" msgstr "Arquivo de configuração MPV:" #: src/celluloid-preferences-dialog.c:333 msgid "Load MPV input configuration file" msgstr "Carregar arquivo de comandos MPV" #: src/celluloid-preferences-dialog.c:336 msgid "MPV input configuration file:" msgstr "Arquivo de configuração MPV:" #: src/celluloid-preferences-dialog.c:341 msgid "Always open new window" msgstr "Sempre abrir uma nova janela" #: src/celluloid-preferences-dialog.c:344 msgid "Ignore playback errors" msgstr "Ignorar erros de reprodução" #: src/celluloid-preferences-dialog.c:347 msgid "Prefetch metadata" msgstr "Pré-busca de metadados" #: src/celluloid-preferences-dialog.c:350 msgid "Enable MPRIS support" msgstr "Ativar suporte para MPRIS" #: src/celluloid-preferences-dialog.c:353 msgid "Enable media keys support" msgstr "Ativar suporte para atalhos de mídia" #: src/celluloid-preferences-dialog.c:356 msgid "Extra MPV options:" msgstr "Opções Extras do MPV:" #: src/celluloid-preferences-dialog.c:389 msgid "Interface" msgstr "Aparência" #: src/celluloid-preferences-dialog.c:392 msgid "Config Files" msgstr "Arquivos de Configuração" #: src/celluloid-preferences-dialog.c:395 msgid "Miscellaneous" msgstr "Diversos" #: src/celluloid-preferences-dialog.c:398 msgid "Plugins" msgstr "Plugins" #: src/celluloid-preferences-dialog.c:403 msgid "_Save" msgstr "_Salvar" #: src/celluloid-preferences-dialog.c:421 msgid "Preferences" msgstr "Preferências" #: src/celluloid-shortcuts-window.c:57 msgid "Open file" msgstr "Abrir arquivo" #: src/celluloid-shortcuts-window.c:58 msgid "Open location" msgstr "Abrir local" #: src/celluloid-shortcuts-window.c:59 msgid "Add file to playlist" msgstr "Adiciona um arquivo à lista de reprodução" #: src/celluloid-shortcuts-window.c:60 msgid "Add location to playlist" msgstr "Adiciona um local à lista de reprodução" #: src/celluloid-shortcuts-window.c:61 msgid "Show preferences dialog" msgstr "Mostra diálogo de preferências" #: src/celluloid-shortcuts-window.c:62 msgid "Toggle controls" msgstr "Exibe os controles" #: src/celluloid-shortcuts-window.c:63 msgid "Toggle playlist" msgstr "Mostra a lista de reprodução" #: src/celluloid-shortcuts-window.c:64 msgid "Toggle fullscreen mode" msgstr "Alterna o modo tela cheia" #: src/celluloid-shortcuts-window.c:65 msgid "Leave fullscreen mode" msgstr "Sai do modo tela cheia" #: src/celluloid-shortcuts-window.c:66 msgid "Toggle OSD states between normal and playback time/duration" msgstr "" "Alterna os modos de sobreposição de tela (OSD) entre normal e tempo/duração" #: src/celluloid-shortcuts-window.c:67 msgid "Show filename on the OSD" msgstr "Exibe o nome do arquivo na tela (OSD)" #: src/celluloid-shortcuts-window.c:68 msgid "Show progress, elapsed time, and duration on the OSD" msgstr "Mostra o progresso, tempo passado, e a duração na tela (OSD)" #: src/celluloid-shortcuts-window.c:71 msgid "Seek backward/forward 5 seconds" msgstr "Avança/retrocede 5 segundos" #: src/celluloid-shortcuts-window.c:72 msgid "Exact seek backward/forward 1 second" msgstr "Avança/retrocede exatamente 1 segundo" #: src/celluloid-shortcuts-window.c:73 msgid "Seek backward/forward 1 minute" msgstr "Avança/retrocede 1 minuto" #: src/celluloid-shortcuts-window.c:74 msgid "Exact seek backward/forward 5 seconds" msgstr "Avança/retrocede 5 minutos" #: src/celluloid-shortcuts-window.c:75 msgid "Seek to previous/next subtitle" msgstr "Procura a legenda anterior/seguinte" #: src/celluloid-shortcuts-window.c:76 msgid "Step backward/forward a single frame" msgstr "Avança/retrocede um único quadro" #: src/celluloid-shortcuts-window.c:77 msgid "Seek to the beginning of the previous/next chapter" msgstr "Ir para o início do anterior/próximo capítulo" #: src/celluloid-shortcuts-window.c:80 msgid "Decrease/increase playback speed by 10%" msgstr "Aumenta/diminui a velocidade de reprodução em 10%" #: src/celluloid-shortcuts-window.c:81 msgid "Halve/double current playback speed" msgstr "Reproduz com metade/dobro da velocidade atual" #: src/celluloid-shortcuts-window.c:82 msgid "Reset playback speed to normal" msgstr "Reinicia a reprodução com velocidade normal" #: src/celluloid-shortcuts-window.c:83 msgid "Go backward/forward in the playlist" msgstr "Avança/volta na lista de reprodução" #: src/celluloid-shortcuts-window.c:84 msgid "Remove selected playlist item" msgstr "Remove item selecionado da lista de reprodução" #: src/celluloid-shortcuts-window.c:85 msgid "Save playlist" msgstr "Salva a lista de reprodução" #: src/celluloid-shortcuts-window.c:86 msgid "Set/clear A-B loop points" msgstr "Define/limpa os pontos de loop A-B" #: src/celluloid-shortcuts-window.c:87 msgid "Toggle infinite looping" msgstr "Muda para modo de repetição infinita" #: src/celluloid-shortcuts-window.c:88 msgid "Pause or unpause" msgstr "Pausa ou Continua" #: src/celluloid-shortcuts-window.c:89 msgid "Quit" msgstr "Sair" #: src/celluloid-shortcuts-window.c:90 msgid "Save current playback position and quit" msgstr "Salva a posição de reprodução e sai" #: src/celluloid-shortcuts-window.c:93 msgid "Enter search mode" msgstr "Entrar no Modo busca" #: src/celluloid-shortcuts-window.c:94 msgid "Jump to next match" msgstr "Ir para o próximo correspondente" #: src/celluloid-shortcuts-window.c:95 msgid "Jump to previous match" msgstr "Ir para o correspondente anterior" #: src/celluloid-shortcuts-window.c:96 msgid "Exit search mode" msgstr "Sai do modo busca" #: src/celluloid-shortcuts-window.c:99 msgid "Cycle through audio tracks" msgstr "Percorre pelas faixas de áudio" #: src/celluloid-shortcuts-window.c:100 src/celluloid-shortcuts-window.c:101 msgid "Decrease/increase volume" msgstr "Aumenta/diminui volume" #: src/celluloid-shortcuts-window.c:102 msgid "Mute or unmute" msgstr "Silencia ou não" #: src/celluloid-shortcuts-window.c:103 msgid "Adjust audio delay by +/- 0.1 seconds" msgstr "Ajusta o atraso de áudio em +/- 0,1 Segundos" #: src/celluloid-shortcuts-window.c:106 msgid "Toggle subtitle visibility" msgstr "Alterna a visibilidade das legendas" #: src/celluloid-shortcuts-window.c:107 msgid "Cycle through available subtitles" msgstr "Percorre pelas legendas disponíveis" #: src/celluloid-shortcuts-window.c:108 msgid "Adjust subtitle delay by +/- 0.1 seconds" msgstr "Ajusta o atraso da legenda por +/- 0.1 segundos" #: src/celluloid-shortcuts-window.c:109 msgid "Toggle SSA/ASS subtitles style override" msgstr "Substitui alternadamente o estilo das legendas SSA/ASS" #: src/celluloid-shortcuts-window.c:110 msgid "Move subtitles up/down" msgstr "Move as legendas para cima/para baixo" #: src/celluloid-shortcuts-window.c:111 msgid "Toggle VSFilter aspect compatibility mode" msgstr "Alterna o modo de compatibilidade de aspecto do VSFilter" #: src/celluloid-shortcuts-window.c:114 msgid "Cycle through video tracks" msgstr "Percorre pelas trilhas de vídeo" #: src/celluloid-shortcuts-window.c:115 msgid "Decrease/increase pan-and-scan range" msgstr "Diminui/aumenta o alcance da varredura de tela" #: src/celluloid-shortcuts-window.c:116 msgid "Take a screenshot" msgstr "Faz uma captura de tela" #: src/celluloid-shortcuts-window.c:117 msgid "Take a screenshot, without subtitles" msgstr "Faz uma captura de tela sem legendas" #: src/celluloid-shortcuts-window.c:118 msgid "Take a screenshot, as the window shows it" msgstr "Faz uma captura de tela da janela mostrada" #: src/celluloid-shortcuts-window.c:119 msgid "Resize video to half its original size" msgstr "Redimensiona o vídeo para a metade do tamanho original" #: src/celluloid-shortcuts-window.c:120 msgid "Resize video to its original size" msgstr "Redimensiona o vídeo para o tamanho original" #: src/celluloid-shortcuts-window.c:121 msgid "Resize video to double its original size" msgstr "Redimensiona o vídeo para o dobro da tela original" #: src/celluloid-shortcuts-window.c:122 msgid "Adjust contrast" msgstr "Ajusta o contraste" #: src/celluloid-shortcuts-window.c:123 msgid "Adjust brightness" msgstr "Ajusta o brilho" #: src/celluloid-shortcuts-window.c:124 msgid "Adjust gamma" msgstr "Ajusta o gama" #: src/celluloid-shortcuts-window.c:125 msgid "Adjust saturation" msgstr "Ajusta a saturação" #: src/celluloid-shortcuts-window.c:126 msgid "Activate or deactivate deinterlacer" msgstr "Ativa ou desativa desentrelace" #: src/celluloid-shortcuts-window.c:127 msgid "Cycle aspect ratio override" msgstr "Percorre pela proporção de aspecto ignorado" #: src/celluloid-shortcuts-window.c:130 msgid "User Interface" msgstr "Interface de Usuário" #: src/celluloid-shortcuts-window.c:131 msgid "Video" msgstr "Vídeo" #: src/celluloid-shortcuts-window.c:132 msgid "Audio" msgstr "Áudio" #: src/celluloid-shortcuts-window.c:133 msgid "Subtitle" msgstr "Legenda" #: src/celluloid-shortcuts-window.c:134 msgid "Playback" msgstr "Reproduzir" #: src/celluloid-shortcuts-window.c:135 msgid "Seeking" msgstr "Procurando" #: src/celluloid-view.c:728 msgid "Load Audio Track…" msgstr "Carregar Faixa de Áudio..." #: src/celluloid-view.c:732 msgid "Load Video Track…" msgstr "Carregar Faixa de Vídeo…" #: src/celluloid-view.c:736 msgid "Load Subtitle Track…" msgstr "Carregar Faixa de Legenda" #: src/celluloid-view.c:901 msgid "" "Enabling or disabling client-side decorations requires restarting to take " "effect." msgstr "" "Ativando ou desativando as decorações do lado do cliente, será necessário a " "reinicialização para que entre em vigor." #: src/celluloid-view.c:1444 msgid "Add Folder to Playlist" msgstr "Adic Pasta à Lista de Reprodução" #: src/celluloid-view.c:1444 msgid "Open Folder" msgstr "Abrir Pasta" #: src/celluloid-view.c:1449 msgid "Add File to Playlist" msgstr "Adic. arquivo à Lista de Reprodução" #: src/celluloid-view.c:1449 msgid "Open File" msgstr "Abrir Arquivo" #: src/celluloid-view.c:1485 msgid "Add Location to Playlist" msgstr "Adic. Local à lista de Reprodução" #: src/celluloid-view.c:1486 msgid "Open Location" msgstr "Abrir Local" #: src/celluloid-view.c:1532 msgid "Save Playlist" msgstr "Salva Lista de Reprodução" #: src/celluloid-view.c:1598 msgid "A GTK frontend for MPV" msgstr "Uma interface em GTK para o MPV" #: src/celluloid-view.c:1608 msgid "translator-credits" msgstr "Carlos Henrique de Freitas Ferreira." celluloid-0.20/po/pt_PT.po000066400000000000000000001125331373135401300154200ustar00rootroot00000000000000# Bruno Guerreiro , 2016. # Filipe Tostevin , 2019. #zanata # Hugo Carvalho , 2019. #zanata # gnome-mpv , 2019. #zanata # Hugo Carvalho , 2020. #zanata # gnome-mpv , 2020. #zanata msgid "" msgstr "" "Project-Id-Version: gnome-mpv 0.15\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-02-20 20:48+0700\n" "PO-Revision-Date: 2020-06-08 01:52-0400\n" "Last-Translator: Hugo Carvalho \n" "Language-Team: Portuguese\n" "Language: pt_PT\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Zanata 4.6.2\n" #: data/io.github.celluloid_player.Celluloid.gschema.xml:11 msgid "" "Whether the settings has already been migrated from the previous version" msgstr "Se as definições já foram migradas da versão anterior" #: data/io.github.celluloid_player.Celluloid.gschema.xml:17 msgid "Whether or not to automatically resize window to fit video" msgstr "Se deve ou não ajustar automaticamente a janela ao vídeo" #: data/io.github.celluloid_player.Celluloid.gschema.xml:23 msgid "Enable or disable dark theme" msgstr "Ativar ou desativar tema escuro" #: data/io.github.celluloid_player.Celluloid.gschema.xml:29 msgid "Enable or disable client-side decorations" msgstr "Ativar ou desativar decorações 'client-side'" #: data/io.github.celluloid_player.Celluloid.gschema.xml:35 msgid "Whether or not to use floating controls in windowed mode" msgstr "Se deve ou não utilizar controlos flutuantes no modo de janela" #: data/io.github.celluloid_player.Celluloid.gschema.xml:41 msgid "Whether or not to autohide mouse cursor in windowed mode" msgstr "" "Se deve ou não ocultar automaticamente o cursor do rato no modo de janela" #: data/io.github.celluloid_player.Celluloid.gschema.xml:47 msgid "The minimum cursor speed at which floating controls will be unhidden." msgstr "" "A velocidade mínima do cursor para que os controlos flutuantes sejam " "mostrados." #: data/io.github.celluloid_player.Celluloid.gschema.xml:54 msgid "" "The size of the dead zone in which cursor movement will not cause the " "controls to be shown." msgstr "" "O tamanho da zona inativa em que a movimentação do cursor não implica a " "exibição dos controlos." #: data/io.github.celluloid_player.Celluloid.gschema.xml:60 msgid "Whether or not to use skip buttons for controlling playlist" msgstr "" "Se deve ou não mostrar botões de ignorar para controlar a lista de " "reprodução" #: data/io.github.celluloid_player.Celluloid.gschema.xml:66 msgid "" "Whether or not to make file chooser dialog remember last folder accessed" msgstr "" "Se a caixa de diálogo do seletor de ficheiros memoriza ou não a última pasta" " acedida" #: data/io.github.celluloid_player.Celluloid.gschema.xml:72 msgid "Whether or not to create new windows when there is already an instance" msgstr "" "Se deve ou não criar novas janelas quando já existe uma instância ativa" #: data/io.github.celluloid_player.Celluloid.gschema.xml:78 #: src/celluloid-application.c:575 msgid "Options to pass to mpv" msgstr "Opções extra mpv" #: data/io.github.celluloid_player.Celluloid.gschema.xml:84 msgid "Path to mpv configuration file" msgstr "Caminho do ficheiro de configuração mpv" #: data/io.github.celluloid_player.Celluloid.gschema.xml:90 msgid "Load or don't load mpv configuration file" msgstr "Carregar ou não o ficheiro de configurações mpv" #: data/io.github.celluloid_player.Celluloid.gschema.xml:96 msgid "Path to mpv input configuration file" msgstr "Caminho para ficheiro de configurações de entrada mpv" #: data/io.github.celluloid_player.Celluloid.gschema.xml:102 msgid "Load or don't load mpv input configuration file" msgstr "Carregar ou não ficheiro de configurações de entrada mpv" #: data/io.github.celluloid_player.Celluloid.gschema.xml:108 msgid "Whether or not to enable MPRIS support" msgstr "Se deve ou não ativar o suporte a MPRIS" #: data/io.github.celluloid_player.Celluloid.gschema.xml:114 msgid "" "Whether or not to enable GNOME-Settings-Daemon-based media keys support" msgstr "" "Se deve ou não ativar o suporte a teclas multimédia GNOME-Settings-Daemon-" "based" #: data/io.github.celluloid_player.Celluloid.gschema.xml:120 msgid "Whether or not to prefetch metadata for non-current playlist entries" msgstr "" "Se deve ou não obter os meta-dados para as entradas de listas de reprodução " "não atuais" #: data/io.github.celluloid_player.Celluloid.gschema.xml:126 msgid "" "Whether or not to display an error message when playback of a file ends with" " an error" msgstr "" "Se deve ou não mostrar uma mensagem quando a reprodução de um ficheiro gera " "um erro" #: data/io.github.celluloid_player.Celluloid.gschema.xml:132 msgid "Whether or not to inhibit session idling when something is playing" msgstr "" "Se deve ou não inibir a sessão de inactividade quando algo está a tocar" #: data/io.github.celluloid_player.Celluloid.gschema.xml:142 msgid "Width of the window" msgstr "Largura da janela" #: data/io.github.celluloid_player.Celluloid.gschema.xml:148 msgid "Height of the window" msgstr "Altura da janela" #: data/io.github.celluloid_player.Celluloid.gschema.xml:154 msgid "Whether or not the window is maximized" msgstr "Se a janela está ou não maximizada" #: data/io.github.celluloid_player.Celluloid.gschema.xml:161 msgid "Volume of player" msgstr "Volume da aplicação" #: data/io.github.celluloid_player.Celluloid.gschema.xml:167 msgid "Whether or not to loop when the end of playlist is reached" msgstr "" "Se deve ou não repetir do início ao chegar ao fim da lista de reprodução" #: data/io.github.celluloid_player.Celluloid.gschema.xml:173 msgid "Width of the playlist" msgstr "Largura da lista de reprodução" #: data/io.github.celluloid_player.Celluloid.gschema.xml:179 msgid "Show or not show the controls" msgstr "Mostrar ou não mostrar os controlos" #: data/io.github.celluloid_player.Celluloid.gschema.xml:185 msgid "Show or not show the playlist" msgstr "Mostrar ou não a lista de reprodução" #: data/io.github.celluloid_player.Celluloid.gschema.xml:191 msgid "URI of the last folder accessed" msgstr "URI da última pasta acessada" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:7 #: data/io.github.celluloid_player.Celluloid.desktop.in:4 #: src/celluloid-application.c:451 msgid "Celluloid" msgstr "Celluloid" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:8 msgid "GTK+ frontend for mpv" msgstr "Interface GTK+ para mpv" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:16 msgid "" "Celluloid is a simple media player that can play virtually all video and " "audio formats. It supports playlists and MPRIS2 media player controls. The " "design of Celluloid follows the GNOME Human Interface Guidelines, but can " "also be adapted for other systems that don't use client-side decorations " "(CSD). It is based on the mpv library and GTK." msgstr "" "Celluloid é um reprodutor multimédia simples que pode reproduzir " "praticamente todos os formatos de vídeo e áudio. Tem siporte a listas de " "reprodução e controlos MPRIS2. O projeto Celluloid segue as diretrizes GNOME" " Human Interface, mas também pode ser adaptado para outros sistemas que não " "utilizem decorações 'client-side' (CSD). É baseado na biblioteca mpv e no " "GTK." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:23 msgid "Features:" msgstr "Funcionalidades:" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:25 msgid "Drag and drop playlist" msgstr "Arrastar e largar listas de reprodução" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:26 msgid "Loading external mpv configuration files" msgstr "Carregar ficheiros de configuração mpv externos" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:27 msgid "MPRIS2 D-Bus interface" msgstr "Interface MPRIS2 D-Bus" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:30 msgid "The Celluloid Developers" msgstr "Os programadores do Celluloid" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:34 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:87 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:117 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:156 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:187 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:215 msgid "This release contains the following changes:" msgstr "Esta versão contém as seguintes alterações:" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:38 msgid "" "Adjust the range of volume button based on the value of the volume-max " "property." msgstr "" "Ajuste o intervalo do botão de volume com base no valor da propriedade " "volume-max." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:42 msgid "Retain window maximization state across sessions." msgstr "Manter o estado de maximização da janela ao longo das sessões." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:45 msgid "Retain loop state across sessions." msgstr "Manter o estado do ciclo ao longo das sessões." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:48 msgid "Implement playlist search." msgstr "Implementar a pesquisa na lista de reprodução." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:51 msgid "Update the list of shortcuts in Keyboard Shortcuts dialog." msgstr "Atualize a lista de atalhos na janela de teclas de atalho." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:54 msgid "Correctly handle quotes and escape sequences in extra mpv options." msgstr "" "Manusear correctamente as citações e as sequências de escape em opções de " "extra mpv." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:57 msgid "Display time at cursor position when hovering the seek bar." msgstr "" "Mostrar o tempo na posição do cursor ao passar o rato na barra de pesquisa." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:60 msgid "" "Deprecate '--mpv-options'. Options starting with '--mpv-' can be used to set" " mpv options instead. For example, passing '--mpv-vf=vflip' to Celluloid is " "equivalent to passing '--vf=vflip' to mpv." msgstr "" "Depreciar \"--mpv-opções\". Opções que começam com '--mpv-' podem ser usadas" " para definir opções de mpv. Por exemplo, passar '--mpv-vf=vflip' para " "Celluloid é equivalente a passar '--vf=vflip' para mpv." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:66 msgid "" "Add support for configuring dead zone, an area in which mouse movement will " "not cause controls to be shown." msgstr "" "Adicionar suporte para a configuração da zona morta, uma área em que o " "movimento do rato não fará com que os controlos sejam mostrados." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:70 msgid "Make window sizing work correctly with HiDPI displays." msgstr "Faça o dimensionamento correto das janelas com os monitores HiDPI." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:73 msgid "Add Finnish translation by Kimmo Kujansuu." msgstr "Tradução do Finlandês por Kimmo Kujansuu." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:76 msgid "Add Slovenian translation by @bertronika." msgstr "Tradução do Esloveno por @bertronika." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:80 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:110 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:149 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:180 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:208 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:236 msgid "This listing is incomplete. See git log for complete changelog." msgstr "" "Esta lista está incompleta. Consulte o registo git para ver todas as " "alterações." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:91 msgid "Add Persian translation by @danialbehzadi" msgstr "Tradução persa por @danialbehzadi" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:94 msgid "Add Ukranian translation by @vl-nix" msgstr "Tradução ucraniana por @vl-nix" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:97 msgid "" "Add support for showing/hiding window decorations using the mpv option " "--border" msgstr "" "Adicionado suporte para mostrar/ocultar decorações de janelas com a opção " "mpv --border" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:100 msgid "Add menu item for opening discs" msgstr "Adicionado item de menu para abrir discos" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:103 msgid "Block cursor autohide when volume popup is open in windowed mode" msgstr "" "Bloqueio à ocultação automática do cursor se o alerta de volume for aberto " "no modo de janela" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:106 msgid "Fix crash with mpv 0.30" msgstr "Correção a um erro com mpv 0.30" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:121 msgid "Rename project to Celluloid" msgstr "Alteração do nome da aplicação para Celluloid" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:124 msgid "Add Turkish translation by @TeknoMobil" msgstr "Tradução para turco por @TeknoMobil" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:127 msgid "Add Esperanto translation by @F3nd0" msgstr "Tradução para esperanto por @F3nd0" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:130 msgid "Migrate from opengl-cb to the new render API" msgstr "Migração de opengl-cb para a nova API de renderização" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:133 msgid "Handle numpad keybindings" msgstr "Gestão de teclas de atalho em teclados numéricos" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:136 msgid "Handle unicode keybindings" msgstr "Gestão de teclas de atalho unicode" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:139 msgid "Forward media key events to mpv" msgstr "Encaminhamento de eventos das teclas multimédia para mpv" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:142 msgid "" "Add dconf key for controlling cursor speed at which controls are unhidden" msgstr "" "Adicionada uma chave dconf para controlar a velocidade do cursor necessária " "para mostrar os controlos" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:145 msgid "Add option for suppressing playback errors" msgstr "Adicionada uma opção para suprimir os erros de reprodução" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:160 msgid "Split up the General tab in the preferences dialog" msgstr "Separação do separador Geral no diálogo de preferências" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:163 msgid "Improve behavior when toggling playlist under tiling window managers" msgstr "" "Melhorias no comportamento ao alternar a lista de reprodução em gestores de " "janelas 'tiling'" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:166 msgid "Move app menu items to primary menu" msgstr "Colocação dos itens de menu da aplicação no menu principal" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:169 msgid "Use separate MPRIS DBus connection for each window" msgstr "Utilização de uma ligação distinta MPRIS DBus para cada janela" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:172 msgid "Add support for MPRIS property LoopStatus" msgstr "Adicionado suporte à propriedade LoopStatus MPRIS" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:175 msgid "" "Add option --mpv-options for setting arbitrary mpv options from the command-" "line" msgstr "" "Adicionada a opção --mpv-options para definir opções arbitrárias mpv a " "partir da linha de comando" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:191 msgid "Set default screenshot directory to XDG_PICTURES_DIR" msgstr "Definição do diretório de capturas de ecrã para XDG_PICTURES_DIR" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:194 msgid "" "Improve handling of --window-scale, --autofit, --autofit-larger, and " "--autofit-smaller" msgstr "" "Melhorias na gestão das opções --window-scale, --autofit, --autofit-larger e" " --autofit-smaller" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:198 msgid "Add command line option for setting WM_ROLE" msgstr "Adicionada uma opção de linha de comando para definir WM_ROLE" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:201 msgid "Add context menu item for removing playlist items" msgstr "" "Adicionado um item ao menu de contexto para remover itens da lista de " "reprodução" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:204 msgid "Add context menu item for copying location of playlist items" msgstr "" "Adicionado um item ao menu de contexto para copiar a localização dos itens " "da lista de reprodução" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:219 msgid "" "Add option to make skip buttons change playlist entries rather than chapters" msgstr "" "Adicionada uma opção para que os botões Ignorar alterem entre entradas da " "lista de reprodução e não entre capítulos" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:223 msgid "Make the file chooser accept non-local locations" msgstr "Permitir que o seletor de ficheiros aceite localizações não locais" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:226 msgid "Add right-click menu entry for looping a single file" msgstr "Adicionada um item ao menu de contexto para repetir um único ficheiro" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:229 msgid "Handle property change events for fullscreen and window-scale" msgstr "" "Manipulação de eventos de alteração da propriedade para ecrã inteiro e " "escala de janela" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:232 msgid "Add option to autohide mouse cursor in windowed mode" msgstr "" "Adicionada uma opção para ocultar automaticamente o cursor do rato no modo " "de janela" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:246 msgid "The main window showing the application in action" msgstr "Janela principal a mostrar a aplicação em ação" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:250 msgid "The main window with CSD disabled" msgstr "Janela principal com decorações 'client side' desativadas" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:254 msgid "The main window with playlist open" msgstr "Janela principal com uma lista de reprodução aberta" #: data/io.github.celluloid_player.Celluloid.desktop.in:5 msgid "Multimedia Player" msgstr "Reprodutor multimédia" #: data/io.github.celluloid_player.Celluloid.desktop.in:6 msgid "Play movies and videos" msgstr "Reproduzir filmes e vídeos" #. Translators: Search terms to find this application. Don't translate the #. semicolons! The list MUST also end with a semicolon! #: data/io.github.celluloid_player.Celluloid.desktop.in:17 msgid "Video;Movie;Film;Clip;Series;Player;DVD;TV;Disc;Album;Music;GNOME;mpv;" msgstr "" "Vídeo;Filme;Clip;Séries;Reprodutor;DVD;TV;Disco;Álbum;Música;GNOME;mpv;" #: data/io.github.celluloid_player.Celluloid.desktop.in:23 msgid "New Window" msgstr "Nova janela" #: src/celluloid-application.c:495 msgid "Playing" msgstr "Em reprodução" #: src/celluloid-application.c:551 msgid "Show release version" msgstr "Mostrar a versão" #: src/celluloid-application.c:559 msgid "Enqueue" msgstr "Colocar na fila" #: src/celluloid-application.c:567 msgid "Create a new window" msgstr "Criar uma nova janela" #: src/celluloid-application.c:576 msgid "OPTIONS" msgstr "OPÇÕES" #: src/celluloid-application.c:583 msgid "Set the window role" msgstr "Define o papel da janela" #: src/celluloid-application.c:591 msgid "Don't connect to an already-running instance" msgstr "Não ligar a uma instância em execução" #: src/celluloid-control-box.c:362 msgid "Pause" msgstr "Pausa" #: src/celluloid-control-box.c:362 src/celluloid-control-box.c:565 msgid "Play" msgstr "Reproduzir" #: src/celluloid-control-box.c:568 msgid "Stop" msgstr "Parar" #: src/celluloid-control-box.c:571 msgid "Forward" msgstr "Avançar" #: src/celluloid-control-box.c:574 msgid "Rewind" msgstr "Recuar" #: src/celluloid-control-box.c:577 msgid "Next Chapter" msgstr "Capítulo seguinte" #: src/celluloid-control-box.c:580 msgid "Previous Chapter" msgstr "Capítulo anterior" #: src/celluloid-control-box.c:583 msgid "Loop Playlist" msgstr "Lista de reprodução em ciclo" #: src/celluloid-control-box.c:586 msgid "Shuffle Playlist" msgstr "Reproduzir aleatoriamente a lista de reprodução" #: src/celluloid-control-box.c:589 src/celluloid-header-bar.c:91 msgid "Toggle Fullscreen" msgstr "Alternar para ecrã inteiro" #: src/celluloid-controller.c:992 src/celluloid-view.c:1558 msgid "Error" msgstr "Erro" #: src/celluloid-file-chooser.c:139 src/celluloid-plugins-manager.c:170 msgid "All Files" msgstr "Todos os ficheiros" #: src/celluloid-file-chooser.c:147 msgid "Media Files" msgstr "Ficheiros multimédia" #: src/celluloid-file-chooser.c:158 msgid "Audio Files" msgstr "Ficheiros de áudio" #: src/celluloid-file-chooser.c:166 msgid "Video Files" msgstr "Ficheiros de vídeo" #: src/celluloid-file-chooser.c:174 msgid "Image Files" msgstr "Ficheiros de imagem" #: src/celluloid-file-chooser.c:184 msgid "Subtitle Files" msgstr "Ficheiros de legendas" #: src/celluloid-menu.c:106 msgid "None" msgstr "Nenhum" #. For simplicity, also dup the default string used when the #. * track has no title. #: src/celluloid-menu.c:121 msgid "Unknown" msgstr "Desconhecido" #: src/celluloid-menu.c:154 msgid "_Load External…" msgstr "_Carregar externo…" #. Disable the menu item by setting the action to something #. * invalid. #: src/celluloid-menu.c:207 msgid "No disc found" msgstr "Nenhum disco encontrado" #: src/celluloid-menu.c:235 msgid "_File" msgstr "_Ficheiro" #: src/celluloid-menu.c:236 src/celluloid-menu.c:318 msgid "_Open…" msgstr "_Abrir…" #: src/celluloid-menu.c:237 src/celluloid-menu.c:319 msgid "Open _Folder…" msgstr "" #: src/celluloid-menu.c:238 src/celluloid-menu.c:320 msgid "Open _Location…" msgstr "Abrir _localização…" #: src/celluloid-menu.c:239 msgid "Open _Disc…" msgstr "Abrir _disco…" #: src/celluloid-menu.c:240 src/celluloid-menu.c:290 msgid "_Save Playlist" msgstr "Guardar li_sta de reprodução" #: src/celluloid-menu.c:241 src/celluloid-menu.c:323 msgid "_New Window" msgstr "_Nova janela" #: src/celluloid-menu.c:242 msgid "_Quit" msgstr "Sa_ir" #: src/celluloid-menu.c:243 msgid "_Edit" msgstr "_Editar" #: src/celluloid-menu.c:244 src/celluloid-menu.c:296 msgid "_Preferences" msgstr "_Preferências" #: src/celluloid-menu.c:245 src/celluloid-menu.c:292 msgid "_Video Track" msgstr "Faixa de _vídeo" #: src/celluloid-menu.c:246 src/celluloid-menu.c:293 msgid "_Audio Track" msgstr "F_aixa de áudio" #: src/celluloid-menu.c:247 src/celluloid-menu.c:294 msgid "S_ubtitle Track" msgstr "Fa_ixa de legendas" #: src/celluloid-menu.c:248 msgid "_View" msgstr "_Ver" #: src/celluloid-menu.c:249 src/celluloid-menu.c:287 msgid "_Toggle Controls" msgstr "Al_ternar controlos" #: src/celluloid-menu.c:250 src/celluloid-menu.c:289 msgid "_Toggle Playlist" msgstr "Al_ternar lista de reprodução" #: src/celluloid-menu.c:251 msgid "_Fullscreen" msgstr "_Ecrã inteiro" #: src/celluloid-menu.c:252 msgid "_Help" msgstr "Aj_uda" #: src/celluloid-menu.c:253 src/celluloid-menu.c:297 msgid "_Keyboard Shortcuts" msgstr "Teclas de atal_ho" #: src/celluloid-menu.c:254 src/celluloid-menu.c:298 msgid "_About Celluloid" msgstr "_Acerca do Celluloid" #: src/celluloid-menu.c:321 msgid "Open _Disc" msgstr "Abrir _disco" #: src/celluloid-mpv.c:240 #, c-format msgid "Playback was terminated abnormally. Reason: %s." msgstr "A reprodução terminou abruptamente. Motivo: %s." #: src/celluloid-open-location-dialog.c:130 msgid "Location:" msgstr "Localização:" #: src/celluloid-open-location-dialog.c:136 #: src/celluloid-preferences-dialog.c:401 msgid "_Cancel" msgstr "_Cancelar" #: src/celluloid-open-location-dialog.c:138 msgid "_Open" msgstr "_Abrir" #: src/celluloid-player.c:550 msgid "Failed to apply one or more MPV options." msgstr "Falha ao aplicar uma ou mais opções mpv." #: src/celluloid-playlist-widget.c:784 msgid "_Copy Location" msgstr "_Copiar localização" #: src/celluloid-playlist-widget.c:785 msgid "_Remove" msgstr "_Remover" #: src/celluloid-playlist-widget.c:787 msgid "_Add…" msgstr "_Adicionar…" #: src/celluloid-playlist-widget.c:788 msgid "Add _Folder…" msgstr "" #: src/celluloid-playlist-widget.c:789 msgid "Add _Location…" msgstr "Adicionar _localização…" #: src/celluloid-playlist-widget.c:790 msgid "_Shuffle" msgstr "Mi_sturar" #: src/celluloid-playlist-widget.c:791 msgid "Loop _File" msgstr "Repetir _ficheiro" #: src/celluloid-playlist-widget.c:792 msgid "Loop _Playlist" msgstr "Re_petir lista de reprodução" #: src/celluloid-playlist-widget.c:933 src/celluloid-shortcuts-window.c:136 msgid "Playlist" msgstr "Lista de reprodução" #: src/celluloid-playlist-widget.c:941 msgid "Playlist is empty" msgstr "Lista de reprodução vazia" #: src/celluloid-plugins-manager.c:163 src/celluloid-plugins-manager.c:409 msgid "Add Plugin" msgstr "Adicionar plugin" #: src/celluloid-plugins-manager.c:175 msgid "Lua Plugins" msgstr "Plugins Lua" #: src/celluloid-plugins-manager.c:181 msgid "JavaScript Plugins" msgstr "Plugins JavaScript" #: src/celluloid-plugins-manager.c:186 msgid "C Plugins" msgstr "Plugins C" #: src/celluloid-plugins-manager.c:334 #, c-format msgid "Failed to copy file from '%s' to '%s'. Reason: %s" msgstr "Falha ao copiar o ficheiro de '%s' para '%s'. Motivo: %s" #: src/celluloid-plugins-manager.c:385 msgid "No plugins found" msgstr "Nenhum plugin encontrado" #: src/celluloid-plugins-manager-item.c:79 msgid "Remove" msgstr "Remover" #: src/celluloid-plugins-manager-item.c:178 msgid "" "Are you sure you want to remove this script? This action cannot be undone." msgstr "" "Tem a certeza de que deseja remover este script? Esta ação não pode ser " "desfeita." #: src/celluloid-plugins-manager-item.c:199 #, c-format msgid "Failed to delete file '%s'. Reason: %s" msgstr "Falha ao eliminar o ficheiro '%s'. Motivo: %s" #: src/celluloid-preferences-dialog.c:304 msgid "Automatically resize window to fit video" msgstr "Ajustar automaticamente a janela ao vídeo" #: src/celluloid-preferences-dialog.c:307 msgid "Enable client-side decorations" msgstr "Ativar decorações 'client-side'" #: src/celluloid-preferences-dialog.c:310 msgid "Enable dark theme" msgstr "Ativar tema escuro" #: src/celluloid-preferences-dialog.c:313 msgid "Use floating controls in windowed mode" msgstr "Utilizar controlos flutuantes no modo de janela" #: src/celluloid-preferences-dialog.c:316 msgid "Autohide mouse cursor in windowed mode" msgstr "Ocultar automaticamente o cursor do rato no modo de janela" #: src/celluloid-preferences-dialog.c:319 msgid "Use skip buttons for controlling playlist" msgstr "Utilizar botões de ignorar para controlar a lista de reprodução" #: src/celluloid-preferences-dialog.c:322 msgid "Remember last file's location" msgstr "Memorizar localização do último ficheiro" #: src/celluloid-preferences-dialog.c:327 msgid "Load MPV configuration file" msgstr "Carregar ficheiro de configuração mpv" #: src/celluloid-preferences-dialog.c:330 msgid "MPV configuration file:" msgstr "Ficheiro de configuração mpv:" #: src/celluloid-preferences-dialog.c:333 msgid "Load MPV input configuration file" msgstr "Carregar ficheiro de configuração de entrada mpv" #: src/celluloid-preferences-dialog.c:336 msgid "MPV input configuration file:" msgstr "Ficheiro de configuração de entrada mpv:" #: src/celluloid-preferences-dialog.c:341 msgid "Always open new window" msgstr "Abrir sempre uma nova janela" #: src/celluloid-preferences-dialog.c:344 msgid "Ignore playback errors" msgstr "Ignorar erros de reprodução" #: src/celluloid-preferences-dialog.c:347 msgid "Prefetch metadata" msgstr "Pré-obtenção de meta-dados" #: src/celluloid-preferences-dialog.c:350 msgid "Enable MPRIS support" msgstr "Ativar suporte a MPRIS" #: src/celluloid-preferences-dialog.c:353 msgid "Enable media keys support" msgstr "Ativar teclas multimédia" #: src/celluloid-preferences-dialog.c:356 msgid "Extra MPV options:" msgstr "Opções extra mpv:" #: src/celluloid-preferences-dialog.c:389 msgid "Interface" msgstr "Interface" #: src/celluloid-preferences-dialog.c:392 msgid "Config Files" msgstr "Ficheiros de configuração" #: src/celluloid-preferences-dialog.c:395 msgid "Miscellaneous" msgstr "Outras" #: src/celluloid-preferences-dialog.c:398 msgid "Plugins" msgstr "Plugins" #: src/celluloid-preferences-dialog.c:403 msgid "_Save" msgstr "_Guardar" #: src/celluloid-preferences-dialog.c:421 msgid "Preferences" msgstr "Preferências" #: src/celluloid-shortcuts-window.c:57 msgid "Open file" msgstr "Abrir ficheiro" #: src/celluloid-shortcuts-window.c:58 msgid "Open location" msgstr "Abrir localização" #: src/celluloid-shortcuts-window.c:59 msgid "Add file to playlist" msgstr "Adicionar ficheiro à lista de reprodução" #: src/celluloid-shortcuts-window.c:60 msgid "Add location to playlist" msgstr "Adicionar localização à lista de reprodução" #: src/celluloid-shortcuts-window.c:61 msgid "Show preferences dialog" msgstr "Mostrar janela de preferências" #: src/celluloid-shortcuts-window.c:62 msgid "Toggle controls" msgstr "Alternar entre controlos" #: src/celluloid-shortcuts-window.c:63 msgid "Toggle playlist" msgstr "Alternar lista de reprodução" #: src/celluloid-shortcuts-window.c:64 msgid "Toggle fullscreen mode" msgstr "Alternar ecrã inteiro" #: src/celluloid-shortcuts-window.c:65 msgid "Leave fullscreen mode" msgstr "Sair de ecrã inteiro" #: src/celluloid-shortcuts-window.c:66 msgid "Toggle OSD states between normal and playback time/duration" msgstr "Alternar estados do OSD entre normal e o duração/tempo de reprodução" #: src/celluloid-shortcuts-window.c:67 msgid "Show filename on the OSD" msgstr "Mostrar nome do ficheiro no OSD" #: src/celluloid-shortcuts-window.c:68 msgid "Show progress, elapsed time, and duration on the OSD" msgstr "Mostrar progresso, tempo decorrido e duração no OSD" #: src/celluloid-shortcuts-window.c:71 msgid "Seek backward/forward 5 seconds" msgstr "Procurar Recuar/Avançar 5 segundos" #: src/celluloid-shortcuts-window.c:72 msgid "Exact seek backward/forward 1 second" msgstr "Procura exata Recuar/Avançar exatamente 1 segundo" #: src/celluloid-shortcuts-window.c:73 msgid "Seek backward/forward 1 minute" msgstr "Procurar Recuar/Avançar 1 minuto" #: src/celluloid-shortcuts-window.c:74 msgid "Exact seek backward/forward 5 seconds" msgstr "Procura exata Recuar/Avançar exatamente 5 segundos" #: src/celluloid-shortcuts-window.c:75 msgid "Seek to previous/next subtitle" msgstr "Ir para a legenda anterior/seguinte" #: src/celluloid-shortcuts-window.c:76 msgid "Step backward/forward a single frame" msgstr "Recuar/Avançar exatamente um frame" #: src/celluloid-shortcuts-window.c:77 msgid "Seek to the beginning of the previous/next chapter" msgstr "Ir para o início do capítulo anterior/seguinte" #: src/celluloid-shortcuts-window.c:80 msgid "Decrease/increase playback speed by 10%" msgstr "Reduzir/aumentar velocidade de reprodução em 10%" #: src/celluloid-shortcuts-window.c:81 msgid "Halve/double current playback speed" msgstr "Reduzir a metade/duplicar velocidade de reprodução" #: src/celluloid-shortcuts-window.c:82 msgid "Reset playback speed to normal" msgstr "Restaurar velocidade de reprodução" #: src/celluloid-shortcuts-window.c:83 msgid "Go backward/forward in the playlist" msgstr "Recuar/avançar na lista de reprodução" #: src/celluloid-shortcuts-window.c:84 msgid "Remove selected playlist item" msgstr "Remover item selecionado da lista de reprodução" #: src/celluloid-shortcuts-window.c:85 msgid "Save playlist" msgstr "Guardar lista de reprodução" #: src/celluloid-shortcuts-window.c:86 msgid "Set/clear A-B loop points" msgstr "Definir/Limpar pontos de ciclo A-B" #: src/celluloid-shortcuts-window.c:87 msgid "Toggle infinite looping" msgstr "Alternar ciclo infinito" #: src/celluloid-shortcuts-window.c:88 msgid "Pause or unpause" msgstr "Pausa ou continuar" #: src/celluloid-shortcuts-window.c:89 msgid "Quit" msgstr "Sair" #: src/celluloid-shortcuts-window.c:90 msgid "Save current playback position and quit" msgstr "Guardar posição na lista de reprodução e sair" #: src/celluloid-shortcuts-window.c:93 msgid "Enter search mode" msgstr "Entrar no modo de pesquisa" #: src/celluloid-shortcuts-window.c:94 msgid "Jump to next match" msgstr "Ir para a ocorrência seguinte" #: src/celluloid-shortcuts-window.c:95 msgid "Jump to previous match" msgstr "Ir para a ocorrência anterior" #: src/celluloid-shortcuts-window.c:96 msgid "Exit search mode" msgstr "Sair do modo de pesquisa" #: src/celluloid-shortcuts-window.c:99 msgid "Cycle through audio tracks" msgstr "Percorrer faixas de áudio" #: src/celluloid-shortcuts-window.c:100 src/celluloid-shortcuts-window.c:101 msgid "Decrease/increase volume" msgstr "Reduzir/aumentar volume" #: src/celluloid-shortcuts-window.c:102 msgid "Mute or unmute" msgstr "SIlenciar ou restaurar" #: src/celluloid-shortcuts-window.c:103 msgid "Adjust audio delay by +/- 0.1 seconds" msgstr "Ajustar atraso de áudio em +/- 0,1 segundos" #: src/celluloid-shortcuts-window.c:106 msgid "Toggle subtitle visibility" msgstr "Alternar visibilidade das legendas" #: src/celluloid-shortcuts-window.c:107 msgid "Cycle through available subtitles" msgstr "Percorrer legendas disponíveis" #: src/celluloid-shortcuts-window.c:108 msgid "Adjust subtitle delay by +/- 0.1 seconds" msgstr "Ajustar atraso das legendas em +/- 0,1 segundos" #: src/celluloid-shortcuts-window.c:109 msgid "Toggle SSA/ASS subtitles style override" msgstr "Alternar substituição da estilo das legendas SSA/ASS" #: src/celluloid-shortcuts-window.c:110 msgid "Move subtitles up/down" msgstr "Mover legendas para cima/baixo" #: src/celluloid-shortcuts-window.c:111 msgid "Toggle VSFilter aspect compatibility mode" msgstr "Alternar modo de compatibilidade do aspeto VSFilter" #: src/celluloid-shortcuts-window.c:114 msgid "Cycle through video tracks" msgstr "Percorrer faixas de vídeo" #: src/celluloid-shortcuts-window.c:115 msgid "Decrease/increase pan-and-scan range" msgstr "Reduzir/aumentar intervalo de panorâmica" #: src/celluloid-shortcuts-window.c:116 msgid "Take a screenshot" msgstr "Capturar ecrã" #: src/celluloid-shortcuts-window.c:117 msgid "Take a screenshot, without subtitles" msgstr "Capturar ecrã sem legendas" #: src/celluloid-shortcuts-window.c:118 msgid "Take a screenshot, as the window shows it" msgstr "Capturar ecrã tal como é mostrado" #: src/celluloid-shortcuts-window.c:119 msgid "Resize video to half its original size" msgstr "Ajustar vídeo para metade do tamanho original" #: src/celluloid-shortcuts-window.c:120 msgid "Resize video to its original size" msgstr "Ajustar vídeo para o tamanho original" #: src/celluloid-shortcuts-window.c:121 msgid "Resize video to double its original size" msgstr "Ajustar vídeo para o dobro do tamanho original" #: src/celluloid-shortcuts-window.c:122 msgid "Adjust contrast" msgstr "Ajustar contraste" #: src/celluloid-shortcuts-window.c:123 msgid "Adjust brightness" msgstr "Ajustar brilho" #: src/celluloid-shortcuts-window.c:124 msgid "Adjust gamma" msgstr "Ajustar gama" #: src/celluloid-shortcuts-window.c:125 msgid "Adjust saturation" msgstr "Ajustar saturação" #: src/celluloid-shortcuts-window.c:126 msgid "Activate or deactivate deinterlacer" msgstr "Ativar ou desativar o desentrelaçador" #: src/celluloid-shortcuts-window.c:127 msgid "Cycle aspect ratio override" msgstr "Substituição da relação de aspeto" #: src/celluloid-shortcuts-window.c:130 msgid "User Interface" msgstr "Interface" #: src/celluloid-shortcuts-window.c:131 msgid "Video" msgstr "Vídeo" #: src/celluloid-shortcuts-window.c:132 msgid "Audio" msgstr "Áudio" #: src/celluloid-shortcuts-window.c:133 msgid "Subtitle" msgstr "Legenda" #: src/celluloid-shortcuts-window.c:134 msgid "Playback" msgstr "Reprodução" #: src/celluloid-shortcuts-window.c:135 msgid "Seeking" msgstr "Pesquisa" #: src/celluloid-view.c:728 msgid "Load Audio Track…" msgstr "Carregar faixa de áudio…" #: src/celluloid-view.c:732 msgid "Load Video Track…" msgstr "Carregar faixa de vídeo…" #: src/celluloid-view.c:736 msgid "Load Subtitle Track…" msgstr "Carregar a faixa de legendas..." #: src/celluloid-view.c:901 msgid "" "Enabling or disabling client-side decorations requires restarting to take " "effect." msgstr "" "Para ativar ou desativar as decorações 'client-side', tem que reiniciar a " "aplicação." #: src/celluloid-view.c:1444 msgid "Add Folder to Playlist" msgstr "" #: src/celluloid-view.c:1444 msgid "Open Folder" msgstr "" #: src/celluloid-view.c:1449 msgid "Add File to Playlist" msgstr "Adicionar ficheiro à lista de reprodução" #: src/celluloid-view.c:1449 msgid "Open File" msgstr "Abrir ficheiro" #: src/celluloid-view.c:1485 msgid "Add Location to Playlist" msgstr "Adicionar local à lista de reprodução" #: src/celluloid-view.c:1486 msgid "Open Location" msgstr "Abrir localização" #: src/celluloid-view.c:1532 msgid "Save Playlist" msgstr "Guardar lista de reprodução" #: src/celluloid-view.c:1598 msgid "A GTK frontend for MPV" msgstr "Interface em GTK para mpv" #: src/celluloid-view.c:1608 msgid "translator-credits" msgstr "" "Hugo Carvalho\n" "Bruno Guerreiro\n" "Sérgio Marques" celluloid-0.20/po/ro.po000066400000000000000000000676061373135401300150240ustar00rootroot00000000000000# Romanian (ro_RO) translations for gnome-mpv package. # gnome-mpv # Copyright (C) 2015 THE gnome-mpv'S COPYRIGHT HOLDER # This file is distributed under the same license as the gnone-mpv package. # Robert Datcu , 2015. # gnome-mpv , 2019. #zanata # gnome-mpv , 2020. #zanata msgid "" msgstr "" "Project-Id-Version: gnome-mpv 0.15\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-02-20 20:48+0700\n" "PO-Revision-Date: 2020-06-23 10:49-0400\n" "Last-Translator: Copied by Zanata \n" "Language-Team: Romanian Translations\n" "Language: ro\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Zanata 4.6.2\n" #: data/io.github.celluloid_player.Celluloid.gschema.xml:11 msgid "" "Whether the settings has already been migrated from the previous version" msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:17 msgid "Whether or not to automatically resize window to fit video" msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:23 msgid "Enable or disable dark theme" msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:29 msgid "Enable or disable client-side decorations" msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:35 msgid "Whether or not to use floating controls in windowed mode" msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:41 msgid "Whether or not to autohide mouse cursor in windowed mode" msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:47 msgid "The minimum cursor speed at which floating controls will be unhidden." msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:54 msgid "" "The size of the dead zone in which cursor movement will not cause the " "controls to be shown." msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:60 msgid "Whether or not to use skip buttons for controlling playlist" msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:66 msgid "" "Whether or not to make file chooser dialog remember last folder accessed" msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:72 msgid "Whether or not to create new windows when there is already an instance" msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:78 #: src/celluloid-application.c:575 msgid "Options to pass to mpv" msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:84 msgid "Path to mpv configuration file" msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:90 msgid "Load or don't load mpv configuration file" msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:96 msgid "Path to mpv input configuration file" msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:102 msgid "Load or don't load mpv input configuration file" msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:108 msgid "Whether or not to enable MPRIS support" msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:114 msgid "" "Whether or not to enable GNOME-Settings-Daemon-based media keys support" msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:120 msgid "Whether or not to prefetch metadata for non-current playlist entries" msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:126 msgid "" "Whether or not to display an error message when playback of a file ends with" " an error" msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:132 msgid "Whether or not to inhibit session idling when something is playing" msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:142 msgid "Width of the window" msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:148 msgid "Height of the window" msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:154 msgid "Whether or not the window is maximized" msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:161 msgid "Volume of player" msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:167 msgid "Whether or not to loop when the end of playlist is reached" msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:173 msgid "Width of the playlist" msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:179 msgid "Show or not show the controls" msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:185 msgid "Show or not show the playlist" msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:191 msgid "URI of the last folder accessed" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:7 #: data/io.github.celluloid_player.Celluloid.desktop.in:4 #: src/celluloid-application.c:451 msgid "Celluloid" msgstr "Celluloid" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:8 msgid "GTK+ frontend for mpv" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:16 msgid "" "Celluloid is a simple media player that can play virtually all video and " "audio formats. It supports playlists and MPRIS2 media player controls. The " "design of Celluloid follows the GNOME Human Interface Guidelines, but can " "also be adapted for other systems that don't use client-side decorations " "(CSD). It is based on the mpv library and GTK." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:23 msgid "Features:" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:25 msgid "Drag and drop playlist" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:26 msgid "Loading external mpv configuration files" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:27 msgid "MPRIS2 D-Bus interface" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:30 msgid "The Celluloid Developers" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:34 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:87 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:117 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:156 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:187 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:215 msgid "This release contains the following changes:" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:38 msgid "" "Adjust the range of volume button based on the value of the volume-max " "property." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:42 msgid "Retain window maximization state across sessions." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:45 msgid "Retain loop state across sessions." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:48 msgid "Implement playlist search." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:51 msgid "Update the list of shortcuts in Keyboard Shortcuts dialog." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:54 msgid "Correctly handle quotes and escape sequences in extra mpv options." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:57 msgid "Display time at cursor position when hovering the seek bar." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:60 msgid "" "Deprecate '--mpv-options'. Options starting with '--mpv-' can be used to set" " mpv options instead. For example, passing '--mpv-vf=vflip' to Celluloid is " "equivalent to passing '--vf=vflip' to mpv." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:66 msgid "" "Add support for configuring dead zone, an area in which mouse movement will " "not cause controls to be shown." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:70 msgid "Make window sizing work correctly with HiDPI displays." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:73 msgid "Add Finnish translation by Kimmo Kujansuu." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:76 msgid "Add Slovenian translation by @bertronika." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:80 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:110 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:149 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:180 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:208 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:236 msgid "This listing is incomplete. See git log for complete changelog." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:91 msgid "Add Persian translation by @danialbehzadi" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:94 msgid "Add Ukranian translation by @vl-nix" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:97 msgid "" "Add support for showing/hiding window decorations using the mpv option " "--border" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:100 msgid "Add menu item for opening discs" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:103 msgid "Block cursor autohide when volume popup is open in windowed mode" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:106 msgid "Fix crash with mpv 0.30" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:121 msgid "Rename project to Celluloid" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:124 msgid "Add Turkish translation by @TeknoMobil" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:127 msgid "Add Esperanto translation by @F3nd0" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:130 msgid "Migrate from opengl-cb to the new render API" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:133 msgid "Handle numpad keybindings" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:136 msgid "Handle unicode keybindings" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:139 msgid "Forward media key events to mpv" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:142 msgid "" "Add dconf key for controlling cursor speed at which controls are unhidden" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:145 msgid "Add option for suppressing playback errors" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:160 msgid "Split up the General tab in the preferences dialog" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:163 msgid "Improve behavior when toggling playlist under tiling window managers" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:166 msgid "Move app menu items to primary menu" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:169 msgid "Use separate MPRIS DBus connection for each window" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:172 msgid "Add support for MPRIS property LoopStatus" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:175 msgid "" "Add option --mpv-options for setting arbitrary mpv options from the command-" "line" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:191 msgid "Set default screenshot directory to XDG_PICTURES_DIR" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:194 msgid "" "Improve handling of --window-scale, --autofit, --autofit-larger, and " "--autofit-smaller" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:198 msgid "Add command line option for setting WM_ROLE" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:201 msgid "Add context menu item for removing playlist items" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:204 msgid "Add context menu item for copying location of playlist items" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:219 msgid "" "Add option to make skip buttons change playlist entries rather than chapters" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:223 msgid "Make the file chooser accept non-local locations" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:226 msgid "Add right-click menu entry for looping a single file" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:229 msgid "Handle property change events for fullscreen and window-scale" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:232 msgid "Add option to autohide mouse cursor in windowed mode" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:246 msgid "The main window showing the application in action" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:250 msgid "The main window with CSD disabled" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:254 msgid "The main window with playlist open" msgstr "" #: data/io.github.celluloid_player.Celluloid.desktop.in:5 msgid "Multimedia Player" msgstr "" #: data/io.github.celluloid_player.Celluloid.desktop.in:6 msgid "Play movies and videos" msgstr "" #. Translators: Search terms to find this application. Don't translate the #. semicolons! The list MUST also end with a semicolon! #: data/io.github.celluloid_player.Celluloid.desktop.in:17 msgid "Video;Movie;Film;Clip;Series;Player;DVD;TV;Disc;Album;Music;GNOME;mpv;" msgstr "" #: data/io.github.celluloid_player.Celluloid.desktop.in:23 msgid "New Window" msgstr "" #: src/celluloid-application.c:495 msgid "Playing" msgstr "" #: src/celluloid-application.c:551 msgid "Show release version" msgstr "" #: src/celluloid-application.c:559 msgid "Enqueue" msgstr "" #: src/celluloid-application.c:567 msgid "Create a new window" msgstr "" #: src/celluloid-application.c:576 msgid "OPTIONS" msgstr "" #: src/celluloid-application.c:583 msgid "Set the window role" msgstr "" #: src/celluloid-application.c:591 msgid "Don't connect to an already-running instance" msgstr "" #: src/celluloid-control-box.c:362 msgid "Pause" msgstr "" #: src/celluloid-control-box.c:362 src/celluloid-control-box.c:565 msgid "Play" msgstr "" #: src/celluloid-control-box.c:568 msgid "Stop" msgstr "" #: src/celluloid-control-box.c:571 msgid "Forward" msgstr "" #: src/celluloid-control-box.c:574 msgid "Rewind" msgstr "" #: src/celluloid-control-box.c:577 msgid "Next Chapter" msgstr "" #: src/celluloid-control-box.c:580 msgid "Previous Chapter" msgstr "" #: src/celluloid-control-box.c:583 msgid "Loop Playlist" msgstr "" #: src/celluloid-control-box.c:586 msgid "Shuffle Playlist" msgstr "" #: src/celluloid-control-box.c:589 src/celluloid-header-bar.c:91 msgid "Toggle Fullscreen" msgstr "" #: src/celluloid-controller.c:992 src/celluloid-view.c:1558 msgid "Error" msgstr "" #: src/celluloid-file-chooser.c:139 src/celluloid-plugins-manager.c:170 msgid "All Files" msgstr "" #: src/celluloid-file-chooser.c:147 msgid "Media Files" msgstr "" #: src/celluloid-file-chooser.c:158 msgid "Audio Files" msgstr "" #: src/celluloid-file-chooser.c:166 msgid "Video Files" msgstr "" #: src/celluloid-file-chooser.c:174 msgid "Image Files" msgstr "" #: src/celluloid-file-chooser.c:184 msgid "Subtitle Files" msgstr "" #: src/celluloid-menu.c:106 msgid "None" msgstr "" #. For simplicity, also dup the default string used when the #. * track has no title. #: src/celluloid-menu.c:121 msgid "Unknown" msgstr "" #: src/celluloid-menu.c:154 msgid "_Load External…" msgstr "" #. Disable the menu item by setting the action to something #. * invalid. #: src/celluloid-menu.c:207 msgid "No disc found" msgstr "" #: src/celluloid-menu.c:235 msgid "_File" msgstr "_Fișier" #: src/celluloid-menu.c:236 src/celluloid-menu.c:318 msgid "_Open…" msgstr "" #: src/celluloid-menu.c:237 src/celluloid-menu.c:319 msgid "Open _Folder…" msgstr "" #: src/celluloid-menu.c:238 src/celluloid-menu.c:320 msgid "Open _Location…" msgstr "" #: src/celluloid-menu.c:239 msgid "Open _Disc…" msgstr "" #: src/celluloid-menu.c:240 src/celluloid-menu.c:290 msgid "_Save Playlist" msgstr "_Salvează Lista Redare" #: src/celluloid-menu.c:241 src/celluloid-menu.c:323 msgid "_New Window" msgstr "" #: src/celluloid-menu.c:242 msgid "_Quit" msgstr "" #: src/celluloid-menu.c:243 msgid "_Edit" msgstr "_Modifică" #: src/celluloid-menu.c:244 src/celluloid-menu.c:296 msgid "_Preferences" msgstr "_Preferințe" #: src/celluloid-menu.c:245 src/celluloid-menu.c:292 msgid "_Video Track" msgstr "" #: src/celluloid-menu.c:246 src/celluloid-menu.c:293 msgid "_Audio Track" msgstr "" #: src/celluloid-menu.c:247 src/celluloid-menu.c:294 msgid "S_ubtitle Track" msgstr "" #: src/celluloid-menu.c:248 msgid "_View" msgstr "_Vizualizare" #: src/celluloid-menu.c:249 src/celluloid-menu.c:287 msgid "_Toggle Controls" msgstr "" #: src/celluloid-menu.c:250 src/celluloid-menu.c:289 msgid "_Toggle Playlist" msgstr "_Afișează Lista Redare" #: src/celluloid-menu.c:251 msgid "_Fullscreen" msgstr "_Tot ecranul" #: src/celluloid-menu.c:252 msgid "_Help" msgstr "_Ajutor" #: src/celluloid-menu.c:253 src/celluloid-menu.c:297 msgid "_Keyboard Shortcuts" msgstr "" #: src/celluloid-menu.c:254 src/celluloid-menu.c:298 msgid "_About Celluloid" msgstr "" #: src/celluloid-menu.c:321 #, fuzzy msgid "Open _Disc" msgstr "Deschide Fișier" #: src/celluloid-mpv.c:240 #, c-format msgid "Playback was terminated abnormally. Reason: %s." msgstr "" #: src/celluloid-open-location-dialog.c:130 msgid "Location:" msgstr "Adresă:" #: src/celluloid-open-location-dialog.c:136 #: src/celluloid-preferences-dialog.c:401 msgid "_Cancel" msgstr "_Anulează" #: src/celluloid-open-location-dialog.c:138 msgid "_Open" msgstr "_Deschide" #: src/celluloid-player.c:550 msgid "Failed to apply one or more MPV options." msgstr "" #: src/celluloid-playlist-widget.c:784 msgid "_Copy Location" msgstr "" #: src/celluloid-playlist-widget.c:785 msgid "_Remove" msgstr "" #: src/celluloid-playlist-widget.c:787 msgid "_Add…" msgstr "" #: src/celluloid-playlist-widget.c:788 msgid "Add _Folder…" msgstr "" #: src/celluloid-playlist-widget.c:789 msgid "Add _Location…" msgstr "" #: src/celluloid-playlist-widget.c:790 msgid "_Shuffle" msgstr "" #: src/celluloid-playlist-widget.c:791 msgid "Loop _File" msgstr "" #: src/celluloid-playlist-widget.c:792 msgid "Loop _Playlist" msgstr "" #: src/celluloid-playlist-widget.c:933 src/celluloid-shortcuts-window.c:136 msgid "Playlist" msgstr "Listă de redare" #: src/celluloid-playlist-widget.c:941 #, fuzzy msgid "Playlist is empty" msgstr "Listă de redare" #: src/celluloid-plugins-manager.c:163 src/celluloid-plugins-manager.c:409 msgid "Add Plugin" msgstr "" #: src/celluloid-plugins-manager.c:175 msgid "Lua Plugins" msgstr "" #: src/celluloid-plugins-manager.c:181 msgid "JavaScript Plugins" msgstr "" #: src/celluloid-plugins-manager.c:186 msgid "C Plugins" msgstr "" #: src/celluloid-plugins-manager.c:334 #, c-format msgid "Failed to copy file from '%s' to '%s'. Reason: %s" msgstr "" #: src/celluloid-plugins-manager.c:385 msgid "No plugins found" msgstr "" #: src/celluloid-plugins-manager-item.c:79 msgid "Remove" msgstr "" #: src/celluloid-plugins-manager-item.c:178 msgid "" "Are you sure you want to remove this script? This action cannot be undone." msgstr "" #: src/celluloid-plugins-manager-item.c:199 #, c-format msgid "Failed to delete file '%s'. Reason: %s" msgstr "" #: src/celluloid-preferences-dialog.c:304 msgid "Automatically resize window to fit video" msgstr "" #: src/celluloid-preferences-dialog.c:307 msgid "Enable client-side decorations" msgstr "Activează decorațiile ferestrelor (CSD)" #: src/celluloid-preferences-dialog.c:310 msgid "Enable dark theme" msgstr "Activează tema întunecată" #: src/celluloid-preferences-dialog.c:313 msgid "Use floating controls in windowed mode" msgstr "" #: src/celluloid-preferences-dialog.c:316 msgid "Autohide mouse cursor in windowed mode" msgstr "" #: src/celluloid-preferences-dialog.c:319 msgid "Use skip buttons for controlling playlist" msgstr "" #: src/celluloid-preferences-dialog.c:322 msgid "Remember last file's location" msgstr "Ține minte adresa ultimului fișier" #: src/celluloid-preferences-dialog.c:327 msgid "Load MPV configuration file" msgstr "Încarcă fișierul de configurare MPV" #: src/celluloid-preferences-dialog.c:330 msgid "MPV configuration file:" msgstr "fișier configurare MPV:" #: src/celluloid-preferences-dialog.c:333 msgid "Load MPV input configuration file" msgstr "Încarcă fișierul MPV de combinații taste" #: src/celluloid-preferences-dialog.c:336 msgid "MPV input configuration file:" msgstr "fișier MPV configurare combinații taste:" #: src/celluloid-preferences-dialog.c:341 msgid "Always open new window" msgstr "" #: src/celluloid-preferences-dialog.c:344 msgid "Ignore playback errors" msgstr "" #: src/celluloid-preferences-dialog.c:347 msgid "Prefetch metadata" msgstr "" #: src/celluloid-preferences-dialog.c:350 msgid "Enable MPRIS support" msgstr "" #: src/celluloid-preferences-dialog.c:353 msgid "Enable media keys support" msgstr "" #: src/celluloid-preferences-dialog.c:356 msgid "Extra MPV options:" msgstr "Extraopțiuni MPV:" #: src/celluloid-preferences-dialog.c:389 msgid "Interface" msgstr "" #: src/celluloid-preferences-dialog.c:392 msgid "Config Files" msgstr "" #: src/celluloid-preferences-dialog.c:395 msgid "Miscellaneous" msgstr "" #: src/celluloid-preferences-dialog.c:398 msgid "Plugins" msgstr "" #: src/celluloid-preferences-dialog.c:403 msgid "_Save" msgstr "_Salvează" #: src/celluloid-preferences-dialog.c:421 msgid "Preferences" msgstr "Preferințe" #: src/celluloid-shortcuts-window.c:57 msgid "Open file" msgstr "" #: src/celluloid-shortcuts-window.c:58 msgid "Open location" msgstr "" #: src/celluloid-shortcuts-window.c:59 msgid "Add file to playlist" msgstr "" #: src/celluloid-shortcuts-window.c:60 msgid "Add location to playlist" msgstr "" #: src/celluloid-shortcuts-window.c:61 msgid "Show preferences dialog" msgstr "" #: src/celluloid-shortcuts-window.c:62 msgid "Toggle controls" msgstr "" #: src/celluloid-shortcuts-window.c:63 msgid "Toggle playlist" msgstr "" #: src/celluloid-shortcuts-window.c:64 msgid "Toggle fullscreen mode" msgstr "" #: src/celluloid-shortcuts-window.c:65 msgid "Leave fullscreen mode" msgstr "" #: src/celluloid-shortcuts-window.c:66 msgid "Toggle OSD states between normal and playback time/duration" msgstr "" #: src/celluloid-shortcuts-window.c:67 msgid "Show filename on the OSD" msgstr "" #: src/celluloid-shortcuts-window.c:68 msgid "Show progress, elapsed time, and duration on the OSD" msgstr "" #: src/celluloid-shortcuts-window.c:71 msgid "Seek backward/forward 5 seconds" msgstr "" #: src/celluloid-shortcuts-window.c:72 msgid "Exact seek backward/forward 1 second" msgstr "" #: src/celluloid-shortcuts-window.c:73 msgid "Seek backward/forward 1 minute" msgstr "" #: src/celluloid-shortcuts-window.c:74 msgid "Exact seek backward/forward 5 seconds" msgstr "" #: src/celluloid-shortcuts-window.c:75 msgid "Seek to previous/next subtitle" msgstr "" #: src/celluloid-shortcuts-window.c:76 msgid "Step backward/forward a single frame" msgstr "" #: src/celluloid-shortcuts-window.c:77 msgid "Seek to the beginning of the previous/next chapter" msgstr "" #: src/celluloid-shortcuts-window.c:80 msgid "Decrease/increase playback speed by 10%" msgstr "" #: src/celluloid-shortcuts-window.c:81 msgid "Halve/double current playback speed" msgstr "" #: src/celluloid-shortcuts-window.c:82 msgid "Reset playback speed to normal" msgstr "" #: src/celluloid-shortcuts-window.c:83 msgid "Go backward/forward in the playlist" msgstr "" #: src/celluloid-shortcuts-window.c:84 msgid "Remove selected playlist item" msgstr "" #: src/celluloid-shortcuts-window.c:85 msgid "Save playlist" msgstr "" #: src/celluloid-shortcuts-window.c:86 msgid "Set/clear A-B loop points" msgstr "" #: src/celluloid-shortcuts-window.c:87 msgid "Toggle infinite looping" msgstr "" #: src/celluloid-shortcuts-window.c:88 msgid "Pause or unpause" msgstr "" #: src/celluloid-shortcuts-window.c:89 msgid "Quit" msgstr "" #: src/celluloid-shortcuts-window.c:90 msgid "Save current playback position and quit" msgstr "" #: src/celluloid-shortcuts-window.c:93 msgid "Enter search mode" msgstr "" #: src/celluloid-shortcuts-window.c:94 msgid "Jump to next match" msgstr "" #: src/celluloid-shortcuts-window.c:95 msgid "Jump to previous match" msgstr "" #: src/celluloid-shortcuts-window.c:96 msgid "Exit search mode" msgstr "" #: src/celluloid-shortcuts-window.c:99 msgid "Cycle through audio tracks" msgstr "" #: src/celluloid-shortcuts-window.c:100 src/celluloid-shortcuts-window.c:101 msgid "Decrease/increase volume" msgstr "" #: src/celluloid-shortcuts-window.c:102 msgid "Mute or unmute" msgstr "" #: src/celluloid-shortcuts-window.c:103 msgid "Adjust audio delay by +/- 0.1 seconds" msgstr "" #: src/celluloid-shortcuts-window.c:106 msgid "Toggle subtitle visibility" msgstr "" #: src/celluloid-shortcuts-window.c:107 msgid "Cycle through available subtitles" msgstr "" #: src/celluloid-shortcuts-window.c:108 msgid "Adjust subtitle delay by +/- 0.1 seconds" msgstr "" #: src/celluloid-shortcuts-window.c:109 msgid "Toggle SSA/ASS subtitles style override" msgstr "" #: src/celluloid-shortcuts-window.c:110 msgid "Move subtitles up/down" msgstr "" #: src/celluloid-shortcuts-window.c:111 msgid "Toggle VSFilter aspect compatibility mode" msgstr "" #: src/celluloid-shortcuts-window.c:114 msgid "Cycle through video tracks" msgstr "" #: src/celluloid-shortcuts-window.c:115 msgid "Decrease/increase pan-and-scan range" msgstr "" #: src/celluloid-shortcuts-window.c:116 msgid "Take a screenshot" msgstr "" #: src/celluloid-shortcuts-window.c:117 msgid "Take a screenshot, without subtitles" msgstr "" #: src/celluloid-shortcuts-window.c:118 msgid "Take a screenshot, as the window shows it" msgstr "" #: src/celluloid-shortcuts-window.c:119 msgid "Resize video to half its original size" msgstr "" #: src/celluloid-shortcuts-window.c:120 msgid "Resize video to its original size" msgstr "" #: src/celluloid-shortcuts-window.c:121 msgid "Resize video to double its original size" msgstr "" #: src/celluloid-shortcuts-window.c:122 msgid "Adjust contrast" msgstr "" #: src/celluloid-shortcuts-window.c:123 msgid "Adjust brightness" msgstr "" #: src/celluloid-shortcuts-window.c:124 msgid "Adjust gamma" msgstr "" #: src/celluloid-shortcuts-window.c:125 msgid "Adjust saturation" msgstr "" #: src/celluloid-shortcuts-window.c:126 msgid "Activate or deactivate deinterlacer" msgstr "" #: src/celluloid-shortcuts-window.c:127 msgid "Cycle aspect ratio override" msgstr "" #: src/celluloid-shortcuts-window.c:130 msgid "User Interface" msgstr "" #: src/celluloid-shortcuts-window.c:131 msgid "Video" msgstr "" #: src/celluloid-shortcuts-window.c:132 msgid "Audio" msgstr "" #: src/celluloid-shortcuts-window.c:133 msgid "Subtitle" msgstr "" #: src/celluloid-shortcuts-window.c:134 msgid "Playback" msgstr "" #: src/celluloid-shortcuts-window.c:135 msgid "Seeking" msgstr "" #: src/celluloid-view.c:728 msgid "Load Audio Track…" msgstr "" #: src/celluloid-view.c:732 msgid "Load Video Track…" msgstr "" #: src/celluloid-view.c:736 msgid "Load Subtitle Track…" msgstr "" #: src/celluloid-view.c:901 msgid "" "Enabling or disabling client-side decorations requires restarting to take " "effect." msgstr "" #: src/celluloid-view.c:1444 msgid "Add Folder to Playlist" msgstr "" #: src/celluloid-view.c:1444 msgid "Open Folder" msgstr "" #: src/celluloid-view.c:1449 msgid "Add File to Playlist" msgstr "Adaugă un fișier Listei de Redare" #: src/celluloid-view.c:1449 msgid "Open File" msgstr "Deschide Fișier" #: src/celluloid-view.c:1485 msgid "Add Location to Playlist" msgstr "" #: src/celluloid-view.c:1486 msgid "Open Location" msgstr "Deschide Adresa" #: src/celluloid-view.c:1532 msgid "Save Playlist" msgstr "Salvează Lista de Redare" #: src/celluloid-view.c:1598 msgid "A GTK frontend for MPV" msgstr "O interfață GTK pentru MPV" #: src/celluloid-view.c:1608 msgid "translator-credits" msgstr "Robert Datcu" celluloid-0.20/po/ru.po000066400000000000000000001137031373135401300150200ustar00rootroot00000000000000# Pavel Nikulin , 2019. #zanata # gnome-mpv , 2019. #zanata # gnome-mpv , 2020. #zanata msgid "" msgstr "" "Project-Id-Version: 0.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-02-20 20:48+0700\n" "PO-Revision-Date: 2020-06-23 10:51-0400\n" "Last-Translator: Copied by Zanata \n" "Language-Team: Russian\n" "Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)\n" "X-Generator: Zanata 4.6.2\n" #: data/io.github.celluloid_player.Celluloid.gschema.xml:11 msgid "" "Whether the settings has already been migrated from the previous version" msgstr "Перенос (миграция) пользовательских настроек из предыдущей версии" #: data/io.github.celluloid_player.Celluloid.gschema.xml:17 #, fuzzy msgid "Whether or not to automatically resize window to fit video" msgstr "Автоматически скрывать курсор мыши в оконном режиме" #: data/io.github.celluloid_player.Celluloid.gschema.xml:23 msgid "Enable or disable dark theme" msgstr "Включить или отключить тёмную тему" #: data/io.github.celluloid_player.Celluloid.gschema.xml:29 msgid "Enable or disable client-side decorations" msgstr "Включить или отключить декорирование на стороне клиента" #: data/io.github.celluloid_player.Celluloid.gschema.xml:35 msgid "Whether or not to use floating controls in windowed mode" msgstr "Использовать плавающие элементы управления в оконном режиме" #: data/io.github.celluloid_player.Celluloid.gschema.xml:41 msgid "Whether or not to autohide mouse cursor in windowed mode" msgstr "Автоматически скрывать курсор мыши в оконном режиме" #: data/io.github.celluloid_player.Celluloid.gschema.xml:47 msgid "The minimum cursor speed at which floating controls will be unhidden." msgstr "" "Минимальная скорость курсора при которой будет показана панель управления." #: data/io.github.celluloid_player.Celluloid.gschema.xml:54 msgid "" "The size of the dead zone in which cursor movement will not cause the " "controls to be shown." msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:60 msgid "Whether or not to use skip buttons for controlling playlist" msgstr "Использовать кнопки пропуска для управления списком воспроизведения" #: data/io.github.celluloid_player.Celluloid.gschema.xml:66 msgid "" "Whether or not to make file chooser dialog remember last folder accessed" msgstr "Запомнить или нет последнее расположение в диалоге открытия файла" #: data/io.github.celluloid_player.Celluloid.gschema.xml:72 msgid "Whether or not to create new windows when there is already an instance" msgstr "Создавать новые окна при наличии открытого экземпляря" #: data/io.github.celluloid_player.Celluloid.gschema.xml:78 #: src/celluloid-application.c:575 msgid "Options to pass to mpv" msgstr "Перейти к параметрам MPV" #: data/io.github.celluloid_player.Celluloid.gschema.xml:84 msgid "Path to mpv configuration file" msgstr "Путь к файлу конфигурации MPV" #: data/io.github.celluloid_player.Celluloid.gschema.xml:90 msgid "Load or don't load mpv configuration file" msgstr "Загрузить файл конфигурации MPV" #: data/io.github.celluloid_player.Celluloid.gschema.xml:96 msgid "Path to mpv input configuration file" msgstr "Путь к файлу конфигурации ввода MPV" #: data/io.github.celluloid_player.Celluloid.gschema.xml:102 msgid "Load or don't load mpv input configuration file" msgstr "Загрузить файл конфигурации ввода MPV" #: data/io.github.celluloid_player.Celluloid.gschema.xml:108 msgid "Whether or not to enable MPRIS support" msgstr "Включить поддержку MPRIS" #: data/io.github.celluloid_player.Celluloid.gschema.xml:114 msgid "" "Whether or not to enable GNOME-Settings-Daemon-based media keys support" msgstr "" "Включить поддержку мультимедийных клавиш на основе GNOME-Settings-Daemon" #: data/io.github.celluloid_player.Celluloid.gschema.xml:120 msgid "Whether or not to prefetch metadata for non-current playlist entries" msgstr "" "Предварительно подгружать метаданные для не текущих записей списка " "воспроизведения" #: data/io.github.celluloid_player.Celluloid.gschema.xml:126 msgid "" "Whether or not to display an error message when playback of a file ends with" " an error" msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:132 msgid "Whether or not to inhibit session idling when something is playing" msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:142 msgid "Width of the window" msgstr "Ширина окна" #: data/io.github.celluloid_player.Celluloid.gschema.xml:148 msgid "Height of the window" msgstr "Высота окна" #: data/io.github.celluloid_player.Celluloid.gschema.xml:154 msgid "Whether or not the window is maximized" msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:161 msgid "Volume of player" msgstr "Громкость плеера" #: data/io.github.celluloid_player.Celluloid.gschema.xml:167 msgid "Whether or not to loop when the end of playlist is reached" msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:173 msgid "Width of the playlist" msgstr "Ширина списка воспроизведения" #: data/io.github.celluloid_player.Celluloid.gschema.xml:179 msgid "Show or not show the controls" msgstr "Показать или не показывать элементы управления" #: data/io.github.celluloid_player.Celluloid.gschema.xml:185 msgid "Show or not show the playlist" msgstr "Показать или скрыть список воспроизведения" #: data/io.github.celluloid_player.Celluloid.gschema.xml:191 msgid "URI of the last folder accessed" msgstr "Адрес последнего открытого файла" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:7 #: data/io.github.celluloid_player.Celluloid.desktop.in:4 #: src/celluloid-application.c:451 msgid "Celluloid" msgstr "Celluloid" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:8 msgid "GTK+ frontend for mpv" msgstr "GTK+ интерфейс для MPV" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:16 msgid "" "Celluloid is a simple media player that can play virtually all video and " "audio formats. It supports playlists and MPRIS2 media player controls. The " "design of Celluloid follows the GNOME Human Interface Guidelines, but can " "also be adapted for other systems that don't use client-side decorations " "(CSD). It is based on the mpv library and GTK." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:23 msgid "Features:" msgstr "Возможности:" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:25 msgid "Drag and drop playlist" msgstr "Поддержка drag-and-drop" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:26 msgid "Loading external mpv configuration files" msgstr "Загрузка внешних конфигурационных файлов MPV" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:27 msgid "MPRIS2 D-Bus interface" msgstr "Интерфейс MPRIS2 D-Bus" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:30 msgid "The Celluloid Developers" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:34 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:87 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:117 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:156 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:187 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:215 msgid "This release contains the following changes:" msgstr "Этот выпуск содержит следующие изменения:" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:38 msgid "" "Adjust the range of volume button based on the value of the volume-max " "property." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:42 msgid "Retain window maximization state across sessions." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:45 msgid "Retain loop state across sessions." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:48 msgid "Implement playlist search." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:51 msgid "Update the list of shortcuts in Keyboard Shortcuts dialog." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:54 msgid "Correctly handle quotes and escape sequences in extra mpv options." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:57 msgid "Display time at cursor position when hovering the seek bar." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:60 msgid "" "Deprecate '--mpv-options'. Options starting with '--mpv-' can be used to set" " mpv options instead. For example, passing '--mpv-vf=vflip' to Celluloid is " "equivalent to passing '--vf=vflip' to mpv." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:66 msgid "" "Add support for configuring dead zone, an area in which mouse movement will " "not cause controls to be shown." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:70 msgid "Make window sizing work correctly with HiDPI displays." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:73 msgid "Add Finnish translation by Kimmo Kujansuu." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:76 msgid "Add Slovenian translation by @bertronika." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:80 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:110 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:149 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:180 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:208 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:236 msgid "This listing is incomplete. See git log for complete changelog." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:91 msgid "Add Persian translation by @danialbehzadi" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:94 msgid "Add Ukranian translation by @vl-nix" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:97 msgid "" "Add support for showing/hiding window decorations using the mpv option " "--border" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:100 msgid "Add menu item for opening discs" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:103 msgid "Block cursor autohide when volume popup is open in windowed mode" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:106 msgid "Fix crash with mpv 0.30" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:121 msgid "Rename project to Celluloid" msgstr "Проект переименован в Celluloid" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:124 msgid "Add Turkish translation by @TeknoMobil" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:127 msgid "Add Esperanto translation by @F3nd0" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:130 msgid "Migrate from opengl-cb to the new render API" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:133 msgid "Handle numpad keybindings" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:136 msgid "Handle unicode keybindings" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:139 msgid "Forward media key events to mpv" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:142 msgid "" "Add dconf key for controlling cursor speed at which controls are unhidden" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:145 msgid "Add option for suppressing playback errors" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:160 msgid "Split up the General tab in the preferences dialog" msgstr "Разделите вкладку Общие в диалоге настроек" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:163 msgid "Improve behavior when toggling playlist under tiling window managers" msgstr "" "Улучшено поведение при переключении плейлиста под тайловыми оконными " "менеджерами" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:166 msgid "Move app menu items to primary menu" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:169 msgid "Use separate MPRIS DBus connection for each window" msgstr "Использовать отдельное MPRIS DBus соединение для каждого окна" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:172 msgid "Add support for MPRIS property LoopStatus" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:175 msgid "" "Add option --mpv-options for setting arbitrary mpv options from the command-" "line" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:191 msgid "Set default screenshot directory to XDG_PICTURES_DIR" msgstr "Установить каталог по умолчанию для скриншотов в XDG_PICTURES_DIR" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:194 msgid "" "Improve handling of --window-scale, --autofit, --autofit-larger, and " "--autofit-smaller" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:198 msgid "Add command line option for setting WM_ROLE" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:201 msgid "Add context menu item for removing playlist items" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:204 msgid "Add context menu item for copying location of playlist items" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:219 msgid "" "Add option to make skip buttons change playlist entries rather than chapters" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:223 msgid "Make the file chooser accept non-local locations" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:226 msgid "Add right-click menu entry for looping a single file" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:229 msgid "Handle property change events for fullscreen and window-scale" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:232 msgid "Add option to autohide mouse cursor in windowed mode" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:246 msgid "The main window showing the application in action" msgstr "Главное окно, показывающее приложение в действии" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:250 msgid "The main window with CSD disabled" msgstr "Главное окно с отключённым CSD" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:254 msgid "The main window with playlist open" msgstr "Главное окно с открытым списком воспроизведения" #: data/io.github.celluloid_player.Celluloid.desktop.in:5 msgid "Multimedia Player" msgstr "" #: data/io.github.celluloid_player.Celluloid.desktop.in:6 msgid "Play movies and videos" msgstr "" #. Translators: Search terms to find this application. Don't translate the #. semicolons! The list MUST also end with a semicolon! #: data/io.github.celluloid_player.Celluloid.desktop.in:17 msgid "Video;Movie;Film;Clip;Series;Player;DVD;TV;Disc;Album;Music;GNOME;mpv;" msgstr "" #: data/io.github.celluloid_player.Celluloid.desktop.in:23 msgid "New Window" msgstr "Новое окно" #: src/celluloid-application.c:495 msgid "Playing" msgstr "Воспроизводится" #: src/celluloid-application.c:551 msgid "Show release version" msgstr "Показать версию релиза" #: src/celluloid-application.c:559 msgid "Enqueue" msgstr "Поставить в очередь" #: src/celluloid-application.c:567 msgid "Create a new window" msgstr "Создать новое окно" #: src/celluloid-application.c:576 msgid "OPTIONS" msgstr "ПАРАМЕТРЫ" #: src/celluloid-application.c:583 msgid "Set the window role" msgstr "Установите роль окна" #: src/celluloid-application.c:591 msgid "Don't connect to an already-running instance" msgstr "Не подключаться к уже работающему экземпляру" #: src/celluloid-control-box.c:362 msgid "Pause" msgstr "Приостановить" #: src/celluloid-control-box.c:362 src/celluloid-control-box.c:565 msgid "Play" msgstr "Воспроизведение" #: src/celluloid-control-box.c:568 msgid "Stop" msgstr "Остановить" #: src/celluloid-control-box.c:571 msgid "Forward" msgstr "Перемотать вперёд" #: src/celluloid-control-box.c:574 msgid "Rewind" msgstr "Перемотать назад" #: src/celluloid-control-box.c:577 msgid "Next Chapter" msgstr "Следующая глава" #: src/celluloid-control-box.c:580 msgid "Previous Chapter" msgstr "Предыдущая глава" #: src/celluloid-control-box.c:583 msgid "Loop Playlist" msgstr "Режим повтора" #: src/celluloid-control-box.c:586 msgid "Shuffle Playlist" msgstr "" #: src/celluloid-control-box.c:589 src/celluloid-header-bar.c:91 msgid "Toggle Fullscreen" msgstr "Переход в полноэкранный режим и обратно" #: src/celluloid-controller.c:992 src/celluloid-view.c:1558 msgid "Error" msgstr "Ошибка" #: src/celluloid-file-chooser.c:139 src/celluloid-plugins-manager.c:170 msgid "All Files" msgstr "Все файлы" #: src/celluloid-file-chooser.c:147 msgid "Media Files" msgstr "Медиафайлы" #: src/celluloid-file-chooser.c:158 msgid "Audio Files" msgstr "Аудиофайлы" #: src/celluloid-file-chooser.c:166 msgid "Video Files" msgstr "Видеофайлы" #: src/celluloid-file-chooser.c:174 msgid "Image Files" msgstr "Файлы изображений" #: src/celluloid-file-chooser.c:184 msgid "Subtitle Files" msgstr "Файлы субтитров" #: src/celluloid-menu.c:106 msgid "None" msgstr "Ничего" #. For simplicity, also dup the default string used when the #. * track has no title. #: src/celluloid-menu.c:121 msgid "Unknown" msgstr "Неизвестный" #: src/celluloid-menu.c:154 msgid "_Load External…" msgstr "Заг_рузить внешние…" #. Disable the menu item by setting the action to something #. * invalid. #: src/celluloid-menu.c:207 #, fuzzy msgid "No disc found" msgstr "Модули не найдены" #: src/celluloid-menu.c:235 msgid "_File" msgstr "_Файл" #: src/celluloid-menu.c:236 src/celluloid-menu.c:318 msgid "_Open…" msgstr "От_крыть..." #: src/celluloid-menu.c:237 src/celluloid-menu.c:319 msgid "Open _Folder…" msgstr "" #: src/celluloid-menu.c:238 src/celluloid-menu.c:320 msgid "Open _Location…" msgstr "От_крыть расположение..." #: src/celluloid-menu.c:239 #, fuzzy msgid "Open _Disc…" msgstr "От_крыть расположение..." #: src/celluloid-menu.c:240 src/celluloid-menu.c:290 msgid "_Save Playlist" msgstr "_Сохранить список воспроизведения" #: src/celluloid-menu.c:241 src/celluloid-menu.c:323 msgid "_New Window" msgstr "Но_вое окно" #: src/celluloid-menu.c:242 #, fuzzy msgid "_Quit" msgstr "Завершить" #: src/celluloid-menu.c:243 msgid "_Edit" msgstr "_Правка" #: src/celluloid-menu.c:244 src/celluloid-menu.c:296 msgid "_Preferences" msgstr "Пара_метры" #: src/celluloid-menu.c:245 src/celluloid-menu.c:292 msgid "_Video Track" msgstr "В_идео дорожка" #: src/celluloid-menu.c:246 src/celluloid-menu.c:293 msgid "_Audio Track" msgstr "_Аудио дорожка" #: src/celluloid-menu.c:247 src/celluloid-menu.c:294 msgid "S_ubtitle Track" msgstr "Дорожка с_убтитров" #: src/celluloid-menu.c:248 msgid "_View" msgstr "В_ид" #: src/celluloid-menu.c:249 src/celluloid-menu.c:287 msgid "_Toggle Controls" msgstr "_Показать/Скрыть элементы управления" #: src/celluloid-menu.c:250 src/celluloid-menu.c:289 msgid "_Toggle Playlist" msgstr "_Показать/Скрыть список воспроизведения" #: src/celluloid-menu.c:251 msgid "_Fullscreen" msgstr "_Полноэкранный режим" #: src/celluloid-menu.c:252 msgid "_Help" msgstr "_Справка" #: src/celluloid-menu.c:253 src/celluloid-menu.c:297 msgid "_Keyboard Shortcuts" msgstr "_Комбинации клавиш" #: src/celluloid-menu.c:254 src/celluloid-menu.c:298 msgid "_About Celluloid" msgstr "_О Celluloid" #: src/celluloid-menu.c:321 #, fuzzy msgid "Open _Disc" msgstr "Открыть файл" #: src/celluloid-mpv.c:240 #, c-format msgid "Playback was terminated abnormally. Reason: %s." msgstr "Воспроизведение было прекращено. Причина: %s." #: src/celluloid-open-location-dialog.c:130 msgid "Location:" msgstr "Расположение:" #: src/celluloid-open-location-dialog.c:136 #: src/celluloid-preferences-dialog.c:401 msgid "_Cancel" msgstr "_Отмена" #: src/celluloid-open-location-dialog.c:138 msgid "_Open" msgstr "_Открыть" #: src/celluloid-player.c:550 msgid "Failed to apply one or more MPV options." msgstr "Не удалось применить один или несколько параметров MPV." #: src/celluloid-playlist-widget.c:784 msgid "_Copy Location" msgstr "_Копировать расположение" #: src/celluloid-playlist-widget.c:785 msgid "_Remove" msgstr "_Удалить" #: src/celluloid-playlist-widget.c:787 msgid "_Add…" msgstr "_Добавить…" #: src/celluloid-playlist-widget.c:788 msgid "Add _Folder…" msgstr "" #: src/celluloid-playlist-widget.c:789 msgid "Add _Location…" msgstr "Доб_авить расположение…" #: src/celluloid-playlist-widget.c:790 msgid "_Shuffle" msgstr "_В случайном порядке" #: src/celluloid-playlist-widget.c:791 msgid "Loop _File" msgstr "Повторять _файл" #: src/celluloid-playlist-widget.c:792 msgid "Loop _Playlist" msgstr "Повторять _список воспроизведения" #: src/celluloid-playlist-widget.c:933 src/celluloid-shortcuts-window.c:136 msgid "Playlist" msgstr "Список воспроизведения" #: src/celluloid-playlist-widget.c:941 #, fuzzy msgid "Playlist is empty" msgstr "Список воспроизведения" #: src/celluloid-plugins-manager.c:163 src/celluloid-plugins-manager.c:409 msgid "Add Plugin" msgstr "Добавить модуль" #: src/celluloid-plugins-manager.c:175 msgid "Lua Plugins" msgstr "Lua модули" #: src/celluloid-plugins-manager.c:181 msgid "JavaScript Plugins" msgstr "JavaScript модули" #: src/celluloid-plugins-manager.c:186 msgid "C Plugins" msgstr "С модули" #: src/celluloid-plugins-manager.c:334 #, c-format msgid "Failed to copy file from '%s' to '%s'. Reason: %s" msgstr "Не удалось скопировать файл из '%s' в '%s'. Причина: %s" #: src/celluloid-plugins-manager.c:385 msgid "No plugins found" msgstr "Модули не найдены" #: src/celluloid-plugins-manager-item.c:79 msgid "Remove" msgstr "Удалить" #: src/celluloid-plugins-manager-item.c:178 msgid "" "Are you sure you want to remove this script? This action cannot be undone." msgstr "Вы уверены, что хотите удалить этот скрипт? Это действие необратимо." #: src/celluloid-plugins-manager-item.c:199 #, c-format msgid "Failed to delete file '%s'. Reason: %s" msgstr "Не удалось удалить файл '%s'. Причина: %s" #: src/celluloid-preferences-dialog.c:304 msgid "Automatically resize window to fit video" msgstr "" #: src/celluloid-preferences-dialog.c:307 msgid "Enable client-side decorations" msgstr "Включить декорирование на стороне клиента" #: src/celluloid-preferences-dialog.c:310 msgid "Enable dark theme" msgstr "Использовать тёмную тему" #: src/celluloid-preferences-dialog.c:313 msgid "Use floating controls in windowed mode" msgstr "Использовать плавающие элементы управления в оконном режиме" #: src/celluloid-preferences-dialog.c:316 msgid "Autohide mouse cursor in windowed mode" msgstr "Автоматически скрывать курсор мыши в оконном режиме" #: src/celluloid-preferences-dialog.c:319 msgid "Use skip buttons for controlling playlist" msgstr "Использовать кнопки пропуска для управления списком воспроизведения" #: src/celluloid-preferences-dialog.c:322 msgid "Remember last file's location" msgstr "Запомнить последнее расположение файла(ов)" #: src/celluloid-preferences-dialog.c:327 msgid "Load MPV configuration file" msgstr "Загрузить файл конфигурации MPV" #: src/celluloid-preferences-dialog.c:330 msgid "MPV configuration file:" msgstr "Файл конфигурации MPV:" #: src/celluloid-preferences-dialog.c:333 msgid "Load MPV input configuration file" msgstr "Загрузить файл конфигурации ввода MPV" #: src/celluloid-preferences-dialog.c:336 msgid "MPV input configuration file:" msgstr "Файл конфигурации ввода MPV:" #: src/celluloid-preferences-dialog.c:341 msgid "Always open new window" msgstr "Всегда открывать новое окно" #: src/celluloid-preferences-dialog.c:344 msgid "Ignore playback errors" msgstr "" #: src/celluloid-preferences-dialog.c:347 msgid "Prefetch metadata" msgstr "Предварительная выборка метаданных" #: src/celluloid-preferences-dialog.c:350 msgid "Enable MPRIS support" msgstr "Включить поддержку MPRIS" #: src/celluloid-preferences-dialog.c:353 msgid "Enable media keys support" msgstr "Включить поддержку мультимедийных клавиш" #: src/celluloid-preferences-dialog.c:356 msgid "Extra MPV options:" msgstr "Дополнительные параметры MPV:" #: src/celluloid-preferences-dialog.c:389 msgid "Interface" msgstr "Интерфейс" #: src/celluloid-preferences-dialog.c:392 msgid "Config Files" msgstr "Файлы настроек" #: src/celluloid-preferences-dialog.c:395 msgid "Miscellaneous" msgstr "Разное" #: src/celluloid-preferences-dialog.c:398 msgid "Plugins" msgstr "Модули" #: src/celluloid-preferences-dialog.c:403 msgid "_Save" msgstr "_Сохранить" #: src/celluloid-preferences-dialog.c:421 msgid "Preferences" msgstr "Параметры" #: src/celluloid-shortcuts-window.c:57 msgid "Open file" msgstr "Открыть файл" #: src/celluloid-shortcuts-window.c:58 msgid "Open location" msgstr "Открыть расположение" #: src/celluloid-shortcuts-window.c:59 msgid "Add file to playlist" msgstr "Добавить файл в список воспроизведения" #: src/celluloid-shortcuts-window.c:60 msgid "Add location to playlist" msgstr "Добавить расположение в список воспроизведения" #: src/celluloid-shortcuts-window.c:61 msgid "Show preferences dialog" msgstr "Показать параметры" #: src/celluloid-shortcuts-window.c:62 msgid "Toggle controls" msgstr "Показать/Скрыть элементы управления" #: src/celluloid-shortcuts-window.c:63 msgid "Toggle playlist" msgstr "Показать/Скрыть список воспроизведения" #: src/celluloid-shortcuts-window.c:64 msgid "Toggle fullscreen mode" msgstr "Полноэкранный режим" #: src/celluloid-shortcuts-window.c:65 msgid "Leave fullscreen mode" msgstr "Выйти из полноэкранного режима" #: src/celluloid-shortcuts-window.c:66 msgid "Toggle OSD states between normal and playback time/duration" msgstr "Показать время воспроизведения/продолжительность" #: src/celluloid-shortcuts-window.c:67 msgid "Show filename on the OSD" msgstr "Показывть имя файла" #: src/celluloid-shortcuts-window.c:68 msgid "Show progress, elapsed time, and duration on the OSD" msgstr "Показывать прогресс, прошедшее время и продолжительность" #: src/celluloid-shortcuts-window.c:71 msgid "Seek backward/forward 5 seconds" msgstr "Переход назад/вперёд на 5 секунд" #: src/celluloid-shortcuts-window.c:72 msgid "Exact seek backward/forward 1 second" msgstr "Точный переход назад/вперёд на 1 секунду" #: src/celluloid-shortcuts-window.c:73 msgid "Seek backward/forward 1 minute" msgstr "Переход назад/вперёд на 1 минуту" #: src/celluloid-shortcuts-window.c:74 msgid "Exact seek backward/forward 5 seconds" msgstr "Точный переход назад/вперёд на 5 секунд" #: src/celluloid-shortcuts-window.c:75 msgid "Seek to previous/next subtitle" msgstr "Переход к предыдущему/следующему субтитру" #: src/celluloid-shortcuts-window.c:76 msgid "Step backward/forward a single frame" msgstr "Шаг назад/вперёд на один кадр" #: src/celluloid-shortcuts-window.c:77 msgid "Seek to the beginning of the previous/next chapter" msgstr "Переход к предыдущей/следующей главе" #: src/celluloid-shortcuts-window.c:80 msgid "Decrease/increase playback speed by 10%" msgstr "Уменьшить/увеличить скорость воспроизведения на 10%" #: src/celluloid-shortcuts-window.c:81 msgid "Halve/double current playback speed" msgstr "Сократить вдвое/удвоить текущую скорость воспроизведения" #: src/celluloid-shortcuts-window.c:82 msgid "Reset playback speed to normal" msgstr "Сбросить скорость воспроизведения на нормальную" #: src/celluloid-shortcuts-window.c:83 msgid "Go backward/forward in the playlist" msgstr "Назад/вперёд по списку воспроизведения" #: src/celluloid-shortcuts-window.c:84 msgid "Remove selected playlist item" msgstr "Удалить выбранный файл из списка воспроизведения" #: src/celluloid-shortcuts-window.c:85 msgid "Save playlist" msgstr "Сохранить список воспроизведения" #: src/celluloid-shortcuts-window.c:86 msgid "Set/clear A-B loop points" msgstr "Установить/очистить A-B точки цикла" #: src/celluloid-shortcuts-window.c:87 msgid "Toggle infinite looping" msgstr "Переключить бесконечный повтор" #: src/celluloid-shortcuts-window.c:88 msgid "Pause or unpause" msgstr "Приостановить или возобновить" #: src/celluloid-shortcuts-window.c:89 msgid "Quit" msgstr "Завершить" #: src/celluloid-shortcuts-window.c:90 msgid "Save current playback position and quit" msgstr "Сохранить текущую позицию воспроизведения и выйти" #: src/celluloid-shortcuts-window.c:93 msgid "Enter search mode" msgstr "" #: src/celluloid-shortcuts-window.c:94 msgid "Jump to next match" msgstr "" #: src/celluloid-shortcuts-window.c:95 msgid "Jump to previous match" msgstr "" #: src/celluloid-shortcuts-window.c:96 msgid "Exit search mode" msgstr "" #: src/celluloid-shortcuts-window.c:99 msgid "Cycle through audio tracks" msgstr "Циклически доступные аудио дорожки" #: src/celluloid-shortcuts-window.c:100 src/celluloid-shortcuts-window.c:101 msgid "Decrease/increase volume" msgstr "Уменьшить/увеличить громкость" #: src/celluloid-shortcuts-window.c:102 msgid "Mute or unmute" msgstr "Отключить или включить звук" #: src/celluloid-shortcuts-window.c:103 msgid "Adjust audio delay by +/- 0.1 seconds" msgstr "Изменить задержку аудио на + / - 0,1 секунды" #: src/celluloid-shortcuts-window.c:106 msgid "Toggle subtitle visibility" msgstr "Переключить видимости субтитров" #: src/celluloid-shortcuts-window.c:107 msgid "Cycle through available subtitles" msgstr "Циклически переключить доступные субтитры" #: src/celluloid-shortcuts-window.c:108 msgid "Adjust subtitle delay by +/- 0.1 seconds" msgstr "Изменить задержку субтитров на + / - 0,1 секунды" #: src/celluloid-shortcuts-window.c:109 msgid "Toggle SSA/ASS subtitles style override" msgstr "Переключить стиль субтитров SSA/ASS" #: src/celluloid-shortcuts-window.c:110 msgid "Move subtitles up/down" msgstr "Переместить субтитры вверх/вниз" #: src/celluloid-shortcuts-window.c:111 msgid "Toggle VSFilter aspect compatibility mode" msgstr "" #: src/celluloid-shortcuts-window.c:114 msgid "Cycle through video tracks" msgstr "Циклически доступные видео дорожки" #: src/celluloid-shortcuts-window.c:115 msgid "Decrease/increase pan-and-scan range" msgstr "Уменьшает/увеличивает диапазон панорамирования и сканирования" #: src/celluloid-shortcuts-window.c:116 msgid "Take a screenshot" msgstr "Сделать скриншот" #: src/celluloid-shortcuts-window.c:117 msgid "Take a screenshot, without subtitles" msgstr "Сделать скриншот, без субтитров" #: src/celluloid-shortcuts-window.c:118 msgid "Take a screenshot, as the window shows it" msgstr "Сделать скриншот, с субтитрами и OSD, масштабированием" #: src/celluloid-shortcuts-window.c:119 msgid "Resize video to half its original size" msgstr "Изменить размер видео до половины своего исходного размера" #: src/celluloid-shortcuts-window.c:120 msgid "Resize video to its original size" msgstr "Изменить размер видео до исходного размера" #: src/celluloid-shortcuts-window.c:121 msgid "Resize video to double its original size" msgstr "Удвоить размер видео относительно оригинального размера" #: src/celluloid-shortcuts-window.c:122 msgid "Adjust contrast" msgstr "Регулировка контрастности" #: src/celluloid-shortcuts-window.c:123 msgid "Adjust brightness" msgstr "Регулировка яркости" #: src/celluloid-shortcuts-window.c:124 msgid "Adjust gamma" msgstr "Регулировка гаммы" #: src/celluloid-shortcuts-window.c:125 msgid "Adjust saturation" msgstr "Регулировка насыщенности" #: src/celluloid-shortcuts-window.c:126 msgid "Activate or deactivate deinterlacer" msgstr "Включить или отключить деинтерлейсинг" #: src/celluloid-shortcuts-window.c:127 msgid "Cycle aspect ratio override" msgstr "Цикл коррекции соотношения сторон" #: src/celluloid-shortcuts-window.c:130 msgid "User Interface" msgstr "Пользовательский интерфейс" #: src/celluloid-shortcuts-window.c:131 msgid "Video" msgstr "Видео" #: src/celluloid-shortcuts-window.c:132 msgid "Audio" msgstr "Аудио" #: src/celluloid-shortcuts-window.c:133 msgid "Subtitle" msgstr "Субтитры" #: src/celluloid-shortcuts-window.c:134 msgid "Playback" msgstr "Воспроизведение" #: src/celluloid-shortcuts-window.c:135 msgid "Seeking" msgstr "Переход" #: src/celluloid-view.c:728 msgid "Load Audio Track…" msgstr "Загрузить звуковую дорожку…" #: src/celluloid-view.c:732 msgid "Load Video Track…" msgstr "" #: src/celluloid-view.c:736 msgid "Load Subtitle Track…" msgstr "Загрузить субтитры…" #: src/celluloid-view.c:901 msgid "" "Enabling or disabling client-side decorations requires restarting to take " "effect." msgstr "" "Включение или отключение декораций на стороне клиента требует перезапуска, " "чтобы изменения вступили в силу." #: src/celluloid-view.c:1444 msgid "Add Folder to Playlist" msgstr "" #: src/celluloid-view.c:1444 msgid "Open Folder" msgstr "" #: src/celluloid-view.c:1449 msgid "Add File to Playlist" msgstr "Добавить файл в список воспроизведения" #: src/celluloid-view.c:1449 msgid "Open File" msgstr "Открыть файл" #: src/celluloid-view.c:1485 msgid "Add Location to Playlist" msgstr "Добавить расположение в список воспроизведения" #: src/celluloid-view.c:1486 msgid "Open Location" msgstr "Открыть расположение" #: src/celluloid-view.c:1532 msgid "Save Playlist" msgstr "Сохранить список воспроизведения" #: src/celluloid-view.c:1598 msgid "A GTK frontend for MPV" msgstr "GTK интерфейс для MPV" #: src/celluloid-view.c:1608 msgid "translator-credits" msgstr "" "Maxim Orlov , 2018.\n" "Artem Polishchuk , 2019." celluloid-0.20/po/sl.po000066400000000000000000001074131373135401300150110ustar00rootroot00000000000000# Nejc Bertoncelj , 2020. #zanata msgid "" msgstr "" "Project-Id-Version: celluloid\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-02-16 14:17+0700\n" "PO-Revision-Date: 2020-06-16 05:02-0400\n" "Last-Translator: Nejc Bertoncelj \n" "Language-Team: Slovenian\n" "Language: sl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || n%100==4 ? 3 : 0)\n" "X-Generator: Zanata 4.6.2\n" #: data/io.github.celluloid_player.Celluloid.gschema.xml:11 msgid "" "Whether the settings has already been migrated from the previous version" msgstr "So bile nastavitve že preseljene iz prejšnje različice" #: data/io.github.celluloid_player.Celluloid.gschema.xml:17 msgid "Whether or not to automatically resize window to fit video" msgstr "Naj se okno samodejno prilagodi sliki" #: data/io.github.celluloid_player.Celluloid.gschema.xml:23 msgid "Enable or disable dark theme" msgstr "Omogoči temno temo" #: data/io.github.celluloid_player.Celluloid.gschema.xml:29 msgid "Enable or disable client-side decorations" msgstr "Omogoči dekoracije na uporabniški strani (CSD)" #: data/io.github.celluloid_player.Celluloid.gschema.xml:35 msgid "Whether or not to use floating controls in windowed mode" msgstr "Omogoči plavajoče gumbe v okenskem načinu" #: data/io.github.celluloid_player.Celluloid.gschema.xml:41 msgid "Whether or not to autohide mouse cursor in windowed mode" msgstr "Naj se kazalec samodejno skrije v okenskem načinu" #: data/io.github.celluloid_player.Celluloid.gschema.xml:47 msgid "The minimum cursor speed at which floating controls will be unhidden." msgstr "Najmanjša hitrost kazalca, pri katerem bodo plavajoči gumbi skriti" #: data/io.github.celluloid_player.Celluloid.gschema.xml:54 msgid "" "The size of the dead zone in which cursor movement will not cause the " "controls to be shown." msgstr "" "Velikost območja, kjer premik kazalca ne bo prikazal plavajočih gumbov" #: data/io.github.celluloid_player.Celluloid.gschema.xml:60 msgid "Whether or not to use skip buttons for controlling playlist" msgstr "Naj se gumbi za preskok uporabljajo za nadzor seznama predvajanja" #: data/io.github.celluloid_player.Celluloid.gschema.xml:66 msgid "" "Whether or not to make file chooser dialog remember last folder accessed" msgstr "Naj se izbirno okno zapomni zadnjo odprto mapo" #: data/io.github.celluloid_player.Celluloid.gschema.xml:72 msgid "Whether or not to create new windows when there is already an instance" msgstr "Naj se kljub enemu odprtemu oknu odpre še drugo" #: data/io.github.celluloid_player.Celluloid.gschema.xml:78 #: src/celluloid-application.c:575 msgid "Options to pass to mpv" msgstr "Nastavitve, ki se prenesejo programu MPV" #: data/io.github.celluloid_player.Celluloid.gschema.xml:84 msgid "Path to mpv configuration file" msgstr "Pot do nastavitvene datoteke (mpv.conf)" #: data/io.github.celluloid_player.Celluloid.gschema.xml:90 msgid "Load or don't load mpv configuration file" msgstr "Naloži nastavitveno datoteko za MPV" #: data/io.github.celluloid_player.Celluloid.gschema.xml:96 msgid "Path to mpv input configuration file" msgstr "Pot do nastavitvene datoteke za tipkovne bližnjice (input.conf)" #: data/io.github.celluloid_player.Celluloid.gschema.xml:102 msgid "Load or don't load mpv input configuration file" msgstr "Naloži nastavitveno datoteko za tipkovne bližnjice MPV" #: data/io.github.celluloid_player.Celluloid.gschema.xml:108 msgid "Whether or not to enable MPRIS support" msgstr "Naj se omogoči podpora MPRIS" #: data/io.github.celluloid_player.Celluloid.gschema.xml:114 msgid "" "Whether or not to enable GNOME-Settings-Daemon-based media keys support" msgstr "" "Naj se omogoči podpora predstavnostnih tipk programa GNOME Settings Daemon" #: data/io.github.celluloid_player.Celluloid.gschema.xml:120 msgid "Whether or not to prefetch metadata for non-current playlist entries" msgstr "Naj se prenesejo metapodatki za neaktivne sezname predvajanja" #: data/io.github.celluloid_player.Celluloid.gschema.xml:126 msgid "" "Whether or not to display an error message when playback of a file ends with" " an error" msgstr "" "Naj se prikaže opozorilo, ko se datoteka seznama predvajanja konča z napako" #: data/io.github.celluloid_player.Celluloid.gschema.xml:132 msgid "Whether or not to inhibit session idling when something is playing" msgstr "Whether or not to inhibit session idling when something is playing" #: data/io.github.celluloid_player.Celluloid.gschema.xml:142 msgid "Width of the window" msgstr "Širina okna" #: data/io.github.celluloid_player.Celluloid.gschema.xml:148 msgid "Height of the window" msgstr "Višina okna" #: data/io.github.celluloid_player.Celluloid.gschema.xml:154 msgid "Whether or not the window is maximized" msgstr "Naj bo okno razprto" #: data/io.github.celluloid_player.Celluloid.gschema.xml:161 msgid "Volume of player" msgstr "Glasnost predvajalnika" #: data/io.github.celluloid_player.Celluloid.gschema.xml:167 msgid "Whether or not to loop when the end of playlist is reached" msgstr "Naj se seznam predvajanja vrti v zanki" #: data/io.github.celluloid_player.Celluloid.gschema.xml:173 msgid "Width of the playlist" msgstr "Širina seznama predvajanja" #: data/io.github.celluloid_player.Celluloid.gschema.xml:179 msgid "Show or not show the controls" msgstr "Prikaži gumbe za predvajanje" #: data/io.github.celluloid_player.Celluloid.gschema.xml:185 msgid "Show or not show the playlist" msgstr "Prikaži seznam predvajanja" #: data/io.github.celluloid_player.Celluloid.gschema.xml:191 msgid "URI of the last folder accessed" msgstr "URI zadnje dostopane mape" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:7 #: data/io.github.celluloid_player.Celluloid.desktop.in:4 #: src/celluloid-application.c:451 msgid "Celluloid" msgstr "Celluloid" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:8 msgid "GTK+ frontend for mpv" msgstr "GTK+ vmesnik za mpv" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:16 msgid "" "Celluloid is a simple media player that can play virtually all video and " "audio formats. It supports playlists and MPRIS2 media player controls. The " "design of Celluloid follows the GNOME Human Interface Guidelines, but can " "also be adapted for other systems that don't use client-side decorations " "(CSD). It is based on the mpv library and GTK." msgstr "" "Celluloid je preprost večpredstavnostni predvajalnik, ki lahko predvaja " "takorekoč vse zvočne in video formate. Podpira sezname predvajanje in nadzor" " predvajanja MPRIS2. Oblikovan je po GNOME-ovih smernicah HIG, lahko pa se " "prilagodi tudi sistemom brez njih. Celluloid je osnovan na predvajalniku MPV" " in knjižnici GTK." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:23 msgid "Features:" msgstr "Lastnosti:" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:25 msgid "Drag and drop playlist" msgstr "Povleci in spusti" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:26 msgid "Loading external mpv configuration files" msgstr "Nalaganje zunanjih nastavitvenih datotek za MPV" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:27 msgid "MPRIS2 D-Bus interface" msgstr "MPRIS2 D-Bus vmesnik" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:30 msgid "The Celluloid Developers" msgstr "Razvijalci programa Celluloid" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:34 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:87 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:117 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:156 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:187 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:215 msgid "This release contains the following changes:" msgstr "Ta različica vsebuje sledeče spremembe:" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:38 msgid "" "Adjust the range of volume button based on the value of the volume-max " "property." msgstr "" "Adjust the range of volume button based on the value of the volume-max " "property." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:42 msgid "Retain window maximization state across sessions." msgstr "Retain window maximization state across sessions." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:45 msgid "Retain loop state across sessions." msgstr "Retain loop state across sessions." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:48 msgid "Implement playlist search." msgstr "Implement playlist search." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:51 msgid "Update the list of shortcuts in Keyboard Shortcuts dialog." msgstr "Update the list of shortcuts in Keyboard Shortcuts dialog." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:54 msgid "Correctly handle quotes and escape sequences in extra mpv options." msgstr "Correctly handle quotes and escape sequences in extra mpv options." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:57 msgid "Display time at cursor position when hovering the seek bar." msgstr "Display time at cursor position when hovering the seek bar." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:60 msgid "" "Deprecate '--mpv-options'. Options starting with '--mpv-' can be used to set" " mpv options instead. For example, passing '--mpv-vf=vflip' to Celluloid is " "equivalent to passing '--vf=vflip' to mpv." msgstr "" "Deprecate '--mpv-options'. Options starting with '--mpv-' can be used to set" " mpv options instead. For example, passing '--mpv-vf=vflip' to Celluloid is " "equivalent to passing '--vf=vflip' to mpv." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:66 msgid "" "Add support for configuring dead zone, an area in which mouse movement will " "not cause controls to be shown." msgstr "" "Add support for configuring dead zone, an area in which mouse movement will " "not cause controls to be shown." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:70 msgid "Make window sizing work correctly with HiDPI displays." msgstr "Make window sizing work correctly with HiDPI displays." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:73 msgid "Add Finnish translation by Kimmo Kujansuu." msgstr "Add Finnish translation by Kimmo Kujansuu." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:76 msgid "Add Slovenian translation by @bertronika." msgstr "Add Slovenian translation by @bertronika." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:80 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:110 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:149 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:180 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:208 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:236 msgid "This listing is incomplete. See git log for complete changelog." msgstr "" "Ta seznam je nepopoln. Preveri zapisnik GIT (git log) za vse spremembe." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:91 msgid "Add Persian translation by @danialbehzadi" msgstr "Dodan perzijski prevod (@danialbehzadi)" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:94 msgid "Add Ukranian translation by @vl-nix" msgstr "Dodan ukrajinski prevod (@vl-nix)" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:97 msgid "" "Add support for showing/hiding window decorations using the mpv option " "--border" msgstr "Dodana podpora za prikazovanje/skrivanje oken z opcijo --border" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:100 msgid "Add menu item for opening discs" msgstr "Dodan menijski vnos za odpiranje zgoščenk" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:103 msgid "Block cursor autohide when volume popup is open in windowed mode" msgstr "" "Onemogoči skrivanje kazalca, ko je v okenskem načinu odprto okno za " "nastavitev glasnosti" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:106 msgid "Fix crash with mpv 0.30" msgstr "Odpravi sesutje pri mpv verziji 0.30" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:121 msgid "Rename project to Celluloid" msgstr "Preimenovanje projekta v Celluloid" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:124 msgid "Add Turkish translation by @TeknoMobil" msgstr "Dodan turški prevod (@TeknoMobil)" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:127 msgid "Add Esperanto translation by @F3nd0" msgstr "Dodan esperanto prevod (@F3nd0)" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:130 msgid "Migrate from opengl-cb to the new render API" msgstr "Selitev iz opengl-cb v nov vmesnik za renderiranje" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:133 msgid "Handle numpad keybindings" msgstr "Obvladuj bližnjice na numerični tipkovnici" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:136 msgid "Handle unicode keybindings" msgstr "Obvladuj Unicode tipkovne bližnjice" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:139 msgid "Forward media key events to mpv" msgstr "Posreduj pritiske medijskih tipk programu mpv" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:142 msgid "" "Add dconf key for controlling cursor speed at which controls are unhidden" msgstr "Dodaj ključ dconf za nadzor hitrosti kazalca, ko gumbi niso skriti." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:145 msgid "Add option for suppressing playback errors" msgstr "Dodaj možnost za skrivanje napak predvajanja." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:160 msgid "Split up the General tab in the preferences dialog" msgstr "Razdeli zavihek Splošno v nastavitvah" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:163 msgid "Improve behavior when toggling playlist under tiling window managers" msgstr "" "Izboljšaj obnašanje pri preklopu seznama predvajanja v upravljalnikih oken" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:166 msgid "Move app menu items to primary menu" msgstr "Premakni vnose menija aplikacij v glavni meni" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:169 msgid "Use separate MPRIS DBus connection for each window" msgstr "Uporabi ločene povezave MPRIS DBus za vsako okno" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:172 msgid "Add support for MPRIS property LoopStatus" msgstr "Dodaj podporo za lastnost LoopStatus v MPRIS" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:175 msgid "" "Add option --mpv-options for setting arbitrary mpv options from the command-" "line" msgstr "" "Dodaj možnost --mpv-options za podajanje nastavitev prek ukazne vrstice" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:191 msgid "Set default screenshot directory to XDG_PICTURES_DIR" msgstr "Nastavi privzeto mapo za posnetke zaslona na XDG_PICTURES_DIR" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:194 msgid "" "Improve handling of --window-scale, --autofit, --autofit-larger, and " "--autofit-smaller" msgstr "" "Izboljšaj podporo nastavitev --window-scale, --autofit, --autofit-larger in " "--autofit-smaller" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:198 msgid "Add command line option for setting WM_ROLE" msgstr "Dodaj nastavitev ukazne vrstice za WM_ROLE" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:201 msgid "Add context menu item for removing playlist items" msgstr "" "V kontekstni meni dodaj gumb za odstranjevanje vnosov seznama predvajanja" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:204 msgid "Add context menu item for copying location of playlist items" msgstr "" "V kontekstni meni dodaj gumb za kopiranje lokacije vnosov seznama " "predvajanja" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:219 msgid "" "Add option to make skip buttons change playlist entries rather than chapters" msgstr "" "Dodaj možnost za preskakovanje vnosov seznama predvajanja namesto poglavij z" " gumbi za preskok." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:223 msgid "Make the file chooser accept non-local locations" msgstr "Omogoči izbirniku datotek izbor " #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:226 msgid "Add right-click menu entry for looping a single file" msgstr "Dodaj vnos v meni desnega klika za vrtenje ene datoteke v zanki" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:229 msgid "Handle property change events for fullscreen and window-scale" msgstr "Obvladuj dogodke sprememb lastnosti za celozaslonski in okenski način" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:232 msgid "Add option to autohide mouse cursor in windowed mode" msgstr "Dodaj možnost za skrivanje kazalca v okenskem načinu" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:246 msgid "The main window showing the application in action" msgstr "Glavno okno programa med predvajanjem" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:250 msgid "The main window with CSD disabled" msgstr "Glavno okno z onemogočenimi dekoracijami na uporabniški strani (CSD)" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:254 msgid "The main window with playlist open" msgstr "Glavno okno z odprtim seznamom predvajanja" #: data/io.github.celluloid_player.Celluloid.desktop.in:5 msgid "Multimedia Player" msgstr "Večpredstavnostni predvajalnik" #: data/io.github.celluloid_player.Celluloid.desktop.in:6 msgid "Play movies and videos" msgstr "Predvajaj filme in videoposnetke" #. Translators: Search terms to find this application. Don't translate the #. semicolons! The list MUST also end with a semicolon! #: data/io.github.celluloid_player.Celluloid.desktop.in:17 msgid "Video;Movie;Film;Clip;Series;Player;DVD;TV;Disc;Album;Music;GNOME;mpv;" msgstr "" "videoposnetek;video;film;videoizrezek;serija;predvajalnik;DVD;TV;CD;zgoščenka;album;glasba;GNOME;mpv;" #: data/io.github.celluloid_player.Celluloid.desktop.in:23 msgid "New Window" msgstr "Novo okno" #: src/celluloid-application.c:495 msgid "Playing" msgstr "Predvajanje" #: src/celluloid-application.c:551 msgid "Show release version" msgstr "Prikaži izdajo različice" #: src/celluloid-application.c:559 msgid "Enqueue" msgstr "Dodaj v seznam predvajanja" #: src/celluloid-application.c:567 msgid "Create a new window" msgstr "Ustvari novo okno" #: src/celluloid-application.c:576 msgid "OPTIONS" msgstr "NASTAVITVE" #: src/celluloid-application.c:583 msgid "Set the window role" msgstr "Nastavi vlogo okna" #: src/celluloid-application.c:591 msgid "Don't connect to an already-running instance" msgstr "Ne priklopi se na že delujoč program" #: src/celluloid-control-box.c:362 msgid "Pause" msgstr "Pavza" #: src/celluloid-control-box.c:362 src/celluloid-control-box.c:565 msgid "Play" msgstr "Predvajaj" #: src/celluloid-control-box.c:568 msgid "Stop" msgstr "Ustavi" #: src/celluloid-control-box.c:571 msgid "Forward" msgstr "Naprej" #: src/celluloid-control-box.c:574 msgid "Rewind" msgstr "Nazaj" #: src/celluloid-control-box.c:577 msgid "Next Chapter" msgstr "Naslednje poglavje" #: src/celluloid-control-box.c:580 msgid "Previous Chapter" msgstr "Prejšnje poglavje" #: src/celluloid-control-box.c:583 msgid "Loop Playlist" msgstr "Seznam predvajanja v zanki" #: src/celluloid-control-box.c:586 msgid "Shuffle Playlist" msgstr "Naključen izbor seznama predvajanja" #: src/celluloid-control-box.c:589 src/celluloid-header-bar.c:91 msgid "Toggle Fullscreen" msgstr "Preklopi celozaslonski način" #: src/celluloid-controller.c:992 src/celluloid-view.c:1558 msgid "Error" msgstr "Napaka" #: src/celluloid-file-chooser.c:139 src/celluloid-plugins-manager.c:170 msgid "All Files" msgstr "Vse datoteke" #: src/celluloid-file-chooser.c:147 msgid "Media Files" msgstr "Večpredstavnostne datoteke" #: src/celluloid-file-chooser.c:158 msgid "Audio Files" msgstr "Zvočne datoteke" #: src/celluloid-file-chooser.c:166 msgid "Video Files" msgstr "Video datoteke" #: src/celluloid-file-chooser.c:174 msgid "Image Files" msgstr "Slikovne datoteke" #: src/celluloid-file-chooser.c:184 msgid "Subtitle Files" msgstr "Datoteke s podnapisi" #: src/celluloid-menu.c:106 msgid "None" msgstr "Brez" #. For simplicity, also dup the default string used when the #. * track has no title. #: src/celluloid-menu.c:121 msgid "Unknown" msgstr "Neznano" #: src/celluloid-menu.c:154 msgid "_Load External…" msgstr "Naloži z_unanje..." #. Disable the menu item by setting the action to something #. * invalid. #: src/celluloid-menu.c:207 msgid "No disc found" msgstr "Zgoščenka ni najdena" #: src/celluloid-menu.c:235 msgid "_File" msgstr "_Datoteka" #: src/celluloid-menu.c:236 src/celluloid-menu.c:318 msgid "_Open…" msgstr "_Odpri..." #: src/celluloid-menu.c:237 src/celluloid-menu.c:319 msgid "Open _Folder…" msgstr "" #: src/celluloid-menu.c:238 src/celluloid-menu.c:320 msgid "Open _Location…" msgstr "Odpri _mesto..." #: src/celluloid-menu.c:239 msgid "Open _Disc…" msgstr "Odpri _zgoščenko..." #: src/celluloid-menu.c:240 src/celluloid-menu.c:290 msgid "_Save Playlist" msgstr "_Shrani seznam predvajanja" #: src/celluloid-menu.c:241 src/celluloid-menu.c:323 msgid "_New Window" msgstr "_Novo okno" #: src/celluloid-menu.c:242 msgid "_Quit" msgstr "_Izhod" #: src/celluloid-menu.c:243 msgid "_Edit" msgstr "_Uredi" #: src/celluloid-menu.c:244 src/celluloid-menu.c:296 msgid "_Preferences" msgstr "_Možnosti" #: src/celluloid-menu.c:245 src/celluloid-menu.c:292 msgid "_Video Track" msgstr "_Video sled" #: src/celluloid-menu.c:246 src/celluloid-menu.c:293 msgid "_Audio Track" msgstr "_Avdio sled" #: src/celluloid-menu.c:247 src/celluloid-menu.c:294 msgid "S_ubtitle Track" msgstr "_Podnapisi" #: src/celluloid-menu.c:248 msgid "_View" msgstr "_Ogled" #: src/celluloid-menu.c:249 src/celluloid-menu.c:287 msgid "_Toggle Controls" msgstr "Preklopi _gumbe" #: src/celluloid-menu.c:250 src/celluloid-menu.c:289 msgid "_Toggle Playlist" msgstr "Preklopi _seznam predvajanja" #: src/celluloid-menu.c:251 msgid "_Fullscreen" msgstr "_Celozaslonski način" #: src/celluloid-menu.c:252 msgid "_Help" msgstr "_Pomoč" #: src/celluloid-menu.c:253 src/celluloid-menu.c:297 msgid "_Keyboard Shortcuts" msgstr "_Tipkovne bližnjice" #: src/celluloid-menu.c:254 src/celluloid-menu.c:298 msgid "_About Celluloid" msgstr "_O programu" #: src/celluloid-menu.c:321 msgid "Open _Disc" msgstr "Odpri _zgoščenko" #: src/celluloid-mpv.c:240 #, c-format msgid "Playback was terminated abnormally. Reason: %s." msgstr "Predvajanje je bilo nepričakovano prekinjeno. Razlog: %s." #: src/celluloid-open-location-dialog.c:130 msgid "Location:" msgstr "Mesto:" #: src/celluloid-open-location-dialog.c:136 #: src/celluloid-preferences-dialog.c:401 msgid "_Cancel" msgstr "_Prekliči" #: src/celluloid-open-location-dialog.c:138 msgid "_Open" msgstr "_Odpri" #: src/celluloid-player.c:550 msgid "Failed to apply one or more MPV options." msgstr "Napaka pri uveljavljanju nastavitev za MPV." #: src/celluloid-playlist-widget.c:784 msgid "_Copy Location" msgstr "_Kopiraj mesto" #: src/celluloid-playlist-widget.c:785 msgid "_Remove" msgstr "O_dstrani" #: src/celluloid-playlist-widget.c:787 msgid "_Add…" msgstr "_Dodaj..." #: src/celluloid-playlist-widget.c:788 msgid "Add _Folder…" msgstr "" #: src/celluloid-playlist-widget.c:789 msgid "Add _Location…" msgstr "Dodaj _lokacijo..." #: src/celluloid-playlist-widget.c:790 msgid "_Shuffle" msgstr "P_remešaj" #: src/celluloid-playlist-widget.c:791 msgid "Loop _File" msgstr "Predvajaj v _zanki" #: src/celluloid-playlist-widget.c:792 msgid "Loop _Playlist" msgstr "Predvajaj seznam pre_dvajanja v zanki" #: src/celluloid-playlist-widget.c:933 src/celluloid-shortcuts-window.c:136 msgid "Playlist" msgstr "Seznam predvajanja" #: src/celluloid-playlist-widget.c:941 msgid "Playlist is empty" msgstr "Seznam predvajanja je prazen" #: src/celluloid-plugins-manager.c:163 src/celluloid-plugins-manager.c:409 msgid "Add Plugin" msgstr "Dodaj vtičnik" #: src/celluloid-plugins-manager.c:175 msgid "Lua Plugins" msgstr "Lua vtičniki" #: src/celluloid-plugins-manager.c:181 msgid "JavaScript Plugins" msgstr "JavaScript vtičniki" #: src/celluloid-plugins-manager.c:186 msgid "C Plugins" msgstr "C vtičniki" #: src/celluloid-plugins-manager.c:334 #, c-format msgid "Failed to copy file from '%s' to '%s'. Reason: %s" msgstr "Napaka prenašanja iz '%s' v '%s'. Razlog: %s" #: src/celluloid-plugins-manager.c:385 msgid "No plugins found" msgstr "Vtičniki niso najdeni" #: src/celluloid-plugins-manager-item.c:79 msgid "Remove" msgstr "Odstrani" #: src/celluloid-plugins-manager-item.c:178 msgid "" "Are you sure you want to remove this script? This action cannot be undone." msgstr "" "Ste prepričani, da želite odstraniti ta skript? Razveljavitev operacije ni " "mogoča." #: src/celluloid-plugins-manager-item.c:199 #, c-format msgid "Failed to delete file '%s'. Reason: %s" msgstr "Napaka odstranjevanja datoteke '%s'. Razlog: %s" #: src/celluloid-preferences-dialog.c:304 msgid "Automatically resize window to fit video" msgstr "Samodejno preoblikuj okno, da se prilega sliki" #: src/celluloid-preferences-dialog.c:307 msgid "Enable client-side decorations" msgstr "Omogoči dekoracije na uporabniški strani (CSD)" #: src/celluloid-preferences-dialog.c:310 msgid "Enable dark theme" msgstr "Omogoči temno temo" #: src/celluloid-preferences-dialog.c:313 msgid "Use floating controls in windowed mode" msgstr "Omogoči plavajoče gumbe v okenskem načinu" #: src/celluloid-preferences-dialog.c:316 msgid "Autohide mouse cursor in windowed mode" msgstr "Samodejno skrij kazalec v okenskem načinu" #: src/celluloid-preferences-dialog.c:319 msgid "Use skip buttons for controlling playlist" msgstr "Uporabi gumbe za preskok za nadzor seznama predvajanja" #: src/celluloid-preferences-dialog.c:322 msgid "Remember last file's location" msgstr "Zapomni si mesto zadnje datoteke" #: src/celluloid-preferences-dialog.c:327 msgid "Load MPV configuration file" msgstr "Naloži nastavitveno datoteko" #: src/celluloid-preferences-dialog.c:330 msgid "MPV configuration file:" msgstr "Pot do datoteke (mpv.conf):" #: src/celluloid-preferences-dialog.c:333 msgid "Load MPV input configuration file" msgstr "Naloži nastavitveno datoteko za tipkovne bližnjice" #: src/celluloid-preferences-dialog.c:336 msgid "MPV input configuration file:" msgstr "Pot do datoteke (input.conf):" #: src/celluloid-preferences-dialog.c:341 msgid "Always open new window" msgstr "Vsakič odpri novo okno" #: src/celluloid-preferences-dialog.c:344 msgid "Ignore playback errors" msgstr "Prezri napake predvajanja" #: src/celluloid-preferences-dialog.c:347 msgid "Prefetch metadata" msgstr "Prenesi metapodatke" #: src/celluloid-preferences-dialog.c:350 msgid "Enable MPRIS support" msgstr "Omogoči podporo za MPRIS" #: src/celluloid-preferences-dialog.c:353 msgid "Enable media keys support" msgstr "Omogoči podporo predstavnostnih tipk" #: src/celluloid-preferences-dialog.c:356 msgid "Extra MPV options:" msgstr "Dodatne nastavitve za MPV:" #: src/celluloid-preferences-dialog.c:389 msgid "Interface" msgstr "Vmesnik" #: src/celluloid-preferences-dialog.c:392 msgid "Config Files" msgstr "Nastavitve za mpv" #: src/celluloid-preferences-dialog.c:395 msgid "Miscellaneous" msgstr "Razno" #: src/celluloid-preferences-dialog.c:398 msgid "Plugins" msgstr "Vtičniki" #: src/celluloid-preferences-dialog.c:403 msgid "_Save" msgstr "_Shrani" #: src/celluloid-preferences-dialog.c:421 msgid "Preferences" msgstr "Nastavitve" #: src/celluloid-shortcuts-window.c:57 msgid "Open file" msgstr "Odpri datoteko" #: src/celluloid-shortcuts-window.c:58 msgid "Open location" msgstr "Odpri mesto" #: src/celluloid-shortcuts-window.c:59 msgid "Add file to playlist" msgstr "Dodaj datoteko na seznam predvajanja" #: src/celluloid-shortcuts-window.c:60 msgid "Add location to playlist" msgstr "Dodaj mesto na seznam predvajanja" #: src/celluloid-shortcuts-window.c:61 msgid "Show preferences dialog" msgstr "Pokaži okno za nastavitve" #: src/celluloid-shortcuts-window.c:62 msgid "Toggle controls" msgstr "Preklopi gumbe" #: src/celluloid-shortcuts-window.c:63 msgid "Toggle playlist" msgstr "Preklopi seznam predvajanja" #: src/celluloid-shortcuts-window.c:64 msgid "Toggle fullscreen mode" msgstr "Preklopi na celozaslonski način" #: src/celluloid-shortcuts-window.c:65 msgid "Leave fullscreen mode" msgstr "Zapusti celozaslonski način" #: src/celluloid-shortcuts-window.c:66 msgid "Toggle OSD states between normal and playback time/duration" msgstr "Prikazu OSD dodaj čas predvajanja in trajanje" #: src/celluloid-shortcuts-window.c:67 msgid "Show filename on the OSD" msgstr "Prikaži ime datoteke na OSD" #: src/celluloid-shortcuts-window.c:68 msgid "Show progress, elapsed time, and duration on the OSD" msgstr "Prikaži napredek, pretečen čas in trajanje na OSD" #: src/celluloid-shortcuts-window.c:71 msgid "Seek backward/forward 5 seconds" msgstr "Išči nazaj/naprej po 5 sekund" #: src/celluloid-shortcuts-window.c:72 msgid "Exact seek backward/forward 1 second" msgstr "Išči nazaj/naprej po 1 sekundo" #: src/celluloid-shortcuts-window.c:73 msgid "Seek backward/forward 1 minute" msgstr "Išči nazaj/naprej po 1 minuto" #: src/celluloid-shortcuts-window.c:74 msgid "Exact seek backward/forward 5 seconds" msgstr "Točno iskanje nazaj/naprej po 5 sekund" #: src/celluloid-shortcuts-window.c:75 msgid "Seek to previous/next subtitle" msgstr "Išči do prejšnjega/naslednjega podnapisa" #: src/celluloid-shortcuts-window.c:76 msgid "Step backward/forward a single frame" msgstr "Prehajaj med prejšnjo/naslednjo sličico" #: src/celluloid-shortcuts-window.c:77 msgid "Seek to the beginning of the previous/next chapter" msgstr "Pojdi na začetek prejšnjega/naslednjega poglavja" #: src/celluloid-shortcuts-window.c:80 msgid "Decrease/increase playback speed by 10%" msgstr "Zvišaj/znižaj hitrost predvajanja za 10%" #: src/celluloid-shortcuts-window.c:81 msgid "Halve/double current playback speed" msgstr "Prepolovi/podvoji hitrost predvajanja" #: src/celluloid-shortcuts-window.c:82 msgid "Reset playback speed to normal" msgstr "Ponastavi hitrost predvajanja na običajno" #: src/celluloid-shortcuts-window.c:83 msgid "Go backward/forward in the playlist" msgstr "Pojdi nazaj/naprej po seznamu predvajanja" #: src/celluloid-shortcuts-window.c:84 msgid "Remove selected playlist item" msgstr "Odstrani izbran element seznama predvajanja" #: src/celluloid-shortcuts-window.c:85 msgid "Save playlist" msgstr "Shrani seznam predvajanja" #: src/celluloid-shortcuts-window.c:86 msgid "Set/clear A-B loop points" msgstr "Nastavi/počisti točki A-B zanke" #: src/celluloid-shortcuts-window.c:87 msgid "Toggle infinite looping" msgstr "Preklopi neskončno zanko" #: src/celluloid-shortcuts-window.c:88 msgid "Pause or unpause" msgstr "Začasno ustavi" #: src/celluloid-shortcuts-window.c:89 msgid "Quit" msgstr "Zapri" #: src/celluloid-shortcuts-window.c:90 msgid "Save current playback position and quit" msgstr "Shrani trenutno pozicijo na seznamu predvajanja in zapri" #: src/celluloid-shortcuts-window.c:93 msgid "Enter search mode" msgstr "Vstopi v način iskanja" #: src/celluloid-shortcuts-window.c:94 msgid "Jump to next match" msgstr "Preskoči na naslednji zadetek" #: src/celluloid-shortcuts-window.c:95 msgid "Jump to previous match" msgstr "Preskoči na prejšnji zadetek" #: src/celluloid-shortcuts-window.c:96 msgid "Exit search mode" msgstr "Zapri način iskanja" #: src/celluloid-shortcuts-window.c:99 msgid "Cycle through audio tracks" msgstr "Kroži skozi zvočne sledi" #: src/celluloid-shortcuts-window.c:100 src/celluloid-shortcuts-window.c:101 msgid "Decrease/increase volume" msgstr "Zvišaj/znižaj glasnost" #: src/celluloid-shortcuts-window.c:102 msgid "Mute or unmute" msgstr "Izklopi ali vklopi zvok" #: src/celluloid-shortcuts-window.c:103 msgid "Adjust audio delay by +/- 0.1 seconds" msgstr "Nastavi zamik zvoka za +/- 0,1 sekundo" #: src/celluloid-shortcuts-window.c:106 msgid "Toggle subtitle visibility" msgstr "Omogoči vidljivost podnapisov" #: src/celluloid-shortcuts-window.c:107 msgid "Cycle through available subtitles" msgstr "Kroži skozi podnapise" #: src/celluloid-shortcuts-window.c:108 msgid "Adjust subtitle delay by +/- 0.1 seconds" msgstr "Nastavi zamik podnapisov za +/- 0,1 sekundo" #: src/celluloid-shortcuts-window.c:109 msgid "Toggle SSA/ASS subtitles style override" msgstr "Omogoči prezrtje stilov podnapisov SSA/ASS" #: src/celluloid-shortcuts-window.c:110 msgid "Move subtitles up/down" msgstr "Premakni podnapise gor/dol" #: src/celluloid-shortcuts-window.c:111 msgid "Toggle VSFilter aspect compatibility mode" msgstr "Omogoči združljivostni način za VSFilter" #: src/celluloid-shortcuts-window.c:114 msgid "Cycle through video tracks" msgstr "Kroži skozi video sledi" #: src/celluloid-shortcuts-window.c:115 msgid "Decrease/increase pan-and-scan range" msgstr "Zvišaj/znižaj območje pomikanje-skeniranje (pan-scan)" #: src/celluloid-shortcuts-window.c:116 msgid "Take a screenshot" msgstr "Naredi posnetek zaslona" #: src/celluloid-shortcuts-window.c:117 msgid "Take a screenshot, without subtitles" msgstr "Naredi posnetek zaslona brez podnapisov" #: src/celluloid-shortcuts-window.c:118 msgid "Take a screenshot, as the window shows it" msgstr "Naredi posnetek zaslona, kot ga prikazuje okno" #: src/celluloid-shortcuts-window.c:119 msgid "Resize video to half its original size" msgstr "Preoblikuj sliko na polovico izvirne velikosti" #: src/celluloid-shortcuts-window.c:120 msgid "Resize video to its original size" msgstr "Preoblikuj sliko na izvirno velikost" #: src/celluloid-shortcuts-window.c:121 msgid "Resize video to double its original size" msgstr "Preoblikuj sliko na dvojno izvirno velikost" #: src/celluloid-shortcuts-window.c:122 msgid "Adjust contrast" msgstr "Nastavi kontrast" #: src/celluloid-shortcuts-window.c:123 msgid "Adjust brightness" msgstr "Nastavi svetlost" #: src/celluloid-shortcuts-window.c:124 msgid "Adjust gamma" msgstr "Nastavi gama vrednost" #: src/celluloid-shortcuts-window.c:125 msgid "Adjust saturation" msgstr "Nastavi nasičenost" #: src/celluloid-shortcuts-window.c:126 msgid "Activate or deactivate deinterlacer" msgstr "Omogoči/onemogoči odpravljanje prepletanja (deinterlacing)" #: src/celluloid-shortcuts-window.c:127 msgid "Cycle aspect ratio override" msgstr "Kroži med razmerji slike" #: src/celluloid-shortcuts-window.c:130 msgid "User Interface" msgstr "Uporabniški vmesnik" #: src/celluloid-shortcuts-window.c:131 msgid "Video" msgstr "Video" #: src/celluloid-shortcuts-window.c:132 msgid "Audio" msgstr "Zvok" #: src/celluloid-shortcuts-window.c:133 msgid "Subtitle" msgstr "Podnapisi" #: src/celluloid-shortcuts-window.c:134 msgid "Playback" msgstr "Predvajanje" #: src/celluloid-shortcuts-window.c:135 msgid "Seeking" msgstr "Iskanje" #: src/celluloid-view.c:728 msgid "Load Audio Track…" msgstr "Naloži zvočno sled..." #: src/celluloid-view.c:732 msgid "Load Video Track…" msgstr "Naloži slikovno sled..." #: src/celluloid-view.c:736 msgid "Load Subtitle Track…" msgstr "Naloži podnapise..." #: src/celluloid-view.c:901 msgid "" "Enabling or disabling client-side decorations requires restarting to take " "effect." msgstr "" "Omogočanje/onemogočanje dekoracij na uporabniški strani zahteva vnovični " "zagon." #: src/celluloid-view.c:1444 msgid "Add Folder to Playlist" msgstr "" #: src/celluloid-view.c:1444 msgid "Open Folder" msgstr "" #: src/celluloid-view.c:1449 msgid "Add File to Playlist" msgstr "Dodaj datoteko na seznam predvajanja" #: src/celluloid-view.c:1449 msgid "Open File" msgstr "Odpri datoteko" #: src/celluloid-view.c:1485 msgid "Add Location to Playlist" msgstr "Dodaj mesto na seznam predvajanja" #: src/celluloid-view.c:1486 msgid "Open Location" msgstr "Odpri mesto" #: src/celluloid-view.c:1532 msgid "Save Playlist" msgstr "Shrani seznam predvajanja" #: src/celluloid-view.c:1598 msgid "A GTK frontend for MPV" msgstr "GTK vmesnik za MPV" #: src/celluloid-view.c:1608 msgid "translator-credits" msgstr "Nejc Bertoncelj " celluloid-0.20/po/sr.po000066400000000000000000001056301373135401300150160ustar00rootroot00000000000000# gnome-mpv , 2019. #zanata # gnome-mpv , 2020. #zanata msgid "" msgstr "" "Project-Id-Version: gnome-mpv 0.12\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-02-20 20:48+0700\n" "PO-Revision-Date: 2020-06-23 10:41-0400\n" "Last-Translator: Copied by Zanata \n" "Language-Team: Serbian (Cyrillic)\n" "Language: sr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)\n" "X-Generator: Zanata 4.6.2\n" #: data/io.github.celluloid_player.Celluloid.gschema.xml:11 msgid "" "Whether the settings has already been migrated from the previous version" msgstr "Да ли су поставке већ пренете из претходне верзије" #: data/io.github.celluloid_player.Celluloid.gschema.xml:17 #, fuzzy msgid "Whether or not to automatically resize window to fit video" msgstr "Користи пливајуће контроле у режиму прозора" #: data/io.github.celluloid_player.Celluloid.gschema.xml:23 msgid "Enable or disable dark theme" msgstr "Омогући или онемогући тамну тему" #: data/io.github.celluloid_player.Celluloid.gschema.xml:29 msgid "Enable or disable client-side decorations" msgstr "Омогући или онемогући украсе клијента" #: data/io.github.celluloid_player.Celluloid.gschema.xml:35 msgid "Whether or not to use floating controls in windowed mode" msgstr "Користи пливајуће контроле у режиму прозора" #: data/io.github.celluloid_player.Celluloid.gschema.xml:41 msgid "Whether or not to autohide mouse cursor in windowed mode" msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:47 msgid "The minimum cursor speed at which floating controls will be unhidden." msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:54 msgid "" "The size of the dead zone in which cursor movement will not cause the " "controls to be shown." msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:60 msgid "Whether or not to use skip buttons for controlling playlist" msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:66 msgid "" "Whether or not to make file chooser dialog remember last folder accessed" msgstr "" "Дозвољава дијалогу бирача датотека да упамти последње приступљен " "директоријум" #: data/io.github.celluloid_player.Celluloid.gschema.xml:72 msgid "Whether or not to create new windows when there is already an instance" msgstr "Да ли да креира нови прозор када је примерак већ присутан" #: data/io.github.celluloid_player.Celluloid.gschema.xml:78 #: src/celluloid-application.c:575 msgid "Options to pass to mpv" msgstr "Опције које треба пренети на mpv" #: data/io.github.celluloid_player.Celluloid.gschema.xml:84 msgid "Path to mpv configuration file" msgstr "Путања до mpv конфигурационе датотеке" #: data/io.github.celluloid_player.Celluloid.gschema.xml:90 msgid "Load or don't load mpv configuration file" msgstr "Дозвољава учитавање mpv конфигурационе датотеке" #: data/io.github.celluloid_player.Celluloid.gschema.xml:96 msgid "Path to mpv input configuration file" msgstr "Путања до mpv конфигурационе датотеке уноса" #: data/io.github.celluloid_player.Celluloid.gschema.xml:102 msgid "Load or don't load mpv input configuration file" msgstr "Дозвољава учитавање mpv конфигурационе датотеке уноса" #: data/io.github.celluloid_player.Celluloid.gschema.xml:108 msgid "Whether or not to enable MPRIS support" msgstr "Да ли да омогући подршку за MPRIS" #: data/io.github.celluloid_player.Celluloid.gschema.xml:114 msgid "" "Whether or not to enable GNOME-Settings-Daemon-based media keys support" msgstr "" "Да ли да омогући подршку за мултимедијалне тастере из Гномових подешавања" #: data/io.github.celluloid_player.Celluloid.gschema.xml:120 msgid "Whether or not to prefetch metadata for non-current playlist entries" msgstr "Да ли да омогући припрему метаподатака за спољне уносе листе" #: data/io.github.celluloid_player.Celluloid.gschema.xml:126 msgid "" "Whether or not to display an error message when playback of a file ends with" " an error" msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:132 msgid "Whether or not to inhibit session idling when something is playing" msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:142 msgid "Width of the window" msgstr "Ширина прозора" #: data/io.github.celluloid_player.Celluloid.gschema.xml:148 msgid "Height of the window" msgstr "Висина прозора" #: data/io.github.celluloid_player.Celluloid.gschema.xml:154 msgid "Whether or not the window is maximized" msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:161 msgid "Volume of player" msgstr "Јачина звука" #: data/io.github.celluloid_player.Celluloid.gschema.xml:167 msgid "Whether or not to loop when the end of playlist is reached" msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:173 msgid "Width of the playlist" msgstr "Ширина листе пуштања" #: data/io.github.celluloid_player.Celluloid.gschema.xml:179 msgid "Show or not show the controls" msgstr "Дозвољава приказ контрола" #: data/io.github.celluloid_player.Celluloid.gschema.xml:185 msgid "Show or not show the playlist" msgstr "Прикажи листу пуштања" #: data/io.github.celluloid_player.Celluloid.gschema.xml:191 msgid "URI of the last folder accessed" msgstr "URI последње приступљеног директоријума" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:7 #: data/io.github.celluloid_player.Celluloid.desktop.in:4 #: src/celluloid-application.c:451 msgid "Celluloid" msgstr "Celluloid" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:8 msgid "GTK+ frontend for mpv" msgstr "GTK+ прочеље за mpv" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:16 msgid "" "Celluloid is a simple media player that can play virtually all video and " "audio formats. It supports playlists and MPRIS2 media player controls. The " "design of Celluloid follows the GNOME Human Interface Guidelines, but can " "also be adapted for other systems that don't use client-side decorations " "(CSD). It is based on the mpv library and GTK." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:23 msgid "Features:" msgstr "Могућности:" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:25 msgid "Drag and drop playlist" msgstr "Превуци и отпусти листу пуштања" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:26 msgid "Loading external mpv configuration files" msgstr "Учитавам спољне mpv конфигурационе датотеке" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:27 msgid "MPRIS2 D-Bus interface" msgstr "MPRIS2 D-Bus сучеље" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:30 msgid "The Celluloid Developers" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:34 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:87 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:117 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:156 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:187 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:215 msgid "This release contains the following changes:" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:38 msgid "" "Adjust the range of volume button based on the value of the volume-max " "property." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:42 msgid "Retain window maximization state across sessions." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:45 msgid "Retain loop state across sessions." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:48 msgid "Implement playlist search." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:51 msgid "Update the list of shortcuts in Keyboard Shortcuts dialog." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:54 msgid "Correctly handle quotes and escape sequences in extra mpv options." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:57 msgid "Display time at cursor position when hovering the seek bar." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:60 msgid "" "Deprecate '--mpv-options'. Options starting with '--mpv-' can be used to set" " mpv options instead. For example, passing '--mpv-vf=vflip' to Celluloid is " "equivalent to passing '--vf=vflip' to mpv." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:66 msgid "" "Add support for configuring dead zone, an area in which mouse movement will " "not cause controls to be shown." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:70 msgid "Make window sizing work correctly with HiDPI displays." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:73 msgid "Add Finnish translation by Kimmo Kujansuu." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:76 msgid "Add Slovenian translation by @bertronika." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:80 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:110 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:149 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:180 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:208 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:236 msgid "This listing is incomplete. See git log for complete changelog." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:91 msgid "Add Persian translation by @danialbehzadi" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:94 msgid "Add Ukranian translation by @vl-nix" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:97 msgid "" "Add support for showing/hiding window decorations using the mpv option " "--border" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:100 msgid "Add menu item for opening discs" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:103 msgid "Block cursor autohide when volume popup is open in windowed mode" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:106 msgid "Fix crash with mpv 0.30" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:121 msgid "Rename project to Celluloid" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:124 msgid "Add Turkish translation by @TeknoMobil" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:127 msgid "Add Esperanto translation by @F3nd0" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:130 msgid "Migrate from opengl-cb to the new render API" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:133 msgid "Handle numpad keybindings" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:136 msgid "Handle unicode keybindings" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:139 msgid "Forward media key events to mpv" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:142 msgid "" "Add dconf key for controlling cursor speed at which controls are unhidden" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:145 msgid "Add option for suppressing playback errors" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:160 msgid "Split up the General tab in the preferences dialog" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:163 msgid "Improve behavior when toggling playlist under tiling window managers" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:166 msgid "Move app menu items to primary menu" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:169 msgid "Use separate MPRIS DBus connection for each window" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:172 msgid "Add support for MPRIS property LoopStatus" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:175 msgid "" "Add option --mpv-options for setting arbitrary mpv options from the command-" "line" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:191 msgid "Set default screenshot directory to XDG_PICTURES_DIR" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:194 msgid "" "Improve handling of --window-scale, --autofit, --autofit-larger, and " "--autofit-smaller" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:198 msgid "Add command line option for setting WM_ROLE" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:201 msgid "Add context menu item for removing playlist items" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:204 msgid "Add context menu item for copying location of playlist items" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:219 msgid "" "Add option to make skip buttons change playlist entries rather than chapters" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:223 msgid "Make the file chooser accept non-local locations" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:226 msgid "Add right-click menu entry for looping a single file" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:229 msgid "Handle property change events for fullscreen and window-scale" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:232 #, fuzzy msgid "Add option to autohide mouse cursor in windowed mode" msgstr "Користи пливајуће контроле у режиму прозора" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:246 msgid "The main window showing the application in action" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:250 msgid "The main window with CSD disabled" msgstr "Главни прозор са онемогућеним CSD-ом" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:254 msgid "The main window with playlist open" msgstr "Главни прозор са отвореном листом пуштања" #: data/io.github.celluloid_player.Celluloid.desktop.in:5 msgid "Multimedia Player" msgstr "" #: data/io.github.celluloid_player.Celluloid.desktop.in:6 msgid "Play movies and videos" msgstr "" #. Translators: Search terms to find this application. Don't translate the #. semicolons! The list MUST also end with a semicolon! #: data/io.github.celluloid_player.Celluloid.desktop.in:17 msgid "Video;Movie;Film;Clip;Series;Player;DVD;TV;Disc;Album;Music;GNOME;mpv;" msgstr "" #: data/io.github.celluloid_player.Celluloid.desktop.in:23 msgid "New Window" msgstr "Нови прозор" #: src/celluloid-application.c:495 msgid "Playing" msgstr "Репродукција" #: src/celluloid-application.c:551 msgid "Show release version" msgstr "Прикажи верзију издања" #: src/celluloid-application.c:559 msgid "Enqueue" msgstr "Нанижи" #: src/celluloid-application.c:567 msgid "Create a new window" msgstr "Направи нови прозор" #: src/celluloid-application.c:576 msgid "OPTIONS" msgstr "" #: src/celluloid-application.c:583 msgid "Set the window role" msgstr "" #: src/celluloid-application.c:591 msgid "Don't connect to an already-running instance" msgstr "Не повезуј на већ покренут примерак" #: src/celluloid-control-box.c:362 msgid "Pause" msgstr "Паузирај" #: src/celluloid-control-box.c:362 src/celluloid-control-box.c:565 msgid "Play" msgstr "Пусти" #: src/celluloid-control-box.c:568 msgid "Stop" msgstr "Заустави" #: src/celluloid-control-box.c:571 msgid "Forward" msgstr "Напред" #: src/celluloid-control-box.c:574 msgid "Rewind" msgstr "Назад" #: src/celluloid-control-box.c:577 msgid "Next Chapter" msgstr "Следеће Поглавље" #: src/celluloid-control-box.c:580 msgid "Previous Chapter" msgstr "Претходно Поглавље" #: src/celluloid-control-box.c:583 msgid "Loop Playlist" msgstr "" #: src/celluloid-control-box.c:586 msgid "Shuffle Playlist" msgstr "" #: src/celluloid-control-box.c:589 src/celluloid-header-bar.c:91 msgid "Toggle Fullscreen" msgstr "Цео Екран" #: src/celluloid-controller.c:992 src/celluloid-view.c:1558 msgid "Error" msgstr "Грешка" #: src/celluloid-file-chooser.c:139 src/celluloid-plugins-manager.c:170 msgid "All Files" msgstr "Све Датотеке" #: src/celluloid-file-chooser.c:147 msgid "Media Files" msgstr "Медијски записи" #: src/celluloid-file-chooser.c:158 msgid "Audio Files" msgstr "Звучни записи" #: src/celluloid-file-chooser.c:166 msgid "Video Files" msgstr "Видео записи" #: src/celluloid-file-chooser.c:174 msgid "Image Files" msgstr "Слике" #: src/celluloid-file-chooser.c:184 msgid "Subtitle Files" msgstr "Преводи" #: src/celluloid-menu.c:106 msgid "None" msgstr "Ниједан" #. For simplicity, also dup the default string used when the #. * track has no title. #: src/celluloid-menu.c:121 msgid "Unknown" msgstr "Непознато" #: src/celluloid-menu.c:154 msgid "_Load External…" msgstr "_Учитај Спољне..." #. Disable the menu item by setting the action to something #. * invalid. #: src/celluloid-menu.c:207 msgid "No disc found" msgstr "" #: src/celluloid-menu.c:235 msgid "_File" msgstr "_Датотека" #: src/celluloid-menu.c:236 src/celluloid-menu.c:318 msgid "_Open…" msgstr "" #: src/celluloid-menu.c:237 src/celluloid-menu.c:319 msgid "Open _Folder…" msgstr "" #: src/celluloid-menu.c:238 src/celluloid-menu.c:320 msgid "Open _Location…" msgstr "" #: src/celluloid-menu.c:239 msgid "Open _Disc…" msgstr "" #: src/celluloid-menu.c:240 src/celluloid-menu.c:290 msgid "_Save Playlist" msgstr "_Сачувај Листу Пуштања" #: src/celluloid-menu.c:241 src/celluloid-menu.c:323 msgid "_New Window" msgstr "_Нови прозор" #: src/celluloid-menu.c:242 #, fuzzy msgid "_Quit" msgstr "Напусти" #: src/celluloid-menu.c:243 msgid "_Edit" msgstr "_Уреди" #: src/celluloid-menu.c:244 src/celluloid-menu.c:296 msgid "_Preferences" msgstr "_Поставке" #: src/celluloid-menu.c:245 src/celluloid-menu.c:292 msgid "_Video Track" msgstr "_Видео Снимак" #: src/celluloid-menu.c:246 src/celluloid-menu.c:293 msgid "_Audio Track" msgstr "_Аудио Снимак" #: src/celluloid-menu.c:247 src/celluloid-menu.c:294 msgid "S_ubtitle Track" msgstr "_Превод" #: src/celluloid-menu.c:248 msgid "_View" msgstr "_Преглед" #: src/celluloid-menu.c:249 src/celluloid-menu.c:287 msgid "_Toggle Controls" msgstr "_Прикажи Контроле" #: src/celluloid-menu.c:250 src/celluloid-menu.c:289 msgid "_Toggle Playlist" msgstr "_Прикажи Листу Пуштања" #: src/celluloid-menu.c:251 msgid "_Fullscreen" msgstr "_Цео Екран" #: src/celluloid-menu.c:252 msgid "_Help" msgstr "_Помоћ" #: src/celluloid-menu.c:253 src/celluloid-menu.c:297 msgid "_Keyboard Shortcuts" msgstr "_Пречице Тастатуре" #: src/celluloid-menu.c:254 src/celluloid-menu.c:298 msgid "_About Celluloid" msgstr "" #: src/celluloid-menu.c:321 #, fuzzy msgid "Open _Disc" msgstr "Отвори датотеку" #: src/celluloid-mpv.c:240 #, c-format msgid "Playback was terminated abnormally. Reason: %s." msgstr "Репродукција је неправилно окончана. Разлог: %s." #: src/celluloid-open-location-dialog.c:130 msgid "Location:" msgstr "Локација:" #: src/celluloid-open-location-dialog.c:136 #: src/celluloid-preferences-dialog.c:401 msgid "_Cancel" msgstr "_Откажи" #: src/celluloid-open-location-dialog.c:138 msgid "_Open" msgstr "_Отвори" #: src/celluloid-player.c:550 msgid "Failed to apply one or more MPV options." msgstr "Неуспешна примена једне или више MPV опција." #: src/celluloid-playlist-widget.c:784 msgid "_Copy Location" msgstr "" #: src/celluloid-playlist-widget.c:785 msgid "_Remove" msgstr "" #: src/celluloid-playlist-widget.c:787 msgid "_Add…" msgstr "_Додај..." #: src/celluloid-playlist-widget.c:788 msgid "Add _Folder…" msgstr "" #: src/celluloid-playlist-widget.c:789 msgid "Add _Location…" msgstr "Додај_Локацију..." #: src/celluloid-playlist-widget.c:790 msgid "_Shuffle" msgstr "_Насумично" #: src/celluloid-playlist-widget.c:791 msgid "Loop _File" msgstr "" #: src/celluloid-playlist-widget.c:792 msgid "Loop _Playlist" msgstr "" #: src/celluloid-playlist-widget.c:933 src/celluloid-shortcuts-window.c:136 msgid "Playlist" msgstr "Листа Пуштања" #: src/celluloid-playlist-widget.c:941 #, fuzzy msgid "Playlist is empty" msgstr "Листа Пуштања" #: src/celluloid-plugins-manager.c:163 src/celluloid-plugins-manager.c:409 msgid "Add Plugin" msgstr "" #: src/celluloid-plugins-manager.c:175 msgid "Lua Plugins" msgstr "" #: src/celluloid-plugins-manager.c:181 msgid "JavaScript Plugins" msgstr "" #: src/celluloid-plugins-manager.c:186 msgid "C Plugins" msgstr "" #: src/celluloid-plugins-manager.c:334 #, c-format msgid "Failed to copy file from '%s' to '%s'. Reason: %s" msgstr "Неуспешно копирање датотеке из '%s' у '%s'. Разлог: %s" #: src/celluloid-plugins-manager.c:385 msgid "No plugins found" msgstr "" #: src/celluloid-plugins-manager-item.c:79 msgid "Remove" msgstr "Уклони" #: src/celluloid-plugins-manager-item.c:178 msgid "" "Are you sure you want to remove this script? This action cannot be undone." msgstr "" "Сигурно желите да уклоните ову скрипту? Овај поступак не може бити опозван." #: src/celluloid-plugins-manager-item.c:199 #, c-format msgid "Failed to delete file '%s'. Reason: %s" msgstr "Неуспешно брисање датотеке '%s'. Разлог: %s" #: src/celluloid-preferences-dialog.c:304 msgid "Automatically resize window to fit video" msgstr "" #: src/celluloid-preferences-dialog.c:307 msgid "Enable client-side decorations" msgstr "Омогући украсе клијента" #: src/celluloid-preferences-dialog.c:310 msgid "Enable dark theme" msgstr "Омогући тамну тему" #: src/celluloid-preferences-dialog.c:313 msgid "Use floating controls in windowed mode" msgstr "Користи пливајуће контроле у режиму прозора" #: src/celluloid-preferences-dialog.c:316 msgid "Autohide mouse cursor in windowed mode" msgstr "" #: src/celluloid-preferences-dialog.c:319 msgid "Use skip buttons for controlling playlist" msgstr "" #: src/celluloid-preferences-dialog.c:322 msgid "Remember last file's location" msgstr "Упамти локацију последње датотеке" #: src/celluloid-preferences-dialog.c:327 msgid "Load MPV configuration file" msgstr "Учитај MPV конфигурациону датотеку" #: src/celluloid-preferences-dialog.c:330 msgid "MPV configuration file:" msgstr "MPV конфигурациона датотека:" #: src/celluloid-preferences-dialog.c:333 msgid "Load MPV input configuration file" msgstr "Учитај MPV конфигурациону датотеку уноса" #: src/celluloid-preferences-dialog.c:336 msgid "MPV input configuration file:" msgstr "MPV конфигурациона датотека уноса:" #: src/celluloid-preferences-dialog.c:341 msgid "Always open new window" msgstr "Увек отвори нови прозор" #: src/celluloid-preferences-dialog.c:344 msgid "Ignore playback errors" msgstr "" #: src/celluloid-preferences-dialog.c:347 msgid "Prefetch metadata" msgstr "Припреми метаподатке" #: src/celluloid-preferences-dialog.c:350 msgid "Enable MPRIS support" msgstr "Омогући подршку за MPRIS" #: src/celluloid-preferences-dialog.c:353 msgid "Enable media keys support" msgstr "Омогући подршку за мултимедијалне тастере" #: src/celluloid-preferences-dialog.c:356 msgid "Extra MPV options:" msgstr "Додатне MPV опције:" #: src/celluloid-preferences-dialog.c:389 msgid "Interface" msgstr "" #: src/celluloid-preferences-dialog.c:392 msgid "Config Files" msgstr "" #: src/celluloid-preferences-dialog.c:395 msgid "Miscellaneous" msgstr "" #: src/celluloid-preferences-dialog.c:398 msgid "Plugins" msgstr "" #: src/celluloid-preferences-dialog.c:403 msgid "_Save" msgstr "_Сачувај" #: src/celluloid-preferences-dialog.c:421 msgid "Preferences" msgstr "Поставке" #: src/celluloid-shortcuts-window.c:57 msgid "Open file" msgstr "Отвори датотеку" #: src/celluloid-shortcuts-window.c:58 msgid "Open location" msgstr "Отвори локацију" #: src/celluloid-shortcuts-window.c:59 msgid "Add file to playlist" msgstr "Додај датотеку у листу" #: src/celluloid-shortcuts-window.c:60 msgid "Add location to playlist" msgstr "Додај место у листу" #: src/celluloid-shortcuts-window.c:61 msgid "Show preferences dialog" msgstr "Прикажи дијалог поставки" #: src/celluloid-shortcuts-window.c:62 msgid "Toggle controls" msgstr "Прикажи контроле" #: src/celluloid-shortcuts-window.c:63 msgid "Toggle playlist" msgstr "Прикажи листу пуштања" #: src/celluloid-shortcuts-window.c:64 msgid "Toggle fullscreen mode" msgstr "Прикажи у режиму целог екрана" #: src/celluloid-shortcuts-window.c:65 msgid "Leave fullscreen mode" msgstr "Напусти режим целог екрана" #: src/celluloid-shortcuts-window.c:66 msgid "Toggle OSD states between normal and playback time/duration" msgstr "Промени OSD приказ између нормалног и време пуштања/дужина" #: src/celluloid-shortcuts-window.c:67 msgid "Show filename on the OSD" msgstr "Прикажи име датотеке у OSD" #: src/celluloid-shortcuts-window.c:68 msgid "Show progress, elapsed time, and duration on the OSD" msgstr "Прикажи напредак, протекло време и дужину на OSD" #: src/celluloid-shortcuts-window.c:71 msgid "Seek backward/forward 5 seconds" msgstr "Пребаци 5 секунди уназад/унапред" #: src/celluloid-shortcuts-window.c:72 msgid "Exact seek backward/forward 1 second" msgstr "Пребаци тачно 1 секунд уназад/унапред" #: src/celluloid-shortcuts-window.c:73 msgid "Seek backward/forward 1 minute" msgstr "Пребаци 1 минут уназад/унапред" #: src/celluloid-shortcuts-window.c:74 msgid "Exact seek backward/forward 5 seconds" msgstr "Пребаци тачно 5 секунди уназад/унапред" #: src/celluloid-shortcuts-window.c:75 msgid "Seek to previous/next subtitle" msgstr "Пребаци на претходни/следећи поднатпис" #: src/celluloid-shortcuts-window.c:76 msgid "Step backward/forward a single frame" msgstr "Корак за једну слику уназад/унапред" #: src/celluloid-shortcuts-window.c:77 msgid "Seek to the beginning of the previous/next chapter" msgstr "Пребаци на почетак претходног/следећег поглавља" #: src/celluloid-shortcuts-window.c:80 msgid "Decrease/increase playback speed by 10%" msgstr "Успори/убрзај репродукцију за 10%" #: src/celluloid-shortcuts-window.c:81 msgid "Halve/double current playback speed" msgstr "Преполови/удвостручи тренутну брзину репродукције" #: src/celluloid-shortcuts-window.c:82 msgid "Reset playback speed to normal" msgstr "Поврати нормалну брзину репродукције" #: src/celluloid-shortcuts-window.c:83 msgid "Go backward/forward in the playlist" msgstr "Иди уназад/унапред у листи пуштања" #: src/celluloid-shortcuts-window.c:84 msgid "Remove selected playlist item" msgstr "Избаци означену ставку из листе пуштања" #: src/celluloid-shortcuts-window.c:85 msgid "Save playlist" msgstr "Сачувај листу пуштања" #: src/celluloid-shortcuts-window.c:86 msgid "Set/clear A-B loop points" msgstr "Постави/очисти A-B тачке понављања" #: src/celluloid-shortcuts-window.c:87 msgid "Toggle infinite looping" msgstr "Укључи бесконачно понављање" #: src/celluloid-shortcuts-window.c:88 msgid "Pause or unpause" msgstr "Паузирај или настави" #: src/celluloid-shortcuts-window.c:89 msgid "Quit" msgstr "Напусти" #: src/celluloid-shortcuts-window.c:90 msgid "Save current playback position and quit" msgstr "Сачувај тренутну позицију репродукције и напусти" #: src/celluloid-shortcuts-window.c:93 msgid "Enter search mode" msgstr "" #: src/celluloid-shortcuts-window.c:94 msgid "Jump to next match" msgstr "" #: src/celluloid-shortcuts-window.c:95 msgid "Jump to previous match" msgstr "" #: src/celluloid-shortcuts-window.c:96 msgid "Exit search mode" msgstr "" #: src/celluloid-shortcuts-window.c:99 msgid "Cycle through audio tracks" msgstr "Кружи кроз аудио снимке" #: src/celluloid-shortcuts-window.c:100 src/celluloid-shortcuts-window.c:101 msgid "Decrease/increase volume" msgstr "Смањи/појачај" #: src/celluloid-shortcuts-window.c:102 msgid "Mute or unmute" msgstr "Искључи или укључи звук" #: src/celluloid-shortcuts-window.c:103 msgid "Adjust audio delay by +/- 0.1 seconds" msgstr "Прилагоди кашњење звука за +/- 0.1 секунд" #: src/celluloid-shortcuts-window.c:106 msgid "Toggle subtitle visibility" msgstr "Промени видљивост поднатписа" #: src/celluloid-shortcuts-window.c:107 msgid "Cycle through available subtitles" msgstr "Кружи кроз доступне поднатписе" #: src/celluloid-shortcuts-window.c:108 msgid "Adjust subtitle delay by +/- 0.1 seconds" msgstr "Прилагоди кашњење поднатписа за +/- 0.1 секунд" #: src/celluloid-shortcuts-window.c:109 msgid "Toggle SSA/ASS subtitles style override" msgstr "Измени SSA/ASS стил поднатписа" #: src/celluloid-shortcuts-window.c:110 msgid "Move subtitles up/down" msgstr "Помери поднатписе горе/доле" #: src/celluloid-shortcuts-window.c:111 msgid "Toggle VSFilter aspect compatibility mode" msgstr "Измени VSFilter режим усклађености" #: src/celluloid-shortcuts-window.c:114 msgid "Cycle through video tracks" msgstr "Кружи кроз видео снимке" #: src/celluloid-shortcuts-window.c:115 msgid "Decrease/increase pan-and-scan range" msgstr "Повећај/умањи опсег скенирања односа" #: src/celluloid-shortcuts-window.c:116 msgid "Take a screenshot" msgstr "Направи снимак екрана" #: src/celluloid-shortcuts-window.c:117 msgid "Take a screenshot, without subtitles" msgstr "Направи снимак екрана без поднатписа" #: src/celluloid-shortcuts-window.c:118 msgid "Take a screenshot, as the window shows it" msgstr "Направи снимак екрана како га прозор приказује" #: src/celluloid-shortcuts-window.c:119 msgid "Resize video to half its original size" msgstr "Преполови оригиналну величину видео снимка" #: src/celluloid-shortcuts-window.c:120 msgid "Resize video to its original size" msgstr "Поврати оригиналну величину видео снимка" #: src/celluloid-shortcuts-window.c:121 msgid "Resize video to double its original size" msgstr "Удвостручи оригиналну величину видео снимка" #: src/celluloid-shortcuts-window.c:122 msgid "Adjust contrast" msgstr "Прилагоди контраст" #: src/celluloid-shortcuts-window.c:123 msgid "Adjust brightness" msgstr "Прилагоди осветљеност" #: src/celluloid-shortcuts-window.c:124 msgid "Adjust gamma" msgstr "Прилагоди гаму" #: src/celluloid-shortcuts-window.c:125 msgid "Adjust saturation" msgstr "Прилагоди засићење" #: src/celluloid-shortcuts-window.c:126 msgid "Activate or deactivate deinterlacer" msgstr "Омогући или онемогући преплитање" #: src/celluloid-shortcuts-window.c:127 msgid "Cycle aspect ratio override" msgstr "Кружи кроз промену размере" #: src/celluloid-shortcuts-window.c:130 msgid "User Interface" msgstr "Корисничко Сучеље" #: src/celluloid-shortcuts-window.c:131 msgid "Video" msgstr "Видео" #: src/celluloid-shortcuts-window.c:132 msgid "Audio" msgstr "Аудио" #: src/celluloid-shortcuts-window.c:133 msgid "Subtitle" msgstr "Поднатпис" #: src/celluloid-shortcuts-window.c:134 msgid "Playback" msgstr "Репродукција" #: src/celluloid-shortcuts-window.c:135 msgid "Seeking" msgstr "Трагање" #: src/celluloid-view.c:728 msgid "Load Audio Track…" msgstr "Учитај звучни запис…" #: src/celluloid-view.c:732 msgid "Load Video Track…" msgstr "" #: src/celluloid-view.c:736 msgid "Load Subtitle Track…" msgstr "Учитај превод…" #: src/celluloid-view.c:901 msgid "" "Enabling or disabling client-side decorations requires restarting to take " "effect." msgstr "" "Потребно је поновно покретање да би измена подешавања украса клијента имала " "ефекат." #: src/celluloid-view.c:1444 msgid "Add Folder to Playlist" msgstr "" #: src/celluloid-view.c:1444 msgid "Open Folder" msgstr "" #: src/celluloid-view.c:1449 msgid "Add File to Playlist" msgstr "Додај Датотеку у Листу Пуштања" #: src/celluloid-view.c:1449 msgid "Open File" msgstr "Отвори Датотеку" #: src/celluloid-view.c:1485 msgid "Add Location to Playlist" msgstr "Додај Локацију у Листу Пуштања" #: src/celluloid-view.c:1486 msgid "Open Location" msgstr "Отвори Локацију" #: src/celluloid-view.c:1532 msgid "Save Playlist" msgstr "Сачувај Листу Пуштања" #: src/celluloid-view.c:1598 msgid "A GTK frontend for MPV" msgstr "GTK прочеље за MPV" #: src/celluloid-view.c:1608 msgid "translator-credits" msgstr "Срђан С." celluloid-0.20/po/sr@latin.po000066400000000000000000000770411373135401300161520ustar00rootroot00000000000000# gnome-mpv , 2019. #zanata # gnome-mpv , 2020. #zanata msgid "" msgstr "" "Project-Id-Version: gnome-mpv 0.12\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-02-20 20:48+0700\n" "PO-Revision-Date: 2020-06-23 10:41-0400\n" "Last-Translator: Copied by Zanata \n" "Language-Team: Serbian (Latin)\n" "Language: sr@latin\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)\n" "X-Generator: Zanata 4.6.2\n" #: data/io.github.celluloid_player.Celluloid.gschema.xml:11 msgid "" "Whether the settings has already been migrated from the previous version" msgstr "Da li su postavke već prenete iz prethodne verzije" #: data/io.github.celluloid_player.Celluloid.gschema.xml:17 #, fuzzy msgid "Whether or not to automatically resize window to fit video" msgstr "Koristiti plivajuće kontrole u režimu prozora" #: data/io.github.celluloid_player.Celluloid.gschema.xml:23 msgid "Enable or disable dark theme" msgstr "Omogući ili onemogući tamnu temu" #: data/io.github.celluloid_player.Celluloid.gschema.xml:29 msgid "Enable or disable client-side decorations" msgstr "Omogući ili onemogući ukrase klijenta" #: data/io.github.celluloid_player.Celluloid.gschema.xml:35 msgid "Whether or not to use floating controls in windowed mode" msgstr "Koristiti plivajuće kontrole u režimu prozora" #: data/io.github.celluloid_player.Celluloid.gschema.xml:41 msgid "Whether or not to autohide mouse cursor in windowed mode" msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:47 msgid "The minimum cursor speed at which floating controls will be unhidden." msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:54 msgid "" "The size of the dead zone in which cursor movement will not cause the " "controls to be shown." msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:60 msgid "Whether or not to use skip buttons for controlling playlist" msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:66 msgid "" "Whether or not to make file chooser dialog remember last folder accessed" msgstr "" "Dozvoljava dijalogu birača datoteka da upamti poslednje pristupljen " "direktorijum" #: data/io.github.celluloid_player.Celluloid.gschema.xml:72 msgid "Whether or not to create new windows when there is already an instance" msgstr "Da li da kreira novi prozor kada je primerak već prisutan" #: data/io.github.celluloid_player.Celluloid.gschema.xml:78 #: src/celluloid-application.c:575 msgid "Options to pass to mpv" msgstr "Opcije koje treba preneti na mpv" #: data/io.github.celluloid_player.Celluloid.gschema.xml:84 msgid "Path to mpv configuration file" msgstr "Putanja do mpv konfiguracione datoteke" #: data/io.github.celluloid_player.Celluloid.gschema.xml:90 msgid "Load or don't load mpv configuration file" msgstr "Dozvoljava učitavanje mpv konfiguracione datoteke" #: data/io.github.celluloid_player.Celluloid.gschema.xml:96 msgid "Path to mpv input configuration file" msgstr "Putanja do mpv konfiguracione datoteke unosa" #: data/io.github.celluloid_player.Celluloid.gschema.xml:102 msgid "Load or don't load mpv input configuration file" msgstr "Dozvoljava učitavanje mpv konfiguracione datoteke unosa" #: data/io.github.celluloid_player.Celluloid.gschema.xml:108 msgid "Whether or not to enable MPRIS support" msgstr "Da li da omogući podršku za MPRIS" #: data/io.github.celluloid_player.Celluloid.gschema.xml:114 msgid "" "Whether or not to enable GNOME-Settings-Daemon-based media keys support" msgstr "" "Da li da omogući podršku za multimedijalne tastere iz Gnomovih podešavanja" #: data/io.github.celluloid_player.Celluloid.gschema.xml:120 msgid "Whether or not to prefetch metadata for non-current playlist entries" msgstr "Da li da omogući pripremu metapodataka za spoljne unose liste" #: data/io.github.celluloid_player.Celluloid.gschema.xml:126 msgid "" "Whether or not to display an error message when playback of a file ends with" " an error" msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:132 msgid "Whether or not to inhibit session idling when something is playing" msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:142 msgid "Width of the window" msgstr "Širina prozora" #: data/io.github.celluloid_player.Celluloid.gschema.xml:148 msgid "Height of the window" msgstr "Visina prozora" #: data/io.github.celluloid_player.Celluloid.gschema.xml:154 msgid "Whether or not the window is maximized" msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:161 msgid "Volume of player" msgstr "Jačina zvuka" #: data/io.github.celluloid_player.Celluloid.gschema.xml:167 msgid "Whether or not to loop when the end of playlist is reached" msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:173 msgid "Width of the playlist" msgstr "Širina liste puštanja" #: data/io.github.celluloid_player.Celluloid.gschema.xml:179 msgid "Show or not show the controls" msgstr "Dozvoljava prikaz kontrola" #: data/io.github.celluloid_player.Celluloid.gschema.xml:185 msgid "Show or not show the playlist" msgstr "Prikaži listu puštanja" #: data/io.github.celluloid_player.Celluloid.gschema.xml:191 msgid "URI of the last folder accessed" msgstr "URI poslednje pristupljenog direktorijuma" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:7 #: data/io.github.celluloid_player.Celluloid.desktop.in:4 #: src/celluloid-application.c:451 msgid "Celluloid" msgstr "Celluloid" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:8 msgid "GTK+ frontend for mpv" msgstr "GTK+ pročelje za mpv" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:16 msgid "" "Celluloid is a simple media player that can play virtually all video and " "audio formats. It supports playlists and MPRIS2 media player controls. The " "design of Celluloid follows the GNOME Human Interface Guidelines, but can " "also be adapted for other systems that don't use client-side decorations " "(CSD). It is based on the mpv library and GTK." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:23 msgid "Features:" msgstr "Mogućnosti:" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:25 msgid "Drag and drop playlist" msgstr "Prevuci i otpusti listu puštanja" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:26 msgid "Loading external mpv configuration files" msgstr "Učitavam spoljne mpv konfiguracione datoteke" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:27 msgid "MPRIS2 D-Bus interface" msgstr "MPRIS2 D-Bus sučelje" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:30 msgid "The Celluloid Developers" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:34 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:87 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:117 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:156 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:187 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:215 msgid "This release contains the following changes:" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:38 msgid "" "Adjust the range of volume button based on the value of the volume-max " "property." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:42 msgid "Retain window maximization state across sessions." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:45 msgid "Retain loop state across sessions." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:48 msgid "Implement playlist search." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:51 msgid "Update the list of shortcuts in Keyboard Shortcuts dialog." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:54 msgid "Correctly handle quotes and escape sequences in extra mpv options." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:57 msgid "Display time at cursor position when hovering the seek bar." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:60 msgid "" "Deprecate '--mpv-options'. Options starting with '--mpv-' can be used to set" " mpv options instead. For example, passing '--mpv-vf=vflip' to Celluloid is " "equivalent to passing '--vf=vflip' to mpv." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:66 msgid "" "Add support for configuring dead zone, an area in which mouse movement will " "not cause controls to be shown." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:70 msgid "Make window sizing work correctly with HiDPI displays." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:73 msgid "Add Finnish translation by Kimmo Kujansuu." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:76 msgid "Add Slovenian translation by @bertronika." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:80 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:110 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:149 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:180 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:208 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:236 msgid "This listing is incomplete. See git log for complete changelog." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:91 msgid "Add Persian translation by @danialbehzadi" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:94 msgid "Add Ukranian translation by @vl-nix" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:97 msgid "" "Add support for showing/hiding window decorations using the mpv option " "--border" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:100 msgid "Add menu item for opening discs" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:103 msgid "Block cursor autohide when volume popup is open in windowed mode" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:106 msgid "Fix crash with mpv 0.30" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:121 msgid "Rename project to Celluloid" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:124 msgid "Add Turkish translation by @TeknoMobil" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:127 msgid "Add Esperanto translation by @F3nd0" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:130 msgid "Migrate from opengl-cb to the new render API" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:133 msgid "Handle numpad keybindings" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:136 msgid "Handle unicode keybindings" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:139 msgid "Forward media key events to mpv" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:142 msgid "" "Add dconf key for controlling cursor speed at which controls are unhidden" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:145 msgid "Add option for suppressing playback errors" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:160 msgid "Split up the General tab in the preferences dialog" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:163 msgid "Improve behavior when toggling playlist under tiling window managers" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:166 msgid "Move app menu items to primary menu" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:169 msgid "Use separate MPRIS DBus connection for each window" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:172 msgid "Add support for MPRIS property LoopStatus" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:175 msgid "" "Add option --mpv-options for setting arbitrary mpv options from the command-" "line" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:191 msgid "Set default screenshot directory to XDG_PICTURES_DIR" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:194 msgid "" "Improve handling of --window-scale, --autofit, --autofit-larger, and " "--autofit-smaller" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:198 msgid "Add command line option for setting WM_ROLE" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:201 msgid "Add context menu item for removing playlist items" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:204 msgid "Add context menu item for copying location of playlist items" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:219 msgid "" "Add option to make skip buttons change playlist entries rather than chapters" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:223 msgid "Make the file chooser accept non-local locations" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:226 msgid "Add right-click menu entry for looping a single file" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:229 msgid "Handle property change events for fullscreen and window-scale" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:232 #, fuzzy msgid "Add option to autohide mouse cursor in windowed mode" msgstr "Koristi plivajuće kontrole u režimu prozora" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:246 msgid "The main window showing the application in action" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:250 msgid "The main window with CSD disabled" msgstr "Glavni prozor sa onemogućenim CSD-om" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:254 msgid "The main window with playlist open" msgstr "Glavni prozor sa otvorenom listom puštanja" #: data/io.github.celluloid_player.Celluloid.desktop.in:5 msgid "Multimedia Player" msgstr "" #: data/io.github.celluloid_player.Celluloid.desktop.in:6 msgid "Play movies and videos" msgstr "" #. Translators: Search terms to find this application. Don't translate the #. semicolons! The list MUST also end with a semicolon! #: data/io.github.celluloid_player.Celluloid.desktop.in:17 msgid "Video;Movie;Film;Clip;Series;Player;DVD;TV;Disc;Album;Music;GNOME;mpv;" msgstr "" #: data/io.github.celluloid_player.Celluloid.desktop.in:23 msgid "New Window" msgstr "Novi prozor" #: src/celluloid-application.c:495 msgid "Playing" msgstr "Reprodukcija" #: src/celluloid-application.c:551 msgid "Show release version" msgstr "Prikaži verziju izdanja" #: src/celluloid-application.c:559 msgid "Enqueue" msgstr "Naniži" #: src/celluloid-application.c:567 msgid "Create a new window" msgstr "Napravi novi prozor" #: src/celluloid-application.c:576 msgid "OPTIONS" msgstr "" #: src/celluloid-application.c:583 msgid "Set the window role" msgstr "" #: src/celluloid-application.c:591 msgid "Don't connect to an already-running instance" msgstr "Ne povezuj na već pokrenut primerak" #: src/celluloid-control-box.c:362 msgid "Pause" msgstr "Pauziraj" #: src/celluloid-control-box.c:362 src/celluloid-control-box.c:565 msgid "Play" msgstr "Pusti" #: src/celluloid-control-box.c:568 msgid "Stop" msgstr "Zaustavi" #: src/celluloid-control-box.c:571 msgid "Forward" msgstr "Napred" #: src/celluloid-control-box.c:574 msgid "Rewind" msgstr "Nazad" #: src/celluloid-control-box.c:577 msgid "Next Chapter" msgstr "Sledeće Poglavlje" #: src/celluloid-control-box.c:580 msgid "Previous Chapter" msgstr "Prethodno Poglavlje" #: src/celluloid-control-box.c:583 msgid "Loop Playlist" msgstr "" #: src/celluloid-control-box.c:586 msgid "Shuffle Playlist" msgstr "" #: src/celluloid-control-box.c:589 src/celluloid-header-bar.c:91 msgid "Toggle Fullscreen" msgstr "Ceo Ekran" #: src/celluloid-controller.c:992 src/celluloid-view.c:1558 msgid "Error" msgstr "Greška" #: src/celluloid-file-chooser.c:139 src/celluloid-plugins-manager.c:170 msgid "All Files" msgstr "Sve Datoteke" #: src/celluloid-file-chooser.c:147 msgid "Media Files" msgstr "Medijski zapisi" #: src/celluloid-file-chooser.c:158 msgid "Audio Files" msgstr "Zvučni zapisi" #: src/celluloid-file-chooser.c:166 msgid "Video Files" msgstr "Video zapisi" #: src/celluloid-file-chooser.c:174 msgid "Image Files" msgstr "Slike" #: src/celluloid-file-chooser.c:184 msgid "Subtitle Files" msgstr "Prevodi" #: src/celluloid-menu.c:106 msgid "None" msgstr "Nijedan" #. For simplicity, also dup the default string used when the #. * track has no title. #: src/celluloid-menu.c:121 msgid "Unknown" msgstr "Nepoznato" #: src/celluloid-menu.c:154 msgid "_Load External…" msgstr "_Učitaj Spoljne..." #. Disable the menu item by setting the action to something #. * invalid. #: src/celluloid-menu.c:207 msgid "No disc found" msgstr "" #: src/celluloid-menu.c:235 msgid "_File" msgstr "_Datoteka" #: src/celluloid-menu.c:236 src/celluloid-menu.c:318 msgid "_Open…" msgstr "" #: src/celluloid-menu.c:237 src/celluloid-menu.c:319 msgid "Open _Folder…" msgstr "" #: src/celluloid-menu.c:238 src/celluloid-menu.c:320 msgid "Open _Location…" msgstr "" #: src/celluloid-menu.c:239 msgid "Open _Disc…" msgstr "" #: src/celluloid-menu.c:240 src/celluloid-menu.c:290 msgid "_Save Playlist" msgstr "_Sačuvaj Listu Puštanja" #: src/celluloid-menu.c:241 src/celluloid-menu.c:323 msgid "_New Window" msgstr "_Novi prozor" #: src/celluloid-menu.c:242 #, fuzzy msgid "_Quit" msgstr "Napusti" #: src/celluloid-menu.c:243 msgid "_Edit" msgstr "_Uredi" #: src/celluloid-menu.c:244 src/celluloid-menu.c:296 msgid "_Preferences" msgstr "_Postavke" #: src/celluloid-menu.c:245 src/celluloid-menu.c:292 msgid "_Video Track" msgstr "_Video Snimak" #: src/celluloid-menu.c:246 src/celluloid-menu.c:293 msgid "_Audio Track" msgstr "_Audio Snimak" #: src/celluloid-menu.c:247 src/celluloid-menu.c:294 msgid "S_ubtitle Track" msgstr "_Prevod" #: src/celluloid-menu.c:248 msgid "_View" msgstr "_Pregled" #: src/celluloid-menu.c:249 src/celluloid-menu.c:287 msgid "_Toggle Controls" msgstr "_Prikaži Kontrole" #: src/celluloid-menu.c:250 src/celluloid-menu.c:289 msgid "_Toggle Playlist" msgstr "_Prikaži Listu Puštanja" #: src/celluloid-menu.c:251 msgid "_Fullscreen" msgstr "_Ceo Ekran" #: src/celluloid-menu.c:252 msgid "_Help" msgstr "_Pomoć" #: src/celluloid-menu.c:253 src/celluloid-menu.c:297 msgid "_Keyboard Shortcuts" msgstr "_Prečice Tastature" #: src/celluloid-menu.c:254 src/celluloid-menu.c:298 msgid "_About Celluloid" msgstr "" #: src/celluloid-menu.c:321 #, fuzzy msgid "Open _Disc" msgstr "Otvori datoteku" #: src/celluloid-mpv.c:240 #, c-format msgid "Playback was terminated abnormally. Reason: %s." msgstr "Reprodukcija je nepravilno okončana. Razlog: %s." #: src/celluloid-open-location-dialog.c:130 msgid "Location:" msgstr "Lokacija:" #: src/celluloid-open-location-dialog.c:136 #: src/celluloid-preferences-dialog.c:401 msgid "_Cancel" msgstr "_Otkaži" #: src/celluloid-open-location-dialog.c:138 msgid "_Open" msgstr "_Otvori" #: src/celluloid-player.c:550 msgid "Failed to apply one or more MPV options." msgstr "Neuspešna primena jedne ili više MPV opcija." #: src/celluloid-playlist-widget.c:784 msgid "_Copy Location" msgstr "" #: src/celluloid-playlist-widget.c:785 msgid "_Remove" msgstr "" #: src/celluloid-playlist-widget.c:787 msgid "_Add…" msgstr "_Dodaj..." #: src/celluloid-playlist-widget.c:788 msgid "Add _Folder…" msgstr "" #: src/celluloid-playlist-widget.c:789 msgid "Add _Location…" msgstr "Dodaj_Lokaciju..." #: src/celluloid-playlist-widget.c:790 msgid "_Shuffle" msgstr "_Nasumično" #: src/celluloid-playlist-widget.c:791 msgid "Loop _File" msgstr "" #: src/celluloid-playlist-widget.c:792 msgid "Loop _Playlist" msgstr "" #: src/celluloid-playlist-widget.c:933 src/celluloid-shortcuts-window.c:136 msgid "Playlist" msgstr "Lista Puštanja" #: src/celluloid-playlist-widget.c:941 #, fuzzy msgid "Playlist is empty" msgstr "Lista Puštanja" #: src/celluloid-plugins-manager.c:163 src/celluloid-plugins-manager.c:409 msgid "Add Plugin" msgstr "" #: src/celluloid-plugins-manager.c:175 msgid "Lua Plugins" msgstr "" #: src/celluloid-plugins-manager.c:181 msgid "JavaScript Plugins" msgstr "" #: src/celluloid-plugins-manager.c:186 msgid "C Plugins" msgstr "" #: src/celluloid-plugins-manager.c:334 #, c-format msgid "Failed to copy file from '%s' to '%s'. Reason: %s" msgstr "Neuspešno kopiranje datoteke iz '%s' u '%s'. Razlog: %s" #: src/celluloid-plugins-manager.c:385 msgid "No plugins found" msgstr "" #: src/celluloid-plugins-manager-item.c:79 msgid "Remove" msgstr "Ukloni" #: src/celluloid-plugins-manager-item.c:178 msgid "" "Are you sure you want to remove this script? This action cannot be undone." msgstr "" "Sigurno želite da uklonite ovu skriptu? Ovaj postupak ne može biti opozvan." #: src/celluloid-plugins-manager-item.c:199 #, c-format msgid "Failed to delete file '%s'. Reason: %s" msgstr "Neuspešno brisanje datoteke '%s'. Razlog: %s" #: src/celluloid-preferences-dialog.c:304 msgid "Automatically resize window to fit video" msgstr "" #: src/celluloid-preferences-dialog.c:307 msgid "Enable client-side decorations" msgstr "Omogući ukrase klijenta" #: src/celluloid-preferences-dialog.c:310 msgid "Enable dark theme" msgstr "Omogući tamnu temu" #: src/celluloid-preferences-dialog.c:313 msgid "Use floating controls in windowed mode" msgstr "Koristi plivajuće kontrole u režimu prozora" #: src/celluloid-preferences-dialog.c:316 msgid "Autohide mouse cursor in windowed mode" msgstr "" #: src/celluloid-preferences-dialog.c:319 msgid "Use skip buttons for controlling playlist" msgstr "" #: src/celluloid-preferences-dialog.c:322 msgid "Remember last file's location" msgstr "Upamti lokaciju poslednje datoteke" #: src/celluloid-preferences-dialog.c:327 msgid "Load MPV configuration file" msgstr "Učitaj MPV konfiguracionu datoteku" #: src/celluloid-preferences-dialog.c:330 msgid "MPV configuration file:" msgstr "MPV konfiguraciona datoteka:" #: src/celluloid-preferences-dialog.c:333 msgid "Load MPV input configuration file" msgstr "Učitaj MPV konfiguracionu datoteku" #: src/celluloid-preferences-dialog.c:336 msgid "MPV input configuration file:" msgstr "MPV konfiguraciona datoteka unosa:" #: src/celluloid-preferences-dialog.c:341 msgid "Always open new window" msgstr "Uvek otvori novi prozor" #: src/celluloid-preferences-dialog.c:344 msgid "Ignore playback errors" msgstr "" #: src/celluloid-preferences-dialog.c:347 msgid "Prefetch metadata" msgstr "Pripremi metapodatke" #: src/celluloid-preferences-dialog.c:350 msgid "Enable MPRIS support" msgstr "Omogući podršku za MPRIS" #: src/celluloid-preferences-dialog.c:353 msgid "Enable media keys support" msgstr "Omogući podršku za multimedijalne tastere" #: src/celluloid-preferences-dialog.c:356 msgid "Extra MPV options:" msgstr "Dodatne MPV opcije:" #: src/celluloid-preferences-dialog.c:389 msgid "Interface" msgstr "" #: src/celluloid-preferences-dialog.c:392 msgid "Config Files" msgstr "" #: src/celluloid-preferences-dialog.c:395 msgid "Miscellaneous" msgstr "" #: src/celluloid-preferences-dialog.c:398 msgid "Plugins" msgstr "" #: src/celluloid-preferences-dialog.c:403 msgid "_Save" msgstr "_Sačuvaj" #: src/celluloid-preferences-dialog.c:421 msgid "Preferences" msgstr "Postavke" #: src/celluloid-shortcuts-window.c:57 msgid "Open file" msgstr "Otvori datoteku" #: src/celluloid-shortcuts-window.c:58 msgid "Open location" msgstr "Otvori lokaciju" #: src/celluloid-shortcuts-window.c:59 msgid "Add file to playlist" msgstr "Dodaj datoteku u listu" #: src/celluloid-shortcuts-window.c:60 msgid "Add location to playlist" msgstr "Dodaj mesto u listu" #: src/celluloid-shortcuts-window.c:61 msgid "Show preferences dialog" msgstr "Prikaži dijalog postavki" #: src/celluloid-shortcuts-window.c:62 msgid "Toggle controls" msgstr "Prikaži kontrole" #: src/celluloid-shortcuts-window.c:63 msgid "Toggle playlist" msgstr "Prikaži listu puštanja" #: src/celluloid-shortcuts-window.c:64 msgid "Toggle fullscreen mode" msgstr "Prikaži u režimu celog ekrana" #: src/celluloid-shortcuts-window.c:65 msgid "Leave fullscreen mode" msgstr "Napusti režim celog ekrana" #: src/celluloid-shortcuts-window.c:66 msgid "Toggle OSD states between normal and playback time/duration" msgstr "Promeni OSD prikaz između normalnog i vreme puštanja/dužina" #: src/celluloid-shortcuts-window.c:67 msgid "Show filename on the OSD" msgstr "Prikaži ime datoteke u OSD" #: src/celluloid-shortcuts-window.c:68 msgid "Show progress, elapsed time, and duration on the OSD" msgstr "Prikaži napredak, proteklo vreme i dužinu na OSD" #: src/celluloid-shortcuts-window.c:71 msgid "Seek backward/forward 5 seconds" msgstr "Prebaci 5 sekundi unazad/unapred" #: src/celluloid-shortcuts-window.c:72 msgid "Exact seek backward/forward 1 second" msgstr "Prebaci tačno 1 sekund unazad/unapred" #: src/celluloid-shortcuts-window.c:73 msgid "Seek backward/forward 1 minute" msgstr "Prebaci 1 minut unazad/unapred" #: src/celluloid-shortcuts-window.c:74 msgid "Exact seek backward/forward 5 seconds" msgstr "Prebaci tačno 5 sekundi unazad/unapred" #: src/celluloid-shortcuts-window.c:75 msgid "Seek to previous/next subtitle" msgstr "Prebaci na prethodni/sledeći podnatpis" #: src/celluloid-shortcuts-window.c:76 msgid "Step backward/forward a single frame" msgstr "Korak za jednu sliku unazad/unapred" #: src/celluloid-shortcuts-window.c:77 msgid "Seek to the beginning of the previous/next chapter" msgstr "Prebaci na početak prethodnog/sledećeg poglavlja" #: src/celluloid-shortcuts-window.c:80 msgid "Decrease/increase playback speed by 10%" msgstr "Uspori/ubrzaj reprodukciju za 10%" #: src/celluloid-shortcuts-window.c:81 msgid "Halve/double current playback speed" msgstr "Prepolovi/udvostruči trenutnu brzinu reprodukcije" #: src/celluloid-shortcuts-window.c:82 msgid "Reset playback speed to normal" msgstr "Povrati normalnu brzinu reprodukcije" #: src/celluloid-shortcuts-window.c:83 msgid "Go backward/forward in the playlist" msgstr "Idi unazad/unapred u listi puštanja" #: src/celluloid-shortcuts-window.c:84 msgid "Remove selected playlist item" msgstr "Izbaci označenu stavku iz liste puštanja" #: src/celluloid-shortcuts-window.c:85 msgid "Save playlist" msgstr "Sačuvaj listu puštanja" #: src/celluloid-shortcuts-window.c:86 msgid "Set/clear A-B loop points" msgstr "Postavi/očisti A-B tačke ponavljanja" #: src/celluloid-shortcuts-window.c:87 msgid "Toggle infinite looping" msgstr "Uključi beskonačno ponavljanje" #: src/celluloid-shortcuts-window.c:88 msgid "Pause or unpause" msgstr "Pauziraj ili nastavi" #: src/celluloid-shortcuts-window.c:89 msgid "Quit" msgstr "Napusti" #: src/celluloid-shortcuts-window.c:90 msgid "Save current playback position and quit" msgstr "Sačuvaj trenutnu poziciju reprodukcije i napusti" #: src/celluloid-shortcuts-window.c:93 msgid "Enter search mode" msgstr "" #: src/celluloid-shortcuts-window.c:94 msgid "Jump to next match" msgstr "" #: src/celluloid-shortcuts-window.c:95 msgid "Jump to previous match" msgstr "" #: src/celluloid-shortcuts-window.c:96 msgid "Exit search mode" msgstr "" #: src/celluloid-shortcuts-window.c:99 msgid "Cycle through audio tracks" msgstr "Kruži kroz audio snimke" #: src/celluloid-shortcuts-window.c:100 src/celluloid-shortcuts-window.c:101 msgid "Decrease/increase volume" msgstr "Smanji/pojačaj" #: src/celluloid-shortcuts-window.c:102 msgid "Mute or unmute" msgstr "Isključi ili uključi zvuk" #: src/celluloid-shortcuts-window.c:103 msgid "Adjust audio delay by +/- 0.1 seconds" msgstr "Prilagodi kašnjenje zvuka za +/- 0.1 sekund" #: src/celluloid-shortcuts-window.c:106 msgid "Toggle subtitle visibility" msgstr "Promeni vidljivost podnatpisa" #: src/celluloid-shortcuts-window.c:107 msgid "Cycle through available subtitles" msgstr "Kruži kroz dostupne podnatpise" #: src/celluloid-shortcuts-window.c:108 msgid "Adjust subtitle delay by +/- 0.1 seconds" msgstr "Prilagodi kašnjenje podnatpisa za +/- 0.1 sekund" #: src/celluloid-shortcuts-window.c:109 msgid "Toggle SSA/ASS subtitles style override" msgstr "Izmeni SSA/ASS stil podnatpisa" #: src/celluloid-shortcuts-window.c:110 msgid "Move subtitles up/down" msgstr "Pomeri podnatpis gore/dole" #: src/celluloid-shortcuts-window.c:111 msgid "Toggle VSFilter aspect compatibility mode" msgstr "Izmeni VSFilter režim usklađenosti" #: src/celluloid-shortcuts-window.c:114 msgid "Cycle through video tracks" msgstr "Kruži kroz video snimke" #: src/celluloid-shortcuts-window.c:115 msgid "Decrease/increase pan-and-scan range" msgstr "Povećaj/umanji opseg skeniranja odnosa" #: src/celluloid-shortcuts-window.c:116 msgid "Take a screenshot" msgstr "Napravi snimak ekrana" #: src/celluloid-shortcuts-window.c:117 msgid "Take a screenshot, without subtitles" msgstr "Napravi snimak ekrana bez podnatpisa" #: src/celluloid-shortcuts-window.c:118 msgid "Take a screenshot, as the window shows it" msgstr "Napravi snimak ekrana kako ga prozor prikazuje" #: src/celluloid-shortcuts-window.c:119 msgid "Resize video to half its original size" msgstr "Prepolovi originalnu veličinu video snimka" #: src/celluloid-shortcuts-window.c:120 msgid "Resize video to its original size" msgstr "Povrati originalnu veličinu video snimka" #: src/celluloid-shortcuts-window.c:121 msgid "Resize video to double its original size" msgstr "Udvostruči originalnu veličinu video snimka" #: src/celluloid-shortcuts-window.c:122 msgid "Adjust contrast" msgstr "Prilagodi kontrast" #: src/celluloid-shortcuts-window.c:123 msgid "Adjust brightness" msgstr "Prilagodi osvetljenost" #: src/celluloid-shortcuts-window.c:124 msgid "Adjust gamma" msgstr "Prilagodi gamu" #: src/celluloid-shortcuts-window.c:125 msgid "Adjust saturation" msgstr "Prilagodi zasićenje" #: src/celluloid-shortcuts-window.c:126 msgid "Activate or deactivate deinterlacer" msgstr "Omogući ili onemogući preplitanje" #: src/celluloid-shortcuts-window.c:127 msgid "Cycle aspect ratio override" msgstr "Kruži kroz promenu razmere" #: src/celluloid-shortcuts-window.c:130 msgid "User Interface" msgstr "Korisničko Sučelje" #: src/celluloid-shortcuts-window.c:131 msgid "Video" msgstr "Video" #: src/celluloid-shortcuts-window.c:132 msgid "Audio" msgstr "Audio" #: src/celluloid-shortcuts-window.c:133 msgid "Subtitle" msgstr "Podnatpis" #: src/celluloid-shortcuts-window.c:134 msgid "Playback" msgstr "Reprodukcija" #: src/celluloid-shortcuts-window.c:135 msgid "Seeking" msgstr "Traganje" #: src/celluloid-view.c:728 msgid "Load Audio Track…" msgstr "Učitaj zvučni zapis..." #: src/celluloid-view.c:732 msgid "Load Video Track…" msgstr "" #: src/celluloid-view.c:736 msgid "Load Subtitle Track…" msgstr "Učitaj prevod..." #: src/celluloid-view.c:901 msgid "" "Enabling or disabling client-side decorations requires restarting to take " "effect." msgstr "" "Potrebno je ponovno pokretanje da bi izmena podešavanja ukrasa klijenta " "imala efekat." #: src/celluloid-view.c:1444 msgid "Add Folder to Playlist" msgstr "" #: src/celluloid-view.c:1444 msgid "Open Folder" msgstr "" #: src/celluloid-view.c:1449 msgid "Add File to Playlist" msgstr "Dodaj Datoteku u Listu Puštanja" #: src/celluloid-view.c:1449 msgid "Open File" msgstr "Otvori Datoteku" #: src/celluloid-view.c:1485 msgid "Add Location to Playlist" msgstr "Dodaj Lokaciju u Listu Puštnja" #: src/celluloid-view.c:1486 msgid "Open Location" msgstr "Otvori Lokaciju" #: src/celluloid-view.c:1532 msgid "Save Playlist" msgstr "Sačuvaj Listu Puštanja" #: src/celluloid-view.c:1598 msgid "A GTK frontend for MPV" msgstr "GTK pročelje za MPV" #: src/celluloid-view.c:1608 msgid "translator-credits" msgstr "Srđan S." celluloid-0.20/po/sv.po000066400000000000000000000776101373135401300150300ustar00rootroot00000000000000# gnome-mpv , 2019. #zanata # gnome-mpv , 2020. #zanata # Åke Engelbrektson , 2020. #zanata msgid "" msgstr "" "Project-Id-Version: gnome-mpv 0.15\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-02-20 20:48+0700\n" "PO-Revision-Date: 2020-06-23 10:42-0400\n" "Last-Translator: Copied by Zanata \n" "Language-Team: Swedish\n" "Language: sv\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" "X-Generator: Zanata 4.6.2\n" #: data/io.github.celluloid_player.Celluloid.gschema.xml:11 msgid "" "Whether the settings has already been migrated from the previous version" msgstr "Om inställningarna redan har migrerats från den föregående versionen" #: data/io.github.celluloid_player.Celluloid.gschema.xml:17 #, fuzzy msgid "Whether or not to automatically resize window to fit video" msgstr "Om muspekaren skall döljas automatiskt i fönsterläge eller inte" #: data/io.github.celluloid_player.Celluloid.gschema.xml:23 msgid "Enable or disable dark theme" msgstr "Aktivera eller inaktivera mörkt tema" #: data/io.github.celluloid_player.Celluloid.gschema.xml:29 msgid "Enable or disable client-side decorations" msgstr "Aktivera eller inaktivera fönsterdekorationer i klienten" #: data/io.github.celluloid_player.Celluloid.gschema.xml:35 msgid "Whether or not to use floating controls in windowed mode" msgstr "Om flytande kontroller ska aktiveras i fönsterläge eller inte" #: data/io.github.celluloid_player.Celluloid.gschema.xml:41 msgid "Whether or not to autohide mouse cursor in windowed mode" msgstr "Om muspekaren skall döljas automatiskt i fönsterläge eller inte" #: data/io.github.celluloid_player.Celluloid.gschema.xml:47 msgid "The minimum cursor speed at which floating controls will be unhidden." msgstr "Minsta muspekarhastighet vid vilken flytande kontroller visas igen" #: data/io.github.celluloid_player.Celluloid.gschema.xml:54 msgid "" "The size of the dead zone in which cursor movement will not cause the " "controls to be shown." msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:60 msgid "Whether or not to use skip buttons for controlling playlist" msgstr "" "Om hoppa-över-knappar skall användas för kontroll av spellista eller inte" #: data/io.github.celluloid_player.Celluloid.gschema.xml:66 msgid "" "Whether or not to make file chooser dialog remember last folder accessed" msgstr "" "Om dialogrutan för val av filer ska komma ihåg den senast använda mappen " "eller inte" #: data/io.github.celluloid_player.Celluloid.gschema.xml:72 msgid "Whether or not to create new windows when there is already an instance" msgstr "Om nytt fönster skall öppnas när en instans redan körs eller inte" #: data/io.github.celluloid_player.Celluloid.gschema.xml:78 #: src/celluloid-application.c:575 msgid "Options to pass to mpv" msgstr "Alternativ att skicka vidare till mpv" #: data/io.github.celluloid_player.Celluloid.gschema.xml:84 msgid "Path to mpv configuration file" msgstr "Sökväg till mpv konfigurationsfil" #: data/io.github.celluloid_player.Celluloid.gschema.xml:90 msgid "Load or don't load mpv configuration file" msgstr "Läs in eller läs inte in mpv konfigurationsfil" #: data/io.github.celluloid_player.Celluloid.gschema.xml:96 msgid "Path to mpv input configuration file" msgstr "Sökväg till mpv indata konfigurationsfil" #: data/io.github.celluloid_player.Celluloid.gschema.xml:102 msgid "Load or don't load mpv input configuration file" msgstr "Läs in eller läs inte in konfigurationsfil för mpv indata" #: data/io.github.celluloid_player.Celluloid.gschema.xml:108 msgid "Whether or not to enable MPRIS support" msgstr "Om stöd för MPRIS ska aktiveras eller inte" #: data/io.github.celluloid_player.Celluloid.gschema.xml:114 msgid "" "Whether or not to enable GNOME-Settings-Daemon-based media keys support" msgstr "" "Om stöd för GNOME-Settings-Daemon-baserade media knappar ska aktiveras eller" " inte" #: data/io.github.celluloid_player.Celluloid.gschema.xml:120 msgid "Whether or not to prefetch metadata for non-current playlist entries" msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:126 msgid "" "Whether or not to display an error message when playback of a file ends with" " an error" msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:132 msgid "Whether or not to inhibit session idling when something is playing" msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:142 msgid "Width of the window" msgstr "Fönsterbredd" #: data/io.github.celluloid_player.Celluloid.gschema.xml:148 msgid "Height of the window" msgstr "Fönsterhöjd" #: data/io.github.celluloid_player.Celluloid.gschema.xml:154 msgid "Whether or not the window is maximized" msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:161 msgid "Volume of player" msgstr "Volym för spelaren" #: data/io.github.celluloid_player.Celluloid.gschema.xml:167 msgid "Whether or not to loop when the end of playlist is reached" msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:173 msgid "Width of the playlist" msgstr "Spellistans bredd" #: data/io.github.celluloid_player.Celluloid.gschema.xml:179 msgid "Show or not show the controls" msgstr "Visa eller visa ej kontrollerna" #: data/io.github.celluloid_player.Celluloid.gschema.xml:185 msgid "Show or not show the playlist" msgstr "Visa eller visa ej spellistan" #: data/io.github.celluloid_player.Celluloid.gschema.xml:191 msgid "URI of the last folder accessed" msgstr "URI för den senast använda mappen" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:7 #: data/io.github.celluloid_player.Celluloid.desktop.in:4 #: src/celluloid-application.c:451 msgid "Celluloid" msgstr "Celluloid" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:8 msgid "GTK+ frontend for mpv" msgstr "GTK+ gränssnitt för mpv" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:16 msgid "" "Celluloid is a simple media player that can play virtually all video and " "audio formats. It supports playlists and MPRIS2 media player controls. The " "design of Celluloid follows the GNOME Human Interface Guidelines, but can " "also be adapted for other systems that don't use client-side decorations " "(CSD). It is based on the mpv library and GTK." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:23 msgid "Features:" msgstr "Funktioner:" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:25 msgid "Drag and drop playlist" msgstr "Dra och släpp spellista" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:26 msgid "Loading external mpv configuration files" msgstr "Läser in externa mpv konfigurationsfiler" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:27 msgid "MPRIS2 D-Bus interface" msgstr "MPRIS2 D-Bus gränssnitt" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:30 msgid "The Celluloid Developers" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:34 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:87 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:117 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:156 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:187 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:215 msgid "This release contains the following changes:" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:38 msgid "" "Adjust the range of volume button based on the value of the volume-max " "property." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:42 msgid "Retain window maximization state across sessions." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:45 msgid "Retain loop state across sessions." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:48 msgid "Implement playlist search." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:51 msgid "Update the list of shortcuts in Keyboard Shortcuts dialog." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:54 msgid "Correctly handle quotes and escape sequences in extra mpv options." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:57 msgid "Display time at cursor position when hovering the seek bar." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:60 msgid "" "Deprecate '--mpv-options'. Options starting with '--mpv-' can be used to set" " mpv options instead. For example, passing '--mpv-vf=vflip' to Celluloid is " "equivalent to passing '--vf=vflip' to mpv." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:66 msgid "" "Add support for configuring dead zone, an area in which mouse movement will " "not cause controls to be shown." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:70 msgid "Make window sizing work correctly with HiDPI displays." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:73 msgid "Add Finnish translation by Kimmo Kujansuu." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:76 msgid "Add Slovenian translation by @bertronika." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:80 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:110 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:149 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:180 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:208 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:236 msgid "This listing is incomplete. See git log for complete changelog." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:91 msgid "Add Persian translation by @danialbehzadi" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:94 msgid "Add Ukranian translation by @vl-nix" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:97 msgid "" "Add support for showing/hiding window decorations using the mpv option " "--border" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:100 msgid "Add menu item for opening discs" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:103 msgid "Block cursor autohide when volume popup is open in windowed mode" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:106 msgid "Fix crash with mpv 0.30" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:121 msgid "Rename project to Celluloid" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:124 msgid "Add Turkish translation by @TeknoMobil" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:127 msgid "Add Esperanto translation by @F3nd0" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:130 msgid "Migrate from opengl-cb to the new render API" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:133 msgid "Handle numpad keybindings" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:136 msgid "Handle unicode keybindings" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:139 msgid "Forward media key events to mpv" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:142 msgid "" "Add dconf key for controlling cursor speed at which controls are unhidden" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:145 msgid "Add option for suppressing playback errors" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:160 msgid "Split up the General tab in the preferences dialog" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:163 msgid "Improve behavior when toggling playlist under tiling window managers" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:166 msgid "Move app menu items to primary menu" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:169 msgid "Use separate MPRIS DBus connection for each window" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:172 msgid "Add support for MPRIS property LoopStatus" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:175 msgid "" "Add option --mpv-options for setting arbitrary mpv options from the command-" "line" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:191 msgid "Set default screenshot directory to XDG_PICTURES_DIR" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:194 msgid "" "Improve handling of --window-scale, --autofit, --autofit-larger, and " "--autofit-smaller" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:198 msgid "Add command line option for setting WM_ROLE" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:201 msgid "Add context menu item for removing playlist items" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:204 msgid "Add context menu item for copying location of playlist items" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:219 msgid "" "Add option to make skip buttons change playlist entries rather than chapters" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:223 msgid "Make the file chooser accept non-local locations" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:226 msgid "Add right-click menu entry for looping a single file" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:229 msgid "Handle property change events for fullscreen and window-scale" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:232 #, fuzzy msgid "Add option to autohide mouse cursor in windowed mode" msgstr "Använd flytande kontroller i fönsterläge" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:246 msgid "The main window showing the application in action" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:250 msgid "The main window with CSD disabled" msgstr "Huvudfönstret med CSD inaktiverat" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:254 msgid "The main window with playlist open" msgstr "Huvudfönstret med spellista öppen" #: data/io.github.celluloid_player.Celluloid.desktop.in:5 msgid "Multimedia Player" msgstr "" #: data/io.github.celluloid_player.Celluloid.desktop.in:6 msgid "Play movies and videos" msgstr "" #. Translators: Search terms to find this application. Don't translate the #. semicolons! The list MUST also end with a semicolon! #: data/io.github.celluloid_player.Celluloid.desktop.in:17 msgid "Video;Movie;Film;Clip;Series;Player;DVD;TV;Disc;Album;Music;GNOME;mpv;" msgstr "" #: data/io.github.celluloid_player.Celluloid.desktop.in:23 msgid "New Window" msgstr "Nytt fönster" #: src/celluloid-application.c:495 msgid "Playing" msgstr "Spelar" #: src/celluloid-application.c:551 msgid "Show release version" msgstr "Visa utgivningsversion" #: src/celluloid-application.c:559 msgid "Enqueue" msgstr "Lägg till i kö" #: src/celluloid-application.c:567 msgid "Create a new window" msgstr "Skapa ett nytt fönster" #: src/celluloid-application.c:576 msgid "OPTIONS" msgstr "" #: src/celluloid-application.c:583 msgid "Set the window role" msgstr "" #: src/celluloid-application.c:591 msgid "Don't connect to an already-running instance" msgstr "Anslut inte till en instans som redan körs" #: src/celluloid-control-box.c:362 msgid "Pause" msgstr "Paus" #: src/celluloid-control-box.c:362 src/celluloid-control-box.c:565 msgid "Play" msgstr "Spela upp" #: src/celluloid-control-box.c:568 msgid "Stop" msgstr "Stopp" #: src/celluloid-control-box.c:571 msgid "Forward" msgstr "Framåt" #: src/celluloid-control-box.c:574 msgid "Rewind" msgstr "Spola tillbaka" #: src/celluloid-control-box.c:577 msgid "Next Chapter" msgstr "Nästa kapitel" #: src/celluloid-control-box.c:580 msgid "Previous Chapter" msgstr "Föregående kapitel" #: src/celluloid-control-box.c:583 msgid "Loop Playlist" msgstr "" #: src/celluloid-control-box.c:586 msgid "Shuffle Playlist" msgstr "" #: src/celluloid-control-box.c:589 src/celluloid-header-bar.c:91 msgid "Toggle Fullscreen" msgstr "Växla helskärm" #: src/celluloid-controller.c:992 src/celluloid-view.c:1558 msgid "Error" msgstr "Fel" #: src/celluloid-file-chooser.c:139 src/celluloid-plugins-manager.c:170 msgid "All Files" msgstr "Alla filer" #: src/celluloid-file-chooser.c:147 msgid "Media Files" msgstr "Mediefiler" #: src/celluloid-file-chooser.c:158 msgid "Audio Files" msgstr "Ljudfiler" #: src/celluloid-file-chooser.c:166 msgid "Video Files" msgstr "Videofiler" #: src/celluloid-file-chooser.c:174 msgid "Image Files" msgstr "Bildfiler" #: src/celluloid-file-chooser.c:184 msgid "Subtitle Files" msgstr "Undertextfiler" #: src/celluloid-menu.c:106 msgid "None" msgstr "Inga" #. For simplicity, also dup the default string used when the #. * track has no title. #: src/celluloid-menu.c:121 msgid "Unknown" msgstr "Okänd" #: src/celluloid-menu.c:154 msgid "_Load External…" msgstr "_Öppna externt..." #. Disable the menu item by setting the action to something #. * invalid. #: src/celluloid-menu.c:207 msgid "No disc found" msgstr "" #: src/celluloid-menu.c:235 msgid "_File" msgstr "_Fil" #: src/celluloid-menu.c:236 src/celluloid-menu.c:318 msgid "_Open…" msgstr "" #: src/celluloid-menu.c:237 src/celluloid-menu.c:319 msgid "Open _Folder…" msgstr "" #: src/celluloid-menu.c:238 src/celluloid-menu.c:320 msgid "Open _Location…" msgstr "" #: src/celluloid-menu.c:239 msgid "Open _Disc…" msgstr "" #: src/celluloid-menu.c:240 src/celluloid-menu.c:290 msgid "_Save Playlist" msgstr "_Spara spellista" #: src/celluloid-menu.c:241 src/celluloid-menu.c:323 msgid "_New Window" msgstr "" #: src/celluloid-menu.c:242 #, fuzzy msgid "_Quit" msgstr "Avsluta" #: src/celluloid-menu.c:243 msgid "_Edit" msgstr "_Redigera" #: src/celluloid-menu.c:244 src/celluloid-menu.c:296 msgid "_Preferences" msgstr "_Inställningar" #: src/celluloid-menu.c:245 src/celluloid-menu.c:292 msgid "_Video Track" msgstr "_Videospår" #: src/celluloid-menu.c:246 src/celluloid-menu.c:293 msgid "_Audio Track" msgstr "_Ljudspår" #: src/celluloid-menu.c:247 src/celluloid-menu.c:294 msgid "S_ubtitle Track" msgstr "_Undertext-spår" #: src/celluloid-menu.c:248 msgid "_View" msgstr "_Visa" #: src/celluloid-menu.c:249 src/celluloid-menu.c:287 msgid "_Toggle Controls" msgstr "_Visa/dölj kontroller" #: src/celluloid-menu.c:250 src/celluloid-menu.c:289 msgid "_Toggle Playlist" msgstr "Visa/dölj _spellista" #: src/celluloid-menu.c:251 msgid "_Fullscreen" msgstr "_Helskärm" #: src/celluloid-menu.c:252 msgid "_Help" msgstr "_Hjälp" #: src/celluloid-menu.c:253 src/celluloid-menu.c:297 msgid "_Keyboard Shortcuts" msgstr "_Kortkommandon" #: src/celluloid-menu.c:254 src/celluloid-menu.c:298 msgid "_About Celluloid" msgstr "" #: src/celluloid-menu.c:321 #, fuzzy msgid "Open _Disc" msgstr "Öppna fil" #: src/celluloid-mpv.c:240 #, c-format msgid "Playback was terminated abnormally. Reason: %s." msgstr "Där uppstod ett onormalt avbrott under uppspelningen. Anledning: %s." #: src/celluloid-open-location-dialog.c:130 msgid "Location:" msgstr "Plats:" #: src/celluloid-open-location-dialog.c:136 #: src/celluloid-preferences-dialog.c:401 msgid "_Cancel" msgstr "_Avbryt" #: src/celluloid-open-location-dialog.c:138 msgid "_Open" msgstr "_Öppna" #: src/celluloid-player.c:550 msgid "Failed to apply one or more MPV options." msgstr "Misslyckades att tillämpa en eller flera MPV alternativ." #: src/celluloid-playlist-widget.c:784 msgid "_Copy Location" msgstr "" #: src/celluloid-playlist-widget.c:785 msgid "_Remove" msgstr "" #: src/celluloid-playlist-widget.c:787 msgid "_Add…" msgstr "_Lägg till..." #: src/celluloid-playlist-widget.c:788 msgid "Add _Folder…" msgstr "" #: src/celluloid-playlist-widget.c:789 msgid "Add _Location…" msgstr "Lägg till _plats:" #: src/celluloid-playlist-widget.c:790 msgid "_Shuffle" msgstr "_Blanda" #: src/celluloid-playlist-widget.c:791 msgid "Loop _File" msgstr "" #: src/celluloid-playlist-widget.c:792 msgid "Loop _Playlist" msgstr "" #: src/celluloid-playlist-widget.c:933 src/celluloid-shortcuts-window.c:136 msgid "Playlist" msgstr "Spellista" #: src/celluloid-playlist-widget.c:941 #, fuzzy msgid "Playlist is empty" msgstr "Spellista" #: src/celluloid-plugins-manager.c:163 src/celluloid-plugins-manager.c:409 msgid "Add Plugin" msgstr "" #: src/celluloid-plugins-manager.c:175 msgid "Lua Plugins" msgstr "" #: src/celluloid-plugins-manager.c:181 msgid "JavaScript Plugins" msgstr "" #: src/celluloid-plugins-manager.c:186 msgid "C Plugins" msgstr "" #: src/celluloid-plugins-manager.c:334 #, c-format msgid "Failed to copy file from '%s' to '%s'. Reason: %s" msgstr "Misslyckades att kopiera filen från '%s' till '%s'. Anledning: %s" #: src/celluloid-plugins-manager.c:385 msgid "No plugins found" msgstr "" #: src/celluloid-plugins-manager-item.c:79 msgid "Remove" msgstr "Ta bort" #: src/celluloid-plugins-manager-item.c:178 msgid "" "Are you sure you want to remove this script? This action cannot be undone." msgstr "" "Är du säker på att du vill ta bort detta skriptet? Denna åtgärden kan inte " "ångras." #: src/celluloid-plugins-manager-item.c:199 #, c-format msgid "Failed to delete file '%s'. Reason: %s" msgstr "Misslyckades att radera filen '%s'. Anledning: %s" #: src/celluloid-preferences-dialog.c:304 msgid "Automatically resize window to fit video" msgstr "" #: src/celluloid-preferences-dialog.c:307 msgid "Enable client-side decorations" msgstr "Aktivera fönsterdekorationer i klienten" #: src/celluloid-preferences-dialog.c:310 msgid "Enable dark theme" msgstr "Aktivera mörkt tema" #: src/celluloid-preferences-dialog.c:313 msgid "Use floating controls in windowed mode" msgstr "Använd flytande kontroller i fönsterläge" #: src/celluloid-preferences-dialog.c:316 msgid "Autohide mouse cursor in windowed mode" msgstr "" #: src/celluloid-preferences-dialog.c:319 msgid "Use skip buttons for controlling playlist" msgstr "" #: src/celluloid-preferences-dialog.c:322 msgid "Remember last file's location" msgstr "Kom ihåg senaste filens plats" #: src/celluloid-preferences-dialog.c:327 msgid "Load MPV configuration file" msgstr "Öppna MPV konfigurationsfil" #: src/celluloid-preferences-dialog.c:330 msgid "MPV configuration file:" msgstr "MPV konfigurationsfil:" #: src/celluloid-preferences-dialog.c:333 msgid "Load MPV input configuration file" msgstr "Öppna MPV konfigurationsfil för tangentbindningar" #: src/celluloid-preferences-dialog.c:336 msgid "MPV input configuration file:" msgstr "MPV konfigurationsfil för tangentbindningar:" #: src/celluloid-preferences-dialog.c:341 msgid "Always open new window" msgstr "" #: src/celluloid-preferences-dialog.c:344 msgid "Ignore playback errors" msgstr "" #: src/celluloid-preferences-dialog.c:347 msgid "Prefetch metadata" msgstr "" #: src/celluloid-preferences-dialog.c:350 msgid "Enable MPRIS support" msgstr "Aktivera stöd för MPRIS" #: src/celluloid-preferences-dialog.c:353 msgid "Enable media keys support" msgstr "Aktivera stöd för media knappar" #: src/celluloid-preferences-dialog.c:356 msgid "Extra MPV options:" msgstr "Extra MPV alternativ:" #: src/celluloid-preferences-dialog.c:389 msgid "Interface" msgstr "" #: src/celluloid-preferences-dialog.c:392 msgid "Config Files" msgstr "" #: src/celluloid-preferences-dialog.c:395 msgid "Miscellaneous" msgstr "" #: src/celluloid-preferences-dialog.c:398 msgid "Plugins" msgstr "" #: src/celluloid-preferences-dialog.c:403 msgid "_Save" msgstr "_Spara" #: src/celluloid-preferences-dialog.c:421 msgid "Preferences" msgstr "Inställningar" #: src/celluloid-shortcuts-window.c:57 msgid "Open file" msgstr "Öppna fil" #: src/celluloid-shortcuts-window.c:58 msgid "Open location" msgstr "Öppna plats" #: src/celluloid-shortcuts-window.c:59 msgid "Add file to playlist" msgstr "Lägg till fil i spellista" #: src/celluloid-shortcuts-window.c:60 msgid "Add location to playlist" msgstr "Lägg till plats i spellista" #: src/celluloid-shortcuts-window.c:61 msgid "Show preferences dialog" msgstr "Visa dialogrutan för alternativ" #: src/celluloid-shortcuts-window.c:62 msgid "Toggle controls" msgstr "Visa/dölj kontroller" #: src/celluloid-shortcuts-window.c:63 msgid "Toggle playlist" msgstr "Visa/dölj spellista" #: src/celluloid-shortcuts-window.c:64 msgid "Toggle fullscreen mode" msgstr "Växla helskärmsläge" #: src/celluloid-shortcuts-window.c:65 msgid "Leave fullscreen mode" msgstr "Lämna helskärmsläge" #: src/celluloid-shortcuts-window.c:66 msgid "Toggle OSD states between normal and playback time/duration" msgstr "Växla OSD-lägen mellan normal och uppspelningstid/speltid" #: src/celluloid-shortcuts-window.c:67 msgid "Show filename on the OSD" msgstr "Visa filnamn i OSD vyn" #: src/celluloid-shortcuts-window.c:68 msgid "Show progress, elapsed time, and duration on the OSD" msgstr "Visa förlopp, förfluten tid och speltid i OSD vyn" #: src/celluloid-shortcuts-window.c:71 msgid "Seek backward/forward 5 seconds" msgstr "Sök bakåt/framåt med 5 sekunder" #: src/celluloid-shortcuts-window.c:72 msgid "Exact seek backward/forward 1 second" msgstr "Sök exakt bakåt/framåt med 1 sekund" #: src/celluloid-shortcuts-window.c:73 msgid "Seek backward/forward 1 minute" msgstr "Sök bakåt/framåt med 1 minut" #: src/celluloid-shortcuts-window.c:74 msgid "Exact seek backward/forward 5 seconds" msgstr "Sök exakt bakåt/framåt med 5 sekunder" #: src/celluloid-shortcuts-window.c:75 msgid "Seek to previous/next subtitle" msgstr "Sök fram till föregående/nästa undertext" #: src/celluloid-shortcuts-window.c:76 msgid "Step backward/forward a single frame" msgstr "Gå bakåt/framåt med en bildruta" #: src/celluloid-shortcuts-window.c:77 msgid "Seek to the beginning of the previous/next chapter" msgstr "Sök fram till början av föregående/nästa kapitel" #: src/celluloid-shortcuts-window.c:80 msgid "Decrease/increase playback speed by 10%" msgstr "Minska/öka uppspelningshastighet med 10%" #: src/celluloid-shortcuts-window.c:81 msgid "Halve/double current playback speed" msgstr "Halvera/dubbla nuvarande uppspelningshastighet" #: src/celluloid-shortcuts-window.c:82 msgid "Reset playback speed to normal" msgstr "Återställ uppspelningshastighet till normal" #: src/celluloid-shortcuts-window.c:83 msgid "Go backward/forward in the playlist" msgstr "Gå bakåt/framåt i spellistan" #: src/celluloid-shortcuts-window.c:84 msgid "Remove selected playlist item" msgstr "Ta bort markerat objekt från spellista" #: src/celluloid-shortcuts-window.c:85 msgid "Save playlist" msgstr "Spara spellista" #: src/celluloid-shortcuts-window.c:86 msgid "Set/clear A-B loop points" msgstr "Sätt/rensa A-B punkter för repeterad uppspelning" #: src/celluloid-shortcuts-window.c:87 msgid "Toggle infinite looping" msgstr "Växla oändlig återuppspelning" #: src/celluloid-shortcuts-window.c:88 msgid "Pause or unpause" msgstr "Pausa eller fortsätt" #: src/celluloid-shortcuts-window.c:89 msgid "Quit" msgstr "Avsluta" #: src/celluloid-shortcuts-window.c:90 msgid "Save current playback position and quit" msgstr "Spara nuvarande uppspelningsposition och avsluta" #: src/celluloid-shortcuts-window.c:93 msgid "Enter search mode" msgstr "" #: src/celluloid-shortcuts-window.c:94 msgid "Jump to next match" msgstr "" #: src/celluloid-shortcuts-window.c:95 msgid "Jump to previous match" msgstr "" #: src/celluloid-shortcuts-window.c:96 msgid "Exit search mode" msgstr "" #: src/celluloid-shortcuts-window.c:99 msgid "Cycle through audio tracks" msgstr "Cykla igenom ljudspår" #: src/celluloid-shortcuts-window.c:100 src/celluloid-shortcuts-window.c:101 msgid "Decrease/increase volume" msgstr "Sänk/höj volymen" #: src/celluloid-shortcuts-window.c:102 msgid "Mute or unmute" msgstr "Slå på eller av ljud" #: src/celluloid-shortcuts-window.c:103 msgid "Adjust audio delay by +/- 0.1 seconds" msgstr "Justera ljudfördröjning med +/- 0,1 sekunder" #: src/celluloid-shortcuts-window.c:106 msgid "Toggle subtitle visibility" msgstr "Växla synlighet av undertexter" #: src/celluloid-shortcuts-window.c:107 msgid "Cycle through available subtitles" msgstr "Cykla igenom tillgängliga undertexter" #: src/celluloid-shortcuts-window.c:108 msgid "Adjust subtitle delay by +/- 0.1 seconds" msgstr "Justera undertexters fördröjning med +/- 0,1 sekunder" #: src/celluloid-shortcuts-window.c:109 msgid "Toggle SSA/ASS subtitles style override" msgstr "Växla överskridning av SSA/ASS undertexters stil" #: src/celluloid-shortcuts-window.c:110 msgid "Move subtitles up/down" msgstr "Flytta undertexter up/ned" #: src/celluloid-shortcuts-window.c:111 msgid "Toggle VSFilter aspect compatibility mode" msgstr "Växla VSFilter aspekt kompatibilitetsläge" #: src/celluloid-shortcuts-window.c:114 msgid "Cycle through video tracks" msgstr "Cykla igenom videospår" #: src/celluloid-shortcuts-window.c:115 msgid "Decrease/increase pan-and-scan range" msgstr "Sänk/höj panorering och scan omfång" #: src/celluloid-shortcuts-window.c:116 msgid "Take a screenshot" msgstr "Ta en skärmdump" #: src/celluloid-shortcuts-window.c:117 msgid "Take a screenshot, without subtitles" msgstr "Ta en skärmdump, utan undertexter" #: src/celluloid-shortcuts-window.c:118 msgid "Take a screenshot, as the window shows it" msgstr "Ta en skärmdump, så som fönstret visar det." #: src/celluloid-shortcuts-window.c:119 msgid "Resize video to half its original size" msgstr "Ändra storlek på videon till hälften av originalformatet" #: src/celluloid-shortcuts-window.c:120 msgid "Resize video to its original size" msgstr "Återställ videon till sin ursprungliga storlek" #: src/celluloid-shortcuts-window.c:121 msgid "Resize video to double its original size" msgstr "Ändra storlek på videon till det dubbla av dess original storlek" #: src/celluloid-shortcuts-window.c:122 msgid "Adjust contrast" msgstr "Justera kontrast" #: src/celluloid-shortcuts-window.c:123 msgid "Adjust brightness" msgstr "Justera ljusstyrka" #: src/celluloid-shortcuts-window.c:124 msgid "Adjust gamma" msgstr "Justera gamma" #: src/celluloid-shortcuts-window.c:125 msgid "Adjust saturation" msgstr "Justera färgmättnad" #: src/celluloid-shortcuts-window.c:126 msgid "Activate or deactivate deinterlacer" msgstr "Aktivera eller inaktivera deinterlacer" #: src/celluloid-shortcuts-window.c:127 msgid "Cycle aspect ratio override" msgstr "Cykla överskridning av bildförhållande" #: src/celluloid-shortcuts-window.c:130 msgid "User Interface" msgstr "Användargränssnitt" #: src/celluloid-shortcuts-window.c:131 msgid "Video" msgstr "Video" #: src/celluloid-shortcuts-window.c:132 msgid "Audio" msgstr "Ljud" #: src/celluloid-shortcuts-window.c:133 msgid "Subtitle" msgstr "Undertext" #: src/celluloid-shortcuts-window.c:134 msgid "Playback" msgstr "Uppspelning" #: src/celluloid-shortcuts-window.c:135 msgid "Seeking" msgstr "Söker" #: src/celluloid-view.c:728 msgid "Load Audio Track…" msgstr "Öppna ljudspår..." #: src/celluloid-view.c:732 msgid "Load Video Track…" msgstr "" #: src/celluloid-view.c:736 msgid "Load Subtitle Track…" msgstr "Öppna undertext spår..." #: src/celluloid-view.c:901 msgid "" "Enabling or disabling client-side decorations requires restarting to take " "effect." msgstr "" "Aktivering eller inaktivering av fönsterdekorationer i klienten kräver en " "omstart innan det träder i kraft." #: src/celluloid-view.c:1444 msgid "Add Folder to Playlist" msgstr "" #: src/celluloid-view.c:1444 msgid "Open Folder" msgstr "" #: src/celluloid-view.c:1449 msgid "Add File to Playlist" msgstr "Lägg till fil i spellista" #: src/celluloid-view.c:1449 msgid "Open File" msgstr "Öppna fil" #: src/celluloid-view.c:1485 msgid "Add Location to Playlist" msgstr "Lägg till plats till spellista" #: src/celluloid-view.c:1486 msgid "Open Location" msgstr "Öppna plats" #: src/celluloid-view.c:1532 msgid "Save Playlist" msgstr "Spara spellista" #: src/celluloid-view.c:1598 msgid "A GTK frontend for MPV" msgstr "Ett GTK gränssnitt för MPV" #: src/celluloid-view.c:1608 msgid "translator-credits" msgstr "Patrik Nilsson " celluloid-0.20/po/tr.po000066400000000000000000001070471373135401300150230ustar00rootroot00000000000000# Serdar Sağlam , 2019. #zanata # gnome-mpv , 2019. #zanata # Serdar Sağlam , 2020. #zanata # gnome-mpv , 2020. #zanata msgid "" msgstr "" "Project-Id-Version: gnome-mpv 0.15\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-02-20 20:48+0700\n" "PO-Revision-Date: 2020-06-23 10:50-0400\n" "Last-Translator: Copied by Zanata \n" "Language-Team: Turkish\n" "Language: tr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n>1)\n" "X-Generator: Zanata 4.6.2\n" #: data/io.github.celluloid_player.Celluloid.gschema.xml:11 msgid "" "Whether the settings has already been migrated from the previous version" msgstr "Ayarların önceki sürümden zaten geçirilmiş olup olmadığı" #: data/io.github.celluloid_player.Celluloid.gschema.xml:17 msgid "Whether or not to automatically resize window to fit video" msgstr "Pencerenin videoya sığacak şekilde boyutlandırılması" #: data/io.github.celluloid_player.Celluloid.gschema.xml:23 msgid "Enable or disable dark theme" msgstr "Koyu temayı etkinleştir veya devre dışı bırak" #: data/io.github.celluloid_player.Celluloid.gschema.xml:29 msgid "Enable or disable client-side decorations" msgstr "İstemci tarafı süslemelerini etkinleştir veya devre dışı bırak" #: data/io.github.celluloid_player.Celluloid.gschema.xml:35 msgid "Whether or not to use floating controls in windowed mode" msgstr "Pencere kipinde kayan kontrollerin kullanılıp kullanılmayacağı" #: data/io.github.celluloid_player.Celluloid.gschema.xml:41 msgid "Whether or not to autohide mouse cursor in windowed mode" msgstr "Pencere kipinde fare imlecini otomatik gösterip göstermemek" #: data/io.github.celluloid_player.Celluloid.gschema.xml:47 msgid "The minimum cursor speed at which floating controls will be unhidden." msgstr "Yüzen kontrollerin yasak olacağı asgari imleç hızı." #: data/io.github.celluloid_player.Celluloid.gschema.xml:54 msgid "" "The size of the dead zone in which cursor movement will not cause the " "controls to be shown." msgstr "" "İmleç hareketinin kontrollerin gösterilmesine neden olmayacağı ölü bölgenin " "boyutu." #: data/io.github.celluloid_player.Celluloid.gschema.xml:60 msgid "Whether or not to use skip buttons for controlling playlist" msgstr "" "Oynatma listesini kontrol etmek için atlama düğmelerinin kullanılıp " "kullanılmayacağı" #: data/io.github.celluloid_player.Celluloid.gschema.xml:66 msgid "" "Whether or not to make file chooser dialog remember last folder accessed" msgstr "" "Dosya seçici iletişim kutusunun erişilen son klasörünü hatırlasın veya " "hatırlamasın" #: data/io.github.celluloid_player.Celluloid.gschema.xml:72 msgid "Whether or not to create new windows when there is already an instance" msgstr "Zaten bir örnek olduğunda yeni pencereler oluşturup oluşturmama" #: data/io.github.celluloid_player.Celluloid.gschema.xml:78 #: src/celluloid-application.c:575 msgid "Options to pass to mpv" msgstr "Mpv'ye geçiş seçenekleri" #: data/io.github.celluloid_player.Celluloid.gschema.xml:84 msgid "Path to mpv configuration file" msgstr "Mpv yapılandırma dosyası yolu" #: data/io.github.celluloid_player.Celluloid.gschema.xml:90 msgid "Load or don't load mpv configuration file" msgstr "Mpv yapılandırma dosyasını yükle veya yükleme" #: data/io.github.celluloid_player.Celluloid.gschema.xml:96 msgid "Path to mpv input configuration file" msgstr "Mpv giriş yapılandırma dosyası yolu" #: data/io.github.celluloid_player.Celluloid.gschema.xml:102 msgid "Load or don't load mpv input configuration file" msgstr "Mpv giriş yapılandırma dosyasını yükle veya yükleme" #: data/io.github.celluloid_player.Celluloid.gschema.xml:108 msgid "Whether or not to enable MPRIS support" msgstr "MPRIS desteğinin etkinleştirilip etkinleştirilmeyeceği" #: data/io.github.celluloid_player.Celluloid.gschema.xml:114 msgid "" "Whether or not to enable GNOME-Settings-Daemon-based media keys support" msgstr "" "GNOME Ayarlar Yönetim tabanlı medya tuşlarını destekleyip desteklememek" #: data/io.github.celluloid_player.Celluloid.gschema.xml:120 msgid "Whether or not to prefetch metadata for non-current playlist entries" msgstr "" "Güncel olmayan oynatma listeleri için üst verilerin önceden getirilip " "getirilmeyeceği" #: data/io.github.celluloid_player.Celluloid.gschema.xml:126 msgid "" "Whether or not to display an error message when playback of a file ends with" " an error" msgstr "" "Bir dosyanın oynatılması bir hatayla sona erdiğinde bir hata mesajı " "gösterilip gösterilmeyeceği" #: data/io.github.celluloid_player.Celluloid.gschema.xml:132 msgid "Whether or not to inhibit session idling when something is playing" msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:142 msgid "Width of the window" msgstr "Pencere genişliği" #: data/io.github.celluloid_player.Celluloid.gschema.xml:148 msgid "Height of the window" msgstr "Pencere yüksekliği" #: data/io.github.celluloid_player.Celluloid.gschema.xml:154 msgid "Whether or not the window is maximized" msgstr "Pencerenin büyütülüp büyütülmediği" #: data/io.github.celluloid_player.Celluloid.gschema.xml:161 msgid "Volume of player" msgstr "Oynatıcı hacmi" #: data/io.github.celluloid_player.Celluloid.gschema.xml:167 msgid "Whether or not to loop when the end of playlist is reached" msgstr "Oynatma listesinin sonuna ulaşıldığında döngü yapıp yapmamak" #: data/io.github.celluloid_player.Celluloid.gschema.xml:173 msgid "Width of the playlist" msgstr "Oynatma listesi genişliği" #: data/io.github.celluloid_player.Celluloid.gschema.xml:179 msgid "Show or not show the controls" msgstr "Kontrolleri göster veya gösterme" #: data/io.github.celluloid_player.Celluloid.gschema.xml:185 msgid "Show or not show the playlist" msgstr "Oynatma listesini göster veya gösterme" #: data/io.github.celluloid_player.Celluloid.gschema.xml:191 msgid "URI of the last folder accessed" msgstr "Erişilen son klasörün URI'si" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:7 #: data/io.github.celluloid_player.Celluloid.desktop.in:4 #: src/celluloid-application.c:451 msgid "Celluloid" msgstr "Celluloid" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:8 msgid "GTK+ frontend for mpv" msgstr "Mpv için GTK + arayüz" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:16 msgid "" "Celluloid is a simple media player that can play virtually all video and " "audio formats. It supports playlists and MPRIS2 media player controls. The " "design of Celluloid follows the GNOME Human Interface Guidelines, but can " "also be adapted for other systems that don't use client-side decorations " "(CSD). It is based on the mpv library and GTK." msgstr "" "Celluloid, neredeyse tüm video ve ses biçimlerini oynatabilen basit bir " "medya oynatıcıdır. Oynatma listelerini ve MPRIS2 medya oynatıcı " "kontrollerini destekler. Celluloid tasarımı GNOME Arayüz Kılavuzlarına " "uygundur, ancak istemci tarafı süslemeleri (CSD) kullanmayan diğer sistemler" " için de uyarlanabilir. Mpv kütüphanesine ve GTK'ya dayanmaktadır." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:23 msgid "Features:" msgstr "Özellikler:" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:25 msgid "Drag and drop playlist" msgstr "Oynatma listesini sürükleyip bırak" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:26 msgid "Loading external mpv configuration files" msgstr "Harici mpv yapılandırma dosyalarını yükle" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:27 msgid "MPRIS2 D-Bus interface" msgstr "MPRIS2 D-Bus arayüzü" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:30 msgid "The Celluloid Developers" msgstr "Celluloid Geliştiricileri" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:34 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:87 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:117 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:156 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:187 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:215 msgid "This release contains the following changes:" msgstr "Bu sürüm aşağıdaki değişiklikleri içerir:" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:38 msgid "" "Adjust the range of volume button based on the value of the volume-max " "property." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:42 msgid "Retain window maximization state across sessions." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:45 msgid "Retain loop state across sessions." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:48 msgid "Implement playlist search." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:51 msgid "Update the list of shortcuts in Keyboard Shortcuts dialog." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:54 msgid "Correctly handle quotes and escape sequences in extra mpv options." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:57 msgid "Display time at cursor position when hovering the seek bar." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:60 msgid "" "Deprecate '--mpv-options'. Options starting with '--mpv-' can be used to set" " mpv options instead. For example, passing '--mpv-vf=vflip' to Celluloid is " "equivalent to passing '--vf=vflip' to mpv." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:66 msgid "" "Add support for configuring dead zone, an area in which mouse movement will " "not cause controls to be shown." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:70 msgid "Make window sizing work correctly with HiDPI displays." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:73 msgid "Add Finnish translation by Kimmo Kujansuu." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:76 msgid "Add Slovenian translation by @bertronika." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:80 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:110 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:149 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:180 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:208 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:236 msgid "This listing is incomplete. See git log for complete changelog." msgstr "Bu liste eksik. Değişiklikler için (git) günlüğüne bakın" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:91 msgid "Add Persian translation by @danialbehzadi" msgstr "Farsça çeviriyi hazırlayan @danialbehzadi" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:94 msgid "Add Ukranian translation by @vl-nix" msgstr "Ukraynaca çeviriyi hazırlayan @vl-nix" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:97 msgid "" "Add support for showing/hiding window decorations using the mpv option " "--border" msgstr "" "Mpv --border seçeneğini kullanarak pencere dekorasyonlarını göstermek / " "gizlemek için destek" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:100 msgid "Add menu item for opening discs" msgstr "Diskleri açmak için menü ögesi ekle" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:103 msgid "Block cursor autohide when volume popup is open in windowed mode" msgstr "" "Ses açılır penceresi pencereli kipte açıkken imlecin gizlenmesini engelle" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:106 msgid "Fix crash with mpv 0.30" msgstr "Mpv 0.30 kilitlenmesi düzeltildi" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:121 msgid "Rename project to Celluloid" msgstr "Proje Celluloid olarak yeniden adlandırıldı" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:124 msgid "Add Turkish translation by @TeknoMobil" msgstr "Türkçe çeviriyi hazırlayan @Serdar Sağlam" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:127 msgid "Add Esperanto translation by @F3nd0" msgstr "Esperanto çeviriyi hazırlayan @F3nd0" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:130 msgid "Migrate from opengl-cb to the new render API" msgstr "Opengl-cb'den yeni render API'sına taşı" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:133 msgid "Handle numpad keybindings" msgstr "Sayısal tuş takımlarını yönet" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:136 msgid "Handle unicode keybindings" msgstr "Unicode tuş takımlarını yönet" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:139 msgid "Forward media key events to mpv" msgstr "Medya anahtarı olaylarını mpv'ye ilet" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:142 msgid "" "Add dconf key for controlling cursor speed at which controls are unhidden" msgstr "" "Denetimlerin yasak olduğu imleç hızını kontrol etmek için dconf anahtarı " "ekleyin" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:145 msgid "Add option for suppressing playback errors" msgstr "Oynatma hatalarını bastırmak için seçenek ekle" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:160 msgid "Split up the General tab in the preferences dialog" msgstr "Tercihler iletişim kutusunda Genel sekmeyi böl" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:163 msgid "Improve behavior when toggling playlist under tiling window managers" msgstr "" "Döşeme pencere yöneticileri altında oynatma listesini değiştirirken " "davranışı iyileştirin" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:166 msgid "Move app menu items to primary menu" msgstr "Uygulama menüsü ögelerini birincil menüye taşı" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:169 msgid "Use separate MPRIS DBus connection for each window" msgstr "Her pencere için ayrı MPRIS DBus bağlantısı kullan" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:172 msgid "Add support for MPRIS property LoopStatus" msgstr "MPRIS özelliği LoopStatus için destek ekle" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:175 msgid "" "Add option --mpv-options for setting arbitrary mpv options from the command-" "line" msgstr "" "Seçenek ekle, komut satırından mpv seçeneklerini ayarlamak için --mpv-" "options" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:191 msgid "Set default screenshot directory to XDG_PICTURES_DIR" msgstr "Öntanımlı ekran görüntüsü dizinini XDG_PICTURES_DIR olarak ayarla" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:194 msgid "" "Improve handling of --window-scale, --autofit, --autofit-larger, and " "--autofit-smaller" msgstr "" "İyileştirme ekle - -pencere-ölçeği, -otoölçek - otoölçek-büyük ve otoölçek-" "küçük" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:198 msgid "Add command line option for setting WM_ROLE" msgstr "WM_ROLE ayarı için komut satırı seçeneği ekle" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:201 msgid "Add context menu item for removing playlist items" msgstr "Oynatma listesi ögelerini kaldırmak için içerik menüsü ögesi ekle" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:204 msgid "Add context menu item for copying location of playlist items" msgstr "" "Oynatma listesi ögelerinin konumunu kopyalamak için bağlam menüsü ögesi ekle" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:219 msgid "" "Add option to make skip buttons change playlist entries rather than chapters" msgstr "" "Atla düğmelerinin bölümler yerine oynatma listesi girişlerini değiştirmesini" " sağlamak için seçenek ekle" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:223 msgid "Make the file chooser accept non-local locations" msgstr "Dosya seçicinin yerel olmayan kaynakları kabul etmesini sağla" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:226 msgid "Add right-click menu entry for looping a single file" msgstr "Tek bir dosyayı yinelemek için sağ tıklatma menüsü girişi ekle" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:229 msgid "Handle property change events for fullscreen and window-scale" msgstr "Tam ekran ve pencere ölçeği için özellik değiştirme olaylarını işle" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:232 msgid "Add option to autohide mouse cursor in windowed mode" msgstr "Pencere kipinde fare imlecini otomatik gizle" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:246 msgid "The main window showing the application in action" msgstr "Uygulamayı çalışırken gösteren ana pencere" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:250 msgid "The main window with CSD disabled" msgstr "CSD'nin devre dışı bırakıldığı ana pencere" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:254 msgid "The main window with playlist open" msgstr "Oynatma listesi açık olan ana pencere" #: data/io.github.celluloid_player.Celluloid.desktop.in:5 msgid "Multimedia Player" msgstr "Çoklu Ortam Oynatıcı" #: data/io.github.celluloid_player.Celluloid.desktop.in:6 msgid "Play movies and videos" msgstr "Filmleri ve videoları oynatın" #. Translators: Search terms to find this application. Don't translate the #. semicolons! The list MUST also end with a semicolon! #: data/io.github.celluloid_player.Celluloid.desktop.in:17 msgid "Video;Movie;Film;Clip;Series;Player;DVD;TV;Disc;Album;Music;GNOME;mpv;" msgstr "" "Video;Film;Müzik;Klip;Diziler;Oynatıcı;DVD;TV;Disk;Albüm;Music;GNOME;mpv;" #: data/io.github.celluloid_player.Celluloid.desktop.in:23 msgid "New Window" msgstr "Yeni Pencere" #: src/celluloid-application.c:495 msgid "Playing" msgstr "Oynatılıyor" #: src/celluloid-application.c:551 msgid "Show release version" msgstr "Mevcut sürümü göster" #: src/celluloid-application.c:559 msgid "Enqueue" msgstr "Kuyruğa al" #: src/celluloid-application.c:567 msgid "Create a new window" msgstr "Yeni pencere oluştur" #: src/celluloid-application.c:576 msgid "OPTIONS" msgstr "SEÇENEKLER" #: src/celluloid-application.c:583 msgid "Set the window role" msgstr "Pencere rolünü ayarla" #: src/celluloid-application.c:591 msgid "Don't connect to an already-running instance" msgstr "Zaten çalışan bir örneğe bağlanmayın" #: src/celluloid-control-box.c:362 msgid "Pause" msgstr "Duraklat" #: src/celluloid-control-box.c:362 src/celluloid-control-box.c:565 msgid "Play" msgstr "Oynat" #: src/celluloid-control-box.c:568 msgid "Stop" msgstr "Durdur" #: src/celluloid-control-box.c:571 msgid "Forward" msgstr "İleri Sar" #: src/celluloid-control-box.c:574 msgid "Rewind" msgstr "Geri Sar" #: src/celluloid-control-box.c:577 msgid "Next Chapter" msgstr "Sonraki Bölüm" #: src/celluloid-control-box.c:580 msgid "Previous Chapter" msgstr "Önceki Bölüm" #: src/celluloid-control-box.c:583 msgid "Loop Playlist" msgstr "Yinele" #: src/celluloid-control-box.c:586 msgid "Shuffle Playlist" msgstr "" #: src/celluloid-control-box.c:589 src/celluloid-header-bar.c:91 msgid "Toggle Fullscreen" msgstr "Tam Ekran ⏎" #: src/celluloid-controller.c:992 src/celluloid-view.c:1558 msgid "Error" msgstr "Hata" #: src/celluloid-file-chooser.c:139 src/celluloid-plugins-manager.c:170 msgid "All Files" msgstr "Tüm Dosyalar" #: src/celluloid-file-chooser.c:147 msgid "Media Files" msgstr "Medya Dosyaları" #: src/celluloid-file-chooser.c:158 msgid "Audio Files" msgstr "Ses Dosyaları" #: src/celluloid-file-chooser.c:166 msgid "Video Files" msgstr "Video Dosyaları" #: src/celluloid-file-chooser.c:174 msgid "Image Files" msgstr "Görüntü Dosyaları" #: src/celluloid-file-chooser.c:184 msgid "Subtitle Files" msgstr "Altyazı Dosyaları" #: src/celluloid-menu.c:106 msgid "None" msgstr "Yok" #. For simplicity, also dup the default string used when the #. * track has no title. #: src/celluloid-menu.c:121 msgid "Unknown" msgstr "Bilinmeyen" #: src/celluloid-menu.c:154 msgid "_Load External…" msgstr "_Harici Kaynaktan Seç…" #. Disable the menu item by setting the action to something #. * invalid. #: src/celluloid-menu.c:207 msgid "No disc found" msgstr "Disk bulunamadı" #: src/celluloid-menu.c:235 msgid "_File" msgstr "_Dosya" #: src/celluloid-menu.c:236 src/celluloid-menu.c:318 msgid "_Open…" msgstr "_Aç…" #: src/celluloid-menu.c:237 src/celluloid-menu.c:319 msgid "Open _Folder…" msgstr "" #: src/celluloid-menu.c:238 src/celluloid-menu.c:320 msgid "Open _Location…" msgstr "_Konum Aç…" #: src/celluloid-menu.c:239 msgid "Open _Disc…" msgstr "_Disk Aç…" #: src/celluloid-menu.c:240 src/celluloid-menu.c:290 msgid "_Save Playlist" msgstr "Listeyi _Kaydet" #: src/celluloid-menu.c:241 src/celluloid-menu.c:323 msgid "_New Window" msgstr "_Yeni Pencere" #: src/celluloid-menu.c:242 msgid "_Quit" msgstr "_Çık" #: src/celluloid-menu.c:243 msgid "_Edit" msgstr "_Düzenle" #: src/celluloid-menu.c:244 src/celluloid-menu.c:296 msgid "_Preferences" msgstr "_Tercihler" #: src/celluloid-menu.c:245 src/celluloid-menu.c:292 msgid "_Video Track" msgstr "_Video" #: src/celluloid-menu.c:246 src/celluloid-menu.c:293 msgid "_Audio Track" msgstr "_Diller" #: src/celluloid-menu.c:247 src/celluloid-menu.c:294 msgid "S_ubtitle Track" msgstr "_Altyazılar" #: src/celluloid-menu.c:248 msgid "_View" msgstr "_Görünüm" #: src/celluloid-menu.c:249 src/celluloid-menu.c:287 msgid "_Toggle Controls" msgstr "_Kontrol Tuşları" #: src/celluloid-menu.c:250 src/celluloid-menu.c:289 msgid "_Toggle Playlist" msgstr "_Oynatma Listesi" #: src/celluloid-menu.c:251 msgid "_Fullscreen" msgstr "_Tam Ekran" #: src/celluloid-menu.c:252 msgid "_Help" msgstr "_Yardım" #: src/celluloid-menu.c:253 src/celluloid-menu.c:297 msgid "_Keyboard Shortcuts" msgstr "_Klavye Kısayolları" #: src/celluloid-menu.c:254 src/celluloid-menu.c:298 msgid "_About Celluloid" msgstr "Celluloid _Hakkında" #: src/celluloid-menu.c:321 msgid "Open _Disc" msgstr "Disk _Aç" #: src/celluloid-mpv.c:240 #, c-format msgid "Playback was terminated abnormally. Reason: %s." msgstr "Oynatma anormal şekilde sonlandırıldı. Neden: %s." #: src/celluloid-open-location-dialog.c:130 msgid "Location:" msgstr "Konum:" #: src/celluloid-open-location-dialog.c:136 #: src/celluloid-preferences-dialog.c:401 msgid "_Cancel" msgstr "_İptal" #: src/celluloid-open-location-dialog.c:138 msgid "_Open" msgstr "_Aç" #: src/celluloid-player.c:550 msgid "Failed to apply one or more MPV options." msgstr "Bir veya daha fazla MPV seçeneği uygulanamadı." #: src/celluloid-playlist-widget.c:784 msgid "_Copy Location" msgstr "Konumu _Kopyala" #: src/celluloid-playlist-widget.c:785 msgid "_Remove" msgstr "_Kaldır" #: src/celluloid-playlist-widget.c:787 msgid "_Add…" msgstr "_Ekle…" #: src/celluloid-playlist-widget.c:788 msgid "Add _Folder…" msgstr "" #: src/celluloid-playlist-widget.c:789 msgid "Add _Location…" msgstr "_Konum Ekle…" #: src/celluloid-playlist-widget.c:790 msgid "_Shuffle" msgstr "_Karıştır" #: src/celluloid-playlist-widget.c:791 msgid "Loop _File" msgstr "_Dosyayı Yinele" #: src/celluloid-playlist-widget.c:792 msgid "Loop _Playlist" msgstr "_Yinele" #: src/celluloid-playlist-widget.c:933 src/celluloid-shortcuts-window.c:136 msgid "Playlist" msgstr "Oynatma Listesi" #: src/celluloid-playlist-widget.c:941 msgid "Playlist is empty" msgstr "Oynatma listesi boş" #: src/celluloid-plugins-manager.c:163 src/celluloid-plugins-manager.c:409 msgid "Add Plugin" msgstr "Eklenti Ekle" #: src/celluloid-plugins-manager.c:175 msgid "Lua Plugins" msgstr "Lua Eklentileri" #: src/celluloid-plugins-manager.c:181 msgid "JavaScript Plugins" msgstr "JavaScript Eklentileri" #: src/celluloid-plugins-manager.c:186 msgid "C Plugins" msgstr "С Eklentileri" #: src/celluloid-plugins-manager.c:334 #, c-format msgid "Failed to copy file from '%s' to '%s'. Reason: %s" msgstr "Dosya kopyalanamadı '%s' - '%s'. Sebep: %s" #: src/celluloid-plugins-manager.c:385 msgid "No plugins found" msgstr "Eklenti bulunamadı" #: src/celluloid-plugins-manager-item.c:79 msgid "Remove" msgstr "Kaldır" #: src/celluloid-plugins-manager-item.c:178 msgid "" "Are you sure you want to remove this script? This action cannot be undone." msgstr "" "Bu komut dosyasını kaldırmak istediğinizden emin misiniz? Bu eylem geri " "alınamaz." #: src/celluloid-plugins-manager-item.c:199 #, c-format msgid "Failed to delete file '%s'. Reason: %s" msgstr "Dosya silinemedi '%s'. Sebep: %s" #: src/celluloid-preferences-dialog.c:304 msgid "Automatically resize window to fit video" msgstr "Videoya sığması için pencereyi otomatik olarak yeniden boyutlandır" #: src/celluloid-preferences-dialog.c:307 msgid "Enable client-side decorations" msgstr "İstemci tarafı süslemelerini etkinleştir" #: src/celluloid-preferences-dialog.c:310 msgid "Enable dark theme" msgstr "Koyu temayı etkinleştir" #: src/celluloid-preferences-dialog.c:313 msgid "Use floating controls in windowed mode" msgstr "Pencere kipinde kayan kontroller kullan" #: src/celluloid-preferences-dialog.c:316 msgid "Autohide mouse cursor in windowed mode" msgstr "Pencere kipine fare imlecini otomatik gizle" #: src/celluloid-preferences-dialog.c:319 msgid "Use skip buttons for controlling playlist" msgstr "Oynatma listesini kontrol için atlama düğmelerini kullan" #: src/celluloid-preferences-dialog.c:322 msgid "Remember last file's location" msgstr "Son dosyanın konumunu hatırla" #: src/celluloid-preferences-dialog.c:327 msgid "Load MPV configuration file" msgstr "MPV yapılandırma dosyasını yükle" #: src/celluloid-preferences-dialog.c:330 msgid "MPV configuration file:" msgstr "MPV yapılandırma dosyası:" #: src/celluloid-preferences-dialog.c:333 msgid "Load MPV input configuration file" msgstr "MPV giriş yapılandırma dosyasını yükle" #: src/celluloid-preferences-dialog.c:336 msgid "MPV input configuration file:" msgstr "MPV giriş yapılandırma dosyası:" #: src/celluloid-preferences-dialog.c:341 msgid "Always open new window" msgstr "Her zaman yeni pencere aç" #: src/celluloid-preferences-dialog.c:344 msgid "Ignore playback errors" msgstr "Oynatma hatalarını yoksay" #: src/celluloid-preferences-dialog.c:347 msgid "Prefetch metadata" msgstr "Meta verileri önceden al" #: src/celluloid-preferences-dialog.c:350 msgid "Enable MPRIS support" msgstr "MPRIS desteğini etkinleştir" #: src/celluloid-preferences-dialog.c:353 msgid "Enable media keys support" msgstr "Medya tuşları desteğini etkinleştir" #: src/celluloid-preferences-dialog.c:356 msgid "Extra MPV options:" msgstr "Özel MPV seçenekleri:" #: src/celluloid-preferences-dialog.c:389 msgid "Interface" msgstr "Arabirim" #: src/celluloid-preferences-dialog.c:392 msgid "Config Files" msgstr "Yapılandırma Dosyaları" #: src/celluloid-preferences-dialog.c:395 msgid "Miscellaneous" msgstr "Çeşitli" #: src/celluloid-preferences-dialog.c:398 msgid "Plugins" msgstr "Eklentiler" #: src/celluloid-preferences-dialog.c:403 msgid "_Save" msgstr "_Kaydet" #: src/celluloid-preferences-dialog.c:421 msgid "Preferences" msgstr "Tercihler" #: src/celluloid-shortcuts-window.c:57 msgid "Open file" msgstr "Dosya aç" #: src/celluloid-shortcuts-window.c:58 msgid "Open location" msgstr "Konum aç" #: src/celluloid-shortcuts-window.c:59 msgid "Add file to playlist" msgstr "Oynatma listesine dosya ekle" #: src/celluloid-shortcuts-window.c:60 msgid "Add location to playlist" msgstr "Oynatma listesine konum ekle" #: src/celluloid-shortcuts-window.c:61 msgid "Show preferences dialog" msgstr "Tercihler iletişim kutusunu göster" #: src/celluloid-shortcuts-window.c:62 msgid "Toggle controls" msgstr "Kontrolleri değiştir" #: src/celluloid-shortcuts-window.c:63 msgid "Toggle playlist" msgstr "Oynatma listesini değiştir" #: src/celluloid-shortcuts-window.c:64 msgid "Toggle fullscreen mode" msgstr "Tam ekran kipini değiştir" #: src/celluloid-shortcuts-window.c:65 msgid "Leave fullscreen mode" msgstr "Tam ekran kipinden çık" #: src/celluloid-shortcuts-window.c:66 msgid "Toggle OSD states between normal and playback time/duration" msgstr "OSD durumlarını normal ve oynatma arasında değiştir zaman/aralık" #: src/celluloid-shortcuts-window.c:67 msgid "Show filename on the OSD" msgstr "OSD'de dosya adını göster" #: src/celluloid-shortcuts-window.c:68 msgid "Show progress, elapsed time, and duration on the OSD" msgstr "OSD 'de ilerlemeyi, geçen süreyi ve süreyi göster" #: src/celluloid-shortcuts-window.c:71 msgid "Seek backward/forward 5 seconds" msgstr "5 saniye ileri/geri ara" #: src/celluloid-shortcuts-window.c:72 msgid "Exact seek backward/forward 1 second" msgstr "Tam olarak 1 saniye ileri/geri ara" #: src/celluloid-shortcuts-window.c:73 msgid "Seek backward/forward 1 minute" msgstr "1 dakika ileri/geri ara" #: src/celluloid-shortcuts-window.c:74 msgid "Exact seek backward/forward 5 seconds" msgstr "Tam olarak 5 saniye ileri/geri ara" #: src/celluloid-shortcuts-window.c:75 msgid "Seek to previous/next subtitle" msgstr "Önceki/sonraki altyazıyı ara" #: src/celluloid-shortcuts-window.c:76 msgid "Step backward/forward a single frame" msgstr "Tek kare ileri/geri atla" #: src/celluloid-shortcuts-window.c:77 msgid "Seek to the beginning of the previous/next chapter" msgstr "Önceki/sonraki bölümün başlangıcını araştır" #: src/celluloid-shortcuts-window.c:80 msgid "Decrease/increase playback speed by 10%" msgstr "Oynatma hızını 10% oranında azalt/artır" #: src/celluloid-shortcuts-window.c:81 msgid "Halve/double current playback speed" msgstr "Yarım/çift akım oynatma hızı" #: src/celluloid-shortcuts-window.c:82 msgid "Reset playback speed to normal" msgstr "Oynatma hızını normale sıfırla" #: src/celluloid-shortcuts-window.c:83 msgid "Go backward/forward in the playlist" msgstr "Oynatma listesinde ileri/geri git" #: src/celluloid-shortcuts-window.c:84 msgid "Remove selected playlist item" msgstr "Seçilen oynatma listesi ögesini kaldır" #: src/celluloid-shortcuts-window.c:85 msgid "Save playlist" msgstr "Oynatma listesini kaydet" #: src/celluloid-shortcuts-window.c:86 msgid "Set/clear A-B loop points" msgstr "A-B yineleme noktalarını ayarla/temizle" #: src/celluloid-shortcuts-window.c:87 msgid "Toggle infinite looping" msgstr "Sonsuz yinelemeyi değiştir" #: src/celluloid-shortcuts-window.c:88 msgid "Pause or unpause" msgstr "Duraklat veya devam et" #: src/celluloid-shortcuts-window.c:89 msgid "Quit" msgstr "Çık" #: src/celluloid-shortcuts-window.c:90 msgid "Save current playback position and quit" msgstr "Geçerli oynatma konumunu kaydet ve çık" #: src/celluloid-shortcuts-window.c:93 msgid "Enter search mode" msgstr "Arama kipine gir" #: src/celluloid-shortcuts-window.c:94 msgid "Jump to next match" msgstr "Bir sonraki eşlemeye atla" #: src/celluloid-shortcuts-window.c:95 msgid "Jump to previous match" msgstr "Bir önceki eşlemeye atla" #: src/celluloid-shortcuts-window.c:96 msgid "Exit search mode" msgstr "Arama kipinden çık" #: src/celluloid-shortcuts-window.c:99 msgid "Cycle through audio tracks" msgstr "Ses parçaları arasında geçiş yap" #: src/celluloid-shortcuts-window.c:100 src/celluloid-shortcuts-window.c:101 msgid "Decrease/increase volume" msgstr "Sesi azalt/arttır" #: src/celluloid-shortcuts-window.c:102 msgid "Mute or unmute" msgstr "Sesi kapat/aç" #: src/celluloid-shortcuts-window.c:103 msgid "Adjust audio delay by +/- 0.1 seconds" msgstr "Ses gecikmesini +/- 0.1 saniye olarak ayarla" #: src/celluloid-shortcuts-window.c:106 msgid "Toggle subtitle visibility" msgstr "Altyazı görünürlüğünü değiştir" #: src/celluloid-shortcuts-window.c:107 msgid "Cycle through available subtitles" msgstr "Kullanılabilir altyazılar arasında geçiş yap" #: src/celluloid-shortcuts-window.c:108 msgid "Adjust subtitle delay by +/- 0.1 seconds" msgstr "Altyazı gecikmesini +/- 0.1 saniye olarak ayarla" #: src/celluloid-shortcuts-window.c:109 msgid "Toggle SSA/ASS subtitles style override" msgstr "SSA/ASS altyazı stili geçersiz kılmayı değiştir" #: src/celluloid-shortcuts-window.c:110 msgid "Move subtitles up/down" msgstr "Altyazıları yukarı/aşağı taşı" #: src/celluloid-shortcuts-window.c:111 msgid "Toggle VSFilter aspect compatibility mode" msgstr "VSFilter en boy uyumluluk kipini değiştir" #: src/celluloid-shortcuts-window.c:114 msgid "Cycle through video tracks" msgstr "Yinelenen mevcut video parçaları" #: src/celluloid-shortcuts-window.c:115 msgid "Decrease/increase pan-and-scan range" msgstr "Pan ve tarama aralığını azalt/artır" #: src/celluloid-shortcuts-window.c:116 msgid "Take a screenshot" msgstr "Ekran görüntüsü al" #: src/celluloid-shortcuts-window.c:117 msgid "Take a screenshot, without subtitles" msgstr "Altyazısız ekran görüntüsü al" #: src/celluloid-shortcuts-window.c:118 msgid "Take a screenshot, as the window shows it" msgstr "Pencerenin gösterdiği gibi bir ekran görüntüsü al" #: src/celluloid-shortcuts-window.c:119 msgid "Resize video to half its original size" msgstr "Videoyu orijinal boyutunun yarısı olarak yeniden boyutlandır" #: src/celluloid-shortcuts-window.c:120 msgid "Resize video to its original size" msgstr "Videoyu orijinal boyuta yeniden boyutlandır" #: src/celluloid-shortcuts-window.c:121 msgid "Resize video to double its original size" msgstr "Orijinal boyutunu ikiye katlamak için videoyu yeniden boyutlandır" #: src/celluloid-shortcuts-window.c:122 msgid "Adjust contrast" msgstr "Karşıtlığı ayarla" #: src/celluloid-shortcuts-window.c:123 msgid "Adjust brightness" msgstr "Parlaklığı ayarla" #: src/celluloid-shortcuts-window.c:124 msgid "Adjust gamma" msgstr "Gama'yı ayarla" #: src/celluloid-shortcuts-window.c:125 msgid "Adjust saturation" msgstr "Doygunluğu ayarla" #: src/celluloid-shortcuts-window.c:126 msgid "Activate or deactivate deinterlacer" msgstr "Deinterlacer özelliğini etkinleştir veya devre dışı bırak" #: src/celluloid-shortcuts-window.c:127 msgid "Cycle aspect ratio override" msgstr "Yineleme en boy oranı geçersiz kıl" #: src/celluloid-shortcuts-window.c:130 msgid "User Interface" msgstr "Kullanıcı Arabirimi" #: src/celluloid-shortcuts-window.c:131 msgid "Video" msgstr "Video" #: src/celluloid-shortcuts-window.c:132 msgid "Audio" msgstr "Ses" #: src/celluloid-shortcuts-window.c:133 msgid "Subtitle" msgstr "Altyazı" #: src/celluloid-shortcuts-window.c:134 msgid "Playback" msgstr "Oynat" #: src/celluloid-shortcuts-window.c:135 msgid "Seeking" msgstr "Geçiş" #: src/celluloid-view.c:728 msgid "Load Audio Track…" msgstr "Ses Parçası Yükle…" #: src/celluloid-view.c:732 msgid "Load Video Track…" msgstr "" #: src/celluloid-view.c:736 msgid "Load Subtitle Track…" msgstr "Altyazı Parçası Yükle…" #: src/celluloid-view.c:901 msgid "" "Enabling or disabling client-side decorations requires restarting to take " "effect." msgstr "" "İstemci tarafı süslemelerin etkinleştirilmesi veya devre dışı bırakılması " "için yeniden başlatma gerekir." #: src/celluloid-view.c:1444 msgid "Add Folder to Playlist" msgstr "" #: src/celluloid-view.c:1444 msgid "Open Folder" msgstr "" #: src/celluloid-view.c:1449 msgid "Add File to Playlist" msgstr "Oynatma Listesine Dosya Ekle" #: src/celluloid-view.c:1449 msgid "Open File" msgstr "Dosya Aç" #: src/celluloid-view.c:1485 msgid "Add Location to Playlist" msgstr "Oynatma Listesine Konum Ekle" #: src/celluloid-view.c:1486 msgid "Open Location" msgstr "Konum Aç" #: src/celluloid-view.c:1532 msgid "Save Playlist" msgstr "Oynatma Listesini Kaydet" #: src/celluloid-view.c:1598 msgid "A GTK frontend for MPV" msgstr "MPV için bir GTK arayüzü" #: src/celluloid-view.c:1608 msgid "translator-credits" msgstr "Serdar Sağlam " celluloid-0.20/po/uk.po000066400000000000000000001172261373135401300150150ustar00rootroot00000000000000# Ukrainian translations for gnome-mpv package. # , 2019. # Stepan Perun , 2019. #zanata # gnome-mpv , 2019. #zanata # gnome-mpv , 2020. #zanata msgid "" msgstr "" "Project-Id-Version: 0.17\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-08-09 20:53+0300\n" "PO-Revision-Date: 2020-06-23 10:40-0400\n" "Last-Translator: Copied by Zanata \n" "Language-Team: Ukrainian\n" "Language: uk\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" "X-Generator: Zanata 4.6.2\n" #: data/io.github.celluloid_player.Celluloid.gschema.xml:11 msgid "" "Whether the settings has already been migrated from the previous version" msgstr "Перенесення (міграція) налаштувань користувача з попередньої версії" #: data/io.github.celluloid_player.Celluloid.gschema.xml:17 #, fuzzy msgid "Whether or not to automatically resize window to fit video" msgstr "Автоматично приховувати курсор миші у віконному режимі" #: data/io.github.celluloid_player.Celluloid.gschema.xml:23 msgid "Enable or disable dark theme" msgstr "Увімкнути або вимкнути темну тему" #: data/io.github.celluloid_player.Celluloid.gschema.xml:29 msgid "Enable or disable client-side decorations" msgstr "Увімкнути або вимкнути декорування вікна на стороні клієнта" #: data/io.github.celluloid_player.Celluloid.gschema.xml:35 msgid "Whether or not to use floating controls in windowed mode" msgstr "Використовувати плаваючі елементи керування у віконному режимі" #: data/io.github.celluloid_player.Celluloid.gschema.xml:41 msgid "Whether or not to autohide mouse cursor in windowed mode" msgstr "Автоматично приховувати курсор миші у віконному режимі" #: data/io.github.celluloid_player.Celluloid.gschema.xml:47 msgid "The minimum cursor speed at which floating controls will be unhidden." msgstr "" "Мінімальна швидкість курсору, коли плаваючі елементи управління не " "приховані." #: data/io.github.celluloid_player.Celluloid.gschema.xml:54 msgid "" "The size of the dead zone in which cursor movement will not cause the " "controls to be shown." msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:60 msgid "Whether or not to use skip buttons for controlling playlist" msgstr "Використовувати кнопки пропуску для керування списком відтворення" #: data/io.github.celluloid_player.Celluloid.gschema.xml:66 msgid "" "Whether or not to make file chooser dialog remember last folder accessed" msgstr "Запам'ятати чи ні останнє розташування в діалозі відкриття файлу" #: data/io.github.celluloid_player.Celluloid.gschema.xml:72 msgid "Whether or not to create new windows when there is already an instance" msgstr "Створювати нові вікна за наявності відкритого примірника" #: data/io.github.celluloid_player.Celluloid.gschema.xml:78 #: src/celluloid-application.c:575 msgid "Options to pass to mpv" msgstr "Перейти до параметрів MPV" #: data/io.github.celluloid_player.Celluloid.gschema.xml:84 msgid "Path to mpv configuration file" msgstr "Шлях до файлу конфігурації MPV" #: data/io.github.celluloid_player.Celluloid.gschema.xml:90 msgid "Load or don't load mpv configuration file" msgstr "Завантажити файл конфігурації MPV" #: data/io.github.celluloid_player.Celluloid.gschema.xml:96 msgid "Path to mpv input configuration file" msgstr "Шлях до файлу конфігурації вводу MPV" #: data/io.github.celluloid_player.Celluloid.gschema.xml:102 msgid "Load or don't load mpv input configuration file" msgstr "Завантажити файл конфігурації вводу MPV" #: data/io.github.celluloid_player.Celluloid.gschema.xml:108 msgid "Whether or not to enable MPRIS support" msgstr "Увімкнути підтримку MPRIS" #: data/io.github.celluloid_player.Celluloid.gschema.xml:114 msgid "" "Whether or not to enable GNOME-Settings-Daemon-based media keys support" msgstr "" "Увімкнути підтримку мультимедійних клавіш на основі GNOME-Settings-Daemon" #: data/io.github.celluloid_player.Celluloid.gschema.xml:120 msgid "Whether or not to prefetch metadata for non-current playlist entries" msgstr "" "Попередньо довантажувати метадані для записів поза поточним списком " "відтворення" #: data/io.github.celluloid_player.Celluloid.gschema.xml:126 msgid "" "Whether or not to display an error message when playback of a file ends with" " an error" msgstr "" "Виводити чи не виводити повідомлення про помилку при завершенні відтворення " "файлу з помилкою" #: data/io.github.celluloid_player.Celluloid.gschema.xml:132 msgid "Whether or not to inhibit session idling when something is playing" msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:142 msgid "Width of the window" msgstr "Ширина вікна" #: data/io.github.celluloid_player.Celluloid.gschema.xml:148 msgid "Height of the window" msgstr "Висота вікна" #: data/io.github.celluloid_player.Celluloid.gschema.xml:154 msgid "Whether or not the window is maximized" msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:161 msgid "Volume of player" msgstr "Гучність" #: data/io.github.celluloid_player.Celluloid.gschema.xml:167 msgid "Whether or not to loop when the end of playlist is reached" msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:173 msgid "Width of the playlist" msgstr "Ширина списку відтворення" #: data/io.github.celluloid_player.Celluloid.gschema.xml:179 msgid "Show or not show the controls" msgstr "Показати або не показувати елементи керування" #: data/io.github.celluloid_player.Celluloid.gschema.xml:185 msgid "Show or not show the playlist" msgstr "Показати або приховати список відтворення" #: data/io.github.celluloid_player.Celluloid.gschema.xml:191 msgid "URI of the last folder accessed" msgstr "Адреса останнього відкритої теки" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:7 #: data/io.github.celluloid_player.Celluloid.desktop.in:4 #: src/celluloid-application.c:451 msgid "Celluloid" msgstr "Celluloid" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:8 msgid "GTK+ frontend for mpv" msgstr "GTK+ інтерфейс для MPV" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:16 msgid "" "Celluloid is a simple media player that can play virtually all video and " "audio formats. It supports playlists and MPRIS2 media player controls. The " "design of Celluloid follows the GNOME Human Interface Guidelines, but can " "also be adapted for other systems that don't use client-side decorations " "(CSD). It is based on the mpv library and GTK." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:23 msgid "Features:" msgstr "Можливості:" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:25 msgid "Drag and drop playlist" msgstr "Підтримка drag-and-drop" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:26 msgid "Loading external mpv configuration files" msgstr "Завантаження зовнішніх конфігураційних файлів MPV" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:27 msgid "MPRIS2 D-Bus interface" msgstr "Інтерфейс MPRIS2 D-Bus" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:30 msgid "The Celluloid Developers" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:34 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:87 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:117 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:156 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:187 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:215 msgid "This release contains the following changes:" msgstr "Цей випуск містить наступні зміни:" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:38 msgid "" "Adjust the range of volume button based on the value of the volume-max " "property." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:42 msgid "Retain window maximization state across sessions." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:45 msgid "Retain loop state across sessions." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:48 msgid "Implement playlist search." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:51 msgid "Update the list of shortcuts in Keyboard Shortcuts dialog." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:54 msgid "Correctly handle quotes and escape sequences in extra mpv options." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:57 msgid "Display time at cursor position when hovering the seek bar." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:60 msgid "" "Deprecate '--mpv-options'. Options starting with '--mpv-' can be used to set" " mpv options instead. For example, passing '--mpv-vf=vflip' to Celluloid is " "equivalent to passing '--vf=vflip' to mpv." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:66 msgid "" "Add support for configuring dead zone, an area in which mouse movement will " "not cause controls to be shown." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:70 msgid "Make window sizing work correctly with HiDPI displays." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:73 msgid "Add Finnish translation by Kimmo Kujansuu." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:76 msgid "Add Slovenian translation by @bertronika." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:80 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:110 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:149 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:180 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:208 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:236 msgid "This listing is incomplete. See git log for complete changelog." msgstr "Цей список є неповним. Повний список змін див. в журналі git." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:91 msgid "Add Persian translation by @danialbehzadi" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:94 msgid "Add Ukranian translation by @vl-nix" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:97 msgid "" "Add support for showing/hiding window decorations using the mpv option " "--border" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:100 msgid "Add menu item for opening discs" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:103 msgid "Block cursor autohide when volume popup is open in windowed mode" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:106 msgid "Fix crash with mpv 0.30" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:121 msgid "Rename project to Celluloid" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:124 msgid "Add Turkish translation by @TeknoMobil" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:127 msgid "Add Esperanto translation by @F3nd0" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:130 msgid "Migrate from opengl-cb to the new render API" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:133 msgid "Handle numpad keybindings" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:136 msgid "Handle unicode keybindings" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:139 msgid "Forward media key events to mpv" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:142 #, fuzzy msgid "" "Add dconf key for controlling cursor speed at which controls are unhidden" msgstr "" "Мінімальна швидкість курсору, коли плаваючі елементи управління не " "приховані." #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:145 #, fuzzy msgid "Add option for suppressing playback errors" msgstr "Ігнорувати помилки відтворення" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:160 msgid "Split up the General tab in the preferences dialog" msgstr "Розділіть вкладку Загальні в діалозі налаштувань" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:163 msgid "Improve behavior when toggling playlist under tiling window managers" msgstr "Поліпшення поведінки при перемиканні списку відтворення" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:166 msgid "Move app menu items to primary menu" msgstr "Перемістити елементи меню програми в основне меню" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:169 msgid "Use separate MPRIS DBus connection for each window" msgstr "Використовувати окреме з'єднання MPRIS DBus для кожного вікна" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:172 msgid "Add support for MPRIS property LoopStatus" msgstr "Додати підтримку циклу для MPRIS" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:175 msgid "" "Add option --mpv-options for setting arbitrary mpv options from the command-" "line" msgstr "" "Додати параметр -- mpv-options для установки довільних параметрів mpv з " "командного рядка" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:191 msgid "Set default screenshot directory to XDG_PICTURES_DIR" msgstr "Встановити каталог за замовчуванням для скріншотів у XDG_PICTURES_DIR" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:194 msgid "" "Improve handling of --window-scale, --autofit, --autofit-larger, and " "--autofit-smaller" msgstr "" "Поліпшення обробки --window-scale, --autofit, --autofit-larger, and " "--autofit-smaller" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:198 msgid "Add command line option for setting WM_ROLE" msgstr "Додати параметр командного рядка для встановлення WM_ROLE" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:201 msgid "Add context menu item for removing playlist items" msgstr "" "Додати пункт контекстного меню для видалення елементів списку відтворення" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:204 msgid "Add context menu item for copying location of playlist items" msgstr "" "Додати пункт контекстного меню для копіювання розташування елементів списку " "відтворення" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:219 msgid "" "Add option to make skip buttons change playlist entries rather than chapters" msgstr "" "Додати кнопки пропуску для зміни запису списку відтворення, а не глави" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:223 msgid "Make the file chooser accept non-local locations" msgstr "Приймати не локальні розташування" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:226 msgid "Add right-click menu entry for looping a single file" msgstr "Додати пункт меню правою кнопкою миші для зациклення одного файлу" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:229 msgid "Handle property change events for fullscreen and window-scale" msgstr "" "Обробляти події зміни властивостей для повноекранного режиму і масштабу " "вікна" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:232 msgid "Add option to autohide mouse cursor in windowed mode" msgstr "" "Додати опцію автоматичного приховування курсору миші у віконному режимі" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:246 msgid "The main window showing the application in action" msgstr "Головне вікно, яке показує програму у дії" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:250 msgid "The main window with CSD disabled" msgstr "Головне вікно з вимкненим CSD" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:254 msgid "The main window with playlist open" msgstr "Головне вікно з відкритим списком відтворення" #: data/io.github.celluloid_player.Celluloid.desktop.in:5 msgid "Multimedia Player" msgstr "" #: data/io.github.celluloid_player.Celluloid.desktop.in:6 msgid "Play movies and videos" msgstr "" #. Translators: Search terms to find this application. Don't translate the #. semicolons! The list MUST also end with a semicolon! #: data/io.github.celluloid_player.Celluloid.desktop.in:17 msgid "Video;Movie;Film;Clip;Series;Player;DVD;TV;Disc;Album;Music;GNOME;mpv;" msgstr "" #: data/io.github.celluloid_player.Celluloid.desktop.in:23 msgid "New Window" msgstr "Нове вікно" #: src/celluloid-application.c:495 msgid "Playing" msgstr "Відтворюється" #: src/celluloid-application.c:551 msgid "Show release version" msgstr "Показати версію релізу" #: src/celluloid-application.c:559 msgid "Enqueue" msgstr "Поставити в чергу" #: src/celluloid-application.c:567 msgid "Create a new window" msgstr "Створити нове вікно" #: src/celluloid-application.c:576 msgid "OPTIONS" msgstr "ПАРАМЕТРИ" #: src/celluloid-application.c:583 msgid "Set the window role" msgstr "Встановіть роль вікна" #: src/celluloid-application.c:591 msgid "Don't connect to an already-running instance" msgstr "Не підключатися до вже працюючого екземпляра" #: src/celluloid-control-box.c:362 msgid "Pause" msgstr "Призупинити" #: src/celluloid-control-box.c:362 src/celluloid-control-box.c:565 msgid "Play" msgstr "Відтворення" #: src/celluloid-control-box.c:568 msgid "Stop" msgstr "Зупинити" #: src/celluloid-control-box.c:571 msgid "Forward" msgstr "Перемотати вперед" #: src/celluloid-control-box.c:574 msgid "Rewind" msgstr "Перемотати назад" #: src/celluloid-control-box.c:577 msgid "Next Chapter" msgstr "Наступний розділ" #: src/celluloid-control-box.c:580 msgid "Previous Chapter" msgstr "Попередній розділ" #: src/celluloid-control-box.c:583 msgid "Loop Playlist" msgstr "Режим повтору" #: src/celluloid-control-box.c:586 msgid "Shuffle Playlist" msgstr "" #: src/celluloid-control-box.c:589 src/celluloid-header-bar.c:91 msgid "Toggle Fullscreen" msgstr "Перехід у повноекранний режим і назад" #: src/celluloid-controller.c:992 src/celluloid-view.c:1558 msgid "Error" msgstr "Помилка" #: src/celluloid-file-chooser.c:139 src/celluloid-plugins-manager.c:170 msgid "All Files" msgstr "Усі файли" #: src/celluloid-file-chooser.c:147 msgid "Media Files" msgstr "Медіафайли" #: src/celluloid-file-chooser.c:158 msgid "Audio Files" msgstr "Аудіофайли" #: src/celluloid-file-chooser.c:166 msgid "Video Files" msgstr "Відеофайли" #: src/celluloid-file-chooser.c:174 msgid "Image Files" msgstr "Файли зображень" #: src/celluloid-file-chooser.c:184 msgid "Subtitle Files" msgstr "Файли субтитрів" #: src/celluloid-menu.c:106 msgid "None" msgstr "Нічого" #. For simplicity, also dup the default string used when the #. * track has no title. #: src/celluloid-menu.c:121 msgid "Unknown" msgstr "Невідомий" #: src/celluloid-menu.c:154 msgid "_Load External…" msgstr "Зава_нтажити зовнішні…" #. Disable the menu item by setting the action to something #. * invalid. #: src/celluloid-menu.c:207 #, fuzzy msgid "No disc found" msgstr "Модулі не знайдено" #: src/celluloid-menu.c:235 msgid "_File" msgstr "_Файл" #: src/celluloid-menu.c:236 src/celluloid-menu.c:318 msgid "_Open…" msgstr "_Відкрити..." #: src/celluloid-menu.c:237 src/celluloid-menu.c:319 msgid "Open _Folder…" msgstr "" #: src/celluloid-menu.c:238 src/celluloid-menu.c:320 msgid "Open _Location…" msgstr "_Відкрити розташування..." #: src/celluloid-menu.c:239 #, fuzzy msgid "Open _Disc…" msgstr "_Відкрити розташування..." #: src/celluloid-menu.c:240 src/celluloid-menu.c:290 msgid "_Save Playlist" msgstr "З_берегти список відтворення" #: src/celluloid-menu.c:241 src/celluloid-menu.c:323 msgid "_New Window" msgstr "_Створити вікно" #: src/celluloid-menu.c:242 #, fuzzy msgid "_Quit" msgstr "Завершити" #: src/celluloid-menu.c:243 msgid "_Edit" msgstr "З_міни" #: src/celluloid-menu.c:244 src/celluloid-menu.c:296 msgid "_Preferences" msgstr "_Параметри" #: src/celluloid-menu.c:245 src/celluloid-menu.c:292 msgid "_Video Track" msgstr "В_ідео доріжка" #: src/celluloid-menu.c:246 src/celluloid-menu.c:293 msgid "_Audio Track" msgstr "_Аудіо доріжка" #: src/celluloid-menu.c:247 src/celluloid-menu.c:294 msgid "S_ubtitle Track" msgstr "Доріжка с_убтитрів" #: src/celluloid-menu.c:248 msgid "_View" msgstr "_Вигляд" #: src/celluloid-menu.c:249 src/celluloid-menu.c:287 msgid "_Toggle Controls" msgstr "_Показати/Приховати елементи керування" #: src/celluloid-menu.c:250 src/celluloid-menu.c:289 msgid "_Toggle Playlist" msgstr "_Показати/Приховати список відтворення" #: src/celluloid-menu.c:251 msgid "_Fullscreen" msgstr "_Повноекранний режим" #: src/celluloid-menu.c:252 msgid "_Help" msgstr "_Довідка" #: src/celluloid-menu.c:253 src/celluloid-menu.c:297 msgid "_Keyboard Shortcuts" msgstr "_Комбінації клавіш" #: src/celluloid-menu.c:254 src/celluloid-menu.c:298 msgid "_About Celluloid" msgstr "_Про Celluloid" #: src/celluloid-menu.c:321 #, fuzzy msgid "Open _Disc" msgstr "Відкрити файл" #: src/celluloid-mpv.c:240 #, c-format msgid "Playback was terminated abnormally. Reason: %s." msgstr "Відтворення було припинено. Причина: %s." #: src/celluloid-open-location-dialog.c:130 msgid "Location:" msgstr "Розташування:" #: src/celluloid-open-location-dialog.c:136 #: src/celluloid-preferences-dialog.c:401 msgid "_Cancel" msgstr "_Скасувати" #: src/celluloid-open-location-dialog.c:138 msgid "_Open" msgstr "_Відкрити" #: src/celluloid-player.c:550 msgid "Failed to apply one or more MPV options." msgstr "Не вдалося застосувати один або кілька параметрів MPV." #: src/celluloid-playlist-widget.c:784 msgid "_Copy Location" msgstr "_Копіювати розташування" #: src/celluloid-playlist-widget.c:785 msgid "_Remove" msgstr "Ви_лучити" #: src/celluloid-playlist-widget.c:787 msgid "_Add…" msgstr "_Додати…" #: src/celluloid-playlist-widget.c:788 msgid "Add _Folder…" msgstr "" #: src/celluloid-playlist-widget.c:789 msgid "Add _Location…" msgstr "Дод_ати розташування…" #: src/celluloid-playlist-widget.c:790 msgid "_Shuffle" msgstr "_У випадковому порядку" #: src/celluloid-playlist-widget.c:791 msgid "Loop _File" msgstr "Повторювати _файл" #: src/celluloid-playlist-widget.c:792 msgid "Loop _Playlist" msgstr "Повторювати _список відтворення" #: src/celluloid-playlist-widget.c:933 src/celluloid-shortcuts-window.c:136 msgid "Playlist" msgstr "Список відтворення" #: src/celluloid-playlist-widget.c:941 #, fuzzy msgid "Playlist is empty" msgstr "Список відтворення" #: src/celluloid-plugins-manager.c:163 src/celluloid-plugins-manager.c:409 msgid "Add Plugin" msgstr "Додати модуль" #: src/celluloid-plugins-manager.c:175 msgid "Lua Plugins" msgstr "Lua модулі" #: src/celluloid-plugins-manager.c:181 msgid "JavaScript Plugins" msgstr "JavaScript модулі" #: src/celluloid-plugins-manager.c:186 msgid "C Plugins" msgstr "С модулі" #: src/celluloid-plugins-manager.c:334 #, c-format msgid "Failed to copy file from '%s' to '%s'. Reason: %s" msgstr "Не вдалося скопіювати файл з '%s' до '%s'. Причина: %s" #: src/celluloid-plugins-manager.c:385 msgid "No plugins found" msgstr "Модулі не знайдено" #: src/celluloid-plugins-manager-item.c:79 msgid "Remove" msgstr "Видалити" #: src/celluloid-plugins-manager-item.c:178 msgid "" "Are you sure you want to remove this script? This action cannot be undone." msgstr "Ви впевнені, що хочете видалити цей скрипт? Ця дія незворотна." #: src/celluloid-plugins-manager-item.c:199 #, c-format msgid "Failed to delete file '%s'. Reason: %s" msgstr "Не вдалося видалити файл '%s'. Причина: %s" #: src/celluloid-preferences-dialog.c:304 msgid "Automatically resize window to fit video" msgstr "" #: src/celluloid-preferences-dialog.c:307 msgid "Enable client-side decorations" msgstr "Увімкнути декорування на стороні клієнта" #: src/celluloid-preferences-dialog.c:310 msgid "Enable dark theme" msgstr "Увімкнути темну тему" #: src/celluloid-preferences-dialog.c:313 msgid "Use floating controls in windowed mode" msgstr "Використовувати плаваючі елементи керування у віконному режимі" #: src/celluloid-preferences-dialog.c:316 msgid "Autohide mouse cursor in windowed mode" msgstr "Автоматично приховувати курсор миші у віконному режимі" #: src/celluloid-preferences-dialog.c:319 msgid "Use skip buttons for controlling playlist" msgstr "Використовувати кнопки пропуску для керування списком відтворення" #: src/celluloid-preferences-dialog.c:322 msgid "Remember last file's location" msgstr "Запам'ятати останнє розташування файлу(ів)" #: src/celluloid-preferences-dialog.c:327 msgid "Load MPV configuration file" msgstr "Завантажити файл конфігурації MPV" #: src/celluloid-preferences-dialog.c:330 msgid "MPV configuration file:" msgstr "Файл конфігурації MPV:" #: src/celluloid-preferences-dialog.c:333 msgid "Load MPV input configuration file" msgstr "Завантажити файл конфігурації вводу MPV" #: src/celluloid-preferences-dialog.c:336 msgid "MPV input configuration file:" msgstr "Файл конфігурації вводу MPV:" #: src/celluloid-preferences-dialog.c:341 msgid "Always open new window" msgstr "Завжди відкривати нове вікно" #: src/celluloid-preferences-dialog.c:344 msgid "Ignore playback errors" msgstr "Ігнорувати помилки відтворення" #: src/celluloid-preferences-dialog.c:347 msgid "Prefetch metadata" msgstr "Попередня вибірка метаданих" #: src/celluloid-preferences-dialog.c:350 msgid "Enable MPRIS support" msgstr "Увімкнути підтримку MPRIS" #: src/celluloid-preferences-dialog.c:353 msgid "Enable media keys support" msgstr "Увімкнути підтримку мультимедійних клавіш" #: src/celluloid-preferences-dialog.c:356 msgid "Extra MPV options:" msgstr "Додаткові параметри MPV:" #: src/celluloid-preferences-dialog.c:389 msgid "Interface" msgstr "Інтерфейс" #: src/celluloid-preferences-dialog.c:392 msgid "Config Files" msgstr "Файли налаштувань" #: src/celluloid-preferences-dialog.c:395 msgid "Miscellaneous" msgstr "Різне" #: src/celluloid-preferences-dialog.c:398 msgid "Plugins" msgstr "Модулі" #: src/celluloid-preferences-dialog.c:403 msgid "_Save" msgstr "З_берегти" #: src/celluloid-preferences-dialog.c:421 msgid "Preferences" msgstr "Параметри" #: src/celluloid-shortcuts-window.c:57 msgid "Open file" msgstr "Відкрити файл" #: src/celluloid-shortcuts-window.c:58 msgid "Open location" msgstr "Відкрити розташування" #: src/celluloid-shortcuts-window.c:59 msgid "Add file to playlist" msgstr "Додати файл до списку відтворення" #: src/celluloid-shortcuts-window.c:60 msgid "Add location to playlist" msgstr "Додати розташування до списку відтворення" #: src/celluloid-shortcuts-window.c:61 msgid "Show preferences dialog" msgstr "Показати параметри" #: src/celluloid-shortcuts-window.c:62 msgid "Toggle controls" msgstr "Показати/Приховати елементи керування" #: src/celluloid-shortcuts-window.c:63 msgid "Toggle playlist" msgstr "Показати/Сховати список відтворення" #: src/celluloid-shortcuts-window.c:64 msgid "Toggle fullscreen mode" msgstr "Повноекранний режим" #: src/celluloid-shortcuts-window.c:65 msgid "Leave fullscreen mode" msgstr "Вийти з повноекранного режиму" #: src/celluloid-shortcuts-window.c:66 msgid "Toggle OSD states between normal and playback time/duration" msgstr "Показати час відтворення/тривалість" #: src/celluloid-shortcuts-window.c:67 msgid "Show filename on the OSD" msgstr "Показати ім'я файлу в екранному меню OSD" #: src/celluloid-shortcuts-window.c:68 msgid "Show progress, elapsed time, and duration on the OSD" msgstr "Показувати прогрес, поточний час і тривалість" #: src/celluloid-shortcuts-window.c:71 msgid "Seek backward/forward 5 seconds" msgstr "Перехід назад/вперед на 5 секунд" #: src/celluloid-shortcuts-window.c:72 msgid "Exact seek backward/forward 1 second" msgstr "Точний перехід назад/вперед на 1 секунду" #: src/celluloid-shortcuts-window.c:73 msgid "Seek backward/forward 1 minute" msgstr "Перехід назад/вперед на 1 хвилину" #: src/celluloid-shortcuts-window.c:74 msgid "Exact seek backward/forward 5 seconds" msgstr "Точний перехід назад/вперед на 5 секунд" #: src/celluloid-shortcuts-window.c:75 msgid "Seek to previous/next subtitle" msgstr "Перехід до попереднього/наступного субтитру" #: src/celluloid-shortcuts-window.c:76 msgid "Step backward/forward a single frame" msgstr "Крок назад/вперед на один кадр" #: src/celluloid-shortcuts-window.c:77 msgid "Seek to the beginning of the previous/next chapter" msgstr "Перехід до попередньої/наступної глави" #: src/celluloid-shortcuts-window.c:80 msgid "Decrease/increase playback speed by 10%" msgstr "Зменшити/збільшити швидкість відтворення на 10%" #: src/celluloid-shortcuts-window.c:81 msgid "Halve/double current playback speed" msgstr "Скоротити вдвічі/подвоїти поточну швидкість відтворення" #: src/celluloid-shortcuts-window.c:82 msgid "Reset playback speed to normal" msgstr "Скинути швидкість відтворення на нормальну" #: src/celluloid-shortcuts-window.c:83 msgid "Go backward/forward in the playlist" msgstr "Назад/вперед по списку відтворення" #: src/celluloid-shortcuts-window.c:84 msgid "Remove selected playlist item" msgstr "Видалити вибраний файл зі списку відтворення" #: src/celluloid-shortcuts-window.c:85 msgid "Save playlist" msgstr "Зберегти список відтворення" #: src/celluloid-shortcuts-window.c:86 msgid "Set/clear A-B loop points" msgstr "Встановити/очистити A-B точки циклу" #: src/celluloid-shortcuts-window.c:87 msgid "Toggle infinite looping" msgstr "Переключити нескінченний повтор" #: src/celluloid-shortcuts-window.c:88 msgid "Pause or unpause" msgstr "Призупинити або відновити" #: src/celluloid-shortcuts-window.c:89 msgid "Quit" msgstr "Завершити" #: src/celluloid-shortcuts-window.c:90 msgid "Save current playback position and quit" msgstr "Зберегти поточну позицію відтворення та вийти" #: src/celluloid-shortcuts-window.c:93 msgid "Enter search mode" msgstr "" #: src/celluloid-shortcuts-window.c:94 msgid "Jump to next match" msgstr "" #: src/celluloid-shortcuts-window.c:95 msgid "Jump to previous match" msgstr "" #: src/celluloid-shortcuts-window.c:96 msgid "Exit search mode" msgstr "" #: src/celluloid-shortcuts-window.c:99 msgid "Cycle through audio tracks" msgstr "Циклічно доступні аудіо доріжки" #: src/celluloid-shortcuts-window.c:100 src/celluloid-shortcuts-window.c:101 msgid "Decrease/increase volume" msgstr "Зменшити/збільшити гучність" #: src/celluloid-shortcuts-window.c:102 msgid "Mute or unmute" msgstr "Вимкнути або увімкнути звук" #: src/celluloid-shortcuts-window.c:103 msgid "Adjust audio delay by +/- 0.1 seconds" msgstr "Змінити затримку аудіо на + / - 0,1 секунди" #: src/celluloid-shortcuts-window.c:106 msgid "Toggle subtitle visibility" msgstr "Переключити видимість субтитрів" #: src/celluloid-shortcuts-window.c:107 msgid "Cycle through available subtitles" msgstr "Циклічно переключити доступні субтитри" #: src/celluloid-shortcuts-window.c:108 msgid "Adjust subtitle delay by +/- 0.1 seconds" msgstr "Змінити затримку субтитрів на + / - 0,1 секунди" #: src/celluloid-shortcuts-window.c:109 msgid "Toggle SSA/ASS subtitles style override" msgstr "Переключити стиль субтитрів SSA/ASS" #: src/celluloid-shortcuts-window.c:110 msgid "Move subtitles up/down" msgstr "Перемістити субтитри вгору/вниз" #: src/celluloid-shortcuts-window.c:111 msgid "Toggle VSFilter aspect compatibility mode" msgstr "Перемикання режиму сумісності аспектів VSFilter" #: src/celluloid-shortcuts-window.c:114 msgid "Cycle through video tracks" msgstr "Циклічно доступні відео доріжки" #: src/celluloid-shortcuts-window.c:115 msgid "Decrease/increase pan-and-scan range" msgstr "Зменшує/збільшує діапазон панорамування та сканування" #: src/celluloid-shortcuts-window.c:116 msgid "Take a screenshot" msgstr "Зробити скріншот" #: src/celluloid-shortcuts-window.c:117 msgid "Take a screenshot, without subtitles" msgstr "Зробити скріншот, без субтитрів" #: src/celluloid-shortcuts-window.c:118 msgid "Take a screenshot, as the window shows it" msgstr "Зробити скріншот, з субтитрами та OSD, масштабуванням" #: src/celluloid-shortcuts-window.c:119 msgid "Resize video to half its original size" msgstr "Змінити розмір відео до половини свого вихідного розміру" #: src/celluloid-shortcuts-window.c:120 msgid "Resize video to its original size" msgstr "Змінити розмір відео до оригінального розміру" #: src/celluloid-shortcuts-window.c:121 msgid "Resize video to double its original size" msgstr "Подвоїти розмір відео щодо оригінального розміру" #: src/celluloid-shortcuts-window.c:122 msgid "Adjust contrast" msgstr "Регулювання контрастності" #: src/celluloid-shortcuts-window.c:123 msgid "Adjust brightness" msgstr "Регулювання яскравості" #: src/celluloid-shortcuts-window.c:124 msgid "Adjust gamma" msgstr "Регулювання гами" #: src/celluloid-shortcuts-window.c:125 msgid "Adjust saturation" msgstr "Регулювання насиченості" #: src/celluloid-shortcuts-window.c:126 msgid "Activate or deactivate deinterlacer" msgstr "Увімкнути або вимкнути деінтерлейсинг" #: src/celluloid-shortcuts-window.c:127 msgid "Cycle aspect ratio override" msgstr "Цикл корекції співвідношення сторін" #: src/celluloid-shortcuts-window.c:130 msgid "User Interface" msgstr "Інтерфейс користувача" #: src/celluloid-shortcuts-window.c:131 msgid "Video" msgstr "Відео" #: src/celluloid-shortcuts-window.c:132 msgid "Audio" msgstr "Аудіо" #: src/celluloid-shortcuts-window.c:133 msgid "Subtitle" msgstr "Субтитри" #: src/celluloid-shortcuts-window.c:134 msgid "Playback" msgstr "Відтворення" #: src/celluloid-shortcuts-window.c:135 msgid "Seeking" msgstr "Перехід" #: src/celluloid-view.c:728 msgid "Load Audio Track…" msgstr "Завантажити звукову доріжку…" #: src/celluloid-view.c:732 msgid "Load Video Track…" msgstr "" #: src/celluloid-view.c:736 msgid "Load Subtitle Track…" msgstr "Завантажити субтитри…" #: src/celluloid-view.c:901 msgid "" "Enabling or disabling client-side decorations requires restarting to take " "effect." msgstr "" "Увімкнути або вимкнути декорування на стороні клієнта вимагає " "перезавантаження щоб зміни набули чинності." #: src/celluloid-view.c:1444 msgid "Add Folder to Playlist" msgstr "" #: src/celluloid-view.c:1444 msgid "Open Folder" msgstr "" #: src/celluloid-view.c:1449 msgid "Add File to Playlist" msgstr "Додати файл до списку відтворення" #: src/celluloid-view.c:1449 msgid "Open File" msgstr "Відкрити файл" #: src/celluloid-view.c:1485 msgid "Add Location to Playlist" msgstr "Додати розташування до списку відтворення" #: src/celluloid-view.c:1486 msgid "Open Location" msgstr "Відкрити розташування" #: src/celluloid-view.c:1532 msgid "Save Playlist" msgstr "Зберегти список відтворення" #: src/celluloid-view.c:1598 msgid "A GTK frontend for MPV" msgstr "GTK інтерфейс для MPV" #: src/celluloid-view.c:1608 msgid "translator-credits" msgstr "" celluloid-0.20/po/zh_CN.po000066400000000000000000001035321373135401300153720ustar00rootroot00000000000000# Chinese translations for gnome-mpv package # gnome-mpv 软件包的简体中文翻译. # Copyright (C) 2015 THE GNOME-MPV'S COPYRIGHT HOLDER # This file is distributed under the same license as the gnome-mpv package. # sun , 2015. # Mingye Wang , 2015. # Huang Jiayao , 2019. #zanata # gnome-mpv , 2019. #zanata # 玉堂白鹤 , 2019. #zanata # gnome-mpv , 2020. #zanata # 玉堂白鹤 , 2020. #zanata msgid "" msgstr "" "Project-Id-Version: gnome-mpv 0.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-02-20 20:48+0700\n" "PO-Revision-Date: 2020-06-30 08:57-0400\n" "Last-Translator: 玉堂白鹤 \n" "Language-Team: AOSC zh_CN \n" "Language: zh_CN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Zanata 4.6.2\n" #: data/io.github.celluloid_player.Celluloid.gschema.xml:11 msgid "" "Whether the settings has already been migrated from the previous version" msgstr "是否已从上一个版本迁移设置" #: data/io.github.celluloid_player.Celluloid.gschema.xml:17 msgid "Whether or not to automatically resize window to fit video" msgstr "是否自动调整窗口大小以适合视频" #: data/io.github.celluloid_player.Celluloid.gschema.xml:23 msgid "Enable or disable dark theme" msgstr "启用或禁用暗色主题" #: data/io.github.celluloid_player.Celluloid.gschema.xml:29 msgid "Enable or disable client-side decorations" msgstr "启用或禁用客户端装饰" #: data/io.github.celluloid_player.Celluloid.gschema.xml:35 msgid "Whether or not to use floating controls in windowed mode" msgstr "是否在窗口模式下启用浮动控制" #: data/io.github.celluloid_player.Celluloid.gschema.xml:41 msgid "Whether or not to autohide mouse cursor in windowed mode" msgstr "是否在窗口模式下自动隐藏鼠标指针" #: data/io.github.celluloid_player.Celluloid.gschema.xml:47 msgid "The minimum cursor speed at which floating controls will be unhidden." msgstr "浮动控件取消隐藏时的最小光标速度。" #: data/io.github.celluloid_player.Celluloid.gschema.xml:54 msgid "" "The size of the dead zone in which cursor movement will not cause the " "controls to be shown." msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:60 msgid "Whether or not to use skip buttons for controlling playlist" msgstr "是否使用跳转按钮控制播放列表" #: data/io.github.celluloid_player.Celluloid.gschema.xml:66 msgid "" "Whether or not to make file chooser dialog remember last folder accessed" msgstr "是否让文件选择对话框记住最近访问的文件夹" #: data/io.github.celluloid_player.Celluloid.gschema.xml:72 msgid "Whether or not to create new windows when there is already an instance" msgstr "当已经有一个实例在运行时,是否允许创建新窗口" #: data/io.github.celluloid_player.Celluloid.gschema.xml:78 #: src/celluloid-application.c:575 msgid "Options to pass to mpv" msgstr "要传递给 mpv 的选项" #: data/io.github.celluloid_player.Celluloid.gschema.xml:84 msgid "Path to mpv configuration file" msgstr "mpv 配置文件的路径" #: data/io.github.celluloid_player.Celluloid.gschema.xml:90 msgid "Load or don't load mpv configuration file" msgstr "是否载入 mpv 配置文件" #: data/io.github.celluloid_player.Celluloid.gschema.xml:96 msgid "Path to mpv input configuration file" msgstr "mpv 输入配置文件的路径" #: data/io.github.celluloid_player.Celluloid.gschema.xml:102 msgid "Load or don't load mpv input configuration file" msgstr "是否载入 mpv 输入配置文件" #: data/io.github.celluloid_player.Celluloid.gschema.xml:108 msgid "Whether or not to enable MPRIS support" msgstr "是否启用 MPRIS 支持" #: data/io.github.celluloid_player.Celluloid.gschema.xml:114 msgid "" "Whether or not to enable GNOME-Settings-Daemon-based media keys support" msgstr "是否启用基于 GNOME-Setting-Daemon 的媒体键支持" #: data/io.github.celluloid_player.Celluloid.gschema.xml:120 msgid "Whether or not to prefetch metadata for non-current playlist entries" msgstr "是否预先读取非当前播放列表项的元数据" #: data/io.github.celluloid_player.Celluloid.gschema.xml:126 msgid "" "Whether or not to display an error message when playback of a file ends with" " an error" msgstr "当文件播放以错误结束时是否显示错误消息 " #: data/io.github.celluloid_player.Celluloid.gschema.xml:132 msgid "Whether or not to inhibit session idling when something is playing" msgstr "播放时是否禁止会话空闲" #: data/io.github.celluloid_player.Celluloid.gschema.xml:142 msgid "Width of the window" msgstr "窗口宽度" #: data/io.github.celluloid_player.Celluloid.gschema.xml:148 msgid "Height of the window" msgstr "窗口高度" #: data/io.github.celluloid_player.Celluloid.gschema.xml:154 msgid "Whether or not the window is maximized" msgstr "窗口是否最大化" #: data/io.github.celluloid_player.Celluloid.gschema.xml:161 msgid "Volume of player" msgstr "播放器音量" #: data/io.github.celluloid_player.Celluloid.gschema.xml:167 msgid "Whether or not to loop when the end of playlist is reached" msgstr "播放列表结束时是否循环播放" #: data/io.github.celluloid_player.Celluloid.gschema.xml:173 msgid "Width of the playlist" msgstr "播放列表宽度" #: data/io.github.celluloid_player.Celluloid.gschema.xml:179 msgid "Show or not show the controls" msgstr "是否显示控制栏" #: data/io.github.celluloid_player.Celluloid.gschema.xml:185 msgid "Show or not show the playlist" msgstr "是否显示播放列表" #: data/io.github.celluloid_player.Celluloid.gschema.xml:191 msgid "URI of the last folder accessed" msgstr "最近访问的文件夹 URI" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:7 #: data/io.github.celluloid_player.Celluloid.desktop.in:4 #: src/celluloid-application.c:451 msgid "Celluloid" msgstr "Celluloid" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:8 msgid "GTK+ frontend for mpv" msgstr "MPV 的 GTK+ 前端程序" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:16 msgid "" "Celluloid is a simple media player that can play virtually all video and " "audio formats. It supports playlists and MPRIS2 media player controls. The " "design of Celluloid follows the GNOME Human Interface Guidelines, but can " "also be adapted for other systems that don't use client-side decorations " "(CSD). It is based on the mpv library and GTK." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:23 msgid "Features:" msgstr "特性:" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:25 msgid "Drag and drop playlist" msgstr "拖放播放列表" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:26 msgid "Loading external mpv configuration files" msgstr "正在载入外部 mpv 配置文件" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:27 msgid "MPRIS2 D-Bus interface" msgstr "MPRIS2 D-Bus 接口" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:30 msgid "The Celluloid Developers" msgstr "Celluloid 开发者" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:34 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:87 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:117 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:156 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:187 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:215 msgid "This release contains the following changes:" msgstr "该发布版本包含了以下变更:" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:38 msgid "" "Adjust the range of volume button based on the value of the volume-max " "property." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:42 msgid "Retain window maximization state across sessions." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:45 msgid "Retain loop state across sessions." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:48 msgid "Implement playlist search." msgstr "实现播放列表搜索。" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:51 msgid "Update the list of shortcuts in Keyboard Shortcuts dialog." msgstr "更新快捷键对话框中的快捷方式列表。" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:54 msgid "Correctly handle quotes and escape sequences in extra mpv options." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:57 msgid "Display time at cursor position when hovering the seek bar." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:60 msgid "" "Deprecate '--mpv-options'. Options starting with '--mpv-' can be used to set" " mpv options instead. For example, passing '--mpv-vf=vflip' to Celluloid is " "equivalent to passing '--vf=vflip' to mpv." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:66 msgid "" "Add support for configuring dead zone, an area in which mouse movement will " "not cause controls to be shown." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:70 msgid "Make window sizing work correctly with HiDPI displays." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:73 msgid "Add Finnish translation by Kimmo Kujansuu." msgstr "添加 Kimmo Kujansuu 贡献的芬兰语翻译。" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:76 msgid "Add Slovenian translation by @bertronika." msgstr "添加 @bertronika 贡献的斯洛文尼亚语翻译。" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:80 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:110 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:149 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:180 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:208 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:236 msgid "This listing is incomplete. See git log for complete changelog." msgstr "这个列表不是完整的。请到 git log 中查看完整的 changelog。" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:91 msgid "Add Persian translation by @danialbehzadi" msgstr "添加 @danialbehzadi 贡献的波斯语翻译" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:94 msgid "Add Ukranian translation by @vl-nix" msgstr "添加 @vl-nix 贡献的乌克兰语翻译" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:97 msgid "" "Add support for showing/hiding window decorations using the mpv option " "--border" msgstr "使用 mpv 选项 --border 添加显示/隐藏窗口装饰的支持" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:100 msgid "Add menu item for opening discs" msgstr "添加打开光盘的菜单项" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:103 msgid "Block cursor autohide when volume popup is open in windowed mode" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:106 msgid "Fix crash with mpv 0.30" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:121 msgid "Rename project to Celluloid" msgstr "将项目重命名为 Celluloid" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:124 msgid "Add Turkish translation by @TeknoMobil" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:127 msgid "Add Esperanto translation by @F3nd0" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:130 msgid "Migrate from opengl-cb to the new render API" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:133 msgid "Handle numpad keybindings" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:136 msgid "Handle unicode keybindings" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:139 msgid "Forward media key events to mpv" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:142 msgid "" "Add dconf key for controlling cursor speed at which controls are unhidden" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:145 msgid "Add option for suppressing playback errors" msgstr "添加选项以抑制播放错误" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:160 msgid "Split up the General tab in the preferences dialog" msgstr "在首选项对话框中分离“通用”标签页" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:163 msgid "Improve behavior when toggling playlist under tiling window managers" msgstr "改善平铺式窗口管理器下的切换显示播放列表功能" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:166 msgid "Move app menu items to primary menu" msgstr "将 App Menu 的项目移动到主菜单" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:169 msgid "Use separate MPRIS DBus connection for each window" msgstr "为每个窗口使用分离的 MPRIS DBus 连接" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:172 msgid "Add support for MPRIS property LoopStatus" msgstr "添加 MPRIS 属性 LoopStatus 的支持" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:175 msgid "" "Add option --mpv-options for setting arbitrary mpv options from the command-" "line" msgstr "通过 --mpv-options 选项从命令行中设置任意 mpv 参数" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:191 msgid "Set default screenshot directory to XDG_PICTURES_DIR" msgstr "设置默认的截图目录为 XDG_PICTURES_DIR" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:194 msgid "" "Improve handling of --window-scale, --autofit, --autofit-larger, and " "--autofit-smaller" msgstr "" "改善对 --window-scale、 --autofit、 --autofit-larger 和 --autofit-smaller 的处理" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:198 msgid "Add command line option for setting WM_ROLE" msgstr "增加一个命令行参数来设置 WM_ROLE" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:201 msgid "Add context menu item for removing playlist items" msgstr "增加上下文菜单项来移除播放列表里的项目" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:204 msgid "Add context menu item for copying location of playlist items" msgstr "增加上下文菜单项来复制播放列表项目的路径" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:219 msgid "" "Add option to make skip buttons change playlist entries rather than chapters" msgstr "增加选项来让跳转按钮可以切换播放列表项,而不是切换章节" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:223 msgid "Make the file chooser accept non-local locations" msgstr "让文件选择器可以接受非本地路径" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:226 msgid "Add right-click menu entry for looping a single file" msgstr "增加循环播放单个文件的右键菜单项" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:229 msgid "Handle property change events for fullscreen and window-scale" msgstr "处理全屏和窗口大小的属性变化事件" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:232 msgid "Add option to autohide mouse cursor in windowed mode" msgstr "增加选项以在窗口模式下自动隐藏鼠标指针" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:246 msgid "The main window showing the application in action" msgstr "显示运行中应用的主窗口" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:250 msgid "The main window with CSD disabled" msgstr "关闭了 CSD 的主窗口" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:254 msgid "The main window with playlist open" msgstr "打开了播放列表的主窗口" #: data/io.github.celluloid_player.Celluloid.desktop.in:5 msgid "Multimedia Player" msgstr "多媒体播放器" #: data/io.github.celluloid_player.Celluloid.desktop.in:6 msgid "Play movies and videos" msgstr "播放电影和视频" #. Translators: Search terms to find this application. Don't translate the #. semicolons! The list MUST also end with a semicolon! #: data/io.github.celluloid_player.Celluloid.desktop.in:17 msgid "Video;Movie;Film;Clip;Series;Player;DVD;TV;Disc;Album;Music;GNOME;mpv;" msgstr "视频;电影;剪辑;系列;播放器;DVD;TV;碟片;专辑;音乐;GNOME;mpv;" #: data/io.github.celluloid_player.Celluloid.desktop.in:23 msgid "New Window" msgstr "新建窗口" #: src/celluloid-application.c:495 msgid "Playing" msgstr "正在播放" #: src/celluloid-application.c:551 msgid "Show release version" msgstr "显示发布版本号" #: src/celluloid-application.c:559 msgid "Enqueue" msgstr "加入队列" #: src/celluloid-application.c:567 msgid "Create a new window" msgstr "创建一个新窗口" #: src/celluloid-application.c:576 msgid "OPTIONS" msgstr "选项" #: src/celluloid-application.c:583 msgid "Set the window role" msgstr "设置窗口规则" #: src/celluloid-application.c:591 msgid "Don't connect to an already-running instance" msgstr "不要连接到已经运行中的实例" #: src/celluloid-control-box.c:362 msgid "Pause" msgstr "暂停" #: src/celluloid-control-box.c:362 src/celluloid-control-box.c:565 msgid "Play" msgstr "播放" #: src/celluloid-control-box.c:568 msgid "Stop" msgstr "停止" #: src/celluloid-control-box.c:571 msgid "Forward" msgstr "快进" #: src/celluloid-control-box.c:574 msgid "Rewind" msgstr "快退" #: src/celluloid-control-box.c:577 msgid "Next Chapter" msgstr "下一章节" #: src/celluloid-control-box.c:580 msgid "Previous Chapter" msgstr "上一章节" #: src/celluloid-control-box.c:583 msgid "Loop Playlist" msgstr "循环播放列表" #: src/celluloid-control-box.c:586 msgid "Shuffle Playlist" msgstr "随机播放列表" #: src/celluloid-control-box.c:589 src/celluloid-header-bar.c:91 msgid "Toggle Fullscreen" msgstr "切换全屏" #: src/celluloid-controller.c:992 src/celluloid-view.c:1558 msgid "Error" msgstr "错误" #: src/celluloid-file-chooser.c:139 src/celluloid-plugins-manager.c:170 msgid "All Files" msgstr "所有文件" #: src/celluloid-file-chooser.c:147 msgid "Media Files" msgstr "媒体文件" #: src/celluloid-file-chooser.c:158 msgid "Audio Files" msgstr "音频文件" #: src/celluloid-file-chooser.c:166 msgid "Video Files" msgstr "视频文件" #: src/celluloid-file-chooser.c:174 msgid "Image Files" msgstr "图像文件" #: src/celluloid-file-chooser.c:184 msgid "Subtitle Files" msgstr "字幕文件" #: src/celluloid-menu.c:106 msgid "None" msgstr "无" #. For simplicity, also dup the default string used when the #. * track has no title. #: src/celluloid-menu.c:121 msgid "Unknown" msgstr "未知" #: src/celluloid-menu.c:154 msgid "_Load External…" msgstr "载入外部(_L)…" #. Disable the menu item by setting the action to something #. * invalid. #: src/celluloid-menu.c:207 msgid "No disc found" msgstr "未找到光盘" #: src/celluloid-menu.c:235 msgid "_File" msgstr "文件(_F)" #: src/celluloid-menu.c:236 src/celluloid-menu.c:318 msgid "_Open…" msgstr "打开...(_O)" #: src/celluloid-menu.c:237 src/celluloid-menu.c:319 msgid "Open _Folder…" msgstr "" #: src/celluloid-menu.c:238 src/celluloid-menu.c:320 msgid "Open _Location…" msgstr "打开路径...(_L)" #: src/celluloid-menu.c:239 msgid "Open _Disc…" msgstr "打开光盘...(_D)" #: src/celluloid-menu.c:240 src/celluloid-menu.c:290 msgid "_Save Playlist" msgstr "保存播放列表(_S)" #: src/celluloid-menu.c:241 src/celluloid-menu.c:323 msgid "_New Window" msgstr "新建窗口(_N)" #: src/celluloid-menu.c:242 msgid "_Quit" msgstr "退出(_Q)" #: src/celluloid-menu.c:243 msgid "_Edit" msgstr "编辑(_E)" #: src/celluloid-menu.c:244 src/celluloid-menu.c:296 msgid "_Preferences" msgstr "首选项(_P)" #: src/celluloid-menu.c:245 src/celluloid-menu.c:292 msgid "_Video Track" msgstr "视频轨道(_V)" #: src/celluloid-menu.c:246 src/celluloid-menu.c:293 msgid "_Audio Track" msgstr "音轨(_A)" #: src/celluloid-menu.c:247 src/celluloid-menu.c:294 msgid "S_ubtitle Track" msgstr "字幕轨道(_u)" #: src/celluloid-menu.c:248 msgid "_View" msgstr "视图(_V)" #: src/celluloid-menu.c:249 src/celluloid-menu.c:287 msgid "_Toggle Controls" msgstr "切换控制栏(_T)" #: src/celluloid-menu.c:250 src/celluloid-menu.c:289 msgid "_Toggle Playlist" msgstr "切换播放列表(_T)" #: src/celluloid-menu.c:251 msgid "_Fullscreen" msgstr "全屏(_F)" #: src/celluloid-menu.c:252 msgid "_Help" msgstr "帮助(_H)" #: src/celluloid-menu.c:253 src/celluloid-menu.c:297 msgid "_Keyboard Shortcuts" msgstr "快捷键(_K)" #: src/celluloid-menu.c:254 src/celluloid-menu.c:298 msgid "_About Celluloid" msgstr "关于 Celluloid(_A)" #: src/celluloid-menu.c:321 msgid "Open _Disc" msgstr "打开光盘(_D)" #: src/celluloid-mpv.c:240 #, c-format msgid "Playback was terminated abnormally. Reason: %s." msgstr "回放被异常终止。原因:%s。" #: src/celluloid-open-location-dialog.c:130 msgid "Location:" msgstr "路径:" #: src/celluloid-open-location-dialog.c:136 #: src/celluloid-preferences-dialog.c:401 msgid "_Cancel" msgstr "取消(_C)" #: src/celluloid-open-location-dialog.c:138 msgid "_Open" msgstr "打开(_O)" #: src/celluloid-player.c:550 msgid "Failed to apply one or more MPV options." msgstr "应用一个或多个 MPV 选项失败。" #: src/celluloid-playlist-widget.c:784 msgid "_Copy Location" msgstr "复制路径(_A)" #: src/celluloid-playlist-widget.c:785 msgid "_Remove" msgstr "移除(_R)" #: src/celluloid-playlist-widget.c:787 msgid "_Add…" msgstr "添加(_A)…" #: src/celluloid-playlist-widget.c:788 msgid "Add _Folder…" msgstr "" #: src/celluloid-playlist-widget.c:789 msgid "Add _Location…" msgstr "添加路径(_L)" #: src/celluloid-playlist-widget.c:790 msgid "_Shuffle" msgstr "随机播放(_S)" #: src/celluloid-playlist-widget.c:791 msgid "Loop _File" msgstr "循环播放文件(_F)" #: src/celluloid-playlist-widget.c:792 msgid "Loop _Playlist" msgstr "循环播放列表(_P)" #: src/celluloid-playlist-widget.c:933 src/celluloid-shortcuts-window.c:136 msgid "Playlist" msgstr "播放列表" #: src/celluloid-playlist-widget.c:941 msgid "Playlist is empty" msgstr "播放列表为空" #: src/celluloid-plugins-manager.c:163 src/celluloid-plugins-manager.c:409 msgid "Add Plugin" msgstr "添加插件" #: src/celluloid-plugins-manager.c:175 msgid "Lua Plugins" msgstr "Lua 插件" #: src/celluloid-plugins-manager.c:181 msgid "JavaScript Plugins" msgstr "JavaScript 插件" #: src/celluloid-plugins-manager.c:186 msgid "C Plugins" msgstr "C 程序插件" #: src/celluloid-plugins-manager.c:334 #, c-format msgid "Failed to copy file from '%s' to '%s'. Reason: %s" msgstr "从 '%s' 拷贝文件到 '%s' 失败。原因:%s" #: src/celluloid-plugins-manager.c:385 msgid "No plugins found" msgstr "未找到插件" #: src/celluloid-plugins-manager-item.c:79 msgid "Remove" msgstr "移除" #: src/celluloid-plugins-manager-item.c:178 msgid "" "Are you sure you want to remove this script? This action cannot be undone." msgstr "您确定移除此脚本吗?该操作无法被撤销。" #: src/celluloid-plugins-manager-item.c:199 #, c-format msgid "Failed to delete file '%s'. Reason: %s" msgstr "删除文件 '%s' 失败。原因:%s" #: src/celluloid-preferences-dialog.c:304 msgid "Automatically resize window to fit video" msgstr "自动调整窗口大小以适合视频" #: src/celluloid-preferences-dialog.c:307 msgid "Enable client-side decorations" msgstr "启用客户端装饰" #: src/celluloid-preferences-dialog.c:310 msgid "Enable dark theme" msgstr "启用暗色主题" #: src/celluloid-preferences-dialog.c:313 msgid "Use floating controls in windowed mode" msgstr "在窗口模式下启用浮动控制" #: src/celluloid-preferences-dialog.c:316 msgid "Autohide mouse cursor in windowed mode" msgstr "在窗口模式下自动隐藏鼠标指针" #: src/celluloid-preferences-dialog.c:319 msgid "Use skip buttons for controlling playlist" msgstr "使用跳转按钮控制播放列表" #: src/celluloid-preferences-dialog.c:322 msgid "Remember last file's location" msgstr "记住最后一次打开位置" #: src/celluloid-preferences-dialog.c:327 msgid "Load MPV configuration file" msgstr "加载 MPV 配置文件" #: src/celluloid-preferences-dialog.c:330 msgid "MPV configuration file:" msgstr "MPV 配置文件:" #: src/celluloid-preferences-dialog.c:333 msgid "Load MPV input configuration file" msgstr "加载 MPV 输入配置文件" #: src/celluloid-preferences-dialog.c:336 msgid "MPV input configuration file:" msgstr "MPV 输入配置文件:" #: src/celluloid-preferences-dialog.c:341 msgid "Always open new window" msgstr "总是打开新窗口" #: src/celluloid-preferences-dialog.c:344 msgid "Ignore playback errors" msgstr "忽略播放错误" #: src/celluloid-preferences-dialog.c:347 msgid "Prefetch metadata" msgstr "预先读取元数据" #: src/celluloid-preferences-dialog.c:350 msgid "Enable MPRIS support" msgstr "启用 MPRIS 支持" #: src/celluloid-preferences-dialog.c:353 msgid "Enable media keys support" msgstr "启用媒体键支持" #: src/celluloid-preferences-dialog.c:356 msgid "Extra MPV options:" msgstr "额外的 MPV 选项:" #: src/celluloid-preferences-dialog.c:389 msgid "Interface" msgstr "用户界面" #: src/celluloid-preferences-dialog.c:392 msgid "Config Files" msgstr "配置文件" #: src/celluloid-preferences-dialog.c:395 msgid "Miscellaneous" msgstr "杂项" #: src/celluloid-preferences-dialog.c:398 msgid "Plugins" msgstr "插件" #: src/celluloid-preferences-dialog.c:403 msgid "_Save" msgstr "保存(_S)" #: src/celluloid-preferences-dialog.c:421 msgid "Preferences" msgstr "首选项" #: src/celluloid-shortcuts-window.c:57 msgid "Open file" msgstr "打开文件" #: src/celluloid-shortcuts-window.c:58 msgid "Open location" msgstr "打开路径" #: src/celluloid-shortcuts-window.c:59 msgid "Add file to playlist" msgstr "添加文件到播放列表" #: src/celluloid-shortcuts-window.c:60 msgid "Add location to playlist" msgstr "添加路径到播放列表" #: src/celluloid-shortcuts-window.c:61 msgid "Show preferences dialog" msgstr "显示首选项对话框" #: src/celluloid-shortcuts-window.c:62 msgid "Toggle controls" msgstr "切换控制栏" #: src/celluloid-shortcuts-window.c:63 msgid "Toggle playlist" msgstr "切换播放列表" #: src/celluloid-shortcuts-window.c:64 msgid "Toggle fullscreen mode" msgstr "切换全屏模式" #: src/celluloid-shortcuts-window.c:65 msgid "Leave fullscreen mode" msgstr "离开全屏模式" #: src/celluloid-shortcuts-window.c:66 msgid "Toggle OSD states between normal and playback time/duration" msgstr "切换 OSD 状态为“普通”或者“播放时间/总时长”" #: src/celluloid-shortcuts-window.c:67 msgid "Show filename on the OSD" msgstr "在 OSD 上显示文件名" #: src/celluloid-shortcuts-window.c:68 msgid "Show progress, elapsed time, and duration on the OSD" msgstr "在 OSD 上显示进度、已播放时间、总时长" #: src/celluloid-shortcuts-window.c:71 msgid "Seek backward/forward 5 seconds" msgstr "向后/向前跳转 5 秒" #: src/celluloid-shortcuts-window.c:72 msgid "Exact seek backward/forward 1 second" msgstr "向后/向前精确跳转 1 秒" #: src/celluloid-shortcuts-window.c:73 msgid "Seek backward/forward 1 minute" msgstr "向后/向前跳转 1 分钟" #: src/celluloid-shortcuts-window.c:74 msgid "Exact seek backward/forward 5 seconds" msgstr "向后/向前精确跳转 5 秒" #: src/celluloid-shortcuts-window.c:75 msgid "Seek to previous/next subtitle" msgstr "查找上一个/下一个字幕" #: src/celluloid-shortcuts-window.c:76 msgid "Step backward/forward a single frame" msgstr "跳转到上一帧/下一帧" #: src/celluloid-shortcuts-window.c:77 msgid "Seek to the beginning of the previous/next chapter" msgstr "跳转到上一章/下一章的开头" #: src/celluloid-shortcuts-window.c:80 msgid "Decrease/increase playback speed by 10%" msgstr "减少/增加 10% 播放速度" #: src/celluloid-shortcuts-window.c:81 msgid "Halve/double current playback speed" msgstr "减半/加倍当前的播放速度" #: src/celluloid-shortcuts-window.c:82 msgid "Reset playback speed to normal" msgstr "重置播放速度为正常速度" #: src/celluloid-shortcuts-window.c:83 msgid "Go backward/forward in the playlist" msgstr "跳转到当前播放列表中的前一项/后一项" #: src/celluloid-shortcuts-window.c:84 msgid "Remove selected playlist item" msgstr "移除选定的播放列表项" #: src/celluloid-shortcuts-window.c:85 msgid "Save playlist" msgstr "保存播放列表" #: src/celluloid-shortcuts-window.c:86 msgid "Set/clear A-B loop points" msgstr "设置/清除 A-B 循环点" #: src/celluloid-shortcuts-window.c:87 msgid "Toggle infinite looping" msgstr "开启或关闭无限循环" #: src/celluloid-shortcuts-window.c:88 msgid "Pause or unpause" msgstr "暂停/播放" #: src/celluloid-shortcuts-window.c:89 msgid "Quit" msgstr "退出" #: src/celluloid-shortcuts-window.c:90 msgid "Save current playback position and quit" msgstr "保存当前播放进度并退出" #: src/celluloid-shortcuts-window.c:93 msgid "Enter search mode" msgstr "进入搜索模式" #: src/celluloid-shortcuts-window.c:94 msgid "Jump to next match" msgstr "跳转到下一匹配" #: src/celluloid-shortcuts-window.c:95 msgid "Jump to previous match" msgstr "跳转到上一匹配" #: src/celluloid-shortcuts-window.c:96 msgid "Exit search mode" msgstr "退出搜索模式" #: src/celluloid-shortcuts-window.c:99 msgid "Cycle through audio tracks" msgstr "循环播放音轨" #: src/celluloid-shortcuts-window.c:100 src/celluloid-shortcuts-window.c:101 msgid "Decrease/increase volume" msgstr "减少/增大音量" #: src/celluloid-shortcuts-window.c:102 msgid "Mute or unmute" msgstr "静音/取消静音" #: src/celluloid-shortcuts-window.c:103 msgid "Adjust audio delay by +/- 0.1 seconds" msgstr "将音频延迟调整为 +/- 0.1 秒" #: src/celluloid-shortcuts-window.c:106 msgid "Toggle subtitle visibility" msgstr "切换字幕可见性" #: src/celluloid-shortcuts-window.c:107 msgid "Cycle through available subtitles" msgstr "循环播放当前字幕范围" #: src/celluloid-shortcuts-window.c:108 msgid "Adjust subtitle delay by +/- 0.1 seconds" msgstr "将字幕延迟调整为 +/- 0.1 秒" #: src/celluloid-shortcuts-window.c:109 msgid "Toggle SSA/ASS subtitles style override" msgstr "切换 SSA/ASS 字幕样式覆盖" #: src/celluloid-shortcuts-window.c:110 msgid "Move subtitles up/down" msgstr "移动到上一行/下一行字幕" #: src/celluloid-shortcuts-window.c:111 msgid "Toggle VSFilter aspect compatibility mode" msgstr "切换 VSFilter aspect 兼容模式" #: src/celluloid-shortcuts-window.c:114 msgid "Cycle through video tracks" msgstr "循环播放视频轨道" #: src/celluloid-shortcuts-window.c:115 msgid "Decrease/increase pan-and-scan range" msgstr "减小/增加 pan-and-scan 范围" #: src/celluloid-shortcuts-window.c:116 msgid "Take a screenshot" msgstr "截取屏幕截图" #: src/celluloid-shortcuts-window.c:117 msgid "Take a screenshot, without subtitles" msgstr "截取屏幕截图,不包含字幕" #: src/celluloid-shortcuts-window.c:118 msgid "Take a screenshot, as the window shows it" msgstr "截取屏幕截图,就如同窗口中显示的一样(包含字幕、OSD、缩放)" #: src/celluloid-shortcuts-window.c:119 msgid "Resize video to half its original size" msgstr "调整视频大小为其原始大小的一半" #: src/celluloid-shortcuts-window.c:120 msgid "Resize video to its original size" msgstr "调整视频大小为其原始大小" #: src/celluloid-shortcuts-window.c:121 msgid "Resize video to double its original size" msgstr "调整视频大小为其原始大小的两倍" #: src/celluloid-shortcuts-window.c:122 msgid "Adjust contrast" msgstr "调整对比度" #: src/celluloid-shortcuts-window.c:123 msgid "Adjust brightness" msgstr "调整亮度" #: src/celluloid-shortcuts-window.c:124 msgid "Adjust gamma" msgstr "调整伽玛值" #: src/celluloid-shortcuts-window.c:125 msgid "Adjust saturation" msgstr "调整饱和度" #: src/celluloid-shortcuts-window.c:126 msgid "Activate or deactivate deinterlacer" msgstr "激活/取消激活去隔行扫描器" #: src/celluloid-shortcuts-window.c:127 msgid "Cycle aspect ratio override" msgstr "循环切换宽高比重写" #: src/celluloid-shortcuts-window.c:130 msgid "User Interface" msgstr "用户界面" #: src/celluloid-shortcuts-window.c:131 msgid "Video" msgstr "视频" #: src/celluloid-shortcuts-window.c:132 msgid "Audio" msgstr "音频" #: src/celluloid-shortcuts-window.c:133 msgid "Subtitle" msgstr "字幕" #: src/celluloid-shortcuts-window.c:134 msgid "Playback" msgstr "回放" #: src/celluloid-shortcuts-window.c:135 msgid "Seeking" msgstr "跳转" #: src/celluloid-view.c:728 msgid "Load Audio Track…" msgstr "加载音频轨道..." #: src/celluloid-view.c:732 msgid "Load Video Track…" msgstr "加载视频轨…" #: src/celluloid-view.c:736 msgid "Load Subtitle Track…" msgstr "加载字幕轨道..." #: src/celluloid-view.c:901 msgid "" "Enabling or disabling client-side decorations requires restarting to take " "effect." msgstr "启用或禁用客户端装饰(CSD),需要重启播放器以生效。" #: src/celluloid-view.c:1444 msgid "Add Folder to Playlist" msgstr "" #: src/celluloid-view.c:1444 msgid "Open Folder" msgstr "" #: src/celluloid-view.c:1449 msgid "Add File to Playlist" msgstr "添加文件到播放列表" #: src/celluloid-view.c:1449 msgid "Open File" msgstr "打开文件" #: src/celluloid-view.c:1485 msgid "Add Location to Playlist" msgstr "添加路径到播放列表" #: src/celluloid-view.c:1486 msgid "Open Location" msgstr "打开路径" #: src/celluloid-view.c:1532 msgid "Save Playlist" msgstr "保存播放列表" #: src/celluloid-view.c:1598 msgid "A GTK frontend for MPV" msgstr "MPV 的 GTK 前端程序" #: src/celluloid-view.c:1608 msgid "translator-credits" msgstr "" "Mingye Wang , 2015, 2016.\n" "Jeff Bai , 2015, 2016.\n" "Sun , 2015, 2016.\n" "Huang Jiayao , 2017, 2018." celluloid-0.20/po/zh_TW.po000066400000000000000000000733631373135401300154340ustar00rootroot00000000000000# Chinese translations for gnome-mpv package # gnome-mpv 套件的正體中文翻譯 # Copyright (C) 2015 THE GNOME-MPV'S COPYRIGHT HOLDER # This file is distributed under the same license as the gnome-mpv package. # sun , 2015. # Mingye Wang , 2015. # Julian , 2019. #zanata # gnome-mpv , 2019. #zanata # gnome-mpv , 2020. #zanata msgid "" msgstr "" "Project-Id-Version: gnome-mpv 0.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-02-20 20:48+0700\n" "PO-Revision-Date: 2020-06-23 10:41-0400\n" "Last-Translator: Copied by Zanata \n" "Language-Team: zh_Hant \n" "Language: zh_TW\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Zanata 4.6.2\n" #: data/io.github.celluloid_player.Celluloid.gschema.xml:11 msgid "" "Whether the settings has already been migrated from the previous version" msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:17 msgid "Whether or not to automatically resize window to fit video" msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:23 msgid "Enable or disable dark theme" msgstr "啟用或禁用暗色主題" #: data/io.github.celluloid_player.Celluloid.gschema.xml:29 msgid "Enable or disable client-side decorations" msgstr "啟用或禁用客戶端裝飾" #: data/io.github.celluloid_player.Celluloid.gschema.xml:35 msgid "Whether or not to use floating controls in windowed mode" msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:41 msgid "Whether or not to autohide mouse cursor in windowed mode" msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:47 msgid "The minimum cursor speed at which floating controls will be unhidden." msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:54 msgid "" "The size of the dead zone in which cursor movement will not cause the " "controls to be shown." msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:60 msgid "Whether or not to use skip buttons for controlling playlist" msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:66 msgid "" "Whether or not to make file chooser dialog remember last folder accessed" msgstr "是否讓檔案選擇對話窗記住最近訪問的資料夾" #: data/io.github.celluloid_player.Celluloid.gschema.xml:72 msgid "Whether or not to create new windows when there is already an instance" msgstr "當播放器使用時是否開啟新視窗" #: data/io.github.celluloid_player.Celluloid.gschema.xml:78 #: src/celluloid-application.c:575 msgid "Options to pass to mpv" msgstr "要傳遞給 mpv 的選項" #: data/io.github.celluloid_player.Celluloid.gschema.xml:84 msgid "Path to mpv configuration file" msgstr "mpv 配置檔的路徑" #: data/io.github.celluloid_player.Celluloid.gschema.xml:90 msgid "Load or don't load mpv configuration file" msgstr "是否載入 mpv 配置檔" #: data/io.github.celluloid_player.Celluloid.gschema.xml:96 msgid "Path to mpv input configuration file" msgstr "mpv 輸入配置檔的路徑" #: data/io.github.celluloid_player.Celluloid.gschema.xml:102 msgid "Load or don't load mpv input configuration file" msgstr "是否載入 mpv 輸入配置檔" #: data/io.github.celluloid_player.Celluloid.gschema.xml:108 msgid "Whether or not to enable MPRIS support" msgstr "是否啟用 MPRIS 支援" #: data/io.github.celluloid_player.Celluloid.gschema.xml:114 msgid "" "Whether or not to enable GNOME-Settings-Daemon-based media keys support" msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:120 msgid "Whether or not to prefetch metadata for non-current playlist entries" msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:126 msgid "" "Whether or not to display an error message when playback of a file ends with" " an error" msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:132 msgid "Whether or not to inhibit session idling when something is playing" msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:142 msgid "Width of the window" msgstr "視窗寬度" #: data/io.github.celluloid_player.Celluloid.gschema.xml:148 msgid "Height of the window" msgstr "視窗高度" #: data/io.github.celluloid_player.Celluloid.gschema.xml:154 msgid "Whether or not the window is maximized" msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:161 msgid "Volume of player" msgstr "播放器音量" #: data/io.github.celluloid_player.Celluloid.gschema.xml:167 msgid "Whether or not to loop when the end of playlist is reached" msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:173 msgid "Width of the playlist" msgstr "播放列表寬度" #: data/io.github.celluloid_player.Celluloid.gschema.xml:179 msgid "Show or not show the controls" msgstr "" #: data/io.github.celluloid_player.Celluloid.gschema.xml:185 msgid "Show or not show the playlist" msgstr "是否顯示播放列表" #: data/io.github.celluloid_player.Celluloid.gschema.xml:191 msgid "URI of the last folder accessed" msgstr "最近訪問的資料夾 URI" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:7 #: data/io.github.celluloid_player.Celluloid.desktop.in:4 #: src/celluloid-application.c:451 msgid "Celluloid" msgstr "Celluloid" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:8 msgid "GTK+ frontend for mpv" msgstr "MPV 之 GTK 前端程式" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:16 msgid "" "Celluloid is a simple media player that can play virtually all video and " "audio formats. It supports playlists and MPRIS2 media player controls. The " "design of Celluloid follows the GNOME Human Interface Guidelines, but can " "also be adapted for other systems that don't use client-side decorations " "(CSD). It is based on the mpv library and GTK." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:23 msgid "Features:" msgstr "特性:" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:25 msgid "Drag and drop playlist" msgstr "拖放播放列表" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:26 msgid "Loading external mpv configuration files" msgstr "正在載入外部 mpv 配置檔" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:27 msgid "MPRIS2 D-Bus interface" msgstr "MPRIS2 D-Bus 介面" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:30 msgid "The Celluloid Developers" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:34 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:87 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:117 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:156 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:187 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:215 msgid "This release contains the following changes:" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:38 msgid "" "Adjust the range of volume button based on the value of the volume-max " "property." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:42 msgid "Retain window maximization state across sessions." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:45 msgid "Retain loop state across sessions." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:48 msgid "Implement playlist search." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:51 msgid "Update the list of shortcuts in Keyboard Shortcuts dialog." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:54 msgid "Correctly handle quotes and escape sequences in extra mpv options." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:57 msgid "Display time at cursor position when hovering the seek bar." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:60 msgid "" "Deprecate '--mpv-options'. Options starting with '--mpv-' can be used to set" " mpv options instead. For example, passing '--mpv-vf=vflip' to Celluloid is " "equivalent to passing '--vf=vflip' to mpv." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:66 msgid "" "Add support for configuring dead zone, an area in which mouse movement will " "not cause controls to be shown." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:70 msgid "Make window sizing work correctly with HiDPI displays." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:73 msgid "Add Finnish translation by Kimmo Kujansuu." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:76 msgid "Add Slovenian translation by @bertronika." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:80 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:110 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:149 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:180 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:208 #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:236 msgid "This listing is incomplete. See git log for complete changelog." msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:91 msgid "Add Persian translation by @danialbehzadi" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:94 msgid "Add Ukranian translation by @vl-nix" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:97 msgid "" "Add support for showing/hiding window decorations using the mpv option " "--border" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:100 msgid "Add menu item for opening discs" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:103 msgid "Block cursor autohide when volume popup is open in windowed mode" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:106 msgid "Fix crash with mpv 0.30" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:121 msgid "Rename project to Celluloid" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:124 msgid "Add Turkish translation by @TeknoMobil" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:127 msgid "Add Esperanto translation by @F3nd0" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:130 msgid "Migrate from opengl-cb to the new render API" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:133 msgid "Handle numpad keybindings" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:136 msgid "Handle unicode keybindings" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:139 msgid "Forward media key events to mpv" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:142 msgid "" "Add dconf key for controlling cursor speed at which controls are unhidden" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:145 msgid "Add option for suppressing playback errors" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:160 msgid "Split up the General tab in the preferences dialog" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:163 msgid "Improve behavior when toggling playlist under tiling window managers" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:166 msgid "Move app menu items to primary menu" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:169 msgid "Use separate MPRIS DBus connection for each window" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:172 msgid "Add support for MPRIS property LoopStatus" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:175 msgid "" "Add option --mpv-options for setting arbitrary mpv options from the command-" "line" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:191 msgid "Set default screenshot directory to XDG_PICTURES_DIR" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:194 msgid "" "Improve handling of --window-scale, --autofit, --autofit-larger, and " "--autofit-smaller" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:198 msgid "Add command line option for setting WM_ROLE" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:201 msgid "Add context menu item for removing playlist items" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:204 msgid "Add context menu item for copying location of playlist items" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:219 msgid "" "Add option to make skip buttons change playlist entries rather than chapters" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:223 msgid "Make the file chooser accept non-local locations" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:226 msgid "Add right-click menu entry for looping a single file" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:229 msgid "Handle property change events for fullscreen and window-scale" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:232 msgid "Add option to autohide mouse cursor in windowed mode" msgstr "" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:246 msgid "The main window showing the application in action" msgstr "顯示執行中套用的主視窗" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:250 msgid "The main window with CSD disabled" msgstr "關閉了 CSD 的主視窗" #: data/io.github.celluloid_player.Celluloid.appdata.xml.in:254 msgid "The main window with playlist open" msgstr "打開了播放列表的主視窗" #: data/io.github.celluloid_player.Celluloid.desktop.in:5 msgid "Multimedia Player" msgstr "多媒體播放器" #: data/io.github.celluloid_player.Celluloid.desktop.in:6 msgid "Play movies and videos" msgstr "播放電影和影片" #. Translators: Search terms to find this application. Don't translate the #. semicolons! The list MUST also end with a semicolon! #: data/io.github.celluloid_player.Celluloid.desktop.in:17 msgid "Video;Movie;Film;Clip;Series;Player;DVD;TV;Disc;Album;Music;GNOME;mpv;" msgstr "" #: data/io.github.celluloid_player.Celluloid.desktop.in:23 msgid "New Window" msgstr "新視窗" #: src/celluloid-application.c:495 msgid "Playing" msgstr "正在播放" #: src/celluloid-application.c:551 msgid "Show release version" msgstr "" #: src/celluloid-application.c:559 msgid "Enqueue" msgstr "" #: src/celluloid-application.c:567 msgid "Create a new window" msgstr "" #: src/celluloid-application.c:576 msgid "OPTIONS" msgstr "選項" #: src/celluloid-application.c:583 msgid "Set the window role" msgstr "" #: src/celluloid-application.c:591 msgid "Don't connect to an already-running instance" msgstr "" #: src/celluloid-control-box.c:362 msgid "Pause" msgstr "暫停" #: src/celluloid-control-box.c:362 src/celluloid-control-box.c:565 msgid "Play" msgstr "播放" #: src/celluloid-control-box.c:568 msgid "Stop" msgstr "停止" #: src/celluloid-control-box.c:571 msgid "Forward" msgstr "快進" #: src/celluloid-control-box.c:574 msgid "Rewind" msgstr "倒回" #: src/celluloid-control-box.c:577 msgid "Next Chapter" msgstr "下一章節" #: src/celluloid-control-box.c:580 msgid "Previous Chapter" msgstr "前一章節" #: src/celluloid-control-box.c:583 msgid "Loop Playlist" msgstr "" #: src/celluloid-control-box.c:586 msgid "Shuffle Playlist" msgstr "" #: src/celluloid-control-box.c:589 src/celluloid-header-bar.c:91 msgid "Toggle Fullscreen" msgstr "開關全螢幕" #: src/celluloid-controller.c:992 src/celluloid-view.c:1558 msgid "Error" msgstr "錯誤" #: src/celluloid-file-chooser.c:139 src/celluloid-plugins-manager.c:170 msgid "All Files" msgstr "所有檔案" #: src/celluloid-file-chooser.c:147 msgid "Media Files" msgstr "多媒體檔" #: src/celluloid-file-chooser.c:158 msgid "Audio Files" msgstr "音訊檔" #: src/celluloid-file-chooser.c:166 msgid "Video Files" msgstr "影片檔" #: src/celluloid-file-chooser.c:174 msgid "Image Files" msgstr "圖片檔" #: src/celluloid-file-chooser.c:184 msgid "Subtitle Files" msgstr "字幕檔" #: src/celluloid-menu.c:106 msgid "None" msgstr "無" #. For simplicity, also dup the default string used when the #. * track has no title. #: src/celluloid-menu.c:121 msgid "Unknown" msgstr "未知" #: src/celluloid-menu.c:154 msgid "_Load External…" msgstr "" #. Disable the menu item by setting the action to something #. * invalid. #: src/celluloid-menu.c:207 msgid "No disc found" msgstr "" #: src/celluloid-menu.c:235 msgid "_File" msgstr "檔案(_F)" #: src/celluloid-menu.c:236 src/celluloid-menu.c:318 msgid "_Open…" msgstr "開啟(_O)…" #: src/celluloid-menu.c:237 src/celluloid-menu.c:319 msgid "Open _Folder…" msgstr "" #: src/celluloid-menu.c:238 src/celluloid-menu.c:320 msgid "Open _Location…" msgstr "開啟位置(_L)…" #: src/celluloid-menu.c:239 msgid "Open _Disc…" msgstr "" #: src/celluloid-menu.c:240 src/celluloid-menu.c:290 msgid "_Save Playlist" msgstr "儲存播放列表(_S)" #: src/celluloid-menu.c:241 src/celluloid-menu.c:323 msgid "_New Window" msgstr "新增視窗(_N)" #: src/celluloid-menu.c:242 #, fuzzy msgid "_Quit" msgstr "離開" #: src/celluloid-menu.c:243 msgid "_Edit" msgstr "編輯(_E)" #: src/celluloid-menu.c:244 src/celluloid-menu.c:296 msgid "_Preferences" msgstr "偏好設定(_P)" #: src/celluloid-menu.c:245 src/celluloid-menu.c:292 msgid "_Video Track" msgstr "視訊軌道(_V)" #: src/celluloid-menu.c:246 src/celluloid-menu.c:293 msgid "_Audio Track" msgstr "音軌(_A)" #: src/celluloid-menu.c:247 src/celluloid-menu.c:294 msgid "S_ubtitle Track" msgstr "字幕軌道(_U)" #: src/celluloid-menu.c:248 msgid "_View" msgstr "檢視(_V)" #: src/celluloid-menu.c:249 src/celluloid-menu.c:287 msgid "_Toggle Controls" msgstr "" #: src/celluloid-menu.c:250 src/celluloid-menu.c:289 msgid "_Toggle Playlist" msgstr "切換播放列表(_T)" #: src/celluloid-menu.c:251 msgid "_Fullscreen" msgstr "全屏(_F)" #: src/celluloid-menu.c:252 msgid "_Help" msgstr "幫助(_F)" #: src/celluloid-menu.c:253 src/celluloid-menu.c:297 msgid "_Keyboard Shortcuts" msgstr "快捷鍵(_K)" #: src/celluloid-menu.c:254 src/celluloid-menu.c:298 msgid "_About Celluloid" msgstr "關於 Celluloid(_A)" #: src/celluloid-menu.c:321 msgid "Open _Disc" msgstr "開啟檔案(_D)" #: src/celluloid-mpv.c:240 #, c-format msgid "Playback was terminated abnormally. Reason: %s." msgstr "回放被異常終止。原因:%s。" #: src/celluloid-open-location-dialog.c:130 msgid "Location:" msgstr "位置:" #: src/celluloid-open-location-dialog.c:136 #: src/celluloid-preferences-dialog.c:401 msgid "_Cancel" msgstr "取消(_C)" #: src/celluloid-open-location-dialog.c:138 msgid "_Open" msgstr "開啟(_O)" #: src/celluloid-player.c:550 msgid "Failed to apply one or more MPV options." msgstr "套用一個或多個 MPV 選項失敗。" #: src/celluloid-playlist-widget.c:784 msgid "_Copy Location" msgstr "複製位置(_C)" #: src/celluloid-playlist-widget.c:785 msgid "_Remove" msgstr "移除(_R)" #: src/celluloid-playlist-widget.c:787 msgid "_Add…" msgstr "新增(_A)…" #: src/celluloid-playlist-widget.c:788 msgid "Add _Folder…" msgstr "" #: src/celluloid-playlist-widget.c:789 msgid "Add _Location…" msgstr "" #: src/celluloid-playlist-widget.c:790 msgid "_Shuffle" msgstr "" #: src/celluloid-playlist-widget.c:791 msgid "Loop _File" msgstr "" #: src/celluloid-playlist-widget.c:792 msgid "Loop _Playlist" msgstr "" #: src/celluloid-playlist-widget.c:933 src/celluloid-shortcuts-window.c:136 msgid "Playlist" msgstr "播放列表" #: src/celluloid-playlist-widget.c:941 #, fuzzy msgid "Playlist is empty" msgstr "播放列表" #: src/celluloid-plugins-manager.c:163 src/celluloid-plugins-manager.c:409 msgid "Add Plugin" msgstr "加入外掛" #: src/celluloid-plugins-manager.c:175 msgid "Lua Plugins" msgstr "Lua 外掛" #: src/celluloid-plugins-manager.c:181 msgid "JavaScript Plugins" msgstr "JavaScript 外掛" #: src/celluloid-plugins-manager.c:186 msgid "C Plugins" msgstr "C 外掛" #: src/celluloid-plugins-manager.c:334 #, c-format msgid "Failed to copy file from '%s' to '%s'. Reason: %s" msgstr "從 '%s' 複製檔案到 '%s' 失敗。原因:%s" #: src/celluloid-plugins-manager.c:385 msgid "No plugins found" msgstr "沒找到外掛" #: src/celluloid-plugins-manager-item.c:79 msgid "Remove" msgstr "移除" #: src/celluloid-plugins-manager-item.c:178 msgid "" "Are you sure you want to remove this script? This action cannot be undone." msgstr "確定要移除此外掛?這動作將無法復原。" #: src/celluloid-plugins-manager-item.c:199 #, c-format msgid "Failed to delete file '%s'. Reason: %s" msgstr "移除 '%s' 失敗。原因:%s" #: src/celluloid-preferences-dialog.c:304 msgid "Automatically resize window to fit video" msgstr "" #: src/celluloid-preferences-dialog.c:307 msgid "Enable client-side decorations" msgstr "啟用客戶端裝飾" #: src/celluloid-preferences-dialog.c:310 msgid "Enable dark theme" msgstr "啟用暗色主題" #: src/celluloid-preferences-dialog.c:313 msgid "Use floating controls in windowed mode" msgstr "" #: src/celluloid-preferences-dialog.c:316 msgid "Autohide mouse cursor in windowed mode" msgstr "視窗模式下自動隱藏游標" #: src/celluloid-preferences-dialog.c:319 msgid "Use skip buttons for controlling playlist" msgstr "" #: src/celluloid-preferences-dialog.c:322 msgid "Remember last file's location" msgstr "記住最後一次開啟位置" #: src/celluloid-preferences-dialog.c:327 msgid "Load MPV configuration file" msgstr "載入 MPV 配置檔" #: src/celluloid-preferences-dialog.c:330 msgid "MPV configuration file:" msgstr "MPV 配置檔:" #: src/celluloid-preferences-dialog.c:333 msgid "Load MPV input configuration file" msgstr "載入 MPV 輸入配置檔" #: src/celluloid-preferences-dialog.c:336 msgid "MPV input configuration file:" msgstr "MPV 輸入配置檔:" #: src/celluloid-preferences-dialog.c:341 msgid "Always open new window" msgstr "總是開啟新視窗" #: src/celluloid-preferences-dialog.c:344 msgid "Ignore playback errors" msgstr "無視播放錯誤訊息" #: src/celluloid-preferences-dialog.c:347 msgid "Prefetch metadata" msgstr "" #: src/celluloid-preferences-dialog.c:350 msgid "Enable MPRIS support" msgstr "啟用 MPRIS 支援" #: src/celluloid-preferences-dialog.c:353 msgid "Enable media keys support" msgstr "啟用播放快捷鍵支援" #: src/celluloid-preferences-dialog.c:356 msgid "Extra MPV options:" msgstr "額外的 MPV 選項:" #: src/celluloid-preferences-dialog.c:389 msgid "Interface" msgstr "界面" #: src/celluloid-preferences-dialog.c:392 msgid "Config Files" msgstr "設定檔" #: src/celluloid-preferences-dialog.c:395 msgid "Miscellaneous" msgstr "" #: src/celluloid-preferences-dialog.c:398 msgid "Plugins" msgstr "外掛" #: src/celluloid-preferences-dialog.c:403 msgid "_Save" msgstr "儲存(_S)" #: src/celluloid-preferences-dialog.c:421 msgid "Preferences" msgstr "偏好設定" #: src/celluloid-shortcuts-window.c:57 msgid "Open file" msgstr "開啟檔案" #: src/celluloid-shortcuts-window.c:58 msgid "Open location" msgstr "開啟位置" #: src/celluloid-shortcuts-window.c:59 msgid "Add file to playlist" msgstr "將檔案加入至播放清單" #: src/celluloid-shortcuts-window.c:60 msgid "Add location to playlist" msgstr "將位置加入至播放清單" #: src/celluloid-shortcuts-window.c:61 msgid "Show preferences dialog" msgstr "" #: src/celluloid-shortcuts-window.c:62 msgid "Toggle controls" msgstr "" #: src/celluloid-shortcuts-window.c:63 msgid "Toggle playlist" msgstr "" #: src/celluloid-shortcuts-window.c:64 msgid "Toggle fullscreen mode" msgstr "開啟全螢幕" #: src/celluloid-shortcuts-window.c:65 msgid "Leave fullscreen mode" msgstr "離開全螢幕" #: src/celluloid-shortcuts-window.c:66 msgid "Toggle OSD states between normal and playback time/duration" msgstr "" #: src/celluloid-shortcuts-window.c:67 msgid "Show filename on the OSD" msgstr "" #: src/celluloid-shortcuts-window.c:68 msgid "Show progress, elapsed time, and duration on the OSD" msgstr "" #: src/celluloid-shortcuts-window.c:71 msgid "Seek backward/forward 5 seconds" msgstr "" #: src/celluloid-shortcuts-window.c:72 msgid "Exact seek backward/forward 1 second" msgstr "" #: src/celluloid-shortcuts-window.c:73 msgid "Seek backward/forward 1 minute" msgstr "" #: src/celluloid-shortcuts-window.c:74 msgid "Exact seek backward/forward 5 seconds" msgstr "" #: src/celluloid-shortcuts-window.c:75 msgid "Seek to previous/next subtitle" msgstr "" #: src/celluloid-shortcuts-window.c:76 msgid "Step backward/forward a single frame" msgstr "" #: src/celluloid-shortcuts-window.c:77 msgid "Seek to the beginning of the previous/next chapter" msgstr "" #: src/celluloid-shortcuts-window.c:80 msgid "Decrease/increase playback speed by 10%" msgstr "" #: src/celluloid-shortcuts-window.c:81 msgid "Halve/double current playback speed" msgstr "" #: src/celluloid-shortcuts-window.c:82 msgid "Reset playback speed to normal" msgstr "" #: src/celluloid-shortcuts-window.c:83 msgid "Go backward/forward in the playlist" msgstr "" #: src/celluloid-shortcuts-window.c:84 msgid "Remove selected playlist item" msgstr "" #: src/celluloid-shortcuts-window.c:85 msgid "Save playlist" msgstr "儲存播放清單" #: src/celluloid-shortcuts-window.c:86 msgid "Set/clear A-B loop points" msgstr "" #: src/celluloid-shortcuts-window.c:87 msgid "Toggle infinite looping" msgstr "" #: src/celluloid-shortcuts-window.c:88 msgid "Pause or unpause" msgstr "是否暫停" #: src/celluloid-shortcuts-window.c:89 msgid "Quit" msgstr "離開" #: src/celluloid-shortcuts-window.c:90 msgid "Save current playback position and quit" msgstr "" #: src/celluloid-shortcuts-window.c:93 msgid "Enter search mode" msgstr "" #: src/celluloid-shortcuts-window.c:94 msgid "Jump to next match" msgstr "" #: src/celluloid-shortcuts-window.c:95 msgid "Jump to previous match" msgstr "" #: src/celluloid-shortcuts-window.c:96 msgid "Exit search mode" msgstr "" #: src/celluloid-shortcuts-window.c:99 msgid "Cycle through audio tracks" msgstr "" #: src/celluloid-shortcuts-window.c:100 src/celluloid-shortcuts-window.c:101 msgid "Decrease/increase volume" msgstr "增減音量" #: src/celluloid-shortcuts-window.c:102 msgid "Mute or unmute" msgstr "是否靜音" #: src/celluloid-shortcuts-window.c:103 msgid "Adjust audio delay by +/- 0.1 seconds" msgstr "" #: src/celluloid-shortcuts-window.c:106 msgid "Toggle subtitle visibility" msgstr "" #: src/celluloid-shortcuts-window.c:107 msgid "Cycle through available subtitles" msgstr "" #: src/celluloid-shortcuts-window.c:108 msgid "Adjust subtitle delay by +/- 0.1 seconds" msgstr "" #: src/celluloid-shortcuts-window.c:109 msgid "Toggle SSA/ASS subtitles style override" msgstr "" #: src/celluloid-shortcuts-window.c:110 msgid "Move subtitles up/down" msgstr "字幕上下移動" #: src/celluloid-shortcuts-window.c:111 msgid "Toggle VSFilter aspect compatibility mode" msgstr "" #: src/celluloid-shortcuts-window.c:114 msgid "Cycle through video tracks" msgstr "" #: src/celluloid-shortcuts-window.c:115 msgid "Decrease/increase pan-and-scan range" msgstr "" #: src/celluloid-shortcuts-window.c:116 msgid "Take a screenshot" msgstr "拍攝螢幕擷圖" #: src/celluloid-shortcuts-window.c:117 msgid "Take a screenshot, without subtitles" msgstr "" #: src/celluloid-shortcuts-window.c:118 msgid "Take a screenshot, as the window shows it" msgstr "" #: src/celluloid-shortcuts-window.c:119 msgid "Resize video to half its original size" msgstr "將影片縮至原來一半的大小" #: src/celluloid-shortcuts-window.c:120 msgid "Resize video to its original size" msgstr "將影片縮放至原始大小" #: src/celluloid-shortcuts-window.c:121 msgid "Resize video to double its original size" msgstr "將影片放大至原來的兩倍" #: src/celluloid-shortcuts-window.c:122 msgid "Adjust contrast" msgstr "調整對比" #: src/celluloid-shortcuts-window.c:123 msgid "Adjust brightness" msgstr "調整亮度" #: src/celluloid-shortcuts-window.c:124 msgid "Adjust gamma" msgstr "調整 gamma 值" #: src/celluloid-shortcuts-window.c:125 msgid "Adjust saturation" msgstr "調整飽和度" #: src/celluloid-shortcuts-window.c:126 msgid "Activate or deactivate deinterlacer" msgstr "是否啟用解調變" #: src/celluloid-shortcuts-window.c:127 msgid "Cycle aspect ratio override" msgstr "" #: src/celluloid-shortcuts-window.c:130 msgid "User Interface" msgstr "使用者界面" #: src/celluloid-shortcuts-window.c:131 msgid "Video" msgstr "影片" #: src/celluloid-shortcuts-window.c:132 msgid "Audio" msgstr "音訊" #: src/celluloid-shortcuts-window.c:133 msgid "Subtitle" msgstr "字幕" #: src/celluloid-shortcuts-window.c:134 msgid "Playback" msgstr "" #: src/celluloid-shortcuts-window.c:135 msgid "Seeking" msgstr "" #: src/celluloid-view.c:728 msgid "Load Audio Track…" msgstr "載入音訊檔" #: src/celluloid-view.c:732 msgid "Load Video Track…" msgstr "" #: src/celluloid-view.c:736 msgid "Load Subtitle Track…" msgstr "載入字幕檔" #: src/celluloid-view.c:901 msgid "" "Enabling or disabling client-side decorations requires restarting to take " "effect." msgstr "" #: src/celluloid-view.c:1444 msgid "Add Folder to Playlist" msgstr "" #: src/celluloid-view.c:1444 msgid "Open Folder" msgstr "" #: src/celluloid-view.c:1449 msgid "Add File to Playlist" msgstr "新增檔案到播放列表" #: src/celluloid-view.c:1449 msgid "Open File" msgstr "開啟檔案" #: src/celluloid-view.c:1485 msgid "Add Location to Playlist" msgstr "新增位置至播放清單" #: src/celluloid-view.c:1486 msgid "Open Location" msgstr "開啟位置" #: src/celluloid-view.c:1532 msgid "Save Playlist" msgstr "儲存播放列表" #: src/celluloid-view.c:1598 msgid "A GTK frontend for MPV" msgstr "MPV 的 GTK 前端程式" #: src/celluloid-view.c:1608 msgid "translator-credits" msgstr "" "Mingye Wang\n" "Sun" celluloid-0.20/src/000077500000000000000000000000001373135401300141765ustar00rootroot00000000000000celluloid-0.20/src/Makefile.am000066400000000000000000000071721373135401300162410ustar00rootroot00000000000000AUTOMAKE_OPTIONS = foreign bin_PROGRAMS = celluloid mpris_generated = mpris/celluloid-mpris-gdbus.c mpris/celluloid-mpris-gdbus.h mpris_files = mpris/celluloid-mpris.c mpris/celluloid-mpris.h \ mpris/celluloid-mpris-module.c mpris/celluloid-mpris-module.h \ mpris/celluloid-mpris-base.c mpris/celluloid-mpris-base.h \ mpris/celluloid-mpris-player.c mpris/celluloid-mpris-player.h \ mpris/celluloid-mpris-track-list.c mpris/celluloid-mpris-track-list.h \ $(mpris_generated) $(mpris_generated): $(top_srcdir)/data/celluloid-mpris-gdbus.xml $(AM_V_GEN) \ $(GDBUS_CODEGEN) --c-namespace celluloid_mpris --generate-c-code mpris/celluloid-mpris-gdbus $< && \ $(SED) -i '1i#pragma GCC diagnostic ignored \"-Wconversion\"' mpris/celluloid-mpris-gdbus.c marshal_generated = celluloid-marshal.c celluloid-marshal.h marshal_files = $(marshal_generated) celluloid-marshal.h: $(top_srcdir)/data/celluloid-marshal.lst $(AM_V_GEN) \ $(GLIB_GENMARSHAL) --prefix="g_cclosure_gen_marshal" --header $< > $@ celluloid-marshal.c: $(top_srcdir)/data/celluloid-marshal.lst $(AM_V_GEN) \ $(GLIB_GENMARSHAL) --prefix="g_cclosure_gen_marshal" --body $< > $@ && \ $(SED) -i '1i#pragma GCC diagnostic ignored \"-Wmissing-prototypes\"' $@ authors_generated = celluloid-authors.h authors_files = $(authors_generated) celluloid-authors.h: $(top_srcdir)/AUTHORS $(AM_V_GEN) \ $(AWK) 'BEGIN{print "#ifndef AUTHORS_H\n" \ "#define AUTHORS_H\n\n" \ "#define AUTHORS {\\"} \ /^[^#].+/{print "\"" $$0 "\",\\"} \ END{print "NULL}\n\n#endif"}' $< > $@ media_key_files = media-keys/celluloid-media-keys.c media-keys/celluloid-media-keys.h BUILT_SOURCES = $(mpris_generated) $(marshal_generated) $(authors_generated) celluloid_SOURCES = celluloid-main.c celluloid-def.h \ celluloid-application.c celluloid-application.h \ celluloid-common.c celluloid-common.h \ celluloid-controller.c celluloid-controller.h \ celluloid-controller-actions.c celluloid-controller-actions.h \ celluloid-controller-private.h \ celluloid-controller-input.c celluloid-controller-input.h \ celluloid-control-box.c celluloid-control-box.h \ celluloid-file-chooser.c celluloid-file-chooser.h \ celluloid-header-bar.c celluloid-header-bar.h \ celluloid-main-window.c celluloid-main-window.h celluloid-main-window-private.h \ celluloid-menu.c celluloid-menu.h \ celluloid-metadata-cache.c celluloid-metadata-cache.h \ celluloid-model.c celluloid-model.h \ celluloid-mpv.c celluloid-mpv.h \ celluloid-mpv-private.h \ celluloid-option-parser.c celluloid-option-parser.h \ celluloid-open-location-dialog.c celluloid-open-location-dialog.h \ celluloid-player.c celluloid-player.h celluloid-player-private.h \ celluloid-player-options.c celluloid-player-options.h \ celluloid-playlist-widget.c celluloid-playlist-widget.h \ celluloid-plugins-manager.c celluloid-plugins-manager.h \ celluloid-plugins-manager-item.c celluloid-plugins-manager-item.h \ celluloid-preferences-dialog.c celluloid-preferences-dialog.h \ celluloid-seek-bar.c celluloid-seek-bar.h \ celluloid-shortcuts-window.c celluloid-shortcuts-window.h \ celluloid-time-label.c celluloid-time-label.h \ celluloid-video-area.c celluloid-video-area.h \ celluloid-view.c celluloid-view.h \ celluloid-mpv-wrapper.c celluloid-mpv-wrapper.h \ $(mpris_files) $(marshal_files) $(media_key_files) \ $(authors_files) celluloid_CFLAGS = $(DEPS_CFLAGS) \ -DG_SETTINGS_ENABLE_BACKEND \ -DPACKAGE_LOCALEDIR=\""$(localedir)"\" \ -Impris celluloid_LDADD = $(DEPS_LIBS) CLEANFILES = $(mpris_generated) $(marshal_generated) $(authors_generated) EXTRA_DIST = meson.build generate-authors.py celluloid-0.20/src/celluloid-application.c000066400000000000000000000351151373135401300206240ustar00rootroot00000000000000/* * Copyright (c) 2016-2020 gnome-mpv * * This file is part of Celluloid. * * Celluloid is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Celluloid is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Celluloid. If not, see . */ #include #include #include #include #include #include "celluloid-application.h" #include "celluloid-controller.h" #include "celluloid-mpv-wrapper.h" #include "celluloid-common.h" #include "celluloid-def.h" struct _CelluloidApplication { GtkApplication parent; GSList *controllers; gboolean enqueue; gboolean new_window; gchar *mpv_options; gchar *role; guint inhibit_cookie; }; struct _CelluloidApplicationClass { GtkApplicationClass parent_class; }; static void migrate_config(void); static void initialize_gui(CelluloidApplication *app); static void create_dirs(void); static gboolean shutdown_signal_handler(gpointer data); static void new_window_handler(GSimpleAction *simple, GVariant *parameter, gpointer data); static void activate_handler(GApplication *gapp, gpointer data); static void open_handler( GApplication *gapp, GFile **files, gint n_files, gchar *hint, gpointer data ); static gint options_handler(GApplication *gapp, GVariantDict *options, gpointer data); static gboolean local_command_line(GApplication *gapp, gchar ***arguments, gint *exit_status); static gint command_line_handler( GApplication *gapp, GApplicationCommandLine *cli, gpointer data ); static void startup_handler(GApplication *gapp, gpointer data); static void idle_handler(GObject *object, GParamSpec *pspec, gpointer data); static void shutdown_handler(CelluloidController *controller, gpointer data); static void celluloid_application_class_init(CelluloidApplicationClass *klass); static void celluloid_application_init(CelluloidApplication *app); G_DEFINE_TYPE(CelluloidApplication, celluloid_application, GTK_TYPE_APPLICATION) static void migrate_config() { const gchar *keys[] = { "dark-theme-enable", "csd-enable", "always-use-floating-controls", "always-autohide-cursor", "use-skip-buttons-for-playlist", "last-folder-enable", "always-open-new-window", "mpv-options", "mpv-config-file", "mpv-config-enable", "mpv-input-config-file", "mpv-input-config-enable", "mpris-enable", "media-keys-enable", "prefetch-metadata", NULL }; GSettings *old_settings = g_settings_new("io.github.GnomeMpv"); GSettings *new_settings = g_settings_new(CONFIG_ROOT); if(!g_settings_get_boolean(new_settings, "settings-migrated")) { g_settings_set_boolean(new_settings, "settings-migrated", TRUE); for(gint i = 0; keys[i]; i++) { GVariant *buf = g_settings_get_user_value (old_settings, keys[i]); if(buf) { g_settings_set_value (new_settings, keys[i], buf); g_variant_unref(buf); } } } g_object_unref(old_settings); g_object_unref(new_settings); } static void initialize_gui(CelluloidApplication *app) { CelluloidController *controller; CelluloidView *view; CelluloidMainWindow *window; GSettings *settings; migrate_config(); controller = celluloid_controller_new(app); view = celluloid_controller_get_view(controller); window = celluloid_view_get_main_window(view); settings = g_settings_new(CONFIG_ROOT); app->controllers = g_slist_prepend(app->controllers, controller); if(app->role) { gtk_window_set_role(GTK_WINDOW(window), app->role); } g_unix_signal_add(SIGHUP, shutdown_signal_handler, app); g_unix_signal_add(SIGINT, shutdown_signal_handler, app); g_unix_signal_add(SIGTERM, shutdown_signal_handler, app); g_signal_connect( controller, "notify::idle", G_CALLBACK(idle_handler), app ); g_signal_connect( controller, "shutdown", G_CALLBACK(shutdown_handler), app ); g_settings_bind( settings, "use-skip-buttons-for-playlist", controller, "use-skip-buttons-for-playlist", G_SETTINGS_BIND_GET ); g_settings_bind( settings, "always-use-floating-controls", celluloid_view_get_main_window(view), "always-use-floating-controls", G_SETTINGS_BIND_GET ); g_settings_bind( settings, "dark-theme-enable", gtk_settings_get_default(), "gtk-application-prefer-dark-theme", G_SETTINGS_BIND_GET ); g_object_unref(settings); } static void create_dirs() { gchar *config_dir = get_config_dir_path(); gchar *scripts_dir = get_scripts_dir_path(); gchar *watch_dir = get_watch_dir_path(); g_mkdir_with_parents(config_dir, 0755); g_mkdir_with_parents(scripts_dir, 0755); g_mkdir_with_parents(watch_dir, 0755); g_free(config_dir); g_free(scripts_dir); g_free(watch_dir); } static gboolean shutdown_signal_handler(gpointer data) { g_info("Shutdown signal received. Shutting down..."); celluloid_application_quit(data); return FALSE; } static void new_window_handler(GSimpleAction *simple, GVariant *parameter, gpointer data) { initialize_gui(data); } static void activate_handler(GApplication *gapp, gpointer data) { CelluloidApplication *app = data; if(!app->controllers) { initialize_gui(app); } } static void open_handler( GApplication *gapp, GFile **files, gint n_files, gchar *hint, gpointer data ) { CelluloidApplication *app = data; GSettings *settings = g_settings_new(CONFIG_ROOT); /* Only activate new-window if always-open-new-window is set. It is not * necessary to handle --new-window here since options_handler() would * have activated new-window already if it were set. */ if(g_settings_get_boolean(settings, "always-open-new-window")) { activate_action_string(G_ACTION_MAP(gapp), "new-window"); } g_application_activate(gapp); for(gint i = 0; i < n_files; i++) { GtkApplication *gtkapp = GTK_APPLICATION(gapp); GtkWindow *window = gtk_application_get_active_window(gtkapp); GActionMap *map = G_ACTION_MAP(window); gchar *uri = g_file_get_uri(((GFile **)files)[i]); gboolean append = i != 0 || app->enqueue; GVariant *param = g_variant_new("(sb)", uri, append); GAction *action = g_action_map_lookup_action(map, "open"); g_action_activate(action, param); g_free(uri); } g_object_unref(settings); } static gint options_handler(GApplication *gapp, GVariantDict *options, gpointer data) { gboolean version = FALSE; g_variant_dict_lookup(options, "version", "b", &version); if(version) { g_printf("Celluloid " VERSION "\n"); } else { gboolean no_existing_session = FALSE; g_variant_dict_lookup( options, "no-existing-session", "b", &no_existing_session ); if(no_existing_session) { GApplicationFlags flags = g_application_get_flags(gapp); g_info("Single instance negotiation is disabled"); g_application_set_flags (gapp, flags|G_APPLICATION_NON_UNIQUE); } } return version?0:-1; } static gboolean local_command_line(GApplication *gapp, gchar ***arguments, gint *exit_status) { CelluloidApplication *app = CELLULOID_APPLICATION(gapp); GPtrArray *options = g_ptr_array_new_with_free_func(g_free); gchar **argv = *arguments; gint i = 1; g_clear_pointer(&app->mpv_options, g_free); while(argv[i]) { // Ignore --mpv-options const gboolean excluded = g_str_has_prefix(argv[i], "--mpv-options") && argv[i][sizeof("--mpv-options")] != '='; if(!excluded && g_str_has_prefix(argv[i], MPV_OPTION_PREFIX)) { const gchar *suffix = argv[i] + sizeof(MPV_OPTION_PREFIX) - 1; gchar *option = g_strconcat("--", suffix, NULL); g_ptr_array_add(options, option); // Remove collected option for(gint j = i; argv[j]; j++) { argv[j] = argv[j + 1]; } } else { i++; } } if(options->len > 0) { g_ptr_array_add(options, NULL); app->mpv_options = g_strjoinv(" ", (gchar **)options->pdata); } g_assert(!g_ptr_array_free(options, TRUE)); return G_APPLICATION_CLASS(celluloid_application_parent_class) ->local_command_line(gapp, arguments, exit_status); } static gint command_line_handler( GApplication *gapp, GApplicationCommandLine *cli, gpointer data ) { CelluloidApplication *app = data; gint argc = 1; gchar **argv = g_application_command_line_get_arguments(cli, &argc); GVariantDict *options = g_application_command_line_get_options_dict(cli); GSettings *settings = g_settings_new(CONFIG_ROOT); gboolean always_open_new_window = FALSE; gchar *mpv_options = NULL; const gint n_files = argc-1; GFile *files[n_files]; app->enqueue = FALSE; app->new_window = FALSE; always_open_new_window = g_settings_get_boolean (settings, "always-open-new-window"); g_clear_pointer(&app->role, g_free); g_variant_dict_lookup(options, "enqueue", "b", &app->enqueue); g_variant_dict_lookup(options, "new-window", "b", &app->new_window); g_variant_dict_lookup(options, "mpv-options", "s", &mpv_options); g_variant_dict_lookup(options, "role", "s", &app->role); /* Combine mpv options from --mpv-options and options matching * MPV_OPTION_PREFIX */ if(mpv_options) { gchar *old_mpv_options = app->mpv_options; g_warning("--mpv-options is deprecated and will be removed in future versions."); app->mpv_options = g_strjoin(" ", mpv_options, app->mpv_options, NULL); g_free(old_mpv_options); g_free(mpv_options); } for(gint i = 0; i < n_files; i++) { files[i] = g_application_command_line_create_file_for_arg (cli, argv[i+1]); } /* Only activate the new-window action or emit the activate signal if * there are no files to be opened. If there are files, open_handler() * will activate the action by itself. This is necessary because when * opening files from file managers, files to be opened may be sent in * the form of DBus message, bypassing this function entirely. */ if(app->new_window || (n_files == 0 && always_open_new_window)) { activate_action_string(G_ACTION_MAP(gapp), "new-window"); } else if(n_files == 0 && !app->controllers) { g_application_activate(gapp); } if(n_files > 0) { g_application_open (gapp, files, n_files, app->enqueue?"enqueue":""); } for(gint i = 0; i < n_files; i++) { g_object_unref(files[i]); } gdk_notify_startup_complete(); g_object_unref(settings); g_strfreev(argv); return 0; } static void startup_handler(GApplication *gapp, gpointer data) { g_set_application_name(_("Celluloid")); gtk_window_set_default_icon_name(ICON_NAME); bindtextdomain(GETTEXT_PACKAGE, PACKAGE_LOCALEDIR); bind_textdomain_codeset(GETTEXT_PACKAGE, "UTF-8"); textdomain(GETTEXT_PACKAGE); create_dirs(); g_info("Starting Celluloid " VERSION); } static void idle_handler(GObject *object, GParamSpec *pspec, gpointer data) { GSettings *settings = g_settings_new(CONFIG_ROOT); CelluloidApplication *app = data; CelluloidController *controller = NULL; gboolean idle = TRUE; for( GSList *iter = app->controllers; iter && idle; iter = g_slist_next(iter) ) { gboolean current = TRUE; g_object_get(iter->data, "idle", ¤t, NULL); idle &= current; controller = iter->data; } if( !idle && app->inhibit_cookie == 0 && g_settings_get_boolean(settings, "inhibit-idle") ) { CelluloidView *view = celluloid_controller_get_view(controller); CelluloidMainWindow *window = celluloid_view_get_main_window(view); app->inhibit_cookie = gtk_application_inhibit ( GTK_APPLICATION(app), GTK_WINDOW(window), GTK_APPLICATION_INHIBIT_IDLE, _("Playing") ); } else if(idle && app->inhibit_cookie != 0) { gtk_application_uninhibit (GTK_APPLICATION(app), app->inhibit_cookie); app->inhibit_cookie = 0; } g_object_unref(settings); } static void shutdown_handler(CelluloidController *controller, gpointer data) { CelluloidApplication *app = data; app->controllers = g_slist_remove(app->controllers, controller); g_object_unref(controller); g_free(app->mpv_options); g_free(app->role); if(!app->controllers) { celluloid_application_quit(data); } } static void celluloid_application_class_init(CelluloidApplicationClass *klass) { G_APPLICATION_CLASS(klass)->local_command_line = local_command_line; } static void celluloid_application_init(CelluloidApplication *app) { GSimpleAction *new_window = g_simple_action_new("new-window", NULL); app->controllers = NULL; app->enqueue = FALSE; app->new_window = FALSE; app->mpv_options = NULL; app->role = NULL; app->inhibit_cookie = 0; g_set_prgname(APP_ID); g_action_map_add_action(G_ACTION_MAP(app), G_ACTION(new_window)); g_application_add_main_option ( G_APPLICATION(app), "version", '\0', G_OPTION_FLAG_NONE, G_OPTION_ARG_NONE, _("Show release version"), NULL ); g_application_add_main_option ( G_APPLICATION(app), "enqueue", '\0', G_OPTION_FLAG_NONE, G_OPTION_ARG_NONE, _("Enqueue"), NULL ); g_application_add_main_option ( G_APPLICATION(app), "new-window", '\0', G_OPTION_FLAG_NONE, G_OPTION_ARG_NONE, _("Create a new window"), NULL ); g_application_add_main_option ( G_APPLICATION(app), "mpv-options", '\0', G_OPTION_FLAG_NONE, G_OPTION_ARG_STRING, _("Options to pass to mpv"), _("OPTIONS") ); g_application_add_main_option ( G_APPLICATION(app), "role", '\0', G_OPTION_FLAG_NONE, G_OPTION_ARG_STRING, _("Set the window role"), NULL ); g_application_add_main_option ( G_APPLICATION(app), "no-existing-session", '\0', G_OPTION_FLAG_HIDDEN, G_OPTION_ARG_NONE, _("Don't connect to an already-running instance"), NULL ); g_signal_connect (new_window, "activate", G_CALLBACK(new_window_handler), app); g_signal_connect (app, "handle-local-options", G_CALLBACK(options_handler), app); g_signal_connect (app, "command-line", G_CALLBACK(command_line_handler), app); g_signal_connect (app, "startup", G_CALLBACK(startup_handler), app); g_signal_connect (app, "activate", G_CALLBACK(activate_handler), app); g_signal_connect (app, "open", G_CALLBACK(open_handler), app); } CelluloidApplication * celluloid_application_new(gchar *id, GApplicationFlags flags) { const GType type = celluloid_application_get_type(); return CELLULOID_APPLICATION(g_object_new( type, "application-id", id, "flags", flags, NULL )); } void celluloid_application_quit(CelluloidApplication *app) { g_application_quit(G_APPLICATION(app)); } const gchar * celluloid_application_get_mpv_options(CelluloidApplication *app) { return app->mpv_options; } celluloid-0.20/src/celluloid-application.h000066400000000000000000000024171373135401300206300ustar00rootroot00000000000000/* * Copyright (c) 2016-2019 gnome-mpv * * This file is part of Celluloid. * * Celluloid is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Celluloid is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Celluloid. If not, see . */ #ifndef APPLICATION_H #define APPLICATION_H #include #include "celluloid-main-window.h" #include "celluloid-mpv.h" G_BEGIN_DECLS #define CELLULOID_TYPE_APPLICATION (celluloid_application_get_type()) G_DECLARE_FINAL_TYPE(CelluloidApplication, celluloid_application, CELLULOID, APPLICATION, GtkApplication) CelluloidApplication * celluloid_application_new(gchar *id, GApplicationFlags flags); void celluloid_application_quit(CelluloidApplication *app); const gchar * celluloid_application_get_mpv_options(CelluloidApplication *app); G_END_DECLS #endif celluloid-0.20/src/celluloid-common.c000066400000000000000000000132471373135401300176130ustar00rootroot00000000000000/* * Copyright (c) 2014-2020 gnome-mpv * * This file is part of Celluloid. * * Celluloid is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Celluloid is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Celluloid. If not, see . */ #include #include #include #include #include #include #include "celluloid-common.h" #include "celluloid-def.h" #include "celluloid-mpv.h" #include "celluloid-mpv-wrapper.h" #include "celluloid-main-window.h" #include "celluloid-control-box.h" CelluloidPlaylistEntry * celluloid_playlist_entry_new(const gchar *filename, const gchar *title) { CelluloidPlaylistEntry *entry = g_malloc(sizeof(CelluloidPlaylistEntry)); entry->filename = g_strdup(filename); entry->title = g_strdup(title); entry->metadata = g_ptr_array_new_with_free_func ((GDestroyNotify)celluloid_metadata_entry_free); return entry; } void celluloid_playlist_entry_free(CelluloidPlaylistEntry *entry) { if(entry) { g_free(entry->filename); g_free(entry->title); g_ptr_array_free(entry->metadata, TRUE); g_free(entry); } } CelluloidMetadataEntry * celluloid_metadata_entry_new(const gchar *key, const gchar *value) { CelluloidMetadataEntry *entry = g_malloc(sizeof(CelluloidMetadataEntry)); entry->key = g_strdup(key); entry->value = g_strdup(value); return entry; } void celluloid_metadata_entry_free(CelluloidMetadataEntry *entry) { if(entry) { g_free(entry->key); g_free(entry->value); g_free(entry); } } CelluloidTrack * celluloid_track_new(void) { CelluloidTrack *entry = g_malloc(sizeof(CelluloidTrack)); entry->type = TRACK_TYPE_INVALID; entry->title = NULL; entry->lang = NULL; entry->id = 0; return entry; } void celluloid_track_free(CelluloidTrack *entry) { if(entry) { g_free(entry->title); g_free(entry->lang); g_free(entry); } } CelluloidDisc * celluloid_disc_new(void) { return g_malloc0(sizeof(CelluloidDisc)); } void celluloid_disc_free(CelluloidDisc *disc) { g_free(disc->uri); g_free(disc->label); g_free(disc); } gchar * get_config_dir_path(void) { return g_build_filename( g_get_user_config_dir(), CONFIG_DIR, NULL ); } gchar * get_scripts_dir_path(void) { return g_build_filename( g_get_user_config_dir(), CONFIG_DIR, "scripts", NULL ); } gchar * get_watch_dir_path(void) { return g_build_filename( g_get_user_config_dir(), CONFIG_DIR, "watch_later", NULL ); } gchar * get_path_from_uri(const gchar *uri) { GFile *file = g_vfs_get_file_for_uri(g_vfs_get_default(), uri); gchar *path = g_file_get_path(file); if(file) { g_object_unref(file); } return path?path:g_strdup(uri); } gchar * get_name_from_path(const gchar *path) { const gchar *scheme = g_uri_parse_scheme(path); gchar *basename = NULL; /* Check whether the given path is likely to be a local path */ if(!scheme && path) { basename = g_path_get_basename(path); } return basename?basename:g_strdup(path); } gboolean extension_matches(const gchar *filename, const gchar **extensions) { const gchar *ext = strrchr(filename, '.'); gboolean result = FALSE; /* Only start checking the extension if there is at * least one character after the dot. */ if(ext && ++ext) { const gchar **iter = extensions; /* Check if the file extension matches one of the * supported subtitle formats. */ while(*iter && g_strcmp0(ext, *(iter++)) != 0); result = !!(*iter); } return result; } gboolean g_source_clear(guint *tag) { if(*tag != 0) { g_source_remove(*tag); *tag = 0; } return TRUE; } void * gslist_to_array(GSList *slist) { void **result = g_malloc(sizeof(void **)*(g_slist_length(slist)+1)); gint i = 0; for(GSList *iter = slist; iter; iter = g_slist_next(iter)) { result[i++] = iter->data; } result[i] = NULL; return result; } gchar * strnjoinv(const gchar *separator, const gchar **str_array, gsize count) { gsize args_size = ((gsize)count+1)*sizeof(gchar *); gchar **args = g_malloc(args_size); gchar *result; memcpy(args, str_array, args_size-sizeof(gchar *)); args[count] = NULL; result = g_strjoinv(separator, args); g_free(args); return result; } char * format_time(gint seconds, gboolean show_hour) { gchar *result = NULL; if(show_hour) { result = g_strdup_printf( "%02d:%02d:%02d", seconds/3600, (seconds%3600)/60, seconds%60 ); } else { result = g_strdup_printf("%02d:%02d", seconds/60, seconds%60); } return result; } void activate_action_string(GActionMap *map, const gchar *str) { GAction *action = NULL; gchar *name = NULL; GVariant *param = NULL; gboolean param_match = FALSE; g_action_parse_detailed_name(str, &name, ¶m, NULL); if(name) { const GVariantType *action_ptype; const GVariantType *given_ptype; action = g_action_map_lookup_action(map, name); action_ptype = g_action_get_parameter_type(action); given_ptype = param?g_variant_get_type(param):NULL; param_match = (action_ptype == given_ptype) || ( given_ptype && g_variant_type_is_subtype_of (action_ptype, given_ptype) ); } if(action && param_match) { g_debug("Activating action %s", str); g_action_activate(action, param); } else { g_warning("Failed to activate action \"%s\"", str); } } celluloid-0.20/src/celluloid-common.h000066400000000000000000000050421373135401300176120ustar00rootroot00000000000000/* * Copyright (c) 2014-2020 gnome-mpv * * This file is part of Celluloid. * * Celluloid is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Celluloid is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Celluloid. If not, see . */ #ifndef COMMON_H #define COMMON_H #include #include G_BEGIN_DECLS typedef enum TrackType TrackType; typedef struct _CelluloidPlaylistEntry CelluloidPlaylistEntry; typedef struct _CelluloidMetadataEntry CelluloidMetadataEntry; typedef struct CelluloidTrack CelluloidTrack; typedef struct CelluloidDisc CelluloidDisc; enum TrackType { TRACK_TYPE_INVALID, TRACK_TYPE_AUDIO, TRACK_TYPE_VIDEO, TRACK_TYPE_SUBTITLE, TRACK_TYPE_N }; struct _CelluloidPlaylistEntry { gchar *filename; gchar *title; gdouble duration; GPtrArray *metadata; }; struct _CelluloidMetadataEntry { gchar *key; gchar *value; }; struct CelluloidTrack { TrackType type; gint64 id; gchar *title; gchar *lang; }; struct CelluloidDisc { gchar *uri; gchar *label; }; CelluloidPlaylistEntry * celluloid_playlist_entry_new(const gchar *filename, const gchar *title); void celluloid_playlist_entry_free(CelluloidPlaylistEntry *entry); CelluloidMetadataEntry * celluloid_metadata_entry_new(const gchar *key, const gchar *value); void celluloid_metadata_entry_free(CelluloidMetadataEntry *entry); CelluloidTrack * celluloid_track_new(void); void celluloid_track_free(CelluloidTrack *entry); CelluloidDisc * celluloid_disc_new(void); void celluloid_disc_free(CelluloidDisc *disc); gchar * get_config_dir_path(void); gchar * get_scripts_dir_path(void); gchar * get_watch_dir_path(void); gchar * get_path_from_uri(const gchar *uri); gchar * get_name_from_path(const gchar *path); gboolean extension_matches(const gchar *filename, const gchar **extensions); gboolean g_source_clear(guint *tag); void * gslist_to_array(GSList *slist); gchar * strnjoinv(const gchar *separator, const gchar **str_array, gsize count); char * format_time(gint seconds, gboolean show_hour); void activate_action_string(GActionMap *map, const gchar *str); G_END_DECLS #endif celluloid-0.20/src/celluloid-control-box.c000066400000000000000000000437661373135401300206020ustar00rootroot00000000000000/* * Copyright (c) 2014-2020 gnome-mpv * * This file is part of Celluloid. * * Celluloid is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Celluloid is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Celluloid. If not, see . */ #include #include #include #include "celluloid-control-box.h" #include "celluloid-seek-bar.h" enum { PROP_0, PROP_SKIP_ENABLED, PROP_DURATION, PROP_ENABLED, PROP_PAUSE, PROP_SHOW_FULLSCREEN_BUTTON, PROP_TIME_POSITION, PROP_LOOP, PROP_SHUFFLE, PROP_VOLUME, PROP_VOLUME_MAX, PROP_VOLUME_POPUP_VISIBLE, N_PROPERTIES }; struct _CelluloidControlBox { GtkBox parent_instance; GtkWidget *play_button; GtkWidget *stop_button; GtkWidget *forward_button; GtkWidget *rewind_button; GtkWidget *next_button; GtkWidget *previous_button; GtkWidget *loop_button; GtkWidget *shuffle_button; GtkWidget *volume_button; GtkWidget *fullscreen_button; GtkWidget *seek_bar; gboolean skip_enabled; gdouble duration; gboolean enabled; gboolean pause; gboolean show_fullscreen_button; gdouble time_position; gboolean loop; gboolean shuffle; gdouble volume; gdouble volume_max; gboolean volume_popup_visible; }; struct _CelluloidControlBoxClass { GtkBoxClass parent_class; }; static void set_property( GObject *object, guint property_id, const GValue *value, GParamSpec *pspec ); static void get_property( GObject *object, guint property_id, GValue *value, GParamSpec *pspec ); static gboolean gtk_to_mpv_volume( GBinding *binding, const GValue *from_value, GValue *to_value, gpointer data ); static gboolean mpv_to_gtk_volume( GBinding *binding, const GValue *from_value, GValue *to_value, gpointer data ); static void seek_handler(CelluloidSeekBar *seek_bar, gdouble value, gpointer data); static void volume_changed_handler(GtkVolumeButton *button, gdouble value, gpointer data); static void simple_signal_handler(GtkWidget *widget, gpointer data); static void set_enabled(CelluloidControlBox *box, gboolean enabled); static void set_skip_enabled(CelluloidControlBox *box, gboolean enabled); static void set_playing_state(CelluloidControlBox *box, gboolean playing); static void init_button( GtkWidget *button, const gchar *icon_name, const gchar *tooltip_text ); G_DEFINE_TYPE(CelluloidControlBox, celluloid_control_box, GTK_TYPE_BOX) static void set_property( GObject *object, guint property_id, const GValue *value, GParamSpec *pspec ) { CelluloidControlBox *self = CELLULOID_CONTROL_BOX(object); switch(property_id) { case PROP_SKIP_ENABLED: self->skip_enabled = g_value_get_boolean(value); set_skip_enabled(self, self->skip_enabled); break; case PROP_DURATION: self->duration = g_value_get_double(value); celluloid_seek_bar_set_duration (CELLULOID_SEEK_BAR(self->seek_bar), self->duration); break; case PROP_ENABLED: self->enabled = g_value_get_boolean(value); set_enabled(self, self->enabled); break; case PROP_PAUSE: self->pause = g_value_get_boolean(value); set_playing_state(self, !self->pause); break; case PROP_SHOW_FULLSCREEN_BUTTON: self->show_fullscreen_button = g_value_get_boolean(value); break; case PROP_TIME_POSITION: self->time_position = g_value_get_double(value); celluloid_seek_bar_set_pos ( CELLULOID_SEEK_BAR(self->seek_bar), self->time_position ); break; case PROP_LOOP: self->loop = g_value_get_boolean(value); break; case PROP_SHUFFLE: self->shuffle = g_value_get_boolean(value); break; case PROP_VOLUME: self->volume = g_value_get_double(value); break; case PROP_VOLUME_MAX: self->volume_max = g_value_get_double(value); break; case PROP_VOLUME_POPUP_VISIBLE: self->volume_popup_visible = g_value_get_boolean(value); if( self->volume_popup_visible && gtk_widget_is_visible(GTK_WIDGET(self)) ) { g_signal_emit_by_name(self->volume_button, "popup"); } else if(!self->volume_popup_visible) { g_signal_emit_by_name(self->volume_button, "popdown"); } break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID(object, property_id, pspec); break; } } static void get_property( GObject *object, guint property_id, GValue *value, GParamSpec *pspec ) { CelluloidControlBox *self = CELLULOID_CONTROL_BOX(object); switch(property_id) { case PROP_SKIP_ENABLED: g_value_set_boolean(value, self->skip_enabled); break; case PROP_DURATION: g_value_set_double(value, self->duration); break; case PROP_ENABLED: g_value_set_boolean(value, self->enabled); break; case PROP_PAUSE: g_value_set_boolean(value, self->pause); break; case PROP_SHOW_FULLSCREEN_BUTTON: g_value_set_boolean(value, self->show_fullscreen_button); break; case PROP_TIME_POSITION: g_value_set_double(value, self->time_position); break; case PROP_LOOP: g_value_set_boolean(value, self->loop); break; case PROP_SHUFFLE: g_value_set_boolean(value, self->shuffle); break; case PROP_VOLUME: g_value_set_double(value, self->volume); break; case PROP_VOLUME_MAX: g_value_set_double(value, self->volume_max); break; case PROP_VOLUME_POPUP_VISIBLE: g_value_set_boolean(value, self->volume_popup_visible); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID(object, property_id, pspec); break; } } static gboolean gtk_to_mpv_volume( GBinding *binding, const GValue *from_value, GValue *to_value, gpointer data ) { gdouble from = g_value_get_double(from_value); g_value_set_double(to_value, from*100); return TRUE; } static gboolean mpv_to_gtk_volume( GBinding *binding, const GValue *from_value, GValue *to_value, gpointer data ) { gdouble from = g_value_get_double(from_value); g_value_set_double(to_value, from/100.0); return TRUE; } static void seek_handler(CelluloidSeekBar *seek_bar, gdouble value, gpointer data) { g_signal_emit_by_name(data, "seek", value); } static void volume_changed_handler(GtkVolumeButton *button, gdouble value, gpointer data) { g_signal_emit_by_name(data, "volume-changed", value*100.0); } static void simple_signal_handler(GtkWidget *widget, gpointer data) { CelluloidControlBox *box = data; gint i; const struct { const GtkWidget *widget; const gchar *name; const gchar *button; } signal_map[] = { {box->play_button, "button-clicked", "play"}, {box->stop_button, "button-clicked", "stop"}, {box->forward_button, "button-clicked", "forward"}, {box->rewind_button, "button-clicked", "rewind"}, {box->previous_button, "button-clicked", "previous"}, {box->next_button, "button-clicked", "next"}, {box->fullscreen_button, "button-clicked", "fullscreen"}, {NULL, NULL, NULL} }; for(i = 0; signal_map[i].name && signal_map[i].widget != widget; i++); if(signal_map[i].name) { g_signal_emit_by_name (data, signal_map[i].name, signal_map[i].button); } } static void set_enabled(CelluloidControlBox *box, gboolean enabled) { gtk_widget_set_sensitive(box->previous_button, enabled); gtk_widget_set_sensitive(box->rewind_button, enabled); gtk_widget_set_sensitive(box->stop_button, enabled); gtk_widget_set_sensitive(box->play_button, enabled); gtk_widget_set_sensitive(box->forward_button, enabled); gtk_widget_set_sensitive(box->next_button, enabled); } static void set_skip_enabled(CelluloidControlBox *box, gboolean enabled) { if(enabled) { gtk_widget_show_all(box->previous_button); gtk_widget_show_all(box->next_button); } else { gtk_widget_hide(box->previous_button); gtk_widget_hide(box->next_button); } } static void set_playing_state(CelluloidControlBox *box, gboolean playing) { GtkWidget *image = gtk_button_get_image(GTK_BUTTON(box->play_button)); const gchar *tooltip = playing?_("Pause"):_("Play"); gtk_image_set_from_icon_name( GTK_IMAGE(image), playing? "media-playback-pause-symbolic": "media-playback-start-symbolic", GTK_ICON_SIZE_BUTTON ); gtk_widget_set_tooltip_text(box->play_button, tooltip); } static void init_button( GtkWidget *button, const gchar *icon_name, const gchar *tooltip_text ) { GtkWidget *icon = gtk_image_new_from_icon_name (icon_name, GTK_ICON_SIZE_BUTTON); gtk_widget_set_tooltip_text(button, tooltip_text); g_object_set(button, "relief", GTK_RELIEF_NONE, NULL); gtk_widget_set_can_focus(button, FALSE); gtk_button_set_image(GTK_BUTTON(button), icon); } static void celluloid_control_box_class_init(CelluloidControlBoxClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS(klass); GParamSpec *pspec = NULL; object_class->set_property = set_property; object_class->get_property = get_property; pspec = g_param_spec_boolean ( "skip-enabled", "Skip enabled", "Whether the skip buttons are shown", FALSE, G_PARAM_READWRITE ); g_object_class_install_property (object_class, PROP_SKIP_ENABLED, pspec); pspec = g_param_spec_double ( "duration", "Duration", "Duration of the file", 0.0, G_MAXDOUBLE, 0.0, G_PARAM_READWRITE ); g_object_class_install_property (object_class, PROP_DURATION, pspec); pspec = g_param_spec_boolean ( "enabled", "Enabled", "Whether the controls are enabled", TRUE, G_PARAM_READWRITE ); g_object_class_install_property (object_class, PROP_ENABLED, pspec); pspec = g_param_spec_boolean ( "pause", "Pause", "Whether there is a file playing", TRUE, G_PARAM_READWRITE ); g_object_class_install_property (object_class, PROP_PAUSE, pspec); pspec = g_param_spec_boolean ( "show-fullscreen-button", "Show fullscreen button", "Whether to show fullscreen button when applicable", FALSE, G_PARAM_READWRITE ); g_object_class_install_property (object_class, PROP_SHOW_FULLSCREEN_BUTTON, pspec); pspec = g_param_spec_double ( "time-position", "Time position", "The current timr position in the current file", 0.0, G_MAXDOUBLE, 0.0, G_PARAM_READWRITE ); g_object_class_install_property (object_class, PROP_TIME_POSITION, pspec); pspec = g_param_spec_boolean ( "loop", "Loop", "Whether or not the loop button is active", FALSE, G_PARAM_READWRITE ); g_object_class_install_property (object_class, PROP_LOOP, pspec); pspec = g_param_spec_boolean ( "shuffle", "Shuffle", "Whether or not the the shuffle button is active", FALSE, G_PARAM_READWRITE ); g_object_class_install_property (object_class, PROP_SHUFFLE, pspec); pspec = g_param_spec_double ( "volume", "Volume", "The value of the volume button", 0.0, G_MAXDOUBLE, 0.0, G_PARAM_READWRITE ); g_object_class_install_property (object_class, PROP_VOLUME, pspec); pspec = g_param_spec_double ( "volume-max", "Volume Max", "The maximum amplification level", 0.0, G_MAXDOUBLE, 100.0, G_PARAM_READWRITE ); g_object_class_install_property (object_class, PROP_VOLUME_MAX, pspec); pspec = g_param_spec_boolean ( "volume-popup-visible", "Volume popup visible", "Whether or not the volume popup is visible", FALSE, G_PARAM_READWRITE ); g_object_class_install_property (object_class, PROP_VOLUME_POPUP_VISIBLE, pspec); g_signal_new( "button-clicked", G_TYPE_FROM_CLASS(klass), G_SIGNAL_RUN_FIRST, 0, NULL, NULL, g_cclosure_marshal_VOID__STRING, G_TYPE_NONE, 1, G_TYPE_STRING ); g_signal_new( "seek", G_TYPE_FROM_CLASS(klass), G_SIGNAL_RUN_FIRST, 0, NULL, NULL, g_cclosure_marshal_VOID__DOUBLE, G_TYPE_NONE, 1, G_TYPE_DOUBLE ); g_signal_new( "volume-changed", G_TYPE_FROM_CLASS(klass), G_SIGNAL_RUN_FIRST, 0, NULL, NULL, g_cclosure_marshal_VOID__DOUBLE, G_TYPE_NONE, 1, G_TYPE_DOUBLE ); } static void celluloid_control_box_init(CelluloidControlBox *box) { GtkWidget *popup = NULL; GtkAdjustment *adjustment = NULL; box->play_button = gtk_button_new(); box->stop_button = gtk_button_new(); box->forward_button = gtk_button_new(); box->rewind_button = gtk_button_new(); box->next_button = gtk_button_new(); box->previous_button = gtk_button_new(); box->fullscreen_button = gtk_button_new(); box->loop_button = gtk_toggle_button_new(); box->shuffle_button = gtk_toggle_button_new(); box->volume_button = gtk_volume_button_new(); box->seek_bar = celluloid_seek_bar_new(); box->skip_enabled = FALSE; box->duration = 0.0; box->enabled = TRUE; box->pause = TRUE; box->show_fullscreen_button = FALSE; box->time_position = 0.0; box->loop = FALSE; box->shuffle = FALSE; box->volume = 0.0; box->volume_max = 100.0; init_button( box->play_button, "media-playback-start-symbolic", _("Play") ); init_button( box->stop_button, "media-playback-stop-symbolic", _("Stop") ); init_button( box->forward_button, "media-seek-forward-symbolic", _("Forward") ); init_button( box->rewind_button, "media-seek-backward-symbolic", _("Rewind") ); init_button( box->next_button, "media-skip-forward-symbolic", _("Next Chapter") ); init_button( box->previous_button, "media-skip-backward-symbolic", _("Previous Chapter") ); init_button( box->loop_button, "media-playlist-repeat-symbolic", _("Loop Playlist") ); init_button( box->shuffle_button, "media-playlist-shuffle-symbolic", _("Shuffle Playlist") ); init_button( box->fullscreen_button, "view-fullscreen-symbolic", _("Toggle Fullscreen") ); gtk_style_context_add_class ( gtk_widget_get_style_context(GTK_WIDGET(box)), GTK_STYLE_CLASS_BACKGROUND ); gtk_widget_set_margin_end(box->seek_bar, 6); gtk_widget_set_can_focus(box->volume_button, FALSE); gtk_widget_set_can_focus(box->seek_bar, FALSE); gtk_container_add(GTK_CONTAINER(box), box->previous_button); gtk_container_add(GTK_CONTAINER(box), box->rewind_button); gtk_container_add(GTK_CONTAINER(box), box->play_button); gtk_container_add(GTK_CONTAINER(box), box->stop_button); gtk_container_add(GTK_CONTAINER(box), box->forward_button); gtk_container_add(GTK_CONTAINER(box), box->next_button); gtk_box_pack_start(GTK_BOX(box), box->seek_bar, TRUE, TRUE, 0); gtk_container_add(GTK_CONTAINER(box), box->loop_button); gtk_container_add(GTK_CONTAINER(box), box->shuffle_button); gtk_container_add(GTK_CONTAINER(box), box->volume_button); gtk_container_add(GTK_CONTAINER(box), box->fullscreen_button); popup = gtk_scale_button_get_popup (GTK_SCALE_BUTTON(box->volume_button)); adjustment = gtk_scale_button_get_adjustment (GTK_SCALE_BUTTON(box->volume_button)); g_object_bind_property( popup, "visible", box, "volume-popup-visible", G_BINDING_DEFAULT ); g_object_bind_property( box, "loop", box->loop_button, "active", G_BINDING_BIDIRECTIONAL ); g_object_bind_property( box, "shuffle", box->shuffle_button, "active", G_BINDING_BIDIRECTIONAL ); g_object_bind_property_full( box->volume_button, "value", box, "volume", G_BINDING_BIDIRECTIONAL, gtk_to_mpv_volume, mpv_to_gtk_volume, NULL, NULL ); g_object_bind_property_full( box, "volume-max", adjustment, "upper", G_BINDING_DEFAULT|G_BINDING_SYNC_CREATE, mpv_to_gtk_volume, gtk_to_mpv_volume, NULL, NULL ); g_signal_connect( box, "button-press-event", G_CALLBACK(gtk_true), NULL ); g_signal_connect( box->play_button, "clicked", G_CALLBACK(simple_signal_handler), box ); g_signal_connect( box->stop_button, "clicked", G_CALLBACK(simple_signal_handler), box ); g_signal_connect( box->seek_bar, "seek", G_CALLBACK(seek_handler), box ); g_signal_connect( box->forward_button, "clicked", G_CALLBACK(simple_signal_handler), box ); g_signal_connect( box->rewind_button, "clicked", G_CALLBACK(simple_signal_handler), box ); g_signal_connect( box->previous_button, "clicked", G_CALLBACK(simple_signal_handler), box ); g_signal_connect( box->next_button, "clicked", G_CALLBACK(simple_signal_handler), box ); g_signal_connect( box->fullscreen_button, "clicked", G_CALLBACK(simple_signal_handler), box ); g_signal_connect( box->volume_button, "value-changed", G_CALLBACK(volume_changed_handler), box ); } GtkWidget * celluloid_control_box_new(void) { return GTK_WIDGET(g_object_new(celluloid_control_box_get_type(), NULL)); } void celluloid_control_box_set_seek_bar_pos(CelluloidControlBox *box, gdouble pos) { celluloid_seek_bar_set_pos(CELLULOID_SEEK_BAR(box->seek_bar), pos); } void celluloid_control_box_set_seek_bar_duration( CelluloidControlBox *box, gint duration ) { celluloid_seek_bar_set_duration(CELLULOID_SEEK_BAR(box->seek_bar), duration); } void celluloid_control_box_set_volume(CelluloidControlBox *box, gdouble volume) { g_signal_handlers_block_by_func(box, volume_changed_handler, box); gtk_scale_button_set_value (GTK_SCALE_BUTTON(box->volume_button), volume/100.0); g_signal_handlers_unblock_by_func(box, volume_changed_handler, box); } gdouble celluloid_control_box_get_volume(CelluloidControlBox *box) { return gtk_scale_button_get_value(GTK_SCALE_BUTTON(box->volume_button)); } gboolean celluloid_control_box_get_volume_popup_visible(CelluloidControlBox *box) { return box->volume_popup_visible; } void celluloid_control_box_set_fullscreen_state( CelluloidControlBox *box, gboolean fullscreen ) { GtkWidget *image = gtk_button_get_image(GTK_BUTTON(box->fullscreen_button)); gtk_image_set_from_icon_name( GTK_IMAGE(image), fullscreen? "view-restore-symbolic": "view-fullscreen-symbolic", GTK_ICON_SIZE_BUTTON ); gtk_widget_set_visible( box->fullscreen_button, !fullscreen && box->show_fullscreen_button ); } void celluloid_control_box_reset(CelluloidControlBox *box) { celluloid_control_box_set_seek_bar_pos(box, 0); celluloid_control_box_set_seek_bar_duration(box, 0); set_playing_state(box, FALSE); set_skip_enabled(box, FALSE); celluloid_control_box_set_fullscreen_state(box, FALSE); } celluloid-0.20/src/celluloid-control-box.h000066400000000000000000000033321373135401300205700ustar00rootroot00000000000000/* * Copyright (c) 2014-2019 gnome-mpv * * This file is part of Celluloid. * * Celluloid is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Celluloid is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Celluloid. If not, see . */ #ifndef CONTROL_BOX_H #define CONTROL_BOX_H #include #include #include G_BEGIN_DECLS #define CELLULOID_TYPE_CONTROL_BOX (celluloid_control_box_get_type()) G_DECLARE_FINAL_TYPE(CelluloidControlBox, celluloid_control_box, CELLULOID, CONTROL_BOX, GtkBox) GtkWidget * celluloid_control_box_new(void); void celluloid_control_box_set_enabled(CelluloidControlBox *box, gboolean enabled); void celluloid_control_box_set_seek_bar_pos(CelluloidControlBox *box, gdouble pos); void celluloid_control_box_set_seek_bar_duration( CelluloidControlBox *box, gint duration ); void celluloid_control_box_set_volume(CelluloidControlBox *box, gdouble volume); gdouble celluloid_control_box_get_volume(CelluloidControlBox *box); gboolean celluloid_control_box_get_volume_popup_visible(CelluloidControlBox *box); void celluloid_control_box_set_fullscreen_state( CelluloidControlBox *box, gboolean fullscreen ); void celluloid_control_box_reset(CelluloidControlBox *box); G_END_DECLS #endif celluloid-0.20/src/celluloid-controller-actions.c000066400000000000000000000372321373135401300221440ustar00rootroot00000000000000/* * Copyright (c) 2015-2020 gnome-mpv * * This file is part of Celluloid. * * Celluloid is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Celluloid is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Celluloid. If not, see . */ #include #include "celluloid-controller-actions.h" #include "celluloid-controller-private.h" #include "celluloid-file-chooser.h" #include "celluloid-common.h" static gboolean boolean_to_state( GBinding *binding, const GValue *from_value, GValue *to_value, gpointer user_data ); static gboolean state_to_boolean( GBinding *binding, const GValue *from_value, GValue *to_value, gpointer user_data ); static gboolean track_id_to_state( GBinding *binding, const GValue *from_value, GValue *to_value, gpointer user_data ); static gboolean state_to_track_id( GBinding *binding, const GValue *from_value, GValue *to_value, gpointer user_data ); static gboolean loop_to_state( GBinding *binding, const GValue *from_value, GValue *to_value, gpointer user_data ); static gboolean state_to_loop( GBinding *binding, const GValue *from_value, GValue *to_value, gpointer user_data ); static void bind_properties(CelluloidController *controller); static void open_handler(GSimpleAction *action, GVariant *param, gpointer data); static void show_open_dialog_handler(GSimpleAction *action, GVariant *param, gpointer data); static void show_open_location_dialog_handler( GSimpleAction *action, GVariant *param, gpointer data ); static void toggle_loop_handler(GSimpleAction *action, GVariant *value, gpointer data); static void show_shortcuts_dialog_handler( GSimpleAction *action, GVariant *param, gpointer data ); static void toggle_controls_handler( GSimpleAction *action, GVariant *param, gpointer data ); static void toggle_playlist_handler(GSimpleAction *action, GVariant *param, gpointer data); static void save_playlist_handler(GSimpleAction *action, GVariant *param, gpointer data); static void search_playlist_handler(GSimpleAction *action, GVariant *param, gpointer data); static void stop_search_playlist_handler(GSimpleAction *action, GVariant *param, gpointer data); static void toggle_shuffle_playlist_handler(GSimpleAction *action, GVariant *param, gpointer data); static void copy_selected_playlist_item_handler( GSimpleAction *action, GVariant *param, gpointer data ); static void remove_selected_playlist_item_handler( GSimpleAction *action, GVariant *param, gpointer data ); static void show_preferences_dialog_handler( GSimpleAction *action, GVariant *param, gpointer data ); static void quit_handler(GSimpleAction *action, GVariant *param, gpointer data); static void set_audio_track_handler(GSimpleAction *action, GVariant *value, gpointer data); static void set_video_track_handler(GSimpleAction *action, GVariant *value, gpointer data); static void set_subtitle_track_handler( GSimpleAction *action, GVariant *value, gpointer data ); static void load_track_handler(GSimpleAction *action, GVariant *param, gpointer data); static void toggle_fullscreen_handler( GSimpleAction *action, GVariant *param, gpointer data ); static void enter_fullscreen_handler(GSimpleAction *action, GVariant *param, gpointer data); static void leave_fullscreen_handler(GSimpleAction *action, GVariant *param, gpointer data); static void set_video_size_handler(GSimpleAction *action, GVariant *param, gpointer data); static void show_about_dialog_handler( GSimpleAction *action, GVariant *param, gpointer data ); static gboolean boolean_to_state( GBinding *binding, const GValue *from_value, GValue *to_value, gpointer user_data ) { gboolean from = g_value_get_boolean(from_value); GVariant *to = g_variant_new("b", from); g_value_set_variant(to_value, to); return TRUE; } static gboolean state_to_boolean( GBinding *binding, const GValue *from_value, GValue *to_value, gpointer user_data ) { GVariant *from = g_value_get_variant(from_value); gboolean to = g_variant_get_boolean(from); g_value_set_boolean(to_value, to); return TRUE; } static gboolean track_id_to_state( GBinding *binding, const GValue *from_value, GValue *to_value, gpointer user_data ) { const gchar *id = g_value_get_string(from_value); gint64 value = g_strcmp0(id, "no") == 0?0:g_ascii_strtoll(id, NULL, 10); GVariant *to = g_variant_new("x", value); g_value_set_variant(to_value, to); return TRUE; } static gboolean state_to_track_id( GBinding *binding, const GValue *from_value, GValue *to_value, gpointer user_data ) { GVariant *from = g_value_get_variant(from_value); gint64 id = g_variant_get_int64(from); gchar *value = id <= 0? g_strdup("no"): g_strdup_printf("%" G_GINT64_FORMAT, id); g_value_take_string(to_value, value); return TRUE; } static gboolean loop_to_state( GBinding *binding, const GValue *from_value, GValue *to_value, gpointer user_data ) { const gchar *from = g_value_get_string(from_value); GVariant *to = g_variant_new("b", g_strcmp0(from, "no") != 0); g_value_set_variant(to_value, to); return TRUE; } static gboolean state_to_loop( GBinding *binding, const GValue *from_value, GValue *to_value, gpointer user_data ) { GVariant *from = g_value_get_variant(from_value); gboolean to = g_variant_get_boolean(from); g_value_set_static_string(to_value, to?"inf":"no"); return TRUE; } static void bind_properties(CelluloidController *controller) { CelluloidMainWindow *window = celluloid_view_get_main_window (controller->view); GAction *action = NULL; action = g_action_map_lookup_action (G_ACTION_MAP(window), "set-audio-track"); g_object_bind_property_full( controller->model, "aid", action, "state", G_BINDING_BIDIRECTIONAL, track_id_to_state, state_to_track_id, NULL, NULL ); action = g_action_map_lookup_action (G_ACTION_MAP(window), "set-video-track"); g_object_bind_property_full( controller->model, "vid", action, "state", G_BINDING_BIDIRECTIONAL, track_id_to_state, state_to_track_id, NULL, NULL ); action = g_action_map_lookup_action (G_ACTION_MAP(window), "set-subtitle-track"); g_object_bind_property_full( controller->model, "sid", action, "state", G_BINDING_BIDIRECTIONAL, track_id_to_state, state_to_track_id, NULL, NULL ); action = g_action_map_lookup_action (G_ACTION_MAP(window), "toggle-shuffle-playlist"); g_object_bind_property_full( controller->model, "shuffle", action, "state", G_BINDING_BIDIRECTIONAL, boolean_to_state, state_to_boolean, NULL, NULL ); action = g_action_map_lookup_action (G_ACTION_MAP(window), "toggle-loop-file"); g_object_bind_property_full( controller->model, "loop-file", action, "state", G_BINDING_BIDIRECTIONAL, loop_to_state, state_to_loop, NULL, NULL ); action = g_action_map_lookup_action (G_ACTION_MAP(window), "toggle-loop-playlist"); g_object_bind_property_full( controller->model, "loop-playlist", action, "state", G_BINDING_BIDIRECTIONAL, loop_to_state, state_to_loop, NULL, NULL ); } static void open_handler(GSimpleAction *action, GVariant *param, gpointer data) { gchar *uri = NULL; gboolean append = FALSE; g_variant_get(param, "(sb)", &uri, &append); celluloid_controller_open(data, uri, append); g_free(uri); } static void show_open_dialog_handler(GSimpleAction *action, GVariant *param, gpointer data) { gboolean folder = FALSE; gboolean append = FALSE; g_variant_get(param, "(bb)", &folder, &append); celluloid_view_show_open_dialog (celluloid_controller_get_view(data), folder, append); } static void show_open_location_dialog_handler( GSimpleAction *action, GVariant *param, gpointer data ) { gboolean append = g_variant_get_boolean(param); celluloid_view_show_open_location_dialog (celluloid_controller_get_view(data), append); } static void toggle_loop_handler(GSimpleAction *action, GVariant *value, gpointer data) { g_simple_action_set_state(action, value); } static void show_shortcuts_dialog_handler( GSimpleAction *action, GVariant *param, gpointer data ) { celluloid_view_show_shortcuts_dialog(celluloid_controller_get_view(data)); } static void toggle_controls_handler(GSimpleAction *action, GVariant *param, gpointer data) { CelluloidView *view = celluloid_controller_get_view(data); gboolean visible = celluloid_view_get_controls_visible(view); celluloid_view_set_controls_visible(view, !visible); } static void toggle_playlist_handler(GSimpleAction *action, GVariant *param, gpointer data) { CelluloidView *view = celluloid_controller_get_view(data); gboolean visible = celluloid_view_get_playlist_visible(view); celluloid_view_set_playlist_visible(view, !visible); } static void save_playlist_handler(GSimpleAction *action, GVariant *param, gpointer data) { celluloid_view_show_save_playlist_dialog (celluloid_controller_get_view(data)); } static void search_playlist_handler(GSimpleAction *action, GVariant *param, gpointer data) { CelluloidView *view = celluloid_controller_get_view(data); g_object_set(view, "searching", TRUE, NULL); } static void stop_search_playlist_handler(GSimpleAction *action, GVariant *param, gpointer data) { CelluloidView *view = celluloid_controller_get_view(data); g_object_set(view, "searching", FALSE, NULL); } static void toggle_shuffle_playlist_handler(GSimpleAction *action, GVariant *value, gpointer data) { g_simple_action_set_state(action, value); } static void copy_selected_playlist_item_handler( GSimpleAction *action, GVariant *param, gpointer data ) { CelluloidView *view = celluloid_controller_get_view(data); CelluloidMainWindow *wnd = celluloid_view_get_main_window(view); if(celluloid_main_window_get_playlist_visible(wnd)) { CelluloidPlaylistWidget *playlist; playlist = celluloid_main_window_get_playlist(wnd); celluloid_playlist_widget_copy_selected(playlist); } } static void remove_selected_playlist_item_handler( GSimpleAction *action, GVariant *param, gpointer data ) { CelluloidView *view = celluloid_controller_get_view(data); CelluloidMainWindow *wnd = celluloid_view_get_main_window(view); if(celluloid_main_window_get_playlist_visible(wnd)) { CelluloidPlaylistWidget *playlist; playlist = celluloid_main_window_get_playlist(wnd); celluloid_playlist_widget_remove_selected(playlist); } } static void show_preferences_dialog_handler( GSimpleAction *action, GVariant *param, gpointer data ) { celluloid_view_show_preferences_dialog(celluloid_controller_get_view(data)); } static void quit_handler(GSimpleAction *action, GVariant *param, gpointer data) { celluloid_controller_quit(data); } static void set_audio_track_handler(GSimpleAction *action, GVariant *value, gpointer data) { g_simple_action_set_state(action, value); } static void set_video_track_handler(GSimpleAction *action, GVariant *value, gpointer data) { g_simple_action_set_state(action, value); } static void set_subtitle_track_handler( GSimpleAction *action, GVariant *value, gpointer data ) { g_simple_action_set_state(action, value); } static void load_track_handler(GSimpleAction *action, GVariant *param, gpointer data) { CelluloidView *view = celluloid_controller_get_view(data); gchar *cmd_name = NULL; g_variant_get(param, "s", &cmd_name); if(g_strcmp0(cmd_name, "audio-add") == 0) { celluloid_view_show_open_audio_track_dialog(view); } else if(g_strcmp0(cmd_name, "video-add") == 0) { celluloid_view_show_open_video_track_dialog(view); } else if(g_strcmp0(cmd_name, "sub-add") == 0) { celluloid_view_show_open_subtitle_track_dialog(view); } else { g_assert_not_reached(); } g_free(cmd_name); } static void toggle_fullscreen_handler(GSimpleAction *action, GVariant *param, gpointer data) { CelluloidView *view = celluloid_controller_get_view(data); gboolean fullscreen = FALSE; g_object_get(view, "fullscreen", &fullscreen, NULL); celluloid_view_set_fullscreen(view, !fullscreen); } static void enter_fullscreen_handler(GSimpleAction *action, GVariant *param, gpointer data) { celluloid_view_set_fullscreen(celluloid_controller_get_view(data), TRUE); } static void leave_fullscreen_handler(GSimpleAction *action, GVariant *param, gpointer data) { celluloid_view_set_fullscreen(celluloid_controller_get_view(data), FALSE); } static void set_video_size_handler(GSimpleAction *action, GVariant *param, gpointer data) { CelluloidController *controller = data; gdouble value = g_variant_get_double(param); g_object_set(controller->model, "window-scale", value, NULL); } static void show_about_dialog_handler(GSimpleAction *action, GVariant *param, gpointer data) { celluloid_view_show_about_dialog(celluloid_controller_get_view(data)); } void celluloid_controller_action_register_actions(CelluloidController *controller) { const GActionEntry entries[] = { {.name = "open", .activate = open_handler, .parameter_type = "(sb)"}, {.name = "show-open-dialog", .activate = show_open_dialog_handler, .parameter_type = "(bb)"}, {.name = "quit", .activate = quit_handler}, {.name = "show-about-dialog", .activate = show_about_dialog_handler}, {.name = "show-preferences-dialog", .activate = show_preferences_dialog_handler}, {.name = "show-open-location-dialog", .activate = show_open_location_dialog_handler, .parameter_type = "b"}, {.name = "toggle-loop-file", .state = "false", .change_state = toggle_loop_handler}, {.name = "toggle-loop-playlist", .state = "false", .change_state = toggle_loop_handler}, {.name = "show-shortcuts-dialog", .activate = show_shortcuts_dialog_handler}, {.name = "toggle-controls", .activate = toggle_controls_handler}, {.name = "toggle-playlist", .activate = toggle_playlist_handler}, {.name = "save-playlist", .activate = save_playlist_handler}, {.name = "search-playlist", .activate = search_playlist_handler}, {.name = "stop-search-playlist", .activate = stop_search_playlist_handler}, {.name = "toggle-shuffle-playlist", .state = "false", .change_state = toggle_shuffle_playlist_handler}, {.name = "copy-selected-playlist-item", .activate = copy_selected_playlist_item_handler}, {.name = "remove-selected-playlist-item", .activate = remove_selected_playlist_item_handler}, {.name = "set-audio-track", .change_state = set_audio_track_handler, .state = "@x 0", .parameter_type = "x"}, {.name = "set-video-track", .change_state = set_video_track_handler, .state = "@x 0", .parameter_type = "x"}, {.name = "set-subtitle-track", .change_state = set_subtitle_track_handler, .state = "@x 0", .parameter_type = "x"}, {.name = "load-track", .activate = load_track_handler, .parameter_type = "s"}, {.name = "toggle-fullscreen", .activate = toggle_fullscreen_handler}, {.name = "enter-fullscreen", .activate = enter_fullscreen_handler}, {.name = "leave-fullscreen", .activate = leave_fullscreen_handler}, {.name = "set-video-size", .activate = set_video_size_handler, .parameter_type = "d"} }; CelluloidMainWindow *window = celluloid_view_get_main_window (controller->view); g_action_map_add_action_entries( G_ACTION_MAP(window), entries, G_N_ELEMENTS(entries), controller ); bind_properties(controller); } celluloid-0.20/src/celluloid-controller-actions.h000066400000000000000000000016741373135401300221520ustar00rootroot00000000000000/* * Copyright (c) 2015-2019 gnome-mpv * * This file is part of Celluloid. * * Celluloid is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Celluloid is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Celluloid. If not, see . */ #ifndef CONTROLLER_ACTIONS_H #define CONTROLLER_ACTIONS_H #include #include "celluloid-controller.h" G_BEGIN_DECLS void celluloid_controller_action_register_actions(CelluloidController *controller); G_END_DECLS #endif celluloid-0.20/src/celluloid-controller-input.c000066400000000000000000000161441373135401300216420ustar00rootroot00000000000000/* * Copyright (c) 2016-2020 gnome-mpv * * This file is part of Celluloid. * * Celluloid is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Celluloid is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Celluloid. If not, see . */ #include #include #include #include #include #include "celluloid-controller-private.h" #include "celluloid-controller.h" #include "celluloid-controller-input.h" #include "celluloid-mpv.h" #include "celluloid-mpv-wrapper.h" #include "celluloid-main-window.h" #include "celluloid-video-area.h" #include "celluloid-def.h" static gchar * keyval_to_keystr(guint keyval); static gchar * get_modstr(guint state); static gchar * get_full_keystr(GdkEventKey *event); static gboolean key_press_handler(GtkWidget *widget, GdkEvent *event, gpointer data); static gboolean key_release_handler(GtkWidget *widget, GdkEvent *event, gpointer data); static gboolean mouse_button_handler(GtkWidget *widget, GdkEvent *event, gpointer data); static gboolean mouse_move_handler(GtkWidget *widget, GdkEvent *event, gpointer data); static gboolean scroll_handler(GtkWidget *widget, GdkEvent *event, gpointer data); static gchar * keyval_to_keystr(guint keyval) { const gchar *keystrmap[] = KEYSTRING_MAP; gboolean found = FALSE; gchar key_utf8[7] = {0}; // 6 bytes for output and 1 for NULL terminator const gchar *result = key_utf8; g_unichar_to_utf8(gdk_keyval_to_unicode(keyval), key_utf8); result = result[0] ? result : gdk_keyval_name(keyval); found = !result; for(gint i = 0; !found && keystrmap[i]; i += 2) { const gint rc = g_ascii_strncasecmp (result, keystrmap[i+1], KEYSTRING_MAX_LEN); if(rc == 0) { result = keystrmap[i][0] ? keystrmap[i] : NULL; found = TRUE; } } return result ? g_strdup(result) : NULL; } static gchar * get_modstr(guint state) { const struct { guint mask; gchar *str; } mod_map[] = { {GDK_SHIFT_MASK, "Shift+"}, {GDK_CONTROL_MASK, "Ctrl+"}, {GDK_MOD1_MASK, "Alt+"}, {GDK_SUPER_MASK, "Meta+"}, // Super is Meta in mpv {0, NULL} }; const gsize max_len = 21; // strlen("Ctrl+Alt+Shift+Meta")+1 gchar *result = g_malloc0(max_len); for(gint i = 0; mod_map[i].str; i++) { if(state & mod_map[i].mask) { g_strlcat(result, mod_map[i].str, max_len); } } return result; } static gchar * get_full_keystr(GdkEventKey *event) { gchar *modstr = get_modstr(event->state); gchar *keystr = keyval_to_keystr(event->keyval); char *result = keystr ? g_strconcat(modstr, keystr, NULL) : NULL; g_free(keystr); g_free(modstr); return result; } static gboolean key_press_handler(GtkWidget *widget, GdkEvent *event, gpointer data) { CelluloidController *controller = data; gchar *keystr = get_full_keystr((GdkEventKey *)event); gboolean searching = FALSE; g_object_get(controller->view, "searching", &searching, NULL); if(keystr && !searching) { celluloid_model_key_down(controller->model, keystr); g_free(keystr); } return FALSE; } static gboolean key_release_handler(GtkWidget *widget, GdkEvent *event, gpointer data) { CelluloidController *controller = data; gchar *keystr = get_full_keystr((GdkEventKey *)event); gboolean searching = FALSE; g_object_get(controller->view, "searching", &searching, NULL); if(keystr && !searching) { celluloid_model_key_up(controller->model, keystr); g_free(keystr); } return FALSE; } static gboolean mouse_button_handler(GtkWidget *widget, GdkEvent *event, gpointer data) { GdkEventButton *btn_event = (GdkEventButton *)event; if(btn_event->type == GDK_BUTTON_PRESS || btn_event->type == GDK_BUTTON_RELEASE || btn_event->type == GDK_SCROLL) { CelluloidController *controller = data; gchar *btn_str = g_strdup_printf ("MOUSE_BTN%u", btn_event->button-1); void (*func)(CelluloidModel *, const gchar *) = (btn_event->type == GDK_SCROLL)? celluloid_model_key_press: (btn_event->type == GDK_BUTTON_PRESS)? celluloid_model_key_down:celluloid_model_key_up; func(controller->model, btn_str); g_free(btn_str); } return TRUE; } static gboolean mouse_move_handler(GtkWidget *widget, GdkEvent *event, gpointer data) { CelluloidController *controller = data; GdkEventMotion *motion_event = (GdkEventMotion *)event; if(controller->model) { celluloid_model_mouse( controller->model, (gint)motion_event->x, (gint)motion_event->y ); } return FALSE; } static gboolean scroll_handler(GtkWidget *widget, GdkEvent *event, gpointer data) { GdkEventScroll *scroll_event = (GdkEventScroll *)event; guint button = 0; gint count = 0; /* Only one axis will be used at a time to prevent accidental activation * of commands bound to buttons associated with the other axis. */ if(ABS(scroll_event->delta_x) > ABS(scroll_event->delta_y)) { count = (gint)ABS(scroll_event->delta_x); if(scroll_event->delta_x <= -1) { button = 6; } else if(scroll_event->delta_x >= 1) { button = 7; } } else { count = (gint)ABS(scroll_event->delta_y); if(scroll_event->delta_y <= -1) { button = 4; } else if(scroll_event->delta_y >= 1) { button = 5; } } if(button > 0) { GdkEventButton btn_event; btn_event.type = scroll_event->type; btn_event.window = scroll_event->window; btn_event.send_event = scroll_event->send_event; btn_event.time = scroll_event->time; btn_event.x = scroll_event->x; btn_event.y = scroll_event->y; btn_event.axes = NULL; btn_event.state = scroll_event->state; btn_event.button = button; btn_event.device = scroll_event->device; btn_event.x_root = scroll_event->x_root; btn_event.y_root = scroll_event->y_root; for(gint i = 0; i < count; i++) { /* Not used */ gboolean rc; g_signal_emit_by_name (widget, "button-press-event", &btn_event, &rc); } } return TRUE; } void celluloid_controller_input_connect_signals(CelluloidController *controller) { CelluloidMainWindow *wnd = celluloid_view_get_main_window (controller->view); CelluloidVideoArea *video_area = celluloid_main_window_get_video_area (wnd); g_signal_connect( controller->view, "key-press-event", G_CALLBACK(key_press_handler), controller ); g_signal_connect( controller->view, "key-release-event", G_CALLBACK(key_release_handler), controller ); g_signal_connect( video_area, "button-press-event", G_CALLBACK(mouse_button_handler), controller ); g_signal_connect( video_area, "button-release-event", G_CALLBACK(mouse_button_handler), controller ); g_signal_connect( controller->view, "motion-notify-event", G_CALLBACK(mouse_move_handler), controller ); g_signal_connect( video_area, "scroll-event", G_CALLBACK(scroll_handler), controller ); } celluloid-0.20/src/celluloid-controller-input.h000066400000000000000000000016741373135401300216510ustar00rootroot00000000000000/* * Copyright (c) 2016-2019 gnome-mpv * * This file is part of Celluloid. * * Celluloid is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Celluloid is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Celluloid. If not, see . */ #ifndef CONTROLLER_INPUT_H #define CONTROLLER_INPUT_H #include #include "celluloid-controller-input.h" G_BEGIN_DECLS void celluloid_controller_input_connect_signals(CelluloidController *controller); G_END_DECLS #endif celluloid-0.20/src/celluloid-controller-private.h000066400000000000000000000027621373135401300221630ustar00rootroot00000000000000/* * Copyright (c) 2017-2019 gnome-mpv * * This file is part of Celluloid. * * Celluloid is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Celluloid is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Celluloid. If not, see . */ #ifndef CONTROLLER_PRIVATE_H #define CONTROLLER_PRIVATE_H #include "celluloid-model.h" #include "celluloid-view.h" #include "mpris/celluloid-mpris.h" #include "media-keys/celluloid-media-keys.h" G_BEGIN_DECLS enum { PROP_0, PROP_APP, PROP_READY, PROP_IDLE, PROP_USE_SKIP_BUTTONS_FOR_PLAYLIST, N_PROPERTIES }; struct _CelluloidController { GObject parent; CelluloidApplication *app; CelluloidModel *model; CelluloidView *view; gboolean ready; gboolean idle; gboolean use_skip_buttons_for_playlist; gint64 target_playlist_pos; guint update_seekbar_id; guint resize_timeout_tag; GBinding *skip_buttons_binding; GSettings *settings; CelluloidMediaKeys *media_keys; CelluloidMpris *mpris; }; struct _CelluloidControllerClass { GObjectClass parent_class; }; G_END_DECLS #endif celluloid-0.20/src/celluloid-controller.c000066400000000000000000001010561373135401300205020ustar00rootroot00000000000000/* * Copyright (c) 2017-2020 gnome-mpv * * This file is part of Celluloid. * * Celluloid is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Celluloid is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Celluloid. If not, see . */ #include #include #include #include #include #include #include "celluloid-controller-private.h" #include "celluloid-controller.h" #include "celluloid-controller-actions.h" #include "celluloid-controller-input.h" #include "celluloid-player-options.h" #include "celluloid-def.h" static void constructed(GObject *object); static void set_property( GObject *object, guint property_id, const GValue *value, GParamSpec *pspec ); static void get_property( GObject *object, guint property_id, GValue *value, GParamSpec *pspec ); static void dispose(GObject *object); static gboolean loop_to_boolean( GBinding *binding, const GValue *from_value, GValue *to_value, gpointer data ); static gboolean boolean_to_loop( GBinding *binding, const GValue *from_value, GValue *to_value, gpointer data ); static void mpris_enable_handler(GSettings *settings, gchar *key, gpointer data); static void media_keys_enable_handler(GSettings *settings, gchar *key, gpointer data); static void view_ready_handler(CelluloidView *view, gpointer data); static void render_handler(CelluloidView *view, gpointer data); static void preferences_updated_handler(CelluloidView *view, gpointer data); static void audio_track_load_handler(CelluloidView *view, const gchar *uri, gpointer data); static void video_track_load_handler(CelluloidView *view, const gchar *uri, gpointer data); static void subtitle_track_load_handler( CelluloidView *view, const gchar *uri, gpointer data ); static void file_open_handler( CelluloidView *view, const gchar **uri_list, gboolean append, gpointer data ); static void grab_handler(CelluloidView *view, gboolean was_grabbed, gpointer data); static gboolean delete_handler(CelluloidView *view, GdkEvent *event, gpointer data); static void playlist_item_activated_handler(CelluloidView *view, gint pos, gpointer data); static void playlist_item_deleted_handler(CelluloidView *view, gint pos, gpointer data); static void playlist_reordered_handler( CelluloidView *view, gint src, gint dst, gpointer data ); static void set_use_skip_button_for_playlist( CelluloidController *controller, gboolean value); static void connect_signals(CelluloidController *controller); static gboolean update_seek_bar(gpointer data); static gboolean is_more_than_one( GBinding *binding, const GValue *from_value, GValue *to_value, gpointer data ); static void idle_active_handler(GObject *object, GParamSpec *pspec, gpointer data); static void playlist_handler(GObject *object, GParamSpec *pspec, gpointer data); static void vid_handler(GObject *object, GParamSpec *pspec, gpointer data); static void window_scale_handler(GObject *object, GParamSpec *pspec, gpointer data); static void model_ready_handler(GObject *object, GParamSpec *pspec, gpointer data); static void frame_ready_handler(CelluloidModel *model, gpointer data); static void metadata_update_handler(CelluloidModel *model, gint64 pos, gpointer data); static void window_resize_handler( CelluloidModel *model, gint64 width, gint64 height, gpointer data ); static void window_move_handler( CelluloidModel *model, gboolean flip_x, gboolean flip_y, GValue *x, GValue *y, gpointer data ); static void message_handler(CelluloidMpv *mpv, const gchar *message, gpointer data); static void error_handler(CelluloidMpv *mpv, const gchar *message, gpointer data); static void shutdown_handler(CelluloidMpv *mpv, gpointer data); static gboolean update_window_scale(gpointer data); static void video_area_resize_handler( CelluloidView *view, gint width, gint height, gpointer data ); static void searching_handler(GObject *object, GParamSpec *pspec, gpointer data); static void fullscreen_handler(GObject *object, GParamSpec *pspec, gpointer data); static void play_button_handler(GtkButton *button, gpointer data); static void stop_button_handler(GtkButton *button, gpointer data); static void forward_button_handler(GtkButton *button, gpointer data); static void rewind_button_handler(GtkButton *button, gpointer data); static void next_button_handler(GtkButton *button, gpointer data); static void previous_button_handler(GtkButton *button, gpointer data); static void fullscreen_button_handler(GtkButton *button, gpointer data); static void seek_handler(GtkButton *button, gdouble value, gpointer data); static void celluloid_controller_class_init(CelluloidControllerClass *klass); static void celluloid_controller_init(CelluloidController *controller); static void update_extra_mpv_options(CelluloidController *controller); G_DEFINE_TYPE(CelluloidController, celluloid_controller, G_TYPE_OBJECT) static void constructed(GObject *object) { CelluloidController *controller; CelluloidMainWindow *window; CelluloidVideoArea *video_area; gboolean always_floating; gint64 wid; controller = CELLULOID_CONTROLLER(object); always_floating = g_settings_get_boolean ( controller->settings, "always-use-floating-controls" ); controller->view = celluloid_view_new(controller->app, always_floating); window = CELLULOID_MAIN_WINDOW(controller->view); video_area = celluloid_main_window_get_video_area(window); wid = celluloid_video_area_get_xid(video_area); controller->model = celluloid_model_new(wid); connect_signals(controller); celluloid_controller_action_register_actions(controller); celluloid_controller_input_connect_signals(controller); update_extra_mpv_options(controller); gtk_widget_show_all(GTK_WIDGET(window)); g_signal_connect( controller->settings, "changed::mpris-enable", G_CALLBACK(mpris_enable_handler), controller ); g_signal_connect( controller->settings, "changed::media-keys-enable", G_CALLBACK(media_keys_enable_handler), controller ); if(g_settings_get_boolean(controller->settings, "mpris-enable")) { controller->mpris = celluloid_mpris_new(controller); } if(g_settings_get_boolean(controller->settings, "media-keys-enable")) { controller->media_keys = celluloid_media_keys_new(controller); } G_OBJECT_CLASS(celluloid_controller_parent_class)->constructed(object); } static void set_property( GObject *object, guint property_id, const GValue *value, GParamSpec *pspec ) { CelluloidController *self = CELLULOID_CONTROLLER(object); switch(property_id) { case PROP_APP: self->app = g_value_get_pointer(value); break; case PROP_READY: self->ready = g_value_get_boolean(value); break; case PROP_IDLE: self->idle = g_value_get_boolean(value); break; case PROP_USE_SKIP_BUTTONS_FOR_PLAYLIST: self->use_skip_buttons_for_playlist = g_value_get_boolean(value); set_use_skip_button_for_playlist (self, self->use_skip_buttons_for_playlist); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID(object, property_id, pspec); break; } } static void get_property( GObject *object, guint property_id, GValue *value, GParamSpec *pspec ) { CelluloidController *self = CELLULOID_CONTROLLER(object); switch(property_id) { case PROP_APP: g_value_set_pointer(value, self->app); break; case PROP_READY: g_value_set_boolean(value, self->ready); break; case PROP_IDLE: g_value_set_boolean(value, self->idle); break; case PROP_USE_SKIP_BUTTONS_FOR_PLAYLIST: g_value_set_boolean(value, self->use_skip_buttons_for_playlist); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID(object, property_id, pspec); break; } } static void dispose(GObject *object) { CelluloidController *controller = CELLULOID_CONTROLLER(object); g_clear_object(&controller->settings); g_clear_object(&controller->mpris); g_clear_object(&controller->media_keys); g_source_clear(&controller->update_seekbar_id); g_source_clear(&controller->resize_timeout_tag); if(controller->view) { celluloid_view_make_gl_context_current(controller->view); g_clear_object(&controller->model); gtk_widget_destroy(GTK_WIDGET(controller->view)); controller->view = NULL; } G_OBJECT_CLASS(celluloid_controller_parent_class)->dispose(object); } static gboolean loop_to_boolean( GBinding *binding, const GValue *from_value, GValue *to_value, gpointer data ) { const gchar *from = g_value_get_string(from_value); gboolean to = g_strcmp0(from, "no") != 0; g_value_set_boolean(to_value, to); return TRUE; } static gboolean boolean_to_loop( GBinding *binding, const GValue *from_value, GValue *to_value, gpointer data ) { gboolean from = g_value_get_boolean(from_value); const gchar *to = from?"inf":"no"; g_value_set_static_string(to_value, to); return TRUE; } static void mpris_enable_handler(GSettings *settings, gchar *key, gpointer data) { CelluloidController *controller = data; if(!controller->mpris && g_settings_get_boolean(settings, key)) { controller->mpris = celluloid_mpris_new(controller); } else if(controller->mpris) { g_clear_object(&controller->mpris); } } static void media_keys_enable_handler(GSettings *settings, gchar *key, gpointer data) { CelluloidController *controller = data; if(!controller->media_keys && g_settings_get_boolean(settings, key)) { controller->media_keys = celluloid_media_keys_new(controller); } else if(controller->media_keys) { g_clear_object(&controller->media_keys); } } static void view_ready_handler(CelluloidView *view, gpointer data) { CelluloidController *controller = CELLULOID_CONTROLLER(data); CelluloidModel *model = controller->model; celluloid_player_options_init ( CELLULOID_PLAYER(controller->model), CELLULOID_MAIN_WINDOW(controller->view) ); celluloid_model_initialize(model); } static void render_handler(CelluloidView *view, gpointer data) { CelluloidController *controller = data; gint scale = 1; gint width = -1; gint height = -1; scale = celluloid_view_get_scale_factor(controller->view); celluloid_view_get_video_area_geometry (controller->view, &width, &height); celluloid_model_render_frame (controller->model, scale*width, scale*height); } static void preferences_updated_handler(CelluloidView *view, gpointer data) { CelluloidController *controller = data; update_extra_mpv_options(controller); celluloid_view_make_gl_context_current(controller->view); celluloid_model_reset(controller->model); } static void audio_track_load_handler(CelluloidView *view, const gchar *uri, gpointer data) { celluloid_model_load_audio_track(CELLULOID_CONTROLLER(data)->model, uri); } static void video_track_load_handler(CelluloidView *view, const gchar *uri, gpointer data) { celluloid_model_load_video_track(CELLULOID_CONTROLLER(data)->model, uri); } static void subtitle_track_load_handler( CelluloidView *view, const gchar *uri, gpointer data ) { celluloid_model_load_subtitle_track (CELLULOID_CONTROLLER(data)->model, uri); } static void file_open_handler( CelluloidView *view, const gchar **uri_list, gboolean append, gpointer data ) { for(const gchar **iter = uri_list; iter && *iter; iter++) { celluloid_model_load_file ( CELLULOID_CONTROLLER(data)->model, *iter, append || iter != uri_list ); } } static void grab_handler(CelluloidView *view, gboolean was_grabbed, gpointer data) { if(!was_grabbed) { celluloid_model_reset_keys(CELLULOID_CONTROLLER(data)->model); } } static gboolean delete_handler(CelluloidView *view, GdkEvent *event, gpointer data) { g_signal_emit_by_name(data, "shutdown"); return TRUE; } static void playlist_item_activated_handler(CelluloidView *view, gint pos, gpointer data) { CelluloidController *controller = CELLULOID_CONTROLLER(data); gboolean idle_active = FALSE; g_object_get(controller->model, "idle-active", &idle_active, NULL); celluloid_model_play(controller->model); if(idle_active) { controller->target_playlist_pos = pos; } else { celluloid_model_set_playlist_position(controller->model, pos); } } static void playlist_item_deleted_handler(CelluloidView *view, gint pos, gpointer data) { celluloid_model_remove_playlist_entry (CELLULOID_CONTROLLER(data)->model, pos); } static void playlist_reordered_handler( CelluloidView *view, gint src, gint dst, gpointer data ) { celluloid_model_move_playlist_entry (CELLULOID_CONTROLLER(data)->model, src, dst); } static void set_use_skip_button_for_playlist( CelluloidController *controller, gboolean value ) { if(controller->skip_buttons_binding) { g_binding_unbind(controller->skip_buttons_binding); } controller->skip_buttons_binding = g_object_bind_property_full ( controller->model, value?"playlist-count":"chapters", controller->view, "skip-enabled", G_BINDING_DEFAULT|G_BINDING_SYNC_CREATE, is_more_than_one, NULL, NULL, NULL ); } static void connect_signals(CelluloidController *controller) { g_object_bind_property( controller->model, "core-idle", controller, "idle", G_BINDING_DEFAULT ); g_object_bind_property( controller->model, "border", controller->view, "border", G_BINDING_DEFAULT ); g_object_bind_property( controller->model, "fullscreen", controller->view, "fullscreen", G_BINDING_BIDIRECTIONAL ); g_object_bind_property( controller->model, "window-maximized", controller->view, "maximized", G_BINDING_BIDIRECTIONAL ); g_object_bind_property( controller->model, "pause", controller->view, "pause", G_BINDING_DEFAULT ); g_object_bind_property( controller->model, "media-title", controller->view, "title", G_BINDING_DEFAULT ); g_object_bind_property( controller->model, "volume", controller->view, "volume", G_BINDING_BIDIRECTIONAL ); g_object_bind_property( controller->model, "volume-max", controller->view, "volume-max", G_BINDING_DEFAULT ); g_object_bind_property( controller->model, "duration", controller->view, "duration", G_BINDING_DEFAULT ); g_object_bind_property( controller->model, "playlist-pos", controller->view, "playlist-pos", G_BINDING_DEFAULT ); g_object_bind_property( controller->model, "track-list", controller->view, "track-list", G_BINDING_DEFAULT ); g_object_bind_property( controller->model, "disc-list", controller->view, "disc-list", G_BINDING_DEFAULT ); g_object_bind_property( controller->view, "display-fps", controller->model, "display-fps", G_BINDING_DEFAULT|G_BINDING_SYNC_CREATE ); g_object_bind_property_full( controller->view, "loop", controller->model, "loop-playlist", G_BINDING_BIDIRECTIONAL| G_BINDING_SYNC_CREATE, boolean_to_loop, loop_to_boolean, NULL, NULL ); g_object_bind_property( controller->view, "shuffle", controller->model, "shuffle", G_BINDING_BIDIRECTIONAL|G_BINDING_SYNC_CREATE ); g_signal_connect( controller->model, "notify::ready", G_CALLBACK(model_ready_handler), controller ); g_signal_connect( controller->model, "notify::idle-active", G_CALLBACK(idle_active_handler), controller ); g_signal_connect( controller->model, "notify::playlist", G_CALLBACK(playlist_handler), controller ); g_signal_connect( controller->model, "notify::vid", G_CALLBACK(vid_handler), controller ); g_signal_connect( controller->model, "notify::window-scale", G_CALLBACK(window_scale_handler), controller ); g_signal_connect( controller->model, "frame-ready", G_CALLBACK(frame_ready_handler), controller ); g_signal_connect( controller->model, "metadata-update", G_CALLBACK(metadata_update_handler), controller ); g_signal_connect( controller->model, "window-resize", G_CALLBACK(window_resize_handler), controller ); g_signal_connect( controller->model, "window-move", G_CALLBACK(window_move_handler), controller ); g_signal_connect( controller->model, "message", G_CALLBACK(message_handler), controller ); g_signal_connect( controller->model, "error", G_CALLBACK(error_handler), controller ); g_signal_connect( controller->model, "shutdown", G_CALLBACK(shutdown_handler), controller ); g_signal_connect( controller->view, "video-area-resize", G_CALLBACK(video_area_resize_handler), controller ); g_signal_connect( controller->view, "notify::fullscreen", G_CALLBACK(fullscreen_handler), controller ); g_signal_connect( controller->view, "notify::searching", G_CALLBACK(searching_handler), controller ); g_signal_connect( controller->view, "button-clicked::play", G_CALLBACK(play_button_handler), controller ); g_signal_connect( controller->view, "button-clicked::stop", G_CALLBACK(stop_button_handler), controller ); g_signal_connect( controller->view, "button-clicked::forward", G_CALLBACK(forward_button_handler), controller ); g_signal_connect( controller->view, "button-clicked::rewind", G_CALLBACK(rewind_button_handler), controller ); g_signal_connect( controller->view, "button-clicked::next", G_CALLBACK(next_button_handler), controller ); g_signal_connect( controller->view, "button-clicked::previous", G_CALLBACK(previous_button_handler), controller ); g_signal_connect( controller->view, "button-clicked::fullscreen", G_CALLBACK(fullscreen_button_handler), controller ); g_signal_connect( controller->view, "seek", G_CALLBACK(seek_handler), controller ); g_signal_connect( controller->view, "ready", G_CALLBACK(view_ready_handler), controller ); g_signal_connect( controller->view, "render", G_CALLBACK(render_handler), controller ); g_signal_connect( controller->view, "preferences-updated", G_CALLBACK(preferences_updated_handler), controller ); g_signal_connect( controller->view, "audio-track-load", G_CALLBACK(audio_track_load_handler), controller ); g_signal_connect( controller->view, "video-track-load", G_CALLBACK(video_track_load_handler), controller ); g_signal_connect( controller->view, "subtitle-track-load", G_CALLBACK(subtitle_track_load_handler), controller ); g_signal_connect( controller->view, "file-open", G_CALLBACK(file_open_handler), controller ); g_signal_connect( controller->view, "grab-notify", G_CALLBACK(grab_handler), controller ); g_signal_connect( controller->view, "delete-event", G_CALLBACK(delete_handler), controller ); g_signal_connect( controller->view, "playlist-item-activated", G_CALLBACK(playlist_item_activated_handler), controller ); g_signal_connect( controller->view, "playlist-item-deleted", G_CALLBACK(playlist_item_deleted_handler), controller ); g_signal_connect( controller->view, "playlist-reordered", G_CALLBACK(playlist_reordered_handler), controller ); } static gboolean update_seek_bar(gpointer data) { CelluloidController *controller = data; gdouble time_pos = celluloid_model_get_time_position(controller->model); celluloid_view_set_time_position(controller->view, time_pos); return TRUE; } static gboolean is_more_than_one( GBinding *binding, const GValue *from_value, GValue *to_value, gpointer data ) { gint64 from = g_value_get_int64(from_value); g_value_set_boolean(to_value, from > 1); return TRUE; } static void idle_active_handler(GObject *object, GParamSpec *pspec, gpointer data) { CelluloidController *controller = data; gboolean idle_active = TRUE; g_object_get(object, "idle-active", &idle_active, NULL); if(idle_active) { celluloid_view_reset(CELLULOID_CONTROLLER(data)->view); } else if(controller->target_playlist_pos >= 0) { celluloid_model_set_playlist_position (controller->model, controller->target_playlist_pos); } } static void playlist_handler(GObject *object, GParamSpec *pspec, gpointer data) { CelluloidView *view = CELLULOID_CONTROLLER(data)->view; GPtrArray *playlist = NULL; gint64 pos = 0; g_object_get( object, "playlist", &playlist, "playlist-pos", &pos, NULL ); celluloid_view_update_playlist(view, playlist); celluloid_view_set_playlist_pos(view, pos); } static void vid_handler(GObject *object, GParamSpec *pspec, gpointer data) { CelluloidController *controller = data; CelluloidMainWindow *window = celluloid_view_get_main_window(controller->view); GActionMap *map = G_ACTION_MAP(window); GAction *action = g_action_map_lookup_action(map, "set-video-size"); gchar *vid_str = NULL; gint64 vid = 0; // Queue render to clear last frame from the buffer in case video // becomes disabled celluloid_view_queue_render(CELLULOID_CONTROLLER(data)->view); g_object_get(object, "vid", &vid_str, NULL); vid = g_ascii_strtoll(vid_str, NULL, 10); g_simple_action_set_enabled(G_SIMPLE_ACTION(action), vid > 0); g_free(vid_str); } static void window_scale_handler(GObject *object, GParamSpec *pspec, gpointer data) { CelluloidController *controller = data; gint64 video_width = 1; gint64 video_height = 1; gint width = 1; gint height = 1; gdouble window_scale = 1.0; gdouble new_window_scale = 1.0; celluloid_model_get_video_geometry (controller->model, &video_width, &video_height); celluloid_view_get_video_area_geometry (controller->view, &width, &height); g_object_get(object, "window-scale", &new_window_scale, NULL); window_scale = MIN( width/(gdouble)video_width, height/(gdouble)video_height ); if(ABS(window_scale-new_window_scale) > 0.0001) { celluloid_controller_autofit(data, new_window_scale); } } static void model_ready_handler(GObject *object, GParamSpec *pspec, gpointer data) { CelluloidController *controller = data; gboolean ready = FALSE; g_object_get(object, "ready", &ready, NULL); if(ready) { gboolean use_opengl_cb; use_opengl_cb = celluloid_model_get_use_opengl_cb (controller->model); celluloid_view_set_use_opengl_cb (controller->view, use_opengl_cb); if(use_opengl_cb) { celluloid_view_make_gl_context_current(controller->view); celluloid_model_initialize_gl(controller->model); } } g_source_clear(&controller->update_seekbar_id); controller->update_seekbar_id = g_timeout_add( SEEK_BAR_UPDATE_INTERVAL, (GSourceFunc)update_seek_bar, controller ); controller->ready = ready; g_object_notify(data, "ready"); } static void frame_ready_handler(CelluloidModel *model, gpointer data) { celluloid_view_queue_render(CELLULOID_CONTROLLER(data)->view); } static void metadata_update_handler(CelluloidModel *model, gint64 pos, gpointer data) { CelluloidView *view = CELLULOID_CONTROLLER(data)->view; GPtrArray *playlist = NULL; g_object_get(G_OBJECT(model), "playlist", &playlist, NULL); celluloid_view_update_playlist(view, playlist); } static void window_resize_handler( CelluloidModel *model, gint64 width, gint64 height, gpointer data ) { CelluloidController *controller = data; celluloid_view_resize_video_area(controller->view, (gint)width, (gint)height); } static void window_move_handler( CelluloidModel *model, gboolean flip_x, gboolean flip_y, GValue *x, GValue *y, gpointer data ) { celluloid_view_move (CELLULOID_CONTROLLER(data)->view, flip_x, flip_y, x, y); } static void message_handler(CelluloidMpv *mpv, const gchar *message, gpointer data) { const gsize prefix_length = sizeof(ACTION_PREFIX)-1; /* Verify that both the prefix and the scope matches */ if(message && strncmp(message, ACTION_PREFIX, prefix_length) == 0) { const gchar *action = message+prefix_length+1; CelluloidController *controller = data; CelluloidView *view = controller->view; GActionMap *map = NULL; if(g_str_has_prefix(action, "win.")) { map = G_ACTION_MAP(celluloid_view_get_main_window(view)); } else if(g_str_has_prefix(action, "app.")) { map = G_ACTION_MAP(controller->app); } if(map) { /* Strip scope and activate */ activate_action_string(map, strchr(action, '.')+1); } else { g_warning( "Received action with missing or " "unknown scope %s", action ); } } } static void error_handler(CelluloidMpv *mpv, const gchar *message, gpointer data) { celluloid_view_show_message_dialog ( CELLULOID_CONTROLLER(data)->view, GTK_MESSAGE_ERROR, _("Error"), NULL, message ); } static void shutdown_handler(CelluloidMpv *mpv, gpointer data) { g_signal_emit_by_name(data, "shutdown"); } static gboolean update_window_scale(gpointer data) { gpointer *params = data; CelluloidController *controller = CELLULOID_CONTROLLER(params[0]); gint64 video_width = 1; gint64 video_height = 1; gint width = 1; gint height = 1; gdouble window_scale = 0; gdouble new_window_scale = 0; celluloid_model_get_video_geometry (controller->model, &video_width, &video_height); celluloid_view_get_video_area_geometry (controller->view, &width, &height); new_window_scale = MIN( width/(gdouble)video_width, height/(gdouble)video_height ); g_object_get(controller->model, "window-scale", &window_scale, NULL); if(ABS(window_scale-new_window_scale) > 0.0001) { g_object_set( controller->model, "window-scale", new_window_scale, NULL ); } // Clear event source ID for the timeout *((guint *)params[1]) = 0; g_free(params); return FALSE; } static void video_area_resize_handler( CelluloidView *view, gint width, gint height, gpointer data ) { CelluloidController *controller = data; gpointer *params = g_new(gpointer, 2); g_source_clear(&controller->resize_timeout_tag); params[0] = data; params[1] = &(controller->resize_timeout_tag); // Rate-limit the call to update_window_scale(), which will update the // window-scale property in the model, to no more than once every 250ms. controller->resize_timeout_tag = g_timeout_add( 250, update_window_scale, params ); } static void fullscreen_handler(GObject *object, GParamSpec *pspec, gpointer data) { CelluloidView *view = CELLULOID_CONTROLLER(data)->view; CelluloidMainWindow *window = celluloid_view_get_main_window(view); GActionMap *map = G_ACTION_MAP(window); GAction *toggle_playlist = NULL; GAction *toggle_controls = NULL; gboolean fullscreen = FALSE; toggle_playlist = g_action_map_lookup_action(map, "toggle-playlist"); toggle_controls = g_action_map_lookup_action(map, "toggle-controls"); g_object_get(view, "fullscreen", &fullscreen, NULL); g_simple_action_set_enabled (G_SIMPLE_ACTION(toggle_playlist), !fullscreen); g_simple_action_set_enabled (G_SIMPLE_ACTION(toggle_controls), !fullscreen); } static void searching_handler(GObject *object, GParamSpec *pspec, gpointer data) { // When the search box becomes visible, it blocks all keyboard inputs // from being handled by CelluloidController. This means that the key up // event for the key that triggered the search will never arrive, so we // need to explicitly reset key states here. celluloid_model_reset_keys(CELLULOID_CONTROLLER(data)->model); } static void play_button_handler(GtkButton *button, gpointer data) { CelluloidModel *model = CELLULOID_CONTROLLER(data)->model; gboolean pause = TRUE; g_object_get(model, "pause", &pause, NULL); if(pause) { celluloid_model_play(model); } else { celluloid_model_pause(model); } } static void stop_button_handler(GtkButton *button, gpointer data) { celluloid_model_stop(CELLULOID_CONTROLLER(data)->model); } static void forward_button_handler(GtkButton *button, gpointer data) { celluloid_model_forward(CELLULOID_CONTROLLER(data)->model); } static void rewind_button_handler(GtkButton *button, gpointer data) { celluloid_model_rewind(CELLULOID_CONTROLLER(data)->model); } static void next_button_handler(GtkButton *button, gpointer data) { CelluloidController *controller = data; if(controller->use_skip_buttons_for_playlist) { celluloid_model_next_playlist_entry (CELLULOID_CONTROLLER(data)->model); } else { celluloid_model_next_chapter (CELLULOID_CONTROLLER(data)->model); } } static void previous_button_handler(GtkButton *button, gpointer data) { CelluloidController *controller = data; if(controller->use_skip_buttons_for_playlist) { celluloid_model_previous_playlist_entry (CELLULOID_CONTROLLER(data)->model); } else { celluloid_model_previous_chapter (CELLULOID_CONTROLLER(data)->model); } } static void fullscreen_button_handler(GtkButton *button, gpointer data) { CelluloidView *view = CELLULOID_CONTROLLER(data)->view; gboolean fullscreen = FALSE; g_object_get(view, "fullscreen", &fullscreen, NULL); g_object_set(view, "fullscreen", !fullscreen, NULL); } static void seek_handler(GtkButton *button, gdouble value, gpointer data) { celluloid_model_seek(CELLULOID_CONTROLLER(data)->model, value); } static void celluloid_controller_class_init(CelluloidControllerClass *klass) { GObjectClass *obj_class = G_OBJECT_CLASS(klass); GParamSpec *pspec; obj_class->constructed = constructed; obj_class->set_property = set_property; obj_class->get_property = get_property; obj_class->dispose = dispose; pspec = g_param_spec_pointer ( "app", "App", "The CelluloidApplication to use", G_PARAM_CONSTRUCT_ONLY|G_PARAM_READWRITE ); g_object_class_install_property(obj_class, PROP_APP, pspec); pspec = g_param_spec_boolean ( "ready", "Ready", "Whether mpv is ready to receive commands", FALSE, G_PARAM_READWRITE ); g_object_class_install_property(obj_class, PROP_READY, pspec); pspec = g_param_spec_boolean ( "idle", "Idle", "Whether or not the player is idle", TRUE, G_PARAM_READWRITE ); g_object_class_install_property(obj_class, PROP_IDLE, pspec); pspec = g_param_spec_boolean ( "use-skip-buttons-for-playlist", "Use skip buttons for playlist", "Whether or not to use the skip buttons to control the playlist", FALSE, G_PARAM_READWRITE ); g_object_class_install_property(obj_class, PROP_USE_SKIP_BUTTONS_FOR_PLAYLIST, pspec); g_signal_new( "shutdown", G_TYPE_FROM_CLASS(klass), G_SIGNAL_RUN_FIRST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0 ); } static void celluloid_controller_init(CelluloidController *controller) { controller->app = NULL; controller->model = NULL; controller->view = NULL; controller->ready = FALSE; controller->idle = TRUE; controller->target_playlist_pos = -1; controller->update_seekbar_id = 0; controller->resize_timeout_tag = 0; controller->skip_buttons_binding = NULL; controller->settings = g_settings_new(CONFIG_ROOT); controller->media_keys = NULL; controller->mpris = NULL; } static void update_extra_mpv_options(CelluloidController *controller) { GSettings *settings = g_settings_new(CONFIG_ROOT); const gchar *cli_options = celluloid_application_get_mpv_options (controller->app); gchar *pref_options = g_settings_get_string(settings, "mpv-options"); gchar *options = g_strjoin(" ", pref_options, cli_options, NULL); g_object_set(controller->model, "extra-options", options, NULL); g_free(options); g_free(pref_options); g_object_unref(settings); } CelluloidController * celluloid_controller_new(CelluloidApplication *app) { const GType type = celluloid_controller_get_type(); return CELLULOID_CONTROLLER(g_object_new(type, "app", app, NULL)); } void celluloid_controller_quit(CelluloidController *controller) { celluloid_view_quit(controller->view); } void celluloid_controller_autofit( CelluloidController *controller, gdouble multiplier ) { gchar *vid = NULL; gint64 width = -1; gint64 height = -1; g_object_get(G_OBJECT(controller->model), "vid", &vid, NULL); celluloid_model_get_video_geometry(controller->model, &width, &height); if(vid && strncmp(vid, "no", 3) != 0 && width >= 0 && width >= 0) { gint new_width = (gint)(multiplier*(gdouble)width); gint new_height = (gint)(multiplier*(gdouble)height); gint scale = celluloid_view_get_scale_factor(controller->view); g_debug("Resizing window to %dx%d", new_width, new_height); celluloid_view_resize_video_area( controller->view, new_width/scale, new_height/scale ); } g_free(vid); } void celluloid_controller_present(CelluloidController *controller) { celluloid_view_present(controller->view); } void celluloid_controller_open( CelluloidController *controller, const gchar *uri, gboolean append ) { celluloid_model_load_file(controller->model, uri, append); } CelluloidView * celluloid_controller_get_view(CelluloidController *controller) { return controller->view; } CelluloidModel * celluloid_controller_get_model(CelluloidController *controller) { return controller->model; } celluloid-0.20/src/celluloid-controller.h000066400000000000000000000031311373135401300205020ustar00rootroot00000000000000/* * Copyright (c) 2017-2019 gnome-mpv * * This file is part of Celluloid. * * Celluloid is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Celluloid is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Celluloid. If not, see . */ #ifndef CONTROLLER_H #define CONTROLLER_H #include #include "celluloid-model.h" #include "celluloid-view.h" G_BEGIN_DECLS #define CELLULOID_TYPE_CONTROLLER (celluloid_controller_get_type()) G_DECLARE_FINAL_TYPE(CelluloidController, celluloid_controller, CELLULOID, CONTROLLER, GObject) CelluloidController * celluloid_controller_new(CelluloidApplication *app); void celluloid_controller_quit(CelluloidController *controller); void celluloid_controller_autofit( CelluloidController *controller, gdouble multiplier ); void celluloid_controller_present(CelluloidController *controller); void celluloid_controller_open( CelluloidController *controller, const gchar *uri, gboolean append ); CelluloidView * celluloid_controller_get_view(CelluloidController *controller); CelluloidModel * celluloid_controller_get_model(CelluloidController *controller); G_END_DECLS #endif celluloid-0.20/src/celluloid-def.h000066400000000000000000000155201373135401300170620ustar00rootroot00000000000000/* * Copyright (c) 2014-2020 gnome-mpv * * This file is part of Celluloid. * * Celluloid is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Celluloid is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Celluloid. If not, see . */ #ifndef DEF_H #define DEF_H #define APP_ID "io.github.celluloid_player.Celluloid" #define ICON_NAME APP_ID #define BIN_NAME "celluloid" #define CONFIG_DIR BIN_NAME #define CONFIG_ROOT "io.github.celluloid-player.Celluloid" #define CONFIG_WIN_STATE CONFIG_ROOT".window-state" #define ACTION_PREFIX "celluloid-action" #define DEFAULT_LOG_LEVEL MPV_LOG_LEVEL_ERROR #define MPRIS_TRACK_LIST_BEFORE 10 #define MPRIS_TRACK_LIST_AFTER 10 #define MPRIS_TRACK_ID_NO_TRACK "/org/mpris/MediaPlayer2/TrackList/NoTrack" #define MPRIS_TRACK_ID_PREFIX "/io/github/CelluloidPlayer/Celluloid/Track/" #define MPRIS_BUS_NAME "org.mpris.MediaPlayer2."APP_ID #define MPRIS_OBJ_ROOT_PATH "/org/mpris/MediaPlayer2" #define MPV_OPTION_PREFIX "--mpv-" #define PLAYLIST_DEFAULT_WIDTH 200 #define PLAYLIST_MIN_WIDTH 20 #define CSD_WIDTH_OFFSET 52 #define CSD_HEIGHT_OFFSET 99 #define WAYLAND_NOCSD_HEIGHT_OFFSET 60 #define MAIN_WINDOW_DEFAULT_WIDTH 625 #define MAIN_WINDOW_DEFAULT_HEIGHT 400 #define SEEK_BAR_UPDATE_INTERVAL 250 #define FS_CONTROL_HIDE_DELAY 1 #define KEYSTRING_MAX_LEN 16 #define MIN_MPV_MAJOR 0 #define MIN_MPV_MINOR 29 #define MIN_MPV_PATCH 0 #define SUBTITLE_EXTS { "utf",\ "utf8",\ "utf-8",\ "idx",\ "sub",\ "srt",\ "smi",\ "rt",\ "txt",\ "ssa",\ "aqt",\ "jss",\ "js",\ "ass",\ "mks",\ "vtt",\ "sup",\ NULL } #define PLAYLIST_EXTS { "m3u",\ "m3u8",\ "ini",\ "pls",\ "txt",\ NULL } #define DND_TARGETS { {.target = "PLAYLIST_PATH",\ .flags = GTK_TARGET_SAME_APP,\ .info = 0},\ {.target = "text/uri-list",\ .flags = 0,\ .info = 0},\ {.target = "text/plain",\ .flags = 0,\ .info = 0},\ {.target = "STRING",\ .flags = 0,\ .info = 0} } #define DEFAULT_KEYBINDS \ { "Ctrl+o script-message celluloid-action win.show-open-dialog((false, false))",\ "Ctrl+l script-message celluloid-action win.show-open-location-dialog(false)",\ "Ctrl+Shift+o script-message celluloid-action win.show-open-dialog((false, true))",\ "Ctrl+Shift+l script-message celluloid-action win.show-open-location-dialog(true)",\ "Ctrl+Shift+s script-message celluloid-action win.save-playlist",\ "Ctrl+f script-message celluloid-action win.search-playlist",\ "Ctrl+q script-message celluloid-action win.quit",\ "Ctrl+? script-message celluloid-action win.show-shortcuts-dialog",\ "Ctrl+p script-message celluloid-action win.show-preferences-dialog",\ "Ctrl+h script-message celluloid-action win.toggle-controls",\ "F9 script-message celluloid-action win.toggle-playlist",\ "DEL script-message celluloid-action win.remove-selected-playlist-item",\ "U stop",\ "STOP stop",\ "F11 cycle fullscreen",\ "WHEEL_UP add volume 2",\ "WHEEL_DOWN add volume -2",\ "WHEEL_LEFT no-osd seek -10",\ "WHEEL_RIGHT no-osd seek 10",\ NULL } #define KEYSTRING_MAP { "PGUP", "Page_Up",\ "PGDWN", "Page_Down",\ "BS", "\b",\ "SHARP", "#",\ "UP", "KP_Up",\ "DOWN", "KP_Down",\ "RIGHT", "KP_Right",\ "LEFT", "KP_Left",\ "RIGHT", "Right",\ "LEFT", "Left",\ "UP", "Up",\ "DOWN", "Down",\ "ESC", "\x1b",\ "DEL", "\x7f",\ "ENTER", "\r",\ "INS", "Insert",\ "VOLUME_LOWER", "AudioLowerVolume",\ "MUTE", "AudioMute",\ "VOLUME_UP", "AudioRaiseVolume",\ "PLAY", "AudioPlay",\ "STOP", "AudioStop",\ "PREV", "AudioPrev",\ "NEXT", "AudioNext",\ "FORWARD", "AudioForward",\ "REWIND", "AudioRewind",\ "MENU", "Menu",\ "HOMEPAGE", "HomePage",\ "MAIL", "Mail",\ "FAVORITES", "Favorites",\ "SEARCH", "Search",\ "SLEEP", "Sleep",\ "CANCEL", "Cancel",\ "RECORD", "AudioRecord",\ "", "Control_L",\ "", "Control_R",\ "", "Alt_L",\ "", "Alt_R",\ "", "Meta_L",\ "", "Meta_R",\ "", "Shift_L",\ "", "Shift_R",\ NULL } #define SUPPORTED_PROTOCOLS { "cdda",\ "rtmp",\ "rtsp",\ "http",\ "https",\ "mms",\ "mmst",\ "mmsh",\ "mmshttp",\ "rtp",\ "httpproxy",\ "hls",\ "rtmpe",\ "rtmps",\ "rtmpt",\ "rtmpte",\ "rtmpts",\ "srtp",\ "lavf",\ "ffmpeg",\ "udp",\ "ftp",\ "tcp",\ "tls",\ "unix",\ "sftp",\ "md5",\ "concat",\ "avdevice",\ "av",\ "dvb",\ "tv",\ "pvr",\ "smb",\ "file",\ "dvdread",\ "dvd",\ "dvdnav",\ "bd",\ "br",\ "bluray",\ "bdnav",\ "brnav",\ "bluraynav",\ "memory",\ "null",\ "mf",\ "edl",\ "rar",\ NULL } #define SUPPORTED_MIME_TYPES { "application/ogg",\ "application/x-ogg",\ "application/sdp",\ "application/smil",\ "application/x-smil",\ "application/streamingmedia",\ "application/x-streamingmedia",\ "application/vnd.rn-realmedia",\ "application/vnd.rn-realmedia-vbr",\ "audio/aac",\ "audio/x-aac",\ "audio/m4a",\ "audio/x-m4a",\ "audio/mp1",\ "audio/x-mp1",\ "audio/mp2",\ "audio/x-mp2",\ "audio/mp3",\ "audio/x-mp3",\ "audio/mpeg",\ "audio/x-mpeg",\ "audio/mpegurl",\ "audio/x-mpegurl",\ "audio/mpg",\ "audio/x-mpg",\ "audio/rn-mpeg",\ "audio/ogg",\ "audio/scpls",\ "audio/x-scpls",\ "audio/vnd.rn-realaudio",\ "audio/wav",\ "audio/x-pn-windows-pcm",\ "audio/x-realaudio",\ "audio/x-pn-realaudio",\ "audio/x-ms-wma",\ "audio/x-pls",\ "audio/x-wav",\ "video/mpeg",\ "video/x-mpeg",\ "video/x-mpeg2",\ "video/mp4",\ "video/msvideo",\ "video/x-msvideo",\ "video/ogg",\ "video/quicktime",\ "video/vnd.rn-realvideo",\ "video/x-ms-afs",\ "video/x-ms-asf",\ "video/x-ms-wmv",\ "video/x-ms-wmx",\ "video/x-ms-wvxvideo",\ "video/x-avi",\ "video/x-fli",\ "video/x-flv",\ "video/x-theora",\ "video/x-matroska",\ "video/webm",\ "audio/x-flac",\ "audio/x-vorbis+ogg",\ "video/x-ogm+ogg",\ "audio/x-shorten",\ "audio/x-ape",\ "audio/x-wavpack",\ "audio/x-tta",\ "audio/AMR",\ "audio/ac3",\ "video/mp2t",\ "audio/flac",\ NULL } #endif celluloid-0.20/src/celluloid-file-chooser.c000066400000000000000000000123541373135401300207000ustar00rootroot00000000000000/* * Copyright (c) 2017-2020 gnome-mpv * * This file is part of Celluloid. * * Celluloid is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Celluloid is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Celluloid. If not, see . */ #include #include #include "celluloid-file-chooser.h" #include "celluloid-def.h" static void load_last_folder(GtkFileChooser *chooser); static void save_last_folder(GtkFileChooser *chooser); static void response_handler(GtkDialog *dialog, gint response_id, gpointer data); static void load_last_folder(GtkFileChooser *chooser) { GSettings *win_config = g_settings_new(CONFIG_WIN_STATE); gchar *uri = g_settings_get_string(win_config, "last-folder-uri"); if(uri && *uri) { gtk_file_chooser_set_current_folder_uri(chooser, uri); } g_free(uri); g_object_unref(win_config); } static void save_last_folder(GtkFileChooser *chooser) { gchar *uri = gtk_file_chooser_get_current_folder_uri(chooser); GSettings *win_config = g_settings_new(CONFIG_WIN_STATE); g_settings_set_string(win_config, "last-folder-uri", uri?:""); g_free(uri); g_object_unref(win_config); } static void response_handler(GtkDialog *dialog, gint response_id, gpointer data) { if(response_id == GTK_RESPONSE_ACCEPT) { GSettings *main_config; gboolean last_folder_enable; main_config = g_settings_new(CONFIG_ROOT); last_folder_enable = g_settings_get_boolean (main_config, "last-folder-enable"); if(last_folder_enable) { save_last_folder(GTK_FILE_CHOOSER(dialog)); } g_object_unref(main_config); } } CelluloidFileChooser * celluloid_file_chooser_new( const gchar *title, GtkWindow *parent, GtkFileChooserAction action ) { CelluloidFileChooser *chooser; GtkFileChooser *gtk_chooser; GSettings *main_config; gboolean last_folder_enable; chooser = gtk_file_chooser_native_new(title, parent, action, NULL, NULL); gtk_chooser = GTK_FILE_CHOOSER(chooser); main_config = g_settings_new(CONFIG_ROOT); last_folder_enable = g_settings_get_boolean (main_config, "last-folder-enable"); if(last_folder_enable) { load_last_folder(GTK_FILE_CHOOSER(chooser)); } if( action != GTK_FILE_CHOOSER_ACTION_SAVE && action != GTK_FILE_CHOOSER_ACTION_CREATE_FOLDER ) { gtk_file_chooser_set_select_multiple(gtk_chooser, TRUE); } celluloid_file_chooser_set_modal(chooser, TRUE); gtk_file_chooser_set_local_only(gtk_chooser, FALSE); gtk_file_chooser_set_do_overwrite_confirmation(gtk_chooser, TRUE); g_signal_connect(chooser, "response", G_CALLBACK(response_handler), NULL); g_object_unref(main_config); return chooser; } void celluloid_file_chooser_set_default_filters( CelluloidFileChooser *chooser, gboolean audio, gboolean video, gboolean image, gboolean subtitle ) { GtkFileChooser *gtk_chooser = GTK_FILE_CHOOSER(chooser); GSList *filters = gtk_file_chooser_list_filters(gtk_chooser); for(GSList *iter = filters; iter; iter = g_slist_next(iter)) { gtk_file_chooser_remove_filter(gtk_chooser, iter->data); } if(audio || video || image || subtitle) { GtkFileFilter *filter = gtk_file_filter_new(); gtk_file_filter_set_name(filter, _("All Files")); gtk_file_filter_add_pattern(filter, "*"); gtk_file_chooser_add_filter(gtk_chooser, filter); } if(audio && video && image) { GtkFileFilter *filter = gtk_file_filter_new(); gtk_file_filter_set_name(filter, _("Media Files")); gtk_file_filter_add_mime_type(filter, "audio/*"); gtk_file_filter_add_mime_type(filter, "video/*"); gtk_file_filter_add_mime_type(filter, "images/*"); gtk_file_chooser_add_filter(gtk_chooser, filter); gtk_file_chooser_set_filter(gtk_chooser, filter); } if(audio) { GtkFileFilter *filter = gtk_file_filter_new(); gtk_file_filter_set_name(filter, _("Audio Files")); gtk_file_filter_add_mime_type(filter, "audio/*"); gtk_file_chooser_add_filter(gtk_chooser, filter); } if(video) { GtkFileFilter *filter = gtk_file_filter_new(); gtk_file_filter_set_name(filter, _("Video Files")); gtk_file_filter_add_mime_type(filter, "video/*"); gtk_file_chooser_add_filter(gtk_chooser, filter); } if(image) { GtkFileFilter *filter = gtk_file_filter_new(); gtk_file_filter_set_name(filter, _("Image Files")); gtk_file_filter_add_mime_type(filter, "images/*"); gtk_file_chooser_add_filter(gtk_chooser, filter); } if(subtitle) { GtkFileFilter *filter = gtk_file_filter_new(); const gchar *exts[] = SUBTITLE_EXTS; gtk_file_filter_set_name(filter, _("Subtitle Files")); for(gint i = 0; exts[i]; i++) { gchar *pattern = g_strdup_printf("*.%s", exts[i]); gtk_file_filter_add_pattern(filter, pattern); g_free(pattern); } gtk_file_chooser_add_filter(gtk_chooser, filter); if(!(audio || video || image)) { gtk_file_chooser_set_filter(gtk_chooser, filter); } } g_slist_free(filters); } celluloid-0.20/src/celluloid-file-chooser.h000066400000000000000000000030701373135401300207000ustar00rootroot00000000000000/* * Copyright (c) 2017-2019 gnome-mpv * * This file is part of Celluloid. * * Celluloid is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Celluloid is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Celluloid. If not, see . */ #ifndef FILE_CHOOSER_H #define FILE_CHOOSER_H #include G_BEGIN_DECLS #define CELLULOID_FILE_CHOOSER GTK_FILE_CHOOSER_NATIVE #define CelluloidFileChooser GtkFileChooserNative #define celluloid_file_chooser_destroy(x) gtk_native_dialog_destroy(GTK_NATIVE_DIALOG(x)) #define celluloid_file_chooser_show(x) gtk_native_dialog_show(GTK_NATIVE_DIALOG(x)) #define celluloid_file_chooser_set_modal(x, y) gtk_native_dialog_set_modal(GTK_NATIVE_DIALOG(x), y) #define celluloid_file_chooser_run(x) gtk_native_dialog_run(GTK_NATIVE_DIALOG(x)) CelluloidFileChooser * celluloid_file_chooser_new( const gchar *title, GtkWindow *parent, GtkFileChooserAction action ); void celluloid_file_chooser_set_default_filters( CelluloidFileChooser *chooser, gboolean audio, gboolean video, gboolean image, gboolean subtitle ); G_END_DECLS #endif celluloid-0.20/src/celluloid-header-bar.c000066400000000000000000000111611373135401300203060ustar00rootroot00000000000000/* * Copyright (c) 2016-2019 gnome-mpv * * This file is part of Celluloid. * * Celluloid is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Celluloid is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Celluloid. If not, see . */ #include #include #include #include "celluloid-header-bar.h" #include "celluloid-menu.h" struct _CelluloidHeaderBar { GtkHeaderBar parent_instance; GtkWidget *open_btn; GtkWidget *fullscreen_btn; GtkWidget *menu_btn; }; struct _CelluloidHeaderBarClass { GtkHeaderBarClass parent_class; }; G_DEFINE_TYPE(CelluloidHeaderBar, celluloid_header_bar, GTK_TYPE_HEADER_BAR) static void celluloid_header_bar_class_init(CelluloidHeaderBarClass *klass) { } static void celluloid_header_bar_init(CelluloidHeaderBar *hdr) { GtkHeaderBar *ghdr; GMenu *open_btn_menu; GMenu *menu_btn_menu; GtkWidget *open_icon; GtkWidget *fullscreen_icon; GtkWidget *menu_icon; ghdr = GTK_HEADER_BAR(hdr); open_btn_menu = g_menu_new(); menu_btn_menu = g_menu_new(); open_icon = gtk_image_new_from_icon_name ("list-add-symbolic", GTK_ICON_SIZE_MENU); fullscreen_icon = gtk_image_new_from_icon_name ("view-fullscreen-symbolic", GTK_ICON_SIZE_MENU); menu_icon = gtk_image_new_from_icon_name ("open-menu-symbolic", GTK_ICON_SIZE_MENU); hdr->open_btn = gtk_menu_button_new(); hdr->fullscreen_btn = gtk_button_new(); hdr->menu_btn = gtk_menu_button_new(); celluloid_menu_build_open_btn(open_btn_menu, NULL); celluloid_menu_build_menu_btn(menu_btn_menu, NULL); g_object_set(open_icon, "use-fallback", TRUE, NULL); g_object_set(fullscreen_icon, "use-fallback", TRUE, NULL); g_object_set(menu_icon, "use-fallback", TRUE, NULL); gtk_button_set_image(GTK_BUTTON(hdr->open_btn), open_icon); gtk_button_set_image(GTK_BUTTON(hdr->fullscreen_btn), fullscreen_icon); gtk_button_set_image(GTK_BUTTON(hdr->menu_btn), menu_icon); gtk_menu_button_set_menu_model ( GTK_MENU_BUTTON(hdr->open_btn), G_MENU_MODEL(open_btn_menu) ); gtk_menu_button_set_menu_model ( GTK_MENU_BUTTON(hdr->menu_btn), G_MENU_MODEL(menu_btn_menu) ); gtk_widget_set_tooltip_text (hdr->fullscreen_btn, _("Toggle Fullscreen")); gtk_actionable_set_action_name (GTK_ACTIONABLE(hdr->fullscreen_btn), "win.toggle-fullscreen"); gtk_widget_set_can_focus(hdr->open_btn, FALSE); gtk_widget_set_can_focus(hdr->fullscreen_btn, FALSE); gtk_widget_set_can_focus(hdr->menu_btn, FALSE); gtk_header_bar_pack_start(ghdr, hdr->open_btn); gtk_header_bar_pack_end(ghdr, hdr->menu_btn); gtk_header_bar_pack_end(ghdr, hdr->fullscreen_btn); gtk_header_bar_set_show_close_button(ghdr, TRUE); } GtkWidget * celluloid_header_bar_new() { return GTK_WIDGET(g_object_new(celluloid_header_bar_get_type(), NULL)); } gboolean celluloid_header_bar_get_open_button_popup_visible(CelluloidHeaderBar *hdr) { GtkMenuButton *btn = GTK_MENU_BUTTON(hdr->open_btn); GtkWidget *popover = GTK_WIDGET(gtk_menu_button_get_popover(btn)); return gtk_widget_is_visible(popover); } gboolean celluloid_header_bar_get_menu_button_popup_visible(CelluloidHeaderBar *hdr) { GtkMenuButton *btn = GTK_MENU_BUTTON(hdr->menu_btn); GtkWidget *popover = GTK_WIDGET(gtk_menu_button_get_popover(btn)); return gtk_widget_is_visible(popover); } void celluloid_header_bar_set_fullscreen_state( CelluloidHeaderBar *hdr, gboolean fullscreen ) { GtkWidget *image = gtk_button_get_image(GTK_BUTTON(hdr->fullscreen_btn)); gtk_image_set_from_icon_name( GTK_IMAGE(image), fullscreen? "view-restore-symbolic": "view-fullscreen-symbolic", GTK_ICON_SIZE_MENU ); gtk_header_bar_set_show_close_button(GTK_HEADER_BAR(hdr), !fullscreen); } void celluloid_header_bar_update_track_list( CelluloidHeaderBar *hdr, const GPtrArray *track_list ) { GMenu *menu = g_menu_new(); celluloid_menu_build_menu_btn(menu, track_list); gtk_menu_button_set_menu_model (GTK_MENU_BUTTON(hdr->menu_btn), G_MENU_MODEL(menu)); } void celluloid_header_bar_update_disc_list( CelluloidHeaderBar *hdr, const GPtrArray *disc_list ) { GMenu *menu = g_menu_new(); celluloid_menu_build_open_btn(menu, disc_list); gtk_menu_button_set_menu_model (GTK_MENU_BUTTON(hdr->open_btn), G_MENU_MODEL(menu)); } celluloid-0.20/src/celluloid-header-bar.h000066400000000000000000000030071373135401300203130ustar00rootroot00000000000000/* * Copyright (c) 2016-2019 gnome-mpv * * This file is part of Celluloid. * * Celluloid is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Celluloid is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Celluloid. If not, see . */ #ifndef HEADER_BAR_H #define HEADER_BAR_H #include #include #include #define CELLULOID_TYPE_HEADER_BAR (celluloid_header_bar_get_type ()) G_DECLARE_FINAL_TYPE(CelluloidHeaderBar, celluloid_header_bar, CELLULOID, HEADER_BAR, GtkHeaderBar) GtkWidget * celluloid_header_bar_new(void); gboolean celluloid_header_bar_get_open_button_popup_visible(CelluloidHeaderBar *hdr); gboolean celluloid_header_bar_get_menu_button_popup_visible(CelluloidHeaderBar *hdr); void celluloid_header_bar_set_fullscreen_state( CelluloidHeaderBar *hdr, gboolean fullscreen ); void celluloid_header_bar_update_track_list( CelluloidHeaderBar *hdr, const GPtrArray *track_list ); void celluloid_header_bar_update_disc_list( CelluloidHeaderBar *hdr, const GPtrArray *disc_list ); #endif celluloid-0.20/src/celluloid-main-window-private.h000066400000000000000000000032271373135401300222260ustar00rootroot00000000000000/* * Copyright (c) 2019-2020 gnome-mpv * * This file is part of Celluloid. * * Celluloid is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Celluloid is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Celluloid. If not, see . */ #ifndef CELLULOID_MAIN_WINDOW_PRIVATE_H #define CELLULOID_MAIN_WINDOW_PRIVATE_H #include G_BEGIN_DECLS typedef struct _CelluloidMainWindowPrivate CelluloidMainWindowPrivate; enum { PROP_0, PROP_ALWAYS_FLOATING, N_PROPERTIES }; struct _CelluloidMainWindowPrivate { GtkApplicationWindow parent; gint width_offset; gint height_offset; gint resize_target[2]; gboolean csd; gboolean always_floating; gboolean use_floating_controls; gboolean fullscreen; gboolean playlist_visible; gboolean playlist_first_toggle; gboolean pre_fs_playlist_visible; gint playlist_width; guint resize_tag; const GPtrArray *track_list; const GPtrArray *disc_list; GtkWidget *header_bar; GtkWidget *main_box; GtkWidget *vid_area_paned; GtkWidget *vid_area; GtkWidget *control_box; GtkWidget *playlist; }; #define get_private(window) \ G_TYPE_INSTANCE_GET_PRIVATE(window, CELLULOID_TYPE_MAIN_WINDOW, CelluloidMainWindowPrivate) G_END_DECLS #endif celluloid-0.20/src/celluloid-main-window.c000066400000000000000000000510441373135401300205510ustar00rootroot00000000000000/* * Copyright (c) 2014-2020 gnome-mpv * * This file is part of Celluloid. * * Celluloid is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Celluloid is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Celluloid. If not, see . */ #include #include #include #include #include "celluloid-main-window-private.h" #include "celluloid-def.h" #include "celluloid-marshal.h" #include "celluloid-menu.h" #include "celluloid-application.h" #include "celluloid-playlist-widget.h" #include "celluloid-main-window.h" #include "celluloid-header-bar.h" #include "celluloid-control-box.h" #include "celluloid-video-area.h" static void constructed(GObject *object); static void dispose(GObject *object); static void set_property( GObject *object, guint property_id, const GValue *value, GParamSpec *pspec ); static void get_property( GObject *object, guint property_id, GValue *value, GParamSpec *pspec ); static void seek_handler(GtkWidget *widget, gdouble value, gpointer data); static void button_clicked_handler( CelluloidControlBox *control_box, const gchar *button, gpointer data ); static void notify(GObject *object, GParamSpec *pspec); static void resize_video_area_finalize( GtkWidget *widget, GdkRectangle *allocation, gpointer data ); static gboolean resize_to_target(gpointer data); G_DEFINE_TYPE_WITH_PRIVATE(CelluloidMainWindow, celluloid_main_window, GTK_TYPE_APPLICATION_WINDOW) static void constructed(GObject *object) { CelluloidMainWindowPrivate *priv = get_private(object); priv->playlist = celluloid_playlist_widget_new(); gtk_widget_show_all(priv->playlist); gtk_widget_hide(priv->playlist); gtk_widget_set_no_show_all(priv->playlist, TRUE); gtk_widget_show_all(priv->control_box); gtk_widget_hide(priv->control_box); gtk_widget_set_no_show_all(priv->control_box, TRUE); gtk_paned_pack1( GTK_PANED(priv->vid_area_paned), priv->vid_area, TRUE, TRUE ); gtk_paned_pack2( GTK_PANED(priv->vid_area_paned), priv->playlist, FALSE, FALSE ); G_OBJECT_CLASS(celluloid_main_window_parent_class)->constructed(object); } static void dispose(GObject *object) { g_source_clear(&get_private(object)->resize_tag); G_OBJECT_CLASS(celluloid_main_window_parent_class)->dispose(object); } static void set_property( GObject *object, guint property_id, const GValue *value, GParamSpec *pspec ) { CelluloidMainWindowPrivate *priv = get_private(object); if(property_id == PROP_ALWAYS_FLOATING) { priv->always_floating = g_value_get_boolean(value); } else { G_OBJECT_WARN_INVALID_PROPERTY_ID(object, property_id, pspec); } } static void get_property( GObject *object, guint property_id, GValue *value, GParamSpec *pspec ) { CelluloidMainWindowPrivate *priv = get_private(object); if(property_id == PROP_ALWAYS_FLOATING) { g_value_set_boolean(value, priv->always_floating); } else { G_OBJECT_WARN_INVALID_PROPERTY_ID(object, property_id, pspec); } } static void seek_handler(GtkWidget *widget, gdouble value, gpointer data) { g_signal_emit_by_name(data, "seek", value); } static void button_clicked_handler( CelluloidControlBox *control_box, const gchar *button, gpointer data ) { gchar *name = g_strconcat("button-clicked::", button, NULL); g_signal_emit_by_name(data, name); g_free(name); } static void notify(GObject *object, GParamSpec *pspec) { if(g_strcmp0(pspec->name, "always-use-floating-controls") == 0) { CelluloidMainWindow *wnd = CELLULOID_MAIN_WINDOW(object); CelluloidMainWindowPrivate *priv = get_private(wnd); gboolean floating = priv->always_floating || priv->fullscreen; celluloid_main_window_set_use_floating_controls(wnd, floating); } } static void resize_video_area_finalize( GtkWidget *widget, GdkRectangle *allocation, gpointer data ) { CelluloidMainWindow *wnd = data; CelluloidMainWindowPrivate *priv = get_private(wnd); GdkWindow *gdk_window = gtk_widget_get_window(data); GdkDisplay *display = gdk_display_get_default(); GdkMonitor *monitor = gdk_display_get_monitor_at_window (display, gdk_window); GdkRectangle monitor_geom = {0}; gint width = allocation->width; gint height = allocation->height; gint target_width = priv->resize_target[0]; gint target_height = priv->resize_target[1]; g_signal_handlers_disconnect_by_func (widget, resize_video_area_finalize, data); gdk_monitor_get_geometry(monitor, &monitor_geom); /* Adjust resize offset */ if((width != target_width || height != target_height) && ( target_width < monitor_geom.width && target_height < monitor_geom.height ) && !gtk_window_is_maximized(GTK_WINDOW(wnd)) && !priv->fullscreen) { priv->width_offset += target_width-width; priv->height_offset += target_height-height; g_source_clear(&priv->resize_tag); priv->resize_tag = g_idle_add_full( G_PRIORITY_HIGH_IDLE, resize_to_target, wnd, NULL ); } } static gboolean resize_to_target(gpointer data) { CelluloidMainWindow *wnd = data; CelluloidMainWindowPrivate *priv = get_private(data); gint target_width = priv->resize_target[0]; gint target_height = priv->resize_target[1]; g_source_clear(&priv->resize_tag); /* Emulate mpv resizing behavior by using GDK_GRAVITY_CENTER */ gtk_window_set_gravity(GTK_WINDOW(wnd), GDK_GRAVITY_CENTER); gtk_window_resize( GTK_WINDOW(wnd), target_width+priv->width_offset, target_height+priv->height_offset ); gtk_window_set_gravity(GTK_WINDOW(wnd), GDK_GRAVITY_NORTH_WEST); /* Prevent graphical glitches that appear when calling * celluloid_main_window_resize_video_area() with the current size as * the target size. */ celluloid_playlist_widget_queue_draw (CELLULOID_PLAYLIST_WIDGET(priv->playlist)); return FALSE; } static void celluloid_main_window_class_init(CelluloidMainWindowClass *klass) { GObjectClass *obj_class = G_OBJECT_CLASS(klass); GParamSpec *pspec = NULL; obj_class->constructed = constructed; obj_class->dispose = dispose; obj_class->set_property = set_property; obj_class->get_property = get_property; obj_class->notify = notify; pspec = g_param_spec_boolean ( "always-use-floating-controls", "Always use floating controls", "Whether or not to use floating controls in windowed mode", FALSE, G_PARAM_READWRITE ); g_object_class_install_property(obj_class, PROP_ALWAYS_FLOATING, pspec); g_signal_new( "button-clicked", G_TYPE_FROM_CLASS(klass), G_SIGNAL_RUN_FIRST|G_SIGNAL_DETAILED, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0 ); g_signal_new( "seek", G_TYPE_FROM_CLASS(klass), G_SIGNAL_RUN_FIRST, 0, NULL, NULL, g_cclosure_marshal_VOID__DOUBLE, G_TYPE_NONE, 1, G_TYPE_DOUBLE ); } static void celluloid_main_window_init(CelluloidMainWindow *wnd) { CelluloidMainWindowPrivate *priv = get_private(wnd); CelluloidControlBox *vid_area_control_box = NULL; priv->csd = FALSE; priv->always_floating = FALSE; priv->use_floating_controls = FALSE; priv->fullscreen = FALSE; priv->playlist_visible = FALSE; priv->pre_fs_playlist_visible = FALSE; priv->playlist_width = PLAYLIST_DEFAULT_WIDTH; priv->resize_tag = 0; priv->track_list = NULL; priv->disc_list = NULL; priv->header_bar = celluloid_header_bar_new(); priv->main_box = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0); priv->vid_area_paned = gtk_paned_new(GTK_ORIENTATION_HORIZONTAL); priv->vid_area = celluloid_video_area_new(); priv->control_box = celluloid_control_box_new(); priv->playlist_first_toggle = TRUE; priv->width_offset = 0; priv->height_offset = 0; vid_area_control_box = celluloid_video_area_get_control_box (CELLULOID_VIDEO_AREA(priv->vid_area)); g_object_bind_property( wnd, "title", priv->vid_area, "title", G_BINDING_DEFAULT ); g_object_bind_property( priv->control_box, "duration", vid_area_control_box, "duration", G_BINDING_DEFAULT ); g_object_bind_property( priv->control_box, "pause", vid_area_control_box, "pause", G_BINDING_DEFAULT ); g_object_bind_property( priv->control_box, "skip-enabled", vid_area_control_box, "skip-enabled", G_BINDING_DEFAULT ); g_object_bind_property( priv->control_box, "show-fullscreen-button", vid_area_control_box, "show-fullscreen-button", G_BINDING_DEFAULT ); g_object_bind_property( priv->control_box, "time-position", vid_area_control_box, "time-position", G_BINDING_DEFAULT ); g_object_bind_property( priv->control_box, "loop", vid_area_control_box, "loop", G_BINDING_BIDIRECTIONAL ); g_object_bind_property( priv->control_box, "volume", vid_area_control_box, "volume", G_BINDING_BIDIRECTIONAL ); g_object_bind_property( priv->control_box, "volume-popup-visible", vid_area_control_box, "volume-popup-visible", G_BINDING_BIDIRECTIONAL ); g_signal_connect( priv->control_box, "seek", G_CALLBACK(seek_handler), wnd ); g_signal_connect( priv->control_box, "button-clicked", G_CALLBACK(button_clicked_handler), wnd ); g_signal_connect( vid_area_control_box, "seek", G_CALLBACK(seek_handler), wnd ); g_signal_connect( vid_area_control_box, "button-clicked", G_CALLBACK(button_clicked_handler), wnd ); gtk_widget_add_events( priv->vid_area, GDK_ENTER_NOTIFY_MASK |GDK_LEAVE_NOTIFY_MASK ); gtk_window_set_title(GTK_WINDOW(wnd), g_get_application_name()); gtk_paned_set_position( GTK_PANED(priv->vid_area_paned), MAIN_WINDOW_DEFAULT_WIDTH -PLAYLIST_DEFAULT_WIDTH ); gtk_window_set_default_size( GTK_WINDOW(wnd), MAIN_WINDOW_DEFAULT_WIDTH, MAIN_WINDOW_DEFAULT_HEIGHT ); gtk_box_pack_start (GTK_BOX(priv->main_box), priv->vid_area_paned, TRUE, TRUE, 0); gtk_container_add(GTK_CONTAINER(priv->main_box), priv->control_box); gtk_container_add(GTK_CONTAINER(wnd), priv->main_box); } GtkWidget * celluloid_main_window_new( GtkApplication *app, gboolean always_floating ) { return GTK_WIDGET(g_object_new( celluloid_main_window_get_type(), "application", app, "always-use-floating-controls", always_floating, NULL )); } CelluloidPlaylistWidget * celluloid_main_window_get_playlist(CelluloidMainWindow *wnd) { return CELLULOID_PLAYLIST_WIDGET(get_private(wnd)->playlist); } CelluloidControlBox * celluloid_main_window_get_control_box(CelluloidMainWindow *wnd) { return CELLULOID_CONTROL_BOX(get_private(wnd)->control_box); } CelluloidVideoArea * celluloid_main_window_get_video_area(CelluloidMainWindow *wnd) { return CELLULOID_VIDEO_AREA(get_private(wnd)->vid_area); } void celluloid_main_window_set_use_floating_controls( CelluloidMainWindow *wnd, gboolean floating ) { CelluloidMainWindowPrivate *priv = get_private(wnd); if(floating != priv->use_floating_controls) { GSettings *settings = g_settings_new(CONFIG_WIN_STATE); gboolean controls_visible = g_settings_get_boolean (settings, "show-controls"); gtk_widget_set_visible (priv->control_box, controls_visible && !floating); celluloid_video_area_set_control_box_visible (CELLULOID_VIDEO_AREA(priv->vid_area), floating); priv->use_floating_controls = floating; g_clear_object(&settings); } } gboolean celluloid_main_window_get_use_floating_controls(CelluloidMainWindow *wnd) { return get_private(wnd)->use_floating_controls; } void celluloid_main_window_set_fullscreen(CelluloidMainWindow *wnd, gboolean fullscreen) { CelluloidMainWindowPrivate *priv = get_private(wnd); if(fullscreen != priv->fullscreen) { CelluloidVideoArea *vid_area = CELLULOID_VIDEO_AREA(priv->vid_area); gboolean floating = priv->always_floating || fullscreen; gboolean playlist_visible = !fullscreen && priv->pre_fs_playlist_visible; if(fullscreen) { gtk_window_fullscreen(GTK_WINDOW(wnd)); gtk_window_present(GTK_WINDOW(wnd)); priv->pre_fs_playlist_visible = priv->playlist_visible; } else { gtk_window_unfullscreen(GTK_WINDOW(wnd)); priv->playlist_visible = priv->pre_fs_playlist_visible; } if(!celluloid_main_window_get_csd_enabled(wnd)) { gtk_application_window_set_show_menubar (GTK_APPLICATION_WINDOW(wnd), !fullscreen); } celluloid_video_area_set_fullscreen_state(vid_area, fullscreen); celluloid_main_window_set_use_floating_controls(wnd, floating); gtk_widget_set_visible(priv->playlist, playlist_visible); priv->fullscreen = fullscreen; } } gboolean celluloid_main_window_get_fullscreen(CelluloidMainWindow *wnd) { return get_private(wnd)->fullscreen; } void celluloid_main_window_toggle_fullscreen(CelluloidMainWindow *wnd) { celluloid_main_window_set_fullscreen(wnd, !get_private(wnd)->fullscreen); } void celluloid_main_window_reset(CelluloidMainWindow *wnd) { gtk_window_set_title (GTK_WINDOW(wnd), g_get_application_name()); celluloid_control_box_reset (CELLULOID_CONTROL_BOX(get_private(wnd)->control_box)); } void celluloid_main_window_save_state(CelluloidMainWindow *wnd) { GSettings *settings; CelluloidMainWindowPrivate *priv; gint width; gint height; gboolean maximized; gint handle_pos; gdouble volume; gboolean loop; gboolean controls_visible; settings = g_settings_new(CONFIG_WIN_STATE); priv = get_private(wnd); maximized = gtk_window_is_maximized(GTK_WINDOW(wnd)); handle_pos = gtk_paned_get_position(GTK_PANED(priv->vid_area_paned)); controls_visible = gtk_widget_get_visible(priv->control_box); g_object_get(priv->control_box, "volume", &volume, "loop", &loop, NULL); gtk_window_get_size(GTK_WINDOW(wnd), &width, &height); g_settings_set_boolean(settings, "maximized", maximized); g_settings_set_double(settings, "volume", volume/100.0); g_settings_set_boolean(settings, "loop-playlist", loop); g_settings_set_boolean(settings, "show-controls", controls_visible); g_settings_set_boolean(settings, "show-playlist", priv->playlist_visible); if(!maximized) { g_settings_set_int(settings, "width", width); g_settings_set_int(settings, "height", height); } if(celluloid_main_window_get_playlist_visible(wnd)) { g_settings_set_int( settings, "playlist-width", width-handle_pos ); } else { g_settings_set_int( settings, "playlist-width", priv->playlist_width ); } g_clear_object(&settings); } void celluloid_main_window_load_state(CelluloidMainWindow *wnd) { if(!gtk_widget_get_realized(GTK_WIDGET(wnd))) { GSettings *settings = g_settings_new(CONFIG_WIN_STATE); CelluloidMainWindowPrivate *priv = get_private(wnd); gint width = g_settings_get_int(settings, "width"); gint height = g_settings_get_int(settings, "height"); gboolean maximized = g_settings_get_boolean(settings, "maximized"); gint handle_pos; gboolean controls_visible; gdouble volume; gboolean loop; priv->playlist_width = g_settings_get_int(settings, "playlist-width"); priv->playlist_visible = g_settings_get_boolean(settings, "show-playlist"); controls_visible = g_settings_get_boolean(settings, "show-controls"); volume = g_settings_get_double(settings, "volume"); loop = g_settings_get_boolean(settings, "loop-playlist"); handle_pos = width-(priv->playlist_visible?priv->playlist_width:0); g_object_set( priv->control_box, "volume", volume, "loop", loop, NULL); gtk_widget_set_visible(priv->control_box, controls_visible); gtk_widget_set_visible(priv->playlist, priv->playlist_visible); gtk_window_resize(GTK_WINDOW(wnd), width, height); gtk_paned_set_position (GTK_PANED(priv->vid_area_paned), handle_pos); if(maximized) { gtk_window_maximize(GTK_WINDOW(wnd)); } g_clear_object(&settings); } else { g_critical( "Attempted to call " "celluloid_main_window_load_state() " "on realized window" ); } } void celluloid_main_window_update_track_list( CelluloidMainWindow *wnd, const GPtrArray *track_list ) { CelluloidMainWindowPrivate *priv = get_private(wnd); priv->track_list = track_list; celluloid_video_area_update_track_list (CELLULOID_VIDEO_AREA(priv->vid_area), track_list); if(celluloid_main_window_get_csd_enabled(wnd)) { celluloid_header_bar_update_track_list (CELLULOID_HEADER_BAR(priv->header_bar), track_list); } else { GtkApplication *app; GMenu *menu; app = gtk_window_get_application(GTK_WINDOW(wnd)); menu = G_MENU(gtk_application_get_menubar(app)); if(menu) { g_menu_remove_all(menu); celluloid_menu_build_full (menu, track_list, priv->disc_list); } } } void celluloid_main_window_update_disc_list( CelluloidMainWindow *wnd, const GPtrArray *disc_list ) { CelluloidMainWindowPrivate *priv = get_private(wnd); priv->disc_list = disc_list; if(celluloid_main_window_get_csd_enabled(wnd)) { celluloid_header_bar_update_disc_list (CELLULOID_HEADER_BAR(priv->header_bar), disc_list); celluloid_video_area_update_disc_list (CELLULOID_VIDEO_AREA(priv->vid_area), disc_list); } else { GtkApplication *app; GMenu *menu; app = gtk_window_get_application(GTK_WINDOW(wnd)); menu = G_MENU(gtk_application_get_menubar(app)); if(menu) { g_menu_remove_all(menu); celluloid_menu_build_full (menu, priv->track_list, disc_list); } } } void celluloid_main_window_resize_video_area( CelluloidMainWindow *wnd, gint width, gint height ) { /* As of GNOME 3.36, attempting to resize the window while it is * maximized will cause the UI to stop rendering. Resizing while * fullscreen is unaffected, but it doesn't make sense to resize there * either. */ if( !get_private(wnd)->fullscreen && !gtk_window_is_maximized(GTK_WINDOW(wnd)) ) { CelluloidMainWindowPrivate *priv = get_private(wnd); g_signal_connect( priv->vid_area, "size-allocate", G_CALLBACK(resize_video_area_finalize), wnd ); priv->resize_target[0] = width; priv->resize_target[1] = height; resize_to_target(wnd); /* The size may not change, so this is needed to ensure that * resize_video_area_finalize() will be called so that the event handler * will be disconnected. */ gtk_widget_queue_allocate(priv->vid_area); } } void celluloid_main_window_enable_csd(CelluloidMainWindow *wnd) { CelluloidMainWindowPrivate *priv = get_private(wnd); priv->csd = TRUE; gtk_window_set_titlebar(GTK_WINDOW(wnd), priv->header_bar); gtk_window_set_title(GTK_WINDOW(wnd), g_get_application_name()); } gboolean celluloid_main_window_get_csd_enabled(CelluloidMainWindow *wnd) { return get_private(wnd)->csd; } void celluloid_main_window_set_playlist_visible( CelluloidMainWindow *wnd, gboolean visible ) { CelluloidMainWindowPrivate *priv = get_private(wnd); if(visible != priv->playlist_visible && !priv->fullscreen) { GdkWindow *gdk_window; GdkWindowState window_state; gboolean resize; gint handle_pos; gint width; gint height; gdk_window = gtk_widget_get_window(GTK_WIDGET(wnd)); window_state = gdk_window_get_state(gdk_window); resize = window_state & ( GDK_WINDOW_STATE_TOP_RESIZABLE | GDK_WINDOW_STATE_RIGHT_RESIZABLE | GDK_WINDOW_STATE_BOTTOM_RESIZABLE | GDK_WINDOW_STATE_LEFT_RESIZABLE ); handle_pos = gtk_paned_get_position (GTK_PANED(priv->vid_area_paned)); gtk_window_get_size(GTK_WINDOW(wnd), &width, &height); if(priv->playlist_first_toggle && visible) { gint new_pos = width-(resize?0:priv->playlist_width); gtk_paned_set_position (GTK_PANED(priv->vid_area_paned), new_pos); } else if(!visible) { priv->playlist_width = width-handle_pos; } priv->playlist_visible = visible; gtk_widget_set_visible(priv->playlist, visible); if(resize) { gint new_width; new_width = visible? width+priv->playlist_width: handle_pos; gtk_window_resize( GTK_WINDOW(wnd), new_width, height ); } priv->playlist_first_toggle = FALSE; } } gboolean celluloid_main_window_get_playlist_visible(CelluloidMainWindow *wnd) { return gtk_widget_get_visible(GTK_WIDGET(get_private(wnd)->playlist)); } void celluloid_main_window_set_controls_visible( CelluloidMainWindow *wnd, gboolean visible ) { GSettings *settings = g_settings_new(CONFIG_WIN_STATE); CelluloidMainWindowPrivate *priv = get_private(wnd); const gboolean floating = priv->use_floating_controls; gtk_widget_set_visible (GTK_WIDGET(priv->control_box), visible && !floating); g_settings_set_boolean (settings, "show-controls", visible); g_clear_object(&settings); } gboolean celluloid_main_window_get_controls_visible(CelluloidMainWindow *wnd) { return gtk_widget_get_visible(GTK_WIDGET(get_private(wnd)->control_box)); } celluloid-0.20/src/celluloid-main-window.h000066400000000000000000000057651373135401300205670ustar00rootroot00000000000000/* * Copyright (c) 2014-2019 gnome-mpv * * This file is part of Celluloid. * * Celluloid is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Celluloid is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Celluloid. If not, see . */ #ifndef MAIN_WINDOW_H #define MAIN_WINDOW_H #include #include #include #include "celluloid-playlist-widget.h" #include "celluloid-control-box.h" #include "celluloid-video-area.h" G_BEGIN_DECLS #define CELLULOID_TYPE_MAIN_WINDOW (celluloid_main_window_get_type ()) G_DECLARE_DERIVABLE_TYPE(CelluloidMainWindow, celluloid_main_window, CELLULOID, MAIN_WINDOW, GtkApplicationWindow) struct _CelluloidMainWindowClass { GtkApplicationWindowClass parent_class; }; GtkWidget * celluloid_main_window_new(GtkApplication *app, gboolean always_floating); CelluloidPlaylistWidget * celluloid_main_window_get_playlist(CelluloidMainWindow *wnd); CelluloidControlBox * celluloid_main_window_get_control_box(CelluloidMainWindow *wnd); CelluloidVideoArea * celluloid_main_window_get_video_area(CelluloidMainWindow *wnd); void celluloid_main_window_set_use_floating_controls( CelluloidMainWindow *wnd, gboolean floating ); gboolean celluloid_main_window_get_use_floating_controls(CelluloidMainWindow *wnd); void celluloid_main_window_set_fullscreen( CelluloidMainWindow *wnd, gboolean fullscreen ); gboolean celluloid_main_window_get_fullscreen(CelluloidMainWindow *wnd); void celluloid_main_window_toggle_fullscreen(CelluloidMainWindow *wnd); void celluloid_main_window_reset(CelluloidMainWindow *wnd); void celluloid_main_window_save_state(CelluloidMainWindow *wnd); void celluloid_main_window_load_state(CelluloidMainWindow *wnd); void celluloid_main_window_update_track_list( CelluloidMainWindow *wnd, const GPtrArray *track_list ); void celluloid_main_window_update_disc_list( CelluloidMainWindow *wnd, const GPtrArray *disc_list ); void celluloid_main_window_resize_video_area( CelluloidMainWindow *wnd, gint width, gint height ); void celluloid_main_window_enable_csd(CelluloidMainWindow *wnd); gboolean celluloid_main_window_get_csd_enabled(CelluloidMainWindow *wnd); void celluloid_main_window_set_playlist_visible( CelluloidMainWindow *wnd, gboolean visible ); gboolean celluloid_main_window_get_playlist_visible(CelluloidMainWindow *wnd); void celluloid_main_window_set_controls_visible( CelluloidMainWindow *wnd, gboolean visible ); gboolean celluloid_main_window_get_controls_visible(CelluloidMainWindow *wnd); G_END_DECLS #endif celluloid-0.20/src/celluloid-main.c000066400000000000000000000022321373135401300172370ustar00rootroot00000000000000/* * Copyright (c) 2014-2019 gnome-mpv * * This file is part of Celluloid. * * Celluloid is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Celluloid is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Celluloid. If not, see . */ #include #include #include #include "celluloid-application.h" #include "celluloid-def.h" int main(int argc, char **argv) { GApplicationFlags flags; CelluloidApplication *app; gint status; flags = G_APPLICATION_HANDLES_COMMAND_LINE|G_APPLICATION_HANDLES_OPEN; app = celluloid_application_new(APP_ID, flags); status = g_application_run(G_APPLICATION(app), argc, argv); g_object_unref(app); return status; } celluloid-0.20/src/celluloid-menu.c000066400000000000000000000241061373135401300172630ustar00rootroot00000000000000/* * Copyright (c) 2015-2020 gnome-mpv * * This file is part of Celluloid. * * Celluloid is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Celluloid is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Celluloid. If not, see . */ #include #include #include #include #include "celluloid-menu.h" #include "celluloid-common.h" static void split_track_list( const GPtrArray *track_list, GPtrArray **audio_tracks, GPtrArray **video_tracks, GPtrArray **subtitle_tracks ); static GMenu * build_menu_from_track_list( const GPtrArray *list, const gchar *action, const gchar *load_action ); static GMenu * build_video_track_menu(const GPtrArray *list); static GMenu * build_audio_track_menu(const GPtrArray *list); static GMenu * build_subtitle_track_menu(const GPtrArray *list); static GMenu * build_disc_menu(const GPtrArray *disc_list); static void split_track_list( const GPtrArray *track_list, GPtrArray **audio_tracks, GPtrArray **video_tracks, GPtrArray **subtitle_tracks ) { guint track_list_len = track_list?track_list->len:0; g_assert(audio_tracks && video_tracks && subtitle_tracks); /* The contents of these array are shallow-copied from track_list and * therefore only the container should be freed. */ *audio_tracks = g_ptr_array_new(); *video_tracks = g_ptr_array_new(); *subtitle_tracks = g_ptr_array_new(); for(guint i = 0; i < track_list_len; i++) { CelluloidTrack *track = g_ptr_array_index(track_list, i); switch(track->type) { case TRACK_TYPE_AUDIO: g_ptr_array_add(*audio_tracks, track); break; case TRACK_TYPE_VIDEO: g_ptr_array_add(*video_tracks, track); break; case TRACK_TYPE_SUBTITLE: g_ptr_array_add(*subtitle_tracks, track); break; default: g_assert_not_reached(); break; } } } static GMenu * build_menu_from_track_list( const GPtrArray *list, const gchar *action, const gchar *load_action ) { GMenu *menu = g_menu_new(); const glong max_len = 32; gchar *detailed_action; g_assert(list); detailed_action = g_strdup_printf("%s(@x 0)", action); g_menu_append(menu, _("None"), detailed_action); g_free(detailed_action); for(guint i = 0; i < list->len; i++) { CelluloidTrack *entry; glong entry_title_len; gchar *entry_title; gchar *title; entry = g_ptr_array_index(list, i); /* For simplicity, also dup the default string used when the * track has no title. */ entry_title = g_strdup(entry->title?:_("Unknown")); /* Maximum number of bytes per UTF-8 character is 4 */ entry_title_len = g_utf8_strlen(entry_title, 4*(max_len+1)); if(entry_title_len > max_len) { /* Truncate the string */ *(g_utf8_offset_to_pointer(entry_title, max_len)) = '\0'; } detailed_action = g_strdup_printf( "%s(@x %" G_GINT64_FORMAT ")", action, entry->id ); /* Ellipsize the title if it's longer than max_len */ title = g_strdup_printf( entry->lang? "%s%s (%s)":"%s%s", entry_title, (entry_title_len > max_len)? "…":"", entry->lang ); g_menu_append(menu, title, detailed_action); g_free(detailed_action); g_free(entry_title); g_free(title); } if(load_action) { g_menu_append(menu, _("_Load External…"), load_action); } return menu; } static GMenu * build_video_track_menu(const GPtrArray *list) { return build_menu_from_track_list ( list, "win.set-video-track", "win.load-track('video-add')" ); } static GMenu * build_audio_track_menu(const GPtrArray *list) { return build_menu_from_track_list ( list, "win.set-audio-track", "win.load-track('audio-add')" ); } static GMenu * build_subtitle_track_menu(const GPtrArray *list) { return build_menu_from_track_list ( list, "win.set-subtitle-track", "win.load-track('sub-add')" ); } static GMenu * build_disc_menu(const GPtrArray *disc_list) { GMenu *menu = g_menu_new(); for(guint i = 0; disc_list && i < disc_list->len; i++) { CelluloidDisc *disc = g_ptr_array_index(disc_list, i); gchar *action = g_strdup_printf ("win.open(('%s', false))", disc->uri); g_menu_append(menu, disc->label, action); g_free(action); } if(!disc_list || disc_list->len == 0) { /* Disable the menu item by setting the action to something * invalid. */ g_menu_append(menu, _("No disc found"), "_"); } return menu; } void celluloid_menu_build_full( GMenu *menu, const GPtrArray *track_list, const GPtrArray *disc_list ) { GPtrArray *audio_tracks = NULL; GPtrArray *video_tracks = NULL; GPtrArray *subtitle_tracks = NULL; GMenu *video_menu = NULL; GMenu *audio_menu = NULL; GMenu *subtitle_menu = NULL; GMenu *disc_menu = NULL; split_track_list (track_list, &audio_tracks, &video_tracks, &subtitle_tracks); video_menu = build_video_track_menu(video_tracks); audio_menu = build_audio_track_menu(audio_tracks); subtitle_menu = build_subtitle_track_menu(subtitle_tracks); disc_menu = build_disc_menu(disc_list); const CelluloidMenuEntry entries[] = { CELLULOID_MENU_SUBMENU(_("_File"), NULL), CELLULOID_MENU_ITEM(_("_Open…"), "win.show-open-dialog((false, false))"), CELLULOID_MENU_ITEM(_("Open _Folder…"), "win.show-open-dialog((true, false))"), CELLULOID_MENU_ITEM(_("Open _Location…"), "win.show-open-location-dialog(false)"), CELLULOID_MENU_SUBMENU(_("Open _Disc…"), disc_menu), CELLULOID_MENU_ITEM(_("_Save Playlist"), "win.save-playlist"), CELLULOID_MENU_ITEM(_("_New Window"), "app.new-window"), CELLULOID_MENU_ITEM(_("_Quit"), "win.quit"), CELLULOID_MENU_SUBMENU(_("_Edit"), NULL), CELLULOID_MENU_ITEM(_("_Preferences"), "win.show-preferences-dialog"), CELLULOID_MENU_SUBMENU(_("_Video Track"), video_menu), CELLULOID_MENU_SUBMENU(_("_Audio Track"), audio_menu), CELLULOID_MENU_SUBMENU(_("S_ubtitle Track"), subtitle_menu), CELLULOID_MENU_SUBMENU(_("_View"), NULL), CELLULOID_MENU_ITEM(_("_Toggle Controls"), "win.toggle-controls"), CELLULOID_MENU_ITEM(_("_Toggle Playlist"), "win.toggle-playlist"), CELLULOID_MENU_ITEM(_("_Fullscreen"), "win.toggle-fullscreen"), CELLULOID_MENU_SUBMENU(_("_Help"), NULL), CELLULOID_MENU_ITEM(_("_Keyboard Shortcuts"), "win.show-shortcuts-dialog"), CELLULOID_MENU_ITEM(_("_About Celluloid"), "win.show-about-dialog"), CELLULOID_MENU_END }; celluloid_menu_build_menu(menu, entries, FALSE); g_ptr_array_free(audio_tracks, FALSE); g_ptr_array_free(video_tracks, FALSE); g_ptr_array_free(subtitle_tracks, FALSE); g_object_unref(video_menu); g_object_unref(audio_menu); g_object_unref(subtitle_menu); g_object_unref(disc_menu); } void celluloid_menu_build_menu_btn(GMenu *menu, const GPtrArray *track_list) { GPtrArray *audio_tracks = NULL; GPtrArray *video_tracks = NULL; GPtrArray *subtitle_tracks = NULL; GMenu *video_menu = NULL; GMenu *audio_menu = NULL; GMenu *subtitle_menu = NULL; split_track_list (track_list, &audio_tracks, &video_tracks, &subtitle_tracks); video_menu = build_video_track_menu(video_tracks); audio_menu = build_audio_track_menu(audio_tracks); subtitle_menu = build_subtitle_track_menu(subtitle_tracks); const CelluloidMenuEntry entries[] = { CELLULOID_MENU_SEPARATOR, CELLULOID_MENU_ITEM(_("_Toggle Controls"), "win.toggle-controls"), CELLULOID_MENU_SEPARATOR, CELLULOID_MENU_ITEM(_("_Toggle Playlist"), "win.toggle-playlist"), CELLULOID_MENU_ITEM(_("_Save Playlist"), "win.save-playlist"), CELLULOID_MENU_SEPARATOR, CELLULOID_MENU_SUBMENU(_("_Video Track"), video_menu), CELLULOID_MENU_SUBMENU(_("_Audio Track"), audio_menu), CELLULOID_MENU_SUBMENU(_("S_ubtitle Track"), subtitle_menu), CELLULOID_MENU_SEPARATOR, CELLULOID_MENU_ITEM(_("_Preferences"), "win.show-preferences-dialog"), CELLULOID_MENU_ITEM(_("_Keyboard Shortcuts"), "win.show-shortcuts-dialog"), CELLULOID_MENU_ITEM(_("_About Celluloid"), "win.show-about-dialog"), CELLULOID_MENU_END }; celluloid_menu_build_menu(menu, entries, TRUE); g_ptr_array_free(audio_tracks, FALSE); g_ptr_array_free(video_tracks, FALSE); g_ptr_array_free(subtitle_tracks, FALSE); g_object_unref(video_menu); g_object_unref(audio_menu); g_object_unref(subtitle_menu); } void celluloid_menu_build_open_btn(GMenu *menu, const GPtrArray *disc_list) { GMenu *disc_menu = build_disc_menu(disc_list); const CelluloidMenuEntry entries[] = { CELLULOID_MENU_SEPARATOR, CELLULOID_MENU_ITEM(_("_Open…"), "win.show-open-dialog((false, false))"), CELLULOID_MENU_ITEM(_("Open _Folder…"), "win.show-open-dialog((true, false))"), CELLULOID_MENU_ITEM(_("Open _Location…"), "win.show-open-location-dialog(false)"), CELLULOID_MENU_SUBMENU(_("Open _Disc"), disc_menu), CELLULOID_MENU_SEPARATOR, CELLULOID_MENU_ITEM(_("_New Window"), "app.new-window"), CELLULOID_MENU_END }; celluloid_menu_build_menu(menu, entries, TRUE); g_clear_object(&disc_menu); } void celluloid_menu_build_menu( GMenu *menu, const CelluloidMenuEntry *entries, gboolean flat ) { GMenu *current_submenu = NULL; for( gint i = 0; entries[i].title || entries[i].action || entries[i].submenu; i++ ) { const gchar *title = entries[i].title; const gchar *action = entries[i].action; const GMenu *submenu = entries[i].submenu; if(title && (action || submenu)) { GMenuItem *item; if(submenu) { item = g_menu_item_new_submenu (title, G_MENU_MODEL(submenu)); } else { item = g_menu_item_new(title, action); } g_menu_append_item(current_submenu, item); g_object_unref(item); } else { GMenuModel *model; current_submenu = g_menu_new(); model = G_MENU_MODEL(current_submenu); if(flat) { g_menu_append_section(menu, title, model); } else { g_menu_append_submenu(menu, title, model); } } } } celluloid-0.20/src/celluloid-menu.h000066400000000000000000000031761373135401300172740ustar00rootroot00000000000000/* * Copyright (c) 2015-2019 gnome-mpv * * This file is part of Celluloid. * * Celluloid is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Celluloid is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Celluloid. If not, see . */ #ifndef MENU_H #define MENU_H #include #include G_BEGIN_DECLS #define CELLULOID_MENU_ITEM(title, action) {title, action, NULL} #define CELLULOID_MENU_SUBMENU(title, submenu) {title, NULL, submenu} #define CELLULOID_MENU_SEPARATOR {NULL, "", NULL} #define CELLULOID_MENU_END {NULL, NULL, NULL} struct CelluloidMenuEntry { gchar *title; gchar *action; GMenu *submenu; }; typedef struct CelluloidMenuEntry CelluloidMenuEntry; void celluloid_menu_build_full( GMenu *celluloid_menu, const GPtrArray *track_list, const GPtrArray *disc_list ); void celluloid_menu_build_menu_btn(GMenu *celluloid_menu, const GPtrArray *track_list); void celluloid_menu_build_open_btn(GMenu *celluloid_menu, const GPtrArray *disc_list); void celluloid_menu_build_app_menu(GMenu *celluloid_menu); void celluloid_menu_build_menu( GMenu *menu, const CelluloidMenuEntry *entries, gboolean flat ); G_END_DECLS #endif celluloid-0.20/src/celluloid-metadata-cache.c000066400000000000000000000207561373135401300211470ustar00rootroot00000000000000/* * Copyright (c) 2017-2019 gnome-mpv * * This file is part of Celluloid. * * Celluloid is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Celluloid is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Celluloid. If not, see . */ #include "celluloid-metadata-cache.h" #include "celluloid-mpv.h" #include "celluloid-mpv-wrapper.h" struct _CelluloidMetadataCache { GObject parent; GHashTable *table; CelluloidMpv *fetcher; GQueue *fetch_queue; guint fetch_timeout_id; }; struct _CelluloidMetadataCacheClass { GObjectClass parent_class; }; static CelluloidMetadataCacheEntry * celluloid_metadata_cache_entry_new(void); static void celluloid_metadata_cache_entry_free(CelluloidMetadataCacheEntry *entry); static void dispose(GObject *object); static void finalize(GObject *object); static void metadata_to_ptr_array(mpv_node metadata, GPtrArray *array); static void mpv_event_notify( CelluloidMpv *mpv, gint event_id, gpointer event_data, gpointer data ); static gboolean fetch_metadata(CelluloidMetadataCache *cache); G_DEFINE_TYPE(CelluloidMetadataCache, celluloid_metadata_cache, G_TYPE_OBJECT) static CelluloidMetadataCacheEntry * celluloid_metadata_cache_entry_new(void) { CelluloidMetadataCacheEntry *entry = g_new0(CelluloidMetadataCacheEntry, 1); entry->tags = g_ptr_array_new_with_free_func ((GDestroyNotify)celluloid_metadata_entry_free); return entry; } static void celluloid_metadata_cache_entry_free(CelluloidMetadataCacheEntry *entry) { if(entry) { g_free(entry->title); g_ptr_array_free(entry->tags, TRUE); g_free(entry); } } static void dispose(GObject *object) { CelluloidMetadataCache *cache = CELLULOID_METADATA_CACHE(object); g_source_clear(&cache->fetch_timeout_id); g_clear_object(&CELLULOID_METADATA_CACHE(object)->fetcher); } static void finalize(GObject *object) { CelluloidMetadataCache *cache = CELLULOID_METADATA_CACHE(object); g_hash_table_unref(cache->table); g_queue_free_full(cache->fetch_queue, g_free); } static void metadata_to_ptr_array(mpv_node metadata, GPtrArray *array) { mpv_node_list *list = metadata.u.list; g_ptr_array_set_size(array, 0); if(metadata.format == MPV_FORMAT_NODE_MAP && list->num > 0) { for(gint i = 0; i < list->num; i++) { const gchar *key = list->keys[i]; mpv_node value = list->values[i]; if(value.format == MPV_FORMAT_STRING) { CelluloidMetadataEntry *entry; entry = celluloid_metadata_entry_new (key, value.u.string); g_ptr_array_add(array, entry); } else { g_warning( "Ignored metadata field %s " "with unexpected format %d", key, value.format ); } } } } static void mpv_event_notify( CelluloidMpv *mpv, gint event_id, gpointer event_data, gpointer data ) { if(event_id == MPV_EVENT_FILE_LOADED) { CelluloidMetadataCache *cache = data; CelluloidMetadataCacheEntry *entry = NULL; gchar *path = NULL; celluloid_mpv_get_property (mpv, "path", MPV_FORMAT_STRING, &path); g_debug("Fetched metadata for %s", path); entry = g_hash_table_lookup(cache->table, path); if(entry) { const gchar *cmd[] = {"playlist-next", "force", NULL}; gchar *media_title = NULL; mpv_node metadata; celluloid_mpv_get_property( mpv, "duration", MPV_FORMAT_DOUBLE, &entry->duration ); celluloid_mpv_get_property( mpv, "media-title", MPV_FORMAT_STRING, &media_title ); celluloid_mpv_get_property( mpv, "metadata", MPV_FORMAT_NODE, &metadata ); if(!entry->title) { entry->title = g_strdup(media_title); } metadata_to_ptr_array(metadata, entry->tags); celluloid_mpv_command(mpv, cmd); g_signal_emit_by_name(cache, "update", path); mpv_free(media_title); mpv_free_node_contents(&metadata); } mpv_free(path); } else if(event_id == MPV_EVENT_END_FILE) { mpv_event_end_file *event = event_data; if(event->reason == MPV_END_FILE_REASON_ERROR) { g_debug("Failed to fetch metadata"); } } } static void shutdown_handler(CelluloidMpv *mpv, gpointer data) { CelluloidMetadataCache *cache = data; g_clear_object(&cache->fetcher); if(!g_queue_is_empty(cache->fetch_queue)) { g_source_clear(&cache->fetch_timeout_id); cache->fetch_timeout_id = g_idle_add((GSourceFunc)fetch_metadata, cache); } } static gboolean fetch_metadata(CelluloidMetadataCache *cache) { g_assert(!cache->fetcher); cache->fetcher = celluloid_mpv_new(0); g_signal_connect( cache->fetcher, "mpv-event-notify", G_CALLBACK(mpv_event_notify), cache ); g_signal_connect( cache->fetcher, "shutdown", G_CALLBACK(shutdown_handler), cache ); celluloid_mpv_set_option_string(cache->fetcher, "ao", "null"); celluloid_mpv_set_option_string(cache->fetcher, "vo", "null"); celluloid_mpv_set_option_string(cache->fetcher, "idle", "once"); celluloid_mpv_set_option_string(cache->fetcher, "ytdl", "yes"); celluloid_mpv_initialize(cache->fetcher); for( gchar *uri = g_queue_pop_tail(cache->fetch_queue); uri; uri = g_queue_pop_tail(cache->fetch_queue) ) { g_debug("Queuing %s for metadata fetch", uri); celluloid_mpv_load_file(cache->fetcher, uri, TRUE); g_free(uri); } cache->fetch_timeout_id = 0; return G_SOURCE_REMOVE; } static void celluloid_metadata_cache_class_init(CelluloidMetadataCacheClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS(klass); object_class->dispose = dispose; object_class->finalize = finalize; g_signal_new( "update", G_TYPE_FROM_CLASS(klass), G_SIGNAL_RUN_FIRST, 0, NULL, NULL, g_cclosure_marshal_VOID__STRING, G_TYPE_NONE, 1, G_TYPE_STRING ); } static void celluloid_metadata_cache_init(CelluloidMetadataCache *cache) { cache->table = g_hash_table_new_full ( g_str_hash, g_str_equal, g_free, (GDestroyNotify) celluloid_metadata_cache_entry_free ); cache->fetcher = NULL; cache->fetch_queue = g_queue_new(); cache->fetch_timeout_id = 0; } CelluloidMetadataCache * celluloid_metadata_cache_new(void) { return g_object_new(celluloid_metadata_cache_get_type(), NULL); } void celluloid_metadata_cache_ref_entry( CelluloidMetadataCache *cache, const gchar *uri ) { celluloid_metadata_cache_lookup(cache, uri)->references++; } void celluloid_metadata_cache_unref_entry( CelluloidMetadataCache *cache, const gchar *uri ) { CelluloidMetadataCacheEntry *entry = g_hash_table_lookup(cache->table, uri); if(entry && --entry->references == 0) { g_hash_table_remove(cache->table, uri); } } void celluloid_metadata_cache_load_playlist( CelluloidMetadataCache *cache, const GPtrArray *playlist ) { CelluloidMetadataCacheEntry *entry = NULL; GHashTableIter iter; g_hash_table_iter_init(&iter, cache->table); /* First, set the refrence count for all entries to zero */ while(g_hash_table_iter_next(&iter, NULL, (gpointer)&entry)) { g_assert(entry); entry->references = 0; } /* Then ref all entries in the playlist. This sets the reference count * to the number of times the entry appears in the playlist. */ for(guint i = 0; i < playlist->len; i++) { CelluloidPlaylistEntry *entry = g_ptr_array_index(playlist, i); celluloid_metadata_cache_ref_entry(cache, entry->filename); } g_hash_table_iter_init(&iter, cache->table); /* Remove all entries that with refrence count of zero, which means that * the entry no longer exists in the playlist. */ while(g_hash_table_iter_next(&iter, NULL, (gpointer)&entry)) { g_assert(entry); if(entry->references == 0) { g_hash_table_iter_remove(&iter); } } } CelluloidMetadataCacheEntry * celluloid_metadata_cache_lookup( CelluloidMetadataCache *cache, const gchar *uri ) { CelluloidMetadataCacheEntry *entry = g_hash_table_lookup(cache->table, uri); if(!entry) { entry = celluloid_metadata_cache_entry_new(); g_hash_table_insert(cache->table, g_strdup(uri), entry); if(!cache->fetcher && g_queue_is_empty(cache->fetch_queue)) { g_source_clear(&cache->fetch_timeout_id); cache->fetch_timeout_id = g_idle_add((GSourceFunc)fetch_metadata, cache); } g_queue_push_head(cache->fetch_queue, g_strdup(uri)); } return entry; } celluloid-0.20/src/celluloid-metadata-cache.h000066400000000000000000000032351373135401300211450ustar00rootroot00000000000000/* * Copyright (c) 2017-2019 gnome-mpv * * This file is part of Celluloid. * * Celluloid is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Celluloid is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Celluloid. If not, see . */ #ifndef METADATA_CACHE #define METADATA_CACHE #include G_BEGIN_DECLS typedef struct _CelluloidMetadataCacheEntry CelluloidMetadataCacheEntry; struct _CelluloidMetadataCacheEntry { gint references; gchar *title; gdouble duration; GPtrArray *tags; }; #define CELLULOID_TYPE_METADATA_CACHE (celluloid_metadata_cache_get_type()) G_DECLARE_FINAL_TYPE(CelluloidMetadataCache, celluloid_metadata_cache, CELLULOID, METADATA_CACHE, GObject) CelluloidMetadataCache * celluloid_metadata_cache_new(void); void celluloid_metadata_cache_ref_entry( CelluloidMetadataCache *cache, const gchar *uri ); void celluloid_metadata_cache_unref_entry( CelluloidMetadataCache *cache, const gchar *uri ); void celluloid_metadata_cache_load_playlist( CelluloidMetadataCache *cache, const GPtrArray *playlist ); CelluloidMetadataCacheEntry * celluloid_metadata_cache_lookup( CelluloidMetadataCache *cache, const gchar *uri ); G_END_DECLS #endif celluloid-0.20/src/celluloid-model.c000066400000000000000000000567531373135401300174340ustar00rootroot00000000000000/* * Copyright (c) 2017-2020 gnome-mpv * * This file is part of Celluloid. * * Celluloid is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Celluloid is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Celluloid. If not, see . */ #include #include "celluloid-model.h" #include "celluloid-marshal.h" #include "celluloid-mpv-wrapper.h" enum { PROP_INVALID, PROP_AID, PROP_VID, PROP_SID, PROP_CHAPTERS, PROP_CORE_IDLE, PROP_IDLE_ACTIVE, PROP_BORDER, PROP_FULLSCREEN, PROP_PAUSE, PROP_LOOP_FILE, PROP_LOOP_PLAYLIST, PROP_SHUFFLE, PROP_DURATION, PROP_MEDIA_TITLE, PROP_PLAYLIST_COUNT, PROP_PLAYLIST_POS, PROP_SPEED, PROP_VOLUME, PROP_VOLUME_MAX, PROP_WINDOW_MAXIMIZED, PROP_WINDOW_SCALE, PROP_DISPLAY_FPS, N_PROPERTIES }; struct _CelluloidModel { CelluloidPlayer parent; gchar *extra_options; GPtrArray *metadata; GPtrArray *track_list; gboolean update_mpv_properties; gboolean resetting; gchar *aid; gchar *vid; gchar *sid; gint64 chapters; gboolean core_idle; gboolean idle_active; gboolean border; gboolean fullscreen; gboolean pause; gchar *loop_file; gchar *loop_playlist; gboolean shuffle; gdouble duration; gchar *media_title; gint64 playlist_count; gint64 playlist_pos; gdouble speed; gdouble volume; gdouble volume_max; gboolean window_maximized; gdouble window_scale; gdouble display_fps; }; struct _CelluloidModelClass { GObjectClass parent_class; }; static void set_property( GObject *object, guint property_id, const GValue *value, GParamSpec *pspec ); static void get_property( GObject *object, guint property_id, GValue *value, GParamSpec *pspec ); static void dispose(GObject *object); static void finalize(GObject *object); static void set_mpv_property( GObject *object, guint property_id, const GValue *value, GParamSpec *pspec ); static void g_value_set_by_type(GValue *gvalue, GType type, gpointer value); static GParamSpec * g_param_spec_by_type( const gchar *name, const gchar *nick, const gchar *blurb, GType type, GParamFlags flags ); static gboolean emit_frame_ready(gpointer data); static void render_update_callback(gpointer render_ctx); static void mpv_prop_change_handler( CelluloidMpv *mpv, const gchar *name, gpointer value, gpointer data ); G_DEFINE_TYPE(CelluloidModel, celluloid_model, CELLULOID_TYPE_PLAYER) static void set_property( GObject *object, guint property_id, const GValue *value, GParamSpec *pspec ) { CelluloidModel *self = CELLULOID_MODEL(object); switch(property_id) { case PROP_AID: g_free(self->aid); self->aid = g_value_dup_string(value); break; case PROP_VID: g_free(self->vid); self->vid = g_value_dup_string(value); break; case PROP_SID: g_free(self->sid); self->sid = g_value_dup_string(value); break; case PROP_CHAPTERS: self->chapters = g_value_get_int64(value); break; case PROP_CORE_IDLE: self->core_idle = g_value_get_boolean(value); if(self->resetting) { if(self->pause) { celluloid_model_pause(self); } else { celluloid_model_play(self); } self->resetting = FALSE; } break; case PROP_IDLE_ACTIVE: self->idle_active = g_value_get_boolean(value); if(self->idle_active) { g_object_notify(object, "playlist-pos"); } break; case PROP_BORDER: self->border = g_value_get_boolean(value); break; case PROP_FULLSCREEN: self->fullscreen = g_value_get_boolean(value); break; case PROP_PAUSE: self->pause = g_value_get_boolean(value); break; case PROP_LOOP_FILE: g_free(self->loop_file); self->loop_file = g_value_dup_string(value); break; case PROP_LOOP_PLAYLIST: g_free(self->loop_playlist); self->loop_playlist = g_value_dup_string(value); break; case PROP_SHUFFLE: { gboolean ready = FALSE; self->shuffle = g_value_get_boolean(value); g_object_get(self, "ready", &ready, NULL); if(ready) { if(self->shuffle) { celluloid_model_shuffle_playlist(self); } else { celluloid_model_unshuffle_playlist(self); } } } break; case PROP_DURATION: self->duration = g_value_get_double(value); break; case PROP_MEDIA_TITLE: g_free(self->media_title); self->media_title = g_value_dup_string(value); break; case PROP_PLAYLIST_COUNT: self->playlist_count = g_value_get_int64(value); break; case PROP_PLAYLIST_POS: self->playlist_pos = g_value_get_int64(value); break; case PROP_SPEED: self->speed = g_value_get_double(value); break; case PROP_VOLUME: self->volume = g_value_get_double(value); break; case PROP_VOLUME_MAX: self->volume_max = g_value_get_double(value); break; case PROP_WINDOW_MAXIMIZED: self->window_maximized = g_value_get_boolean(value); break; case PROP_WINDOW_SCALE: self->window_scale = g_value_get_double(value); break; case PROP_DISPLAY_FPS: self->display_fps = g_value_get_double(value); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID(object, property_id, pspec); break; } /* Do not propagate changes from mpv back to itself */ if(self->update_mpv_properties) { set_mpv_property(object, property_id, value, pspec); } } static void get_property( GObject *object, guint property_id, GValue *value, GParamSpec *pspec ) { CelluloidModel *self = CELLULOID_MODEL(object); switch(property_id) { case PROP_AID: g_value_set_string(value, self->aid); break; case PROP_VID: g_value_set_string(value, self->vid); break; case PROP_SID: g_value_set_string(value, self->sid); break; case PROP_CHAPTERS: g_value_set_int64(value, self->chapters); break; case PROP_CORE_IDLE: g_value_set_boolean(value, self->core_idle); break; case PROP_IDLE_ACTIVE: g_value_set_boolean(value, self->idle_active); break; case PROP_BORDER: g_value_set_boolean(value, self->border); break; case PROP_FULLSCREEN: g_value_set_boolean(value, self->fullscreen); break; case PROP_PAUSE: g_value_set_boolean(value, self->pause); break; case PROP_LOOP_FILE: g_value_set_string(value, self->loop_file); break; case PROP_LOOP_PLAYLIST: g_value_set_string(value, self->loop_playlist); break; case PROP_SHUFFLE: g_value_set_boolean(value, self->shuffle); break; case PROP_DURATION: g_value_set_double(value, self->duration); break; case PROP_MEDIA_TITLE: g_value_set_string(value, self->media_title); break; case PROP_PLAYLIST_COUNT: g_value_set_int64(value, self->playlist_count); break; case PROP_PLAYLIST_POS: g_value_set_int64(value, self->idle_active?0:self->playlist_pos); break; case PROP_SPEED: g_value_set_double(value, self->speed); break; case PROP_VOLUME: g_value_set_double(value, self->volume); break; case PROP_VOLUME_MAX: g_value_set_double(value, self->volume_max); break; case PROP_WINDOW_MAXIMIZED: g_value_set_boolean(value, self->window_maximized); break; case PROP_WINDOW_SCALE: g_value_set_double(value, self->window_scale); break; case PROP_DISPLAY_FPS: g_value_set_double(value, self->display_fps); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID(object, property_id, pspec); break; } } static void dispose(GObject *object) { CelluloidModel *model = CELLULOID_MODEL(object); CelluloidMpv *mpv = CELLULOID_MPV(model); if(mpv) { celluloid_mpv_set_render_update_callback(mpv, NULL, NULL); while(g_source_remove_by_user_data(model)); } g_free(model->extra_options); G_OBJECT_CLASS(celluloid_model_parent_class)->dispose(object); } static void finalize(GObject *object) { CelluloidModel *model = CELLULOID_MODEL(object); g_free(model->aid); g_free(model->vid); g_free(model->sid); g_free(model->loop_file); g_free(model->loop_playlist); g_free(model->media_title); G_OBJECT_CLASS(celluloid_model_parent_class)->finalize(object); } static void set_mpv_property( GObject *object, guint property_id, const GValue *value, GParamSpec *pspec ) { CelluloidModel *self = CELLULOID_MODEL(object); CelluloidMpv *mpv = CELLULOID_MPV(self); switch(property_id) { case PROP_AID: celluloid_mpv_set_property( mpv, "aid", MPV_FORMAT_STRING, &self->aid ); break; case PROP_VID: celluloid_mpv_set_property( mpv, "vid", MPV_FORMAT_STRING, &self->vid ); break; case PROP_SID: celluloid_mpv_set_property( mpv, "sid", MPV_FORMAT_STRING, &self->sid ); break; case PROP_BORDER: celluloid_mpv_set_property( mpv, "border", MPV_FORMAT_FLAG, &self->border ); break; case PROP_FULLSCREEN: celluloid_mpv_set_property( mpv, "fullscreen", MPV_FORMAT_FLAG, &self->fullscreen ); break; case PROP_PAUSE: celluloid_mpv_set_property( mpv, "pause", MPV_FORMAT_FLAG, &self->pause ); break; case PROP_LOOP_FILE: celluloid_mpv_set_property( mpv, "loop-file", MPV_FORMAT_STRING, &self->loop_file ); break; case PROP_LOOP_PLAYLIST: celluloid_mpv_set_property( mpv, "loop-playlist", MPV_FORMAT_STRING, &self->loop_playlist ); break; case PROP_MEDIA_TITLE: celluloid_mpv_set_property( mpv, "media-title", MPV_FORMAT_INT64, &self->media_title ); break; case PROP_PLAYLIST_POS: celluloid_mpv_set_property( mpv, "playlist-pos", MPV_FORMAT_INT64, &self->playlist_pos ); break; case PROP_SPEED: celluloid_mpv_set_property( mpv, "speed", MPV_FORMAT_DOUBLE, &self->speed ); break; case PROP_VOLUME: celluloid_mpv_set_property( mpv, "volume", MPV_FORMAT_DOUBLE, &self->volume ); break; case PROP_VOLUME_MAX: celluloid_mpv_set_property( mpv, "volume-max", MPV_FORMAT_DOUBLE, &self->volume_max ); break; case PROP_WINDOW_MAXIMIZED: celluloid_mpv_set_property( mpv, "window-maximized", MPV_FORMAT_FLAG, &self->window_maximized ); break; case PROP_WINDOW_SCALE: celluloid_mpv_set_property( mpv, "window-scale", MPV_FORMAT_DOUBLE, &self->window_scale ); break; case PROP_DISPLAY_FPS: celluloid_mpv_set_property( mpv, "display-fps", MPV_FORMAT_DOUBLE, &self->display_fps ); break; } } static void g_value_set_by_type(GValue *gvalue, GType type, gpointer value) { g_value_unset(gvalue); g_value_init(gvalue, type); switch(type) { case G_TYPE_STRING: g_value_set_string(gvalue, *((const gchar **)value)); break; case G_TYPE_BOOLEAN: g_value_set_boolean(gvalue, *((gboolean *)value)); break; case G_TYPE_INT64: g_value_set_int64(gvalue, *((gint64 *)value)); break; case G_TYPE_DOUBLE: g_value_set_double(gvalue, *((gdouble *)value)); break; case G_TYPE_POINTER: g_value_set_pointer(gvalue, *((gpointer *)value)); break; default: g_assert_not_reached(); break; } } static GParamSpec * g_param_spec_by_type( const gchar *name, const gchar *nick, const gchar *blurb, GType type, GParamFlags flags ) { GParamSpec *result = NULL; switch(type) { case G_TYPE_STRING: result = g_param_spec_string(name, nick, blurb, NULL, flags); break; case G_TYPE_BOOLEAN: result = g_param_spec_boolean(name, nick, blurb, FALSE, flags); break; case G_TYPE_INT64: result = g_param_spec_int64( name, nick, blurb, G_MININT64, G_MAXINT64, 0, flags ); break; case G_TYPE_DOUBLE: result = g_param_spec_double( name, nick, blurb, -G_MAXDOUBLE, G_MAXDOUBLE, 0.0, flags ); break; case G_TYPE_POINTER: result = g_param_spec_pointer(name, nick, blurb, flags); break; default: g_assert_not_reached(); break; } return result; } static gboolean emit_frame_ready(gpointer data) { CelluloidModel *model = data; guint64 flags = celluloid_mpv_render_context_update(CELLULOID_MPV(model)); if(flags&MPV_RENDER_UPDATE_FRAME) { g_signal_emit_by_name(model, "frame-ready"); } return FALSE; } static void render_update_callback(gpointer data) { g_idle_add_full( G_PRIORITY_HIGH, emit_frame_ready, data, NULL ); } static void mpv_prop_change_handler( CelluloidMpv *mpv, const gchar *name, gpointer value, gpointer data ) { if( g_strcmp0(name, "playlist") != 0 && g_strcmp0(name, "metadata") != 0 && g_strcmp0(name, "track-list") != 0 ) { GObjectClass *klass; GParamSpec *pspec; GValue gvalue = G_VALUE_INIT; klass = G_TYPE_INSTANCE_GET_CLASS (data, CELLULOID_TYPE_MODEL, GObjectClass); pspec = g_object_class_find_property(klass, name); if(pspec && value) { CELLULOID_MODEL(data)->update_mpv_properties = FALSE; g_value_set_by_type(&gvalue, pspec->value_type, value); g_object_set_property(data, name, &gvalue); CELLULOID_MODEL(data)->update_mpv_properties = TRUE; } } } static void celluloid_model_class_init(CelluloidModelClass *klass) { /* The "no" value of aid, vid, and sid cannot be represented with an * int64, so we need to observe them as string to receive notifications * for all possible values. */ const struct { const gchar *name; guint id; GType type; } mpv_props[] = { {"aid", PROP_AID, G_TYPE_STRING}, {"vid", PROP_VID, G_TYPE_STRING}, {"sid", PROP_SID, G_TYPE_STRING}, {"chapters", PROP_CHAPTERS, G_TYPE_INT64}, {"core-idle", PROP_CORE_IDLE, G_TYPE_BOOLEAN}, {"idle-active", PROP_IDLE_ACTIVE, G_TYPE_BOOLEAN}, {"border", PROP_BORDER, G_TYPE_BOOLEAN}, {"fullscreen", PROP_FULLSCREEN, G_TYPE_BOOLEAN}, {"pause", PROP_PAUSE, G_TYPE_BOOLEAN}, {"loop-file", PROP_LOOP_FILE, G_TYPE_STRING}, {"loop-playlist", PROP_LOOP_PLAYLIST, G_TYPE_STRING}, {"duration", PROP_DURATION, G_TYPE_DOUBLE}, {"media-title", PROP_MEDIA_TITLE, G_TYPE_STRING}, {"playlist-count", PROP_PLAYLIST_COUNT, G_TYPE_INT64}, {"playlist-pos", PROP_PLAYLIST_POS, G_TYPE_INT64}, {"speed", PROP_SPEED, G_TYPE_DOUBLE}, {"volume", PROP_VOLUME, G_TYPE_DOUBLE}, {"volume-max", PROP_VOLUME_MAX, G_TYPE_DOUBLE}, {"window-maximized", PROP_WINDOW_MAXIMIZED, G_TYPE_BOOLEAN}, {"window-scale", PROP_WINDOW_SCALE, G_TYPE_DOUBLE}, {"display-fps", PROP_DISPLAY_FPS, G_TYPE_DOUBLE}, {NULL, PROP_INVALID, 0} }; GObjectClass *obj_class = G_OBJECT_CLASS(klass); GParamSpec *pspec = NULL; obj_class->set_property = set_property; obj_class->get_property = get_property; obj_class->dispose = dispose; obj_class->finalize = finalize; for(int i = 0; mpv_props[i].name; i++) { pspec = g_param_spec_by_type( mpv_props[i].name, mpv_props[i].name, mpv_props[i].name, mpv_props[i].type, G_PARAM_READWRITE ); g_object_class_install_property (obj_class, mpv_props[i].id, pspec); } pspec = g_param_spec_boolean ( "shuffle", "Shuffle", "Whether or not the playlist is shuffled", FALSE, G_PARAM_READWRITE ); g_object_class_install_property(obj_class, PROP_SHUFFLE, pspec); g_signal_new( "playback-restart", G_TYPE_FROM_CLASS(klass), G_SIGNAL_RUN_FIRST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0 ); g_signal_new( "frame-ready", G_TYPE_FROM_CLASS(klass), G_SIGNAL_RUN_FIRST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0 ); } static void celluloid_model_init(CelluloidModel *model) { model->extra_options = NULL; model->metadata = NULL; model->track_list = NULL; model->update_mpv_properties = TRUE; model->resetting = FALSE; model->aid = NULL; model->vid = NULL; model->sid = NULL; model->chapters = 0; model->core_idle = FALSE; model->idle_active = FALSE; model->border = FALSE; model->fullscreen = FALSE; model->pause = TRUE; model->loop_file = NULL; model->loop_playlist = NULL; model->shuffle = FALSE; model->duration = 0.0; model->media_title = NULL; model->playlist_count = 0; model->playlist_pos = 0; model->speed = 1.0; model->volume = 1.0; model->volume_max = 100.0; model->window_maximized = FALSE; model->window_scale = 1.0; model->display_fps = 0.0; } CelluloidModel * celluloid_model_new(gint64 wid) { const GType type = celluloid_model_get_type(); CelluloidModel *model = CELLULOID_MODEL(g_object_new( type, "wid", wid, NULL )); g_signal_connect( model, "mpv-property-changed", G_CALLBACK(mpv_prop_change_handler), model ); return model; } void celluloid_model_initialize(CelluloidModel *model) { CelluloidMpv *mpv = CELLULOID_MPV(model); celluloid_mpv_initialize (mpv); celluloid_mpv_set_render_update_callback (mpv, render_update_callback, model); } void celluloid_model_reset(CelluloidModel *model) { model->resetting = TRUE; celluloid_mpv_reset(CELLULOID_MPV(model)); } void celluloid_model_quit(CelluloidModel *model) { celluloid_mpv_quit(CELLULOID_MPV(model)); } void celluloid_model_mouse(CelluloidModel *model, gint x, gint y) { gchar *x_str = g_strdup_printf("%d", x); gchar *y_str = g_strdup_printf("%d", y); const gchar *cmd[] = {"mouse", x_str, y_str, NULL}; g_debug("Set mouse location to (%s, %s)", x_str, y_str); celluloid_mpv_command_async(CELLULOID_MPV(model), cmd); g_free(x_str); g_free(y_str); } void celluloid_model_key_down(CelluloidModel *model, const gchar* keystr) { const gchar *cmd[] = {"keydown", keystr, NULL}; g_debug("Sent '%s' key down to mpv", keystr); celluloid_mpv_command_async(CELLULOID_MPV(model), cmd); } void celluloid_model_key_up(CelluloidModel *model, const gchar* keystr) { const gchar *cmd[] = {"keyup", keystr, NULL}; g_debug("Sent '%s' key up to mpv", keystr); celluloid_mpv_command_async(CELLULOID_MPV(model), cmd); } void celluloid_model_key_press(CelluloidModel *model, const gchar* keystr) { const gchar *cmd[] = {"keypress", keystr, NULL}; g_debug("Sent '%s' key press to mpv", keystr); celluloid_mpv_command_async(CELLULOID_MPV(model), cmd); } void celluloid_model_reset_keys(CelluloidModel *model) { // As of Sep 20, 2019, mpv will crash if the command doesn't have any // arguments. The empty string is there to work around the issue. const gchar *cmd[] = {"keyup", "", NULL}; g_debug("Sent global key up to mpv"); celluloid_mpv_command_async(CELLULOID_MPV(model), cmd); } void celluloid_model_play(CelluloidModel *model) { celluloid_mpv_set_property_flag(CELLULOID_MPV(model), "pause", FALSE); } void celluloid_model_pause(CelluloidModel *model) { celluloid_mpv_set_property_flag(CELLULOID_MPV(model), "pause", TRUE); } void celluloid_model_stop(CelluloidModel *model) { const gchar *cmd[] = {"stop", NULL}; celluloid_mpv_command_async(CELLULOID_MPV(model), cmd); } void celluloid_model_forward(CelluloidModel *model) { const gchar *cmd[] = {"seek", "10", NULL}; celluloid_mpv_command_async(CELLULOID_MPV(model), cmd); } void celluloid_model_rewind(CelluloidModel *model) { const gchar *cmd[] = {"seek", "-10", NULL}; celluloid_mpv_command_async(CELLULOID_MPV(model), cmd); } void celluloid_model_next_chapter(CelluloidModel *model) { const gchar *cmd[] = {"osd-msg", "cycle", "chapter", NULL}; celluloid_mpv_command_async(CELLULOID_MPV(model), cmd); } void celluloid_model_previous_chapter(CelluloidModel *model) { const gchar *cmd[] = {"osd-msg", "cycle", "chapter", "down", NULL}; celluloid_mpv_command_async(CELLULOID_MPV(model), cmd); } void celluloid_model_next_playlist_entry(CelluloidModel *model) { const gchar *cmd[] = {"osd-msg", "playlist-next", "weak", NULL}; celluloid_mpv_command_async(CELLULOID_MPV(model), cmd); } void celluloid_model_previous_playlist_entry(CelluloidModel *model) { const gchar *cmd[] = {"osd-msg", "playlist-prev", "weak", NULL}; celluloid_mpv_command_async(CELLULOID_MPV(model), cmd); } void celluloid_model_shuffle_playlist(CelluloidModel *model) { const gchar *cmd[] = {"osd-msg", "playlist-shuffle", NULL}; celluloid_mpv_command_async(CELLULOID_MPV(model), cmd); } void celluloid_model_unshuffle_playlist(CelluloidModel *model) { const gchar *cmd[] = {"osd-msg", "playlist-unshuffle", NULL}; celluloid_mpv_command_async(CELLULOID_MPV(model), cmd); } void celluloid_model_seek(CelluloidModel *model, gdouble value) { celluloid_mpv_set_property(CELLULOID_MPV(model), "time-pos", MPV_FORMAT_DOUBLE, &value); } void celluloid_model_seek_offset(CelluloidModel *model, gdouble offset) { const gchar *cmd[] = {"seek", NULL, NULL}; gchar buf[G_ASCII_DTOSTR_BUF_SIZE]; g_ascii_dtostr(buf, G_ASCII_DTOSTR_BUF_SIZE, offset); cmd[1] = buf; celluloid_mpv_command_async(CELLULOID_MPV(model), cmd); } void celluloid_model_load_audio_track(CelluloidModel *model, const gchar *filename) { celluloid_mpv_load_track (CELLULOID_MPV(model), filename, TRACK_TYPE_AUDIO); } void celluloid_model_load_video_track(CelluloidModel *model, const gchar *filename) { celluloid_mpv_load_track (CELLULOID_MPV(model), filename, TRACK_TYPE_VIDEO); } void celluloid_model_load_subtitle_track( CelluloidModel *model, const gchar *filename ) { celluloid_mpv_load_track (CELLULOID_MPV(model), filename, TRACK_TYPE_SUBTITLE); } gdouble celluloid_model_get_time_position(CelluloidModel *model) { gdouble time_pos = 0.0; if(!model->idle_active) { celluloid_mpv_get_property( CELLULOID_MPV(model), "time-pos", MPV_FORMAT_DOUBLE, &time_pos ); } /* time-pos may become negative during seeks */ return MAX(0, time_pos); } void celluloid_model_set_playlist_position(CelluloidModel *model, gint64 position) { celluloid_player_set_playlist_position (CELLULOID_PLAYER(model), position); } void celluloid_model_remove_playlist_entry(CelluloidModel *model, gint64 position) { celluloid_player_remove_playlist_entry (CELLULOID_PLAYER(model), position); } void celluloid_model_move_playlist_entry( CelluloidModel *model, gint64 src, gint64 dst ) { celluloid_player_move_playlist_entry(CELLULOID_PLAYER(model), src, dst); } void celluloid_model_load_file( CelluloidModel *model, const gchar *uri, gboolean append ) { celluloid_mpv_load(CELLULOID_MPV(model), uri, append); /* Start playing when replacing the playlist, ie. not appending, or * adding the first file to the playlist. */ if(!append || model->playlist_count == 0) { celluloid_model_play(model); } } gboolean celluloid_model_get_use_opengl_cb(CelluloidModel *model) { return celluloid_mpv_get_use_opengl_cb(CELLULOID_MPV(model)); } void celluloid_model_initialize_gl(CelluloidModel *model) { celluloid_mpv_init_gl(CELLULOID_MPV(model)); } void celluloid_model_render_frame(CelluloidModel *model, gint width, gint height) { mpv_render_context *render_ctx; render_ctx = celluloid_mpv_get_render_context(CELLULOID_MPV(model)); if(render_ctx) { gint fbo = -1; glGetIntegerv(GL_FRAMEBUFFER_BINDING, &fbo); mpv_opengl_fbo opengl_fbo = {fbo, width, height, 0}; mpv_render_param params[] = { {MPV_RENDER_PARAM_OPENGL_FBO, &opengl_fbo}, {MPV_RENDER_PARAM_FLIP_Y, &(int){1}}, {0, NULL} }; mpv_render_context_render(render_ctx, params); } } void celluloid_model_get_video_geometry( CelluloidModel *model, gint64 *width, gint64 *height ) { CelluloidMpv *mpv = CELLULOID_MPV(model); celluloid_mpv_get_property(mpv, "dwidth", MPV_FORMAT_INT64, width); celluloid_mpv_get_property(mpv, "dheight", MPV_FORMAT_INT64, height); } gchar * celluloid_model_get_current_path(CelluloidModel *model) { CelluloidMpv *mpv = CELLULOID_MPV(model); gchar *path = celluloid_mpv_get_property_string(mpv, "path"); gchar *buf = g_strdup(path); mpv_free(path); return buf; } celluloid-0.20/src/celluloid-model.h000066400000000000000000000066051373135401300174300ustar00rootroot00000000000000/* * Copyright (c) 2017-2020 gnome-mpv * * This file is part of Celluloid. * * Celluloid is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Celluloid is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Celluloid. If not, see . */ #ifndef MODEL_H #define MODEL_H #include #include "celluloid-mpv.h" #include "celluloid-player.h" G_BEGIN_DECLS #define CELLULOID_TYPE_MODEL (celluloid_model_get_type()) G_DECLARE_FINAL_TYPE(CelluloidModel, celluloid_model, CELLULOID, MODEL, CelluloidPlayer) CelluloidModel * celluloid_model_new(gint64 wid); void celluloid_model_initialize(CelluloidModel *model); void celluloid_model_reset(CelluloidModel *model); void celluloid_model_quit(CelluloidModel *model); void celluloid_model_mouse(CelluloidModel *model, gint x, gint y); void celluloid_model_key_down(CelluloidModel *model, const gchar* keystr); void celluloid_model_key_up(CelluloidModel *model, const gchar* keystr); void celluloid_model_key_press(CelluloidModel *model, const gchar* keystr); void celluloid_model_reset_keys(CelluloidModel *model); void celluloid_model_play(CelluloidModel *model); void celluloid_model_pause(CelluloidModel *model); void celluloid_model_stop(CelluloidModel *model); void celluloid_model_forward(CelluloidModel *model); void celluloid_model_rewind(CelluloidModel *model); void celluloid_model_next_chapter(CelluloidModel *model); void celluloid_model_previous_chapter(CelluloidModel *model); void celluloid_model_next_playlist_entry(CelluloidModel *model); void celluloid_model_previous_playlist_entry(CelluloidModel *model); void celluloid_model_shuffle_playlist(CelluloidModel *model); void celluloid_model_unshuffle_playlist(CelluloidModel *model); void celluloid_model_seek(CelluloidModel *model, gdouble value); void celluloid_model_seek_offset(CelluloidModel *model, gdouble offset); void celluloid_model_load_audio_track(CelluloidModel *model, const gchar *filename); void celluloid_model_load_video_track(CelluloidModel *model, const gchar *filename); void celluloid_model_load_subtitle_track( CelluloidModel *model, const gchar *filename ); gdouble celluloid_model_get_time_position(CelluloidModel *model); void celluloid_model_set_playlist_position(CelluloidModel *model, gint64 position); void celluloid_model_remove_playlist_entry(CelluloidModel *model, gint64 position); void celluloid_model_move_playlist_entry( CelluloidModel *model, gint64 src, gint64 dst ); void celluloid_model_load_file( CelluloidModel *model, const gchar *uri, gboolean append ); gboolean celluloid_model_get_use_opengl_cb(CelluloidModel *model); void celluloid_model_initialize_gl(CelluloidModel *model); void celluloid_model_render_frame(CelluloidModel *model, gint width, gint height); void celluloid_model_get_video_geometry( CelluloidModel *model, gint64 *width, gint64 *height ); gchar * celluloid_model_get_current_path(CelluloidModel *model); G_END_DECLS #endif celluloid-0.20/src/celluloid-mpv-private.h000066400000000000000000000026001373135401300205710ustar00rootroot00000000000000/* * Copyright (c) 2016-2019 gnome-mpv * * This file is part of Celluloid. * * Celluloid is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Celluloid is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Celluloid. If not, see . */ #ifndef MPV_OBJ_PRIVATE_H #define MPV_OBJ_PRIVATE_H #include G_BEGIN_DECLS typedef struct _CelluloidMpvPrivate CelluloidMpvPrivate; enum { PROP_0, PROP_WID, PROP_READY, N_PROPERTIES }; struct _CelluloidMpvPrivate { mpv_handle *mpv_ctx; mpv_render_context *render_ctx; gboolean ready; gchar *tmp_input_file; GSList *log_level_list; gboolean init_vo_config; gboolean force_opengl; gboolean use_opengl; gint64 wid; void *render_update_callback_data; void (*render_update_callback)(void *data); }; #define get_private(mpv) \ G_TYPE_INSTANCE_GET_PRIVATE(mpv, CELLULOID_TYPE_MPV, CelluloidMpvPrivate) void mpv_check_error(int status); G_END_DECLS #endif celluloid-0.20/src/celluloid-mpv-wrapper.c000066400000000000000000000132441373135401300206000ustar00rootroot00000000000000/* * Copyright (c) 2016-2019 gnome-mpv * * This file is part of Celluloid. * * Celluloid is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Celluloid is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Celluloid. If not, see . */ #include "celluloid-mpv-wrapper.h" #include "celluloid-mpv-private.h" gint celluloid_mpv_command(CelluloidMpv *mpv, const gchar **cmd) { CelluloidMpvPrivate *priv = get_private(mpv); gint rc = MPV_ERROR_UNINITIALIZED; if(priv->mpv_ctx) { rc = mpv_command(priv->mpv_ctx, cmd); } if(rc < 0) { gchar *cmd_str = g_strjoinv(" ", (gchar **)cmd); g_warning( "Failed to run mpv command \"%s\". Reason: %s.", cmd_str, mpv_error_string(rc) ); g_free(cmd_str); } return rc; } gint celluloid_mpv_command_async(CelluloidMpv *mpv, const gchar **cmd) { CelluloidMpvPrivate *priv = get_private(mpv); gint rc = MPV_ERROR_UNINITIALIZED; if(priv->mpv_ctx) { rc = mpv_command_async(priv->mpv_ctx, 0, cmd); } if(rc < 0) { gchar *cmd_str = g_strjoinv(" ", (gchar **)cmd); g_warning( "Failed to dispatch async mpv command \"%s\". " "Reason: %s.", cmd_str, mpv_error_string(rc) ); g_free(cmd_str); } return rc; } gint celluloid_mpv_command_string(CelluloidMpv *mpv, const gchar *cmd) { CelluloidMpvPrivate *priv = get_private(mpv); gint rc = MPV_ERROR_UNINITIALIZED; if(priv->mpv_ctx) { rc = mpv_command_string(priv->mpv_ctx, cmd); } if(rc < 0) { g_warning( "Failed to run mpv command string \"%s\". " "Reason: %s.", cmd, mpv_error_string(rc) ); } return rc; } gint celluloid_mpv_set_option_string( CelluloidMpv *mpv, const gchar *name, const gchar *value ) { return mpv_set_option_string(get_private(mpv)->mpv_ctx, name, value); } gint celluloid_mpv_get_property( CelluloidMpv *mpv, const gchar *name, mpv_format format, void *data ) { CelluloidMpvPrivate *priv = get_private(mpv); gint rc = MPV_ERROR_UNINITIALIZED; if(priv->mpv_ctx) { rc = mpv_get_property(priv->mpv_ctx, name, format, data); } if(rc < 0) { g_info( "Failed to retrieve property \"%s\" " "using mpv format %d. Reason: %s.", name, format, mpv_error_string(rc) ); } return rc; } gchar * celluloid_mpv_get_property_string(CelluloidMpv *mpv, const gchar *name) { CelluloidMpvPrivate *priv = get_private(mpv); gchar *value = NULL; if(priv->mpv_ctx) { value = mpv_get_property_string(priv->mpv_ctx, name); } if(!value) { g_info("Failed to retrieve property \"%s\" as string.", name); } return value; } gboolean celluloid_mpv_get_property_flag(CelluloidMpv *mpv, const gchar *name) { CelluloidMpvPrivate *priv = get_private(mpv); gboolean value = FALSE; gint rc = MPV_ERROR_UNINITIALIZED; if(priv->mpv_ctx) { rc = mpv_get_property (priv->mpv_ctx, name, MPV_FORMAT_FLAG, &value); } if(rc < 0) { g_info( "Failed to retrieve property \"%s\" as flag. " "Reason: %s.", name, mpv_error_string(rc) ); } return value; } gint celluloid_mpv_set_property( CelluloidMpv *mpv, const gchar *name, mpv_format format, void *data ) { CelluloidMpvPrivate *priv = get_private(mpv); gint rc = MPV_ERROR_UNINITIALIZED; if(priv->mpv_ctx) { rc = mpv_set_property(priv->mpv_ctx, name, format, data); } if(rc < 0) { g_info( "Failed to set property \"%s\" using mpv format %d. " "Reason: %s.", name, format, mpv_error_string(rc) ); } return rc; } gint celluloid_mpv_set_property_string( CelluloidMpv *mpv, const gchar *name, const char *data ) { CelluloidMpvPrivate *priv = get_private(mpv); gint rc = MPV_ERROR_UNINITIALIZED; if(priv->mpv_ctx) { rc = mpv_set_property_string(priv->mpv_ctx, name, data); } if(rc < 0) { g_info( "Failed to set property \"%s\" as string. Reason: %s.", name, mpv_error_string(rc) ); } return rc; } gint celluloid_mpv_set_property_flag( CelluloidMpv *mpv, const gchar *name, gboolean value ) { CelluloidMpvPrivate *priv = get_private(mpv); gint rc = MPV_ERROR_UNINITIALIZED; if(priv->mpv_ctx) { rc = mpv_set_property (priv->mpv_ctx, name, MPV_FORMAT_FLAG, &value); } if(rc < 0) { g_info( "Failed to set property \"%s\" as flag. Reason: %s.", name, mpv_error_string(rc) ); } return rc; } void celluloid_mpv_set_render_update_callback( CelluloidMpv *mpv, mpv_render_update_fn func, void *data ) { CelluloidMpvPrivate *priv = get_private(mpv); priv->render_update_callback = func; priv->render_update_callback_data = data; if(priv->render_ctx) { mpv_render_context_set_update_callback (priv->render_ctx, func, data); } } guint64 celluloid_mpv_render_context_update(CelluloidMpv *mpv) { return mpv_render_context_update(get_private(mpv)->render_ctx); } gint celluloid_mpv_load_config_file(CelluloidMpv *mpv, const gchar *filename) { return mpv_load_config_file(get_private(mpv)->mpv_ctx, filename); } gint celluloid_mpv_observe_property( CelluloidMpv *mpv, guint64 reply_userdata, const gchar *name, mpv_format format ) { return mpv_observe_property( get_private(mpv)->mpv_ctx, reply_userdata, name, format ); } gint celluloid_mpv_request_log_messages(CelluloidMpv *mpv, const gchar *min_level) { return mpv_request_log_messages(get_private(mpv)->mpv_ctx, min_level); } celluloid-0.20/src/celluloid-mpv-wrapper.h000066400000000000000000000045461373135401300206120ustar00rootroot00000000000000/* * Copyright (c) 2016-2019 gnome-mpv * * This file is part of Celluloid. * * Celluloid is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Celluloid is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Celluloid. If not, see . */ #ifndef MPV_WRAPPER_H #define MPV_WRAPPER_H #include #include #include #include "celluloid-mpv.h" gint celluloid_mpv_command(CelluloidMpv *mpv, const gchar **cmd); gint celluloid_mpv_command_async(CelluloidMpv *mpv, const gchar **cmd); gint celluloid_mpv_command_string(CelluloidMpv *mpv, const gchar *cmd); gint celluloid_mpv_set_option_string( CelluloidMpv *mpv, const gchar *name, const gchar *value ); gint celluloid_mpv_get_property( CelluloidMpv *mpv, const gchar *name, mpv_format format, void *data ); gchar * celluloid_mpv_get_property_string(CelluloidMpv *mpv, const gchar *name); gboolean celluloid_mpv_get_property_flag(CelluloidMpv *mpv, const gchar *name); gint celluloid_mpv_set_property( CelluloidMpv *mpv, const gchar *name, mpv_format format, void *data ); gint celluloid_mpv_set_property_flag( CelluloidMpv *mpv, const gchar *name, gboolean value); gint celluloid_mpv_set_property_string( CelluloidMpv *mpv, const gchar *name, const char *data ); void celluloid_mpv_set_event_callback( CelluloidMpv *mpv, void (*func)(mpv_event *, void *), void *data ); void celluloid_mpv_set_render_update_callback( CelluloidMpv *mpv, mpv_render_update_fn func, void *data ); guint64 celluloid_mpv_render_context_update(CelluloidMpv *mpv); gint celluloid_mpv_load_config_file(CelluloidMpv *mpv, const gchar *filename); gint celluloid_mpv_observe_property( CelluloidMpv *mpv, guint64 reply_userdata, const gchar *name, mpv_format format ); gint celluloid_mpv_request_log_messages(CelluloidMpv *mpv, const gchar *min_level); #endif celluloid-0.20/src/celluloid-mpv.c000066400000000000000000000412041373135401300171170ustar00rootroot00000000000000/* * Copyright (c) 2014-2020 gnome-mpv * * This file is part of Celluloid. * * Celluloid is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Celluloid is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Celluloid. If not, see . */ #include #include #include #include #include #include #include #include #include #include #include #ifdef GDK_WINDOWING_X11 #include #include #endif #ifdef GDK_WINDOWING_WAYLAND #include #include #endif #ifdef GDK_WINDOWING_WIN32 #include #include #endif #include "celluloid-mpv.h" #include "celluloid-mpv-private.h" #include "celluloid-mpv-wrapper.h" #include "celluloid-common.h" #include "celluloid-def.h" #include "celluloid-marshal.h" static void * get_proc_address(void *fn_ctx, const gchar *name); static void set_property( GObject *object, guint property_id, const GValue *value, GParamSpec *pspec ); static void get_property( GObject *object, guint property_id, GValue *value, GParamSpec *pspec ); static void dispose(GObject *object); static void finalize(GObject *object); static void wakeup_callback(void *data); static void mpv_property_changed(CelluloidMpv *mpv, const gchar *name, gpointer value); static void mpv_log_message( CelluloidMpv *mpv, mpv_log_level log_level, const gchar *prefix, const gchar *text ); static void mpv_event_notify(CelluloidMpv *mpv, gint event_id, gpointer event_data); static gboolean process_mpv_events(gpointer data); static gboolean check_mpv_version(const gchar *version); static gpointer get_wl_display(void); static gpointer get_x11_display(void); static void initialize(CelluloidMpv *mpv); static void load_file(CelluloidMpv *mpv, const gchar *uri, gboolean append); static void reset(CelluloidMpv *mpv); G_DEFINE_TYPE_WITH_PRIVATE(CelluloidMpv, celluloid_mpv, G_TYPE_OBJECT) static void * get_proc_address(void *fn_ctx, const gchar *name) { GdkDisplay *display = gdk_display_get_default(); #ifdef GDK_WINDOWING_WAYLAND if (GDK_IS_WAYLAND_DISPLAY(display)) return eglGetProcAddress(name); #endif #ifdef GDK_WINDOWING_X11 if (GDK_IS_X11_DISPLAY(display)) return (void *)(intptr_t) glXGetProcAddressARB((const GLubyte *)name); #endif #ifdef GDK_WINDOWING_WIN32 if (GDK_IS_WIN32_DISPLAY(display)) return wglGetProcAddress(name); #endif g_assert_not_reached(); return NULL; } static void set_property( GObject *object, guint property_id, const GValue *value, GParamSpec *pspec ) { CelluloidMpvPrivate *priv = get_private(CELLULOID_MPV(object)); if(property_id == PROP_WID) { priv->wid = g_value_get_int64(value); } else if(property_id == PROP_READY) { priv->ready = g_value_get_boolean(value); } else { G_OBJECT_WARN_INVALID_PROPERTY_ID(object, property_id, pspec); } } static void get_property( GObject *object, guint property_id, GValue *value, GParamSpec *pspec ) { CelluloidMpvPrivate *priv = get_private(CELLULOID_MPV(object)); if(property_id == PROP_WID) { g_value_set_int64(value, priv->wid); } else if(property_id == PROP_READY) { g_value_set_boolean(value, priv->ready); } else { G_OBJECT_WARN_INVALID_PROPERTY_ID(object, property_id, pspec); } } static void dispose(GObject *object) { CelluloidMpv *mpv = CELLULOID_MPV(object); if(get_private(mpv)->mpv_ctx) { celluloid_mpv_quit(mpv); while(g_source_remove_by_user_data(object)); } G_OBJECT_CLASS(celluloid_mpv_parent_class)->dispose(object); } static void finalize(GObject *object) { G_OBJECT_CLASS(celluloid_mpv_parent_class)->finalize(object); } static void wakeup_callback(void *data) { g_idle_add_full(G_PRIORITY_HIGH_IDLE, process_mpv_events, data, NULL); } static void mpv_property_changed(CelluloidMpv *mpv, const gchar *name, gpointer value) { g_debug("Received mpv property change event for \"%s\"", name); } static void mpv_event_notify(CelluloidMpv *mpv, gint event_id, gpointer event_data) { if(event_id == MPV_EVENT_PROPERTY_CHANGE) { mpv_event_property *prop = event_data; g_signal_emit_by_name( mpv, "mpv-property-changed", prop->name, prop->data ); } else if(event_id == MPV_EVENT_IDLE) { celluloid_mpv_set_property_flag(mpv, "pause", TRUE); } else if(event_id == MPV_EVENT_END_FILE) { GSettings *settings = g_settings_new(CONFIG_ROOT); const gchar *ignore_key = "ignore-playback-errors"; mpv_event_end_file *ef_event = event_data; if( !g_settings_get_boolean(settings, ignore_key) && ef_event->reason == MPV_END_FILE_REASON_ERROR ) { const gchar *err; gchar *msg; err = mpv_error_string(ef_event->error); msg = g_strdup_printf ( _("Playback was terminated " "abnormally. Reason: %s."), err ); celluloid_mpv_set_property_flag(mpv, "pause", TRUE); g_signal_emit_by_name(mpv, "error", msg); g_free(msg); } g_object_unref(settings); } else if(event_id == MPV_EVENT_LOG_MESSAGE) { mpv_event_log_message* message = event_data; g_signal_emit_by_name( mpv, "mpv-log-message", message->log_level, message->prefix, message->text ); } else if(event_id == MPV_EVENT_CLIENT_MESSAGE) { mpv_event_client_message *event_cmsg = event_data; gchar* msg = strnjoinv( " ", event_cmsg->args, (gsize)event_cmsg->num_args ); g_signal_emit_by_name(mpv, "message", msg); g_free(msg); } else if(event_id == MPV_EVENT_SHUTDOWN) { g_signal_emit_by_name(mpv, "shutdown"); } } static gboolean process_mpv_events(gpointer data) { CelluloidMpv *mpv = data; CelluloidMpvPrivate *priv = get_private(mpv); gboolean done = !mpv; while(!done) { mpv_event *event = priv->mpv_ctx? mpv_wait_event(priv->mpv_ctx, 0): NULL; if(event) { if( !priv->mpv_ctx || event->event_id == MPV_EVENT_SHUTDOWN || event->event_id == MPV_EVENT_NONE ) { done = TRUE; } g_signal_emit_by_name( mpv, "mpv-event-notify", event->event_id, event->data ); } else { done = TRUE; } } return FALSE; } static gboolean check_mpv_version(const gchar *version) { guint64 min_version[] = {MIN_MPV_MAJOR, MIN_MPV_MINOR, MIN_MPV_PATCH}; const guint min_version_length = G_N_ELEMENTS(min_version); gchar **tokens = NULL; gboolean done = FALSE; gboolean result = TRUE; /* Skip to the version number */ if(strncmp(version, "mpv ", 4) == 0) { tokens = g_strsplit(version+4, ".", (gint)min_version_length); } done = !tokens || g_strv_length(tokens) != min_version_length; result = !done; for(guint i = 0; i < min_version_length && !done && result; i++) { gchar *endptr = NULL; guint64 token = g_ascii_strtoull(tokens[i], &endptr, 10); /* If the token is equal to the minimum, continue checking the * rest of the tokens. If it is greater, just skip them. */ result &= !(*endptr) && (token >= min_version[i]); done = result && (token >= min_version[i]); } g_strfreev(tokens); return result; } static gpointer get_wl_display(void) { gpointer wl_display = NULL; #ifdef GDK_WINDOWING_WAYLAND GdkDisplay *display = gdk_display_get_default(); if(GDK_IS_WAYLAND_DISPLAY(display)) { wl_display = gdk_wayland_display_get_wl_display(display); } #endif return wl_display; } static gpointer get_x11_display(void) { gpointer x11_display = NULL; #ifdef GDK_WINDOWING_X11 GdkDisplay *display = gdk_display_get_default(); if(GDK_IS_X11_DISPLAY(display)) { x11_display = gdk_x11_display_get_xdisplay(display); } #endif return x11_display; } static void initialize(CelluloidMpv *mpv) { CelluloidMpvPrivate *priv = get_private(mpv); gchar *current_vo = NULL; gchar *mpv_version = NULL; if(priv->wid < 0) { g_info("Forcing --vo=libmpv"); mpv_set_option_string(priv->mpv_ctx, "vo", "libmpv"); } else if(priv->wid == 0) { g_info("Forcing --vo=null"); mpv_set_option_string(priv->mpv_ctx, "vo", "null"); } else { g_debug("Attaching mpv window to wid %#x", (guint)priv->wid); mpv_set_option(priv->mpv_ctx, "wid", MPV_FORMAT_INT64, &priv->wid); } mpv_set_wakeup_callback(priv->mpv_ctx, wakeup_callback, mpv); mpv_initialize(priv->mpv_ctx); mpv_version = celluloid_mpv_get_property_string(mpv, "mpv-version"); current_vo = celluloid_mpv_get_property_string(mpv, "current-vo"); priv->use_opengl = (!current_vo && priv->wid != 0); g_info("Using %s", mpv_version); if(!check_mpv_version(mpv_version)) { g_warning( "Minimum mpv version requirement (%d.%d.%d) not met", MIN_MPV_MAJOR, MIN_MPV_MINOR, MIN_MPV_PATCH ); } priv->ready = TRUE; g_object_notify(G_OBJECT(mpv), "ready"); mpv_free(current_vo); mpv_free(mpv_version); } static void load_file(CelluloidMpv *mpv, const gchar *uri, gboolean append) { CelluloidMpvPrivate *priv = get_private(mpv); gchar *path = get_path_from_uri(uri); const gchar *load_cmd[] = {"loadfile", path, NULL, NULL}; gint64 playlist_count = 0; g_assert(uri); g_info( "Loading file (append=%s): %s", append?"TRUE":"FALSE", uri); mpv_get_property( priv->mpv_ctx, "playlist-count", MPV_FORMAT_INT64, &playlist_count ); load_cmd[2] = (append && playlist_count > 0)?"append":"replace"; if(!append) { celluloid_mpv_set_property_flag(mpv, "pause", FALSE); } g_assert(priv->mpv_ctx); mpv_request_event(priv->mpv_ctx, MPV_EVENT_END_FILE, 0); mpv_command(priv->mpv_ctx, load_cmd); mpv_request_event(priv->mpv_ctx, MPV_EVENT_END_FILE, 1); g_free(path); } static void reset(CelluloidMpv *mpv) { CelluloidMpvPrivate *priv = get_private(mpv); gchar *loop_file_str; gchar *loop_playlist_str; gboolean loop_file; gboolean loop_playlist; loop_file_str = celluloid_mpv_get_property_string (mpv, "loop-file"); loop_playlist_str = celluloid_mpv_get_property_string (mpv, "loop-playlist"); loop_file = (g_strcmp0(loop_file_str, "inf") == 0); loop_playlist = (g_strcmp0(loop_playlist_str, "inf") == 0); mpv_free(loop_file_str); mpv_free(loop_playlist_str); /* Reset priv->mpv_ctx */ priv->ready = FALSE; g_object_notify(G_OBJECT(mpv), "ready"); celluloid_mpv_command_string(mpv, "write-watch-later-config"); celluloid_mpv_quit(mpv); priv->mpv_ctx = mpv_create(); celluloid_mpv_initialize(mpv); celluloid_mpv_set_render_update_callback ( mpv, priv->render_update_callback, priv->render_update_callback_data ); celluloid_mpv_set_property_string (mpv, "loop-file", loop_file?"inf":"no"); celluloid_mpv_set_property_string (mpv, "loop-playlist", loop_playlist?"inf":"no"); } static void mpv_log_message( CelluloidMpv *mpv, mpv_log_level log_level, const gchar *prefix, const gchar *text ) { } static void celluloid_mpv_class_init(CelluloidMpvClass* klass) { GObjectClass *obj_class = G_OBJECT_CLASS(klass); GParamSpec *pspec = NULL; klass->mpv_event_notify = mpv_event_notify; klass->mpv_log_message = mpv_log_message; klass->mpv_property_changed = mpv_property_changed; klass->initialize = initialize; klass->load_file = load_file; klass->reset = reset; obj_class->set_property = set_property; obj_class->get_property = get_property; obj_class->dispose = dispose; obj_class->finalize = finalize; pspec = g_param_spec_int64 ( "wid", "WID", "The ID of the window to attach to", G_MININT64, G_MAXINT64, -1, G_PARAM_CONSTRUCT_ONLY|G_PARAM_READWRITE ); g_object_class_install_property(obj_class, PROP_WID, pspec); pspec = g_param_spec_boolean ( "ready", "Ready", "Whether mpv is initialized and ready to receive commands", FALSE, G_PARAM_READABLE ); g_object_class_install_property(obj_class, PROP_READY, pspec); g_signal_new( "error", G_TYPE_FROM_CLASS(klass), G_SIGNAL_RUN_FIRST, 0, NULL, NULL, g_cclosure_marshal_VOID__STRING, G_TYPE_NONE, 1, G_TYPE_STRING ); g_signal_new( "mpv-event-notify", G_TYPE_FROM_CLASS(klass), G_SIGNAL_RUN_FIRST, G_STRUCT_OFFSET(CelluloidMpvClass, mpv_event_notify), NULL, NULL, g_cclosure_gen_marshal_VOID__INT_POINTER, G_TYPE_NONE, 2, G_TYPE_INT, G_TYPE_POINTER ); g_signal_new( "mpv-log-message", G_TYPE_FROM_CLASS(klass), G_SIGNAL_RUN_FIRST, G_STRUCT_OFFSET(CelluloidMpvClass, mpv_log_message), NULL, NULL, g_cclosure_gen_marshal_VOID__INT_STRING_STRING, G_TYPE_NONE, 3, G_TYPE_INT, G_TYPE_STRING, G_TYPE_STRING ); g_signal_new( "mpv-property-changed", G_TYPE_FROM_CLASS(klass), G_SIGNAL_RUN_FIRST, G_STRUCT_OFFSET(CelluloidMpvClass, mpv_property_changed), NULL, NULL, g_cclosure_gen_marshal_VOID__STRING_POINTER, G_TYPE_NONE, 2, G_TYPE_STRING, G_TYPE_POINTER ); g_signal_new( "message", G_TYPE_FROM_CLASS(klass), G_SIGNAL_RUN_FIRST, 0, NULL, NULL, g_cclosure_marshal_VOID__STRING, G_TYPE_NONE, 1, G_TYPE_STRING ); g_signal_new( "window-resize", G_TYPE_FROM_CLASS(klass), G_SIGNAL_RUN_FIRST, 0, NULL, NULL, g_cclosure_gen_marshal_VOID__INT64_INT64, G_TYPE_NONE, 2, G_TYPE_INT64, G_TYPE_INT64 ); g_signal_new( "window-move", G_TYPE_FROM_CLASS(klass), G_SIGNAL_RUN_FIRST, 0, NULL, NULL, g_cclosure_gen_marshal_VOID__BOOLEAN_BOOLEAN_POINTER_POINTER, G_TYPE_NONE, 4, G_TYPE_BOOLEAN, G_TYPE_BOOLEAN, G_TYPE_POINTER, G_TYPE_POINTER ); g_signal_new( "shutdown", G_TYPE_FROM_CLASS(klass), G_SIGNAL_RUN_FIRST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0 ); } static void celluloid_mpv_init(CelluloidMpv *mpv) { CelluloidMpvPrivate *priv = get_private(mpv); setlocale(LC_NUMERIC, "C"); priv->mpv_ctx = mpv_create(); priv->render_ctx = NULL; priv->ready = FALSE; priv->init_vo_config = TRUE; priv->use_opengl = FALSE; priv->wid = -1; priv->render_update_callback_data = NULL; priv->render_update_callback = NULL; } CelluloidMpv * celluloid_mpv_new(gint64 wid) { return CELLULOID_MPV(g_object_new(celluloid_mpv_get_type(), "wid", wid, NULL)); } inline mpv_render_context * celluloid_mpv_get_render_context(CelluloidMpv *mpv) { return get_private(mpv)->render_ctx; } inline gboolean celluloid_mpv_get_use_opengl_cb(CelluloidMpv *mpv) { return get_private(mpv)->use_opengl; } void celluloid_mpv_initialize(CelluloidMpv *mpv) { CELLULOID_MPV_GET_CLASS(mpv)->initialize(mpv); } void celluloid_mpv_init_gl(CelluloidMpv *mpv) { CelluloidMpvPrivate *priv = get_private(mpv); mpv_opengl_init_params init_params = {.get_proc_address = get_proc_address}; mpv_render_param params[] = { {MPV_RENDER_PARAM_API_TYPE, MPV_RENDER_API_TYPE_OPENGL}, {MPV_RENDER_PARAM_OPENGL_INIT_PARAMS, &init_params}, {MPV_RENDER_PARAM_WL_DISPLAY, get_wl_display()}, {MPV_RENDER_PARAM_X11_DISPLAY, get_x11_display()}, {0, NULL} }; gint rc = mpv_render_context_create( &priv->render_ctx, priv->mpv_ctx, params ); if(rc >= 0) { g_debug("Initialized render context"); } else { g_critical("Failed to initialize render context"); } } void celluloid_mpv_reset(CelluloidMpv *mpv) { CELLULOID_MPV_GET_CLASS(mpv)->reset(mpv); } void celluloid_mpv_quit(CelluloidMpv *mpv) { CelluloidMpvPrivate *priv = get_private(mpv); g_info("Terminating mpv"); celluloid_mpv_command_string(mpv, "quit"); if(priv->render_ctx) { g_debug("Uninitializing render context"); mpv_render_context_free(priv->render_ctx); priv->render_ctx = NULL; } g_assert(priv->mpv_ctx); mpv_terminate_destroy(priv->mpv_ctx); priv->mpv_ctx = NULL; } void celluloid_mpv_load_track(CelluloidMpv *mpv, const gchar *uri, TrackType type) { const gchar *cmd[3] = {NULL}; gchar *path = g_filename_from_uri(uri, NULL, NULL); switch(type) { case TRACK_TYPE_AUDIO: cmd[0] = "audio-add"; break; case TRACK_TYPE_VIDEO: cmd[0] = "video-add"; break; case TRACK_TYPE_SUBTITLE: cmd[0] = "sub-add"; break; default: g_assert_not_reached(); break; } cmd[1] = path?:uri; g_debug("Loading external track %s with type %d", cmd[1], type); celluloid_mpv_command(mpv, cmd); g_free(path); } void celluloid_mpv_load_file(CelluloidMpv *mpv, const gchar *uri, gboolean append) { CELLULOID_MPV_GET_CLASS(mpv)->load_file(mpv, uri, append); } void celluloid_mpv_load(CelluloidMpv *mpv, const gchar *uri, gboolean append) { const gchar *subtitle_exts[] = SUBTITLE_EXTS; if(extension_matches(uri, subtitle_exts)) { celluloid_mpv_load_track(mpv, uri, TRACK_TYPE_SUBTITLE); } else { celluloid_mpv_load_file(mpv, uri, append); } } celluloid-0.20/src/celluloid-mpv.h000066400000000000000000000042271373135401300171300ustar00rootroot00000000000000/* * Copyright (c) 2014-2019 gnome-mpv * * This file is part of Celluloid. * * Celluloid is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Celluloid is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Celluloid. If not, see . */ #ifndef MPV_H #define MPV_H #include #include #include #include #include "celluloid-common.h" G_BEGIN_DECLS #define CELLULOID_TYPE_MPV (celluloid_mpv_get_type()) G_DECLARE_DERIVABLE_TYPE(CelluloidMpv, celluloid_mpv, CELLULOID, MPV, GObject) struct _CelluloidMpvClass { GObjectClass parent_class; void (*mpv_event_notify)( CelluloidMpv *mpv, gint event_id, gpointer event_data ); void (*mpv_log_message)( CelluloidMpv *mpv, mpv_log_level log_level, const gchar *prefix, const gchar *text ); void (*mpv_property_changed)( CelluloidMpv *mpv, const gchar *name, gpointer value ); void (*initialize)(CelluloidMpv *mpv); void (*load_file)(CelluloidMpv *mpv, const gchar *uri, gboolean append); void (*reset)(CelluloidMpv *mpv); }; CelluloidMpv * celluloid_mpv_new(gint64 wid); mpv_render_context * celluloid_mpv_get_render_context(CelluloidMpv *mpv); gboolean celluloid_mpv_get_use_opengl_cb(CelluloidMpv *mpv); void celluloid_mpv_initialize(CelluloidMpv *mpv); void celluloid_mpv_init_gl(CelluloidMpv *mpv); void celluloid_mpv_reset(CelluloidMpv *mpv); void celluloid_mpv_quit(CelluloidMpv *mpv); void celluloid_mpv_load_track(CelluloidMpv *mpv, const gchar *uri, TrackType type); void celluloid_mpv_load_file(CelluloidMpv *mpv, const gchar *uri, gboolean append); void celluloid_mpv_load(CelluloidMpv *mpv, const gchar *uri, gboolean append); G_END_DECLS #endif celluloid-0.20/src/celluloid-open-location-dialog.c000066400000000000000000000130521373135401300223210ustar00rootroot00000000000000/* * Copyright (c) 2014-2020 gnome-mpv * * This file is part of Celluloid. * * Celluloid is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Celluloid is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Celluloid. If not, see . */ #include #include #include "celluloid-open-location-dialog.h" #include "celluloid-main-window.h" struct _CelluloidOpenLocationDialog { GtkDialog parent_instance; GtkWidget *content_area; GtkWidget *content_box; GtkWidget *loc_label; GtkWidget *loc_entry; }; struct _CelluloidOpenLocationDialogClass { GtkDialogClass parent_class; }; G_DEFINE_TYPE(CelluloidOpenLocationDialog, celluloid_open_location_dialog, GTK_TYPE_DIALOG) static gboolean key_press_handler (GtkWidget *widget, GdkEventKey *event) { guint keyval = event->keyval; guint state = event->state; const guint mod_mask = GDK_MODIFIER_MASK &~(GDK_SHIFT_MASK |GDK_LOCK_MASK |GDK_MOD2_MASK |GDK_MOD3_MASK |GDK_MOD4_MASK |GDK_MOD5_MASK); if((state&mod_mask) == 0 && keyval == GDK_KEY_Return) { gtk_dialog_response(GTK_DIALOG(widget), GTK_RESPONSE_ACCEPT); } return GTK_WIDGET_CLASS(celluloid_open_location_dialog_parent_class) ->key_press_event (widget, event); } static GtkClipboard * get_clipboard(CelluloidOpenLocationDialog *dlg) { const gchar *const clipboard_names[] = {"CLIPBOARD", "PRIMARY", NULL}; GtkClipboard *clipboard = NULL; for(gint i = 0; clipboard_names[i] && !clipboard; i++) { GdkAtom atom = gdk_atom_intern(clipboard_names[i], FALSE); clipboard = gtk_clipboard_get(atom); if(!gtk_clipboard_wait_is_text_available(clipboard)) { clipboard = NULL; } } return clipboard; } static void clipboard_text_received_handler( GtkClipboard *clipboard, const gchar *text, gpointer data ) { CelluloidOpenLocationDialog *dlg = data; if(text && *text && (g_path_is_absolute(text) || strstr(text, "://") != NULL)) { gtk_entry_set_text(GTK_ENTRY(dlg->loc_entry), text); gtk_editable_select_region(GTK_EDITABLE(dlg->loc_entry), 0, -1); } g_object_unref(dlg); } static void load_text_from_clipboard(CelluloidOpenLocationDialog *dlg) { g_object_ref(dlg); gtk_clipboard_request_text( get_clipboard(dlg), clipboard_text_received_handler, dlg ); } static void celluloid_open_location_dialog_class_init(CelluloidOpenLocationDialogClass *klass) { GtkWidgetClass *wid_class = GTK_WIDGET_CLASS(klass); wid_class->key_press_event = key_press_handler; } static void celluloid_open_location_dialog_init(CelluloidOpenLocationDialog *dlg) { GdkGeometry geom; gboolean use_header_bar = TRUE; geom.max_width = G_MAXINT; geom.max_height = 0; dlg->content_box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6); dlg->content_area = gtk_dialog_get_content_area(GTK_DIALOG(dlg)); dlg->loc_label = gtk_label_new(_("Location:")); dlg->loc_entry = gtk_entry_new(); g_object_get(G_OBJECT(dlg), "use-header-bar", &use_header_bar, NULL); gtk_dialog_add_buttons( GTK_DIALOG(dlg), _("_Cancel"), GTK_RESPONSE_REJECT, _("_Open"), GTK_RESPONSE_ACCEPT, NULL ); gtk_window_set_geometry_hints( GTK_WINDOW(dlg), GTK_WIDGET(dlg), &geom, GDK_HINT_MAX_SIZE ); gtk_window_set_modal(GTK_WINDOW(dlg), 1); gtk_container_set_border_width(GTK_CONTAINER(dlg->content_area), 12); if(use_header_bar) { gtk_widget_set_margin_bottom(dlg->content_box, 12); } gtk_window_set_geometry_hints( GTK_WINDOW(dlg), GTK_WIDGET(dlg), &geom, GDK_HINT_MAX_SIZE ); gtk_container_add(GTK_CONTAINER(dlg->content_area), dlg->content_box); gtk_box_pack_start( GTK_BOX(dlg->content_box), dlg->loc_label, FALSE, FALSE, 0 ); gtk_box_pack_start( GTK_BOX(dlg->content_box), dlg->loc_entry, TRUE, TRUE, 0 ); gtk_window_set_default_size(GTK_WINDOW(dlg), 350, -1); gtk_dialog_set_default_response (GTK_DIALOG(dlg), GTK_RESPONSE_ACCEPT); } GtkWidget * celluloid_open_location_dialog_new(GtkWindow *parent, const gchar *title) { GtkWidget *dlg; GtkWidget *header_bar; gboolean csd_enabled; csd_enabled = celluloid_main_window_get_csd_enabled (CELLULOID_MAIN_WINDOW(parent)); dlg = g_object_new( celluloid_open_location_dialog_get_type(), "use-header-bar", csd_enabled, "title", title, NULL ); header_bar = gtk_dialog_get_header_bar(GTK_DIALOG(dlg)); if(header_bar) { GtkWidget *cancel_btn = gtk_dialog_get_widget_for_response (GTK_DIALOG(dlg), GTK_RESPONSE_REJECT); gtk_container_child_set( GTK_CONTAINER(header_bar), cancel_btn, "pack-type", GTK_PACK_START, NULL ); gtk_header_bar_set_show_close_button (GTK_HEADER_BAR(header_bar), FALSE); } load_text_from_clipboard(CELLULOID_OPEN_LOCATION_DIALOG(dlg)); gtk_widget_hide_on_delete(dlg); gtk_window_set_transient_for(GTK_WINDOW(dlg), parent); gtk_widget_show_all(dlg); return dlg; } const gchar * celluloid_open_location_dialog_get_string(CelluloidOpenLocationDialog *dlg) { return gtk_entry_get_text(GTK_ENTRY(dlg->loc_entry)); } guint64 celluloid_open_location_dialog_get_string_length(CelluloidOpenLocationDialog *dlg) { return gtk_entry_get_text_length(GTK_ENTRY(dlg->loc_entry)); } celluloid-0.20/src/celluloid-open-location-dialog.h000066400000000000000000000025331373135401300223300ustar00rootroot00000000000000/* * Copyright (c) 2014-2019 gnome-mpv * * This file is part of Celluloid. * * Celluloid is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Celluloid is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Celluloid. If not, see . */ #ifndef OPEN_LOCATION_DIALOG_H #define OPEN_LOCATION_DIALOG_H #include #include #include G_BEGIN_DECLS #define CELLULOID_TYPE_OPEN_LOC_DIALOG (celluloid_open_location_dialog_get_type ()) G_DECLARE_FINAL_TYPE(CelluloidOpenLocationDialog, celluloid_open_location_dialog, CELLULOID, OPEN_LOCATION_DIALOG, GtkDialog) GtkWidget * celluloid_open_location_dialog_new(GtkWindow *parent, const gchar *title); const gchar * celluloid_open_location_dialog_get_string(CelluloidOpenLocationDialog *dlg); guint64 celluloid_open_location_dialog_get_string_length(CelluloidOpenLocationDialog *dlg); G_END_DECLS #endif celluloid-0.20/src/celluloid-option-parser.c000066400000000000000000000063401373135401300211210ustar00rootroot00000000000000/* * Copyright (c) 2019 gnome-mpv * * This file is part of Celluloid. * * Celluloid is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Celluloid is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Celluloid. If not, see . */ #include #include "celluloid-option-parser.h" static gboolean eval_match(const GMatchInfo *match_info, GString *result, gpointer data); static gchar * unescape(const gchar *str); static const gchar * parse_key(const gchar *str, gchar **option); static const gchar * parse_value(const gchar *str, gchar **value); static gboolean eval_match(const GMatchInfo *match_info, GString *result, gpointer data) { gchar *match = g_match_info_fetch(match_info, 0); gchar converted = '\0'; g_assert(match && match[0] && match[1] && !match[2]); switch(match[1]) { case 'a': converted = '\a'; break; case 'b': converted = '\b'; break; case 'f': converted = '\f'; break; case 'n': converted = '\n'; break; case 'r': converted = '\r'; break; case 't': converted = '\t'; break; case 'v': converted = '\v'; break; case '\\': case '\'': case '"': case '?': converted = match[1]; break; default: g_assert_not_reached(); break; } g_string_append_c(result, converted); g_free(match); return FALSE; } static gchar * unescape(const gchar *str) { GRegex *regex = g_regex_new("\\\\.", 0, 0, NULL); gssize len = (gssize)strlen(str); gchar *result = g_regex_replace_eval (regex, str, len, 0, 0, eval_match, NULL, NULL); g_regex_unref(regex); return result; } static const gchar * parse_key(const gchar *str, gchar **option) { if(str) { const gchar *token_start = str; if(strncmp(str, "--", 2) == 0) { str += 2; } token_start = str; while(g_ascii_isalnum(*str) || *str == '-' || *str == '_') { str++; } *option = g_strndup(token_start, (gsize)(str - token_start)); } return str; } static const gchar * parse_value(const gchar *str, gchar **value) { if(str) { gchar *buf = NULL; gsize buf_len = 0; const gchar *token_start = str; gboolean escaping = FALSE; gchar quote = '\0'; if(*str == '"' || *str == '\'') { quote = *str++; } token_start = str; while( *str && (escaping || quote != *str) && (quote != '\0' || !g_ascii_isspace(*str)) ) { escaping = (*str == '\\'); str++; } if(quote != '\0') { str++; } buf_len = (gsize)(str - token_start - (quote != '\0')); buf = g_strndup(token_start, buf_len); *value = unescape(buf); g_free(buf); } return str; } const gchar * parse_option(const gchar *str, gchar **option, gchar **value) { while(str && g_ascii_isspace(*str)) { str++; } str = parse_key(str, option); if(str && *str == '=') { str = parse_value(++str, value); } return str; } celluloid-0.20/src/celluloid-option-parser.h000066400000000000000000000015601373135401300211250ustar00rootroot00000000000000/* * Copyright (c) 2019 gnome-mpv * * This file is part of Celluloid. * * Celluloid is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Celluloid is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Celluloid. If not, see . */ #ifndef OPTION_PARSER_H #define OPTION_PARSER_H G_BEGIN_DECLS const gchar * parse_option(const gchar *str, gchar **option, gchar **value); G_END_DECLS #endif celluloid-0.20/src/celluloid-player-options.c000066400000000000000000000250361373135401300213070ustar00rootroot00000000000000/* * Copyright (c) 2016-2020 gnome-mpv * * This file is part of Celluloid. * * Celluloid is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Celluloid is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Celluloid. If not, see . */ #include #include #include #include #include #include "celluloid-player-options.h" #include "celluloid-mpv.h" #include "celluloid-mpv-private.h" #include "celluloid-mpv-wrapper.h" #include "celluloid-def.h" static GdkRectangle get_monitor_geometry(CelluloidMainWindow *window); static gboolean parse_geom_token(const gchar **iter, GValue *value); static gboolean parse_dim_string( const gchar *geom_str, GdkRectangle monitor_geom, gint64 dim[2] ); static gboolean parse_pos_token_prefix(const gchar **iter, gchar **prefix); static gboolean parse_pos_token(const gchar **iter, GValue *value, gboolean *flip); static gboolean parse_pos_string(const gchar *geom_str, gboolean flip[2], GValue pos[2]); static void parse_geom_string( const gchar *geom_str, GdkRectangle monitor_geom, gboolean flip[2], GValue pos[2], gint64 dim[2] ); static gboolean get_video_dimensions(CelluloidMpv *mpv, gint64 dim[2]); static gboolean handle_window_scale(CelluloidMpv *mpv, gint64 dim[2]); static gboolean handle_autofit(CelluloidMpv *mpv, gint64 dim[2], GdkRectangle monitor_geom); static void handle_geometry(CelluloidPlayer *player, GdkRectangle monitor_geom); static void handle_msg_level(CelluloidPlayer *player); static void ready_handler(GObject *object, GParamSpec *pspec, gpointer data); static void autofit_handler(CelluloidMpv *mpv, gpointer data); static GdkRectangle get_monitor_geometry(CelluloidMainWindow *window) { GdkRectangle result; GdkWindow *gdkwindow = gtk_widget_get_window(GTK_WIDGET(window)); gint scale_factor = gdk_window_get_scale_factor(gdkwindow); GdkDisplay *display = gdk_window_get_display(gdkwindow); GdkMonitor *monitor = gdk_display_get_monitor_at_window (display, gdkwindow); gdk_monitor_get_geometry(monitor, &result); result.width /= scale_factor; result.height /= scale_factor; return result; } static gboolean parse_geom_token(const gchar **iter, GValue *value) { gchar *end = NULL; gint64 token_value = g_ascii_strtoll(*iter, &end, 10); gboolean rc = FALSE; if(end) { if(*end == '%') { g_value_init(value, G_TYPE_DOUBLE); g_value_set_double(value, (gdouble)token_value/100.0); end++; } else { g_value_init(value, G_TYPE_INT64); g_value_set_int64(value, token_value); } rc = !!end && *iter != end; *iter = end; } return rc; } static gboolean parse_dim_string( const gchar *geom_str, GdkRectangle monitor_geom, gint64 dim[2] ) { gint screen_dim[2] = {0, 0}; gdouble multiplier[2] = {-1, -1}; gchar **tokens = g_strsplit(geom_str, "x", 2); gint i = -1; dim[0] = -1; dim[1] = -1; screen_dim[0] = monitor_geom.width; screen_dim[1] = monitor_geom.height; while(tokens && tokens[++i] && i < 3) { gint value = (gint)g_ascii_strtoll(tokens[i], NULL, 0); if((i == 0 && value > 0) || i == 1) { if(tokens[i][strnlen(tokens[i], 256)-1] == '%') { multiplier[i] = value/100.0; } else if(i == 1 && multiplier[0] != -1) { multiplier[i] = multiplier[0]; } if(multiplier[i] == -1) { dim[i] = value; } else { dim[i] = (gint)(multiplier[i]*screen_dim[i]); } } } g_strfreev(tokens); return (dim[0] > 0 && dim[1] > 0); } static gboolean parse_pos_token_prefix(const gchar **iter, gchar **prefix) { const gchar *start = *iter; const gchar *end = *iter; gboolean rc = FALSE; while(*end && (*end == '+' || *end == '-')) { end++; } rc = (end-start <= 2); if(rc) { if(end-start == 2) { end--; } *prefix = g_strndup(start, (gsize)(end-start)); *iter = end; } return rc; } static gboolean parse_pos_token(const gchar **iter, GValue *value, gboolean *flip) { gchar *prefix = NULL; gboolean rc = TRUE; rc = rc && parse_pos_token_prefix(iter, &prefix); rc = rc && parse_geom_token(iter, value); *flip = (prefix && *prefix == '-'); g_free(prefix); return rc; } static gboolean parse_pos_string(const gchar *geom_str, gboolean flip[2], GValue pos[2]) { gboolean rc = TRUE; rc = rc && parse_pos_token(&geom_str, &pos[0], &flip[0]); rc = rc && parse_pos_token(&geom_str, &pos[1], &flip[1]); return rc; } static void parse_geom_string( const gchar *geom_str, GdkRectangle monitor_geom, gboolean flip[2], GValue pos[2], gint64 dim[2] ) { if(!!geom_str) { if(geom_str[0] != '+' && geom_str[0] != '-') { parse_dim_string(geom_str, monitor_geom, dim); } /* Move the beginning of the string to the 'position' section */ while(*geom_str && *geom_str != '+' && *geom_str != '-') { geom_str++; } parse_pos_string(geom_str, flip, pos); } } static gboolean get_video_dimensions(CelluloidMpv *mpv, gint64 dim[2]) { CelluloidMpvPrivate *priv = get_private(mpv); gint rc = 0; rc |= mpv_get_property(priv->mpv_ctx, "dwidth", MPV_FORMAT_INT64, &dim[0]); rc |= mpv_get_property(priv->mpv_ctx, "dheight", MPV_FORMAT_INT64, &dim[1]); return (rc >= 0); } static void ready_handler(GObject *object, GParamSpec *pspec, gpointer data) { CelluloidPlayer *player = CELLULOID_PLAYER(object); GdkRectangle monitor_geom = get_monitor_geometry(data); handle_geometry(player, monitor_geom); handle_msg_level(player); } static void autofit_handler(CelluloidMpv *mpv, gpointer data) { GSettings *settings = g_settings_new(CONFIG_ROOT); gint64 dim[2] = {0, 0}; GdkRectangle monitor_geom = get_monitor_geometry(data); if( g_settings_get_boolean(settings, "autofit-enable") && get_video_dimensions(mpv, dim) ) { handle_window_scale(mpv, dim); handle_autofit(mpv, dim, monitor_geom); } if(dim[0] > 0 && dim[1] > 0) { g_info( "Resizing window to %"G_GINT64_FORMAT"x%"G_GINT64_FORMAT, dim[0], dim[1] ); g_signal_emit_by_name(mpv, "window-resize", dim[0], dim[1]); } g_object_unref(settings); } static gboolean handle_window_scale(CelluloidMpv *mpv, gint64 dim[2]) { gchar *scale_str; gboolean scale_set; scale_str = mpv_get_property_string (get_private(mpv)->mpv_ctx, "options/window-scale"); scale_set = scale_str && *scale_str; if(scale_set) { gdouble scale; g_debug("Retrieved option --window-scale=%s", scale_str); /* This should never fail since mpv_set_option() will * refuse to set invalid values. */ scale = g_ascii_strtod(scale_str, NULL); dim[0] = (gint64)(scale*(gdouble)dim[0]); dim[1] = (gint64)(scale*(gdouble)dim[1]); } mpv_free(scale_str); return scale_set; } static gboolean handle_autofit(CelluloidMpv *mpv, gint64 dim[2], GdkRectangle monitor_geom) { CelluloidMpvPrivate *priv = get_private(mpv); gint64 autofit_dim[2] = {0, 0}; gint64 larger_dim[2] = {G_MAXINT64, G_MAXINT64}; gint64 smaller_dim[2] = {0, 0}; gchar *autofit_str = NULL; gchar *larger_str = NULL; gchar *smaller_str = NULL; gboolean autofit_set = FALSE; gboolean larger_set = FALSE; gboolean smaller_set = FALSE; gboolean updated = FALSE; autofit_str = mpv_get_property_string (priv->mpv_ctx, "options/autofit"); larger_str = mpv_get_property_string (priv->mpv_ctx, "options/autofit-larger"); smaller_str = mpv_get_property_string (priv->mpv_ctx, "options/autofit-smaller"); autofit_set = autofit_str && *autofit_str; larger_set = larger_str && *larger_str; smaller_set = smaller_str && *smaller_str; updated = (autofit_set || larger_set || smaller_set); if(autofit_set) { g_debug("Retrieved option --autofit=%s", autofit_str); parse_dim_string(autofit_str, monitor_geom, autofit_dim); } if(larger_set) { g_debug("Retrieved option --autofit-larger=%s", larger_str); parse_dim_string(larger_str, monitor_geom, larger_dim); } if(smaller_set) { g_debug("Retrieved option --autofit-smaller=%s", smaller_str); parse_dim_string(smaller_str, monitor_geom, smaller_dim); } if(updated) { gint64 orig_dim[2] = {0, 0}; gdouble ratio = 1.0; memcpy(orig_dim, dim, 2*sizeof(gint64)); autofit_dim[0] = CLAMP( autofit_dim[0], smaller_dim[0], larger_dim[0] ); autofit_dim[1] = CLAMP( autofit_dim[1], smaller_dim[1], larger_dim[1] ); dim[0] = CLAMP(orig_dim[0], autofit_dim[0], larger_dim[0]); dim[1] = CLAMP(orig_dim[1], autofit_dim[1], larger_dim[1]); ratio = MIN( (gdouble)dim[0]/(gdouble)orig_dim[0], (gdouble)dim[1]/(gdouble)orig_dim[1] ); dim[0] = (gint64)(ratio*(gdouble)orig_dim[0]); dim[1] = (gint64)(ratio*(gdouble)orig_dim[1]); } mpv_free(autofit_str); mpv_free(larger_str); mpv_free(smaller_str); return updated; } static void handle_geometry(CelluloidPlayer *player, GdkRectangle monitor_geom) { gchar *geometry_str = celluloid_mpv_get_property_string (CELLULOID_MPV(player), "options/geometry"); if(geometry_str) { gint64 dim[2] = {0, 0}; GValue pos[2] = {G_VALUE_INIT, G_VALUE_INIT}; gboolean flip[2] = {FALSE, FALSE}; parse_geom_string (geometry_str, monitor_geom, flip, pos, dim); if(G_IS_VALUE(&pos[0]) && G_IS_VALUE(&pos[1])) { g_signal_emit_by_name( player, "window-move", flip[0], flip[1], &pos[0], &pos[1] ); } if(dim[0] > 0 && dim[1] > 0) { g_signal_emit_by_name( player, "window-resize", dim[0], dim[1] ); } } mpv_free(geometry_str); } static void handle_msg_level(CelluloidPlayer *player) { CelluloidMpv *mpv = CELLULOID_MPV(player); gchar *optbuf = NULL; gchar **tokens = NULL; gint i; optbuf = celluloid_mpv_get_property_string(mpv, "options/msg-level"); if(optbuf) { tokens = g_strsplit(optbuf, ",", 0); } for(i = 0; tokens && tokens[i]; i++) { gchar **pair = g_strsplit(tokens[i], "=", 2); celluloid_player_set_log_level(player, pair[0], pair[1]); g_strfreev(pair); } mpv_free(optbuf); g_strfreev(tokens); } void module_log_level_free(module_log_level *level) { g_free(level->prefix); g_free(level); } void celluloid_player_options_init( CelluloidPlayer *player, CelluloidMainWindow *window ) { g_signal_connect( player, "notify::ready", G_CALLBACK(ready_handler), window ); g_signal_connect( player, "autofit", G_CALLBACK(autofit_handler), window ); } celluloid-0.20/src/celluloid-player-options.h000066400000000000000000000022441373135401300213100ustar00rootroot00000000000000/* * Copyright (c) 2016-2019 gnome-mpv * * This file is part of Celluloid. * * Celluloid is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Celluloid is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Celluloid. If not, see . */ #ifndef PLAYER_OPTIONS_H #define PLAYER_OPTIONS_H #include #include #include "celluloid-player.h" #include "celluloid-main-window.h" G_BEGIN_DECLS typedef struct module_log_level module_log_level; struct module_log_level { gchar *prefix; mpv_log_level level; }; void module_log_level_free(module_log_level *level); void celluloid_player_options_init( CelluloidPlayer *player, CelluloidMainWindow *window ); G_END_DECLS #endif celluloid-0.20/src/celluloid-player-private.h000066400000000000000000000027511373135401300212720ustar00rootroot00000000000000/* * Copyright (c) 2019 gnome-mpv * * This file is part of Celluloid. * * Celluloid is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Celluloid is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Celluloid. If not, see . */ #ifndef PLAYER_PRIVATE_H #define PLAYER_PRIVATE_H #include #include "celluloid-metadata-cache.h" G_BEGIN_DECLS typedef struct _CelluloidPlayerPrivate CelluloidPlayerPrivate; enum { PROP_0, PROP_PLAYLIST, PROP_METADATA, PROP_TRACK_LIST, PROP_DISC_LIST, PROP_EXTRA_OPTIONS, N_PROPERTIES }; struct _CelluloidPlayerPrivate { CelluloidMpv parent; CelluloidMetadataCache *cache; GVolumeMonitor *monitor; GPtrArray *playlist; GPtrArray *metadata; GPtrArray *track_list; GPtrArray *disc_list; GHashTable *log_levels; gboolean loaded; gboolean new_file; gboolean init_vo_config; gchar *tmp_input_config; gchar *extra_options; }; #define get_private(player) \ G_TYPE_INSTANCE_GET_PRIVATE(player, CELLULOID_TYPE_PLAYER, CelluloidPlayerPrivate) G_END_DECLS #endif celluloid-0.20/src/celluloid-player.c000066400000000000000000001014631373135401300176150ustar00rootroot00000000000000/* * Copyright (c) 2017-2020 gnome-mpv * * This file is part of Celluloid. * * Celluloid is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Celluloid is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Celluloid. If not, see . */ #include #include #include #include "celluloid-option-parser.h" #include "celluloid-player.h" #include "celluloid-player-private.h" #include "celluloid-player-options.h" #include "celluloid-marshal.h" #include "celluloid-metadata-cache.h" #include "celluloid-mpv-wrapper.h" #include "celluloid-def.h" static void set_property( GObject *object, guint property_id, const GValue *value, GParamSpec *pspec ); static void get_property( GObject *object, guint property_id, GValue *value, GParamSpec *pspec ); static void finalize(GObject *object); static void autofit(CelluloidPlayer *player); static void metadata_update(CelluloidPlayer *player, gint64 pos); static void mpv_event_notify(CelluloidMpv *mpv, gint event_id, gpointer event_data); static void mpv_log_message( CelluloidMpv *mpv, mpv_log_level log_level, const gchar *prefix, const gchar *text ); static void mpv_property_changed(CelluloidMpv *mpv, const gchar *name, gpointer value); static void observe_properties(CelluloidMpv *mpv); static void apply_default_options(CelluloidMpv *mpv); static void initialize(CelluloidMpv *mpv); static gint apply_options_array_string(CelluloidMpv *mpv, const gchar *args); static void apply_extra_options(CelluloidPlayer *player); static void load_file(CelluloidMpv *mpv, const gchar *uri, gboolean append); static void reset(CelluloidMpv *mpv); static void load_input_conf(CelluloidPlayer *player, const gchar *input_conf); static void load_config_file(CelluloidMpv *mpv); static void load_input_config_file(CelluloidPlayer *player); static void load_scripts(CelluloidPlayer *player); static CelluloidTrack * parse_track_entry(mpv_node_list *node); static void add_file_to_playlist(CelluloidPlayer *player, const gchar *uri); static void load_from_playlist(CelluloidPlayer *player); static CelluloidPlaylistEntry * parse_playlist_entry(mpv_node_list *node); static void update_playlist(CelluloidPlayer *player); static void update_metadata(CelluloidPlayer *player); static void update_track_list(CelluloidPlayer *player); static void cache_update_handler( CelluloidMetadataCache *cache, const gchar *uri, gpointer data ); static void mount_added_handler(GVolumeMonitor *monitor, GMount *mount, gpointer data); static void volume_removed_handler(GVolumeMonitor *monitor, GVolume *volume, gpointer data); static void guess_content_handler(GMount *mount, GAsyncResult *res, gpointer data); G_DEFINE_TYPE_WITH_PRIVATE(CelluloidPlayer, celluloid_player, CELLULOID_TYPE_MPV) static void set_property( GObject *object, guint property_id, const GValue *value, GParamSpec *pspec ) { CelluloidPlayerPrivate *priv = get_private(object); switch(property_id) { case PROP_PLAYLIST: case PROP_METADATA: case PROP_TRACK_LIST: case PROP_DISC_LIST: g_critical("Attempted to set read-only property"); break; case PROP_EXTRA_OPTIONS: g_free(priv->extra_options); priv->extra_options = g_value_dup_string(value); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID(object, property_id, pspec); break; } } static void get_property( GObject *object, guint property_id, GValue *value, GParamSpec *pspec ) { CelluloidPlayerPrivate *priv = get_private(object); switch(property_id) { case PROP_PLAYLIST: g_value_set_pointer(value, priv->playlist); break; case PROP_METADATA: g_value_set_pointer(value, priv->metadata); break; case PROP_TRACK_LIST: g_value_set_pointer(value, priv->track_list); break; case PROP_DISC_LIST: g_value_set_pointer(value, priv->disc_list); break; case PROP_EXTRA_OPTIONS: g_value_set_string(value, priv->extra_options); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID(object, property_id, pspec); break; } } static void finalize(GObject *object) { CelluloidPlayerPrivate *priv = get_private(object); if(priv->tmp_input_config) { g_unlink(priv->tmp_input_config); } g_free(priv->tmp_input_config); g_free(priv->extra_options); g_ptr_array_free(priv->playlist, TRUE); g_ptr_array_free(priv->metadata, TRUE); g_ptr_array_free(priv->track_list, TRUE); g_ptr_array_free(priv->disc_list, TRUE); G_OBJECT_CLASS(celluloid_player_parent_class)->finalize(object); } static void autofit(CelluloidPlayer *player) { } static void metadata_update(CelluloidPlayer *player, gint64 pos) { } static void mpv_event_notify(CelluloidMpv *mpv, gint event_id, gpointer event_data) { CelluloidPlayerPrivate *priv = get_private(mpv); if(event_id == MPV_EVENT_START_FILE) { gboolean vo_configured = FALSE; celluloid_mpv_get_property( mpv, "vo-configured", MPV_FORMAT_FLAG, &vo_configured ); /* If the vo is not configured yet, save the content of mpv's * playlist. This will be loaded again when the vo is * configured. */ if(!vo_configured) { update_playlist(CELLULOID_PLAYER(mpv)); } } else if(event_id == MPV_EVENT_END_FILE) { if(priv->loaded) { priv->new_file = FALSE; } } else if(event_id == MPV_EVENT_IDLE) { priv->loaded = FALSE; } else if(event_id == MPV_EVENT_FILE_LOADED) { priv->loaded = TRUE; } else if(event_id == MPV_EVENT_VIDEO_RECONFIG) { if(priv->new_file) { g_signal_emit_by_name(CELLULOID_PLAYER(mpv), "autofit"); } } CELLULOID_MPV_CLASS(celluloid_player_parent_class) ->mpv_event_notify(mpv, event_id, event_data); } static void mpv_log_message( CelluloidMpv *mpv, mpv_log_level log_level, const gchar *prefix, const gchar *text ) { CelluloidPlayerPrivate *priv = get_private(mpv); gsize prefix_len = strlen(prefix); gboolean found = FALSE; const gchar *iter_prefix; gpointer iter_level; GHashTableIter iter; g_hash_table_iter_init(&iter, priv->log_levels); while( !found && g_hash_table_iter_next( &iter, (gpointer *)&iter_prefix, &iter_level) ) { gsize iter_prefix_len = strlen(iter_prefix); gint cmp = strncmp( iter_prefix, prefix, (prefix_len < iter_prefix_len)? prefix_len:iter_prefix_len ); /* Allow both exact match and prefix match */ if(cmp == 0 && (iter_prefix_len == prefix_len || (iter_prefix_len < prefix_len && prefix[iter_prefix_len] == '/'))) { found = TRUE; } } if(!found || (gint)log_level <= GPOINTER_TO_INT(iter_level)) { gchar *buf = g_strdup(text); gsize len = strlen(buf); if(len > 1) { /* g_message() automatically adds a newline * character when using the default log handler, * but log messages from mpv already come * terminated with a newline character so we * need to take it out. */ if(buf[len-1] == '\n') { buf[len-1] = '\0'; } g_message("[%s] %s", prefix, buf); } g_free(buf); } CELLULOID_MPV_CLASS(celluloid_player_parent_class) ->mpv_log_message(mpv, log_level, prefix, text); } static void mpv_property_changed(CelluloidMpv *mpv, const gchar *name, gpointer value) { CelluloidPlayer *player = CELLULOID_PLAYER(mpv); CelluloidPlayerPrivate *priv = get_private(mpv); if(g_strcmp0(name, "pause") == 0) { gboolean idle_active = FALSE; gboolean pause = value?*((int *)value):TRUE; celluloid_mpv_get_property (mpv, "idle-active", MPV_FORMAT_FLAG, &idle_active); if(idle_active && !pause && !priv->init_vo_config) { load_from_playlist(player); } } else if(g_strcmp0(name, "playlist") == 0) { gboolean idle_active = FALSE; gboolean was_empty = FALSE; celluloid_mpv_get_property (mpv, "idle-active", MPV_FORMAT_FLAG, &idle_active); was_empty = priv->init_vo_config || priv->playlist->len == 0; if(!idle_active && !priv->init_vo_config) { update_playlist(player); } /* Check if we're transitioning from empty playlist to non-empty * playlist. */ if(was_empty && priv->playlist->len > 0) { celluloid_mpv_set_property_flag(mpv, "pause", FALSE); } } else if(g_strcmp0(name, "metadata") == 0) { update_metadata(player); } else if(g_strcmp0(name, "track-list") == 0) { update_track_list(player); } else if(g_strcmp0(name, "vo-configured") == 0) { if(priv->init_vo_config) { priv->init_vo_config = FALSE; load_scripts(player); load_from_playlist(player); } } CELLULOID_MPV_CLASS(celluloid_player_parent_class) ->mpv_property_changed(mpv, name, value); } static void observe_properties(CelluloidMpv *mpv) { celluloid_mpv_observe_property(mpv, 0, "aid", MPV_FORMAT_STRING); celluloid_mpv_observe_property(mpv, 0, "vid", MPV_FORMAT_STRING); celluloid_mpv_observe_property(mpv, 0, "sid", MPV_FORMAT_STRING); celluloid_mpv_observe_property(mpv, 0, "chapters", MPV_FORMAT_INT64); celluloid_mpv_observe_property(mpv, 0, "core-idle", MPV_FORMAT_FLAG); celluloid_mpv_observe_property(mpv, 0, "idle-active", MPV_FORMAT_FLAG); celluloid_mpv_observe_property(mpv, 0, "border", MPV_FORMAT_FLAG); celluloid_mpv_observe_property(mpv, 0, "fullscreen", MPV_FORMAT_FLAG); celluloid_mpv_observe_property(mpv, 0, "pause", MPV_FORMAT_FLAG); celluloid_mpv_observe_property(mpv, 0, "loop", MPV_FORMAT_STRING); celluloid_mpv_observe_property(mpv, 0, "duration", MPV_FORMAT_DOUBLE); celluloid_mpv_observe_property(mpv, 0, "media-title", MPV_FORMAT_STRING); celluloid_mpv_observe_property(mpv, 0, "metadata", MPV_FORMAT_NODE); celluloid_mpv_observe_property(mpv, 0, "playlist", MPV_FORMAT_NODE); celluloid_mpv_observe_property(mpv, 0, "playlist-count", MPV_FORMAT_INT64); celluloid_mpv_observe_property(mpv, 0, "playlist-pos", MPV_FORMAT_INT64); celluloid_mpv_observe_property(mpv, 0, "speed", MPV_FORMAT_DOUBLE); celluloid_mpv_observe_property(mpv, 0, "track-list", MPV_FORMAT_NODE); celluloid_mpv_observe_property(mpv, 0, "vo-configured", MPV_FORMAT_FLAG); celluloid_mpv_observe_property(mpv, 0, "volume", MPV_FORMAT_DOUBLE); celluloid_mpv_observe_property(mpv, 0, "volume-max", MPV_FORMAT_DOUBLE); celluloid_mpv_observe_property(mpv, 0, "window-maximized", MPV_FORMAT_FLAG); celluloid_mpv_observe_property(mpv, 0, "window-scale", MPV_FORMAT_DOUBLE); } static void apply_default_options(CelluloidMpv *mpv) { gchar *config_dir = get_config_dir_path(); gchar *watch_dir = get_watch_dir_path(); const gchar *screenshot_dir = g_get_user_special_dir (G_USER_DIRECTORY_PICTURES); const struct { const gchar *name; const gchar *value; } options[] = { {"vo", "opengl,vdpau,vaapi,xv,x11,libmpv,"}, {"osd-level", "1"}, {"softvol", "yes"}, {"force-window", "immediate"}, {"input-default-bindings", "yes"}, {"audio-client-name", ICON_NAME}, {"title", "${media-title}"}, {"autofit-larger", "75%"}, {"window-scale", "1"}, {"pause", "yes"}, {"ytdl", "yes"}, {"ytdl-raw-options", "yes-playlist="}, {"load-scripts", "no"}, {"osd-bar", "no"}, {"input-cursor", "no"}, {"cursor-autohide", "no"}, {"softvol-max", "100"}, {"config-dir", config_dir}, {"watch-later-directory", watch_dir}, {"screenshot-directory", screenshot_dir}, {"screenshot-template", "celluloid-shot%n"}, {NULL, NULL} }; for(gint i = 0; options[i].name; i++) { g_debug( "Applying default option --%s=%s", options[i].name, options[i].value ); celluloid_mpv_set_option_string (mpv, options[i].name, options[i].value); } g_free(config_dir); g_free(watch_dir); } static void initialize(CelluloidMpv *mpv) { CelluloidPlayer *player = CELLULOID_PLAYER(mpv); GSettings *win_settings = g_settings_new(CONFIG_WIN_STATE); gdouble volume = g_settings_get_double(win_settings, "volume")*100; apply_default_options(mpv); load_config_file(mpv); load_input_config_file(player); apply_extra_options(player); observe_properties(mpv); CELLULOID_MPV_CLASS(celluloid_player_parent_class)->initialize(mpv); g_debug("Setting volume to %f", volume); celluloid_mpv_set_property(mpv, "volume", MPV_FORMAT_DOUBLE, &volume); g_object_unref(win_settings); } static gint apply_options_array_string(CelluloidMpv *mpv, const gchar *args) { gint fail_count = 0; while(args && *args) { gchar *key = NULL; gchar *value = NULL; args = parse_option(args, &key, &value); g_debug("Applying option: --%s=%s", key, value); if(celluloid_mpv_set_option_string(mpv, key, value) < 0) { fail_count++; g_warning( "Failed to apply option: --%s=%s\n", key, value ); } g_free(key); g_free(value); } return fail_count*(-1); } static void apply_extra_options(CelluloidPlayer *player) { CelluloidPlayerPrivate *priv = get_private(player); CelluloidMpv *mpv = CELLULOID_MPV(player); gchar *extra_options = priv->extra_options; g_debug("Applying extra mpv options: %s", extra_options); /* Apply extra options */ if(extra_options && apply_options_array_string(mpv, extra_options) < 0) { const gchar *msg = _("Failed to apply one or more MPV options."); g_signal_emit_by_name(mpv, "error", msg); } } static void load_file(CelluloidMpv *mpv, const gchar *uri, gboolean append) { CelluloidPlayer *player = CELLULOID_PLAYER(mpv); CelluloidPlayerPrivate *priv = get_private(mpv); gboolean ready = FALSE; gboolean idle_active = FALSE; g_object_get(mpv, "ready", &ready, NULL); celluloid_mpv_get_property (mpv, "idle-active", MPV_FORMAT_FLAG, &idle_active); if(idle_active || !ready) { if(!append) { priv->new_file = TRUE; g_ptr_array_set_size(priv->playlist, 0); } add_file_to_playlist(player, uri); } else { if(!append) { priv->new_file = TRUE; priv->loaded = FALSE; } CELLULOID_MPV_CLASS(celluloid_player_parent_class) ->load_file(mpv, uri, append); } /* Playlist items added when mpv is idle doesn't get added directly to * its internal playlist, so the property change signal won't be fired. * We need to emit notify signal here manually to ensure that the * playlist widget gets updated. */ if(idle_active) { g_object_notify(G_OBJECT(player), "playlist"); } } static void reset(CelluloidMpv *mpv) { gboolean idle_active = FALSE; gint64 playlist_pos = 0; gdouble volume = 0; celluloid_mpv_get_property (mpv, "idle-active", MPV_FORMAT_FLAG, &idle_active); celluloid_mpv_get_property (mpv, "playlist-pos", MPV_FORMAT_INT64, &playlist_pos); celluloid_mpv_get_property (mpv, "volume", MPV_FORMAT_DOUBLE, &volume); CELLULOID_MPV_CLASS(celluloid_player_parent_class)->reset(mpv); load_scripts(CELLULOID_PLAYER(mpv)); if(!idle_active) { load_from_playlist(CELLULOID_PLAYER(mpv)); } if(playlist_pos > 0) { celluloid_mpv_set_property (mpv, "playlist-pos", MPV_FORMAT_INT64, &playlist_pos); } celluloid_mpv_set_property(mpv, "volume", MPV_FORMAT_DOUBLE, &volume); } static void load_input_conf(CelluloidPlayer *player, const gchar *input_conf) { CelluloidPlayerPrivate *priv = get_private(player); const gchar *default_keybinds[] = DEFAULT_KEYBINDS; gchar *tmp_path; FILE *tmp_file; gint tmp_fd; if(priv->tmp_input_config) { g_unlink(priv->tmp_input_config); g_free(priv->tmp_input_config); } tmp_fd = g_file_open_tmp("."BIN_NAME"-XXXXXX", &tmp_path, NULL); tmp_file = fdopen(tmp_fd, "w"); priv->tmp_input_config = tmp_path; if(!tmp_file) { g_error("Failed to open temporary input config file"); } for(gint i = 0; default_keybinds[i]; i++) { const gsize len = strlen(default_keybinds[i]); gsize write_size = fwrite(default_keybinds[i], len, 1, tmp_file); gint rc = fputc('\n', tmp_file); if(write_size != 1 || rc != '\n') { g_error( "Error writing default keybindings to " "temporary input config file" ); } } g_debug("Using temporary input config file: %s", tmp_path); celluloid_mpv_set_option_string (CELLULOID_MPV(player), "input-conf", tmp_path); if(input_conf && strlen(input_conf) > 0) { const gsize buf_size = 65536; void *buf = g_malloc(buf_size); FILE *src_file = g_fopen(input_conf, "r"); gsize read_size = buf_size; if(!src_file) { g_warning( "Cannot open input config file: %s", input_conf ); } while(src_file && read_size == buf_size) { read_size = fread(buf, 1, buf_size, src_file); if(read_size != fwrite(buf, 1, read_size, tmp_file)) { g_error( "Error writing requested input " "config file to temporary " "input config file" ); } } g_info("Loaded input config file: %s", input_conf); g_free(buf); } fclose(tmp_file); } static void load_config_file(CelluloidMpv *mpv) { GSettings *settings = g_settings_new(CONFIG_ROOT); if(g_settings_get_boolean(settings, "mpv-config-enable")) { gchar *mpv_conf = g_settings_get_string (settings, "mpv-config-file"); g_info("Loading config file: %s", mpv_conf); celluloid_mpv_load_config_file(mpv, mpv_conf); g_free(mpv_conf); } g_object_unref(settings); } static void load_input_config_file(CelluloidPlayer *player) { GSettings *settings = g_settings_new(CONFIG_ROOT); gchar *input_conf = NULL; if(g_settings_get_boolean(settings, "mpv-input-config-enable")) { input_conf = g_settings_get_string (settings, "mpv-input-config-file"); g_info("Loading input config file: %s", input_conf); } load_input_conf(player, input_conf); g_free(input_conf); g_object_unref(settings); } static void load_scripts(CelluloidPlayer *player) { gchar *path = get_scripts_dir_path(); GDir *dir = g_dir_open(path, 0, NULL); if(dir) { const gchar *name; do { gchar *full_path; name = g_dir_read_name(dir); full_path = g_build_filename(path, name, NULL); if(g_file_test(full_path, G_FILE_TEST_IS_REGULAR)) { const gchar *cmd[] = {"load-script", full_path, NULL}; g_info("Loading script: %s", full_path); celluloid_mpv_command (CELLULOID_MPV(player), cmd); } g_free(full_path); } while(name); g_dir_close(dir); } else { g_warning("Failed to open scripts directory: %s", path); } g_free(path); } static CelluloidTrack * parse_track_entry(mpv_node_list *node) { CelluloidTrack *entry = celluloid_track_new(); for(gint i = 0; i < node->num; i++) { if(g_strcmp0(node->keys[i], "type") == 0) { const gchar *type = node->values[i].u.string; if(g_strcmp0(type, "audio") == 0) { entry->type = TRACK_TYPE_AUDIO; } else if(g_strcmp0(type, "video") == 0) { entry->type = TRACK_TYPE_VIDEO; } else if(g_strcmp0(type, "sub") == 0) { entry->type = TRACK_TYPE_SUBTITLE; } } else if(g_strcmp0(node->keys[i], "title") == 0) { entry->title = g_strdup(node->values[i].u.string); } else if(g_strcmp0(node->keys[i], "lang") == 0) { entry->lang = g_strdup(node->values[i].u.string); } else if(g_strcmp0(node->keys[i], "id") == 0) { entry->id = node->values[i].u.int64; } } return entry; } static void add_file_to_playlist(CelluloidPlayer *player, const gchar *uri) { CelluloidPlaylistEntry *entry = celluloid_playlist_entry_new(uri, NULL); g_ptr_array_add(get_private(player)->playlist, entry); } static void load_from_playlist(CelluloidPlayer *player) { CelluloidMpv *mpv = CELLULOID_MPV(player); GPtrArray *playlist = get_private(player)->playlist; for(guint i = 0; playlist && i < playlist->len; i++) { CelluloidPlaylistEntry *entry = g_ptr_array_index(playlist, i); /* Do not append on first iteration */ CELLULOID_MPV_CLASS(celluloid_player_parent_class) ->load_file(mpv, entry->filename, i != 0); } } static CelluloidPlaylistEntry * parse_playlist_entry(mpv_node_list *node) { const gchar *filename = NULL; const gchar *title = NULL; for(gint i = 0; i < node->num; i++) { if(g_strcmp0(node->keys[i], "filename") == 0) { filename = node->values[i].u.string; } else if(g_strcmp0(node->keys[i], "title") == 0) { title = node->values[i].u.string; } } return celluloid_playlist_entry_new(filename, title); } static void update_playlist(CelluloidPlayer *player) { CelluloidPlayerPrivate *priv; GSettings *settings; gboolean prefetch_metadata; const mpv_node_list *org_list; mpv_node playlist; priv = get_private(player); settings = g_settings_new(CONFIG_ROOT); prefetch_metadata = g_settings_get_boolean(settings, "prefetch-metadata"); g_ptr_array_set_size(priv->playlist, 0); celluloid_mpv_get_property (CELLULOID_MPV(player), "playlist", MPV_FORMAT_NODE, &playlist); org_list = playlist.u.list; if(playlist.format == MPV_FORMAT_NODE_ARRAY) { for(gint i = 0; i < org_list->num; i++) { CelluloidPlaylistEntry *entry; entry = parse_playlist_entry(org_list->values[i].u.list); if(!entry->title && prefetch_metadata) { CelluloidMetadataCacheEntry *cache_entry; cache_entry = celluloid_metadata_cache_lookup (priv->cache, entry->filename); entry->title = g_strdup(cache_entry->title); } g_ptr_array_add(priv->playlist, entry); } mpv_free_node_contents(&playlist); g_object_notify(G_OBJECT(player), "playlist"); } if(prefetch_metadata) { celluloid_metadata_cache_load_playlist (priv->cache, priv->playlist); } g_object_unref(settings); } static void update_metadata(CelluloidPlayer *player) { CelluloidPlayerPrivate *priv = get_private(player); mpv_node_list *org_list = NULL; mpv_node metadata; g_ptr_array_set_size(priv->metadata, 0); celluloid_mpv_get_property (CELLULOID_MPV(player), "metadata", MPV_FORMAT_NODE, &metadata); org_list = metadata.u.list; if(metadata.format == MPV_FORMAT_NODE_MAP && org_list->num > 0) { for(gint i = 0; i < org_list->num; i++) { const gchar *key; mpv_node value; key = org_list->keys[i]; value = org_list->values[i]; if(value.format == MPV_FORMAT_STRING) { CelluloidMetadataEntry *entry; entry = celluloid_metadata_entry_new (key, value.u.string); g_ptr_array_add(priv->metadata, entry); } else { g_warning( "Ignored metadata field %s " "with unexpected format %d", key, value.format ); } } mpv_free_node_contents(&metadata); g_object_notify(G_OBJECT(player), "metadata"); } } static void update_track_list(CelluloidPlayer *player) { CelluloidPlayerPrivate *priv = get_private(player); mpv_node_list *org_list = NULL; mpv_node track_list; g_ptr_array_set_size(priv->track_list, 0); celluloid_mpv_get_property( CELLULOID_MPV(player), "track-list", MPV_FORMAT_NODE, &track_list ); org_list = track_list.u.list; if(track_list.format == MPV_FORMAT_NODE_ARRAY) { for(gint i = 0; i < org_list->num; i++) { CelluloidTrack *entry = parse_track_entry (org_list->values[i].u.list); g_ptr_array_add(priv->track_list, entry); } mpv_free_node_contents(&track_list); g_object_notify(G_OBJECT(player), "track-list"); } } static void cache_update_handler( CelluloidMetadataCache *cache, const gchar *uri, gpointer data ) { CelluloidPlayerPrivate *priv = get_private(data); for(guint i = 0; i < priv->playlist->len; i++) { CelluloidPlaylistEntry *entry = g_ptr_array_index(priv->playlist, i); if(g_strcmp0(entry->filename, uri) == 0) { CelluloidMetadataCacheEntry *cache_entry = celluloid_metadata_cache_lookup(cache, uri); g_free(entry->title); entry->title = g_strdup(cache_entry->title); g_signal_emit_by_name (data, "metadata-update", (gint64)i); } } } static void mount_added_handler(GVolumeMonitor *monitor, GMount *mount, gpointer data) { GAsyncReadyCallback callback = (GAsyncReadyCallback)guess_content_handler; gchar *name = g_mount_get_name(mount); g_debug("Mount %s added", name); g_mount_guess_content_type(mount, FALSE, NULL, callback, data); g_free(name); } static void volume_removed_handler(GVolumeMonitor *monitor, GVolume *volume, gpointer data) { GPtrArray *disc_list = get_private(data)->disc_list; gboolean found = FALSE; gchar *path = g_volume_get_identifier(volume, "unix-device"); for(guint i = 0; !found && path && i < disc_list->len; i++) { CelluloidDisc *disc = g_ptr_array_index(disc_list, i); if(g_str_has_suffix(disc->uri, path)) { g_ptr_array_remove_index(disc_list, i); found = TRUE; } } g_object_notify(G_OBJECT(data), "disc-list"); } static void guess_content_handler(GMount *mount, GAsyncResult *res, gpointer data) { GError *error = NULL; gchar **types = g_mount_guess_content_type_finish(mount, res, &error); if(error) { gchar *name = g_mount_get_name(mount); g_warning( "Failed to guess content type for mount %s: %s", name, error->message ); g_free(name); } else { CelluloidPlayer *player = data; const gchar *protocol = NULL; GVolume *volume = g_mount_get_volume(mount); gchar *path = volume ? g_volume_get_identifier(volume, "unix-device") : NULL; for(gint i = 0; path && !protocol && types && types[i]; i++) { if(g_strcmp0(types[i], "x-content/video-blueray") == 0) { protocol = "bd"; } else if(g_strcmp0(types[i], "x-content/video-dvd") == 0) { protocol = "dvd"; } else if(g_strcmp0(types[i], "x-content/audio-cdda") == 0) { protocol = "cdda"; } } if(path && protocol) { CelluloidDisc *disc = celluloid_disc_new(); disc->uri = g_strdup_printf("%s:///%s", protocol, path); disc->label = g_mount_get_name(mount); g_ptr_array_add(get_private(player)->disc_list, disc); g_object_notify(G_OBJECT(player), "disc-list"); } g_free(path); g_clear_object(&volume); } g_strfreev(types); } static void celluloid_player_class_init(CelluloidPlayerClass *klass) { CelluloidMpvClass *mpv_class = CELLULOID_MPV_CLASS(klass); GObjectClass *obj_class = G_OBJECT_CLASS(klass); GParamSpec *pspec = NULL; klass->autofit = autofit; klass->metadata_update = metadata_update; mpv_class->mpv_event_notify = mpv_event_notify; mpv_class->mpv_log_message = mpv_log_message; mpv_class->mpv_property_changed = mpv_property_changed; mpv_class->initialize = initialize; mpv_class->load_file = load_file; mpv_class->reset = reset; obj_class->set_property = set_property; obj_class->get_property = get_property; obj_class->finalize = finalize; pspec = g_param_spec_pointer ( "playlist", "Playlist", "The playlist", G_PARAM_READABLE ); g_object_class_install_property(obj_class, PROP_PLAYLIST, pspec); pspec = g_param_spec_pointer ( "metadata", "Metadata", "The metadata tags of the current file", G_PARAM_READABLE ); g_object_class_install_property(obj_class, PROP_METADATA, pspec); pspec = g_param_spec_pointer ( "track-list", "Track list", "Audio, video, and subtitle tracks of the current file", G_PARAM_READABLE ); g_object_class_install_property(obj_class, PROP_TRACK_LIST, pspec); pspec = g_param_spec_pointer ( "disc-list", "Disc list", "List of mounted discs", G_PARAM_READABLE ); g_object_class_install_property(obj_class, PROP_DISC_LIST, pspec); pspec = g_param_spec_string ( "extra-options", "Extra options", "Extra options to pass to mpv", NULL, G_PARAM_READWRITE ); g_object_class_install_property(obj_class, PROP_EXTRA_OPTIONS, pspec); g_signal_new( "autofit", G_TYPE_FROM_CLASS(klass), G_SIGNAL_RUN_FIRST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0 ); g_signal_new( "metadata-update", G_TYPE_FROM_CLASS(klass), G_SIGNAL_RUN_FIRST, 0, NULL, NULL, g_cclosure_gen_marshal_VOID__INT64, G_TYPE_NONE, 1, G_TYPE_INT64 ); } static void celluloid_player_init(CelluloidPlayer *player) { CelluloidPlayerPrivate *priv = get_private(player); priv->cache = celluloid_metadata_cache_new(); priv->monitor = g_volume_monitor_get(); priv->playlist = g_ptr_array_new_with_free_func ((GDestroyNotify)celluloid_playlist_entry_free); priv->metadata = g_ptr_array_new_with_free_func ((GDestroyNotify)celluloid_metadata_entry_free); priv->track_list = g_ptr_array_new_with_free_func ((GDestroyNotify)celluloid_track_free); priv->disc_list = g_ptr_array_new_with_free_func ((GDestroyNotify)celluloid_disc_free); priv->log_levels = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, NULL); priv->loaded = FALSE; priv->new_file = TRUE; priv->init_vo_config = TRUE; priv->tmp_input_config = NULL; priv->extra_options = NULL; g_signal_connect( priv->cache, "update", G_CALLBACK(cache_update_handler), player ); g_signal_connect( priv->monitor, "mount-added", G_CALLBACK(mount_added_handler), player ); // We need to connect to volume-removed instead of mount-removed because // we need to use the path of the volume to figure out which entry in // disc_list to remove. However, by the time mount-removed fires, the // mount would no longer be associated with its volume. This works fine // since we only add mounts with associated volumes to disc_list. g_signal_connect( priv->monitor, "volume-removed", G_CALLBACK(volume_removed_handler), player ); // Emit mount-added to fill disc_list using mounts that already exist. GList *mount_list = g_volume_monitor_get_mounts(priv->monitor); for(GList *cur = mount_list; cur; cur = g_list_next(cur)) { g_signal_emit_by_name(priv->monitor, "mount-added", cur->data); } g_list_free_full(mount_list, g_object_unref); } CelluloidPlayer * celluloid_player_new(gint64 wid) { return CELLULOID_PLAYER(g_object_new( celluloid_player_get_type(), "wid", wid, NULL )); } void celluloid_player_set_playlist_position(CelluloidPlayer *player, gint64 position) { CelluloidMpv *mpv = CELLULOID_MPV(player); gint64 playlist_pos = 0; celluloid_mpv_get_property (mpv, "playlist-pos", MPV_FORMAT_INT64, &playlist_pos); if(position != playlist_pos) { celluloid_mpv_set_property (mpv, "playlist-pos", MPV_FORMAT_INT64, &position); } } void celluloid_player_remove_playlist_entry(CelluloidPlayer *player, gint64 position) { CelluloidMpv *mpv = CELLULOID_MPV(player); gboolean idle_active = celluloid_mpv_get_property_flag (mpv, "idle-active"); gint64 playlist_count = 0; celluloid_mpv_get_property (mpv, "playlist-count", MPV_FORMAT_INT64, &playlist_count); /* mpv doesn't send playlist change signal before going idle when the * last playlist entry is removed, so the internal playlist needs to be * directly updated. */ if(idle_active || playlist_count == 1) { g_ptr_array_remove_index( get_private(player)->playlist, (guint)position ); g_object_notify(G_OBJECT(player), "playlist"); } if(!idle_active) { const gchar *cmd[] = {"playlist_remove", NULL, NULL}; gchar *index_str = g_strdup_printf ("%" G_GINT64_FORMAT, position); cmd[1] = index_str; celluloid_mpv_command(CELLULOID_MPV(player), cmd); g_free(index_str); } } void celluloid_player_move_playlist_entry( CelluloidPlayer *player, gint64 src, gint64 dst ) { CelluloidMpv *mpv = CELLULOID_MPV(player); gboolean idle_active = celluloid_mpv_get_property_flag (mpv, "idle-active"); if(idle_active) { GPtrArray *playlist; CelluloidPlaylistEntry **entry; playlist = get_private(player)->playlist; entry = (CelluloidPlaylistEntry **) &g_ptr_array_index(playlist, src); g_ptr_array_insert(playlist, (gint)dst, *entry); /* Prevent the entry from being freed */ *entry = NULL; g_ptr_array_remove_index(playlist, (guint)((src > dst)?--src:src)); } else { const gchar *cmd[] = {"playlist_move", NULL, NULL, NULL}; gchar *src_str = g_strdup_printf ("%" G_GINT64_FORMAT, (src > dst)?--src:src); gchar *dst_str = g_strdup_printf ("%" G_GINT64_FORMAT, dst); cmd[1] = src_str; cmd[2] = dst_str; celluloid_mpv_command(CELLULOID_MPV(player), cmd); g_free(src_str); g_free(dst_str); } } void celluloid_player_set_log_level( CelluloidPlayer *player, const gchar *prefix, const gchar *level ) { const struct { gchar *name; mpv_log_level level; } level_map[] = { {"no", MPV_LOG_LEVEL_NONE}, {"fatal", MPV_LOG_LEVEL_FATAL}, {"error", MPV_LOG_LEVEL_ERROR}, {"warn", MPV_LOG_LEVEL_WARN}, {"info", MPV_LOG_LEVEL_INFO}, {"v", MPV_LOG_LEVEL_V}, {"debug", MPV_LOG_LEVEL_DEBUG}, {"trace", MPV_LOG_LEVEL_TRACE}, {NULL, MPV_LOG_LEVEL_NONE} }; GHashTableIter iter; gpointer iter_level = GINT_TO_POINTER(DEFAULT_LOG_LEVEL); CelluloidPlayerPrivate *priv = get_private(player); mpv_log_level max_level = DEFAULT_LOG_LEVEL; gboolean found = FALSE; gint i = 0; do { found = (g_strcmp0(level, level_map[i].name) == 0); } while(!found && level_map[++i].name); if(found && g_strcmp0(prefix, "all") != 0) { g_hash_table_replace( priv->log_levels, g_strdup(prefix), GINT_TO_POINTER(level_map[i].level) ); } max_level = level_map[i].level; g_hash_table_iter_init(&iter, priv->log_levels); while(g_hash_table_iter_next(&iter, NULL, &iter_level)) { if(GPOINTER_TO_INT(iter_level) > (gint)max_level) { max_level = GPOINTER_TO_INT(iter_level); } } for(i = 0; level_map[i].level != max_level; i++); celluloid_mpv_request_log_messages (CELLULOID_MPV(player), level_map[i].name); } celluloid-0.20/src/celluloid-player.h000066400000000000000000000031301373135401300176120ustar00rootroot00000000000000/* * Copyright (c) 2017-2019 gnome-mpv * * This file is part of Celluloid. * * Celluloid is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Celluloid is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Celluloid. If not, see . */ #ifndef PLAYER_H #define PLAYER_H #include #include "celluloid-mpv.h" G_BEGIN_DECLS #define CELLULOID_TYPE_PLAYER (celluloid_player_get_type()) G_DECLARE_DERIVABLE_TYPE(CelluloidPlayer, celluloid_player, CELLULOID, PLAYER, CelluloidMpv) struct _CelluloidPlayerClass { CelluloidMpvClass parent_class; void (*autofit)(CelluloidPlayer *player); void (*metadata_update)(CelluloidPlayer *player, gint64 pos); }; CelluloidPlayer * celluloid_player_new(gint64 wid); void celluloid_player_set_playlist_position(CelluloidPlayer *player, gint64 position); void celluloid_player_remove_playlist_entry(CelluloidPlayer *player, gint64 position); void celluloid_player_move_playlist_entry( CelluloidPlayer *player, gint64 src, gint64 dst ); void celluloid_player_set_log_level( CelluloidPlayer *player, const gchar *prefix, const gchar *level ); G_END_DECLS #endif celluloid-0.20/src/celluloid-playlist-widget.c000066400000000000000000000712011373135401300214370ustar00rootroot00000000000000/* * Copyright (c) 2014-2020 gnome-mpv * * This file is part of Celluloid. * * Celluloid is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Celluloid is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Celluloid. If not, see . */ #include #include #include #include #include #include #include "celluloid-playlist-widget.h" #include "celluloid-metadata-cache.h" #include "celluloid-marshal.h" #include "celluloid-common.h" #include "celluloid-menu.h" #include "celluloid-def.h" enum { PROP_0, PROP_PLAYLIST_COUNT, PROP_SEARCHING, N_PROPERTIES }; enum PlaylistColumn { PLAYLIST_NAME_COLUMN, PLAYLIST_URI_COLUMN, PLAYLIST_WEIGHT_COLUMN, PLAYLIST_N_COLUMNS }; struct _CelluloidPlaylistWidget { GtkBox parent_instance; gint64 playlist_count; gboolean searching; GtkListStore *store; GtkWidget *scrolled_window; GtkWidget *tree_view; GtkTreeViewColumn *title_column; GtkCellRenderer *title_renderer; GtkWidget *search_bar; GtkWidget *search_entry; GtkWidget *placeholder; GtkWidget *overlay; gint last_x; gint last_y; gboolean dnd_delete; }; struct _CelluloidPlaylistWidgetClass { GtkBoxClass parent_class; }; static gboolean gtk_tree_model_get_iter_last(GtkTreeModel *tree_model, GtkTreeIter *iter); static void find_match( CelluloidPlaylistWidget *wgt, gboolean match_current, gboolean reverse ); static void constructed(GObject *object); static void set_property( GObject *object, guint property_id, const GValue *value, GParamSpec *pspec ); static void get_property( GObject *object, guint property_id, GValue *value, GParamSpec *pspec ); static gboolean is_zero(GBinding *binding, const GValue *from, GValue *to, gpointer data); static void drag_begin_handler(GtkWidget *widget, GdkDragContext *context, gpointer data); static void drag_data_get_handler( GtkWidget *widget, GdkDragContext *context, GtkSelectionData *sel_data, guint info, guint time, gpointer data ); static void drag_data_received_handler( GtkWidget *widget, GdkDragContext *context, gint x, gint y, GtkSelectionData *sel_data, guint info, guint time, gpointer data ); static void drag_data_delete_handler( GtkWidget *widget, GdkDragContext *context, gpointer data ); static void row_activated_handler( GtkTreeView *tree_view, GtkTreePath *path, GtkTreeViewColumn *column, gpointer data ); static void row_inserted_handler( GtkTreeModel *tree_model, GtkTreePath *path, GtkTreeIter *iter, gpointer data ); static void row_deleted_handler(GtkTreeModel *tree_model, GtkTreePath *path, gpointer data); static void next_match_handler(GtkSearchEntry *entry, gpointer data); static void previous_match_handler(GtkSearchEntry *entry, gpointer data); static void search_changed_handler(GtkSearchEntry *entry, gpointer data); static void stop_search_handler(GtkSearchEntry *entry, gpointer data); static gboolean mouse_press_handler(GtkWidget *widget, GdkEventButton *event, gpointer data); static gchar * get_uri_selected(CelluloidPlaylistWidget *wgt); G_DEFINE_TYPE(CelluloidPlaylistWidget, celluloid_playlist_widget, GTK_TYPE_BOX) static gboolean gtk_tree_model_get_iter_last(GtkTreeModel *tree_model, GtkTreeIter *iter) { GtkTreeIter prev_iter; gboolean rc = gtk_tree_model_get_iter_first(tree_model, iter); if(rc) { // Keep iterating until we reach the end, keeping one extra // iterator pointing to the row before the current one. do { prev_iter = *iter; } while(gtk_tree_model_iter_next(tree_model, iter)); // Once we reach the end iter will be invalid so we need to // restore the last valid value from prev_iter, which will be // pointing to the last row. *iter = prev_iter; } return rc; } static void find_match( CelluloidPlaylistWidget *wgt, gboolean match_current, gboolean reverse ) { GtkTreeView *tree_view = GTK_TREE_VIEW(wgt->tree_view); GtkTreeModel *tree_model = GTK_TREE_MODEL(wgt->store); const gchar *term = gtk_entry_get_text(GTK_ENTRY(wgt->search_entry)); GtkTreeIter iter; GtkTreePath *initial_path = NULL; gboolean found = FALSE; gboolean rc = FALSE; gboolean (*advance)(GtkTreeModel *, GtkTreeIter *) = reverse ? gtk_tree_model_iter_previous : gtk_tree_model_iter_next; gboolean (*reset)(GtkTreeModel *, GtkTreeIter *) = reverse ? gtk_tree_model_get_iter_last : gtk_tree_model_get_iter_first; gtk_tree_view_get_cursor(tree_view, &initial_path, NULL); rc = initial_path && gtk_tree_model_get_iter(tree_model, &iter, initial_path); while(rc && !found) { // Advance the iterator. If no next row exists, reset the // iterator so that it points to either the first or the last // row depending on the direction of the search. if(!match_current && !advance(tree_model, &iter)) { rc = reset(tree_model, &iter); } if(rc) { gchar *name = NULL; GtkTreePath *path = NULL; gtk_tree_model_get( tree_model, &iter, PLAYLIST_NAME_COLUMN, &name, -1 ); // Check if the iterator is pointing at the initial // position. If it does, that means the search term does // not match any row. If that's the case, set rc to // FALSE so that the loop exits. path = gtk_tree_model_get_path(tree_model, &iter); rc = match_current || gtk_tree_path_compare(initial_path, path) != 0; found = g_str_match_string(term, name, TRUE); gtk_tree_path_free(path); g_free(name); } match_current = FALSE; } if(found) { GtkTreePath *path = gtk_tree_model_get_path(tree_model, &iter); gtk_tree_view_set_cursor(tree_view, path, NULL, FALSE); gtk_tree_path_free(path); } gtk_tree_path_free(initial_path); } static void constructed(GObject *object) { CelluloidPlaylistWidget *self = CELLULOID_PLAYLIST_WIDGET(object); GtkTargetEntry targets[] = DND_TARGETS; self->store = gtk_list_store_new( 3, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INT ); self->tree_view = gtk_tree_view_new_with_model (GTK_TREE_MODEL(self->store)); g_signal_connect( self->tree_view, "button-press-event", G_CALLBACK(mouse_press_handler), self ); g_signal_connect( self->tree_view, "popup-menu", G_CALLBACK(mouse_press_handler), self ); g_signal_connect_after( self->tree_view, "drag-begin", G_CALLBACK(drag_begin_handler), self ); g_signal_connect( self->tree_view, "drag-data-get", G_CALLBACK(drag_data_get_handler), self ); g_signal_connect( self->tree_view, "drag-data-received", G_CALLBACK(drag_data_received_handler), self ); g_signal_connect( self->tree_view, "drag-data-delete", G_CALLBACK(drag_data_delete_handler), self ); g_signal_connect_after( self->placeholder, "drag-begin", G_CALLBACK(drag_begin_handler), self ); g_signal_connect( self->placeholder, "drag-data-get", G_CALLBACK(drag_data_get_handler), self ); g_signal_connect( self->placeholder, "drag-data-received", G_CALLBACK(drag_data_received_handler), self ); g_signal_connect( self->placeholder, "drag-data-delete", G_CALLBACK(drag_data_delete_handler), self ); g_signal_connect( self->tree_view, "row-activated", G_CALLBACK(row_activated_handler), self ); g_signal_connect( self->store, "row-inserted", G_CALLBACK(row_inserted_handler), self ); g_signal_connect( self->store, "row-deleted", G_CALLBACK(row_deleted_handler), self ); g_signal_connect( self->search_entry, "next-match", G_CALLBACK(next_match_handler), self ); g_signal_connect( self->search_entry, "previous-match", G_CALLBACK(previous_match_handler), self ); g_signal_connect( self->search_entry, "search-changed", G_CALLBACK(search_changed_handler), self ); g_signal_connect( self->search_entry, "stop-search", G_CALLBACK(stop_search_handler), self ); g_object_bind_property( self, "searching", self->search_bar, "search-mode-enabled", G_BINDING_BIDIRECTIONAL ); g_object_bind_property_full( self, "playlist-count", self->placeholder, "visible", G_BINDING_DEFAULT, is_zero, NULL, NULL, NULL ); gtk_tree_view_enable_model_drag_source( GTK_TREE_VIEW(self->tree_view), GDK_BUTTON1_MASK, targets, G_N_ELEMENTS(targets), GDK_ACTION_COPY| GDK_ACTION_LINK| GDK_ACTION_MOVE ); gtk_tree_view_enable_model_drag_dest( GTK_TREE_VIEW(self->tree_view), targets, G_N_ELEMENTS(targets), GDK_ACTION_MOVE ); gtk_drag_dest_set( self->placeholder, GTK_DEST_DEFAULT_ALL, targets, G_N_ELEMENTS(targets), GDK_ACTION_MOVE ); gtk_widget_set_can_focus(self->tree_view, FALSE); gtk_tree_view_set_reorderable(GTK_TREE_VIEW(self->tree_view), FALSE); gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(self->tree_view), FALSE); gtk_tree_view_append_column (GTK_TREE_VIEW(self->tree_view), self->title_column); gtk_overlay_add_overlay(GTK_OVERLAY(self->overlay), self->placeholder); gtk_overlay_set_overlay_pass_through (GTK_OVERLAY(self->overlay), self->placeholder, TRUE); gtk_container_add(GTK_CONTAINER(self->overlay), self->tree_view); gtk_container_add(GTK_CONTAINER(self->scrolled_window), self->overlay); gtk_box_pack_end(GTK_BOX(self), self->scrolled_window, TRUE, TRUE, 0); gtk_container_add(GTK_CONTAINER(self->search_bar), self->search_entry); gtk_box_pack_start(GTK_BOX(self), self->search_bar, FALSE, TRUE, 0); G_OBJECT_CLASS(celluloid_playlist_widget_parent_class)->constructed(object); } static void set_property( GObject *object, guint property_id, const GValue *value, GParamSpec *pspec ) { CelluloidPlaylistWidget *self = CELLULOID_PLAYLIST_WIDGET(object); if(property_id == PROP_PLAYLIST_COUNT) { self->playlist_count = g_value_get_int64(value); } else if(property_id == PROP_SEARCHING) { self->searching = g_value_get_boolean(value); if(self->searching) { gtk_widget_grab_focus(self->search_entry); } } else { G_OBJECT_WARN_INVALID_PROPERTY_ID(object, property_id, pspec); } } static void get_property( GObject *object, guint property_id, GValue *value, GParamSpec *pspec ) { CelluloidPlaylistWidget *self = CELLULOID_PLAYLIST_WIDGET(object); if(property_id == PROP_PLAYLIST_COUNT) { g_value_set_int64(value, self->playlist_count); } else if(property_id == PROP_SEARCHING) { g_value_set_boolean(value, self->searching); } else { G_OBJECT_WARN_INVALID_PROPERTY_ID(object, property_id, pspec); } } static gboolean is_zero(GBinding *binding, const GValue *from, GValue *to, gpointer data) { g_value_set_boolean(to, g_value_get_int64(from) == 0); return TRUE; } static void drag_begin_handler(GtkWidget *widget, GdkDragContext *context, gpointer data) { const gint padding = 6; const gint border_width = 1; CelluloidPlaylistWidget *wgt = data; GtkTreeView *tree_view = GTK_TREE_VIEW(widget); GtkStyleContext *style = gtk_widget_get_style_context(widget); GtkTreeModel *model = gtk_tree_view_get_model(tree_view); GtkTreePath *path = NULL; GtkTreeIter iter; GdkWindow *window = gtk_widget_get_window(widget); PangoContext *pango_ctx = gtk_widget_get_pango_context(widget); PangoLayout *layout = pango_layout_new(pango_ctx); gint width = 0, height = 0; gint text_width = 0, text_height = 0; gint cell_x = 0, cell_y = 0; gchar *name = NULL; GdkRGBA *border_color = NULL; GdkRGBA *fg_color = NULL; cairo_surface_t *surface = NULL; cairo_t *cr = NULL; gtk_tree_view_get_path_at_pos( tree_view, wgt->last_x, wgt->last_y, NULL, NULL, &cell_x, &cell_y ); gtk_tree_view_get_cursor(tree_view, &path, NULL); gtk_tree_model_get_iter(model, &iter, path); gtk_tree_model_get(model, &iter, PLAYLIST_NAME_COLUMN, &name, -1); pango_layout_set_text(layout, name, (gint)strlen(name)); pango_layout_get_pixel_size(layout, &text_width, &text_height); gtk_cell_renderer_get_preferred_height( wgt->title_renderer, widget, NULL, &height ); width = text_width+2*(padding+border_width); height += 2*border_width; surface = gdk_window_create_similar_surface (window, CAIRO_CONTENT_COLOR, width, height); cr = cairo_create(surface); gtk_style_context_get( style, GTK_STATE_FLAG_NORMAL, GTK_STYLE_PROPERTY_COLOR, &fg_color, GTK_STYLE_PROPERTY_BORDER_COLOR, &border_color, NULL); gtk_render_background(style, cr, 0, 0, width, height); /* Draw border */ gdk_cairo_set_source_rgba(cr, border_color); cairo_set_line_width(cr, border_width); cairo_rectangle( cr, border_width/2.0, border_width/2.0, width-border_width, height-border_width ); cairo_stroke(cr); /* Draw text */ gdk_cairo_set_source_rgba(cr, fg_color); cairo_translate(cr, padding, (height-text_height)/2.0); pango_cairo_show_layout(cr, layout); cairo_surface_set_device_offset ( surface, (-1)*(MIN(cell_x+border_width, width-border_width)), (-1)*(cell_y+border_width) ); gtk_drag_set_icon_surface(context, surface); gdk_rgba_free(fg_color); gdk_rgba_free(border_color); cairo_destroy(cr); g_object_unref(layout); } static void drag_data_get_handler( GtkWidget *widget, GdkDragContext *context, GtkSelectionData *sel_data, guint info, guint time, gpointer data ) { gchar *type = gdk_atom_name(gtk_selection_data_get_target(sel_data)); gchar *text = get_uri_selected(data); if(g_strcmp0(type, "PLAYLIST_PATH") == 0) { CelluloidPlaylistWidget *wgt = data; GtkTreePath *path = NULL; gchar *path_str = NULL; GdkAtom atom = gdk_atom_intern_static_string("PLAYLIST_PATH"); gtk_tree_view_get_cursor (GTK_TREE_VIEW(wgt->tree_view), &path, NULL); path_str = gtk_tree_path_to_string(path); gtk_selection_data_set( sel_data, atom, 8, (const guchar *)path_str, (gint)strlen(path_str) ); g_free(path_str); } else if(g_strcmp0(type, "text/uri-list") == 0) { /* Only one URI can be selected at a time */ gchar *uris[] = {text, NULL}; gtk_selection_data_set_uris(sel_data, uris); } else { gtk_selection_data_set_text(sel_data, text, -1); } g_free(type); g_free(text); } static void drag_data_received_handler( GtkWidget *widget, GdkDragContext *context, gint x, gint y, GtkSelectionData *sel_data, guint info, guint time, gpointer data) { CelluloidPlaylistWidget *wgt = data; gboolean reorder = (widget == gtk_drag_get_source_widget(context)); #ifndef G_DISABLE_ASSERT /* Only used in an assertion below */ gchar *type = gdk_atom_name(gtk_selection_data_get_target(sel_data)); #endif if(reorder) { GtkListStore *store; const guchar *raw_data; gint src_index, dest_index; GtkTreeIter src_iter, dest_iter; GtkTreePath *src_path, *dest_path; GtkTreeViewDropPosition before_mask; GtkTreeViewDropPosition drop_pos; gboolean insert_before; gboolean dest_row_exist; store = wgt->store; raw_data = gtk_selection_data_get_data(sel_data); src_path = gtk_tree_path_new_from_string ((const gchar *)raw_data); src_index = gtk_tree_path_get_indices(src_path)[0]; before_mask = GTK_TREE_VIEW_DROP_BEFORE| GTK_TREE_VIEW_DROP_INTO_OR_BEFORE; dest_row_exist = gtk_tree_view_get_dest_row_at_pos ( GTK_TREE_VIEW(widget), x, y, &dest_path, &drop_pos ); wgt->dnd_delete = FALSE; g_assert(g_strcmp0(type, "PLAYLIST_PATH") == 0); g_assert(src_path); gtk_tree_model_get_iter( GTK_TREE_MODEL(store), &src_iter, src_path ); if(dest_row_exist) { g_assert(dest_path); dest_index = gtk_tree_path_get_indices(dest_path)[0]; gtk_tree_model_get_iter( GTK_TREE_MODEL(store), &dest_iter, dest_path ); } else { /* Set dest_iter to the last child */ GtkTreeIter iter; gboolean has_next; drop_pos = GTK_TREE_VIEW_DROP_AFTER; dest_index = -1; gtk_tree_model_get_iter_first (GTK_TREE_MODEL(store), &iter); do { dest_iter = iter; has_next = gtk_tree_model_iter_next (GTK_TREE_MODEL(store), &iter); dest_index++; } while(has_next); } insert_before = (drop_pos&before_mask || drop_pos == 0); if(insert_before) { gtk_list_store_move_before(store, &src_iter, &dest_iter); } else { gtk_list_store_move_after(store, &src_iter, &dest_iter); } g_signal_emit_by_name( wgt, "rows-reordered", src_index+(src_index>dest_index), dest_index+!insert_before ); gtk_tree_path_free(src_path); gtk_tree_path_free(dest_path); } else { g_signal_emit_by_name( wgt, "drag-data-received", context, x, y, sel_data, info, time, data ); } } static void drag_data_delete_handler( GtkWidget *widget, GdkDragContext *context, gpointer data ) { CelluloidPlaylistWidget *wgt = data; /* Prevent default handler from deleting the source row when reordering. * When reordering, dnd_delete will be set to FALSE in * drag_data_received_handler(). */ if(!wgt->dnd_delete) { g_signal_stop_emission_by_name(widget, "drag-data-delete"); } wgt->dnd_delete = TRUE; } static void row_activated_handler( GtkTreeView *tree_view, GtkTreePath *path, GtkTreeViewColumn *column, gpointer data ) { gint *indices = gtk_tree_path_get_indices(path); gint64 index = indices?indices[0]:-1; g_signal_emit_by_name(data, "row-activated", index); } static void row_inserted_handler( GtkTreeModel *tree_model, GtkTreePath *path, GtkTreeIter *iter, gpointer data ) { const gint pos = gtk_tree_path_get_indices(path)[0]; CELLULOID_PLAYLIST_WIDGET(data)->playlist_count++; g_signal_emit_by_name(data, "row-inserted", pos); g_object_notify(data, "playlist-count"); } static void row_deleted_handler(GtkTreeModel *tree_model, GtkTreePath *path, gpointer data) { const gint pos = gtk_tree_path_get_indices(path)[0]; CELLULOID_PLAYLIST_WIDGET(data)->playlist_count--; g_signal_emit_by_name(data, "row-deleted", pos); g_object_notify(data, "playlist-count"); } static void next_match_handler(GtkSearchEntry *entry, gpointer data) { find_match(data, FALSE, FALSE); } static void previous_match_handler(GtkSearchEntry *entry, gpointer data) { find_match(data, FALSE, TRUE); } static void search_changed_handler(GtkSearchEntry *entry, gpointer data) { find_match(data, TRUE, FALSE); } static void stop_search_handler(GtkSearchEntry *entry, gpointer data) { g_object_set(data, "searching", FALSE, NULL); } static gboolean mouse_press_handler(GtkWidget *widget, GdkEventButton *event, gpointer data) { CelluloidPlaylistWidget *wgt = data; GdkEventButton *btn_event = (GdkEventButton *)event; wgt->last_x = (gint)btn_event->x; wgt->last_y = (gint)btn_event->y; if( btn_event->type == GDK_BUTTON_PRESS && btn_event->button == 3 ) { const CelluloidMenuEntry entries[] = { CELLULOID_MENU_SEPARATOR, CELLULOID_MENU_ITEM(_("_Copy Location"), "win.copy-selected-playlist-item"), CELLULOID_MENU_ITEM(_("_Remove"), "win.remove-selected-playlist-item"), CELLULOID_MENU_SEPARATOR, CELLULOID_MENU_ITEM(_("_Add…"), "win.show-open-dialog((false, true))"), CELLULOID_MENU_ITEM(_("Add _Folder…"), "win.show-open-dialog((true, true))"), CELLULOID_MENU_ITEM(_("Add _Location…"), "win.show-open-location-dialog(true)"), CELLULOID_MENU_ITEM(_("_Shuffle"), "win.toggle-shuffle-playlist"), CELLULOID_MENU_ITEM(_("Loop _File"), "win.toggle-loop-file"), CELLULOID_MENU_ITEM(_("Loop _Playlist"), "win.toggle-loop-playlist"), CELLULOID_MENU_END }; gsize entries_offset = 0; GMenu *menu = g_menu_new(); GtkWidget *ctx_menu = NULL; if(!gtk_tree_view_get_path_at_pos( GTK_TREE_VIEW(widget), (gint)event->x, (gint)event->y, NULL, NULL, NULL, NULL )) { /* Skip the first section which only contains item-level * actions */ while(entries[++entries_offset].title); } celluloid_menu_build_menu(menu, entries+entries_offset, TRUE); g_menu_freeze(menu); ctx_menu = gtk_menu_new_from_model(G_MENU_MODEL(menu)); gtk_menu_attach_to_widget(GTK_MENU(ctx_menu), widget, NULL); gtk_widget_show_all(ctx_menu); gtk_menu_popup_at_pointer(GTK_MENU(ctx_menu), (GdkEvent *)event); } return FALSE; } static gchar * get_uri_selected(CelluloidPlaylistWidget *wgt) { GtkTreeIter iter; GtkTreePath *path = NULL; gchar *result = NULL; gboolean rc = FALSE; gtk_tree_view_get_cursor(GTK_TREE_VIEW(wgt->tree_view), &path, NULL); if(path) { rc = gtk_tree_model_get_iter (GTK_TREE_MODEL(wgt->store), &iter, path); } if(rc) { gtk_tree_model_get( GTK_TREE_MODEL(wgt->store), &iter, PLAYLIST_URI_COLUMN, &result, -1 ); } return result; } static void celluloid_playlist_widget_class_init(CelluloidPlaylistWidgetClass *klass) { GObjectClass *obj_class = G_OBJECT_CLASS(klass); GParamSpec *pspec = NULL; obj_class->constructed = constructed; obj_class->set_property = set_property; obj_class->get_property = get_property; pspec = g_param_spec_int64 ( "playlist-count", "Playlist count", "The number of items in the playlist", 0, G_MAXINT64, 0, G_PARAM_READABLE ); g_object_class_install_property(obj_class, PROP_PLAYLIST_COUNT, pspec); pspec = g_param_spec_boolean ( "searching", "Searching", "Whether or not the user is searching the playlist", FALSE, G_PARAM_READWRITE ); g_object_class_install_property(obj_class, PROP_SEARCHING, pspec); g_signal_new( "row-activated", G_TYPE_FROM_CLASS(klass), G_SIGNAL_RUN_FIRST, 0, NULL, NULL, g_cclosure_gen_marshal_VOID__INT64, G_TYPE_NONE, 1, G_TYPE_INT ); g_signal_new( "row-inserted", G_TYPE_FROM_CLASS(klass), G_SIGNAL_RUN_FIRST, 0, NULL, NULL, g_cclosure_marshal_VOID__INT, G_TYPE_NONE, 1, G_TYPE_INT ); g_signal_new( "row-deleted", G_TYPE_FROM_CLASS(klass), G_SIGNAL_RUN_FIRST, 0, NULL, NULL, g_cclosure_marshal_VOID__INT, G_TYPE_NONE, 1, G_TYPE_INT ); g_signal_new( "rows-reordered", G_TYPE_FROM_CLASS(klass), G_SIGNAL_RUN_FIRST, 0, NULL, NULL, g_cclosure_gen_marshal_VOID__INT_INT, G_TYPE_NONE, 2, G_TYPE_INT, G_TYPE_INT ); } static void celluloid_playlist_widget_init(CelluloidPlaylistWidget *wgt) { GtkStyleContext *style = NULL; wgt->playlist_count = 0; wgt->searching = FALSE; wgt->title_renderer = gtk_cell_renderer_text_new(); wgt->title_column = gtk_tree_view_column_new_with_attributes ( _("Playlist"), wgt->title_renderer, "text", PLAYLIST_NAME_COLUMN, "weight", PLAYLIST_WEIGHT_COLUMN, NULL ); wgt->scrolled_window = gtk_scrolled_window_new(NULL, NULL); wgt->search_bar = gtk_search_bar_new(); wgt->search_entry = gtk_search_entry_new(); wgt->placeholder = gtk_label_new(_("Playlist is empty")); wgt->overlay = gtk_overlay_new(); wgt->dnd_delete = TRUE; style = gtk_widget_get_style_context(wgt->placeholder); gtk_style_context_add_class(style, "dim-label"); gtk_orientable_set_orientation (GTK_ORIENTABLE(wgt), GTK_ORIENTATION_VERTICAL); gtk_widget_set_size_request (GTK_WIDGET(wgt), PLAYLIST_MIN_WIDTH, -1); gtk_tree_view_column_set_sizing (wgt->title_column, GTK_TREE_VIEW_COLUMN_AUTOSIZE); } GtkWidget * celluloid_playlist_widget_new() { return GTK_WIDGET(g_object_new(celluloid_playlist_widget_get_type(), NULL)); } gboolean celluloid_playlist_widget_empty(CelluloidPlaylistWidget *wgt) { GtkTreeIter iter; return !gtk_tree_model_get_iter_first(GTK_TREE_MODEL(wgt->store), &iter); } void celluloid_playlist_widget_set_indicator_pos( CelluloidPlaylistWidget *wgt, gint pos ) { GtkTreeIter iter; gboolean rc; rc = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(wgt->store), &iter); while(rc) { const PangoWeight weight = (pos-- == 0)? PANGO_WEIGHT_BOLD: PANGO_WEIGHT_NORMAL; gtk_list_store_set( wgt->store, &iter, PLAYLIST_WEIGHT_COLUMN, weight, -1 ); rc = gtk_tree_model_iter_next(GTK_TREE_MODEL(wgt->store), &iter); } } void celluloid_playlist_widget_copy_selected(CelluloidPlaylistWidget *wgt) { GtkTreePath *path = NULL; gtk_tree_view_get_cursor ( GTK_TREE_VIEW(wgt->tree_view), &path, NULL ); if(path) { GtkTreeIter iter; GtkTreeModel *model = GTK_TREE_MODEL(wgt->store); GValue value = G_VALUE_INIT; if(gtk_tree_model_get_iter(model, &iter, path)) { const gchar *uri; gtk_tree_model_get_value (model, &iter, PLAYLIST_URI_COLUMN, &value); uri = g_value_get_string(&value); if(uri) { GdkDisplay *display; GtkClipboard *clipboard; display = gdk_display_get_default(); clipboard = gtk_clipboard_get_default(display); gtk_clipboard_set_text (clipboard, uri, (gint)strlen(uri)); } } } } void celluloid_playlist_widget_remove_selected(CelluloidPlaylistWidget *wgt) { GtkTreePath *path = NULL; gtk_tree_view_get_cursor ( GTK_TREE_VIEW(wgt->tree_view), &path, NULL ); if(path) { GtkTreeIter iter; GtkTreeModel *model; model = GTK_TREE_MODEL(wgt->store); if(gtk_tree_model_get_iter(model, &iter, path)) { gtk_list_store_remove(wgt->store, &iter); } } } void celluloid_playlist_widget_queue_draw(CelluloidPlaylistWidget *wgt) { gtk_widget_queue_draw(GTK_WIDGET(wgt)); gtk_widget_queue_draw(wgt->tree_view); } void celluloid_playlist_widget_update_contents( CelluloidPlaylistWidget *wgt, GPtrArray* playlist ) { GtkListStore *store = wgt->store; gboolean iter_end = FALSE; gint64 old_playlist_count = wgt->playlist_count; GtkTreeIter iter; g_assert(playlist); g_signal_handlers_block_by_func(wgt->store, row_inserted_handler, wgt); g_signal_handlers_block_by_func(wgt->store, row_deleted_handler, wgt); iter_end = !gtk_tree_model_get_iter_first(GTK_TREE_MODEL(store), &iter); for(guint i = 0; i < playlist->len; i++) { CelluloidPlaylistEntry *entry= g_ptr_array_index(playlist, i); gchar *uri = entry->filename; gchar *title = entry->title; gchar *name = title?g_strdup(title):get_name_from_path(uri); /* Overwrite current entry if it doesn't match the new value */ if(!iter_end) { gchar *old_name = NULL; gchar *old_uri = NULL; gboolean name_update = FALSE; gboolean uri_update = FALSE; gtk_tree_model_get( GTK_TREE_MODEL(store), &iter, PLAYLIST_NAME_COLUMN, &old_name, PLAYLIST_URI_COLUMN, &old_uri, -1 ); name_update = (g_strcmp0(name, old_name) != 0); uri_update = (g_strcmp0(uri, old_uri) != 0); /* Only set the name if either the title can be * retrieved or the name is unset. This preserves the * correct title if it becomes unavailable later such as * when restarting mpv. */ if(name_update && (!old_name || title || uri_update)) { gtk_list_store_set( store, &iter, PLAYLIST_NAME_COLUMN, name, -1 ); } if(uri_update) { gtk_list_store_set( store, &iter, PLAYLIST_URI_COLUMN, uri, -1 ); } iter_end = !gtk_tree_model_iter_next (GTK_TREE_MODEL(store), &iter); g_free(old_name); g_free(old_uri); } /* Append entries to the playlist if there are fewer entries in * the playlist widget than given playlist. */ else { gtk_list_store_append(store, &iter); gtk_list_store_set( store, &iter, PLAYLIST_NAME_COLUMN, name, -1 ); gtk_list_store_set( store, &iter, PLAYLIST_URI_COLUMN, uri, -1 ); wgt->playlist_count++; } g_free(name); } /* If there are more entries in the playlist widget than given playlist, * remove the excess entries from the playlist widget. */ if(!iter_end) { while(gtk_list_store_remove(store, &iter)) { wgt->playlist_count--; } } if(!old_playlist_count && wgt->playlist_count) { GtkTreePath *path = gtk_tree_path_new_first(); gtk_tree_view_set_cursor (GTK_TREE_VIEW(wgt->tree_view), path, NULL, FALSE); gtk_tree_path_free(path); } g_signal_handlers_unblock_by_func(wgt->store, row_inserted_handler, wgt); g_signal_handlers_unblock_by_func(wgt->store, row_deleted_handler, wgt); g_object_notify(G_OBJECT(wgt), "playlist-count"); } GPtrArray * celluloid_playlist_widget_get_contents(CelluloidPlaylistWidget *wgt) { gboolean rc = TRUE; GtkTreeModel *model = GTK_TREE_MODEL(wgt->store); GtkTreeIter iter; GPtrArray *result = NULL; rc = gtk_tree_model_get_iter_first(model, &iter); result = g_ptr_array_new_full( 1, (GDestroyNotify) celluloid_playlist_entry_free ); while(rc) { gchar *uri = NULL; gchar *name = NULL; gtk_tree_model_get( model, &iter, PLAYLIST_URI_COLUMN, &uri, PLAYLIST_NAME_COLUMN, &name, -1 ); g_ptr_array_add(result, celluloid_playlist_entry_new(uri, name)); rc = gtk_tree_model_iter_next(model, &iter); } return result; } celluloid-0.20/src/celluloid-playlist-widget.h000066400000000000000000000033241373135401300214450ustar00rootroot00000000000000/* * Copyright (c) 2014-2019 gnome-mpv * * This file is part of Celluloid. * * Celluloid is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Celluloid is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Celluloid. If not, see . */ #ifndef PLAYLIST_WIDGET_H #define PLAYLIST_WIDGET_H #include #include #include #include "celluloid-metadata-cache.h" G_BEGIN_DECLS #define CELLULOID_TYPE_PLAYLIST_WIDGET (celluloid_playlist_widget_get_type ()) G_DECLARE_FINAL_TYPE(CelluloidPlaylistWidget, celluloid_playlist_widget, CELLULOID, PLAYLIST_WIDGET, GtkBox) GtkWidget * celluloid_playlist_widget_new(void); gboolean celluloid_playlist_widget_empty(CelluloidPlaylistWidget *wgt); void celluloid_playlist_widget_set_indicator_pos( CelluloidPlaylistWidget *wgt, gint pos ); void celluloid_playlist_widget_copy_selected(CelluloidPlaylistWidget *wgt); void celluloid_playlist_widget_remove_selected(CelluloidPlaylistWidget *wgt); void celluloid_playlist_widget_queue_draw(CelluloidPlaylistWidget *wgt); void celluloid_playlist_widget_update_contents( CelluloidPlaylistWidget *wgt, GPtrArray* playlist ); GPtrArray * celluloid_playlist_widget_get_contents(CelluloidPlaylistWidget *wgt); G_END_DECLS #endif celluloid-0.20/src/celluloid-plugins-manager-item.c000066400000000000000000000152351373135401300223470ustar00rootroot00000000000000/* * Copyright (c) 2016-2019 gnome-mpv * * This file is part of Celluloid. * * Celluloid is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Celluloid is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Celluloid. If not, see . */ #include #include #include #include #include #include "celluloid-plugins-manager-item.h" enum { PROP_0, PROP_PARENT, PROP_TITLE, PROP_PATH, N_PROPERTIES }; struct _CelluloidPluginsManagerItem { GtkListBoxRow parent; GtkWindow *parent_window; gchar *title; gchar *path; }; struct _CelluloidPluginsManagerItemClass { GtkListBoxRowClass parent_class; }; G_DEFINE_TYPE(CelluloidPluginsManagerItem, celluloid_plugins_manager_item, GTK_TYPE_LIST_BOX_ROW) static void celluloid_plugins_manager_item_constructed(GObject *object); static void celluloid_plugins_manager_item_finalize(GObject *object); static void celluloid_plugins_manager_item_set_property( GObject *object, guint property_id, const GValue *value, GParamSpec *pspec ); static void celluloid_plugins_manager_item_get_property( GObject *object, guint property_id, GValue *value, GParamSpec *pspec ); static void remove_handler(GtkButton *button, gpointer data); static void celluloid_plugins_manager_item_constructed(GObject *object) { CelluloidPluginsManagerItem *self = CELLULOID_PLUGINS_MANAGER_ITEM(object); GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); GtkWidget *title_label = gtk_label_new(self->title); GtkWidget *remove_button = gtk_button_new_with_label(_("Remove")); g_signal_connect( remove_button, "clicked", G_CALLBACK(remove_handler), self ); gtk_widget_set_halign(title_label, GTK_ALIGN_START); gtk_label_set_ellipsize(GTK_LABEL(title_label), PANGO_ELLIPSIZE_END); gtk_list_box_row_set_selectable(GTK_LIST_BOX_ROW(self), FALSE); gtk_box_pack_start(GTK_BOX(box), title_label, TRUE, TRUE, 6); gtk_box_pack_end(GTK_BOX(box), remove_button, FALSE, FALSE, 0); gtk_container_add(GTK_CONTAINER(self), box); G_OBJECT_CLASS(celluloid_plugins_manager_item_parent_class) ->constructed(object); } static void celluloid_plugins_manager_item_finalize(GObject *object) { CelluloidPluginsManagerItem *self = CELLULOID_PLUGINS_MANAGER_ITEM(object); g_free(self->title); g_free(self->path); G_OBJECT_CLASS(celluloid_plugins_manager_item_parent_class) ->finalize(object); } static void celluloid_plugins_manager_item_set_property( GObject *object, guint property_id, const GValue *value, GParamSpec *pspec ) { CelluloidPluginsManagerItem *self = CELLULOID_PLUGINS_MANAGER_ITEM(object); if(property_id == PROP_PARENT) { self->parent_window = g_value_get_pointer(value); } else if(property_id == PROP_TITLE) { g_free(self->title); self->title = g_value_dup_string(value); } else if(property_id == PROP_PATH) { g_free(self->path); self->path = g_value_dup_string(value); } else { G_OBJECT_WARN_INVALID_PROPERTY_ID(object, property_id, pspec); } } static void celluloid_plugins_manager_item_get_property( GObject *object, guint property_id, GValue *value, GParamSpec *pspec ) { CelluloidPluginsManagerItem *self = CELLULOID_PLUGINS_MANAGER_ITEM(object); if(property_id == PROP_PARENT) { g_value_set_pointer(value, self->parent_window); } else if(property_id == PROP_TITLE) { g_value_set_string(value, self->title); } else if(property_id == PROP_PATH) { g_value_set_string(value, self->path); } else { G_OBJECT_WARN_INVALID_PROPERTY_ID(object, property_id, pspec); } } static void remove_handler(GtkButton *button, gpointer data) { CelluloidPluginsManagerItem *item = data; GFile *file = g_file_new_for_path(item->path); GError *error = NULL; GtkWidget *confirm_dialog = gtk_message_dialog_new ( item->parent_window, GTK_DIALOG_MODAL| GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_QUESTION, GTK_BUTTONS_YES_NO, _("Are you sure you want to " "remove this script? This " "action cannot be undone.")); if(gtk_dialog_run(GTK_DIALOG(confirm_dialog)) == GTK_RESPONSE_YES) { g_file_delete(file, NULL, &error); } gtk_widget_destroy(confirm_dialog); if(error) { GtkWidget *error_dialog; error_dialog = gtk_message_dialog_new ( item->parent_window, GTK_DIALOG_MODAL| GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, _("Failed to delete file '%s'. " "Reason: %s"), g_file_get_uri(file), error->message ); g_warning( "Failed to delete file '%s'. Reason: %s", g_file_get_uri(file), error->message ); gtk_dialog_run(GTK_DIALOG(error_dialog)); gtk_widget_destroy(error_dialog); g_error_free(error); } } static void celluloid_plugins_manager_item_class_init(CelluloidPluginsManagerItemClass *klass) { GObjectClass *obj_class = G_OBJECT_CLASS(klass); GParamSpec *pspec = NULL; obj_class->constructed = celluloid_plugins_manager_item_constructed; obj_class->finalize = celluloid_plugins_manager_item_finalize; obj_class->set_property = celluloid_plugins_manager_item_set_property; obj_class->get_property = celluloid_plugins_manager_item_get_property; pspec = g_param_spec_pointer ( "parent", "Parent", "Parent window for the dialogs", G_PARAM_CONSTRUCT_ONLY|G_PARAM_READWRITE ); g_object_class_install_property(obj_class, PROP_PARENT, pspec); pspec = g_param_spec_string ( "title", "Title", "The string to display as the title of the item", "", G_PARAM_CONSTRUCT_ONLY|G_PARAM_READWRITE ); g_object_class_install_property(obj_class, PROP_TITLE, pspec); pspec = g_param_spec_string ( "path", "Path", "The path to the file that this item references", "", G_PARAM_CONSTRUCT_ONLY|G_PARAM_READWRITE ); g_object_class_install_property(obj_class, PROP_PATH, pspec); } static void celluloid_plugins_manager_item_init(CelluloidPluginsManagerItem *item) { item->parent_window = NULL; item->title = NULL; item->path = NULL; } GtkWidget * celluloid_plugins_manager_item_new( GtkWindow *parent, const gchar *title, const gchar *path ) { return GTK_WIDGET(g_object_new( celluloid_plugins_manager_item_get_type(), "parent", parent, "title", title, "path", path, NULL)); } celluloid-0.20/src/celluloid-plugins-manager-item.h000066400000000000000000000023121373135401300223440ustar00rootroot00000000000000/* * Copyright (c) 2016-2019 gnome-mpv * * This file is part of Celluloid. * * Celluloid is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Celluloid is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Celluloid. If not, see . */ #ifndef PLUGINS_MANAGER_ITEM_H #define PLUGINS_MANAGER_ITEM_H #include #include #include G_BEGIN_DECLS #define CELLULOID_TYPE_PLUGINS_MANAGER_ITEM (celluloid_plugins_manager_item_get_type ()) G_DECLARE_FINAL_TYPE(CelluloidPluginsManagerItem, celluloid_plugins_manager_item, CELLULOID, PLUGINS_MANAGER_ITEM, GtkListBoxRow) GtkWidget * celluloid_plugins_manager_item_new( GtkWindow *parent, const gchar *title, const gchar *path ); G_END_DECLS #endif celluloid-0.20/src/celluloid-plugins-manager.c000066400000000000000000000252421373135401300214120ustar00rootroot00000000000000/* * Copyright (c) 2016-2019 gnome-mpv * * This file is part of Celluloid. * * Celluloid is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Celluloid is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Celluloid. If not, see . */ #include #include "celluloid-plugins-manager.h" #include "celluloid-plugins-manager-item.h" #include "celluloid-file-chooser.h" #include "celluloid-common.h" enum { PROP_0, PROP_PARENT, N_PROPERTIES }; struct _CelluloidPluginsManager { GtkGrid parent; GtkWindow *parent_window; GtkWidget *list_box; GtkWidget *placeholder_label; GFileMonitor *monitor; gchar *directory; }; struct _CelluloidPluginsManagerClass { GtkGridClass parent_class; }; G_DEFINE_TYPE(CelluloidPluginsManager, celluloid_plugins_manager, GTK_TYPE_GRID) static void celluloid_plugins_manager_constructed(GObject *object); static void celluloid_plugins_manager_finalize(GObject *object); static void celluloid_plugins_manager_set_property( GObject *object, guint property_id, const GValue *value, GParamSpec *pspec ); static void celluloid_plugins_manager_get_property( GObject *object, guint property_id, GValue *value, GParamSpec *pspec ); static void add_handler(GtkButton *button, gpointer data); static void drag_data_handler( GtkWidget *widget, GdkDragContext *context, gint x, gint y, GtkSelectionData *sel_data, guint info, guint time, gpointer data); static void changed_handler( GFileMonitor *monitor, GFile *file, GFile *other_file, GFileMonitorEvent event_type, gpointer data ); static void copy_file_to_directory(CelluloidPluginsManager *pmgr, GFile *src); static void celluloid_plugins_manager_constructed(GObject *object) { CelluloidPluginsManager *self = CELLULOID_PLUGINS_MANAGER(object); gchar *scripts_dir = get_scripts_dir_path(); celluloid_plugins_manager_set_directory(self, scripts_dir); g_free(scripts_dir); G_OBJECT_CLASS(celluloid_plugins_manager_parent_class) ->constructed(object); } static void celluloid_plugins_manager_finalize(GObject *object) { CelluloidPluginsManager *pmgr = CELLULOID_PLUGINS_MANAGER(object); g_clear_object(&pmgr->monitor); g_free(pmgr->directory); G_OBJECT_CLASS(celluloid_plugins_manager_parent_class) ->finalize(object); } static void celluloid_plugins_manager_set_property( GObject *object, guint property_id, const GValue *value, GParamSpec *pspec ) { CelluloidPluginsManager *self = CELLULOID_PLUGINS_MANAGER(object); if(property_id == PROP_PARENT) { self->parent_window = g_value_get_pointer(value); } else { G_OBJECT_WARN_INVALID_PROPERTY_ID(object, property_id, pspec); } } static void celluloid_plugins_manager_get_property( GObject *object, guint property_id, GValue *value, GParamSpec *pspec ) { CelluloidPluginsManager *self = CELLULOID_PLUGINS_MANAGER(object); if(property_id == PROP_PARENT) { g_value_set_pointer(value, self->parent_window); } else { G_OBJECT_WARN_INVALID_PROPERTY_ID(object, property_id, pspec); } } static void add_handler(GtkButton *button, gpointer data) { CelluloidPluginsManager *pmgr = data; CelluloidFileChooser *dialog = NULL; GtkFileFilter *filter; GtkFileChooser *chooser; GFile *src = NULL; dialog = celluloid_file_chooser_new( _("Add Plugin"), pmgr->parent_window, GTK_FILE_CHOOSER_ACTION_OPEN ); filter = NULL; chooser = GTK_FILE_CHOOSER(dialog); filter = gtk_file_filter_new(); gtk_file_filter_set_name(filter, _("All Files")); gtk_file_filter_add_pattern(filter, "*"); gtk_file_chooser_add_filter(chooser, filter); filter = gtk_file_filter_new(); gtk_file_filter_set_name(filter, _("Lua Plugins")); gtk_file_filter_add_mime_type(filter, "text/x-lua"); gtk_file_chooser_add_filter(chooser, filter); gtk_file_chooser_set_filter(chooser, filter); filter = gtk_file_filter_new(); gtk_file_filter_set_name(filter, _("JavaScript Plugins")); gtk_file_filter_add_mime_type(filter, "application/javascript"); gtk_file_chooser_add_filter(chooser, filter); filter = gtk_file_filter_new(); gtk_file_filter_set_name(filter, _("C Plugins")); gtk_file_filter_add_mime_type(filter, "application/x-sharedlib"); gtk_file_chooser_add_filter(chooser, filter); if(celluloid_file_chooser_run(dialog) == GTK_RESPONSE_ACCEPT) { src = gtk_file_chooser_get_file(chooser); } celluloid_file_chooser_destroy(dialog); copy_file_to_directory(pmgr, src); g_clear_object(&src); } static void drag_data_handler( GtkWidget *widget, GdkDragContext *context, gint x, gint y, GtkSelectionData *sel_data, guint info, guint time, gpointer data) { gchar **uri_list = gtk_selection_data_get_uris(sel_data); g_assert(uri_list); for(gint i = 0; uri_list[i]; i++) { GFile *file = g_file_new_for_uri(uri_list[i]); copy_file_to_directory(data, file); g_clear_object(&file); } g_strfreev(uri_list); } static void changed_handler( GFileMonitor *monitor, GFile *file, GFile *other_file, GFileMonitorEvent event_type, gpointer data ) { CelluloidPluginsManager *pmgr = data; GDir *dir = NULL; const gchar *filename = NULL; gboolean empty = TRUE; const GFileMonitorEvent mask = G_FILE_MONITOR_EVENT_CREATED| G_FILE_MONITOR_EVENT_DELETED| G_FILE_MONITOR_EVENT_UNMOUNTED; if(event_type&mask) { g_assert(pmgr->directory); dir = g_dir_open(pmgr->directory, 0, NULL); } if(dir) { GtkContainer *list_box; GList *iter; list_box = GTK_CONTAINER(pmgr->list_box); iter = gtk_container_get_children(list_box); while(iter) { gtk_widget_destroy(iter->data); iter = g_list_next(iter); } do { gchar *full_path; filename = g_dir_read_name(dir); full_path = g_build_filename (pmgr->directory, filename, NULL); if(g_file_test(full_path, G_FILE_TEST_IS_REGULAR)) { GtkWidget *item; item = celluloid_plugins_manager_item_new ( pmgr->parent_window, filename, full_path ); gtk_container_add (GTK_CONTAINER(pmgr->list_box), item); empty = FALSE; } g_free(full_path); } while(filename); gtk_widget_show_all(pmgr->list_box); gtk_widget_set_visible(pmgr->placeholder_label, empty); g_dir_close(dir); } } static void copy_file_to_directory(CelluloidPluginsManager *pmgr, GFile *src) { gchar *dest_path = NULL; GFile *dest = NULL; GError *error = NULL; if(src) { g_assert(pmgr->directory); dest_path = g_build_filename( pmgr->directory, g_file_get_basename(src), NULL ); dest = g_file_new_for_path(dest_path); g_file_copy( src, dest, G_FILE_COPY_NONE, NULL, NULL, NULL, &error ); } if(error) { GtkWidget *error_dialog = NULL; gchar *src_path = NULL; src_path = g_file_get_path(src)?:g_file_get_uri(src); error_dialog = gtk_message_dialog_new ( pmgr->parent_window, GTK_DIALOG_MODAL| GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, _("Failed to copy file from '%s' " "to '%s'. Reason: %s"), src_path, dest_path, error->message ); g_warning( "Failed to copy file from '%s' to '%s'. " "Reason: %s", src_path, dest_path, error->message ); gtk_dialog_run(GTK_DIALOG(error_dialog)); gtk_widget_destroy(error_dialog); g_error_free(error); g_free(src_path); } g_clear_object(&dest); g_free(dest_path); } static void celluloid_plugins_manager_class_init(CelluloidPluginsManagerClass *klass) { GObjectClass *obj_class = G_OBJECT_CLASS(klass); GParamSpec *pspec = NULL; obj_class->constructed = celluloid_plugins_manager_constructed; obj_class->finalize = celluloid_plugins_manager_finalize; obj_class->set_property = celluloid_plugins_manager_set_property; obj_class->get_property = celluloid_plugins_manager_get_property; pspec = g_param_spec_pointer ( "parent", "Parent", "Parent window for the dialogs", G_PARAM_CONSTRUCT_ONLY|G_PARAM_READWRITE ); g_object_class_install_property(obj_class, PROP_PARENT, pspec); } static void celluloid_plugins_manager_init(CelluloidPluginsManager *pmgr) { GtkWidget *scrolled_window = gtk_scrolled_window_new(NULL, NULL); GtkWidget *overlay = gtk_overlay_new(); GtkWidget *add_button = gtk_button_new_with_label("+"); pmgr->list_box = gtk_list_box_new(); pmgr->placeholder_label = gtk_label_new(_("No plugins found")); pmgr->parent_window = NULL; pmgr->monitor = NULL; pmgr->directory = NULL; g_signal_connect( add_button, "clicked", G_CALLBACK(add_handler), pmgr ); g_signal_connect( pmgr->list_box, "drag-data-received", G_CALLBACK(drag_data_handler), pmgr ); gtk_drag_dest_set( pmgr->list_box, GTK_DEST_DEFAULT_ALL, NULL, 0, GDK_ACTION_LINK ); gtk_drag_dest_add_uri_targets(pmgr->list_box); gtk_widget_set_hexpand(GTK_WIDGET(scrolled_window), TRUE); gtk_widget_set_vexpand(GTK_WIDGET(scrolled_window), TRUE); gtk_widget_set_tooltip_text(add_button, _("Add Plugin")); gtk_widget_set_sensitive(pmgr->placeholder_label, FALSE); gtk_widget_set_no_show_all(pmgr->placeholder_label, TRUE); gtk_widget_show(pmgr->placeholder_label); gtk_container_add(GTK_CONTAINER(overlay), scrolled_window); gtk_overlay_add_overlay(GTK_OVERLAY(overlay), pmgr->placeholder_label); gtk_overlay_set_overlay_pass_through( GTK_OVERLAY(overlay), pmgr->placeholder_label, TRUE ); gtk_grid_attach( GTK_GRID(pmgr), overlay, 0, 0, 1, 1 ); gtk_grid_attach( GTK_GRID(pmgr), add_button, 0, 1, 1, 1 ); gtk_container_add(GTK_CONTAINER(scrolled_window), pmgr->list_box); } GtkWidget * celluloid_plugins_manager_new(GtkWindow *parent) { return g_object_new( celluloid_plugins_manager_get_type(), "parent", parent, NULL); } void celluloid_plugins_manager_set_directory( CelluloidPluginsManager *pmgr, const gchar *path ) { GFile *directory = g_file_new_for_path(path); g_clear_object(&pmgr->monitor); g_free(pmgr->directory); pmgr->monitor = g_file_monitor_directory( directory, G_FILE_MONITOR_NONE, NULL, NULL ); pmgr->directory = g_strdup(path); if(pmgr->monitor) { g_signal_connect( pmgr->monitor, "changed", G_CALLBACK(changed_handler), pmgr ); changed_handler( pmgr->monitor, NULL, NULL, G_FILE_MONITOR_EVENT_CREATED, pmgr ); } else { g_warning("Failed to monitor directory %s", path); } g_object_unref(directory); } celluloid-0.20/src/celluloid-plugins-manager.h000066400000000000000000000023231373135401300214120ustar00rootroot00000000000000/* * Copyright (c) 2016-2019 gnome-mpv * * This file is part of Celluloid. * * Celluloid is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Celluloid is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Celluloid. If not, see . */ #ifndef PLUGINS_MANAGER_H #define PLUGINS_MANAGER_H #include #include #include G_BEGIN_DECLS #define CELLULOID_TYPE_PLUGINS_MANAGER (celluloid_plugins_manager_get_type ()) G_DECLARE_FINAL_TYPE(CelluloidPluginsManager, celluloid_plugins_manager, CELLULOID, PLUGINS_MANAGER, GtkGrid) GtkWidget * celluloid_plugins_manager_new(GtkWindow *parent); void celluloid_plugins_manager_set_directory( CelluloidPluginsManager *pmgr, const gchar *path ); G_END_DECLS #endif celluloid-0.20/src/celluloid-preferences-dialog.c000066400000000000000000000263661373135401300220670ustar00rootroot00000000000000/* * Copyright (c) 2014-2020 gnome-mpv * * This file is part of Celluloid. * * Celluloid is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Celluloid is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Celluloid. If not, see . */ #include #include #include #include #include #include "celluloid-preferences-dialog.h" #include "celluloid-plugins-manager.h" #include "celluloid-main-window.h" #include "celluloid-def.h" typedef struct PreferencesDialogItem PreferencesDialogItem; typedef enum PreferencesDialogItemType PreferencesDialogItemType; struct _CelluloidPreferencesDialog { GtkDialog parent_instance; GSettings *settings; GtkWidget *notebook; }; struct _CelluloidPreferencesDialogClass { GtkDialogClass parent_class; }; enum PreferencesDialogItemType { ITEM_TYPE_INVALID, ITEM_TYPE_GROUP, ITEM_TYPE_CHECK_BOX, ITEM_TYPE_FILE_CHOOSER, ITEM_TYPE_LABEL, ITEM_TYPE_TEXT_BOX }; struct PreferencesDialogItem { const gchar *label; const gchar *key; PreferencesDialogItemType type; }; G_DEFINE_TYPE(CelluloidPreferencesDialog, celluloid_preferences_dialog, GTK_TYPE_DIALOG) static void file_set_handler(GtkFileChooserButton *widget, gpointer data) { GtkWidget *toplevel = gtk_widget_get_toplevel(GTK_WIDGET(widget)); CelluloidPreferencesDialog *dlg = CELLULOID_PREFERENCES_DIALOG(toplevel); GtkFileChooser *chooser = GTK_FILE_CHOOSER(widget); const gchar *key = data; gchar *filename = gtk_file_chooser_get_filename(chooser)?:g_strdup(""); g_settings_set_string(dlg->settings, key, filename); g_free(filename); } static void response_handler(GtkDialog *dialog, gint response_id) { CelluloidPreferencesDialog *dlg = CELLULOID_PREFERENCES_DIALOG(dialog); if(response_id == GTK_RESPONSE_ACCEPT) { g_settings_apply(dlg->settings); } else { g_settings_revert(dlg->settings); } g_object_unref(dlg->settings); } static gboolean key_press_handler(GtkWidget *widget, GdkEventKey *event) { guint keyval = event->keyval; guint state = event->state; const guint mod_mask = GDK_MODIFIER_MASK &~(GDK_SHIFT_MASK |GDK_LOCK_MASK |GDK_MOD2_MASK |GDK_MOD3_MASK |GDK_MOD4_MASK |GDK_MOD5_MASK); if((state&mod_mask) == 0 && keyval == GDK_KEY_Return) { gtk_dialog_response(GTK_DIALOG(widget), GTK_RESPONSE_ACCEPT); } return GTK_WIDGET_CLASS(celluloid_preferences_dialog_parent_class) ->key_press_event(widget, event); } static void free_signal_data(gpointer data, GClosure *closure) { g_free(data); } static GtkWidget * build_page(const PreferencesDialogItem *items, GSettings *settings) { GtkWidget *grid = gtk_grid_new(); gtk_container_set_border_width(GTK_CONTAINER(grid), 12); gtk_grid_set_row_spacing(GTK_GRID(grid), 6); gtk_grid_set_column_spacing(GTK_GRID(grid), 12); for(gint i = 0; items[i].type != ITEM_TYPE_INVALID; i++) { const gchar *label = items[i].label; const gchar *key = items[i].key; const PreferencesDialogItemType type = items[i].type; GtkWidget *widget = NULL; gboolean separate_label = FALSE; gint width = 1; gint xpos = 0; if(type == ITEM_TYPE_GROUP) { widget = gtk_label_new(label); width = 2; gtk_label_set_use_markup(GTK_LABEL(widget), TRUE); gtk_widget_set_halign(widget, GTK_ALIGN_START); gtk_widget_set_margin_top(widget, 12); } else if(type == ITEM_TYPE_CHECK_BOX) { widget = gtk_check_button_new_with_label(label); width = 2; g_settings_bind( settings, key, widget, "active", G_SETTINGS_BIND_DEFAULT ); } else if(type == ITEM_TYPE_FILE_CHOOSER) { GtkFileChooser *chooser; GtkFileFilter *filter; gchar *filename; widget = gtk_file_chooser_button_new (label, GTK_FILE_CHOOSER_ACTION_OPEN); chooser = GTK_FILE_CHOOSER(widget); filter = gtk_file_filter_new(); filename = g_settings_get_string(settings, key); separate_label = TRUE; xpos = 1; gtk_file_filter_add_mime_type(filter, "text/plain"); gtk_file_chooser_set_filter(chooser, filter); gtk_widget_set_hexpand(widget, TRUE); gtk_widget_set_size_request(widget, 100, -1); gtk_file_chooser_set_filename(chooser, filename); /* For simplicity, changes made to the GSettings * database externally won't be reflected immediately * for this type of widget. */ g_signal_connect_data( widget, "file-set", G_CALLBACK(file_set_handler), g_strdup(key), free_signal_data, 0 ); g_free(filename); } else if(type == ITEM_TYPE_TEXT_BOX) { widget = gtk_entry_new(); separate_label = TRUE; xpos = 1; gtk_widget_set_hexpand(widget, TRUE); g_settings_bind( settings, key, widget, "text", G_SETTINGS_BIND_DEFAULT ); } else if(type == ITEM_TYPE_LABEL) { widget = gtk_label_new(label); gtk_widget_set_halign(widget, GTK_ALIGN_START); } g_assert(widget); g_assert(xpos == 0 || xpos == 1); if(i == 0) { gtk_widget_set_margin_top(widget, 0); } if(type != ITEM_TYPE_GROUP) { gtk_widget_set_margin_start(widget, 12); } /* Expand the widget to fill both columns if it usually needs a * separate label but none is provided. */ if(separate_label && !label) { width = 2; xpos = 0; } gtk_grid_attach(GTK_GRID(grid), widget, xpos, i, width, 1); if(separate_label && label) { GtkWidget *label_widget = gtk_label_new(label); /* The grid should only have 2 columns, so the previous * widget connot be wider than 1 column if it needs a * seperate label. */ g_assert(width == 1); gtk_grid_attach( GTK_GRID(grid), label_widget, 1-xpos, i, 1, 1 ); gtk_widget_set_halign(label_widget, GTK_ALIGN_START); gtk_widget_set_hexpand(label_widget, FALSE); gtk_widget_set_margin_start(label_widget, 12); } } return grid; } static void preferences_dialog_constructed(GObject *obj) { gboolean csd_enabled; g_object_get(obj, "use-header-bar", &csd_enabled, NULL); if(!csd_enabled) { GtkWidget *content_area; GtkWidget *notebook; content_area = gtk_dialog_get_content_area(GTK_DIALOG(obj)); notebook = CELLULOID_PREFERENCES_DIALOG(obj)->notebook; gtk_widget_set_margin_bottom(content_area, 12); gtk_widget_set_margin_bottom(notebook, 12); } G_OBJECT_CLASS(celluloid_preferences_dialog_parent_class)->constructed(obj); } static void celluloid_preferences_dialog_class_init(CelluloidPreferencesDialogClass *klass) { GtkWidgetClass *wid_class = GTK_WIDGET_CLASS(klass); wid_class->key_press_event = key_press_handler; GTK_DIALOG_CLASS(klass)->response = response_handler; G_OBJECT_CLASS(klass)->constructed = preferences_dialog_constructed; gtk_widget_class_set_css_name(wid_class, "celluloid-preferences-dialog"); } static void celluloid_preferences_dialog_init(CelluloidPreferencesDialog *dlg) { const PreferencesDialogItem interface_items[] = { {_("Automatically resize window to fit video"), "autofit-enable", ITEM_TYPE_CHECK_BOX}, {_("Enable client-side decorations"), "csd-enable", ITEM_TYPE_CHECK_BOX}, {_("Enable dark theme"), "dark-theme-enable", ITEM_TYPE_CHECK_BOX}, {_("Use floating controls in windowed mode"), "always-use-floating-controls", ITEM_TYPE_CHECK_BOX}, {_("Autohide mouse cursor in windowed mode"), "always-autohide-cursor", ITEM_TYPE_CHECK_BOX}, {_("Use skip buttons for controlling playlist"), "use-skip-buttons-for-playlist", ITEM_TYPE_CHECK_BOX}, {_("Remember last file's location"), "last-folder-enable", ITEM_TYPE_CHECK_BOX}, {NULL, NULL, ITEM_TYPE_INVALID} }; const PreferencesDialogItem config_items[] = { {_("Load MPV configuration file"), "mpv-config-enable", ITEM_TYPE_CHECK_BOX}, {_("MPV configuration file:"), "mpv-config-file", ITEM_TYPE_FILE_CHOOSER}, {_("Load MPV input configuration file"), "mpv-input-config-enable", ITEM_TYPE_CHECK_BOX}, {_("MPV input configuration file:"), "mpv-input-config-file", ITEM_TYPE_FILE_CHOOSER}, {NULL, NULL, ITEM_TYPE_INVALID} }; const PreferencesDialogItem misc_items[] = { {_("Always open new window"), "always-open-new-window", ITEM_TYPE_CHECK_BOX}, {_("Ignore playback errors"), "ignore-playback-errors", ITEM_TYPE_CHECK_BOX}, {_("Prefetch metadata"), "prefetch-metadata", ITEM_TYPE_CHECK_BOX}, {_("Enable MPRIS support"), "mpris-enable", ITEM_TYPE_CHECK_BOX}, {_("Enable media keys support"), "media-keys-enable", ITEM_TYPE_CHECK_BOX}, {_("Extra MPV options:"), NULL, ITEM_TYPE_LABEL}, {NULL, "mpv-options", ITEM_TYPE_TEXT_BOX}, {NULL, NULL, ITEM_TYPE_INVALID} }; GtkWidget *content_area; GdkGeometry geom; /* This 'locks' the height of the dialog while allowing the width to be * freely adjusted. */ geom.max_width = G_MAXINT; geom.max_height = 0; dlg->settings = g_settings_new(CONFIG_ROOT); dlg->notebook = gtk_notebook_new(); content_area = gtk_dialog_get_content_area(GTK_DIALOG(dlg)); g_settings_delay(dlg->settings); gtk_window_set_geometry_hints( GTK_WINDOW(dlg), GTK_WIDGET(dlg), &geom, GDK_HINT_MAX_SIZE ); gtk_container_set_border_width(GTK_CONTAINER(content_area), 0); gtk_container_add(GTK_CONTAINER(content_area), dlg->notebook); gtk_notebook_append_page( GTK_NOTEBOOK(dlg->notebook), build_page(interface_items, dlg->settings), gtk_label_new(_("Interface")) ); gtk_notebook_append_page( GTK_NOTEBOOK(dlg->notebook), build_page(config_items, dlg->settings), gtk_label_new(_("Config Files")) ); gtk_notebook_append_page( GTK_NOTEBOOK(dlg->notebook), build_page(misc_items, dlg->settings), gtk_label_new(_("Miscellaneous")) ); gtk_notebook_append_page( GTK_NOTEBOOK(dlg->notebook), celluloid_plugins_manager_new(GTK_WINDOW(dlg)), gtk_label_new(_("Plugins")) ); gtk_dialog_add_buttons( GTK_DIALOG(dlg), _("_Cancel"), GTK_RESPONSE_REJECT, _("_Save"), GTK_RESPONSE_ACCEPT, NULL ); gtk_dialog_set_default_response(GTK_DIALOG(dlg), GTK_RESPONSE_ACCEPT); } GtkWidget * celluloid_preferences_dialog_new(GtkWindow *parent) { GtkWidget *dlg; GtkWidget *header_bar; gboolean csd_enabled; csd_enabled = celluloid_main_window_get_csd_enabled(CELLULOID_MAIN_WINDOW(parent)); dlg = g_object_new( celluloid_preferences_dialog_get_type(), "title", _("Preferences"), "modal", TRUE, "transient-for", parent, "use-header-bar", csd_enabled, NULL ); header_bar = gtk_dialog_get_header_bar(GTK_DIALOG(dlg)); if(header_bar) { /* The defaults use PACK_END which is ugly with multiple buttons */ GtkWidget *cancel_btn = gtk_dialog_get_widget_for_response (GTK_DIALOG(dlg), GTK_RESPONSE_REJECT); gtk_container_child_set( GTK_CONTAINER(header_bar), cancel_btn, "pack-type", GTK_PACK_START, NULL ); gtk_header_bar_set_show_close_button (GTK_HEADER_BAR(header_bar), FALSE); } gtk_widget_hide_on_delete(dlg); gtk_widget_show_all(dlg); return dlg; } celluloid-0.20/src/celluloid-preferences-dialog.h000066400000000000000000000022041373135401300220550ustar00rootroot00000000000000/* * Copyright (c) 2014-2019 gnome-mpv * * This file is part of Celluloid. * * Celluloid is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Celluloid is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Celluloid. If not, see . */ #ifndef PREFERENCES_DIALOG_H #define PREFERENCES_DIALOG_H #include #include #include G_BEGIN_DECLS #define CELLULOID_TYPE_PREFERENCES_DIALOG (celluloid_preferences_dialog_get_type ()) G_DECLARE_FINAL_TYPE(CelluloidPreferencesDialog, celluloid_preferences_dialog, CELLULOID, PREFERENCES_DIALOG, GtkDialog) GtkWidget * celluloid_preferences_dialog_new(GtkWindow *parent); G_END_DECLS #endif celluloid-0.20/src/celluloid-seek-bar.c000066400000000000000000000144321373135401300200110ustar00rootroot00000000000000/* * Copyright (c) 2016-2020 gnome-mpv * * This file is part of Celluloid. * * Celluloid is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Celluloid is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Celluloid. If not, see . */ #include #include #include #include "celluloid-seek-bar.h" #include "celluloid-time-label.h" #include "celluloid-common.h" struct _CelluloidSeekBar { GtkBox parent_instance; GtkWidget *seek_bar; GtkWidget *label; GtkWidget *popover; GtkWidget *popover_label; gdouble pos; gdouble duration; gboolean popover_visible; guint popover_timeout_id; }; struct _CelluloidSeekBarClass { GtkBoxClass parent_class; }; static void dispose(GObject *object); static void change_value_handler( GtkWidget *widget, GtkScrollType scroll, gdouble value, gpointer data ); static gboolean enter_handler(GtkWidget *widget, GdkEventCrossing *event, gpointer data); static gboolean leave_handler(GtkWidget *widget, GdkEventCrossing *event, gpointer data); static gboolean motion_handler(GtkWidget *widget, GdkEventMotion *event, gpointer data); static gboolean update_popover_visibility(CelluloidSeekBar *bar); G_DEFINE_TYPE(CelluloidSeekBar, celluloid_seek_bar, GTK_TYPE_BOX) static void dispose(GObject *object) { g_clear_object(&CELLULOID_SEEK_BAR(object)->popover); G_OBJECT_CLASS(celluloid_seek_bar_parent_class)->dispose(object); } static void change_value_handler( GtkWidget *widget, GtkScrollType scroll, gdouble value, gpointer data ) { CelluloidSeekBar *bar = data; if(bar->duration > 0) { g_object_set( bar->label, "time", (gint)bar->pos, "duration", (gint)bar->duration, NULL ); g_signal_emit_by_name(data, "seek", value); } } static gboolean enter_handler(GtkWidget *widget, GdkEventCrossing *event, gpointer data) { CelluloidSeekBar *bar = data; if(bar->popover_timeout_id > 0) { g_source_remove(bar->popover_timeout_id); } /* Don't show popover if duration is unknown */ if(bar->duration > 0) { bar->popover_visible = TRUE; bar->popover_timeout_id = g_timeout_add( 100, (GSourceFunc)update_popover_visibility, bar ); } return FALSE; } static gboolean leave_handler(GtkWidget *widget, GdkEventCrossing *event, gpointer data) { CelluloidSeekBar *bar = data; if(bar->popover_timeout_id > 0) { g_source_remove(bar->popover_timeout_id); } bar->popover_visible = FALSE; bar->popover_timeout_id = g_timeout_add(100, (GSourceFunc)update_popover_visibility, bar); return FALSE; } static gboolean motion_handler(GtkWidget *widget, GdkEventMotion *event, gpointer data) { CelluloidSeekBar *bar = data; GdkRectangle rect = { .x = (gint)event->x, .y = 0, .width = 0, .height = 0 }; GdkRectangle range_rect; gdouble progress = 0; gchar *text = NULL; gtk_range_get_range_rect(GTK_RANGE(bar->seek_bar), &range_rect); rect.x = CLAMP(rect.x, range_rect.x, range_rect.x + range_rect.width); gtk_popover_set_pointing_to(GTK_POPOVER(bar->popover), &rect); progress = rect.x / (gdouble)(range_rect.x + range_rect.width); text = format_time( (gint)(progress * bar->duration), bar->duration >= 3600 ); gtk_label_set_text(GTK_LABEL(bar->popover_label), text); g_free(text); return FALSE; } static gboolean update_popover_visibility(CelluloidSeekBar *bar) { if(bar->popover_visible) { gtk_popover_popup(GTK_POPOVER(bar->popover)); } else { gtk_popover_popdown(GTK_POPOVER(bar->popover)); } bar->popover_timeout_id = 0; return G_SOURCE_REMOVE; } static void celluloid_seek_bar_class_init(CelluloidSeekBarClass *klass) { G_OBJECT_CLASS(klass)->dispose = dispose; g_signal_new( "seek", G_TYPE_FROM_CLASS(klass), G_SIGNAL_RUN_FIRST, 0, NULL, NULL, g_cclosure_marshal_VOID__DOUBLE, G_TYPE_NONE, 1, G_TYPE_DOUBLE ); } static void celluloid_seek_bar_init(CelluloidSeekBar *bar) { bar->seek_bar = gtk_scale_new(GTK_ORIENTATION_HORIZONTAL, NULL); bar->label = celluloid_time_label_new(); bar->popover = g_object_ref_sink(gtk_popover_new(bar->seek_bar)); bar->popover_label = gtk_label_new(NULL); bar->duration = 0; bar->pos = 0; bar->popover_visible = FALSE; bar->popover_timeout_id = 0; g_object_set( bar->label, "time", (gint)bar->pos, "duration", (gint)bar->duration, NULL ); gtk_popover_set_modal(GTK_POPOVER(bar->popover), FALSE); gtk_scale_set_draw_value(GTK_SCALE(bar->seek_bar), FALSE); gtk_range_set_increments(GTK_RANGE(bar->seek_bar), 10, 10); gtk_widget_set_can_focus(bar->seek_bar, FALSE); gtk_widget_add_events(bar->seek_bar, GDK_POINTER_MOTION_MASK); gtk_container_add(GTK_CONTAINER(bar->popover), bar->popover_label); gtk_container_set_border_width(GTK_CONTAINER(bar->popover), 6); gtk_widget_show(bar->popover_label); g_signal_connect( bar->seek_bar, "change-value", G_CALLBACK(change_value_handler), bar ); g_signal_connect( bar->seek_bar, "enter-notify-event", G_CALLBACK(enter_handler), bar ); g_signal_connect( bar->seek_bar, "leave-notify-event", G_CALLBACK(leave_handler), bar ); g_signal_connect( bar->seek_bar, "motion-notify-event", G_CALLBACK(motion_handler), bar ); gtk_box_pack_start(GTK_BOX(bar), bar->seek_bar, TRUE, TRUE, 0); gtk_box_pack_end(GTK_BOX(bar), bar->label, FALSE, FALSE, 0); } GtkWidget * celluloid_seek_bar_new() { return GTK_WIDGET(g_object_new(celluloid_seek_bar_get_type(), NULL)); } void celluloid_seek_bar_set_duration(CelluloidSeekBar *bar, gdouble duration) { bar->duration = duration; g_object_set(bar->label, "duration", (gint)duration, NULL); gtk_range_set_range(GTK_RANGE(bar->seek_bar), 0, duration); } void celluloid_seek_bar_set_pos(CelluloidSeekBar *bar, gdouble pos) { gdouble old_pos = bar->pos; bar->pos = pos; gtk_range_set_value(GTK_RANGE(bar->seek_bar), pos); if((gint)old_pos != (gint)pos) { g_object_set(bar->label, "time", (gint)pos, NULL); } } celluloid-0.20/src/celluloid-seek-bar.h000066400000000000000000000022711373135401300200140ustar00rootroot00000000000000/* * Copyright (c) 2016-2019 gnome-mpv * * This file is part of Celluloid. * * Celluloid is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Celluloid is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Celluloid. If not, see . */ #ifndef SEEK_BAR_H #define SEEK_BAR_H #include #include #include G_BEGIN_DECLS #define CELLULOID_TYPE_SEEK_BAR (celluloid_seek_bar_get_type()) G_DECLARE_FINAL_TYPE(CelluloidSeekBar, celluloid_seek_bar, CELLULOID, SEEK_BAR, GtkBox) GtkWidget * celluloid_seek_bar_new(void); void celluloid_seek_bar_set_duration(CelluloidSeekBar *bar, gdouble duration); void celluloid_seek_bar_set_pos(CelluloidSeekBar *bar, gdouble pos); G_END_DECLS #endif celluloid-0.20/src/celluloid-shortcuts-window.c000066400000000000000000000140641373135401300216640ustar00rootroot00000000000000/* * Copyright (c) 2016-2020 gnome-mpv * * This file is part of Celluloid. * * Celluloid is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Celluloid is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Celluloid. If not, see . */ #include #include #include #include "celluloid-shortcuts-window.h" struct _CelluloidShortcutsWindow { GtkShortcutsWindow parent; }; struct _CelluloidShortcutsWindowClass { GtkShortcutsWindowClass parent_class; }; struct ShortcutEntry { const gchar *accel; const gchar *title; }; struct ShortcutGroup { const gchar *title; const struct ShortcutEntry *entries; }; typedef struct ShortcutEntry ShortcutEntry; typedef struct ShortcutGroup ShortcutGroup; G_DEFINE_TYPE(CelluloidShortcutsWindow, celluloid_shortcuts_window, GTK_TYPE_SHORTCUTS_WINDOW) static void celluloid_shortcuts_window_init(CelluloidShortcutsWindow *wnd) { const ShortcutEntry general[] = { {"o", _("Open file")}, {"l", _("Open location")}, {"o", _("Add file to playlist")}, {"l", _("Add location to playlist")}, {"p", _("Show preferences dialog")}, {"h", _("Toggle controls")}, {"F9", _("Toggle playlist")}, {"F11 f", _("Toggle fullscreen mode")}, {"Escape", _("Leave fullscreen mode")}, {"o", _("Toggle OSD states between normal and playback time/duration")}, {"i", _("Show filename on the OSD")}, {"o p", _("Show progress, elapsed time, and duration on the OSD")}, {NULL, NULL} }; const ShortcutEntry seeking[] = { {"leftarrow rightarrow", _("Seek backward/forward 5 seconds")}, {"leftarrow rightarrow", _("Exact seek backward/forward 1 second")}, {"downarrow uparrow", _("Seek backward/forward 1 minute")}, {"downarrow uparrow", _("Exact seek backward/forward 5 seconds")}, {"leftarrow rightarrow", _("Seek to previous/next subtitle")}, {"comma period", _("Step backward/forward a single frame")}, {"Page_Up Page_Down", _("Seek to the beginning of the previous/next chapter")}, {NULL, NULL} }; const ShortcutEntry playback[] = { {"bracketleft bracketright", _("Decrease/increase playback speed by 10%")}, {"braceleft braceright", _("Halve/double current playback speed")}, {"BackSpace", _("Reset playback speed to normal")}, {"less greater", _("Go backward/forward in the playlist")}, {"Delete", _("Remove selected playlist item")}, {"s", _("Save playlist")}, {"l", _("Set/clear A-B loop points")}, {"l", _("Toggle infinite looping")}, {"p space", _("Pause or unpause")}, {"q q", _("Quit")}, {"q", _("Save current playback position and quit")}, {NULL, NULL} }; const ShortcutEntry playlist[] = { {"f", _("Enter search mode")}, {"g", _("Jump to next match")}, {"g", _("Jump to previous match")}, {"Escape", _("Exit search mode")}, {NULL, NULL} }; const ShortcutEntry audio[] = { {"numbersign", _("Cycle through audio tracks")}, {"slash asterisk", _("Decrease/increase volume")}, {"9 0", _("Decrease/increase volume")}, {"m", _("Mute or unmute")}, {"plus minus", _("Adjust audio delay by +/- 0.1 seconds")}, {NULL, NULL} }; const ShortcutEntry subtitle[] = { {"v", _("Toggle subtitle visibility")}, {"j j", _("Cycle through available subtitles")}, {"z z", _("Adjust subtitle delay by +/- 0.1 seconds")}, {"u", _("Toggle SSA/ASS subtitles style override")}, {"r r", _("Move subtitles up/down")}, {"v", _("Toggle VSFilter aspect compatibility mode")}, {NULL, NULL} }; const ShortcutEntry video[] = { {"underscore", _("Cycle through video tracks")}, {"w w", _("Decrease/increase pan-and-scan range")}, {"s", _("Take a screenshot")}, {"s", _("Take a screenshot, without subtitles")}, {"s", _("Take a screenshot, as the window shows it")}, {"0", _("Resize video to half its original size")}, {"1", _("Resize video to its original size")}, {"2", _("Resize video to double its original size")}, {"1 2", _("Adjust contrast")}, {"3 4", _("Adjust brightness")}, {"5 6", _("Adjust gamma")}, {"7 8", _("Adjust saturation")}, {"d", _("Activate or deactivate deinterlacer")}, {"a", _("Cycle aspect ratio override")}, {NULL, NULL} }; const ShortcutGroup groups[] = { {_("User Interface"), general}, {_("Video"), video}, {_("Audio"), audio}, {_("Subtitle"), subtitle}, {_("Playback"), playback}, {_("Seeking"), seeking}, {_("Playlist"), playlist}, {NULL, NULL} }; GtkWidget *section = g_object_new ( gtk_shortcuts_section_get_type(), "section-name", "shortcuts", "visible", TRUE, NULL ); for(gint i = 0; groups[i].title; i++) { const ShortcutEntry *entries = groups[i].entries; GtkWidget *group = g_object_new ( gtk_shortcuts_group_get_type(), "title", groups[i].title, NULL ); for(gint j = 0; entries[j].accel; j++) { GtkWidget *entry; entry = g_object_new ( gtk_shortcuts_shortcut_get_type(), "accelerator", entries[j].accel, "title", entries[j].title, NULL ); gtk_container_add(GTK_CONTAINER(group), entry); } gtk_container_add(GTK_CONTAINER(section), group); } gtk_container_add(GTK_CONTAINER(wnd), section); } static void celluloid_shortcuts_window_class_init(CelluloidShortcutsWindowClass *klass) { } GtkWidget * celluloid_shortcuts_window_new(GtkWindow *parent) { return GTK_WIDGET(g_object_new( celluloid_shortcuts_window_get_type(), "transient-for", parent, "modal", TRUE, NULL)); } celluloid-0.20/src/celluloid-shortcuts-window.h000066400000000000000000000021751373135401300216710ustar00rootroot00000000000000/* * Copyright (c) 2016-2019 gnome-mpv * * This file is part of Celluloid. * * Celluloid is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Celluloid is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Celluloid. If not, see . */ #ifndef SHORTCUTS_WINDOW_H #define SHORTCUTS_WINDOW_H #include #include #include G_BEGIN_DECLS #define CELLULOID_TYPE_SHORTCUTS_WINDOW (celluloid_shortcuts_window_get_type ()) G_DECLARE_FINAL_TYPE(CelluloidShortcutsWindow, celluloid_shortcuts_window, CELLULOID, SHORTCUTS_WINDOW, GtkShortcutsWindow) GtkWidget * celluloid_shortcuts_window_new(GtkWindow *parent); G_END_DECLS #endif celluloid-0.20/src/celluloid-time-label.c000066400000000000000000000144451373135401300203370ustar00rootroot00000000000000/* * Copyright (c) 2020 gnome-mpv * * This file is part of Celluloid. * * Celluloid is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Celluloid is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Celluloid. If not, see . */ #include #include "celluloid-common.h" #include "celluloid-time-label.h" enum { PROP_INVALID, PROP_DURATION, PROP_TIME }; struct _CelluloidTimeLabel { GtkLabel parent; gint duration; gint time; }; struct _CelluloidTimeLabelClass { GtkLabelClass parent_class; }; G_DEFINE_TYPE(CelluloidTimeLabel, celluloid_time_label, GTK_TYPE_LABEL) static void set_property( GObject *object, guint property_id, const GValue *value, GParamSpec *pspec ); static void get_property( GObject *object, guint property_id, GValue *value, GParamSpec *pspec ); static void get_max_pixel_size(GtkLabel *label, gint length, gint *width, gint *height); static void update_size(CelluloidTimeLabel *label); static void update_label(CelluloidTimeLabel *label); static void set_property( GObject *object, guint property_id, const GValue *value, GParamSpec *pspec ) { CelluloidTimeLabel *self = CELLULOID_TIME_LABEL(object); switch(property_id) { case PROP_DURATION: { gint old_duration = self->duration; self->duration = g_value_get_int(value); // Only update size if we are transitioning from having // duration to not having one and vice versa, or if the // number of digits in the hours part of the duration // changed. if( (old_duration <= 0) != (self->duration <= 0) || (gint)log10(old_duration / 3600) != (gint)log10(self->duration / 3600) ) { update_size(self); } update_label(self); } break; case PROP_TIME: { gint old_time = self->time; self->time = g_value_get_int(value); // Only update size if we don't have a duration, and the // number of digits in the hour part of the time // changed. We don't need to update the size if we have // duration since the size would have been already // updated when the duration was set, and the // resulting size will have enough space to accomodate // all possible time values. if( self->duration <= 0 && (gint)log10(old_time / 3600) != (gint)log10(self->time / 3600) ) { update_size(self); } update_label(self); } break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID(object, property_id, pspec); break; } } static void get_property( GObject *object, guint property_id, GValue *value, GParamSpec *pspec ) { CelluloidTimeLabel *self = CELLULOID_TIME_LABEL(object); switch(property_id) { case PROP_DURATION: g_value_set_int(value, self->duration); break; case PROP_TIME: g_value_set_int(value, self->time); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID(object, property_id, pspec); break; } } static void get_max_pixel_size(GtkLabel *label, gint duration, gint *width, gint *height) { PangoLayout *layout = pango_layout_copy(gtk_label_get_layout(label)); // Find a number in which all digits are 1s, with the same number of // digits as the hour part of the duration. This will be used to // generate other numbers which will then be used to generate test // strings. const gint hour_digits = (gint)log10(duration/3600) + 1; const gint ones = ((gint)pow(10, hour_digits) - 1) / 9; for(gint i = 0; i < 10; i++) { gint test_width = 0; gint test_height = 0; // Numbers with repeated digits to be used to generate test // strings. const gint hour = ones * i; const gint min_sec = 11 * i; gchar *time_str = duration < 3600 ? g_strdup_printf("%02d:%02d", min_sec, min_sec) : g_strdup_printf( "%0*d:%02d:%02d", hour_digits, hour, min_sec, min_sec ); gchar *test_str = duration <= 0 ? g_strdup(time_str) : g_strdup_printf("%s/%s", time_str, time_str); pango_layout_set_text (layout, test_str, -1); pango_layout_get_pixel_size (layout, &test_width, &test_height); // Keep maximum width and height. if(width) { *width = *width < test_width ? test_width : *width; } if(height) { *height = *height < test_height ? test_height : *height; } g_free(time_str); g_free(test_str); } g_object_unref(layout); } static void update_size(CelluloidTimeLabel *label) { gint width = 0; get_max_pixel_size( GTK_LABEL(label), label->duration, &width, NULL ); gtk_widget_set_size_request (GTK_WIDGET(label), width, -1); } static void update_label(CelluloidTimeLabel *label) { gint sec = (gint)label->time; gint duration = (gint)label->duration; gchar *text; if(duration > 0) { gchar *sec_str = format_time(sec, duration >= 3600); gchar *duration_str = format_time(duration, duration >= 3600); text = g_strdup_printf("%s/%s", sec_str, duration_str); g_free(sec_str); g_free(duration_str); } else { text = g_strdup_printf("%02d:%02d", (sec%3600)/60, sec%60); } gtk_label_set_text(GTK_LABEL(label), text); } static void celluloid_time_label_init(CelluloidTimeLabel *label) { label->duration = 0; label->time = 0; update_size(label); } static void celluloid_time_label_class_init(CelluloidTimeLabelClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS(klass); GParamSpec *pspec = NULL; object_class->set_property = set_property; object_class->get_property = get_property; pspec = g_param_spec_int ( "duration", "Duration", "The full duration of the media being played", 0, G_MAXINT, 0, G_PARAM_READWRITE ); g_object_class_install_property(object_class, PROP_DURATION, pspec); pspec = g_param_spec_int ( "time", "Time", "Timestamp of the current position", 0, G_MAXINT, 0, G_PARAM_READWRITE ); g_object_class_install_property(object_class, PROP_TIME, pspec); } GtkWidget * celluloid_time_label_new() { GObject *object = g_object_new(celluloid_time_label_get_type(), NULL); return GTK_WIDGET(object); } celluloid-0.20/src/celluloid-time-label.h000066400000000000000000000020051373135401300203310ustar00rootroot00000000000000/* * Copyright (c) 2020 gnome-mpv * * This file is part of Celluloid. * * Celluloid is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Celluloid is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Celluloid. If not, see . */ #ifndef TIME_LABEL_H #define TIME_LABEL_H #include G_BEGIN_DECLS #define CELLULOID_TYPE_TIME_LABEL (celluloid_time_label_get_type()) G_DECLARE_FINAL_TYPE(CelluloidTimeLabel, celluloid_time_label, CELLULOID, TIME_LABEL, GtkLabel) GtkWidget * celluloid_time_label_new(void); G_END_DECLS #endif celluloid-0.20/src/celluloid-video-area.c000066400000000000000000000325151373135401300203360ustar00rootroot00000000000000/* * Copyright (c) 2016-2020 gnome-mpv * * This file is part of Celluloid. * * Celluloid is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Celluloid is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Celluloid. If not, see . */ #include "celluloid-video-area.h" #include "celluloid-header-bar.h" #include "celluloid-control-box.h" #include "celluloid-common.h" #include "celluloid-def.h" #include #include #include #include #ifdef GDK_WINDOWING_X11 #include #endif enum { PROP_0, PROP_TITLE, N_PROPERTIES }; struct _CelluloidVideoArea { GtkOverlay parent_instance; GtkWidget *stack; GtkWidget *draw_area; GtkWidget *gl_area; GtkWidget *control_box; GtkWidget *header_bar; GtkWidget *control_box_revealer; GtkWidget *header_bar_revealer; guint32 last_motion_time; gdouble last_motion_x; gdouble last_motion_y; guint timeout_tag; gboolean fullscreen; gboolean fs_control_hover; }; struct _CelluloidVideoAreaClass { GtkOverlayClass parent_class; }; static void set_property( GObject *object, guint property_id, const GValue *value, GParamSpec *pspec ); static void get_property( GObject *object, guint property_id, GValue *value, GParamSpec *pspec ); static void destroy(GtkWidget *widget); static void set_cursor_visible(CelluloidVideoArea *area, gboolean visible); static gboolean timeout_handler(gpointer data); static gboolean motion_notify_event(GtkWidget *widget, GdkEventMotion *event); static gboolean fs_control_crossing_handler( GtkWidget *widget, GdkEventCrossing *event, gpointer data ); G_DEFINE_TYPE(CelluloidVideoArea, celluloid_video_area, GTK_TYPE_OVERLAY) static void set_property( GObject *object, guint property_id, const GValue *value, GParamSpec *pspec ) { CelluloidVideoArea *self = CELLULOID_VIDEO_AREA(object); switch(property_id) { case PROP_TITLE: g_object_set_property( G_OBJECT(self->header_bar), pspec->name, value ); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID(object, property_id, pspec); break; } } static void get_property( GObject *object, guint property_id, GValue *value, GParamSpec *pspec ) { CelluloidVideoArea *self = CELLULOID_VIDEO_AREA(object); switch(property_id) { case PROP_TITLE: g_object_get_property( G_OBJECT(self->header_bar), pspec->name, value ); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID(object, property_id, pspec); break; } } static void destroy(GtkWidget *widget) { g_source_clear(&CELLULOID_VIDEO_AREA(widget)->timeout_tag); GTK_WIDGET_CLASS(celluloid_video_area_parent_class)->destroy(widget); } static void set_cursor_visible(CelluloidVideoArea *area, gboolean visible) { GdkWindow *window; GdkCursor *cursor; window = gtk_widget_get_window(GTK_WIDGET(area)); if(visible) { cursor = gdk_cursor_new_from_name (gdk_display_get_default(), "default"); } else { cursor = gdk_cursor_new_for_display (gdk_display_get_default(), GDK_BLANK_CURSOR); } gdk_window_set_cursor(window, cursor); g_object_unref(cursor); } static gboolean timeout_handler(gpointer data) { CelluloidVideoArea *area = data; CelluloidControlBox *control_box = CELLULOID_CONTROL_BOX(area->control_box); CelluloidHeaderBar *header_bar = CELLULOID_HEADER_BAR(area->header_bar); if(control_box && !area->fs_control_hover && !celluloid_control_box_get_volume_popup_visible(control_box) && !celluloid_header_bar_get_open_button_popup_visible(header_bar) && !celluloid_header_bar_get_menu_button_popup_visible(header_bar)) { GSettings *settings; gboolean always_autohide; settings = g_settings_new(CONFIG_ROOT); always_autohide = g_settings_get_boolean (settings, "always-autohide-cursor"); gtk_revealer_set_reveal_child (GTK_REVEALER(area->control_box_revealer), FALSE); gtk_revealer_set_reveal_child (GTK_REVEALER(area->header_bar_revealer), FALSE); set_cursor_visible(area, !(always_autohide || area->fullscreen)); area->timeout_tag = 0; g_object_unref(settings); } else if(!control_box) { area->timeout_tag = 0; } /* Try again later if timeout_tag has not been cleared. This means that * either one of the popups is visible or the cursor is hovering over * the control box, preventing it from being hidden. */ return (area->timeout_tag != 0); } static gboolean motion_notify_event(GtkWidget *widget, GdkEventMotion *event) { GSettings *settings = g_settings_new(CONFIG_ROOT); CelluloidVideoArea *area = CELLULOID_VIDEO_AREA(widget); const gint height = gtk_widget_get_allocated_height(widget); const gdouble unhide_speed = g_settings_get_double(settings, "controls-unhide-cursor-speed"); const gdouble dead_zone = g_settings_get_double(settings, "controls-dead-zone-size"); const gdouble dist = sqrt( pow(event->x - area->last_motion_x, 2) + pow(event->y - area->last_motion_y, 2) ); const gdouble speed = dist / (event->time - area->last_motion_time); area->last_motion_time = event->time; area->last_motion_x = event->x; area->last_motion_y = event->y; if( speed >= unhide_speed && ABS((2 * event->y - height) / height) > dead_zone ) { GdkCursor *cursor = gdk_cursor_new_from_name ( gdk_display_get_default(), "default" ); gdk_window_set_cursor(gtk_widget_get_window(widget), cursor); if(area->control_box) { gtk_revealer_set_reveal_child ( GTK_REVEALER(area->control_box_revealer), TRUE ); gtk_revealer_set_reveal_child ( GTK_REVEALER(area->header_bar_revealer), area->fullscreen ); } g_source_clear(&area->timeout_tag); area->timeout_tag = g_timeout_add_seconds ( FS_CONTROL_HIDE_DELAY, timeout_handler, area ); } g_object_unref(settings); return GTK_WIDGET_CLASS(celluloid_video_area_parent_class) ->motion_notify_event(widget, event); } static gboolean render_handler(GtkGLArea *gl_area, GdkGLContext *context, gpointer data) { g_signal_emit_by_name(data, "render"); return TRUE; } static void notify_handler(GObject *gobject, GParamSpec *pspec, gpointer data) { /* Due to a GTK+ bug, the header bar isn't hidden completely if hidden * by a GtkRevealer. Workaround this by manually hiding the revealer * along with the header bar when the revealer completes its transition * to hidden state. */ CelluloidVideoArea *area = data; gboolean reveal_child = TRUE; gboolean child_revealed = TRUE; g_object_get( gobject, "reveal-child", &reveal_child, "child-revealed", &child_revealed, NULL ); gtk_widget_set_visible( GTK_WIDGET(area->header_bar_revealer), area->fullscreen && (reveal_child || child_revealed) ); } static gboolean fs_control_crossing_handler( GtkWidget *widget, GdkEventCrossing *event, gpointer data ) { CELLULOID_VIDEO_AREA(data)->fs_control_hover = (event->type == GDK_ENTER_NOTIFY); return FALSE; } static void celluloid_video_area_class_init(CelluloidVideoAreaClass *klass) { GObjectClass *obj_class = G_OBJECT_CLASS(klass); GtkWidgetClass *wgt_class = GTK_WIDGET_CLASS(klass); GParamSpec *pspec = NULL; obj_class->set_property = set_property; obj_class->get_property = get_property; wgt_class->destroy = destroy; wgt_class->motion_notify_event = motion_notify_event; gtk_widget_class_set_css_name(wgt_class, "celluloid-video-area"); g_signal_new( "render", G_TYPE_FROM_CLASS(klass), G_SIGNAL_RUN_FIRST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0 ); pspec = g_param_spec_string ( "title", "Title", "The title of the header bar", NULL, G_PARAM_READWRITE ); g_object_class_install_property(obj_class, PROP_TITLE, pspec); } static void celluloid_video_area_init(CelluloidVideoArea *area) { GtkTargetEntry targets[] = DND_TARGETS; /* GDK_BUTTON_RELEASE_MASK is needed so that GtkMenuButtons can * hide their menus when vid_area is clicked. */ const gint extra_events = GDK_BUTTON_PRESS_MASK| GDK_BUTTON_RELEASE_MASK| GDK_POINTER_MOTION_MASK| GDK_SMOOTH_SCROLL_MASK| GDK_SCROLL_MASK; area->stack = gtk_stack_new(); area->draw_area = gtk_drawing_area_new(); area->gl_area = gtk_gl_area_new(); area->control_box = celluloid_control_box_new(); area->header_bar = celluloid_header_bar_new(); area->control_box_revealer = gtk_revealer_new(); area->header_bar_revealer = gtk_revealer_new(); area->last_motion_time = 0; area->last_motion_x = -1; area->last_motion_y = -1; area->timeout_tag = 0; area->fullscreen = FALSE; area->fs_control_hover = FALSE; gtk_drag_dest_set( GTK_WIDGET(area), GTK_DEST_DEFAULT_ALL, targets, G_N_ELEMENTS(targets), GDK_ACTION_COPY ); gtk_widget_add_events(area->draw_area, extra_events); gtk_widget_add_events(area->gl_area, extra_events); gtk_widget_set_valign(area->control_box_revealer, GTK_ALIGN_END); gtk_revealer_set_reveal_child (GTK_REVEALER(area->control_box_revealer), FALSE); gtk_widget_set_valign(area->header_bar_revealer, GTK_ALIGN_START); gtk_revealer_set_reveal_child (GTK_REVEALER(area->header_bar_revealer), FALSE); gtk_widget_show_all(area->control_box); gtk_widget_hide(area->control_box_revealer); gtk_widget_set_no_show_all(area->control_box_revealer, TRUE); gtk_widget_show_all(area->header_bar); gtk_widget_hide(area->header_bar_revealer); gtk_widget_set_no_show_all(area->header_bar_revealer, TRUE); g_signal_connect( area->gl_area, "render", G_CALLBACK(render_handler), area ); g_signal_connect( area->header_bar_revealer, "notify::reveal-child", G_CALLBACK(notify_handler), area ); g_signal_connect( area->header_bar_revealer, "notify::child-revealed", G_CALLBACK(notify_handler), area ); g_signal_connect( area, "enter-notify-event", G_CALLBACK(fs_control_crossing_handler), area ); g_signal_connect( area, "leave-notify-event", G_CALLBACK(fs_control_crossing_handler), area ); gtk_stack_add_named(GTK_STACK(area->stack), area->draw_area, "draw"); gtk_stack_add_named(GTK_STACK(area->stack), area->gl_area, "gl"); gtk_stack_set_visible_child(GTK_STACK(area->stack), area->draw_area); gtk_container_add( GTK_CONTAINER(area->header_bar_revealer), area->header_bar ); gtk_container_add( GTK_CONTAINER(area->control_box_revealer), area->control_box ); gtk_overlay_add_overlay(GTK_OVERLAY(area), area->control_box_revealer); gtk_overlay_add_overlay(GTK_OVERLAY(area), area->header_bar_revealer); gtk_container_add(GTK_CONTAINER(area), area->stack); } GtkWidget * celluloid_video_area_new() { return GTK_WIDGET(g_object_new(celluloid_video_area_get_type(), NULL)); } void celluloid_video_area_update_track_list( CelluloidVideoArea *area, const GPtrArray *track_list ) { celluloid_header_bar_update_track_list (CELLULOID_HEADER_BAR(area->header_bar), track_list); } void celluloid_video_area_update_disc_list( CelluloidVideoArea *area, const GPtrArray *disc_list ) { celluloid_header_bar_update_disc_list (CELLULOID_HEADER_BAR(area->header_bar), disc_list); } void celluloid_video_area_set_fullscreen_state( CelluloidVideoArea *area, gboolean fullscreen ) { if(area->fullscreen != fullscreen) { area->fullscreen = fullscreen; gtk_widget_hide(area->header_bar_revealer); set_cursor_visible(area, !fullscreen); gtk_revealer_set_reveal_child (GTK_REVEALER(area->control_box_revealer), FALSE); gtk_revealer_set_reveal_child (GTK_REVEALER(area->header_bar_revealer), FALSE); celluloid_header_bar_set_fullscreen_state (CELLULOID_HEADER_BAR(area->header_bar), fullscreen); if(area->control_box) { celluloid_control_box_set_fullscreen_state (CELLULOID_CONTROL_BOX(area->control_box), fullscreen); } } } void celluloid_video_area_set_control_box_visible( CelluloidVideoArea *area, gboolean visible ) { gtk_widget_set_visible(area->control_box_revealer, visible); } void celluloid_video_area_set_use_opengl( CelluloidVideoArea *area, gboolean use_opengl ) { gtk_stack_set_visible_child ( GTK_STACK(area->stack), use_opengl?area->gl_area:area->draw_area ); } void celluloid_video_area_queue_render(CelluloidVideoArea *area) { gtk_gl_area_queue_render(GTK_GL_AREA(area->gl_area)); } GtkDrawingArea * celluloid_video_area_get_draw_area(CelluloidVideoArea *area) { return GTK_DRAWING_AREA(area->draw_area); } GtkGLArea * celluloid_video_area_get_gl_area(CelluloidVideoArea *area) { return GTK_GL_AREA(area->gl_area); } CelluloidControlBox * celluloid_video_area_get_control_box(CelluloidVideoArea *area) { return CELLULOID_CONTROL_BOX(area->control_box); } gint64 celluloid_video_area_get_xid(CelluloidVideoArea *area) { #ifdef GDK_WINDOWING_X11 if(GDK_IS_X11_DISPLAY(gdk_display_get_default())) { GtkWidget *parent = gtk_widget_get_parent(GTK_WIDGET(area)); GdkWindow *window = NULL; if(parent && !gtk_widget_get_realized(area->draw_area)) { gtk_widget_realize(area->draw_area); } window = gtk_widget_get_window(area->draw_area); if(!window) { g_critical("Failed to get XID of video area"); } return window?(gint64)gdk_x11_window_get_xid(window):-1; } #endif return -1; } celluloid-0.20/src/celluloid-video-area.h000066400000000000000000000036701373135401300203430ustar00rootroot00000000000000/* * Copyright (c) 2016-2019 gnome-mpv * * This file is part of Celluloid. * * Celluloid is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Celluloid is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Celluloid. If not, see . */ #ifndef VIDEO_AREA_H #define VIDEO_AREA_H #include #include #include #include "celluloid-control-box.h" #define CELLULOID_TYPE_VIDEO_AREA (celluloid_video_area_get_type ()) G_DECLARE_FINAL_TYPE(CelluloidVideoArea, celluloid_video_area, CELLULOID, VIDEO_AREA, GtkOverlay) GtkWidget * celluloid_video_area_new(void); void celluloid_video_area_update_track_list( CelluloidVideoArea *hdr, const GPtrArray *track_list ); void celluloid_video_area_update_disc_list( CelluloidVideoArea *hdr, const GPtrArray *disc_list ); void celluloid_video_area_set_fullscreen_state( CelluloidVideoArea *area, gboolean fullscreen ); void celluloid_video_area_set_control_box_visible( CelluloidVideoArea *area, gboolean visible ); void celluloid_video_area_set_use_opengl( CelluloidVideoArea *area, gboolean use_opengl ); void celluloid_video_area_queue_render(CelluloidVideoArea *area); GtkDrawingArea * celluloid_video_area_get_draw_area(CelluloidVideoArea *area); GtkGLArea * celluloid_video_area_get_gl_area(CelluloidVideoArea *area); CelluloidControlBox * celluloid_video_area_get_control_box(CelluloidVideoArea *area); gint64 celluloid_video_area_get_xid(CelluloidVideoArea *area); #endif celluloid-0.20/src/celluloid-view.c000066400000000000000000001173461373135401300173020ustar00rootroot00000000000000/* * Copyright (c) 2017-2020 gnome-mpv * * This file is part of Celluloid. * * Celluloid is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Celluloid is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Celluloid. If not, see . */ #include #include "celluloid-view.h" #include "celluloid-file-chooser.h" #include "celluloid-open-location-dialog.h" #include "celluloid-preferences-dialog.h" #include "celluloid-shortcuts-window.h" #include "celluloid-authors.h" #include "celluloid-marshal.h" #include "celluloid-menu.h" #include "celluloid-common.h" #include "celluloid-def.h" enum { PROP_0, PROP_PLAYLIST_COUNT, PROP_PAUSE, PROP_VOLUME, PROP_VOLUME_MAX, PROP_DURATION, PROP_PLAYLIST_POS, PROP_TRACK_LIST, PROP_DISC_LIST, PROP_SKIP_ENABLED, PROP_LOOP, PROP_SHUFFLE, PROP_BORDER, PROP_FULLSCREEN, PROP_MAXIMIZED, PROP_DISPLAY_FPS, PROP_SEARCHING, N_PROPERTIES }; struct _CelluloidView { CelluloidMainWindow parent; gboolean disposed; gboolean has_dialog; /* Properties */ gint playlist_count; gboolean pause; gdouble volume; gdouble volume_max; gdouble duration; gint playlist_pos; GPtrArray *track_list; GPtrArray *disc_list; gboolean skip_enabled; gboolean control_box_enabled; gboolean loop; gboolean shuffle; gboolean border; gboolean fullscreen; gboolean maximized; gdouble display_fps; gboolean searching; }; struct _CelluloidViewClass { CelluloidMainWindowClass parent_class; }; G_DEFINE_TYPE(CelluloidView, celluloid_view, CELLULOID_TYPE_MAIN_WINDOW) static void constructed(GObject *object); static void dispose(GObject *object); static void set_property( GObject *object, guint property_id, const GValue *value, GParamSpec *pspec ); static void get_property( GObject *object, guint property_id, GValue *value, GParamSpec *pspec ); static void load_css(CelluloidView *view); static void load_settings(CelluloidView *view); static void save_playlist(CelluloidView *view, GFile *file, GError **error); static void show_message_dialog( CelluloidView *view, GtkMessageType type, const gchar *title, const gchar *prefix, const gchar *msg ); static void update_display_fps(CelluloidView *view); static void show_open_track_dialog(CelluloidView *view, TrackType type); /* Dialog responses */ static void message_dialog_response_handler( GtkDialog *dialog, gint response_id, gpointer data); static void open_dialog_response_handler(GtkDialog *dialog, gint response_id, gpointer data); static void open_location_dialog_response_handler( GtkDialog *dialog, gint response_id, gpointer data ); static void open_track_dialog_response_handler( GtkDialog *dialog, gint response_id, gpointer data ); static void preferences_dialog_response_handler( GtkDialog *dialog, gint response_id, gpointer data ); static void realize_handler(GtkWidget *widget, gpointer data); static void size_allocate_handler( GtkWidget *widget, GdkRectangle *allocation, gpointer data ); static void render_handler(CelluloidVideoArea *area, gpointer data); static gboolean draw_handler(GtkWidget *widget, cairo_t *cr, gpointer data); static void drag_data_handler( GtkWidget *widget, GdkDragContext *context, gint x, gint y, GtkSelectionData *sel_data, guint info, guint time, gpointer data ); static gboolean window_state_handler(GtkWidget *widget, GdkEvent *event, gpointer data); static void screen_changed_handler( GtkWidget *wnd, GdkScreen *previous_screen, gpointer data ); static gboolean delete_handler(GtkWidget *widget, GdkEvent *event, gpointer data); static void playlist_row_activated_handler( CelluloidPlaylistWidget *playlist, gint64 pos, gpointer data ); static void playlist_row_inserted_handler( CelluloidPlaylistWidget *widget, gint pos, gpointer data ); static void playlist_row_deleted_handler( CelluloidPlaylistWidget *widget, gint pos, gpointer data ); static void playlist_row_reordered_handler( CelluloidPlaylistWidget *widget, gint src, gint dest, gpointer data ); static void constructed(GObject *object) { G_OBJECT_CLASS(celluloid_view_parent_class)->constructed(object); CelluloidView *view = CELLULOID_VIEW(object); CelluloidMainWindow *wnd = CELLULOID_MAIN_WINDOW(view); CelluloidVideoArea *video_area = celluloid_main_window_get_video_area(wnd); CelluloidPlaylistWidget *playlist = celluloid_main_window_get_playlist(wnd); CelluloidControlBox *control_box = celluloid_main_window_get_control_box(wnd); g_object_bind_property( view, "duration", control_box, "duration", G_BINDING_DEFAULT ); g_object_bind_property( wnd, "is-maximized", view, "maximized", G_BINDING_DEFAULT ); g_object_bind_property( view, "pause", control_box, "pause", G_BINDING_DEFAULT ); g_object_bind_property( view, "skip-enabled", control_box, "skip-enabled", G_BINDING_DEFAULT ); g_object_bind_property( view, "loop", control_box, "loop", G_BINDING_BIDIRECTIONAL ); g_object_bind_property( view, "shuffle", control_box, "shuffle", G_BINDING_BIDIRECTIONAL ); g_object_bind_property( view, "volume", control_box, "volume", G_BINDING_BIDIRECTIONAL ); g_object_bind_property( view, "volume-max", control_box, "volume-max", G_BINDING_DEFAULT ); g_object_bind_property( playlist, "playlist-count", view, "playlist-count", G_BINDING_DEFAULT ); g_object_bind_property( playlist, "searching", view, "searching", G_BINDING_BIDIRECTIONAL ); celluloid_main_window_load_state(wnd); load_css(view); load_settings(view); g_signal_connect( video_area, "size-allocate", G_CALLBACK(size_allocate_handler), view ); g_signal_connect( video_area, "render", G_CALLBACK(render_handler), view ); g_signal_connect( video_area, "drag-data-received", G_CALLBACK(drag_data_handler), view ); g_signal_connect( playlist, "drag-data-received", G_CALLBACK(drag_data_handler), view ); g_signal_connect( wnd, "window-state-event", G_CALLBACK(window_state_handler), view ); g_signal_connect( wnd, "screen-changed", G_CALLBACK(screen_changed_handler), view ); g_signal_connect( wnd, "delete-event", G_CALLBACK(delete_handler), view ); g_signal_connect( playlist, "row-activated", G_CALLBACK(playlist_row_activated_handler), view ); g_signal_connect( playlist, "row-inserted", G_CALLBACK(playlist_row_inserted_handler), view ); g_signal_connect( playlist, "row-deleted", G_CALLBACK(playlist_row_deleted_handler), view ); g_signal_connect( playlist, "rows-reordered", G_CALLBACK(playlist_row_reordered_handler), view ); } static void dispose(GObject *object) { CelluloidView *view = CELLULOID_VIEW(object); if(!view->disposed) { celluloid_main_window_save_state(CELLULOID_MAIN_WINDOW(object)); view->disposed = TRUE; } G_OBJECT_CLASS(celluloid_view_parent_class)->dispose(object); } static void set_property( GObject *object, guint property_id, const GValue *value, GParamSpec *pspec ) { CelluloidView *self = CELLULOID_VIEW(object); CelluloidMainWindow *wnd = CELLULOID_MAIN_WINDOW(self); CelluloidControlBox* control_box = celluloid_main_window_get_control_box(wnd); switch(property_id) { case PROP_PLAYLIST_COUNT: self->playlist_count = g_value_get_int(value); g_object_set( control_box, "enabled", self->playlist_count > 0, NULL ); if(self->playlist_count <= 0) { celluloid_view_reset(self); } break; case PROP_PAUSE: self->pause = g_value_get_boolean(value); break; case PROP_VOLUME: self->volume = g_value_get_double(value); break; case PROP_VOLUME_MAX: self->volume_max = g_value_get_double(value); break; case PROP_DURATION: self->duration = g_value_get_double(value); break; case PROP_PLAYLIST_POS: self->playlist_pos = g_value_get_int(value); CelluloidPlaylistWidget *playlist = celluloid_main_window_get_playlist(wnd); celluloid_playlist_widget_set_indicator_pos (playlist, self->playlist_pos); break; case PROP_TRACK_LIST: self->track_list = g_value_get_pointer(value); celluloid_main_window_update_track_list(wnd, self->track_list); break; case PROP_DISC_LIST: self->disc_list = g_value_get_pointer(value); celluloid_main_window_update_disc_list(wnd, self->disc_list); break; case PROP_SKIP_ENABLED: self->skip_enabled = g_value_get_boolean(value); break; case PROP_LOOP: self->loop = g_value_get_boolean(value); break; case PROP_SHUFFLE: self->shuffle = g_value_get_boolean(value); break; case PROP_BORDER: self->border = g_value_get_boolean(value); gtk_window_set_decorated(GTK_WINDOW(wnd), self->border); break; case PROP_FULLSCREEN: self->fullscreen = g_value_get_boolean(value); celluloid_main_window_set_fullscreen(wnd, self->fullscreen); break; case PROP_MAXIMIZED: self->maximized = g_value_get_boolean(value); if(self->maximized) { gtk_window_maximize(GTK_WINDOW(wnd)); } else { gtk_window_unmaximize(GTK_WINDOW(wnd)); } break; case PROP_DISPLAY_FPS: self->display_fps = g_value_get_double(value); break; case PROP_SEARCHING: // We do not display playlist in fullscreen mode so refuse to // enter search mode here if we're in fullscreen mode. self->searching = !self->fullscreen && g_value_get_boolean(value); // Show playlist if we're about to enter search mode and it // isn't already visible. if(self->searching && !celluloid_view_get_playlist_visible(self)) { celluloid_view_set_playlist_visible(self, TRUE); } break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID(object, property_id, pspec); break; } } static void get_property( GObject *object, guint property_id, GValue *value, GParamSpec *pspec ) { CelluloidView *self = CELLULOID_VIEW(object); switch(property_id) { case PROP_PLAYLIST_COUNT: g_value_set_int(value, self->playlist_count); break; case PROP_PAUSE: g_value_set_boolean(value, self->pause); break; case PROP_VOLUME: g_value_set_double(value, self->volume); break; case PROP_VOLUME_MAX: g_value_set_double(value, self->volume_max); break; case PROP_DURATION: g_value_set_double(value, self->duration); break; case PROP_PLAYLIST_POS: g_value_set_int(value, self->playlist_pos); break; case PROP_TRACK_LIST: g_value_set_pointer(value, self->track_list); break; case PROP_DISC_LIST: g_value_set_pointer(value, self->disc_list); break; case PROP_SKIP_ENABLED: g_value_set_boolean(value, self->skip_enabled); break; case PROP_LOOP: g_value_set_boolean(value, self->loop); break; case PROP_SHUFFLE: g_value_set_boolean(value, self->shuffle); break; case PROP_BORDER: g_value_set_boolean(value, self->border); break; case PROP_FULLSCREEN: g_value_set_boolean(value, self->fullscreen); break; case PROP_MAXIMIZED: g_value_set_boolean(value, self->maximized); break; case PROP_DISPLAY_FPS: g_value_set_double(value, self->display_fps); break; case PROP_SEARCHING: g_value_set_boolean(value, self->searching); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID(object, property_id, pspec); break; } } static void load_css(CelluloidView *view) { const gchar *style; GtkCssProvider *style_provider; gboolean css_loaded; style = "celluloid-video-area{background-color: black}" "celluloid-preferences-dialog .dialog-action-box{margin-right: 12px}"; style_provider = gtk_css_provider_new(); css_loaded = gtk_css_provider_load_from_data (style_provider, style, -1, NULL); if(!css_loaded) { g_warning ("Failed to apply background color css"); } gtk_style_context_add_provider_for_screen ( gtk_window_get_screen(GTK_WINDOW(view)), GTK_STYLE_PROVIDER(style_provider), GTK_STYLE_PROVIDER_PRIORITY_APPLICATION ); g_object_unref(style_provider); } static void load_settings(CelluloidView *view) { GSettings *settings = g_settings_new(CONFIG_ROOT); CelluloidMainWindow *wnd = CELLULOID_MAIN_WINDOW(view); CelluloidControlBox *control_box = celluloid_main_window_get_control_box(wnd); gboolean csd_enable; gboolean dark_theme_enable; csd_enable = g_settings_get_boolean (settings, "csd-enable"); dark_theme_enable = g_settings_get_boolean (settings, "dark-theme-enable"); g_object_set( control_box, "show-fullscreen-button", !csd_enable, "skip-enabled", FALSE, NULL ); g_object_set( gtk_settings_get_default(), "gtk-application-prefer-dark-theme", dark_theme_enable, NULL ); g_object_unref(settings); } static void save_playlist(CelluloidView *view, GFile *file, GError **error) { CelluloidMainWindow *wnd = CELLULOID_MAIN_WINDOW(view); CelluloidPlaylistWidget *wgt = celluloid_main_window_get_playlist(wnd); GPtrArray *playlist = celluloid_playlist_widget_get_contents(wgt); gboolean rc = TRUE; GOutputStream *dest_stream = NULL; if(file) { GFileOutputStream *file_stream; file_stream = g_file_replace( file, NULL, FALSE, G_FILE_CREATE_NONE, NULL, error ); dest_stream = G_OUTPUT_STREAM(file_stream); rc = !!dest_stream; } for(guint i = 0; rc && i < playlist->len; i++) { gsize written; CelluloidPlaylistEntry *entry = g_ptr_array_index(playlist, i); rc = g_output_stream_printf( dest_stream, &written, NULL, NULL, "%s\n", entry->filename); } if(dest_stream) { g_output_stream_close(dest_stream, NULL, error); } g_ptr_array_free(playlist, TRUE); } void show_message_dialog( CelluloidView *view, GtkMessageType type, const gchar *title, const gchar *prefix, const gchar *msg ) { GtkWidget *dialog = NULL; GtkWidget *msg_area = NULL; GList *children = NULL; if(view->has_dialog) { g_info("Error dialog suppressed because one is already being shown"); if(prefix) { g_info("Content: *%s* [%s] %s", title, prefix, msg); } else { g_info("Content: *%s* %s", title, msg); } } else if(prefix) { gchar *prefix_escaped = g_markup_printf_escaped("%s", prefix); gchar *msg_escaped = g_markup_printf_escaped("%s", msg); dialog = gtk_message_dialog_new_with_markup ( GTK_WINDOW(view), GTK_DIALOG_DESTROY_WITH_PARENT, type, GTK_BUTTONS_OK, "[%s] %s", prefix_escaped, msg_escaped ); g_free(prefix_escaped); g_free(msg_escaped); } else { dialog = gtk_message_dialog_new ( GTK_WINDOW(view), GTK_DIALOG_DESTROY_WITH_PARENT, type, GTK_BUTTONS_OK, "%s", msg ); } if(dialog) { view->has_dialog = TRUE; msg_area = gtk_message_dialog_get_message_area (GTK_MESSAGE_DIALOG(dialog)); children = gtk_container_get_children(GTK_CONTAINER(msg_area)); for(GList *iter = children; iter; iter = g_list_next(iter)) { if(GTK_IS_LABEL(iter->data)) { gtk_label_set_line_wrap_mode ( GTK_LABEL(iter->data), PANGO_WRAP_WORD_CHAR ); } } g_list_free(children); g_signal_connect ( dialog, "response", G_CALLBACK(message_dialog_response_handler), view ); gtk_window_set_title(GTK_WINDOW(dialog), title); gtk_window_set_modal(GTK_WINDOW(dialog), TRUE); gtk_widget_show_all(dialog); } } static void update_display_fps(CelluloidView *view) { GtkWidget *wnd = GTK_WIDGET(view); GdkWindow *gdkwindow = gtk_widget_get_window(wnd); GdkScreen *screen = gtk_window_get_screen(GTK_WINDOW(wnd)); GdkDisplay *display = gdk_screen_get_display(screen); GdkMonitor *monitor = gdk_display_get_monitor_at_window (display, gdkwindow); view->display_fps = gdk_monitor_get_refresh_rate(monitor)/1000.0; g_object_notify(G_OBJECT(view), "display-fps"); } static void show_open_track_dialog(CelluloidView *view, TrackType type) { const gchar *title = NULL; switch(type) { case TRACK_TYPE_AUDIO: title = _("Load Audio Track…"); break; case TRACK_TYPE_VIDEO: title = _("Load Video Track…"); break; case TRACK_TYPE_SUBTITLE: title = _("Load Subtitle Track…"); break; default: g_assert_not_reached(); break; } CelluloidFileChooser *chooser = celluloid_file_chooser_new ( title, GTK_WINDOW(view), GTK_FILE_CHOOSER_ACTION_OPEN ); g_object_set_data( G_OBJECT(chooser), "track-type", (gpointer)type ); g_signal_connect( chooser, "response", G_CALLBACK(open_track_dialog_response_handler), view ); celluloid_file_chooser_set_default_filters ( chooser, type == TRACK_TYPE_AUDIO, type == TRACK_TYPE_VIDEO, FALSE, type == TRACK_TYPE_SUBTITLE ); celluloid_file_chooser_show(chooser); } static void message_dialog_response_handler( GtkDialog *dialog, gint response_id, gpointer data) { CELLULOID_VIEW(data)->has_dialog = FALSE; gtk_widget_destroy(GTK_WIDGET(dialog)); } static void open_dialog_response_handler(GtkDialog *dialog, gint response_id, gpointer data) { GPtrArray *args = data; CelluloidView *view = g_ptr_array_index(args, 0); gboolean *append = g_ptr_array_index(args, 1); if(response_id == GTK_RESPONSE_ACCEPT) { GtkFileChooser *chooser = GTK_FILE_CHOOSER(dialog); GSList *uri_slist = gtk_file_chooser_get_filenames(chooser); if(uri_slist) { const gchar **uris = gslist_to_array(uri_slist); g_signal_emit_by_name(view, "file-open", uris, *append); g_free(uris); } g_slist_free_full(uri_slist, g_free); } celluloid_file_chooser_destroy(dialog); g_free(append); g_ptr_array_free(args, TRUE); } static void open_location_dialog_response_handler( GtkDialog *dialog, gint response_id, gpointer data ) { GPtrArray *args = data; CelluloidView *view = g_ptr_array_index(args, 0); gboolean *append = g_ptr_array_index(args, 1); if(response_id == GTK_RESPONSE_ACCEPT) { CelluloidOpenLocationDialog *location_dialog; const gchar *uris[2]; location_dialog = CELLULOID_OPEN_LOCATION_DIALOG(dialog); uris[0] = celluloid_open_location_dialog_get_string (location_dialog); uris[1] = NULL; g_signal_emit_by_name(view, "file-open", uris, *append); } gtk_widget_destroy(GTK_WIDGET(dialog)); g_free(append); g_ptr_array_free(args, TRUE); } static void open_track_dialog_response_handler( GtkDialog *dialog, gint response_id, gpointer data ) { if(response_id == GTK_RESPONSE_ACCEPT) { GtkFileChooser *chooser = GTK_FILE_CHOOSER(dialog); GSList *uri_list = gtk_file_chooser_get_filenames(chooser); const gchar *name = NULL; TrackType type = (TrackType) g_object_get_data(G_OBJECT(dialog), "track-type"); switch(type) { case TRACK_TYPE_AUDIO: name = "audio-track-load"; break; case TRACK_TYPE_VIDEO: name = "video-track-load"; break; case TRACK_TYPE_SUBTITLE: name = "subtitle-track-load"; break; default: g_assert_not_reached(); break; } for(GSList *iter = uri_list; iter; iter = g_slist_next(iter)) { g_signal_emit_by_name(data, name, *iter); } g_slist_free_full(uri_list, g_free); } celluloid_file_chooser_destroy(CELLULOID_FILE_CHOOSER(dialog)); } static void preferences_dialog_response_handler( GtkDialog *dialog, gint response_id, gpointer data ) { if(response_id == GTK_RESPONSE_ACCEPT) { CelluloidMainWindow *wnd; GSettings *settings; gboolean csd_enable; wnd = CELLULOID_MAIN_WINDOW(data); settings = g_settings_new(CONFIG_ROOT); csd_enable = g_settings_get_boolean(settings, "csd-enable"); if(celluloid_main_window_get_csd_enabled(wnd) != csd_enable) { show_message_dialog( CELLULOID_VIEW(data), GTK_MESSAGE_INFO, g_get_application_name(), NULL, _("Enabling or disabling " "client-side decorations " "requires restarting to " "take effect.") ); } gtk_widget_queue_draw(GTK_WIDGET(wnd)); g_signal_emit_by_name(data, "preferences-updated"); g_object_unref(settings); } gtk_widget_destroy(GTK_WIDGET(dialog)); } static void realize_handler(GtkWidget *widget, gpointer data) { update_display_fps(CELLULOID_VIEW(widget)); } static void size_allocate_handler( GtkWidget *widget, GdkRectangle *allocation, gpointer data ) { g_signal_emit_by_name( data, "video-area-resize", allocation->width, allocation->height ); } static void render_handler(CelluloidVideoArea *area, gpointer data) { g_signal_emit_by_name(data, "render"); } static gboolean draw_handler(GtkWidget *widget, cairo_t *cr, gpointer data) { CelluloidView *view = CELLULOID_VIEW(widget); CelluloidMainWindow *wnd = CELLULOID_MAIN_WINDOW(view); CelluloidPlaylistWidget *playlist = celluloid_main_window_get_playlist(wnd); const GSignalMatchType match = G_SIGNAL_MATCH_ID|G_SIGNAL_MATCH_DATA; const guint signal_id = g_signal_lookup("draw", CELLULOID_TYPE_VIEW); g_signal_handlers_disconnect_matched (view, match, signal_id, 0, 0, NULL, NULL); if(celluloid_playlist_widget_empty(playlist)) { CelluloidControlBox *control_box; control_box = celluloid_main_window_get_control_box(wnd); g_object_set(control_box, "enabled", FALSE, NULL); } g_signal_emit_by_name(view, "ready"); return FALSE; } static void drag_data_handler( GtkWidget *widget, GdkDragContext *context, gint x, gint y, GtkSelectionData *sel_data, guint info, guint time, gpointer data ) { CelluloidView *view = data; gchar *type = gdk_atom_name(gtk_selection_data_get_target(sel_data)); const guchar *raw_data = gtk_selection_data_get_data(sel_data); gchar **uri_list = gtk_selection_data_get_uris(sel_data); gboolean append = CELLULOID_IS_PLAYLIST_WIDGET(widget); if(g_strcmp0(type, "PLAYLIST_PATH") == 0) { GtkTreePath *path = gtk_tree_path_new_from_string ((const gchar *)raw_data); gint pos = gtk_tree_path_get_indices(path)[0]; g_assert(path); g_signal_emit_by_name(view, "playlist-item-activated", pos); gtk_tree_path_free(path); } else { if(!uri_list) { uri_list = g_malloc(2*sizeof(gchar *)); uri_list[0] = g_strdup((gchar *)raw_data); uri_list[1] = NULL; } g_signal_emit_by_name(view, "file-open", uri_list, append); } g_strfreev(uri_list); g_free(type); } static gboolean window_state_handler(GtkWidget *widget, GdkEvent *event, gpointer data) { CelluloidView *view = data; GdkEventWindowState *state = (GdkEventWindowState *)event; if(state->changed_mask&GDK_WINDOW_STATE_FULLSCREEN) { view->fullscreen = state->new_window_state& GDK_WINDOW_STATE_FULLSCREEN; g_object_notify(data, "fullscreen"); } return FALSE; } static void screen_changed_handler( GtkWidget *wnd, GdkScreen *previous_screen, gpointer data ) { update_display_fps(data); } static gboolean delete_handler(GtkWidget *widget, GdkEvent *event, gpointer data) { if(!celluloid_main_window_get_fullscreen(CELLULOID_MAIN_WINDOW(widget))) { celluloid_main_window_save_state(CELLULOID_MAIN_WINDOW(widget)); } return FALSE; } static void playlist_row_activated_handler( CelluloidPlaylistWidget *playlist, gint64 pos, gpointer data ) { g_signal_emit_by_name(data, "playlist-item-activated", pos); } static void playlist_row_inserted_handler( CelluloidPlaylistWidget *widget, gint pos, gpointer data ) { g_signal_emit_by_name(data, "playlist-item-inserted", pos); } static void playlist_row_deleted_handler( CelluloidPlaylistWidget *widget, gint pos, gpointer data ) { if(celluloid_playlist_widget_empty(widget)) { celluloid_view_reset(data); } g_signal_emit_by_name(data, "playlist-item-deleted", pos); } static void playlist_row_reordered_handler( CelluloidPlaylistWidget *widget, gint src, gint dest, gpointer data ) { g_signal_emit_by_name(data, "playlist-reordered", src, dest); } static void celluloid_view_class_init(CelluloidViewClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS(klass); GParamSpec *pspec = NULL; object_class->constructed = constructed; object_class->dispose = dispose; object_class->set_property = set_property; object_class->get_property = get_property; pspec = g_param_spec_int ( "playlist-count", "Playlist count", "The number of items in playlist", 0, G_MAXINT, 0, G_PARAM_READWRITE ); g_object_class_install_property(object_class, PROP_PLAYLIST_COUNT, pspec); pspec = g_param_spec_boolean ( "pause", "Pause", "Whether or not the player is paused", FALSE, G_PARAM_READWRITE ); g_object_class_install_property(object_class, PROP_PAUSE, pspec); pspec = g_param_spec_double ( "volume", "Volume", "The volume the volume button is set to", 0.0, G_MAXDOUBLE, 0.0, G_PARAM_READWRITE ); g_object_class_install_property(object_class, PROP_VOLUME, pspec); pspec = g_param_spec_double ( "volume-max", "Volume Max", "The maximum amplification level", 0.0, G_MAXDOUBLE, 100.0, G_PARAM_READWRITE ); g_object_class_install_property(object_class, PROP_VOLUME_MAX, pspec); pspec = g_param_spec_double ( "duration", "Duration", "The duration the seek bar is using", 0.0, G_MAXDOUBLE, 0.0, G_PARAM_READWRITE ); g_object_class_install_property(object_class, PROP_DURATION, pspec); pspec = g_param_spec_int ( "playlist-pos", "Playlist position", "The position of the current item in playlist", -1, G_MAXINT, -1, G_PARAM_READWRITE ); g_object_class_install_property(object_class, PROP_PLAYLIST_POS, pspec); pspec = g_param_spec_pointer ( "track-list", "Track list", "The list of tracks in the playing file", G_PARAM_READWRITE ); g_object_class_install_property(object_class, PROP_TRACK_LIST, pspec); pspec = g_param_spec_pointer ( "disc-list", "Disc list", "The list of mounted discs", G_PARAM_READWRITE ); g_object_class_install_property(object_class, PROP_DISC_LIST, pspec); pspec = g_param_spec_boolean ( "skip-enabled", "Skip enabled", "Whether or not skip buttons are shown", FALSE, G_PARAM_READWRITE ); g_object_class_install_property(object_class, PROP_SKIP_ENABLED, pspec); pspec = g_param_spec_boolean ( "loop", "Loop", "Whether or not the the loop button is active", FALSE, G_PARAM_READWRITE ); g_object_class_install_property(object_class, PROP_LOOP, pspec); pspec = g_param_spec_boolean ( "shuffle", "Shuffle", "Whether or not the the shuffle button is active", FALSE, G_PARAM_READWRITE ); g_object_class_install_property(object_class, PROP_SHUFFLE, pspec); pspec = g_param_spec_boolean ( "border", "Border", "Whether or not the main window should have decorations", FALSE, G_PARAM_READWRITE ); g_object_class_install_property(object_class, PROP_BORDER, pspec); pspec = g_param_spec_boolean ( "fullscreen", "Fullscreen", "Whether or not the player is current in fullscreen mode", FALSE, G_PARAM_READWRITE ); g_object_class_install_property(object_class, PROP_FULLSCREEN, pspec); pspec = g_param_spec_boolean ( "maximized", "Maximized", "Whether or not the main window is maximized", FALSE, G_PARAM_READWRITE ); g_object_class_install_property(object_class, PROP_MAXIMIZED, pspec); pspec = g_param_spec_double ( "display-fps", "Display FPS", "The display rate of the monitor the window is on", 0.0, G_MAXDOUBLE, 0.0, G_PARAM_READABLE ); g_object_class_install_property(object_class, PROP_DISPLAY_FPS, pspec); pspec = g_param_spec_boolean ( "searching", "Searching", "Whether or not the user is searching the playlist", FALSE, G_PARAM_READWRITE ); g_object_class_install_property(object_class, PROP_SEARCHING, pspec); g_signal_new( "video-area-resize", G_TYPE_FROM_CLASS(klass), G_SIGNAL_RUN_FIRST|G_SIGNAL_DETAILED, 0, NULL, NULL, g_cclosure_gen_marshal_VOID__INT_INT, G_TYPE_NONE, 2, G_TYPE_INT, G_TYPE_INT ); /* Controls-related signals */ g_signal_new( "volume-changed", G_TYPE_FROM_CLASS(klass), G_SIGNAL_RUN_FIRST, 0, NULL, NULL, g_cclosure_marshal_VOID__DOUBLE, G_TYPE_NONE, 1, G_TYPE_DOUBLE ); g_signal_new( "ready", G_TYPE_FROM_CLASS(klass), G_SIGNAL_RUN_FIRST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0 ); g_signal_new( "render", G_TYPE_FROM_CLASS(klass), G_SIGNAL_RUN_FIRST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0 ); g_signal_new( "preferences-updated", G_TYPE_FROM_CLASS(klass), G_SIGNAL_RUN_FIRST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0 ); g_signal_new( "audio-track-load", G_TYPE_FROM_CLASS(klass), G_SIGNAL_RUN_FIRST, 0, NULL, NULL, g_cclosure_marshal_VOID__STRING, G_TYPE_NONE, 1, G_TYPE_STRING ); g_signal_new( "video-track-load", G_TYPE_FROM_CLASS(klass), G_SIGNAL_RUN_FIRST, 0, NULL, NULL, g_cclosure_marshal_VOID__STRING, G_TYPE_NONE, 1, G_TYPE_STRING ); g_signal_new( "subtitle-track-load", G_TYPE_FROM_CLASS(klass), G_SIGNAL_RUN_FIRST, 0, NULL, NULL, g_cclosure_marshal_VOID__STRING, G_TYPE_NONE, 1, G_TYPE_STRING ); g_signal_new( "file-open", G_TYPE_FROM_CLASS(klass), G_SIGNAL_RUN_FIRST, 0, NULL, NULL, g_cclosure_gen_marshal_VOID__POINTER_BOOLEAN, G_TYPE_NONE, 2, G_TYPE_POINTER, G_TYPE_BOOLEAN ); g_signal_new( "playlist-item-activated", G_TYPE_FROM_CLASS(klass), G_SIGNAL_RUN_FIRST, 0, NULL, NULL, g_cclosure_marshal_VOID__INT, G_TYPE_NONE, 1, G_TYPE_INT ); g_signal_new( "playlist-item-inserted", G_TYPE_FROM_CLASS(klass), G_SIGNAL_RUN_FIRST, 0, NULL, NULL, g_cclosure_marshal_VOID__INT, G_TYPE_NONE, 1, G_TYPE_INT ); g_signal_new( "playlist-item-deleted", G_TYPE_FROM_CLASS(klass), G_SIGNAL_RUN_FIRST, 0, NULL, NULL, g_cclosure_marshal_VOID__INT, G_TYPE_NONE, 1, G_TYPE_INT ); g_signal_new( "playlist-reordered", G_TYPE_FROM_CLASS(klass), G_SIGNAL_RUN_FIRST, 0, NULL, NULL, g_cclosure_gen_marshal_VOID__INT_INT, G_TYPE_NONE, 2, G_TYPE_INT, G_TYPE_INT ); } static void celluloid_view_init(CelluloidView *view) { view->disposed = FALSE; view->has_dialog = FALSE; view->playlist_count = 0; view->pause = FALSE; view->volume = 0.0; view->volume_max = 100.0; view->duration = 0.0; view->playlist_pos = 0; view->disc_list = NULL; view->skip_enabled = FALSE; view->loop = FALSE; view->shuffle = FALSE; view->border = FALSE; view->fullscreen = FALSE; view->maximized = FALSE; view->display_fps = 0; view->searching = FALSE; g_signal_connect(view, "realize", G_CALLBACK(realize_handler), NULL); g_signal_connect_after(view, "draw", G_CALLBACK(draw_handler), NULL); } CelluloidView * celluloid_view_new(CelluloidApplication *app, gboolean always_floating) { GObject *obj = g_object_new( celluloid_view_get_type(), "application", app, "always-use-floating-controls", always_floating, NULL ); CelluloidView *view = CELLULOID_VIEW(obj); GtkApplication *gtk_app = GTK_APPLICATION(app); GSettings *settings = g_settings_new(CONFIG_ROOT); if(g_settings_get_boolean(settings, "csd-enable")) { celluloid_main_window_enable_csd(CELLULOID_MAIN_WINDOW(view)); } else { GMenu *full_menu = g_menu_new(); celluloid_menu_build_full(full_menu, NULL, NULL); gtk_application_set_menubar(gtk_app, G_MENU_MODEL(full_menu)); } g_object_unref(settings); return view; } CelluloidMainWindow * celluloid_view_get_main_window(CelluloidView *view) { return CELLULOID_MAIN_WINDOW(view); } void celluloid_view_show_open_dialog( CelluloidView *view, gboolean folder, gboolean append ) { CelluloidFileChooser *chooser; GPtrArray *args; const gchar *title; GtkFileChooserAction action; gboolean *append_buf; if(folder) { title = append ? _("Add Folder to Playlist") : _("Open Folder"); action = GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER; } else { title = append ? _("Add File to Playlist") : _("Open File"); action = GTK_FILE_CHOOSER_ACTION_OPEN; } chooser = celluloid_file_chooser_new(title, GTK_WINDOW(view), action); args = g_ptr_array_new(); append_buf = g_malloc(sizeof(gboolean)); *append_buf = append; g_ptr_array_add(args, view); g_ptr_array_add(args, append_buf); g_signal_connect( chooser, "response", G_CALLBACK(open_dialog_response_handler), args ); if(!folder) { celluloid_file_chooser_set_default_filters (chooser, TRUE, TRUE, TRUE, TRUE); } celluloid_file_chooser_show(chooser); } void celluloid_view_show_open_location_dialog(CelluloidView *view, gboolean append) { GtkWidget *dlg; GPtrArray *args; gboolean *append_buf; dlg = celluloid_open_location_dialog_new ( GTK_WINDOW(view), append? _("Add Location to Playlist"): _("Open Location") ); args = g_ptr_array_sized_new(2); append_buf = g_malloc(sizeof(gboolean)); *append_buf = append; g_ptr_array_add(args, view); g_ptr_array_add(args, append_buf); g_signal_connect ( dlg, "response", G_CALLBACK(open_location_dialog_response_handler), args ); gtk_widget_show_all(dlg); } void celluloid_view_show_open_audio_track_dialog(CelluloidView *view) { show_open_track_dialog(view, TRACK_TYPE_AUDIO); } void celluloid_view_show_open_video_track_dialog(CelluloidView *view) { show_open_track_dialog(view, TRACK_TYPE_VIDEO); } void celluloid_view_show_open_subtitle_track_dialog(CelluloidView *view) { show_open_track_dialog(view, TRACK_TYPE_SUBTITLE); } void celluloid_view_show_save_playlist_dialog(CelluloidView *view) { GFile *dest_file; CelluloidFileChooser *file_chooser; GtkFileChooser *gtk_chooser; GError *error; dest_file = NULL; file_chooser = celluloid_file_chooser_new ( _("Save Playlist"), GTK_WINDOW(view), GTK_FILE_CHOOSER_ACTION_SAVE ); gtk_chooser = GTK_FILE_CHOOSER(file_chooser); error = NULL; gtk_file_chooser_set_current_name(gtk_chooser, "playlist.m3u"); if(celluloid_file_chooser_run(file_chooser) == GTK_RESPONSE_ACCEPT) { /* There should be only one file selected. */ dest_file = gtk_file_chooser_get_file(gtk_chooser); } celluloid_file_chooser_destroy(file_chooser); if(dest_file) { save_playlist(view, dest_file, &error); g_object_unref(dest_file); } if(error) { show_message_dialog( view, GTK_MESSAGE_ERROR, _("Error"), NULL, error->message ); g_error_free(error); } } void celluloid_view_show_preferences_dialog(CelluloidView *view) { GtkWidget *dialog = celluloid_preferences_dialog_new(GTK_WINDOW(view)); g_signal_connect_after( dialog, "response", G_CALLBACK(preferences_dialog_response_handler), view ); gtk_widget_show_all(dialog); } void celluloid_view_show_shortcuts_dialog(CelluloidView *view) { GtkWidget *wnd = celluloid_shortcuts_window_new(GTK_WINDOW(view)); gtk_widget_show_all(wnd); } void celluloid_view_show_about_dialog(CelluloidView *view) { const gchar *const authors[] = AUTHORS; gtk_show_about_dialog( GTK_WINDOW(view), "logo-icon-name", ICON_NAME, "version", VERSION, "comments", _("A GTK frontend for MPV"), "website", "https://github.com/celluloid-player/celluloid", "license-type", GTK_LICENSE_GPL_3_0, "copyright", "\u00A9 2014-2020 The Celluloid authors", "authors", authors, "translator-credits", _("translator-credits"), NULL ); } void celluloid_view_show_message_dialog( CelluloidView *view, GtkMessageType type, const gchar *title, const gchar *prefix, const gchar *msg ) { show_message_dialog(view, type, title, prefix, msg); } void celluloid_view_present(CelluloidView *view) { gtk_window_present(GTK_WINDOW(view)); } void celluloid_view_quit(CelluloidView *view) { gtk_window_close(GTK_WINDOW(view)); } void celluloid_view_reset(CelluloidView *view) { celluloid_main_window_reset(CELLULOID_MAIN_WINDOW(view)); } void celluloid_view_queue_render(CelluloidView *view) { CelluloidMainWindow *wnd = CELLULOID_MAIN_WINDOW(view); CelluloidVideoArea *area = celluloid_main_window_get_video_area(wnd); celluloid_video_area_queue_render(area); } void celluloid_view_make_gl_context_current(CelluloidView *view) { CelluloidMainWindow *wnd = CELLULOID_MAIN_WINDOW(view); CelluloidVideoArea *video_area = celluloid_main_window_get_video_area(wnd); GtkGLArea *gl_area = celluloid_video_area_get_gl_area(video_area); gtk_widget_realize(GTK_WIDGET(gl_area)); gtk_gl_area_make_current(gl_area); } void celluloid_view_set_use_opengl_cb(CelluloidView *view, gboolean use_opengl_cb) { CelluloidMainWindow *wnd = CELLULOID_MAIN_WINDOW(view); CelluloidVideoArea *area = celluloid_main_window_get_video_area(wnd); celluloid_video_area_set_use_opengl(area, use_opengl_cb); } gint celluloid_view_get_scale_factor(CelluloidView *view) { GdkWindow *gdk_window = gtk_widget_get_window(GTK_WIDGET(view)); return gdk_window_get_scale_factor(gdk_window); } void celluloid_view_get_video_area_geometry( CelluloidView *view, gint *width, gint *height ) { CelluloidMainWindow *wnd = CELLULOID_MAIN_WINDOW(view); CelluloidVideoArea *area = celluloid_main_window_get_video_area(wnd); GtkAllocation allocation; gtk_widget_get_allocation(GTK_WIDGET(area), &allocation); *width = allocation.width; *height = allocation.height; } void celluloid_view_move( CelluloidView *view, gboolean flip_x, gboolean flip_y, GValue *x, GValue *y ) { GtkWindow *window = GTK_WINDOW(view); GdkWindow *gdk_window = gtk_widget_get_window(GTK_WIDGET(window)); GdkDisplay *display = gdk_display_get_default(); GdkMonitor *monitor = gdk_display_get_monitor_at_window (display, gdk_window); GdkRectangle monitor_geom = {0}; gint64 x_pos = -1; gint64 y_pos = -1; gint window_width = 0; gint window_height = 0; gint space_x = 0; gint space_y = 0; gtk_window_get_size(window, &window_width, &window_height); gdk_monitor_get_geometry(monitor, &monitor_geom); space_x = monitor_geom.width-window_width; space_y = monitor_geom.height-window_height; if(G_VALUE_HOLDS_DOUBLE(x)) { x_pos = (gint64)(g_value_get_double(x)*space_x); } else { x_pos = flip_x?space_x-g_value_get_int64(x):g_value_get_int64(x); } if(G_VALUE_HOLDS_DOUBLE(y)) { y_pos = (gint64)(g_value_get_double(y)*space_y); } else { y_pos = flip_y?space_y-g_value_get_int64(y):g_value_get_int64(y); } gtk_window_move(window, (gint)x_pos, (gint)y_pos); } void celluloid_view_resize_video_area(CelluloidView *view, gint width, gint height) { celluloid_main_window_resize_video_area (CELLULOID_MAIN_WINDOW(view), width, height); } void celluloid_view_set_fullscreen(CelluloidView *view, gboolean fullscreen) { g_object_set(view, "fullscreen", fullscreen, NULL); celluloid_main_window_set_fullscreen (CELLULOID_MAIN_WINDOW(view), fullscreen); } void celluloid_view_set_time_position(CelluloidView *view, gdouble position) { CelluloidControlBox *control_box; control_box = celluloid_main_window_get_control_box (CELLULOID_MAIN_WINDOW(view)); g_object_set(control_box, "time-position", position, NULL); } void celluloid_view_update_playlist(CelluloidView *view, GPtrArray *playlist) { CelluloidMainWindow *wnd = CELLULOID_MAIN_WINDOW(view); CelluloidPlaylistWidget *wgt = celluloid_main_window_get_playlist(wnd); celluloid_playlist_widget_update_contents(wgt, playlist); } void celluloid_view_set_playlist_pos(CelluloidView *view, gint64 pos) { g_object_set(view, "playlist-pos", pos, NULL); } void celluloid_view_set_playlist_visible(CelluloidView *view, gboolean visible) { celluloid_main_window_set_playlist_visible (CELLULOID_MAIN_WINDOW(view), visible); } gboolean celluloid_view_get_playlist_visible(CelluloidView *view) { return celluloid_main_window_get_playlist_visible (CELLULOID_MAIN_WINDOW(view)); } void celluloid_view_set_controls_visible(CelluloidView *view, gboolean visible) { celluloid_main_window_set_controls_visible (CELLULOID_MAIN_WINDOW(view), visible); } gboolean celluloid_view_get_controls_visible(CelluloidView *view) { return celluloid_main_window_get_controls_visible (CELLULOID_MAIN_WINDOW(view)); } celluloid-0.20/src/celluloid-view.h000066400000000000000000000064041373135401300172770ustar00rootroot00000000000000/* * Copyright (c) 2017-2020 gnome-mpv * * This file is part of Celluloid. * * Celluloid is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Celluloid is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Celluloid. If not, see . */ #ifndef VIEW_H #define VIEW_H #include #include "celluloid-application.h" G_BEGIN_DECLS #define CELLULOID_TYPE_VIEW (celluloid_view_get_type()) G_DECLARE_FINAL_TYPE(CelluloidView, celluloid_view, CELLULOID, VIEW, CelluloidMainWindow) CelluloidView * celluloid_view_new(CelluloidApplication *app, gboolean always_floating); CelluloidMainWindow * celluloid_view_get_main_window(CelluloidView *view); void celluloid_view_show_open_dialog( CelluloidView *view, gboolean folder, gboolean append ); void celluloid_view_show_open_location_dialog(CelluloidView *view, gboolean append); void celluloid_view_show_open_audio_track_dialog(CelluloidView *view); void celluloid_view_show_open_video_track_dialog(CelluloidView *view); void celluloid_view_show_open_subtitle_track_dialog(CelluloidView *view); void celluloid_view_show_save_playlist_dialog(CelluloidView *view); void celluloid_view_show_preferences_dialog(CelluloidView *view); void celluloid_view_show_shortcuts_dialog(CelluloidView *view); void celluloid_view_show_about_dialog(CelluloidView *view); void celluloid_view_show_message_dialog( CelluloidView *view, GtkMessageType type, const gchar *title, const gchar *prefix, const gchar *msg ); void celluloid_view_present(CelluloidView *view); void celluloid_view_quit(CelluloidView *view); void celluloid_view_reset(CelluloidView *view); void celluloid_view_queue_render(CelluloidView *view); void celluloid_view_make_gl_context_current(CelluloidView *view); void celluloid_view_set_use_opengl_cb(CelluloidView *view, gboolean use_opengl_cb); gint celluloid_view_get_scale_factor(CelluloidView *view); void celluloid_view_get_video_area_geometry( CelluloidView *view, gint *width, gint *height ); void celluloid_view_move( CelluloidView *view, gboolean flip_x, gboolean flip_y, GValue *x, GValue *y ); void celluloid_view_resize_video_area(CelluloidView *view, gint width, gint height); void celluloid_view_set_fullscreen(CelluloidView *view, gboolean fullscreen); void celluloid_view_set_time_position(CelluloidView *view, gdouble position); void celluloid_view_update_playlist(CelluloidView *view, GPtrArray *playlist); void celluloid_view_set_playlist_pos(CelluloidView *view, gint64 pos); void celluloid_view_set_playlist_visible(CelluloidView *view, gboolean visible); gboolean celluloid_view_get_playlist_visible(CelluloidView *view); void celluloid_view_set_controls_visible(CelluloidView *view, gboolean visible); gboolean celluloid_view_get_controls_visible(CelluloidView *view); G_END_DECLS #endif celluloid-0.20/src/generate-authors.py000077500000000000000000000005311373135401300200270ustar00rootroot00000000000000#!/usr/bin/env python3 import sys in_file = sys.argv[1] out_file = sys.argv[2] with open(in_file) as i, open(out_file, 'w') as o: o.write('#pragma once\n\n') o.write('#define AUTHORS {\\\n') for author in i: if not author.startswith('#'): o.write('"{}",\\\n'.format(author.rstrip())) o.write('NULL}\n') celluloid-0.20/src/media-keys/000077500000000000000000000000001373135401300162265ustar00rootroot00000000000000celluloid-0.20/src/media-keys/celluloid-media-keys.c000066400000000000000000000160101373135401300223720ustar00rootroot00000000000000/* * Copyright (c) 2015-2019 gnome-mpv * * This file is part of Celluloid. * * Celluloid is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Celluloid is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Celluloid. If not, see . */ #include "celluloid-media-keys.h" #include "celluloid-def.h" #include enum { PROP_0, PROP_CONTROLLER, N_PROPERTIES }; struct _CelluloidMediaKeys { GObject parent; CelluloidController *controller; gulong focus_sig_id; GDBusProxy *proxy; GDBusConnection *session_bus_conn; }; struct _CelluloidMediaKeysClass { GObjectClass parent_class; }; G_DEFINE_TYPE(CelluloidMediaKeys, celluloid_media_keys, G_TYPE_OBJECT) static void constructed(GObject *object); static void dispose(GObject *object); static void set_property( GObject *object, guint property_id, const GValue *value, GParamSpec *pspec ); static void get_property( GObject *object, guint property_id, GValue *value, GParamSpec *pspec ); static gboolean window_state_handler( GtkWidget *widget, GdkEventWindowState *event, gpointer data ); static void g_signal_handler( GDBusProxy *proxy, gchar *sender_name, gchar *signal_name, GVariant *parameters, gpointer data ); static void proxy_ready_handler( GObject *source_object, GAsyncResult *res, gpointer data ); static void session_ready_handler( GObject *source_object, GAsyncResult *res, gpointer data ); static void constructed(GObject *object) { CelluloidMediaKeys *self = CELLULOID_MEDIA_KEYS(object); CelluloidView *view = celluloid_controller_get_view(self->controller); self->focus_sig_id = g_signal_connect ( celluloid_view_get_main_window(view), "window-state-event", G_CALLBACK(window_state_handler), self ); g_bus_get(G_BUS_TYPE_SESSION, NULL, session_ready_handler, self); } static void dispose(GObject *object) { CelluloidMediaKeys *self = CELLULOID_MEDIA_KEYS(object); CelluloidView *view = celluloid_controller_get_view(self->controller); CelluloidMainWindow *window = celluloid_view_get_main_window(view); if(self->focus_sig_id > 0) { g_signal_handler_disconnect(window, self->focus_sig_id); self->focus_sig_id = 0; } g_clear_object(&self->proxy); g_clear_object(&self->session_bus_conn); G_OBJECT_CLASS(celluloid_media_keys_parent_class)->dispose(object); } static void set_property( GObject *object, guint property_id, const GValue *value, GParamSpec *pspec ) { CelluloidMediaKeys *self = CELLULOID_MEDIA_KEYS(object); switch(property_id) { case PROP_CONTROLLER: self->controller = g_value_get_pointer(value); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID(object, property_id, pspec); break; } G_OBJECT_CLASS(celluloid_media_keys_parent_class)->constructed(object); } static void get_property( GObject *object, guint property_id, GValue *value, GParamSpec *pspec ) { CelluloidMediaKeys *self = CELLULOID_MEDIA_KEYS(object); switch(property_id) { case PROP_CONTROLLER: g_value_set_pointer(value, self->controller); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID(object, property_id, pspec); break; } } static gboolean window_state_handler( GtkWidget *widget, GdkEventWindowState *event, gpointer data ) { CelluloidMediaKeys *self = data; if (event->changed_mask & GDK_WINDOW_STATE_FOCUSED && event->new_window_state & GDK_WINDOW_STATE_FOCUSED && self->proxy != NULL) { g_dbus_proxy_call( self->proxy, "GrabMediaPlayerKeys", g_variant_new("(su)", APP_ID, 0), G_DBUS_CALL_FLAGS_NONE, -1, NULL, NULL, self ); } return FALSE; } static void g_signal_handler( GDBusProxy *proxy, gchar *sender_name, gchar *signal_name, GVariant *parameters, gpointer data ) { CelluloidMediaKeys *self = data; gchar *celluloid_application = NULL; gchar *key = NULL; if(g_strcmp0(signal_name, "MediaPlayerKeyPressed") == 0) { g_variant_get (parameters, "(&s&s)", &celluloid_application, &key); } if(g_strcmp0(celluloid_application, APP_ID) == 0) { const struct { const char *gsd_key; const char *mpv_key; } dict[] = { {"Next", "NEXT"}, {"Previous", "PREV"}, {"Pause", "PAUSE"}, {"Stop", "STOP"}, {"Play", "PLAY"}, {"FastForward","FORWARD"}, {"Rewind", "REWIND"}, {NULL, NULL} }; CelluloidModel *model = celluloid_controller_get_model (self->controller); bool done = false; for(int i = 0; !done && dict[i].gsd_key; i++) { if(g_strcmp0(dict[i].gsd_key, key) == 0) { celluloid_model_key_press(model, dict[i].mpv_key); done = true; } } } } static void proxy_ready_handler( GObject *source_object, GAsyncResult *res, gpointer data ) { CelluloidMediaKeys *self = data; GError *error = NULL; self->proxy = g_dbus_proxy_new_finish(res, &error); if(self->proxy) { g_signal_connect( self->proxy, "g-signal", G_CALLBACK(g_signal_handler), self ); g_dbus_proxy_call( self->proxy, "GrabMediaPlayerKeys", g_variant_new("(su)", APP_ID, 0), G_DBUS_CALL_FLAGS_NONE, -1, NULL, NULL, NULL ); } else { g_error("Failed to create GDBus proxy for media keys"); } if(error) { g_error("%s", error->message); g_error_free(error); } } static void session_ready_handler( GObject *source_object, GAsyncResult *res, gpointer data ) { CelluloidMediaKeys *self = data; self->session_bus_conn = g_bus_get_finish(res, NULL); g_dbus_proxy_new( self->session_bus_conn, G_DBUS_PROXY_FLAGS_NONE, NULL, "org.gnome.SettingsDaemon.MediaKeys", "/org/gnome/SettingsDaemon/MediaKeys", "org.gnome.SettingsDaemon.MediaKeys", NULL, proxy_ready_handler, self ); } static void celluloid_media_keys_init(CelluloidMediaKeys *self) { self->controller = NULL; self->focus_sig_id = 0; self->proxy = NULL; self->session_bus_conn = NULL; } static void celluloid_media_keys_class_init(CelluloidMediaKeysClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS(klass); GParamSpec *pspec = NULL; object_class->constructed = constructed; object_class->set_property = set_property; object_class->get_property = get_property; object_class->dispose = dispose; pspec = g_param_spec_pointer ( "controller", "Controller", "The CelluloidController to use", G_PARAM_CONSTRUCT_ONLY|G_PARAM_READWRITE ); g_object_class_install_property(object_class, PROP_CONTROLLER, pspec); } CelluloidMediaKeys * celluloid_media_keys_new(CelluloidController *controller) { GType type = celluloid_media_keys_get_type(); return CELLULOID_MEDIA_KEYS(g_object_new( type, "controller", controller, NULL )); } celluloid-0.20/src/media-keys/celluloid-media-keys.h000066400000000000000000000020731373135401300224030ustar00rootroot00000000000000/* * Copyright (c) 2015-2019 gnome-mpv * * This file is part of Celluloid. * * Celluloid is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Celluloid is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Celluloid. If not, see . */ #ifndef MEDIA_KEYS_H #define MEDIA_KEYS_H #include "celluloid-controller.h" G_BEGIN_DECLS #define CELLULOID_TYPE_MEDIA_KEYS (celluloid_media_keys_get_type ()) G_DECLARE_FINAL_TYPE(CelluloidMediaKeys, celluloid_media_keys, CELLULOID, MEDIA_KEYS, GObject) CelluloidMediaKeys * celluloid_media_keys_new(CelluloidController *controller); G_END_DECLS #endif celluloid-0.20/src/meson.build000066400000000000000000000075331373135401300163500ustar00rootroot00000000000000gnome = import('gnome') sources = [ 'celluloid-application.c', 'celluloid-common.c', 'celluloid-control-box.c', 'celluloid-controller.c', 'celluloid-controller-actions.c', 'celluloid-controller-input.c', 'celluloid-file-chooser.c', 'celluloid-header-bar.c', 'celluloid-main.c', 'celluloid-main-window.c', 'celluloid-menu.c', 'celluloid-metadata-cache.c', 'celluloid-model.c', 'celluloid-mpv.c', 'celluloid-mpv-wrapper.c', 'celluloid-open-location-dialog.c', 'celluloid-option-parser.c', 'celluloid-player.c', 'celluloid-player-options.c', 'celluloid-playlist-widget.c', 'celluloid-plugins-manager.c', 'celluloid-plugins-manager-item.c', 'celluloid-preferences-dialog.c', 'celluloid-seek-bar.c', 'celluloid-shortcuts-window.c', 'celluloid-time-label.c', 'celluloid-video-area.c', 'celluloid-view.c', 'media-keys/celluloid-media-keys.c', 'mpris/celluloid-mpris.c', 'mpris/celluloid-mpris-module.c', 'mpris/celluloid-mpris-base.c', 'mpris/celluloid-mpris-player.c', 'mpris/celluloid-mpris-track-list.c' ] sources += custom_target('authors', input: '../AUTHORS', output: 'celluloid-authors.h', command: [ find_program('generate-authors.py'), '@INPUT@', '@OUTPUT@' ] ) libgtk = dependency('gtk+-3.0', version: '>= 3.22.23') localedir = join_paths(get_option('prefix'), get_option('localedir')) cflags = [ '-DG_SETTINGS_ENABLE_BACKEND', '-DPACKAGE_LOCALEDIR="@0@"'.format(localedir), '-DVERSION="@0@"'.format(meson.project_version()), '-DGETTEXT_PACKAGE="@0@"'.format(meson.project_name()), '-DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_44', '-DGLIB_VERSION_MAX_ALLOWED=GLIB_VERSION_2_44', '-DGDK_VERSION_MIN_REQUIRED=GDK_VERSION_3_22', '-DGDK_VERSION_MAX_ALLOWED=GDK_VERSION_3_22' ] if get_option('buildtype') == 'release' cflags += [ '-DG_DISABLE_ASSERT=1', '-DG_DISABLE_CHECKS=1', '-DG_DISABLE_CAST_CHECKS=1' ] endif if target_machine.system() == 'windows' libgio = dependency('gio-2.0', version: '>= 2.44') else libgio = dependency('gio-unix-2.0', version: '>= 2.44') endif generated_gdbus_sources = gnome.gdbus_codegen( 'celluloid-mpris-gdbus', '../data/celluloid-mpris-gdbus.xml', namespace: 'celluloid_mpris' ) generated_marshal_sources = gnome.genmarshal('celluloid-marshal', sources: '../data/celluloid-marshal.lst', prefix: 'g_cclosure_gen_marshal', ) # NOTE: All of these are fixed in GLib 2.54 and Meson 0.42.0 and can be # removed once version requirements are bumped includes = [] extra_libs = [] if libgio.version().version_compare('< 2.52.0') # We want to be warning free on old versions: # https://bugzilla.gnome.org/show_bug.cgi?id=778581 extra_libs += static_library('mpris-gdbus', generated_gdbus_sources, c_args: cflags + ['-Wno-conversion'], dependencies: libgio, include_directories: include_directories('..'), ) # Created includes of `src/...`: # https://bugzilla.gnome.org/show_bug.cgi?id=778801 includes = include_directories('..') elif meson.version().version_compare('== 0.46.0') # https://github.com/mesonbuild/meson/issues/3488 includes = include_directories('..') sources += generated_gdbus_sources else sources += generated_gdbus_sources endif if libgio.version().version_compare('< 2.54.0') # Silence warning about missing prototypes in genmarshal-generated files extra_libs += static_library('marshal', generated_marshal_sources, c_args: cflags + ['-Wno-missing-prototypes'], dependencies: libgio, include_directories: include_directories('..') ) else sources += generated_marshal_sources endif executable('celluloid', sources, dependencies: [ libgtk, libgio, meson.get_compiler('c').find_library('m', required: false), dependency('mpv', version: '>= 1.107'), dependency('epoxy') ], link_with: extra_libs, include_directories: includes, c_args: cflags, install: true ) celluloid-0.20/src/mpris/000077500000000000000000000000001373135401300153305ustar00rootroot00000000000000celluloid-0.20/src/mpris/celluloid-mpris-base.c000066400000000000000000000215151373135401300215140ustar00rootroot00000000000000/* * Copyright (c) 2015-2019 gnome-mpv * * This file is part of Celluloid. * * Celluloid is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Celluloid is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Celluloid. If not, see . */ #include #include #include #include #include #include "celluloid-view.h" #include "celluloid-mpris.h" #include "celluloid-mpris-module.h" #include "celluloid-mpris-base.h" #include "celluloid-mpris-gdbus.h" #include "celluloid-def.h" enum { PROP_0, PROP_CONTROLLER, N_PROPERTIES }; struct _CelluloidMprisBase { CelluloidMprisModule parent; CelluloidController *controller; guint reg_id; }; struct _CelluloidMprisBaseClass { CelluloidMprisModuleClass parent_class; }; static void register_interface(CelluloidMprisModule *module); static void unregister_interface(CelluloidMprisModule *module); static void set_property( GObject *object, guint property_id, const GValue *value, GParamSpec *pspec ); static void get_property( GObject *object, guint property_id, GValue *value, GParamSpec *pspec ); static void method_handler( GDBusConnection *connection, const gchar *sender, const gchar *object_path, const gchar *interface_name, const gchar *method_name, GVariant *parameters, GDBusMethodInvocation *invocation, gpointer data ); static GVariant * get_prop_handler( GDBusConnection *connection, const gchar *sender, const gchar *object_path, const gchar *interface_name, const gchar *property_name, GError **error, gpointer data ); static gboolean set_prop_handler( GDBusConnection *connection, const gchar *sender, const gchar *object_path, const gchar *interface_name, const gchar *property_name, GVariant *value, GError **error, gpointer data ); static void fullscreen_handler( GObject *object, GParamSpec *pspec, gpointer data ); static void update_fullscreen(CelluloidMprisBase *base); static GVariant * get_supported_uri_schemes(void); static GVariant * get_supported_mime_types(void); static void celluloid_mpris_base_class_init(CelluloidMprisBaseClass *klass); static void celluloid_mpris_base_init(CelluloidMprisBase *base); G_DEFINE_TYPE(CelluloidMprisBase, celluloid_mpris_base, CELLULOID_TYPE_MPRIS_MODULE); static void register_interface(CelluloidMprisModule *module) { CelluloidMprisBase *base; CelluloidView *view; GDBusInterfaceVTable vtable; GDBusInterfaceInfo *iface; GDBusConnection *conn; base = CELLULOID_MPRIS_BASE(module); view = celluloid_controller_get_view(base->controller); g_object_get(module, "conn", &conn, "iface", &iface, NULL); celluloid_mpris_module_connect_signal ( module, view, "notify::fullscreen", G_CALLBACK(fullscreen_handler), module ); celluloid_mpris_module_set_properties ( module, "CanQuit", g_variant_new_boolean(TRUE), "CanSetFullscreen", g_variant_new_boolean(TRUE), "CanRaise", g_variant_new_boolean(TRUE), "Fullscreen", g_variant_new_boolean(FALSE), "HasTrackList", g_variant_new_boolean(TRUE), "Identity", g_variant_new_string(g_get_application_name()), "DesktopEntry", g_variant_new_string(APP_ID), "SupportedUriSchemes", get_supported_uri_schemes(), "SupportedMimeTypes", get_supported_mime_types(), NULL ); vtable.method_call = (GDBusInterfaceMethodCallFunc)method_handler; vtable.get_property = (GDBusInterfaceGetPropertyFunc)get_prop_handler; vtable.set_property = (GDBusInterfaceSetPropertyFunc)set_prop_handler; base->reg_id = g_dbus_connection_register_object ( conn, MPRIS_OBJ_ROOT_PATH, iface, &vtable, module, NULL, NULL ); update_fullscreen(CELLULOID_MPRIS_BASE(module)); } static void unregister_interface(CelluloidMprisModule *module) { CelluloidMprisBase *base = CELLULOID_MPRIS_BASE(module); GDBusConnection *conn = NULL; g_object_get(module, "conn", &conn, NULL); g_dbus_connection_unregister_object(conn, base->reg_id); } static void set_property( GObject *object, guint property_id, const GValue *value, GParamSpec *pspec ) { CelluloidMprisBase *self = CELLULOID_MPRIS_BASE(object); switch(property_id) { case PROP_CONTROLLER: self->controller = g_value_get_pointer(value); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID(object, property_id, pspec); break; } } static void get_property( GObject *object, guint property_id, GValue *value, GParamSpec *pspec ) { CelluloidMprisBase *self = CELLULOID_MPRIS_BASE(object); switch(property_id) { case PROP_CONTROLLER: g_value_set_pointer(value, self->controller); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID(object, property_id, pspec); break; } } static void method_handler( GDBusConnection *connection, const gchar *sender, const gchar *object_path, const gchar *interface_name, const gchar *method_name, GVariant *parameters, GDBusMethodInvocation *invocation, gpointer data ) { CelluloidMprisBase *base = data; if(g_strcmp0(method_name, "Raise") == 0) { celluloid_view_present (celluloid_controller_get_view(base->controller)); } else if(g_strcmp0(method_name, "Quit") == 0) { celluloid_controller_quit(base->controller); } g_dbus_method_invocation_return_value (invocation, g_variant_new("()", NULL)); } static GVariant * get_prop_handler( GDBusConnection *connection, const gchar *sender, const gchar *object_path, const gchar *interface_name, const gchar *property_name, GError **error, gpointer data ) { GVariant *value = NULL; celluloid_mpris_module_get_properties(data, property_name, &value, NULL); return value?g_variant_ref(value):NULL; } static gboolean set_prop_handler( GDBusConnection *connection, const gchar *sender, const gchar *object_path, const gchar *interface_name, const gchar *property_name, GVariant *value, GError **error, gpointer data ) { CelluloidMprisBase *base = data; if(g_strcmp0(property_name, "Fullscreen") == 0) { CelluloidView *view = celluloid_controller_get_view(base->controller); celluloid_view_set_fullscreen(view, g_variant_get_boolean(value)); } else { celluloid_mpris_module_set_properties( data, property_name, value, NULL ); } return TRUE; /* This function should always succeed */ } static void fullscreen_handler( GObject *object, GParamSpec *pspec, gpointer data ) { update_fullscreen(data); } static void update_fullscreen(CelluloidMprisBase *base) { CelluloidMprisModule *module = CELLULOID_MPRIS_MODULE(base); CelluloidModel *model = celluloid_controller_get_model(base->controller); GVariant *old_value = NULL; gboolean fullscreen = FALSE; celluloid_mpris_module_get_properties (module, "Fullscreen", &old_value, NULL); g_object_get(G_OBJECT(model), "fullscreen", &fullscreen, NULL); if(g_variant_get_boolean(old_value) != fullscreen) { celluloid_mpris_module_set_properties ( module, "Fullscreen", g_variant_new_boolean(fullscreen), NULL ); } } static GVariant * get_supported_uri_schemes(void) { const gchar *protocols[] = SUPPORTED_PROTOCOLS; return celluloid_mpris_build_g_variant_string_array(protocols); } static GVariant * get_supported_mime_types(void) { const gchar *mime_types[] = SUPPORTED_MIME_TYPES; return celluloid_mpris_build_g_variant_string_array(mime_types); } static void celluloid_mpris_base_class_init(CelluloidMprisBaseClass *klass) { CelluloidMprisModuleClass *module_class = CELLULOID_MPRIS_MODULE_CLASS(klass); GObjectClass *object_class = G_OBJECT_CLASS(klass); GParamSpec *pspec = NULL; module_class->register_interface = register_interface; module_class->unregister_interface = unregister_interface; object_class->set_property = set_property; object_class->get_property = get_property; pspec = g_param_spec_pointer ( "controller", "Controller", "The CelluloidController to use", G_PARAM_CONSTRUCT_ONLY|G_PARAM_READWRITE ); g_object_class_install_property(object_class, PROP_CONTROLLER, pspec); } static void celluloid_mpris_base_init(CelluloidMprisBase *base) { base->controller = NULL; base->reg_id = 0; } CelluloidMprisModule * celluloid_mpris_base_new(CelluloidController *controller, GDBusConnection *conn) { GType type; GDBusInterfaceInfo *iface; type = celluloid_mpris_base_get_type(); iface = celluloid_mpris_org_mpris_media_player2_interface_info(); return CELLULOID_MPRIS_MODULE(g_object_new( type, "controller", controller, "conn", conn, "iface", iface, NULL )); } celluloid-0.20/src/mpris/celluloid-mpris-base.h000066400000000000000000000022461373135401300215210ustar00rootroot00000000000000/* * Copyright (c) 2015-2019 gnome-mpv * * This file is part of Celluloid. * * Celluloid is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Celluloid is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Celluloid. If not, see . */ #ifndef MPRIS_BASE_H #define MPRIS_BASE_H #include "celluloid-mpris.h" #include "celluloid-mpris-module.h" #include "celluloid-controller.h" G_BEGIN_DECLS #define CELLULOID_TYPE_MPRIS_BASE (celluloid_mpris_base_get_type()) G_DECLARE_FINAL_TYPE(CelluloidMprisBase, celluloid_mpris_base, CELLULOID, MPRIS_BASE, CelluloidMprisModule) CelluloidMprisModule * celluloid_mpris_base_new( CelluloidController *controller, GDBusConnection *conn ); G_END_DECLS #endif celluloid-0.20/src/mpris/celluloid-mpris-module.c000066400000000000000000000177201373135401300220720ustar00rootroot00000000000000/* * Copyright (c) 2017-2019 gnome-mpv * * This file is part of Celluloid. * * Celluloid is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Celluloid is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Celluloid. If not, see . */ #include "celluloid-mpris-module.h" #include "celluloid-application.h" #include "celluloid-def.h" typedef struct _CelluloidSignalHandlerInfo CelluloidSignalHandlerInfo; typedef struct _CelluloidMprisModulePrivate CelluloidMprisModulePrivate; enum { PROP_0, PROP_CONN, PROP_IFACE, N_PROPERTIES }; struct _CelluloidSignalHandlerInfo { gpointer instance; gulong id; }; struct _CelluloidMprisModulePrivate { GDBusConnection *conn; GDBusInterfaceInfo *iface; GSList *signal_ids; GHashTable *prop_table; }; G_DEFINE_TYPE_WITH_PRIVATE(CelluloidMprisModule, celluloid_mpris_module, G_TYPE_OBJECT) static void set_property( GObject *object, guint property_id, const GValue *value, GParamSpec *pspec ); static void get_property( GObject *object, guint property_id, GValue *value, GParamSpec *pspec ); static void dispose(GObject *object); static void finalize(GObject *object); static void disconnect_signal(CelluloidSignalHandlerInfo *info, gpointer data); static void celluloid_mpris_module_class_init(CelluloidMprisModuleClass *klass); static void celluloid_mpris_module_init(CelluloidMprisModule *module); static void set_property( GObject *object, guint property_id, const GValue *value, GParamSpec *pspec ) { CelluloidMprisModulePrivate *priv; priv = G_TYPE_INSTANCE_GET_PRIVATE( object, CELLULOID_TYPE_MPRIS_MODULE, CelluloidMprisModulePrivate ); switch(property_id) { case PROP_CONN: priv->conn = g_value_get_pointer(value); break; case PROP_IFACE: priv->iface = g_value_get_pointer(value); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID(object, property_id, pspec); break; } } static void get_property( GObject *object, guint property_id, GValue *value, GParamSpec *pspec ) { CelluloidMprisModulePrivate *priv; priv = G_TYPE_INSTANCE_GET_PRIVATE( object, CELLULOID_TYPE_MPRIS_MODULE, CelluloidMprisModulePrivate ); switch(property_id) { case PROP_CONN: g_value_set_pointer(value, priv->conn); break; case PROP_IFACE: g_value_set_pointer(value, priv->iface); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID(object, property_id, pspec); break; } } static void dispose(GObject *object) { CelluloidMprisModulePrivate *priv; priv = G_TYPE_INSTANCE_GET_PRIVATE( object, CELLULOID_TYPE_MPRIS_MODULE, CelluloidMprisModulePrivate ); g_hash_table_unref(priv->prop_table); G_OBJECT_CLASS(celluloid_mpris_module_parent_class)->dispose(object); } static void finalize(GObject *object) { CelluloidMprisModulePrivate *priv; priv = G_TYPE_INSTANCE_GET_PRIVATE( object, CELLULOID_TYPE_MPRIS_MODULE, CelluloidMprisModulePrivate ); g_slist_foreach(priv->signal_ids, (GFunc)disconnect_signal, NULL); g_slist_free_full(priv->signal_ids, g_free); G_OBJECT_CLASS(celluloid_mpris_module_parent_class)->finalize(object); } static void disconnect_signal(CelluloidSignalHandlerInfo *info, gpointer data) { g_signal_handler_disconnect(info->instance, info->id); } static void celluloid_mpris_module_class_init(CelluloidMprisModuleClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS(klass); GParamSpec *pspec = NULL; object_class->set_property = set_property; object_class->get_property = get_property; object_class->dispose = dispose; object_class->finalize = finalize; pspec = g_param_spec_pointer ( "conn", "Connection", "Connection to the session bus", G_PARAM_CONSTRUCT_ONLY|G_PARAM_READWRITE ); g_object_class_install_property(object_class, PROP_CONN, pspec); pspec = g_param_spec_pointer ( "iface", "Interface", "The GDBusInterfaceInfo of the interface", G_PARAM_CONSTRUCT_ONLY|G_PARAM_READWRITE ); g_object_class_install_property(object_class, PROP_IFACE, pspec); } static void celluloid_mpris_module_init(CelluloidMprisModule *module) { CelluloidMprisModulePrivate *priv; priv = G_TYPE_INSTANCE_GET_PRIVATE( module, CELLULOID_TYPE_MPRIS_MODULE, CelluloidMprisModulePrivate ); priv->conn = NULL; priv->iface = NULL; priv->signal_ids = NULL; priv->prop_table = g_hash_table_new_full ( g_str_hash, g_str_equal, g_free, (GDestroyNotify) g_variant_unref ); } void celluloid_mpris_module_connect_signal( CelluloidMprisModule *module, gpointer instance, const gchar *detailed_signal, GCallback handler, gpointer data ) { CelluloidMprisModulePrivate *priv; CelluloidSignalHandlerInfo *info; priv = G_TYPE_INSTANCE_GET_PRIVATE( module, CELLULOID_TYPE_MPRIS_MODULE, CelluloidMprisModulePrivate ); info = g_malloc(sizeof(CelluloidSignalHandlerInfo)); info->instance = instance; info->id = g_signal_connect(instance, detailed_signal, handler, data); priv->signal_ids = g_slist_prepend(priv->signal_ids, info); } void celluloid_mpris_module_get_properties(CelluloidMprisModule *module, ...) { CelluloidMprisModulePrivate *priv; va_list arg; gchar *name; GVariant **value_ptr; priv = G_TYPE_INSTANCE_GET_PRIVATE( module, CELLULOID_TYPE_MPRIS_MODULE, CelluloidMprisModulePrivate ); va_start(arg, module); for( name = va_arg(arg, gchar *), value_ptr = va_arg(arg, GVariant **); name && value_ptr; name = va_arg(arg, gchar *), value_ptr = va_arg(arg, GVariant **) ) { *value_ptr = g_hash_table_lookup(priv->prop_table, name); } } void celluloid_mpris_module_set_properties_full( CelluloidMprisModule *module, gboolean send_new_value, ... ) { CelluloidMprisModulePrivate *priv; GVariantBuilder builder; va_list arg; gchar *name; GVariant *value; const gchar *builder_type_string; const gchar *elem_type_string; GVariant *sig_args; priv = G_TYPE_INSTANCE_GET_PRIVATE( module, CELLULOID_TYPE_MPRIS_MODULE, CelluloidMprisModulePrivate ); builder_type_string = send_new_value?"a{sv}":"as"; elem_type_string = builder_type_string+1; g_debug("Preparing property change event"); g_variant_builder_init(&builder, G_VARIANT_TYPE(builder_type_string)); va_start(arg, send_new_value); for( name = va_arg(arg, gchar *), value = va_arg(arg, GVariant *); name && value; name = va_arg(arg, gchar *), value = va_arg(arg, GVariant *) ) { g_hash_table_replace( priv->prop_table, g_strdup(name), g_variant_ref_sink(value) ); g_debug("Adding property \"%s\"", name); g_variant_builder_add(&builder, elem_type_string, name, value); } sig_args = g_variant_new( "(sa{sv}as)", priv->iface->name, send_new_value?&builder:NULL, send_new_value?NULL:&builder ); g_debug( "Emitting property change event on interface %s", priv->iface->name ); g_dbus_connection_emit_signal ( priv->conn, NULL, MPRIS_OBJ_ROOT_PATH, "org.freedesktop.DBus.Properties", "PropertiesChanged", sig_args, NULL ); } void celluloid_mpris_module_register(CelluloidMprisModule *module) { if(module) { CelluloidMprisModuleClass *klass; g_return_if_fail(CELLULOID_IS_MPRIS_MODULE(module)); klass = CELLULOID_MPRIS_MODULE_GET_CLASS(module); g_return_if_fail(klass->register_interface); klass->register_interface(module); } } void celluloid_mpris_module_unregister(CelluloidMprisModule *module) { if(module) { CelluloidMprisModuleClass *klass; g_return_if_fail(CELLULOID_IS_MPRIS_MODULE(module)); klass = CELLULOID_MPRIS_MODULE_GET_CLASS(module); g_return_if_fail(klass->unregister_interface); klass->unregister_interface(module); } } celluloid-0.20/src/mpris/celluloid-mpris-module.h000066400000000000000000000035231373135401300220730ustar00rootroot00000000000000/* * Copyright (c) 2017-2019 gnome-mpv * * This file is part of Celluloid. * * Celluloid is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Celluloid is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Celluloid. If not, see . */ #ifndef MPRIS_MODULE_H #define MPRIS_MODULE_H #include #include G_BEGIN_DECLS #define CELLULOID_TYPE_MPRIS_MODULE celluloid_mpris_module_get_type() G_DECLARE_DERIVABLE_TYPE(CelluloidMprisModule, celluloid_mpris_module, CELLULOID, MPRIS_MODULE, GObject) struct _CelluloidMprisModuleClass { GObjectClass parent_interface; void (*register_interface)(CelluloidMprisModule *module); void (*unregister_interface)(CelluloidMprisModule *module); }; void celluloid_mpris_module_connect_signal( CelluloidMprisModule *module, gpointer instance, const gchar *detailed_signal, GCallback handler, gpointer data ); #define celluloid_mpris_module_set_properties(module, ...)\ celluloid_mpris_module_set_properties_full(module, TRUE, __VA_ARGS__) void celluloid_mpris_module_get_properties(CelluloidMprisModule *module, ...); void celluloid_mpris_module_set_properties_full( CelluloidMprisModule *module, gboolean send_new_value, ... ); void celluloid_mpris_module_register(CelluloidMprisModule *module); void celluloid_mpris_module_unregister(CelluloidMprisModule *module); G_END_DECLS #endif celluloid-0.20/src/mpris/celluloid-mpris-player.c000066400000000000000000000466001373135401300221000ustar00rootroot00000000000000/* * Copyright (c) 2015-2019 gnome-mpv * * This file is part of Celluloid. * * Celluloid is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Celluloid is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Celluloid. If not, see . */ #include #include #include #include #include #include "celluloid-mpris-player.h" #include "celluloid-common.h" #include "celluloid-main-window.h" #include "celluloid-mpris.h" #include "celluloid-mpris-player.h" #include "celluloid-mpris-gdbus.h" #include "celluloid-def.h" enum { PROP_0, PROP_CONTROLLER, N_PROPERTIES }; struct _CelluloidMprisPlayer { CelluloidMprisModule parent; CelluloidController *controller; guint reg_id; }; struct _CelluloidMprisPlayerClass { CelluloidMprisModuleClass parent_class; }; static void register_interface(CelluloidMprisModule *module); static void unregister_interface(CelluloidMprisModule *module); static void set_property( GObject *object, guint property_id, const GValue *value, GParamSpec *pspec ); static void get_property( GObject *object, guint property_id, GValue *value, GParamSpec *pspec ); static void append_metadata_tags(GVariantBuilder *builder, GPtrArray *list); static void method_handler( GDBusConnection *connection, const gchar *sender, const gchar *object_path, const gchar *interface_name, const gchar *method_name, GVariant *parameters, GDBusMethodInvocation *invocation, gpointer data ); static GVariant * get_prop_handler( GDBusConnection *connection, const gchar *sender, const gchar *object_path, const gchar *interface_name, const gchar *property_name, GError **error, gpointer data ); static gboolean set_prop_handler( GDBusConnection *connection, const gchar *sender, const gchar *object_path, const gchar *interface_name, const gchar *property_name, GVariant *value, GError **error, gpointer data ); static void update_playback_status(CelluloidMprisPlayer *player); static void update_playlist_state(CelluloidMprisPlayer *player); static void update_speed(CelluloidMprisPlayer *player); static void update_loop(CelluloidMprisPlayer *player); static void update_metadata(CelluloidMprisPlayer *player); static void update_volume(CelluloidMprisPlayer *player); static void idle_active_handler( GObject *object, GParamSpec *pspec, gpointer data ); static void core_idle_handler( GObject *object, GParamSpec *pspec, gpointer data ); static void playlist_pos_handler( GObject *object, GParamSpec *pspec, gpointer data ); static void playlist_count_handler( GObject *object, GParamSpec *pspec, gpointer data ); static void speed_handler( GObject *object, GParamSpec *pspec, gpointer data ); static void loop_handler( GObject *object, GParamSpec *pspec, gpointer data ); static void metadata_handler( GObject *object, GParamSpec *pspec, gpointer data ); static void volume_handler( GObject *object, GParamSpec *pspec, gpointer data ); static void playback_restart_handler(CelluloidModel *model, gpointer data); static void celluloid_mpris_player_class_init(CelluloidMprisPlayerClass *klass); static void celluloid_mpris_player_init(CelluloidMprisPlayer *player); G_DEFINE_TYPE(CelluloidMprisPlayer, celluloid_mpris_player, CELLULOID_TYPE_MPRIS_MODULE); static void register_interface(CelluloidMprisModule *module) { CelluloidMprisPlayer *player = CELLULOID_MPRIS_PLAYER(module); CelluloidModel *model = celluloid_controller_get_model (player->controller); GDBusConnection *conn; GDBusInterfaceInfo *iface; GDBusInterfaceVTable vtable; g_object_get(module, "conn", &conn, "iface", &iface, NULL); celluloid_mpris_module_connect_signal ( module, model, "notify::core-idle", G_CALLBACK(core_idle_handler), player ); celluloid_mpris_module_connect_signal ( module, model, "notify::idle-active", G_CALLBACK(idle_active_handler), player ); celluloid_mpris_module_connect_signal ( module, model, "notify::playlist-pos", G_CALLBACK(playlist_pos_handler), player ); celluloid_mpris_module_connect_signal ( module, model, "notify::playlist-count", G_CALLBACK(playlist_count_handler), player ); celluloid_mpris_module_connect_signal ( module, model, "notify::speed", G_CALLBACK(speed_handler), player ); celluloid_mpris_module_connect_signal ( module, model, "notify::loop-file", G_CALLBACK(loop_handler), player ); celluloid_mpris_module_connect_signal ( module, model, "notify::loop-playlist", G_CALLBACK(loop_handler), player ); celluloid_mpris_module_connect_signal ( module, model, "notify::metadata", G_CALLBACK(metadata_handler), player ); celluloid_mpris_module_connect_signal ( module, model, "notify::volume", G_CALLBACK(volume_handler), player ); celluloid_mpris_module_connect_signal ( module, model, "playback-restart", G_CALLBACK(playback_restart_handler), player ); celluloid_mpris_module_set_properties ( module, "PlaybackStatus", g_variant_new_string("Stopped"), "LoopStatus", g_variant_new_string("None"), "Rate", g_variant_new_double(1.0), "Metadata", g_variant_new("a{sv}", NULL), "Volume", g_variant_new_double(1.0), "MinimumRate", g_variant_new_double(0.01), "MaximumRate", g_variant_new_double(100.0), "CanGoNext", g_variant_new_boolean(FALSE), "CanGoPrevious", g_variant_new_boolean(FALSE), "CanPlay", g_variant_new_boolean(TRUE), "CanPause", g_variant_new_boolean(TRUE), "CanSeek", g_variant_new_boolean(FALSE), "CanControl", g_variant_new_boolean(TRUE), NULL ); vtable.method_call = (GDBusInterfaceMethodCallFunc)method_handler; vtable.get_property = (GDBusInterfaceGetPropertyFunc)get_prop_handler; vtable.set_property = (GDBusInterfaceSetPropertyFunc)set_prop_handler; player->reg_id = g_dbus_connection_register_object ( conn, MPRIS_OBJ_ROOT_PATH, iface, &vtable, player, NULL, NULL ); update_playback_status(player); update_playlist_state(player); update_speed(player); update_metadata(player); update_volume(player); } static void unregister_interface(CelluloidMprisModule *module) { CelluloidMprisPlayer *player = CELLULOID_MPRIS_PLAYER(module); GDBusConnection *conn = NULL; g_object_get(module, "conn", &conn, NULL); g_dbus_connection_unregister_object(conn, player->reg_id); } static void set_property( GObject *object, guint property_id, const GValue *value, GParamSpec *pspec ) { CelluloidMprisPlayer *self = CELLULOID_MPRIS_PLAYER(object); switch(property_id) { case PROP_CONTROLLER: self->controller = g_value_get_pointer(value); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID(object, property_id, pspec); break; } } static void get_property( GObject *object, guint property_id, GValue *value, GParamSpec *pspec ) { CelluloidMprisPlayer *self = CELLULOID_MPRIS_PLAYER(object); switch(property_id) { case PROP_CONTROLLER: g_value_set_pointer(value, self->controller); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID(object, property_id, pspec); break; } } static void append_metadata_tags(GVariantBuilder *builder, GPtrArray *list) { const struct { const gchar *mpv_name; const gchar *tag_name; const gboolean is_array; } tag_map[] = { {"Album", "xesam:album", FALSE}, {"Album_Artist", "xesam:albumArtist", TRUE}, {"Artist", "xesam:artist", TRUE}, {"Comment", "xesam:comment", TRUE}, {"Composer", "xesam:composer", FALSE}, {"Genre", "xesam:genre", TRUE}, {"Title", "xesam:title", FALSE}, {NULL, NULL, FALSE} }; const guint list_len = list?list->len:0; for(guint i = 0; i < list_len; i++) { const gchar *tag_name; GVariant *tag_value; CelluloidMetadataEntry *entry = g_ptr_array_index(list, i); gboolean is_array = TRUE; gint j = -1; /* Translate applicable mpv tag names to MPRIS2-compatible tag * names. */ while( tag_map[++j].mpv_name && g_ascii_strcasecmp(entry->key, tag_map[j].mpv_name) != 0 ); tag_name = tag_map[j].mpv_name?tag_map[j].tag_name:entry->key; is_array = tag_map[j].mpv_name?tag_map[j].is_array:FALSE; if(is_array) { GVariantBuilder tag_builder; GVariant *elem_value; elem_value = g_variant_new_string(entry->value); g_variant_builder_init (&tag_builder, G_VARIANT_TYPE("as")); g_variant_builder_add_value (&tag_builder, elem_value); tag_value = g_variant_new("as", &tag_builder); } else { tag_value = g_variant_new_string(entry->value); } g_debug("Adding metadata tag \"%s\"", tag_name); g_variant_builder_add(builder, "{sv}", tag_name, tag_value); } } static void method_handler( GDBusConnection *connection, const gchar *sender, const gchar *object_path, const gchar *interface_name, const gchar *method_name, GVariant *parameters, GDBusMethodInvocation *invocation, gpointer data ) { CelluloidMprisPlayer *player = data; CelluloidModel *model = celluloid_controller_get_model (player->controller); if(g_strcmp0(method_name, "Next") == 0) { celluloid_model_key_press(model, "NEXT"); } else if(g_strcmp0(method_name, "Previous") == 0) { celluloid_model_key_press(model, "PREV"); } else if(g_strcmp0(method_name, "Pause") == 0) { celluloid_model_key_press(model, "PAUSE"); } else if(g_strcmp0(method_name, "PlayPause") == 0) { celluloid_model_key_press(model, "PLAYPAUSE"); } else if(g_strcmp0(method_name, "Stop") == 0) { celluloid_model_key_press(model, "STOP"); } else if(g_strcmp0(method_name, "Play") == 0) { celluloid_model_key_press(model, "PLAY"); } else if(g_strcmp0(method_name, "Seek") == 0) { gint64 offset_us; g_variant_get(parameters, "(x)", &offset_us); celluloid_model_seek_offset(model, (gdouble)offset_us/1.0e6); } else if(g_strcmp0(method_name, "SetPosition") == 0) { const gchar *prefix = MPRIS_TRACK_ID_PREFIX; const gsize prefix_len = strlen(prefix); gint64 time_us = -1; const gchar *track_id = NULL; g_variant_get(parameters, "(&ox)", &track_id, &time_us); if(strncmp(track_id, prefix, prefix_len) == 0) { gint64 index = g_ascii_strtoll (track_id+prefix_len, NULL, 0); celluloid_model_set_playlist_position(model, index); celluloid_model_seek(model, (gdouble)time_us/1.0e6); } } else if(g_strcmp0(method_name, "OpenUri") == 0) { const gchar *uri; g_variant_get(parameters, "(&s)", &uri); celluloid_model_load_file(model, uri, FALSE); } g_dbus_method_invocation_return_value (invocation, g_variant_new("()", NULL)); } static GVariant * get_prop_handler( GDBusConnection *connection, const gchar *sender, const gchar *object_path, const gchar *interface_name, const gchar *property_name, GError **error, gpointer data ) { CelluloidMprisPlayer *player = data; GVariant *value; if(g_strcmp0(property_name, "Position") == 0) { CelluloidModel *model; gdouble position; model = celluloid_controller_get_model(player->controller); position = celluloid_model_get_time_position(model); value = g_variant_new_int64((gint64)(position*1e6)); } else { celluloid_mpris_module_get_properties ( CELLULOID_MPRIS_MODULE(data), property_name, &value, NULL ); } return value?g_variant_ref(value):NULL; } static gboolean set_prop_handler( GDBusConnection *connection, const gchar *sender, const gchar *object_path, const gchar *interface_name, const gchar *property_name, GVariant *value, GError **error, gpointer data ) { CelluloidMprisPlayer *player = data; CelluloidModel *model = celluloid_controller_get_model (player->controller); if(g_strcmp0(property_name, "LoopStatus") == 0) { const gchar *loop = g_variant_get_string(value, NULL); const gchar *loop_file = g_strcmp0(loop, "Track") == 0 ? "inf":"no"; const gchar *loop_playlist = g_strcmp0(loop, "Playlist") == 0 ? "inf":"no"; g_object_set( G_OBJECT(model), "loop-file", loop_file, "loop-playlist", loop_playlist, NULL ); } else if(g_strcmp0(property_name, "Rate") == 0) { g_object_set( G_OBJECT(model), "speed", g_variant_get_double(value), NULL ); } else if(g_strcmp0(property_name, "Volume") == 0) { g_object_set( G_OBJECT(model), "volume", 100*g_variant_get_double(value), NULL ); } celluloid_mpris_module_set_properties( CELLULOID_MPRIS_MODULE(data), property_name, value, NULL ); return TRUE; /* This function should always succeed */ } static void update_playback_status(CelluloidMprisPlayer *player) { CelluloidModel *model = celluloid_controller_get_model (player->controller); const gchar *state; gint idle_active; gint core_idle; gboolean can_seek; g_object_get( G_OBJECT(model), "idle-active", &idle_active, "core-idle", &core_idle, NULL ); if(!core_idle && !idle_active) { state = "Playing"; can_seek = TRUE; } else if(core_idle && idle_active) { state = "Stopped"; can_seek = FALSE; } else { state = "Paused"; can_seek = TRUE; } celluloid_mpris_module_set_properties( CELLULOID_MPRIS_MODULE(player), "PlaybackStatus", g_variant_new_string(state), "CanSeek", g_variant_new_boolean(can_seek), NULL ); } static void update_playlist_state(CelluloidMprisPlayer *player) { CelluloidModel *model = celluloid_controller_get_model (player->controller); gboolean can_prev; gboolean can_next; gint64 playlist_count; gint64 playlist_pos; gint rc = 0; g_object_get( G_OBJECT(model), "playlist-count", &playlist_count, "playlist-pos", &playlist_pos, NULL ); can_prev = (rc >= 0 && playlist_pos > 0); can_next = (rc >= 0 && playlist_pos < playlist_count-1); celluloid_mpris_module_set_properties( CELLULOID_MPRIS_MODULE(player), "CanGoPrevious", g_variant_new_boolean(can_prev), "CanGoNext", g_variant_new_boolean(can_next), NULL ); } static void update_speed(CelluloidMprisPlayer *player) { CelluloidModel *model = celluloid_controller_get_model (player->controller); gdouble speed = 1.0; g_object_get(G_OBJECT(model), "speed", &speed, NULL); celluloid_mpris_module_set_properties( CELLULOID_MPRIS_MODULE(player), "Rate", g_variant_new_double(speed), NULL ); } static void update_loop(CelluloidMprisPlayer *player) { CelluloidModel *model = celluloid_controller_get_model (player->controller); gchar *loop_file = NULL; gchar *loop_playlist = NULL; const gchar *loop = NULL; g_object_get( model, "loop-file", &loop_file, "loop-playlist", &loop_playlist, NULL ); loop = g_strcmp0(loop_file, "inf") == 0 ? "Track" : g_strcmp0(loop_playlist, "inf") == 0 ? "Playlist" : "None"; celluloid_mpris_module_set_properties( CELLULOID_MPRIS_MODULE(player), "LoopStatus", g_variant_new_string(loop), NULL ); g_free(loop_file); g_free(loop_playlist); } static void update_metadata(CelluloidMprisPlayer *player) { CelluloidModel *model = celluloid_controller_get_model (player->controller); GPtrArray *metadata = NULL; GVariantBuilder builder; gchar *path; gchar *uri; gchar *playlist_pos_str; gchar *trackid; gdouble duration = 0; gint64 playlist_pos = 0; g_variant_builder_init(&builder, G_VARIANT_TYPE("a{sv}")); path = celluloid_model_get_current_path(model)?:g_strdup(""); uri = g_filename_to_uri(path, NULL, NULL)?:g_strdup(path); if(uri) { g_variant_builder_add( &builder, "{sv}", "xesam:url", g_variant_new_string(uri) ); } g_object_get( model, "duration", &duration, "playlist-pos", &playlist_pos, "metadata", &metadata, NULL ); g_variant_builder_add( &builder, "{sv}", "mpris:length", g_variant_new_int64 ((gint64)(duration*1e6)) ); playlist_pos_str = g_strdup_printf("%" G_GINT64_FORMAT, playlist_pos); trackid = g_strconcat( MPRIS_TRACK_ID_PREFIX, playlist_pos_str, NULL ); g_variant_builder_add( &builder, "{sv}", "mpris:trackid", g_variant_new_object_path(trackid) ); append_metadata_tags(&builder, metadata); celluloid_mpris_module_set_properties( CELLULOID_MPRIS_MODULE(player), "Metadata", g_variant_new("a{sv}", &builder), NULL ); g_free(path); g_free(uri); g_free(playlist_pos_str); g_free(trackid); } static void update_volume(CelluloidMprisPlayer *player) { CelluloidModel *model = celluloid_controller_get_model (player->controller); gdouble volume = 0.0; g_object_get(G_OBJECT(model), "volume", &volume, NULL); celluloid_mpris_module_set_properties ( CELLULOID_MPRIS_MODULE(player), "Volume", g_variant_new_double(volume/100.0), NULL ); } static void idle_active_handler( GObject *object, GParamSpec *pspec, gpointer data ) { update_playback_status(data); } static void core_idle_handler( GObject *object, GParamSpec *pspec, gpointer data ) { update_playback_status(data); } static void playlist_pos_handler( GObject *object, GParamSpec *pspec, gpointer data ) { update_playlist_state(data); } static void playlist_count_handler( GObject *object, GParamSpec *pspec, gpointer data ) { update_playlist_state(data); } static void speed_handler( GObject *object, GParamSpec *pspec, gpointer data ) { update_speed(data); } static void loop_handler( GObject *object, GParamSpec *pspec, gpointer data ) { update_loop(data); } static void metadata_handler( GObject *object, GParamSpec *pspec, gpointer data ) { update_metadata(data); } static void volume_handler( GObject *object, GParamSpec *pspec, gpointer data ) { update_volume(data); } static void playback_restart_handler(CelluloidModel *model, gpointer data) { GDBusConnection *conn; GDBusInterfaceInfo *iface; gdouble position; position = celluloid_model_get_time_position(model); g_object_get( CELLULOID_MPRIS_MODULE(data), "conn", &conn, "iface", &iface, NULL ); g_dbus_connection_emit_signal ( conn, NULL, MPRIS_OBJ_ROOT_PATH, iface->name, "Seeked", g_variant_new("(x)", (gint64)(position*1e6)), NULL ); } static void celluloid_mpris_player_class_init(CelluloidMprisPlayerClass *klass) { CelluloidMprisModuleClass *module_class = CELLULOID_MPRIS_MODULE_CLASS(klass); GObjectClass *object_class = G_OBJECT_CLASS(klass); GParamSpec *pspec = NULL; module_class->register_interface = register_interface; module_class->unregister_interface = unregister_interface; object_class->set_property = set_property; object_class->get_property = get_property; pspec = g_param_spec_pointer ( "controller", "Controller", "The CelluloidApplication to use", G_PARAM_CONSTRUCT_ONLY|G_PARAM_READWRITE ); g_object_class_install_property(object_class, PROP_CONTROLLER, pspec); } static void celluloid_mpris_player_init(CelluloidMprisPlayer *player) { player->controller = NULL; player->reg_id = 0; } CelluloidMprisModule * celluloid_mpris_player_new( CelluloidController *controller, GDBusConnection *conn ) { GType type; GDBusInterfaceInfo *iface; type = celluloid_mpris_player_get_type(); iface = celluloid_mpris_org_mpris_media_player2_player_interface_info(); return CELLULOID_MPRIS_MODULE(g_object_new( type, "controller", controller, "conn", conn, "iface", iface, NULL )); } celluloid-0.20/src/mpris/celluloid-mpris-player.h000066400000000000000000000022661373135401300221050ustar00rootroot00000000000000/* * Copyright (c) 2015-2019 gnome-mpv * * This file is part of Celluloid. * * Celluloid is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Celluloid is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Celluloid. If not, see . */ #ifndef MPRIS_PLAYER_H #define MPRIS_PLAYER_H #include "celluloid-mpris.h" #include "celluloid-mpris-module.h" #include "celluloid-controller.h" G_BEGIN_DECLS #define CELLULOID_TYPE_MPRIS_PLAYER (celluloid_mpris_player_get_type()) G_DECLARE_FINAL_TYPE(CelluloidMprisPlayer, celluloid_mpris_player, CELLULOID, MPRIS_PLAYER, CelluloidMprisModule) CelluloidMprisModule * celluloid_mpris_player_new( CelluloidController *controller, GDBusConnection *conn ); G_END_DECLS #endif celluloid-0.20/src/mpris/celluloid-mpris-track-list.c000066400000000000000000000340421373135401300226560ustar00rootroot00000000000000/* * Copyright (c) 2017-2019 gnome-mpv * * This file is part of Celluloid. * * Celluloid is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Celluloid is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Celluloid. If not, see . */ #include "celluloid-mpris-track-list.h" #include "celluloid-mpris-gdbus.h" #include "celluloid-common.h" #include "celluloid-def.h" #include enum { PROP_0, PROP_CONTROLLER, N_PROPERTIES }; struct _CelluloidMprisTrackList { CelluloidMprisModule parent; CelluloidController *controller; guint reg_id; }; struct _CelluloidMprisTrackListClass { CelluloidMprisModuleClass parent_class; }; static void register_interface(CelluloidMprisModule *module); static void unregister_interface(CelluloidMprisModule *module); static void set_property( GObject *object, guint property_id, const GValue *value, GParamSpec *pspec ); static void get_property( GObject *object, guint property_id, GValue *value, GParamSpec *pspec ); static void method_handler( GDBusConnection *connection, const gchar *sender, const gchar *object_path, const gchar *interface_name, const gchar *method_name, GVariant *parameters, GDBusMethodInvocation *invocation, gpointer data ); static GVariant * get_prop_handler( GDBusConnection *connection, const gchar *sender, const gchar *object_path, const gchar *interface_name, const gchar *property_name, GError **error, gpointer data ); static gboolean set_prop_handler( GDBusConnection *connection, const gchar *sender, const gchar *object_path, const gchar *interface_name, const gchar *property_name, GVariant *value, GError **error, gpointer data ); static void playlist_handler( GObject *object, GParamSpec *pspec, gpointer data ); static void metadata_update_handler(CelluloidModel *model, gint64 pos, gpointer data); static void update_playlist(CelluloidMprisTrackList *track_list); static gint64 track_id_to_index(const gchar *track_id); static GVariant * playlist_entry_to_variant(CelluloidPlaylistEntry *entry, gint64 index); static GVariant * get_tracks_metadata(GPtrArray *playlist, const gchar **track_ids); static void celluloid_mpris_track_list_class_init(CelluloidMprisTrackListClass *klass); static void celluloid_mpris_track_list_init(CelluloidMprisTrackList *track_list); G_DEFINE_TYPE(CelluloidMprisTrackList, celluloid_mpris_track_list, CELLULOID_TYPE_MPRIS_MODULE); static void register_interface(CelluloidMprisModule *module) { CelluloidMprisTrackList *track_list = CELLULOID_MPRIS_TRACK_LIST(module); CelluloidModel *model = celluloid_controller_get_model (track_list->controller); GDBusConnection *conn; GDBusInterfaceInfo *iface; GDBusInterfaceVTable vtable; g_object_get(module, "conn", &conn, "iface", &iface, NULL); celluloid_mpris_module_connect_signal( module, model, "notify::playlist", G_CALLBACK(playlist_handler), module ); celluloid_mpris_module_connect_signal( module, model, "metadata-update", G_CALLBACK(metadata_update_handler), module ); celluloid_mpris_module_set_properties ( module, "Tracks", g_variant_new("ao", NULL), "CanEditTracks", g_variant_new_boolean(FALSE), NULL ); vtable.method_call = (GDBusInterfaceMethodCallFunc)method_handler; vtable.get_property = (GDBusInterfaceGetPropertyFunc)get_prop_handler; vtable.set_property = (GDBusInterfaceSetPropertyFunc)set_prop_handler; track_list->reg_id = g_dbus_connection_register_object ( conn, MPRIS_OBJ_ROOT_PATH, iface, &vtable, module, NULL, NULL ); update_playlist(CELLULOID_MPRIS_TRACK_LIST(module)); } static void unregister_interface(CelluloidMprisModule *module) { CelluloidMprisTrackList *track_list = CELLULOID_MPRIS_TRACK_LIST(module); GDBusConnection *conn = NULL; g_object_get(module, "conn", &conn, NULL); g_dbus_connection_unregister_object(conn, track_list->reg_id); } static void set_property( GObject *object, guint property_id, const GValue *value, GParamSpec *pspec ) { CelluloidMprisTrackList *self = CELLULOID_MPRIS_TRACK_LIST(object); switch(property_id) { case PROP_CONTROLLER: self->controller = g_value_get_pointer(value); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID(object, property_id, pspec); break; } } static void get_property( GObject *object, guint property_id, GValue *value, GParamSpec *pspec ) { CelluloidMprisTrackList *self = CELLULOID_MPRIS_TRACK_LIST(object); switch(property_id) { case PROP_CONTROLLER: g_value_set_pointer(value, self->controller); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID(object, property_id, pspec); break; } } static void method_handler( GDBusConnection *connection, const gchar *sender, const gchar *object_path, const gchar *interface_name, const gchar *method_name, GVariant *parameters, GDBusMethodInvocation *invocation, gpointer data ) { CelluloidMprisTrackList *track_list = data; CelluloidModel *model = celluloid_controller_get_model (track_list->controller); GVariant *return_value = NULL; if(g_strcmp0(method_name, "GetTracksMetadata") == 0) { GPtrArray *playlist = NULL; const gchar **track_ids = NULL; g_object_get(model, "playlist", &playlist, NULL); g_variant_get(parameters, "(^a&o)", &track_ids); return_value = get_tracks_metadata(playlist, track_ids); g_free(track_ids); } else if(g_strcmp0(method_name, "GoTo") == 0) { const gchar *track_id; g_variant_get(parameters, "(o)", &track_id, NULL); if(g_str_has_prefix(track_id, MPRIS_TRACK_ID_PREFIX)) { const gsize prefix_len = sizeof(MPRIS_TRACK_ID_PREFIX)-1; gint64 playlist_pos = g_ascii_strtoll (track_id+prefix_len, NULL, 10); g_object_set(model, "playlist-pos", playlist_pos, NULL); } else { g_warning( "The GoTo MPRIS method was called with " "invalid track ID: %s", track_id ); } return_value = g_variant_new("()", NULL); } else if(g_strcmp0(method_name, "AddTrack") == 0) { /* Not implemented */ g_warning( "The %s MPRIS method was called even though " "CanEditTracks property is FALSE", method_name ); return_value = g_variant_new("()", NULL); } else if(g_strcmp0(method_name, "RemoveTrack") == 0) { /* Not implemented */ g_warning( "The %s MPRIS method was called even though " "CanEditTracks property is FALSE", method_name ); return_value = g_variant_new("()", NULL); } else { g_critical("Attempted to call unknown method: %s", method_name); return_value = g_variant_new("()", NULL); } g_dbus_method_invocation_return_value(invocation, return_value); } static GVariant * get_prop_handler( GDBusConnection *connection, const gchar *sender, const gchar *object_path, const gchar *interface_name, const gchar *property_name, GError **error, gpointer data ) { GVariant *value = NULL; celluloid_mpris_module_get_properties( CELLULOID_MPRIS_MODULE(data), property_name, &value, NULL ); /* Call g_variant_ref() to prevent the value of the property in the * properties table from being freed. */ return value?g_variant_ref(value):NULL; } static gboolean set_prop_handler( GDBusConnection *connection, const gchar *sender, const gchar *object_path, const gchar *interface_name, const gchar *property_name, GVariant *value, GError **error, gpointer data ) { g_warning( "Attempted to set property %s in " "org.mpris.MediaPlayer2.TrackList, but the interface " "only has read-only properties.", property_name ); /* Always fail since the interface only has read-only properties */ return FALSE; } static void playlist_handler( GObject *object, GParamSpec *pspec, gpointer data ) { update_playlist(data); } static void metadata_update_handler(CelluloidModel *model, gint64 pos, gpointer data) { GDBusConnection *conn = NULL; GDBusInterfaceInfo *iface = NULL; gchar *track_id = NULL; GVariant *signal_params = NULL; GVariant *metadata = NULL; GPtrArray *playlist = NULL; g_object_get( G_OBJECT(data), "conn", &conn, "iface", &iface, NULL ); g_object_get(model, "playlist", &playlist, NULL); track_id = g_strdup_printf( MPRIS_TRACK_ID_PREFIX "%" G_GINT64_FORMAT, pos ); metadata = playlist_entry_to_variant( g_ptr_array_index(playlist, pos), pos ); signal_params = g_variant_new("(o@a{sv})", track_id, metadata); g_dbus_connection_emit_signal ( conn, NULL, MPRIS_OBJ_ROOT_PATH, iface->name, "TrackMetadataChanged", signal_params, NULL ); g_free(track_id); } static void update_playlist(CelluloidMprisTrackList *track_list) { CelluloidModel *model = celluloid_controller_get_model (track_list->controller); gint64 playlist_pos = -1; guint playlist_count = 0; GPtrArray *playlist = NULL; GDBusConnection *conn = NULL; GDBusInterfaceInfo *iface = NULL; gchar *current_track = NULL; GVariant *tracks = NULL; GVariant *signal_params = NULL; GVariantBuilder builder; g_object_get( G_OBJECT(model), "playlist-pos", &playlist_pos, "playlist", &playlist, NULL ); g_object_get( G_OBJECT(track_list), "conn", &conn, "iface", &iface, NULL ); playlist_count = playlist?playlist->len:0; g_variant_builder_init(&builder, G_VARIANT_TYPE("ao")); if(playlist_count <= 0 || playlist_pos < 0 || playlist_pos > playlist_count-1) { current_track = g_strdup(MPRIS_TRACK_ID_NO_TRACK); } for( gint64 i = MAX(0, playlist_pos-MPRIS_TRACK_LIST_BEFORE); i < MIN(playlist_count, playlist_pos+MPRIS_TRACK_LIST_AFTER); i++ ) { gchar *path = g_strdup_printf( MPRIS_TRACK_ID_PREFIX "%" G_GINT64_FORMAT, i ); if(i == playlist_pos) { current_track = g_strdup(path); } g_variant_builder_add_value (&builder, g_variant_new_object_path(path)); g_free(path); } tracks = g_variant_new("ao", (playlist_count > 0)?&builder:NULL); signal_params = g_variant_new("(@aoo)", tracks, current_track); celluloid_mpris_module_set_properties_full ( CELLULOID_MPRIS_MODULE(track_list), FALSE, "Tracks", tracks, NULL ); /* Only emit TrackListReplaced signal. TrackAdded, TrackRemoved, and * TrackMetadataChanged are currently unused. */ g_dbus_connection_emit_signal ( conn, NULL, MPRIS_OBJ_ROOT_PATH, iface->name, "TrackListReplaced", signal_params, NULL ); g_free(current_track); } static gint64 track_id_to_index(const gchar *track_id) { gint64 index = -1; gchar *endptr = NULL; if(g_str_has_prefix(track_id, MPRIS_TRACK_ID_PREFIX)) { const gsize prefix_len = sizeof(MPRIS_TRACK_ID_PREFIX)-1; index = g_ascii_strtoll(track_id+prefix_len, &endptr, 10); } if(endptr && *endptr) { g_warning("Failed to parse track ID: %s", track_id); } return index; } static GVariant * playlist_entry_to_variant(CelluloidPlaylistEntry *entry, gint64 index) { GVariantBuilder builder; gchar *track_id = NULL; gchar *title = NULL; gchar *uri = NULL; GVariant *elem_value = NULL; g_variant_builder_init(&builder, G_VARIANT_TYPE("a{sv}")); track_id = g_strdup_printf( "%s%" G_GINT64_FORMAT, MPRIS_TRACK_ID_PREFIX, index ); elem_value = g_variant_new ( "{sv}", "mpris:trackid", g_variant_new_string(track_id) ); g_variant_builder_add_value(&builder, elem_value); title = entry->title? g_strdup(entry->title): get_name_from_path(entry->filename); elem_value = g_variant_new ( "{sv}", "xesam:title", g_variant_new_string(title) ); g_variant_builder_add_value(&builder, elem_value); uri = g_filename_to_uri(entry->filename, NULL, NULL)?: g_strdup(entry->filename); elem_value = g_variant_new ( "{sv}", "xesam:uri", g_variant_new_string(uri) ); g_variant_builder_add_value(&builder, elem_value); g_free(track_id); g_free(title); g_free(uri); return g_variant_new("a{sv}", &builder); } static GVariant * get_tracks_metadata(GPtrArray *playlist, const gchar **track_ids) { GVariantBuilder builder; g_assert(playlist); g_assert(track_ids); g_variant_builder_init(&builder, G_VARIANT_TYPE("aa{sv}")); for(const gchar **iter = track_ids; *iter; iter++) { gint64 index = track_id_to_index(*iter); if(index >= 0 && index < playlist->len) { CelluloidPlaylistEntry *entry; GVariant *elem; entry = g_ptr_array_index(playlist, index); elem = playlist_entry_to_variant(entry, index); g_variant_builder_add_value(&builder, elem); } else { g_warning( "Attempted to retrieve metadata of " "non-existent track ID: %s", *iter ); } } return g_variant_new("(aa{sv})", &builder); } static void celluloid_mpris_track_list_class_init(CelluloidMprisTrackListClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS(klass); CelluloidMprisModuleClass *module_class = CELLULOID_MPRIS_MODULE_CLASS(klass); GParamSpec *pspec = NULL; object_class->set_property = set_property; object_class->get_property = get_property; module_class->register_interface = register_interface; module_class->unregister_interface = unregister_interface; pspec = g_param_spec_pointer ( "controller", "Controller", "The CelluloidController to use", G_PARAM_CONSTRUCT_ONLY|G_PARAM_READWRITE ); g_object_class_install_property(object_class, PROP_CONTROLLER, pspec); } static void celluloid_mpris_track_list_init(CelluloidMprisTrackList *track_list) { track_list->controller = NULL; track_list->reg_id = 0; } CelluloidMprisModule * celluloid_mpris_track_list_new( CelluloidController *controller, GDBusConnection *conn ) { GDBusInterfaceInfo *iface; GObject *object; iface = celluloid_mpris_org_mpris_media_player2_track_list_interface_info(); object = g_object_new( celluloid_mpris_track_list_get_type(), "controller", controller, "conn", conn, "iface", iface, NULL ); return CELLULOID_MPRIS_MODULE(object); } celluloid-0.20/src/mpris/celluloid-mpris-track-list.h000066400000000000000000000023231373135401300226600ustar00rootroot00000000000000/* * Copyright (c) 2017-2019 gnome-mpv * * This file is part of Celluloid. * * Celluloid is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Celluloid is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Celluloid. If not, see . */ #ifndef MPRIS_TRACK_LIST_H #define MPRIS_TRACK_LIST_H #include "celluloid-mpris-module.h" #include "celluloid-controller.h" #include G_BEGIN_DECLS #define CELLULOID_TYPE_MPRIS_TRACK_LIST (celluloid_mpris_track_list_get_type()) G_DECLARE_FINAL_TYPE(CelluloidMprisTrackList, celluloid_mpris_track_list, CELLULOID, MPRIS_TRACK_LIST, CelluloidMprisModule) CelluloidMprisModule * celluloid_mpris_track_list_new( CelluloidController *controller, GDBusConnection *conn ); G_END_DECLS #endif celluloid-0.20/src/mpris/celluloid-mpris.c000066400000000000000000000143741373135401300206110ustar00rootroot00000000000000/* * Copyright (c) 2015-2019 gnome-mpv * * This file is part of Celluloid. * * Celluloid is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Celluloid is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Celluloid. If not, see . */ #include #include #include #include #include #include #include "celluloid-mpris.h" #include "celluloid-mpris-base.h" #include "celluloid-mpris-player.h" #include "celluloid-mpris-track-list.h" #include "celluloid-def.h" enum { PROP_0, PROP_CONTROLLER, N_PROPERTIES }; struct _CelluloidMpris { GObject parent; CelluloidController *controller; CelluloidMprisModule *base; CelluloidMprisModule *player; CelluloidMprisModule *track_list; guint name_id; GDBusConnection *session_bus_conn; }; struct _CelluloidMprisClass { GObjectClass parent_class; }; G_DEFINE_TYPE(CelluloidMpris, celluloid_mpris, G_TYPE_OBJECT) static void constructed(GObject *object); static void dispose(GObject *object); static void set_property( GObject *object, guint property_id, const GValue *value, GParamSpec *pspec ); static void get_property( GObject *object, guint property_id, GValue *value, GParamSpec *pspec ); static void name_acquired_handler( GDBusConnection *connection, const gchar *name, gpointer data ); static void name_lost_handler( GDBusConnection *connection, const gchar *name, gpointer data ); static void unregister(CelluloidMpris *mpris); static void constructed(GObject *object) { CelluloidMpris *self = CELLULOID_MPRIS(object); gchar *address = NULL; GDBusConnection *conn = NULL; address = g_dbus_address_get_for_bus_sync (G_BUS_TYPE_SESSION, NULL, NULL); if(address) { const GDBusConnectionFlags flags = G_DBUS_CONNECTION_FLAGS_AUTHENTICATION_CLIENT| G_DBUS_CONNECTION_FLAGS_MESSAGE_BUS_CONNECTION; conn = g_dbus_connection_new_for_address_sync (address, flags, NULL, NULL, NULL); g_free(address); } if(conn) { CelluloidView *view = celluloid_controller_get_view (self->controller); CelluloidMainWindow *window = celluloid_view_get_main_window (view); guint window_id = gtk_application_window_get_id (GTK_APPLICATION_WINDOW(window)); gchar *name = g_strdup_printf (MPRIS_BUS_NAME ".instance-%u", window_id); self->name_id = g_bus_own_name_on_connection ( conn, name, G_BUS_NAME_OWNER_FLAGS_NONE, (GBusNameAcquiredCallback) name_acquired_handler, (GBusNameLostCallback) name_lost_handler, self, NULL ); g_free(name); } else { g_warning( "Failed to create DBus connection; " "MPRIS will be unavailable" ); } G_OBJECT_CLASS(celluloid_mpris_parent_class)->constructed(object); } static void dispose(GObject *object) { CelluloidMpris *self = CELLULOID_MPRIS(object); unregister(self); g_clear_object(&self->base); g_clear_object(&self->player); g_clear_object(&self->track_list); g_bus_unown_name(self->name_id); G_OBJECT_CLASS(celluloid_mpris_parent_class)->dispose(object); } static void set_property( GObject *object, guint property_id, const GValue *value, GParamSpec *pspec ) { CelluloidMpris *self = CELLULOID_MPRIS(object); switch(property_id) { case PROP_CONTROLLER: self->controller = g_value_get_pointer(value); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID(object, property_id, pspec); break; } } static void get_property( GObject *object, guint property_id, GValue *value, GParamSpec *pspec ) { CelluloidMpris *self = CELLULOID_MPRIS(object); switch(property_id) { case PROP_CONTROLLER: g_value_set_pointer(value, self->controller); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID(object, property_id, pspec); break; } } static void name_acquired_handler( GDBusConnection *connection, const gchar *name, gpointer data ) { CelluloidMpris *self = data; self->session_bus_conn = connection; self->base = celluloid_mpris_base_new (self->controller, connection); self->player = celluloid_mpris_player_new (self->controller, connection); self->track_list = celluloid_mpris_track_list_new (self->controller, connection); celluloid_mpris_module_register(self->base); celluloid_mpris_module_register(self->player); celluloid_mpris_module_register(self->track_list); } static void name_lost_handler( GDBusConnection *connection, const gchar *name, gpointer data ) { unregister(data); } static void unregister(CelluloidMpris *mpris) { celluloid_mpris_module_unregister(mpris->base); celluloid_mpris_module_unregister(mpris->player); celluloid_mpris_module_unregister(mpris->track_list); } static void celluloid_mpris_init(CelluloidMpris *mpris) { mpris->controller = NULL; mpris->base = NULL; mpris->player = NULL; mpris->track_list = NULL; mpris->name_id = 0; mpris->session_bus_conn = NULL; } static void celluloid_mpris_class_init(CelluloidMprisClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS(klass); GParamSpec *pspec = NULL; object_class->constructed = constructed; object_class->set_property = set_property; object_class->get_property = get_property; object_class->dispose = dispose; pspec = g_param_spec_pointer ( "controller", "Controller", "The CelluloidController to use", G_PARAM_CONSTRUCT_ONLY|G_PARAM_READWRITE ); g_object_class_install_property(object_class, PROP_CONTROLLER, pspec); } GVariant * celluloid_mpris_build_g_variant_string_array(const gchar** list) { GVariantBuilder builder; gint i; g_variant_builder_init(&builder, G_VARIANT_TYPE("as")); for(i = 0; list[i]; i++) { g_variant_builder_add(&builder, "s", list[i]); } return g_variant_new("as", &builder); } CelluloidMpris * celluloid_mpris_new(CelluloidController *controller) { return CELLULOID_MPRIS(g_object_new( celluloid_mpris_get_type(), "controller", controller, NULL )); } celluloid-0.20/src/mpris/celluloid-mpris.h000066400000000000000000000022061373135401300206050ustar00rootroot00000000000000/* * Copyright (c) 2015-2019 gnome-mpv * * This file is part of Celluloid. * * Celluloid is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Celluloid is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Celluloid. If not, see . */ #ifndef MPRIS_H #define MPRIS_H #include #include #include "celluloid-controller.h" G_BEGIN_DECLS #define CELLULOID_TYPE_MPRIS (celluloid_mpris_get_type ()) G_DECLARE_FINAL_TYPE(CelluloidMpris, celluloid_mpris, CELLULOID, MPRIS, GObject) GVariant * celluloid_mpris_build_g_variant_string_array(const gchar** list); CelluloidMpris * celluloid_mpris_new(CelluloidController *controller); G_END_DECLS #endif celluloid-0.20/test/000077500000000000000000000000001373135401300143665ustar00rootroot00000000000000celluloid-0.20/test/meson.build000066400000000000000000000003461373135401300165330ustar00rootroot00000000000000exe = executable( 'test-option-parser', ['..' / 'src' / 'celluloid-option-parser.c', 'test-option-parser.c'], include_directories: include_directories('..' / 'src'), dependencies: libgtk ) test('test-option-parser', exe) celluloid-0.20/test/test-option-parser.c000066400000000000000000000060741373135401300203200ustar00rootroot00000000000000#include #include "celluloid-option-parser.h" static void test_option_with_no_value(void) { const gchar *str = "--foo"; gchar *key = NULL; gchar *val = NULL; str = parse_option(str, &key, &val); g_assert_true(str && !*str); g_assert_true(g_strcmp0(key, "foo") == 0); g_assert_true(!val); g_free(key); g_free(val); } static void test_option_with_value(void) { const gchar *str = "--foo=bar"; gchar *key = NULL; gchar *val = NULL; str = parse_option(str, &key, &val); g_assert_true(str && !*str); g_assert_true(g_strcmp0(key, "foo") == 0); g_assert_true(g_strcmp0(val, "bar") == 0); g_free(key); g_free(val); } static void test_option_with_hyphen(void) { const gchar *str = "--foo-bar=baz"; gchar *key = NULL; gchar *val = NULL; str = parse_option(str, &key, &val); g_assert_true(str && !*str); g_assert_true(g_strcmp0(key, "foo-bar") == 0); g_assert_true(g_strcmp0(val, "baz") == 0); g_free(key); g_free(val); } static void test_option_with_underscore(void) { const gchar *str = "--foo_bar=baz"; gchar *key = NULL; gchar *val = NULL; str = parse_option(str, &key, &val); g_assert_true(str && !*str); g_assert_true(g_strcmp0(key, "foo_bar") == 0); g_assert_true(g_strcmp0(val, "baz") == 0); g_free(key); g_free(val); } static void test_multiple_options(void) { const gchar *str = "--foo --foo-bar=baz --bar --baz=foo"; gchar *key = NULL; gchar *val = NULL; str = parse_option(str, &key, &val); g_assert_true(str); g_assert_true(g_strcmp0(key, "foo") == 0); g_assert_true(!val); g_clear_pointer(&key, g_free); g_clear_pointer(&val, g_free); str = parse_option(str, &key, &val); g_assert_true(str); g_assert_true(g_strcmp0(key, "foo-bar") == 0); g_assert_true(g_strcmp0(val, "baz") == 0); g_clear_pointer(&key, g_free); g_clear_pointer(&val, g_free); str = parse_option(str, &key, &val); g_assert_true(str); g_assert_true(g_strcmp0(key, "bar") == 0); g_assert_true(!val); g_clear_pointer(&key, g_free); g_clear_pointer(&val, g_free); str = parse_option(str, &key, &val); g_assert_true(str && !*str); g_assert_true(g_strcmp0(key, "baz") == 0); g_assert_true(g_strcmp0(val, "foo") == 0); g_clear_pointer(&key, g_free); g_clear_pointer(&val, g_free); } static void test_option_with_no_prefix(void) { const gchar *str = "foo=bar"; gchar *key = NULL; gchar *val = NULL; str = parse_option(str, &key, &val); g_assert_true(str && !*str); g_assert_true(g_strcmp0(key, "foo") == 0); g_assert_true(g_strcmp0(val, "bar") == 0); g_free(key); g_free(val); } int main(gint argc, gchar **argv) { g_test_init(&argc, &argv, NULL); g_test_set_nonfatal_assertions(); g_test_add_func("/test-option-with-no-value", test_option_with_no_value ); g_test_add_func("/test-option-with-value", test_option_with_value ); g_test_add_func("/test-option-with-hyphen", test_option_with_hyphen ); g_test_add_func("/test-option-with-underscore", test_option_with_underscore ); g_test_add_func("/test-multiple-options", test_multiple_options ); g_test_add_func("/test-option-with-no-prefix", test_option_with_no_prefix ); return g_test_run(); } celluloid-0.20/zanata.xml000066400000000000000000000005101373135401300154030ustar00rootroot00000000000000 https://translate.zanata.org/ celluloid master gettext po po